@azure/communication-react 1.5.1-beta.5 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/README.md +3 -4
  2. package/dist/communication-react.d.ts +147 -2691
  3. package/dist/dist-cjs/communication-react/index.js +3821 -10561
  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 +10 -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 +1 -24
  14. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -51
  15. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts +0 -13
  17. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +2 -17
  18. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +1 -7
  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 +1 -19
  22. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +1 -73
  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/createDefaultCallingHandlersForComponent.js +0 -10
  25. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  26. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +1 -15
  27. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  28. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +1 -4
  29. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +0 -22
  30. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +0 -9
  32. package/dist/dist-esm/calling-component-bindings/src/index.js +0 -10
  33. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +3 -9
  35. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.d.ts +3 -4
  37. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.d.ts +2 -14
  39. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js +1 -20
  40. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  41. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +0 -7
  42. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +1 -13
  43. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +0 -5
  45. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +0 -11
  46. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +4 -11
  48. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +0 -3
  50. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  51. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.d.ts +5 -6
  52. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  53. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +1 -15
  54. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  55. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +1 -2
  56. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +0 -5
  57. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  58. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -115
  59. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -19
  61. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +2 -162
  62. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  63. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +0 -51
  64. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  65. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +0 -5
  66. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +0 -57
  67. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  68. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +0 -10
  69. package/dist/dist-esm/calling-stateful-client/src/Converter.js +2 -39
  70. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.d.ts +0 -9
  72. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +0 -5
  73. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +0 -1
  75. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +3 -25
  76. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  77. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.d.ts +0 -1
  78. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js +0 -8
  79. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.d.ts +0 -1
  81. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js +0 -8
  82. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  83. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +1 -25
  84. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +2 -33
  85. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +2 -9
  87. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +0 -18
  88. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  89. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -4
  90. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  91. package/dist/dist-esm/calling-stateful-client/src/index.d.ts +0 -1
  92. package/dist/dist-esm/calling-stateful-client/src/index.js +0 -2
  93. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  94. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +1 -4
  95. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  96. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +5 -72
  97. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  98. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -3
  99. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  100. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +1 -3
  101. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  102. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +1 -4
  103. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  104. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +0 -1
  105. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  106. package/dist/dist-esm/communication-react/src/index.d.ts +0 -28
  107. package/dist/dist-esm/communication-react/src/index.js +0 -14
  108. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  109. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +0 -8
  110. package/dist/dist-esm/react-components/src/components/CameraButton.js +0 -21
  111. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  112. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +11 -2
  113. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  114. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +2 -12
  115. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +2 -5
  116. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  117. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +29 -23
  118. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +1 -11
  120. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +3 -22
  121. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +0 -12
  123. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +18 -60
  124. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  125. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +0 -6
  126. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  127. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts +5 -0
  128. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +1 -1
  129. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  130. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.d.ts +5 -0
  131. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +21 -5
  132. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  133. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +0 -8
  134. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  135. package/dist/dist-esm/react-components/src/components/FileCard.js +5 -5
  136. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts +1 -0
  138. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +2 -2
  139. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  140. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +1 -13
  141. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +17 -16
  142. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  143. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +1 -3
  144. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  145. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +24 -26
  146. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  147. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +4 -40
  148. package/dist/dist-esm/react-components/src/components/MessageThread.js +12 -49
  149. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  150. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +1 -1
  151. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +0 -13
  153. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +0 -3
  154. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  155. package/dist/dist-esm/react-components/src/components/ParticipantList.js +1 -7
  156. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  158. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +2 -42
  159. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  160. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +0 -35
  161. package/dist/dist-esm/react-components/src/components/SendBox.js +1 -26
  162. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +0 -2
  164. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +0 -2
  166. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +0 -24
  168. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +0 -2
  170. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +4 -17
  172. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +5 -18
  174. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +6 -24
  176. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +0 -6
  178. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +0 -5
  180. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +3 -32
  181. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +1 -7
  183. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +3 -46
  185. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +0 -81
  187. package/dist/dist-esm/react-components/src/components/VideoGallery.js +9 -104
  188. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  189. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +0 -22
  190. package/dist/dist-esm/react-components/src/components/VideoTile.js +11 -88
  191. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -18
  193. package/dist/dist-esm/react-components/src/components/index.js +0 -16
  194. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts +10 -0
  196. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +10 -0
  197. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +0 -5
  199. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +1 -29
  200. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js +4 -1
  202. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +2 -1
  204. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/utils/common.js +0 -4
  206. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  207. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +1 -2
  208. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/components/utils.d.ts +14 -0
  210. package/dist/dist-esm/react-components/src/components/utils.js +21 -1
  211. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +0 -4
  213. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +1 -5
  214. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  215. package/dist/dist-esm/react-components/src/index.d.ts +0 -4
  216. package/dist/dist-esm/react-components/src/index.js +0 -2
  217. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -59
  219. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +331 -0
  221. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +4 -4
  222. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +4 -4
  223. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +4 -4
  224. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +4 -4
  225. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +331 -0
  226. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +4 -4
  227. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +331 -0
  228. package/dist/dist-esm/react-components/src/localization/locales/index.d.ts +36 -0
  229. package/dist/dist-esm/react-components/src/localization/locales/index.js +54 -0
  230. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  231. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +4 -4
  232. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +4 -4
  233. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +4 -4
  234. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +331 -0
  235. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +4 -4
  236. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +331 -0
  237. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +4 -4
  238. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +4 -4
  239. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +331 -0
  240. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +4 -4
  241. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +4 -4
  242. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +4 -4
  243. package/dist/dist-esm/react-components/src/theming/icons.d.ts +0 -29
  244. package/dist/dist-esm/react-components/src/theming/icons.js +1 -143
  245. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -27
  247. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/types/OnRender.d.ts +0 -8
  249. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  250. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +0 -3
  251. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js +0 -2
  252. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  253. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +0 -8
  254. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js +0 -2
  255. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +0 -89
  257. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +12 -57
  258. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  259. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -221
  260. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js +0 -2
  261. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  262. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +7 -103
  263. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +24 -325
  264. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  265. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +1 -263
  266. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +1 -1
  267. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  268. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +2 -3
  269. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +1 -7
  270. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  271. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +0 -8
  272. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js +0 -2
  273. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  274. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +0 -2
  275. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +8 -90
  276. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  277. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +0 -2
  278. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -144
  279. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  280. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +0 -2
  281. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +0 -27
  282. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  283. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +2 -20
  284. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  285. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +0 -2
  286. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +0 -27
  287. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  288. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -2
  289. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +5 -45
  290. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  291. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +0 -2
  292. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +8 -28
  293. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  294. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +0 -2
  295. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  296. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +4 -5
  297. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +1 -2
  298. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  299. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +2 -33
  300. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  301. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +0 -2
  302. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  303. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +2 -6
  304. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  305. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.d.ts +1 -2
  306. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +5 -51
  307. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  308. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +0 -10
  309. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js +0 -2
  310. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  311. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +1 -3
  312. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  313. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +0 -7
  314. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +8 -115
  315. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  316. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +0 -2
  317. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  318. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts +4 -1
  319. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +2 -2
  320. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  321. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +0 -32
  322. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -57
  323. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  324. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +0 -4
  325. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  326. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.d.ts +6 -1
  327. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +7 -0
  328. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  329. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +0 -1
  330. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  331. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +3 -33
  332. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +6 -109
  333. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  334. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +1 -61
  335. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +5 -30
  336. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  337. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +0 -44
  338. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  339. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +5 -49
  340. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +7 -198
  341. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  342. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -124
  343. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  344. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -22
  345. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +1 -93
  346. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  347. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +0 -13
  348. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +1 -37
  349. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  350. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts +0 -1
  351. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  352. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +0 -27
  353. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +3 -19
  354. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  355. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +0 -20
  356. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +0 -4
  357. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  358. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +3 -43
  359. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  360. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +0 -4
  361. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  362. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -28
  363. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +6 -128
  364. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  365. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +0 -28
  366. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +1 -159
  367. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  368. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -17
  369. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  370. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js +0 -2
  371. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  372. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +1 -8
  373. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  374. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +0 -4
  375. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  376. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts +1 -5
  377. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +0 -11
  378. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  379. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts +0 -5
  380. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +2 -3
  381. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  382. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +0 -3
  383. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +4 -36
  384. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  385. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +0 -13
  386. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +0 -181
  387. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  388. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +0 -2
  389. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +1 -5
  390. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  391. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +1 -14
  392. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  393. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +2 -18
  394. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  395. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +0 -2
  396. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  397. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -46
  398. package/dist/dist-esm/react-composites/src/composites/common/icons.js +1 -21
  399. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  400. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +4 -26
  401. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  402. package/dist/dist-esm/react-composites/src/composites/index.d.ts +0 -2
  403. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  404. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +199 -0
  405. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +7 -1
  406. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +7 -1
  407. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +7 -1
  408. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +7 -1
  409. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +199 -0
  410. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +7 -1
  411. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +199 -0
  412. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts +36 -0
  413. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js +61 -1
  414. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  415. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +7 -1
  416. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +7 -1
  417. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +7 -1
  418. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +199 -0
  419. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +7 -1
  420. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +199 -0
  421. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +7 -1
  422. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +7 -1
  423. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +199 -0
  424. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +7 -1
  425. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +7 -1
  426. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +7 -1
  427. package/package.json +17 -15
  428. package/CHANGELOG.beta.md +0 -929
  429. package/CHANGELOG.json +0 -12481
  430. package/CHANGELOG.stable.md +0 -373
  431. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.d.ts +0 -48
  432. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +0 -69
  433. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +0 -1
  434. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.d.ts +0 -43
  435. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +0 -85
  436. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +0 -1
  437. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.d.ts +0 -18
  438. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js +0 -38
  439. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +0 -1
  440. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.d.ts +0 -28
  441. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js +0 -49
  442. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +0 -1
  443. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +0 -19
  444. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js +0 -89
  445. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +0 -1
  446. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.d.ts +0 -23
  447. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +0 -49
  448. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +0 -1
  449. package/dist/dist-esm/react-components/src/components/Caption.d.ts +0 -21
  450. package/dist/dist-esm/react-components/src/components/Caption.js +0 -32
  451. package/dist/dist-esm/react-components/src/components/Caption.js.map +0 -1
  452. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +0 -32
  453. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +0 -48
  454. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +0 -1
  455. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.d.ts +0 -37
  456. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +0 -86
  457. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +0 -1
  458. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.d.ts +0 -69
  459. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +0 -43
  460. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +0 -1
  461. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.d.ts +0 -75
  462. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +0 -75
  463. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +0 -1
  464. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +0 -105
  465. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +0 -68
  466. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +0 -1
  467. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +0 -86
  468. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +0 -39
  469. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +0 -1
  470. package/dist/dist-esm/react-components/src/components/HoldButton.d.ts +0 -49
  471. package/dist/dist-esm/react-components/src/components/HoldButton.js +0 -25
  472. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +0 -1
  473. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.d.ts +0 -35
  474. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +0 -32
  475. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +0 -1
  476. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +0 -70
  477. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +0 -54
  478. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +0 -1
  479. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +0 -10
  480. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +0 -26
  481. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +0 -1
  482. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.d.ts +0 -10
  483. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +0 -31
  484. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +0 -1
  485. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +0 -58
  486. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +0 -144
  487. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +0 -1
  488. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +0 -33
  489. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +0 -61
  490. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +0 -1
  491. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.d.ts +0 -34
  492. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js +0 -86
  493. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +0 -1
  494. package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +0 -14
  495. package/dist/dist-esm/react-components/src/components/styles/Common.style.js +0 -16
  496. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +0 -1
  497. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.d.ts +0 -38
  498. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js +0 -92
  499. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +0 -1
  500. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.d.ts +0 -26
  501. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js +0 -67
  502. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +0 -1
  503. package/dist/dist-esm/react-components/src/components/utils/merge.d.ts +0 -7
  504. package/dist/dist-esm/react-components/src/components/utils/merge.js +0 -16
  505. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +0 -1
  506. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +0 -61
  507. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +0 -74
  508. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +0 -1
  509. package/dist/dist-esm/react-components/src/permissions/index.d.ts +0 -2
  510. package/dist/dist-esm/react-components/src/permissions/index.js +0 -4
  511. package/dist/dist-esm/react-components/src/permissions/index.js.map +0 -1
  512. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +0 -6
  513. package/dist/dist-esm/react-components/src/theming/icons.styles.js +0 -25
  514. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +0 -1
  515. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +0 -48
  516. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +0 -218
  517. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +0 -1
  518. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.d.ts +0 -12
  519. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +0 -93
  520. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +0 -1
  521. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +0 -9
  522. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +0 -75
  523. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +0 -1
  524. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.d.ts +0 -8
  525. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +0 -26
  526. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +0 -1
  527. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts +0 -19
  528. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +0 -30
  529. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +0 -1
  530. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +0 -15
  531. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +0 -54
  532. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +0 -1
  533. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +0 -7
  534. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +0 -20
  535. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +0 -1
  536. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.d.ts +0 -7
  537. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js +0 -17
  538. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js.map +0 -1
  539. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.d.ts +0 -32
  540. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js +0 -81
  541. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +0 -1
  542. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +0 -18
  543. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +0 -18
  544. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +0 -1
  545. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.d.ts +0 -15
  546. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js +0 -23
  547. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +0 -1
  548. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.d.ts +0 -6
  549. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +0 -11
  550. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +0 -1
  551. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +0 -12
  552. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +0 -13
  553. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +0 -1
  554. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +0 -23
  555. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +0 -14
  556. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +0 -1
  557. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +0 -22
  558. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +0 -107
  559. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +0 -1
  560. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.d.ts +0 -17
  561. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js +0 -32
  562. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +0 -1
  563. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts +0 -22
  564. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +0 -74
  565. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +0 -1
  566. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts +0 -15
  567. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js +0 -61
  568. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +0 -1
  569. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +0 -6
  570. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +0 -61
  571. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +0 -1
  572. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.d.ts +0 -12
  573. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +0 -111
  574. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +0 -1
  575. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.d.ts +0 -7
  576. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +0 -38
  577. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +0 -1
  578. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +0 -17
  579. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +0 -215
  580. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +0 -1
  581. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.d.ts +0 -6
  582. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js +0 -24
  583. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +0 -1
  584. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.d.ts +0 -20
  585. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js +0 -52
  586. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js.map +0 -1
  587. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.d.ts +0 -7
  588. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js +0 -25
  589. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js.map +0 -1
  590. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts +0 -17
  591. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +0 -50
  592. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +0 -1
  593. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.d.ts +0 -11
  594. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js +0 -40
  595. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +0 -1
  596. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +0 -12
  597. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +0 -140
  598. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AzureCommunicationCallAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _isInCall, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallClientState, CallError, CallState, createStatefulCallClient, StatefulCallClient, StatefulDeviceManager, TeamsCall, TeamsCallAgent as BetaTeamsCallAgent, _isACSCall, _isTeamsCall } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { _isTeamsCallAgent } from '@internal/calling-stateful-client';\nimport { CallCommon } from '@internal/calling-stateful-client';\nimport { AudioOptions, CallAgent, GroupCallLocator, TeamsMeetingLinkLocator, LocalVideoStream as SDKLocalVideoStream, AudioDeviceInfo, VideoDeviceInfo, RemoteParticipant, PermissionConstraints, PropertyChangedEvent, StartCallOptions, VideoOptions, Call } from '@azure/communication-calling';\n/* @conditional-compile-remove(close-captions) */\nimport { StartCaptionsOptions, TeamsCaptionsInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(video-background-effects) */\nimport { BackgroundBlurConfig, BackgroundReplacementConfig } from '@azure/communication-calling-effects';\n/* @conditional-compile-remove(teams-identity-support)) */\nimport { TeamsCallAgent } from '@azure/communication-calling';\n/* @conditional-compile-remove(rooms) */\nimport { RoomCallLocator } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { Features } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions, DtmfTone } from '@azure/communication-calling';\nimport { EventEmitter } from 'events';\nimport { CommonCallAdapter, CallEndedListener, CallIdChangedListener, CallAdapterState, DisplayNameChangedListener, IsMutedChangedListener, IsLocalScreenSharingActiveChangedListener, IsSpeakingChangedListener, ParticipantsJoinedListener, ParticipantsLeftListener, DiagnosticChangedEventListner, CallAdapterCallEndedEvent, CallAdapter } from './CallAdapter';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsReceivedListener, IsCaptionsActiveChangedListener } from './CallAdapter';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundImage, SelectedVideoBackgroundEffect } from './CallAdapter';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCallAdapter } from './CallAdapter';\nimport { getCallCompositePage, IsCallEndedPage, isCameraOn, isValidIdentifier } from '../utils';\n/* @conditional-compile-remove(close-captions) */\nimport { _isTeamsMeetingCall } from '@internal/calling-stateful-client';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\n/* @conditional-compile-remove(rooms) */\nimport { Role } from '@internal/react-components';\nimport { toFlatCommunicationIdentifier, _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier, isCommunicationUserIdentifier, isPhoneNumberIdentifier, UnknownIdentifier, PhoneNumberIdentifier, CommunicationIdentifier, MicrosoftTeamsUserIdentifier } from '@azure/communication-common';\nimport { ParticipantSubscriber } from './ParticipantSubcriber';\nimport { AdapterError } from '../../common/adapters';\nimport { DiagnosticsForwarder } from './DiagnosticsForwarder';\nimport { useEffect, useRef, useState } from 'react';\nimport { CallHandlersOf, createHandlers } from './createHandlers';\nimport { createProfileStateModifier, OnFetchProfileCallback } from './OnFetchProfileCallback';\n/* @conditional-compile-remove(video-background-effects) */\nimport { getBackgroundEffectFromSelectedEffect, getSelectedCameraFromAdapterState } from '../utils';\ntype CallTypeOf<AgentType extends CallAgent | BetaTeamsCallAgent> = AgentType extends CallAgent ? Call : TeamsCall;\n\n/** Context of call, which is a centralized context for all state updates */\nclass CallContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: CallAdapterState;\n private callId: string | undefined;\n private displayNameModifier: AdapterStateModifier | undefined;\n constructor(clientState: CallClientState, isTeamsCall: boolean, options?: {\n /* @conditional-compile-remove(rooms) */roleHint?: Role;\n maxListeners?: number;\n onFetchProfile?: OnFetchProfileCallback;\n /* @conditional-compile-remove(video-background-effects) */\n videoBackgroundImages?: VideoBackgroundImage[];\n }) {\n this.state = {\n isLocalPreviewMicrophoneEnabled: false,\n userId: clientState.userId,\n displayName: clientState.callAgent?.displayName,\n devices: clientState.deviceManager,\n call: undefined,\n page: 'configuration',\n latestErrors: clientState.latestErrors,\n isTeamsCall,\n /* @conditional-compile-remove(PSTN-calls) */alternateCallerId: clientState.alternateCallerId,\n /* @conditional-compile-remove(unsupported-browser) */environmentInfo: clientState.environmentInfo,\n /* @conditional-compile-remove(unsupported-browser) */unsupportedBrowserVersionsAllowed: false,\n /* @conditional-compile-remove(rooms) */roleHint: options?.roleHint,\n /* @conditional-compile-remove(video-background-effects) */videoBackgroundImages: options?.videoBackgroundImages,\n /* @conditional-compile-remove(video-background-effects) */selectedVideoBackgroundEffect: undefined,\n cameraStatus: undefined\n };\n this.emitter.setMaxListeners(options?.maxListeners ?? 50);\n this.bindPublicMethods();\n this.displayNameModifier = options?.onFetchProfile ? createProfileStateModifier(options.onFetchProfile, () => {\n this.setState(this.getState());\n }) : undefined;\n }\n private bindPublicMethods(): void {\n /* @conditional-compile-remove(unsupported-browser) */\n this.setAllowedUnsupportedBrowser.bind(this);\n }\n public onStateChange(handler: (_uiState: CallAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (_uiState: CallAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n public setState(state: CallAdapterState): void {\n this.state = this.displayNameModifier ? this.displayNameModifier(state) : state;\n this.emitter.emit('stateChanged', this.state);\n }\n public getState(): CallAdapterState {\n return this.state;\n }\n public setIsLocalMicrophoneEnabled(isLocalPreviewMicrophoneEnabled: boolean): void {\n this.setState({\n ...this.state,\n isLocalPreviewMicrophoneEnabled\n });\n }\n\n // This is the key to find current call object in client state\n public setCurrentCallId(callId: string | undefined): void {\n this.callId = callId;\n }\n public onCallEnded(handler: (callEndedData: CallAdapterCallEndedEvent) => void): void {\n this.emitter.on('callEnded', handler);\n }\n public offCallEnded(handler: (callEndedData: CallAdapterCallEndedEvent) => void): void {\n this.emitter.off('callEnded', handler);\n }\n public updateClientState(clientState: CallClientState): void {\n let call = this.callId ? clientState.calls[this.callId] : undefined;\n const latestEndedCall = clientState.callsEnded ? findLatestEndedCall(clientState.callsEnded) : undefined;\n // As the state is transitioning to a new state, trigger appropriate callback events.\n const oldPage = this.state.page;\n /* @conditional-compile-remove(unsupported-browser) */\n const environmentInfo = {\n environmentInfo: this.state.environmentInfo,\n unsupportedBrowserVersionOptedIn: this.state.unsupportedBrowserVersionsAllowed\n };\n const newPage = getCallCompositePage(call, latestEndedCall, /* @conditional-compile-remove(unsupported-browser) */environmentInfo);\n if (!IsCallEndedPage(oldPage) && IsCallEndedPage(newPage)) {\n this.emitter.emit('callEnded', {\n callId: this.callId\n });\n // Reset the callId to undefined as the call has ended.\n this.setCurrentCallId(undefined);\n // Make sure that the call is set to undefined in the state.\n call = undefined;\n }\n if (this.state.page) {\n this.setState({\n ...this.state,\n userId: clientState.userId,\n displayName: clientState.callAgent?.displayName,\n call,\n page: newPage,\n endedCall: latestEndedCall,\n devices: clientState.deviceManager,\n latestErrors: clientState.latestErrors,\n cameraStatus: call?.localVideoStreams.find(s => s.mediaStreamType === 'Video') || clientState.deviceManager.unparentedViews.find(s => s.mediaStreamType === 'Video') ? 'On' : 'Off'\n });\n }\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n public setAllowedUnsupportedBrowser(): void {\n this.setState({\n ...this.state,\n unsupportedBrowserVersionsAllowed: true\n });\n }\n\n /* @conditional-compile-remove(video-background-effects) */\n public setBackroundPickerImages(videoBackgroundImages: VideoBackgroundImage[]): void {\n this.setState({\n ...this.state,\n videoBackgroundImages\n });\n }\n\n /* @conditional-compile-remove(video-background-effects) */\n public setSelectedVideoBackgroundEffect(selectedVideoBackgroundEffect?: SelectedVideoBackgroundEffect): void {\n this.setState({\n ...this.state,\n selectedVideoBackgroundEffect\n });\n }\n}\nconst findLatestEndedCall = (calls: {\n [key: string]: CallState;\n}): CallState | undefined => {\n const callStates = Object.values(calls);\n if (callStates.length === 0) {\n return undefined;\n }\n let latestCall = callStates[0];\n for (const call of callStates.slice(1)) {\n if ((call.endTime?.getTime() ?? 0) > (latestCall.endTime?.getTime() ?? 0)) {\n latestCall = call;\n }\n }\n return latestCall;\n};\n\n/**\n * @private\n */\nexport type AdapterStateModifier = (state: CallAdapterState) => CallAdapterState;\n\n/**\n * @private\n */\nexport class AzureCommunicationCallAdapter<AgentType extends CallAgent | BetaTeamsCallAgent = CallAgent> implements CommonCallAdapter {\n private callClient: StatefulCallClient;\n private callAgent: AgentType;\n private deviceManager: StatefulDeviceManager;\n private localStream: SDKLocalVideoStream | undefined;\n private locator: CallAdapterLocator;\n // Never use directly, even internally. Use `call` property instead.\n private _call?: CallCommon;\n private context: CallContext;\n private diagnosticsForwarder?: DiagnosticsForwarder;\n private handlers: CallHandlersOf<AgentType>;\n private participantSubscribers = new Map<string, ParticipantSubscriber>();\n private emitter: EventEmitter = new EventEmitter();\n private onClientStateChange: (clientState: CallClientState) => void;\n private get call(): CallCommon | undefined {\n return this._call;\n }\n private set call(newCall: CallCommon | undefined) {\n this.resetDiagnosticsForwarder(newCall);\n this._call = newCall;\n }\n constructor(callClient: StatefulCallClient, locator: CallAdapterLocator, callAgent: AgentType, deviceManager: StatefulDeviceManager, options?: AzureCommunicationCallAdapterOptions & TeamsAdapterOptions) {\n this.bindPublicMethods();\n this.callClient = callClient;\n this.callAgent = callAgent;\n this.locator = locator;\n this.deviceManager = deviceManager;\n const isTeamsMeeting = ('meetingLink' in this.locator);\n\n /* @conditional-compile-remove(rooms) */\n const isRoomsCall = ('roomId' in this.locator);\n /* @conditional-compile-remove(rooms) */\n // to prevent showing components that depend on role such as local video tile, camera button, etc. in a rooms call\n // we set the default roleHint as 'Consumer' when roleHint is undefined since it has the lowest level of permissions\n if (isRoomsCall && options?.roleHint === undefined) {\n options = {\n ...options,\n roleHint: 'Consumer'\n };\n }\n this.context = new CallContext(callClient.getState(), isTeamsMeeting, options);\n this.context.onCallEnded(endCallData => this.emitter.emit('callEnded', endCallData));\n const onStateChange = (clientState: CallClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n callClient.offStateChange(onStateChange);\n return;\n }\n\n // `updateClientState` searches for the current call from all the calls in the state using a cached `call.id`\n // from the call object. `call.id` can change during a call. We must update the cached `call.id` before\n // calling `updateClientState` so that we find the correct state object for the call even when `call.id`\n // has changed.\n // https://github.com/Azure/communication-ui-library/pull/1820\n if (this.call?.id) {\n this.context.setCurrentCallId(this.call.id);\n }\n this.context.updateClientState(clientState);\n };\n this.handlers = createHandlers(callClient, callAgent, deviceManager, undefined);\n this.onClientStateChange = onStateChange;\n this.subscribeDeviceManagerEvents();\n this.callClient.onStateChange(onStateChange);\n }\n\n // TODO: update this to include the 'selectedCameraChanged' when calling adds it to the device manager\n private subscribeDeviceManagerEvents(): void {\n this.deviceManager.on('selectedMicrophoneChanged', () => {\n this.emitter.emit('selectedMicrophoneChanged');\n });\n this.deviceManager.on('selectedSpeakerChanged', () => {\n this.emitter.emit('selectedSpeakerChanged');\n });\n }\n private bindPublicMethods(): void {\n this.onStateChange.bind(this);\n this.offStateChange.bind(this);\n this.getState.bind(this);\n this.dispose.bind(this);\n this.joinCall.bind(this);\n this.leaveCall.bind(this);\n this.setCamera.bind(this);\n this.setMicrophone.bind(this);\n this.setSpeaker.bind(this);\n this.askDevicePermission.bind(this);\n this.queryCameras.bind(this);\n this.queryMicrophones.bind(this);\n this.querySpeakers.bind(this);\n this.startCamera.bind(this);\n this.stopCamera.bind(this);\n this.mute.bind(this);\n this.unmute.bind(this);\n this.startCall.bind(this);\n this.startScreenShare.bind(this);\n this.stopScreenShare.bind(this);\n this.removeParticipant.bind(this);\n this.createStreamView.bind(this);\n this.disposeStreamView.bind(this);\n this.on.bind(this);\n this.off.bind(this);\n this.processNewCall.bind(this);\n /* @conditional-compile-remove(PSTN-calls) */\n this.addParticipant.bind(this);\n /* @conditional-compile-remove(PSTN-calls) */\n this.holdCall.bind(this);\n /* @conditional-compile-remove(PSTN-calls) */\n this.resumeCall.bind(this);\n /* @conditional-compile-remove(PSTN-calls) */\n this.sendDtmfTone.bind(this);\n /* @conditional-compile-remove(unsupported-browser) */\n this.allowUnsupportedBrowserVersion.bind(this);\n /* @conditional-compile-remove(close-captions) */\n {\n this.startCaptions.bind(this);\n this.stopCaptions.bind(this);\n this.setSpokenLanguage.bind(this);\n this.setCaptionLanguage.bind(this);\n }\n /* @conditional-compile-remove(video-background-effects) */\n this.blurVideoBackground.bind(this);\n /* @conditional-compile-remove(video-background-effects) */\n this.replaceVideoBackground.bind(this);\n /* @conditional-compile-remove(video-background-effects) */\n this.stopVideoBackgroundEffects.bind(this);\n /* @conditional-compile-remove(video-background-effects) */\n this.updateBackgroundPickerImages.bind(this);\n }\n public dispose(): void {\n this.resetDiagnosticsForwarder();\n this.callClient.offStateChange(this.onClientStateChange);\n this.callAgent.dispose();\n }\n public async queryCameras(): Promise<VideoDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.getCameras();\n });\n }\n public async queryMicrophones(): Promise<AudioDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.getMicrophones();\n });\n }\n public async querySpeakers(): Promise<AudioDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.isSpeakerSelectionAvailable ? this.deviceManager.getSpeakers() : [];\n });\n }\n public async askDevicePermission(constrain: PermissionConstraints): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.deviceManager.askDevicePermission(constrain);\n });\n }\n public joinCall(microphoneOn?: boolean): CallTypeOf<AgentType> | undefined {\n if (_isInCall(this.getState().call?.state ?? 'None')) {\n throw new Error('You are already in the call!');\n }\n return this.teeErrorToEventEmitter(() => {\n const audioOptions: AudioOptions = {\n muted: !(microphoneOn ?? this.getState().isLocalPreviewMicrophoneEnabled)\n };\n // TODO: find a way to expose stream to here\n const videoOptions = {\n localVideoStreams: this.localStream ? [this.localStream] : undefined\n };\n /* @conditional-compile-remove(teams-adhoc-call) */\n /* @conditional-compile-remove(PSTN-calls) */\n if (isOutboundCall(this.locator)) {\n const phoneNumber = this.getState().alternateCallerId;\n return this.startCall(this.locator.participantIds, {\n alternateCallerId: phoneNumber ? {\n phoneNumber: phoneNumber\n } : undefined,\n audioOptions,\n videoOptions\n });\n }\n const call = this._joinCall(audioOptions, videoOptions);\n this.processNewCall(call);\n return call;\n });\n }\n private _joinCall(audioOptions: AudioOptions, videoOptions: VideoOptions): CallTypeOf<AgentType> {\n const isTeamsMeeting = ('meetingLink' in this.locator);\n /* @conditional-compile-remove(rooms) */\n const isRoomsCall = ('roomId' in this.locator);\n\n /* @conditional-compile-remove(teams-identity-support) */\n if (_isTeamsCallAgent(this.callAgent)) {\n if (!isTeamsMeeting) {\n throw new Error('Locator not supported by TeamsCallAgent');\n }\n return (this.callAgent.join((this.locator as TeamsMeetingLinkLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n if (isTeamsMeeting) {\n return (this.callAgent.join((this.locator as TeamsMeetingLinkLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n /* @conditional-compile-remove(rooms) */\n if (isRoomsCall) {\n return (this.callAgent.join((this.locator as RoomCallLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n return (this.callAgent.join((this.locator as GroupCallLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n public async createStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void | CreateVideoStreamViewResult> {\n if (remoteUserId === undefined) {\n return await this.handlers.onCreateLocalStreamView(options);\n } else {\n return await this.handlers.onCreateRemoteStreamView(remoteUserId, options);\n }\n }\n public async disposeStreamView(remoteUserId?: string): Promise<void> {\n if (remoteUserId === undefined) {\n await this.handlers.onDisposeLocalStreamView();\n } else {\n await this.handlers.onDisposeRemoteStreamView(remoteUserId);\n }\n }\n public async leaveCall(forEveryone?: boolean): Promise<void> {\n await this.handlers.onHangUp(forEveryone);\n this.unsubscribeCallEvents();\n this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, undefined);\n // We set the adapter.call object to undefined immediately when a call is ended.\n // We do not set the context.callId to undefined because it is a part of the immutable data flow loop.\n this.call = undefined;\n this.stopCamera();\n this.mute();\n }\n public async setCamera(device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectCamera(device, options);\n });\n }\n public async setMicrophone(device: AudioDeviceInfo): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectMicrophone(device);\n });\n }\n public async setSpeaker(device: AudioDeviceInfo): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectSpeaker(device);\n });\n }\n public async startCamera(options?: VideoStreamOptions): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (!isCameraOn(this.getState())) {\n // First kick off the effect on the local device before starting the camera in the call.\n // This prevents the effect not being applied for a brief moment when the camera is started.\n /* @conditional-compile-remove(video-background-effects) */\n {\n const selectedEffect = this.getState().selectedVideoBackgroundEffect;\n const selectedCamera = getSelectedCameraFromAdapterState(this.getState());\n if (selectedEffect && selectedCamera) {\n const stream = new SDKLocalVideoStream(selectedCamera);\n const effect = getBackgroundEffectFromSelectedEffect(selectedEffect);\n if (effect) {\n await stream.feature(Features.VideoEffects).startEffects(effect);\n } else {\n await stream.feature(Features.VideoEffects).stopEffects();\n }\n }\n }\n await this.handlers.onToggleCamera(options);\n }\n });\n }\n public async stopCamera(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (isCameraOn(this.getState())) {\n await this.handlers.onToggleCamera();\n }\n });\n }\n public async mute(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n this.context.setIsLocalMicrophoneEnabled(false);\n if (_isInCall(this.call?.state) && !this.call?.isMuted) {\n await this.handlers.onToggleMicrophone();\n }\n });\n }\n public async unmute(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n this.context.setIsLocalMicrophoneEnabled(true);\n if (_isInCall(this.call?.state) && this.call?.isMuted) {\n await this.handlers.onToggleMicrophone();\n }\n });\n }\n public async startScreenShare(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (!this.call?.isScreenSharingOn) {\n await this.handlers.onToggleScreenShare();\n }\n });\n }\n public async stopScreenShare(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (this.call?.isScreenSharingOn) {\n await this.handlers.onToggleScreenShare();\n }\n });\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n public allowUnsupportedBrowserVersion(): void {\n this.context.setAllowedUnsupportedBrowser();\n this.context.updateClientState(this.callClient.getState());\n }\n\n /* @conditional-compile-remove(video-background-effects) */\n public async blurVideoBackground(backgroundBlurConfig?: BackgroundBlurConfig): Promise<void> {\n await this.handlers.onBlurVideoBackground(backgroundBlurConfig);\n }\n /* @conditional-compile-remove(video-background-effects) */\n public async replaceVideoBackground(backgroundReplacementConfig: BackgroundReplacementConfig): Promise<void> {\n await this.handlers.onReplaceVideoBackground(backgroundReplacementConfig);\n }\n\n /* @conditional-compile-remove(video-background-effects) */\n public async stopVideoBackgroundEffects(): Promise<void> {\n await this.handlers.onRemoveVideoBackgroundEffects();\n }\n /* @conditional-compile-remove(video-background-effects) */\n public updateBackgroundPickerImages(backgroundImages: VideoBackgroundImage[]): void {\n this.context.setBackroundPickerImages(backgroundImages);\n }\n /* @conditional-compile-remove(video-background-effects) */\n public updateSelectedVideoBackgroundEffect(selectedVideoBackground: SelectedVideoBackgroundEffect): void {\n this.context.setSelectedVideoBackgroundEffect(selectedVideoBackground);\n }\n public startCall(participants: string[]\n /* @conditional-compile-remove(PSTN-calls) */ | CommunicationIdentifier[], options?: StartCallOptions): CallTypeOf<AgentType> | undefined {\n if (_isInCall(this.getState().call?.state ?? 'None')) {\n throw new Error('You are already in the call.');\n }\n const idsToAdd = participants.map(participant => {\n // FIXME: `onStartCall` does not allow a Teams user.\n // Need some way to return an error if a Teams user is provided.\n const backendId: CommunicationIdentifier = _toCommunicationIdentifier(participant);\n if (isPhoneNumberIdentifier(backendId)) {\n if (options?.alternateCallerId === undefined) {\n throw new Error('Unable to start call, PSTN user present with no alternateCallerId.');\n }\n return (backendId as PhoneNumberIdentifier);\n } else if (isCommunicationUserIdentifier(backendId)) {\n return (backendId as CommunicationUserIdentifier);\n }\n return (backendId as UnknownIdentifier);\n });\n const call = (this.handlers.onStartCall(idsToAdd, options) as CallTypeOf<AgentType>);\n if (!call) {\n throw new Error('Unable to start call.');\n }\n this.processNewCall(call);\n return call;\n }\n private processNewCall(call: CallCommon): void {\n this.call = call;\n this.context.setCurrentCallId(call.id);\n\n // Resync state after callId is set\n this.context.updateClientState(this.callClient.getState());\n this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, this.call);\n this.subscribeCallEvents();\n }\n public async removeParticipant(userId: string | /* @conditional-compile-remove(PSTN-calls) */CommunicationIdentifier): Promise<void> {\n let participant = userId;\n /* @conditional-compile-remove(PSTN-calls) */\n participant = _toCommunicationIdentifier(userId);\n this.handlers.onRemoveParticipant(participant);\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: CommunicationUserIdentifier): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: PhoneNumberIdentifier | CommunicationUserIdentifier, options?: AddPhoneNumberOptions): Promise<void> {\n if (isPhoneNumberIdentifier(participant) && options) {\n this.handlers.onAddParticipant(participant, options);\n } else if (isCommunicationUserIdentifier(participant)) {\n this.handlers.onAddParticipant(participant);\n }\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n public async holdCall(): Promise<void> {\n if (this.call?.state !== 'LocalHold') {\n this.handlers.onToggleHold();\n }\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n public async resumeCall(): Promise<void> {\n if (this.call?.state === 'LocalHold') {\n this.handlers.onToggleHold();\n }\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n public async sendDtmfTone(dtmfTone: DtmfTone): Promise<void> {\n this.handlers.onSendDtmfTone(dtmfTone);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async startCaptions(options?: StartCaptionsOptions): Promise<void> {\n this.handlers.onStartCaptions(options);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async stopCaptions(): Promise<void> {\n this.handlers.onStopCaptions();\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setCaptionLanguage(language: string): Promise<void> {\n this.handlers.onSetCaptionLanguage(language);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setSpokenLanguage(language: string): Promise<void> {\n this.handlers.onSetSpokenLanguage(language);\n }\n public getState(): CallAdapterState {\n return this.context.getState();\n }\n public onStateChange(handler: (state: CallAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n public offStateChange(handler: (state: CallAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n on(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;\n on(event: 'participantsLeft', listener: ParticipantsLeftListener): void;\n on(event: 'isMutedChanged', listener: IsMutedChangedListener): void;\n on(event: 'callIdChanged', listener: CallIdChangedListener): void;\n on(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;\n on(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;\n on(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;\n on(event: 'callEnded', listener: CallEndedListener): void;\n on(event: 'diagnosticChanged', listener: DiagnosticChangedEventListner): void;\n on(event: 'selectedMicrophoneChanged', listener: PropertyChangedEvent): void;\n on(event: 'selectedSpeakerChanged', listener: PropertyChangedEvent): void;\n on(event: 'error', errorHandler: (e: AdapterError) => void): void;\n /* @conditional-compile-remove(close-captions) */\n on(event: 'captionsReceived', listener: CaptionsReceivedListener): void;\n /* @conditional-compile-remove(close-captions) */\n on(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n\n /* @conditional-compile-remove(close-captions) */\n private subscribeToCaptionEvents(): void {\n if (this.call && this.call.state === 'Connected' && _isTeamsMeetingCall(this.call)) {\n this.call?.feature(Features.TeamsCaptions).on('captionsReceived', this.captionsReceived.bind(this));\n this.call?.feature(Features.TeamsCaptions).on('isCaptionsActiveChanged', this.isCaptionsActiveChanged.bind(this));\n this.call?.off('stateChanged', this.subscribeToCaptionEvents.bind(this));\n }\n }\n private subscribeCallEvents(): void {\n this.call?.on('remoteParticipantsUpdated', this.onRemoteParticipantsUpdated.bind(this));\n this.call?.on('isMutedChanged', this.isMyMutedChanged.bind(this));\n this.call?.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));\n this.call?.on('idChanged', this.callIdChanged.bind(this));\n /* @conditional-compile-remove(close-captions) */\n this.call?.on('stateChanged', this.subscribeToCaptionEvents.bind(this));\n }\n private unsubscribeCallEvents(): void {\n for (const subscriber of this.participantSubscribers.values()) {\n subscriber.unsubscribeAll();\n }\n this.participantSubscribers.clear();\n this.call?.off('remoteParticipantsUpdated', this.onRemoteParticipantsUpdated.bind(this));\n this.call?.off('isMutedChanged', this.isMyMutedChanged.bind(this));\n this.call?.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));\n this.call?.off('idChanged', this.callIdChanged.bind(this));\n /* @conditional-compile-remove(close-captions) */\n this._call?.feature(Features.TeamsCaptions).off('captionsReceived', this.captionsReceived.bind(this));\n /* @conditional-compile-remove(close-captions) */\n this._call?.feature(Features.TeamsCaptions).off('isCaptionsActiveChanged', this.isCaptionsActiveChanged.bind(this));\n /* @conditional-compile-remove(close-captions) */\n this.call?.off('stateChanged', this.subscribeToCaptionEvents.bind(this));\n }\n private isMyMutedChanged = (): void => {\n this.emitter.emit('isMutedChanged', {\n participantId: this.getState().userId,\n isMuted: this.call?.isMuted\n });\n };\n private onRemoteParticipantsUpdated({\n added,\n removed\n }: {\n added: RemoteParticipant[];\n removed: RemoteParticipant[];\n }): void {\n if (added && added.length > 0) {\n this.emitter.emit('participantsJoined', {\n joined: added\n });\n }\n if (removed && removed.length > 0) {\n this.emitter.emit('participantsLeft', {\n removed: removed\n });\n }\n added.forEach(participant => {\n this.participantSubscribers.set(toFlatCommunicationIdentifier(participant.identifier), new ParticipantSubscriber(participant, this.emitter));\n });\n removed.forEach(participant => {\n const subscriber = this.participantSubscribers.get(toFlatCommunicationIdentifier(participant.identifier));\n subscriber && subscriber.unsubscribeAll();\n this.participantSubscribers.delete(toFlatCommunicationIdentifier(participant.identifier));\n });\n }\n private isScreenSharingOnChanged(): void {\n this.emitter.emit('isLocalScreenSharingActiveChanged', {\n isScreenSharingOn: this.call?.isScreenSharingOn\n });\n }\n\n /* @conditional-compile-remove(close-captions) */\n private captionsReceived(captionsInfo: TeamsCaptionsInfo): void {\n this.emitter.emit('captionsReceived', {\n captionsInfo\n });\n }\n\n /* @conditional-compile-remove(close-captions) */\n private isCaptionsActiveChanged(): void {\n this.emitter.emit('isCaptionsActiveChanged', {\n isActive: this.call?.feature(Features.TeamsCaptions).isCaptionsFeatureActive\n });\n }\n private callIdChanged(): void {\n this.call?.id && this.emitter.emit('callIdChanged', {\n callId: this.call.id\n });\n }\n private resetDiagnosticsForwarder(newCall?: CallCommon): void {\n if (this.diagnosticsForwarder) {\n this.diagnosticsForwarder.unsubscribe();\n }\n if (newCall) {\n this.diagnosticsForwarder = new DiagnosticsForwarder(this.emitter, newCall);\n }\n }\n off(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;\n off(event: 'participantsLeft', listener: ParticipantsLeftListener): void;\n off(event: 'isMutedChanged', listener: IsMutedChangedListener): void;\n off(event: 'callIdChanged', listener: CallIdChangedListener): void;\n off(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;\n off(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;\n off(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;\n off(event: 'callEnded', listener: CallEndedListener): void;\n off(event: 'diagnosticChanged', listener: DiagnosticChangedEventListner): void;\n off(event: 'selectedMicrophoneChanged', listener: PropertyChangedEvent): void;\n off(event: 'selectedSpeakerChanged', listener: PropertyChangedEvent): void;\n off(event: 'error', errorHandler: (e: AdapterError) => void): void;\n /* @conditional-compile-remove(close-captions) */\n off(event: 'captionsReceived', listener: CaptionsReceivedListener): void;\n /* @conditional-compile-remove(close-captions) */\n off(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isCallError((error as Error))) {\n this.emitter.emit('error', (error as AdapterError));\n }\n throw error;\n }\n }\n private teeErrorToEventEmitter<T>(f: () => T): T {\n try {\n return f();\n } catch (error) {\n if (isCallError((error as Error))) {\n this.emitter.emit('error', (error as AdapterError));\n }\n throw error;\n }\n }\n}\n\n/* @conditional-compile-remove(teams-adhoc-call) */\n/* @conditional-compile-remove(PSTN-calls) */\n/**\n * Locator used by {@link createAzureCommunicationCallAdapter} to call one or more participants\n *\n * @remarks\n * This is currently in beta and only supports calling one Teams User.\n *\n * @example\n * ```\n * ['8:orgid:ab220efe-5725-4742-9792-9fba7c9ac458']\n * ```\n *\n * @beta\n */\nexport type CallParticipantsLocator = {\n participantIds: string[];\n};\n\n/**\n * Locator used by {@link createAzureCommunicationCallAdapter} to locate the call to join\n *\n * @public\n */\nexport type CallAdapterLocator = TeamsMeetingLinkLocator | GroupCallLocator | /* @conditional-compile-remove(rooms) */RoomCallLocator | /* @conditional-compile-remove(teams-adhoc-call) */ /* @conditional-compile-remove(PSTN-calls) */CallParticipantsLocator;\n\n/**\n * Common optional parameters to create {@link AzureCommunicationCallAdapter} or {@link TeamsCallAdapter}\n *\n * @beta\n */\nexport type CommonCallAdapterOptions = {\n /* @conditional-compile-remove(video-background-effects) */\n /**\n * Default set of background images for background image picker.\n */\n videoBackgroundImages?: VideoBackgroundImage[];\n};\n\n/**\n * Optional parameters to create {@link AzureCommunicationCallAdapter}\n *\n * @beta\n */\nexport type AzureCommunicationCallAdapterOptions = {\n /* @conditional-compile-remove(rooms) */\n /**\n * Use this to hint the role of the user when the role is not available before a Rooms call is started. This value\n * should be obtained using the Rooms API. This role will determine permissions in the configuration page of the\n * {@link CallComposite}. The true role of the user will be synced with ACS services when a Rooms call starts.\n */\n roleHint?: Role;\n} & CommonCallAdapterOptions;\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link CallAdapter}.\n *\n * Note: `displayName` can be a maximum of 256 characters.\n *\n * @public\n */\nexport type AzureCommunicationCallAdapterArgs = {\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n locator: CallAdapterLocator;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * A phone number in E.164 format procured using Azure Communication Services that will be used to represent callers identity.\n * E.164 numbers are formatted as [+] [country code] [phone number including area code]. For example, +14255550123 for a US phone number.\n */\n alternateCallerId?: string;\n /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(video-background-effects) */\n /**\n * Optional parameters for the {@link AzureCommunicationCallAdapter} created\n */\n options?: AzureCommunicationCallAdapterOptions;\n};\n\n/**\n * Optional parameters to create {@link TeamsCallAdapter}\n *\n * @beta\n */\nexport type TeamsAdapterOptions = {\n /**\n * Use this to fetch profile information which will override data in {@link CallAdapterState} like display name\n * The onFetchProfile is fetch-and-forget one time action for each user, once a user profile is updated, the value will be cached\n * and would not be updated again within the lifecycle of adapter.\n */\n onFetchProfile?: OnFetchProfileCallback;\n} & CommonCallAdapterOptions;\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link TeamsCallAdapter}.\n *\n * @beta\n */\nexport type TeamsCallAdapterArgs = {\n userId: MicrosoftTeamsUserIdentifier;\n credential: CommunicationTokenCredential;\n locator: TeamsMeetingLinkLocator;\n /**\n * Optional parameters for the {@link TeamsCallAdapter} created\n */\n options?: TeamsAdapterOptions;\n};\n\n/**\n * Create a {@link CallAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link CallAdapter} provided by this library.\n *\n * Note: `displayName` can be a maximum of 256 characters.\n *\n * @public\n */\nexport const createAzureCommunicationCallAdapter = async ({\n userId,\n displayName,\n credential,\n locator,\n /* @conditional-compile-remove(PSTN-calls) */alternateCallerId,\n /* @conditional-compile-remove(video-background-effects) */options\n}: AzureCommunicationCallAdapterArgs): Promise<CallAdapter> => {\n if (!isValidIdentifier(userId)) {\n throw new Error('Invalid identifier. Please provide valid identifier object.');\n }\n const callClient = createStatefulCallClient({\n userId,\n /* @conditional-compile-remove(PSTN-calls) */alternateCallerId\n });\n const callAgent = await callClient.createCallAgent(credential, {\n displayName\n });\n const adapter = createAzureCommunicationCallAdapterFromClient(callClient, callAgent, locator, /* @conditional-compile-remove(video-background-effects) */options);\n return adapter;\n};\n\n/* @conditional-compile-remove(teams-identity-support) */\n/**\n * @beta\n */\nexport const createTeamsCallAdapter = async ({\n userId,\n credential,\n locator,\n options\n}: TeamsCallAdapterArgs): Promise<TeamsCallAdapter> => {\n const callClient = createStatefulCallClient({\n userId\n });\n const callAgent = await callClient.createTeamsCallAgent(credential, {\n undefined\n });\n const adapter = createTeamsCallAdapterFromClient(callClient, callAgent, locator, options);\n return adapter;\n};\ntype PartialArgsType<Adapter> = Adapter extends CallAdapter ? Partial<AzureCommunicationCallAdapterArgs> : Partial<TeamsCallAdapterArgs>;\ntype AdapterOf<AdapterKind extends 'AzureCommunication' | 'Teams'> = AdapterKind extends 'AzureCommunication' ? CallAdapter : never | /* @conditional-compile-remove(teams-identity-support) */TeamsCallAdapter;\n\n/**\n * @private\n */\nconst useAzureCommunicationCallAdapterGeneric = <AdapterKind extends 'AzureCommunication' | 'Teams', Adapter extends AdapterOf<AdapterKind>>(args: PartialArgsType<Adapter>, afterCreate?: (adapter: Adapter) => Promise<Adapter>, beforeDispose?: (adapter: Adapter) => Promise<void>, adapterKind: AdapterKind = ('AzureCommunication' as AdapterKind)): Adapter | undefined => {\n const {\n credential,\n locator,\n userId\n } = args;\n const displayName = 'displayName' in args ? args.displayName : undefined;\n /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = 'alternateCallerId' in args ? args.alternateCallerId : undefined;\n /* @conditional-compile-remove(rooms) */\n const options = 'options' in args ? args.options : undefined;\n\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<Adapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<Adapter | undefined>(undefined);\n const afterCreateRef = useRef<((adapter: Adapter) => Promise<Adapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: Adapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n useEffect(() => {\n if (!credential || !locator || !userId) {\n return;\n }\n if (adapterKind === 'AzureCommunication' && !displayName) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n let newAdapter: Adapter | undefined = undefined;\n if (adapterKind === 'AzureCommunication') {\n // This is just the type check to ensure that displayName is defined.\n if (!displayName) {\n throw new Error('Unreachable code, displayName already checked above.');\n }\n // This is just the type check to ensure that roleHint is defined.\n /* @conditional-compile-remove(rooms) */\n if (options && !('roleHint' in options)) {\n throw new Error('Unreachable code, provided a options without roleHint.');\n }\n newAdapter = (await createAzureCommunicationCallAdapter({\n credential,\n displayName: displayName,\n locator,\n userId: (userId as CommunicationUserIdentifier),\n /* @conditional-compile-remove(PSTN-calls) */alternateCallerId,\n /* @conditional-compile-remove(rooms) */options\n }) as Adapter);\n } else if (adapterKind === 'Teams') {\n /* @conditional-compile-remove(teams-identity-support) */\n newAdapter = (await createTeamsCallAdapter({\n credential,\n locator: (locator as TeamsMeetingLinkLocator),\n userId: (userId as MicrosoftTeamsUserIdentifier),\n options\n }) as Adapter);\n } else {\n throw new Error('Unreachable code, unknown adapterKind');\n }\n if (!newAdapter) {\n throw Error('Unreachable code! Get undefined adapter');\n }\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, credential, locator, adapterKind, userId, displayName, /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId, /* @conditional-compile-remove(rooms) */\n /* @conditional-compile-remove(teams-identity-support) */\n options]);\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n return adapter;\n};\n\n/**\n * A custom React hook to simplify the creation of {@link CallAdapter}.\n *\n * Similar to {@link createAzureCommunicationCallAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationCallAdapter = (args: Partial<AzureCommunicationCallAdapterArgs>, afterCreate?: (adapter: CallAdapter) => Promise<CallAdapter>, beforeDispose?: (adapter: CallAdapter) => Promise<void>): CallAdapter | undefined => {\n return useAzureCommunicationCallAdapterGeneric(args, afterCreate, beforeDispose, 'AzureCommunication');\n};\n\n/* @conditional-compile-remove(teams-identity-support) */\n/**\n * A custom React hook to simplify the creation of {@link TeamsCallAdapter}.\n *\n * Similar to {@link createTeamsAzureCommunicationCallAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @beta\n */\nexport const useTeamsCallAdapter = (args: Partial<TeamsCallAdapterArgs>, afterCreate?: (adapter: TeamsCallAdapter) => Promise<TeamsCallAdapter>, beforeDispose?: (adapter: TeamsCallAdapter) => Promise<void>): TeamsCallAdapter | undefined => {\n return useAzureCommunicationCallAdapterGeneric(args, afterCreate, beforeDispose, 'Teams');\n};\n\n/**\n * Create a {@link CallAdapter} using the provided {@link StatefulCallClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulCallClient}.\n * Consider using {@link createAzureCommunicationCallAdapter} for a simpler API.\n *\n * @public\n */\nexport const createAzureCommunicationCallAdapterFromClient: (callClient: StatefulCallClient, callAgent: CallAgent, locator: CallAdapterLocator, /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(video-background-effects) */options?: AzureCommunicationCallAdapterOptions) => Promise<CallAdapter> = async (callClient: StatefulCallClient, callAgent: CallAgent, locator: CallAdapterLocator, options?): Promise<CallAdapter> => {\n const deviceManager = (await callClient.getDeviceManager() as StatefulDeviceManager);\n /* @conditional-compile-remove(unsupported-browser) */\n await callClient.feature(Features.DebugInfo).getEnvironmentInfo();\n return new AzureCommunicationCallAdapter(callClient, locator, callAgent, deviceManager, /* @conditional-compile-remove(rooms) */options);\n};\n\n/* @conditional-compile-remove(teams-identity-support) */\n/**\n * Create a {@link TeamsCallAdapter} using the provided {@link StatefulCallClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulCallClient}.\n * Consider using {@link createAzureCommunicationCallAdapter} for a simpler API.\n *\n * @beta\n */\nexport const createTeamsCallAdapterFromClient = async (callClient: StatefulCallClient, callAgent: TeamsCallAgent, locator: CallAdapterLocator, options?: TeamsAdapterOptions): Promise<TeamsCallAdapter> => {\n const deviceManager = (await callClient.getDeviceManager() as StatefulDeviceManager);\n /* @conditional-compile-remove(unsupported-browser) */\n await callClient.feature(Features.DebugInfo).getEnvironmentInfo();\n return new AzureCommunicationCallAdapter(callClient, locator, callAgent, deviceManager, options);\n};\nconst isCallError = (e: Error): e is CallError => {\n return e['target'] !== undefined && e['innerError'] !== undefined;\n};\n\n/* @conditional-compile-remove(teams-adhoc-call) */\n/* @conditional-compile-remove(PSTN-calls) */\nconst isOutboundCall = (callLocator: CallAdapterLocator): callLocator is CallParticipantsLocator => {\n return 'participantIds' in callLocator;\n};\"../../../../../calling-component-bindings/src\"\"../../../../../calling-stateful-client/src\"\"../../../../../react-components/src\"\"../../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"AzureCommunicationCallAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _isInCall, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallClientState, CallError, CallState, createStatefulCallClient, StatefulCallClient, StatefulDeviceManager, TeamsCall, TeamsCallAgent as BetaTeamsCallAgent, _isACSCall, _isTeamsCall } from '@internal/calling-stateful-client';\nimport { CallCommon } from '@internal/calling-stateful-client';\nimport { AudioOptions, CallAgent, GroupCallLocator, TeamsMeetingLinkLocator, LocalVideoStream as SDKLocalVideoStream, AudioDeviceInfo, VideoDeviceInfo, RemoteParticipant, PermissionConstraints, PropertyChangedEvent, StartCallOptions, VideoOptions, Call } from '@azure/communication-calling';\nimport { EventEmitter } from 'events';\nimport { CommonCallAdapter, CallEndedListener, CallIdChangedListener, CallAdapterState, DisplayNameChangedListener, IsMutedChangedListener, IsLocalScreenSharingActiveChangedListener, IsSpeakingChangedListener, ParticipantsJoinedListener, ParticipantsLeftListener, DiagnosticChangedEventListner, CallAdapterCallEndedEvent, CallAdapter } from './CallAdapter';\nimport { getCallCompositePage, IsCallEndedPage, isCameraOn } from '../utils';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\nimport { toFlatCommunicationIdentifier, _toCommunicationIdentifier, _isValidIdentifier } from '@internal/acs-ui-common';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier, isCommunicationUserIdentifier, isPhoneNumberIdentifier, UnknownIdentifier, PhoneNumberIdentifier, CommunicationIdentifier, MicrosoftTeamsUserIdentifier } from '@azure/communication-common';\nimport { ParticipantSubscriber } from './ParticipantSubcriber';\nimport { AdapterError } from '../../common/adapters';\nimport { DiagnosticsForwarder } from './DiagnosticsForwarder';\nimport { useEffect, useRef, useState } from 'react';\nimport { CallHandlersOf, createHandlers } from './createHandlers';\nimport { createProfileStateModifier, OnFetchProfileCallback } from './OnFetchProfileCallback';\ntype CallTypeOf<AgentType extends CallAgent | BetaTeamsCallAgent> = AgentType extends CallAgent ? Call : TeamsCall;\n\n/** Context of call, which is a centralized context for all state updates */\nclass CallContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: CallAdapterState;\n private callId: string | undefined;\n private displayNameModifier: AdapterStateModifier | undefined;\n constructor(clientState: CallClientState, isTeamsCall: boolean, options?: {\n maxListeners?: number;\n onFetchProfile?: OnFetchProfileCallback;\n }) {\n this.state = {\n isLocalPreviewMicrophoneEnabled: false,\n userId: clientState.userId,\n displayName: clientState.callAgent?.displayName,\n devices: clientState.deviceManager,\n call: undefined,\n page: 'configuration',\n latestErrors: clientState.latestErrors,\n isTeamsCall,\n cameraStatus: undefined\n };\n this.emitter.setMaxListeners(options?.maxListeners ?? 50);\n this.bindPublicMethods();\n this.displayNameModifier = options?.onFetchProfile ? createProfileStateModifier(options.onFetchProfile, () => {\n this.setState(this.getState());\n }) : undefined;\n }\n private bindPublicMethods(): void {}\n public onStateChange(handler: (_uiState: CallAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (_uiState: CallAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n public setState(state: CallAdapterState): void {\n this.state = this.displayNameModifier ? this.displayNameModifier(state) : state;\n this.emitter.emit('stateChanged', this.state);\n }\n public getState(): CallAdapterState {\n return this.state;\n }\n public setIsLocalMicrophoneEnabled(isLocalPreviewMicrophoneEnabled: boolean): void {\n this.setState({\n ...this.state,\n isLocalPreviewMicrophoneEnabled\n });\n }\n\n // This is the key to find current call object in client state\n public setCurrentCallId(callId: string | undefined): void {\n this.callId = callId;\n }\n public onCallEnded(handler: (callEndedData: CallAdapterCallEndedEvent) => void): void {\n this.emitter.on('callEnded', handler);\n }\n public offCallEnded(handler: (callEndedData: CallAdapterCallEndedEvent) => void): void {\n this.emitter.off('callEnded', handler);\n }\n public updateClientState(clientState: CallClientState): void {\n let call = this.callId ? clientState.calls[this.callId] : undefined;\n const latestEndedCall = clientState.callsEnded ? findLatestEndedCall(clientState.callsEnded) : undefined;\n // As the state is transitioning to a new state, trigger appropriate callback events.\n const oldPage = this.state.page;\n const newPage = getCallCompositePage(call, latestEndedCall);\n if (!IsCallEndedPage(oldPage) && IsCallEndedPage(newPage)) {\n this.emitter.emit('callEnded', {\n callId: this.callId\n });\n // Reset the callId to undefined as the call has ended.\n this.setCurrentCallId(undefined);\n // Make sure that the call is set to undefined in the state.\n call = undefined;\n }\n if (this.state.page) {\n this.setState({\n ...this.state,\n userId: clientState.userId,\n displayName: clientState.callAgent?.displayName,\n call,\n page: newPage,\n endedCall: latestEndedCall,\n devices: clientState.deviceManager,\n latestErrors: clientState.latestErrors,\n cameraStatus: call?.localVideoStreams.find(s => s.mediaStreamType === 'Video') || clientState.deviceManager.unparentedViews.find(s => s.mediaStreamType === 'Video') ? 'On' : 'Off'\n });\n }\n }\n}\nconst findLatestEndedCall = (calls: {\n [key: string]: CallState;\n}): CallState | undefined => {\n const callStates = Object.values(calls);\n if (callStates.length === 0) {\n return undefined;\n }\n let latestCall = callStates[0];\n for (const call of callStates.slice(1)) {\n if ((call.endTime?.getTime() ?? 0) > (latestCall.endTime?.getTime() ?? 0)) {\n latestCall = call;\n }\n }\n return latestCall;\n};\n/**\n * @private\n */\nexport type AdapterStateModifier = (state: CallAdapterState) => CallAdapterState;\n\n/**\n * @private\n */\nexport class AzureCommunicationCallAdapter<AgentType extends CallAgent | BetaTeamsCallAgent = CallAgent> implements CommonCallAdapter {\n private callClient: StatefulCallClient;\n private callAgent: AgentType;\n private deviceManager: StatefulDeviceManager;\n private localStream: SDKLocalVideoStream | undefined;\n private locator: CallAdapterLocator;\n // Never use directly, even internally. Use `call` property instead.\n private _call?: CallCommon;\n private context: CallContext;\n private diagnosticsForwarder?: DiagnosticsForwarder;\n private handlers: CallHandlersOf<AgentType>;\n private participantSubscribers = new Map<string, ParticipantSubscriber>();\n private emitter: EventEmitter = new EventEmitter();\n private onClientStateChange: (clientState: CallClientState) => void;\n private get call(): CallCommon | undefined {\n return this._call;\n }\n private set call(newCall: CallCommon | undefined) {\n this.resetDiagnosticsForwarder(newCall);\n this._call = newCall;\n }\n constructor(callClient: StatefulCallClient, locator: CallAdapterLocator, callAgent: AgentType, deviceManager: StatefulDeviceManager, options?: AzureCommunicationCallAdapterOptions & TeamsAdapterOptions) {\n this.bindPublicMethods();\n this.callClient = callClient;\n this.callAgent = callAgent;\n this.locator = locator;\n this.deviceManager = deviceManager;\n const isTeamsMeeting = ('meetingLink' in this.locator);\n this.context = new CallContext(callClient.getState(), isTeamsMeeting, options);\n this.context.onCallEnded(endCallData => this.emitter.emit('callEnded', endCallData));\n const onStateChange = (clientState: CallClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n callClient.offStateChange(onStateChange);\n return;\n }\n\n // `updateClientState` searches for the current call from all the calls in the state using a cached `call.id`\n // from the call object. `call.id` can change during a call. We must update the cached `call.id` before\n // calling `updateClientState` so that we find the correct state object for the call even when `call.id`\n // has changed.\n // https://github.com/Azure/communication-ui-library/pull/1820\n if (this.call?.id) {\n this.context.setCurrentCallId(this.call.id);\n }\n this.context.updateClientState(clientState);\n };\n this.handlers = createHandlers(callClient, callAgent, deviceManager, undefined);\n this.onClientStateChange = onStateChange;\n this.subscribeDeviceManagerEvents();\n this.callClient.onStateChange(onStateChange);\n }\n\n // TODO: update this to include the 'selectedCameraChanged' when calling adds it to the device manager\n private subscribeDeviceManagerEvents(): void {\n this.deviceManager.on('selectedMicrophoneChanged', () => {\n this.emitter.emit('selectedMicrophoneChanged');\n });\n this.deviceManager.on('selectedSpeakerChanged', () => {\n this.emitter.emit('selectedSpeakerChanged');\n });\n }\n private bindPublicMethods(): void {\n this.onStateChange.bind(this);\n this.offStateChange.bind(this);\n this.getState.bind(this);\n this.dispose.bind(this);\n this.joinCall.bind(this);\n this.leaveCall.bind(this);\n this.setCamera.bind(this);\n this.setMicrophone.bind(this);\n this.setSpeaker.bind(this);\n this.askDevicePermission.bind(this);\n this.queryCameras.bind(this);\n this.queryMicrophones.bind(this);\n this.querySpeakers.bind(this);\n this.startCamera.bind(this);\n this.stopCamera.bind(this);\n this.mute.bind(this);\n this.unmute.bind(this);\n this.startCall.bind(this);\n this.startScreenShare.bind(this);\n this.stopScreenShare.bind(this);\n this.removeParticipant.bind(this);\n this.createStreamView.bind(this);\n this.disposeStreamView.bind(this);\n this.on.bind(this);\n this.off.bind(this);\n this.processNewCall.bind(this);\n }\n public dispose(): void {\n this.resetDiagnosticsForwarder();\n this.callClient.offStateChange(this.onClientStateChange);\n this.callAgent.dispose();\n }\n public async queryCameras(): Promise<VideoDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.getCameras();\n });\n }\n public async queryMicrophones(): Promise<AudioDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.getMicrophones();\n });\n }\n public async querySpeakers(): Promise<AudioDeviceInfo[]> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return this.deviceManager.isSpeakerSelectionAvailable ? this.deviceManager.getSpeakers() : [];\n });\n }\n public async askDevicePermission(constrain: PermissionConstraints): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.deviceManager.askDevicePermission(constrain);\n });\n }\n public joinCall(microphoneOn?: boolean): CallTypeOf<AgentType> | undefined {\n if (_isInCall(this.getState().call?.state ?? 'None')) {\n throw new Error('You are already in the call!');\n }\n return this.teeErrorToEventEmitter(() => {\n const audioOptions: AudioOptions = {\n muted: !(microphoneOn ?? this.getState().isLocalPreviewMicrophoneEnabled)\n };\n // TODO: find a way to expose stream to here\n const videoOptions = {\n localVideoStreams: this.localStream ? [this.localStream] : undefined\n };\n const call = this._joinCall(audioOptions, videoOptions);\n this.processNewCall(call);\n return call;\n });\n }\n private _joinCall(audioOptions: AudioOptions, videoOptions: VideoOptions): CallTypeOf<AgentType> {\n const isTeamsMeeting = ('meetingLink' in this.locator);\n if (isTeamsMeeting) {\n return (this.callAgent.join((this.locator as TeamsMeetingLinkLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n return (this.callAgent.join((this.locator as GroupCallLocator), {\n audioOptions,\n videoOptions\n }) as CallTypeOf<AgentType>);\n }\n public async createStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void | CreateVideoStreamViewResult> {\n if (remoteUserId === undefined) {\n return await this.handlers.onCreateLocalStreamView(options);\n } else {\n return await this.handlers.onCreateRemoteStreamView(remoteUserId, options);\n }\n }\n public async disposeStreamView(remoteUserId?: string): Promise<void> {\n if (remoteUserId === undefined) {\n await this.handlers.onDisposeLocalStreamView();\n } else {\n await this.handlers.onDisposeRemoteStreamView(remoteUserId);\n }\n }\n public async leaveCall(forEveryone?: boolean): Promise<void> {\n await this.handlers.onHangUp(forEveryone);\n this.unsubscribeCallEvents();\n this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, undefined);\n // We set the adapter.call object to undefined immediately when a call is ended.\n // We do not set the context.callId to undefined because it is a part of the immutable data flow loop.\n this.call = undefined;\n this.stopCamera();\n this.mute();\n }\n public async setCamera(device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectCamera(device, options);\n });\n }\n public async setMicrophone(device: AudioDeviceInfo): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectMicrophone(device);\n });\n }\n public async setSpeaker(device: AudioDeviceInfo): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onSelectSpeaker(device);\n });\n }\n public async startCamera(options?: VideoStreamOptions): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (!isCameraOn(this.getState())) {\n // First kick off the effect on the local device before starting the camera in the call.\n // This prevents the effect not being applied for a brief moment when the camera is started.\n await this.handlers.onToggleCamera(options);\n }\n });\n }\n public async stopCamera(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (isCameraOn(this.getState())) {\n await this.handlers.onToggleCamera();\n }\n });\n }\n public async mute(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n this.context.setIsLocalMicrophoneEnabled(false);\n if (_isInCall(this.call?.state) && !this.call?.isMuted) {\n await this.handlers.onToggleMicrophone();\n }\n });\n }\n public async unmute(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n this.context.setIsLocalMicrophoneEnabled(true);\n if (_isInCall(this.call?.state) && this.call?.isMuted) {\n await this.handlers.onToggleMicrophone();\n }\n });\n }\n public async startScreenShare(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (!this.call?.isScreenSharingOn) {\n await this.handlers.onToggleScreenShare();\n }\n });\n }\n public async stopScreenShare(): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n if (this.call?.isScreenSharingOn) {\n await this.handlers.onToggleScreenShare();\n }\n });\n }\n public startCall(participants: string[]\n /* @conditional-compile-remove(PSTN-calls) */ | CommunicationIdentifier[], options?: StartCallOptions): CallTypeOf<AgentType> | undefined {\n if (_isInCall(this.getState().call?.state ?? 'None')) {\n throw new Error('You are already in the call.');\n }\n const idsToAdd = participants.map(participant => {\n // FIXME: `onStartCall` does not allow a Teams user.\n // Need some way to return an error if a Teams user is provided.\n const backendId: CommunicationIdentifier = _toCommunicationIdentifier(participant);\n if (isPhoneNumberIdentifier(backendId)) {\n if (options?.alternateCallerId === undefined) {\n throw new Error('Unable to start call, PSTN user present with no alternateCallerId.');\n }\n return (backendId as PhoneNumberIdentifier);\n } else if (isCommunicationUserIdentifier(backendId)) {\n return (backendId as CommunicationUserIdentifier);\n }\n return (backendId as UnknownIdentifier);\n });\n const call = (this.handlers.onStartCall(idsToAdd, options) as CallTypeOf<AgentType>);\n if (!call) {\n throw new Error('Unable to start call.');\n }\n this.processNewCall(call);\n return call;\n }\n private processNewCall(call: CallCommon): void {\n this.call = call;\n this.context.setCurrentCallId(call.id);\n\n // Resync state after callId is set\n this.context.updateClientState(this.callClient.getState());\n this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, this.call);\n this.subscribeCallEvents();\n }\n public async removeParticipant(userId: string): Promise<void> {\n let participant = userId;\n this.handlers.onRemoveParticipant(participant);\n }\n public getState(): CallAdapterState {\n return this.context.getState();\n }\n public onStateChange(handler: (state: CallAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n public offStateChange(handler: (state: CallAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n on(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;\n on(event: 'participantsLeft', listener: ParticipantsLeftListener): void;\n on(event: 'isMutedChanged', listener: IsMutedChangedListener): void;\n on(event: 'callIdChanged', listener: CallIdChangedListener): void;\n on(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;\n on(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;\n on(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;\n on(event: 'callEnded', listener: CallEndedListener): void;\n on(event: 'diagnosticChanged', listener: DiagnosticChangedEventListner): void;\n on(event: 'selectedMicrophoneChanged', listener: PropertyChangedEvent): void;\n on(event: 'selectedSpeakerChanged', listener: PropertyChangedEvent): void;\n on(event: 'error', errorHandler: (e: AdapterError) => void): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n private subscribeCallEvents(): void {\n this.call?.on('remoteParticipantsUpdated', this.onRemoteParticipantsUpdated.bind(this));\n this.call?.on('isMutedChanged', this.isMyMutedChanged.bind(this));\n this.call?.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));\n this.call?.on('idChanged', this.callIdChanged.bind(this));\n }\n private unsubscribeCallEvents(): void {\n for (const subscriber of this.participantSubscribers.values()) {\n subscriber.unsubscribeAll();\n }\n this.participantSubscribers.clear();\n this.call?.off('remoteParticipantsUpdated', this.onRemoteParticipantsUpdated.bind(this));\n this.call?.off('isMutedChanged', this.isMyMutedChanged.bind(this));\n this.call?.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));\n this.call?.off('idChanged', this.callIdChanged.bind(this));\n }\n private isMyMutedChanged = (): void => {\n this.emitter.emit('isMutedChanged', {\n participantId: this.getState().userId,\n isMuted: this.call?.isMuted\n });\n };\n private onRemoteParticipantsUpdated({\n added,\n removed\n }: {\n added: RemoteParticipant[];\n removed: RemoteParticipant[];\n }): void {\n if (added && added.length > 0) {\n this.emitter.emit('participantsJoined', {\n joined: added\n });\n }\n if (removed && removed.length > 0) {\n this.emitter.emit('participantsLeft', {\n removed: removed\n });\n }\n added.forEach(participant => {\n this.participantSubscribers.set(toFlatCommunicationIdentifier(participant.identifier), new ParticipantSubscriber(participant, this.emitter));\n });\n removed.forEach(participant => {\n const subscriber = this.participantSubscribers.get(toFlatCommunicationIdentifier(participant.identifier));\n subscriber && subscriber.unsubscribeAll();\n this.participantSubscribers.delete(toFlatCommunicationIdentifier(participant.identifier));\n });\n }\n private isScreenSharingOnChanged(): void {\n this.emitter.emit('isLocalScreenSharingActiveChanged', {\n isScreenSharingOn: this.call?.isScreenSharingOn\n });\n }\n private callIdChanged(): void {\n this.call?.id && this.emitter.emit('callIdChanged', {\n callId: this.call.id\n });\n }\n private resetDiagnosticsForwarder(newCall?: CallCommon): void {\n if (this.diagnosticsForwarder) {\n this.diagnosticsForwarder.unsubscribe();\n }\n if (newCall) {\n this.diagnosticsForwarder = new DiagnosticsForwarder(this.emitter, newCall);\n }\n }\n off(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;\n off(event: 'participantsLeft', listener: ParticipantsLeftListener): void;\n off(event: 'isMutedChanged', listener: IsMutedChangedListener): void;\n off(event: 'callIdChanged', listener: CallIdChangedListener): void;\n off(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;\n off(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;\n off(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;\n off(event: 'callEnded', listener: CallEndedListener): void;\n off(event: 'diagnosticChanged', listener: DiagnosticChangedEventListner): void;\n off(event: 'selectedMicrophoneChanged', listener: PropertyChangedEvent): void;\n off(event: 'selectedSpeakerChanged', listener: PropertyChangedEvent): void;\n off(event: 'error', errorHandler: (e: AdapterError) => void): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isCallError((error as Error))) {\n this.emitter.emit('error', (error as AdapterError));\n }\n throw error;\n }\n }\n private teeErrorToEventEmitter<T>(f: () => T): T {\n try {\n return f();\n } catch (error) {\n if (isCallError((error as Error))) {\n this.emitter.emit('error', (error as AdapterError));\n }\n throw error;\n }\n }\n}\n/**\n * Locator used by {@link createAzureCommunicationCallAdapter} to locate the call to join\n *\n * @public\n */\nexport type CallAdapterLocator = TeamsMeetingLinkLocator | GroupCallLocator;\n\n/**\n * Common optional parameters to create {@link AzureCommunicationCallAdapter} or {@link TeamsCallAdapter}\n *\n * @beta\n */\nexport type CommonCallAdapterOptions = {};\n\n/**\n * Optional parameters to create {@link AzureCommunicationCallAdapter}\n *\n * @beta\n */\nexport type AzureCommunicationCallAdapterOptions = {} & CommonCallAdapterOptions;\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link CallAdapter}.\n *\n * Note: `displayName` can be a maximum of 256 characters.\n *\n * @public\n */\nexport type AzureCommunicationCallAdapterArgs = {\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n locator: CallAdapterLocator;\n};\n\n/**\n * Optional parameters to create {@link TeamsCallAdapter}\n *\n * @beta\n */\nexport type TeamsAdapterOptions = {\n /**\n * Use this to fetch profile information which will override data in {@link CallAdapterState} like display name\n * The onFetchProfile is fetch-and-forget one time action for each user, once a user profile is updated, the value will be cached\n * and would not be updated again within the lifecycle of adapter.\n */\n onFetchProfile?: OnFetchProfileCallback;\n} & CommonCallAdapterOptions;\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link TeamsCallAdapter}.\n *\n * @beta\n */\nexport type TeamsCallAdapterArgs = {\n userId: MicrosoftTeamsUserIdentifier;\n credential: CommunicationTokenCredential;\n locator: TeamsMeetingLinkLocator;\n /**\n * Optional parameters for the {@link TeamsCallAdapter} created\n */\n options?: TeamsAdapterOptions;\n};\n\n/**\n * Create a {@link CallAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link CallAdapter} provided by this library.\n *\n * Note: `displayName` can be a maximum of 256 characters.\n *\n * @public\n */\nexport const createAzureCommunicationCallAdapter = async ({\n userId,\n displayName,\n credential,\n locator\n}: AzureCommunicationCallAdapterArgs): Promise<CallAdapter> => {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Invalid identifier. Please provide valid identifier object.');\n }\n const callClient = createStatefulCallClient({\n userId\n });\n const callAgent = await callClient.createCallAgent(credential, {\n displayName\n });\n const adapter = createAzureCommunicationCallAdapterFromClient(callClient, callAgent, locator);\n return adapter;\n};\ntype PartialArgsType<Adapter> = Adapter extends CallAdapter ? Partial<AzureCommunicationCallAdapterArgs> : Partial<TeamsCallAdapterArgs>;\ntype AdapterOf<AdapterKind extends 'AzureCommunication' | 'Teams'> = AdapterKind extends 'AzureCommunication' ? CallAdapter : never;\n\n/**\n * @private\n */\nconst useAzureCommunicationCallAdapterGeneric = <AdapterKind extends 'AzureCommunication' | 'Teams', Adapter extends AdapterOf<AdapterKind>>(args: PartialArgsType<Adapter>, afterCreate?: (adapter: Adapter) => Promise<Adapter>, beforeDispose?: (adapter: Adapter) => Promise<void>, adapterKind: AdapterKind = ('AzureCommunication' as AdapterKind)): Adapter | undefined => {\n const {\n credential,\n locator,\n userId\n } = args;\n const displayName = 'displayName' in args ? args.displayName : undefined;\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<Adapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<Adapter | undefined>(undefined);\n const creatingAdapterRef = useRef<boolean>(false);\n const afterCreateRef = useRef<((adapter: Adapter) => Promise<Adapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: Adapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n useEffect(() => {\n if (!credential || !locator || !userId) {\n return;\n }\n if (adapterKind === 'AzureCommunication' && !displayName) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n let newAdapter: Adapter | undefined = undefined;\n if (adapterKind === 'AzureCommunication') {\n // This is just the type check to ensure that displayName is defined.\n if (!displayName) {\n throw new Error('Unreachable code, displayName already checked above.');\n }\n // This is just the type check to ensure that roleHint is defined.\n if (creatingAdapterRef.current) {\n console.warn('Adapter is already being created, please see storybook for more information: https://azure.github.io/communication-ui-library/?path=/story/troubleshooting--page');\n return;\n }\n creatingAdapterRef.current = true;\n newAdapter = (await createAzureCommunicationCallAdapter({\n credential,\n displayName: displayName,\n locator,\n userId: (userId as CommunicationUserIdentifier)\n }) as Adapter);\n } else if (adapterKind === 'Teams') {\n if (creatingAdapterRef.current) {\n console.warn('Adapter is already being created, skipping creation.');\n return;\n }\n creatingAdapterRef.current = true;\n } else {\n throw new Error('Unreachable code, unknown adapterKind');\n }\n if (!newAdapter) {\n throw Error('Unreachable code! Get undefined adapter');\n }\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n creatingAdapterRef.current = false;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, adapterKind, credential, locator, userId, displayName]);\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n return adapter;\n};\n\n/**\n * A custom React hook to simplify the creation of {@link CallAdapter}.\n *\n * Similar to {@link createAzureCommunicationCallAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationCallAdapter = (args: Partial<AzureCommunicationCallAdapterArgs>, afterCreate?: (adapter: CallAdapter) => Promise<CallAdapter>, beforeDispose?: (adapter: CallAdapter) => Promise<void>): CallAdapter | undefined => {\n return useAzureCommunicationCallAdapterGeneric(args, afterCreate, beforeDispose, 'AzureCommunication');\n};\n/**\n * Create a {@link CallAdapter} using the provided {@link StatefulCallClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulCallClient}.\n * Consider using {@link createAzureCommunicationCallAdapter} for a simpler API.\n *\n * @public\n */\nexport const createAzureCommunicationCallAdapterFromClient: (callClient: StatefulCallClient, callAgent: CallAgent, locator: CallAdapterLocator) => Promise<CallAdapter> = async (callClient: StatefulCallClient, callAgent: CallAgent, locator: CallAdapterLocator, options?): Promise<CallAdapter> => {\n const deviceManager = (await callClient.getDeviceManager() as StatefulDeviceManager);\n return new AzureCommunicationCallAdapter(callClient, locator, callAgent, deviceManager);\n};\nconst isCallError = (e: Error): e is CallError => {\n return e['target'] !== undefined && e['innerError'] !== undefined;\n};\"../../../../../calling-component-bindings/src\"\"../../../../../calling-stateful-client/src\"\"../../../../../react-components/src\"\"../../../../../acs-ui-common/src\""]}