@azure/communication-react 1.5.1-alpha-202211250013.0 → 1.5.1-alpha-202301250013

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 (307) hide show
  1. package/CHANGELOG.beta.md +47 -1
  2. package/CHANGELOG.json +1554 -0
  3. package/CHANGELOG.stable.md +88 -2
  4. package/dist/communication-react.d.ts +469 -297
  5. package/dist/dist-cjs/communication-react/index.js +2975 -1716
  6. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/identifier.js +3 -47
  8. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +5 -0
  12. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +8 -0
  13. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +30 -11
  15. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +1 -2
  17. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +0 -7
  18. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +13 -4
  20. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +7 -0
  22. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +9 -0
  23. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +12 -0
  25. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +31 -6
  26. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +2 -13
  28. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +2 -1
  30. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -1
  32. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +14 -0
  33. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  34. package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -1
  35. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  36. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +3 -0
  37. package/dist/dist-esm/calling-stateful-client/src/Logger.js +3 -0
  38. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  39. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +2 -1
  40. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +11 -4
  41. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  42. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +93 -27
  43. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  44. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +2 -2
  45. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  46. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.d.ts +19 -0
  47. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +43 -0
  48. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -0
  49. package/dist/dist-esm/communication-react/src/index.d.ts +7 -5
  50. package/dist/dist-esm/communication-react/src/index.js +5 -3
  51. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +105 -0
  53. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +86 -0
  54. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -0
  55. package/dist/dist-esm/react-components/src/components/DevicePermissions/{DomainPermissionsScaffolding.d.ts → SitePermissionsScaffolding.d.ts} +12 -12
  56. package/dist/dist-esm/react-components/src/components/DevicePermissions/{DomainPermissionsScaffolding.js → SitePermissionsScaffolding.js} +4 -4
  57. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -0
  58. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +20 -9
  59. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  60. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.d.ts +1 -0
  61. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +18 -2
  62. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  63. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts +4 -0
  64. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +1 -1
  65. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  66. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.d.ts +4 -0
  67. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +1 -1
  68. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  69. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +8 -0
  70. package/dist/dist-esm/react-components/src/components/ErrorBar.js +1 -2
  71. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  72. package/dist/dist-esm/react-components/src/components/MessageThread.js +6 -4
  73. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +0 -2
  75. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +10 -12
  76. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  77. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +4 -0
  78. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +26 -4
  79. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  80. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +10 -4
  81. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +79 -7
  82. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  83. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.d.ts +6 -6
  84. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +13 -21
  85. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  86. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.d.ts +37 -0
  87. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +27 -0
  88. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -0
  89. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.d.ts +41 -0
  90. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +32 -0
  91. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -0
  92. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.d.ts +32 -0
  93. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +25 -0
  94. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -0
  95. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +16 -0
  96. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +60 -0
  97. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -0
  98. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.d.ts +12 -0
  99. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +41 -0
  100. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -0
  101. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.d.ts +25 -0
  102. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +76 -0
  103. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -0
  104. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +38 -0
  105. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js +4 -0
  106. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -0
  107. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +9 -0
  108. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +18 -0
  109. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -0
  110. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.d.ts +14 -0
  111. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js +19 -0
  112. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js.map +1 -0
  113. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.d.ts +6 -0
  114. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +9 -0
  115. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -0
  116. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.d.ts +62 -0
  117. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +118 -0
  118. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -0
  119. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.d.ts +14 -0
  120. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +28 -0
  121. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -0
  122. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.d.ts +6 -0
  123. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js +9 -0
  124. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -0
  125. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.d.ts +9 -0
  126. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js +22 -0
  127. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -0
  128. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.d.ts +10 -0
  129. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +29 -0
  130. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -0
  131. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.d.ts +45 -0
  132. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +57 -0
  133. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -0
  134. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts +2 -2
  135. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +7 -2
  136. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +23 -0
  138. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +96 -0
  139. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -0
  140. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +27 -0
  141. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +121 -0
  142. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -0
  143. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +66 -0
  144. package/dist/dist-esm/react-components/src/components/VideoGallery.js +131 -124
  145. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  146. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +12 -17
  147. package/dist/dist-esm/react-components/src/components/VideoTile.js +71 -38
  148. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  149. package/dist/dist-esm/react-components/src/components/index.d.ts +8 -3
  150. package/dist/dist-esm/react-components/src/components/index.js +3 -2
  151. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/components/styles/{DomainPermissions.styles.d.ts → SitePermissions.styles.d.ts} +1 -1
  153. package/dist/dist-esm/react-components/src/components/styles/{DomainPermissions.styles.js → SitePermissions.styles.js} +1 -1
  154. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -0
  155. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +2 -1
  156. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.d.ts +26 -0
  158. package/dist/dist-esm/react-components/src/components/styles/{UnsupportedBrowser.styles.js → UnsupportedEnvironment.styles.js} +25 -10
  159. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -0
  160. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +1 -95
  161. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +3 -138
  162. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -1
  164. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +11 -26
  165. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/utils/useLongPress.d.ts +13 -10
  167. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +66 -37
  168. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/utils.d.ts +1 -6
  170. package/dist/dist-esm/react-components/src/components/utils.js +4 -16
  171. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  173. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  174. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +31 -19
  175. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +1 -1
  177. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +1 -1
  178. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +49 -14
  179. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +1 -1
  180. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +1 -1
  181. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +1 -1
  182. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +1 -1
  183. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +1 -1
  184. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +1 -1
  185. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +1 -1
  186. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +1 -1
  187. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +1 -1
  188. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +1 -1
  189. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +1 -1
  190. package/dist/dist-esm/react-components/src/theming/icons.d.ts +11 -6
  191. package/dist/dist-esm/react-components/src/theming/icons.js +30 -20
  192. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +1 -1
  194. package/dist/dist-esm/react-components/src/theming/icons.styles.js +1 -1
  195. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -0
  197. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  198. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +24 -11
  199. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +9 -9
  200. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  201. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +56 -0
  202. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  203. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +16 -10
  204. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +89 -40
  205. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  206. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +11 -16
  207. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  208. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +2 -2
  209. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js +1 -1
  210. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  211. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  212. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +19 -18
  213. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  214. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +5 -4
  215. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +79 -39
  216. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  217. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +16 -0
  218. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageCameraDropdown.js → ConfigurationPageCameraDropdown.js} +4 -6
  219. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -0
  220. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageErrorBar.d.ts → ConfigurationPageErrorBar.d.ts} +3 -4
  221. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageErrorBar.js → ConfigurationPageErrorBar.js} +4 -6
  222. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -0
  223. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +16 -0
  224. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageMicDropdown.js → ConfigurationPageMicDropdown.js} +4 -8
  225. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -0
  226. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +1 -0
  227. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  228. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -1
  229. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +16 -14
  230. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  231. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +8 -3
  232. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  233. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +3 -0
  234. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +26 -4
  235. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  236. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -1
  237. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +11 -3
  239. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  240. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +4 -4
  241. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js +1 -1
  242. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  243. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +6 -2
  244. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  245. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +3 -3
  246. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +46 -27
  247. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  248. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +2 -0
  249. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +28 -7
  250. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  251. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +7 -0
  252. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +9 -1
  253. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  254. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts +4 -0
  255. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +10 -0
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  257. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +29 -0
  258. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +119 -0
  259. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -0
  260. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +20 -4
  261. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +74 -21
  262. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  263. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +16 -7
  264. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +22 -10
  265. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  266. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +2 -0
  267. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  268. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -0
  269. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +11 -5
  270. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  271. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -0
  272. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  273. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -0
  274. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +7 -1
  275. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  276. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +8 -0
  277. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  278. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +4 -0
  279. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  280. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +26 -3
  281. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  282. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.d.ts +8 -0
  283. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +40 -0
  284. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -0
  285. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +1 -1
  286. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  287. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  288. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  289. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +11 -6
  290. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +1 -0
  291. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  292. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +2 -1
  293. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  294. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +15 -1
  295. package/package.json +13 -12
  296. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.d.ts +0 -101
  297. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.js +0 -80
  298. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.js.map +0 -1
  299. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js.map +0 -1
  300. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +0 -1
  301. package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.d.ts +0 -22
  302. package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.js.map +0 -1
  303. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +0 -17
  304. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +0 -1
  305. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageErrorBar.js.map +0 -1
  306. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +0 -17
  307. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StreamUtils.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/StreamUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CreateViewOptions,\n LocalVideoStream,\n VideoStreamRenderer,\n VideoStreamRendererView\n} from '@azure/communication-calling';\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { LocalVideoStreamState, RemoteVideoStreamState } from './CallClientState';\nimport { CallContext } from './CallContext';\nimport {\n convertSdkLocalStreamToDeclarativeLocalStream,\n convertSdkRemoteStreamToDeclarativeRemoteStream,\n convertFromSDKToDeclarativeVideoStreamRendererView\n} from './Converter';\nimport { InternalCallContext } from './InternalCallContext';\nimport { toFlatCommunicationIdentifier, _logEvent } from '@internal/acs-ui-common';\nimport { callingStatefulLogger, EventNames } from './Logger';\n\n/**\n * Return result from {@link StatefulCallClient.createView}.\n *\n * @public\n */\nexport type CreateViewResult = {\n renderer: VideoStreamRenderer;\n view: VideoStreamRendererView;\n};\n\nasync function createViewRemoteVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n participantId: CommunicationIdentifierKind | string,\n stream: RemoteVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n // Render RemoteVideoStream that is part of a Call\n const streamId = stream.id;\n let participantKey;\n if (typeof participantId === 'string') {\n participantKey = participantId;\n } else {\n participantKey = toFlatCommunicationIdentifier(participantId);\n }\n const streamLogInfo = { callId, participantKey, streamId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATING_REMOTE_VIEW,\n level: 'info',\n message: 'Start creating view for remote video.',\n data: streamLogInfo\n });\n const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_NOT_FOUND,\n level: 'error',\n message: 'RemoteVideoStream not found in state.',\n data: streamLogInfo\n });\n console.warn('RemoteVideoStream not found in state');\n return;\n }\n\n if (renderInfo.status === 'Rendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_ALREADY_RENDERED,\n level: 'warning',\n message: 'RemoteVideoStream is already rendered.',\n data: streamLogInfo\n });\n console.warn('RemoteVideoStream is already rendered');\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_RENDERING,\n level: 'warning',\n message: 'RemoteVideoStream is rendering.',\n data: streamLogInfo\n });\n return;\n }\n\n if (renderInfo.status === 'Stopping') {\n console.warn('RemoteVideoStream is in the middle of stopping');\n return;\n }\n\n const renderer = new VideoStreamRenderer(renderInfo.stream);\n\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Rendering', undefined);\n\n let view;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_REMOTE_STREAM_FAIL,\n level: 'error',\n message: 'Failed to create remote view',\n data: streamLogInfo\n });\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);\n throw e;\n }\n\n const refreshedRenderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n if (!refreshedRenderInfo) {\n // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer\n // and clean up state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_RENDER_INFO_NOT_FOUND,\n level: 'error',\n message: '`Cannot find remote render info after create the view.',\n data: streamLogInfo\n });\n renderer.dispose();\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state.\n renderer.dispose();\n internalContext.setRemoteRenderInfo(\n callId,\n participantKey,\n streamId,\n refreshedRenderInfo.stream,\n 'NotRendered',\n undefined\n );\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_VIEW_RENDER_SUCCEED,\n level: 'info',\n message: 'Successfully render the remote view.',\n data: streamLogInfo\n });\n return;\n }\n\n // Else the stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setRemoteRenderInfo(\n callId,\n participantKey,\n streamId,\n refreshedRenderInfo.stream,\n 'Rendered',\n renderer\n );\n context.setRemoteVideoStreamRendererView(\n callId,\n participantKey,\n streamId,\n convertFromSDKToDeclarativeVideoStreamRendererView(view)\n );\n\n return {\n renderer,\n view\n };\n}\n\nasync function createViewLocalVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_LOCAL_STREAM_RENDERING,\n level: 'info',\n message: 'Start creating view for local video.'\n });\n // Render LocalVideoStream that is part of a Call\n const renderInfo = internalContext.getLocalRenderInfo(callId);\n\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_NOT_FOUND,\n level: 'error',\n message: 'LocalVideoStream not found in state.'\n });\n console.warn('LocalVideoStream not found in state');\n return;\n }\n\n if (renderInfo.status === 'Rendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_ALREADY_RENDERED,\n level: 'warning',\n message: 'LocalVideoStream is already rendered.'\n });\n console.warn('LocalVideoStream is already rendered');\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_RENDERING,\n level: 'warning',\n message: 'LocalVideoStream is rendering.'\n });\n return;\n }\n\n if (renderInfo.status === 'Stopping') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'warning',\n message: 'LocalVideoStream is in the middle of stopping.'\n });\n console.warn('LocalVideoStream is in the middle of stopping');\n return;\n }\n\n const renderer = new VideoStreamRenderer(renderInfo.stream);\n\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'Rendering', renderer);\n\n let view;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_LOCAL_STREAM_FAIL,\n level: 'error',\n message: 'Failed to create view.',\n data: {\n error: e\n }\n });\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'NotRendered', undefined);\n throw e;\n }\n\n // Since render could take some time, we need to check if the stream is still valid and if we received a signal to\n // stop rendering.\n const refreshedRenderInfo = internalContext.getLocalRenderInfo(callId);\n if (!refreshedRenderInfo) {\n // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer\n // and clean up the state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDER_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find local render info after create the view. ',\n data: {\n callId\n }\n });\n renderer.dispose();\n context.setLocalVideoStreamRendererView(callId, undefined);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_CREATED_STREAM_STOPPING,\n level: 'warning',\n message: 'Render info status is stopping, dispose renderer. ',\n data: {\n callId\n }\n });\n renderer.dispose();\n internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'NotRendered', undefined);\n context.setLocalVideoStreamRendererView(callId, undefined);\n return;\n }\n\n // Else The stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'Rendered', renderer);\n context.setLocalVideoStreamRendererView(callId, convertFromSDKToDeclarativeVideoStreamRendererView(view));\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_VIEW_RENDER_SUCCEED,\n level: 'info',\n message: `Successfully render the local view.`,\n data: {\n callId\n }\n });\n\n return {\n renderer,\n view\n };\n}\n\nasync function createViewUnparentedVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n stream: LocalVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n const renderInfo = internalContext.getUnparentedRenderInfo(stream);\n\n if (renderInfo && renderInfo.status === 'Rendered') {\n console.warn('Unparented LocalVideoStream is already rendered');\n return;\n }\n\n if (renderInfo && renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n return;\n }\n\n if (renderInfo && renderInfo.status === 'Stopping') {\n console.warn('Unparented LocalVideoStream is in the middle of stopping');\n return;\n }\n\n const localVideoStream = new LocalVideoStream(stream.source);\n const renderer = new VideoStreamRenderer(localVideoStream);\n\n internalContext.setUnparentedRenderInfo(stream, localVideoStream, 'Rendering', undefined);\n\n let view: VideoStreamRendererView;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n // Special case for unparented views. Since they are not tied to anything and created by us based on the calls to\n // this function we'll delete it to clean up the data since keeping it around doesn't help us and if developer wants\n // to create a new view they can check that the view is not rendered and call this function again.\n internalContext.deleteUnparentedRenderInfo(stream);\n throw e;\n }\n\n // Since render could take some time, we need to check if the stream is still valid and if we received a signal to\n // stop rendering.\n const refreshedRenderInfo = internalContext.getUnparentedRenderInfo(stream);\n if (!refreshedRenderInfo) {\n // Unparented stream's RenderInfo was deleted. Currently this shouldn't happen but if it does we'll just dispose the\n // renderer and clean up state. If developer wanted the stream they could call this function again and that should\n // generate new working state via this function.\n renderer.dispose();\n context.deleteDeviceManagerUnparentedView(stream);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state. Special case for unparented views, delete them from state when stopped to free up\n // the memory since we were the ones generating this and not tied to any Call state.\n internalContext.deleteUnparentedRenderInfo(stream);\n context.deleteDeviceManagerUnparentedView(stream);\n return;\n }\n\n // Else the stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setUnparentedRenderInfo(stream, localVideoStream, 'Rendered', renderer);\n context.setDeviceManagerUnparentedView(stream, convertFromSDKToDeclarativeVideoStreamRendererView(view));\n\n return {\n renderer,\n view\n };\n}\n\nfunction disposeViewRemoteVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n participantId: CommunicationIdentifierKind | string,\n stream: RemoteVideoStreamState\n): void {\n const streamId = stream.id;\n\n let participantKey;\n if (typeof participantId === 'string') {\n participantKey = participantId;\n } else {\n participantKey = toFlatCommunicationIdentifier(participantId);\n }\n\n const streamLogInfo = { callId, participantKey, streamId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_REMOTE_STREAM,\n level: 'info',\n message: 'Start disposing remote stream.',\n data: streamLogInfo\n });\n\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n\n const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing remote stream.',\n data: streamLogInfo\n });\n return;\n }\n\n // Sets the status and also renderer. I think we need to always set renderer to undefined since in all status when\n // cleaned up should have renderer as undefined. If the status is 'Rendered' and renderer is not defined it should\n // be cleaned up below so we can set it to undefined here.\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_STOPPING,\n level: 'info',\n message: 'Remote stream is still rendering. Changing status to stopping.',\n data: streamLogInfo\n });\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Stopping', undefined);\n } else {\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);\n }\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_REMOTE_RENDERER,\n level: 'info',\n message: 'Disposing remote view renderer.',\n data: streamLogInfo\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find remote view renderer.',\n data: streamLogInfo\n });\n }\n}\n\nfunction disposeViewLocalVideo(context: CallContext, internalContext: InternalCallContext, callId: string): void {\n const streamLogInfo = { callId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_LOCAL_STREAM,\n level: 'info',\n message: 'Start disposing local stream.',\n data: streamLogInfo\n });\n\n context.setLocalVideoStreamRendererView(callId, undefined);\n\n const renderInfo = internalContext.getLocalRenderInfo(callId);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing local stream.',\n data: streamLogInfo\n });\n return;\n }\n\n // Sets the status and also renderer. I think we need to always set renderer to undefined since in all status when\n // cleaned up should have renderer as undefined. If the status is 'Rendered' and renderer is not defined it should\n // be cleaned up below so we can set it to undefined here.\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'info',\n message: 'Local stream is still rendering. Changing status to stopping.',\n data: streamLogInfo\n });\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'Stopping', undefined);\n } else {\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'NotRendered', undefined);\n }\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_LOCAL_RENDERER,\n level: 'info',\n message: 'Disposing local view renderer.',\n data: streamLogInfo\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find renderer when disposing local stream.',\n data: streamLogInfo\n });\n }\n}\n\nfunction disposeViewUnparentedVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n stream: LocalVideoStreamState\n): void {\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_LOCAL_STREAM,\n level: 'info',\n message: 'Start disposing unparented local stream.'\n });\n\n context.deleteDeviceManagerUnparentedView(stream);\n\n const renderInfo = internalContext.getUnparentedRenderInfo(stream);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing unparented local stream.'\n });\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'info',\n message: 'Unparented local stream is still rendering. Changing status to stopping.'\n });\n internalContext.setUnparentedRenderInfo(stream, renderInfo.stream, 'Stopping', undefined);\n } else {\n internalContext.deleteUnparentedRenderInfo(stream);\n }\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_LOCAL_RENDERER,\n level: 'info',\n message: 'Disposing unparented local view renderer.'\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find renderer when disposing unparented local stream.'\n });\n }\n}\n\n/**\n * @private\n */\nexport function createView(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string | undefined,\n participantId: CommunicationIdentifierKind | string | undefined,\n stream: LocalVideoStreamState | RemoteVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n if ('id' in stream && callId && participantId) {\n // Render RemoteVideoStream that is part of a Call\n return createViewRemoteVideo(context, internalContext, callId, participantId, stream, options);\n } else if (!('id' in stream) && callId) {\n // Render LocalVideoStream that is part of a Call\n return createViewLocalVideo(context, internalContext, callId, options);\n } else if (!('id' in stream) && !callId) {\n // Render LocalVideoStream that is not part of a Call\n return createViewUnparentedVideo(context, internalContext, stream, options);\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_STREAM_INVALID_PARAMS,\n level: 'warning',\n message: 'Create View invalid combination of parameters.'\n });\n return Promise.resolve(undefined);\n }\n}\n\n/**\n * @private\n */\nexport function disposeView(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string | undefined,\n participantId: CommunicationIdentifierKind | string | undefined,\n stream: LocalVideoStreamState | RemoteVideoStreamState\n): void {\n if ('id' in stream && callId && participantId) {\n // Stop rendering RemoteVideoStream that is part of a Call\n disposeViewRemoteVideo(context, internalContext, callId, participantId, stream);\n } else if (!('id' in stream) && callId) {\n // Stop rendering LocalVideoStream that is part of a Call\n disposeViewLocalVideo(context, internalContext, callId);\n } else if (!('id' in stream) && !callId) {\n // Stop rendering LocalVideoStream that is not part of a Call\n disposeViewUnparentedVideo(context, internalContext, stream);\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSE_STREAM_INVALID_PARAMS,\n level: 'warning',\n message: 'Dispose View invalid combination of parameters.'\n });\n return;\n }\n}\n\n/**\n * @private\n * Only stops videos that are tied to a Call.\n */\nexport function disposeAllViewsFromCall(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string\n): void {\n const callStreams = internalContext.getRemoteRenderInfoForCall(callId);\n if (callStreams) {\n for (const [participantKey, participantStreams] of callStreams.entries()) {\n for (const [_, remoteStreamAndRenderer] of participantStreams.entries()) {\n // We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to\n // convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.\n disposeView(\n context,\n internalContext,\n callId,\n participantKey,\n convertSdkRemoteStreamToDeclarativeRemoteStream(remoteStreamAndRenderer.stream)\n );\n }\n }\n }\n const localStreamAndRenderer = internalContext.getLocalRenderInfo(callId);\n if (localStreamAndRenderer && localStreamAndRenderer.renderer) {\n // We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to\n // convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.\n disposeView(\n context,\n internalContext,\n callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(localStreamAndRenderer.stream)\n );\n }\n}\n\n/**\n * @private\n */\nexport function disposeAllViews(context: CallContext, internalContext: InternalCallContext): void {\n const callIds = internalContext.getCallIds();\n for (const callId of callIds) {\n disposeAllViewsFromCall(context, internalContext, callId);\n }\n}\n\"../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"StreamUtils.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/StreamUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CreateViewOptions,\n LocalVideoStream,\n VideoStreamRenderer,\n VideoStreamRendererView\n} from '@azure/communication-calling';\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { LocalVideoStreamState, RemoteVideoStreamState } from './CallClientState';\nimport { CallContext } from './CallContext';\nimport {\n convertSdkLocalStreamToDeclarativeLocalStream,\n convertSdkRemoteStreamToDeclarativeRemoteStream,\n convertFromSDKToDeclarativeVideoStreamRendererView\n} from './Converter';\nimport { InternalCallContext } from './InternalCallContext';\nimport { toFlatCommunicationIdentifier, _logEvent } from '@internal/acs-ui-common';\nimport { callingStatefulLogger, EventNames } from './Logger';\n\n/**\n * Return result from {@link StatefulCallClient.createView}.\n *\n * @public\n */\nexport type CreateViewResult = {\n renderer: VideoStreamRenderer;\n view: VideoStreamRendererView;\n};\n\nasync function createViewRemoteVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n participantId: CommunicationIdentifierKind | string,\n stream: RemoteVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n // Render RemoteVideoStream that is part of a Call\n const streamId = stream.id;\n let participantKey;\n if (typeof participantId === 'string') {\n participantKey = participantId;\n } else {\n participantKey = toFlatCommunicationIdentifier(participantId);\n }\n const streamLogInfo = { callId, participantKey, streamId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATING_REMOTE_VIEW,\n level: 'info',\n message: 'Start creating view for remote video.',\n data: streamLogInfo\n });\n const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_NOT_FOUND,\n level: 'error',\n message: 'RemoteVideoStream not found in state.',\n data: streamLogInfo\n });\n console.warn('RemoteVideoStream not found in state');\n return;\n }\n\n if (renderInfo.status === 'Rendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_ALREADY_RENDERED,\n level: 'warning',\n message: 'RemoteVideoStream is already rendered.',\n data: streamLogInfo\n });\n console.warn('RemoteVideoStream is already rendered');\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_RENDERING,\n level: 'warning',\n message: 'RemoteVideoStream is rendering.',\n data: streamLogInfo\n });\n return;\n }\n\n // \"Stopping\" only happens if the stream was in \"rendering\" but `disposeView` was called.\n // Now that `createView` has been re-called, we can flip the state back to \"rendering\".\n if (renderInfo.status === 'Stopping') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_STOPPING,\n level: 'warning',\n message: 'RemoteVideoStream was marked as stopping by dispose view. Resetting state to \"Rendering\".'\n });\n internalContext.setRemoteRenderInfo(\n callId,\n participantKey,\n streamId,\n renderInfo.stream,\n 'Rendering',\n renderInfo.renderer\n );\n return;\n }\n\n const renderer = new VideoStreamRenderer(renderInfo.stream);\n\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Rendering', undefined);\n\n let view;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_REMOTE_STREAM_FAIL,\n level: 'error',\n message: 'Failed to create remote view',\n data: streamLogInfo\n });\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);\n throw e;\n }\n\n // Since render could take some time, we need to check if the stream is still valid and if we received a signal to\n // stop rendering.\n const refreshedRenderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n if (!refreshedRenderInfo) {\n // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer\n // and clean up state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_RENDER_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find remote render info after create the view.',\n data: streamLogInfo\n });\n renderer.dispose();\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_CREATED_STREAM_STOPPING,\n level: 'warning',\n message: 'Render info status is stopping, dispose renderer.',\n data: streamLogInfo\n });\n renderer.dispose();\n internalContext.setRemoteRenderInfo(\n callId,\n participantKey,\n streamId,\n refreshedRenderInfo.stream,\n 'NotRendered',\n undefined\n );\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n return;\n }\n\n // Else the stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setRemoteRenderInfo(\n callId,\n participantKey,\n streamId,\n refreshedRenderInfo.stream,\n 'Rendered',\n renderer\n );\n context.setRemoteVideoStreamRendererView(\n callId,\n participantKey,\n streamId,\n convertFromSDKToDeclarativeVideoStreamRendererView(view)\n );\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_VIEW_RENDER_SUCCEED,\n level: 'info',\n message: `Successfully render the remote view.`,\n data: {\n streamLogInfo\n }\n });\n\n return {\n renderer,\n view\n };\n}\n\nasync function createViewLocalVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_LOCAL_STREAM_RENDERING,\n level: 'info',\n message: 'Start creating view for local video.'\n });\n // Render LocalVideoStream that is part of a Call\n const renderInfo = internalContext.getLocalRenderInfo(callId);\n\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_NOT_FOUND,\n level: 'error',\n message: 'LocalVideoStream not found in state.'\n });\n console.warn('LocalVideoStream not found in state');\n return;\n }\n\n if (renderInfo.status === 'Rendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_ALREADY_RENDERED,\n level: 'warning',\n message: 'LocalVideoStream is already rendered.'\n });\n console.warn('LocalVideoStream is already rendered');\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_RENDERING,\n level: 'warning',\n message: 'LocalVideoStream is rendering.'\n });\n return;\n }\n\n // \"Stopping\" only happens if the stream was in \"rendering\" but `disposeView` was called.\n // Now that `createView` has been re-called, we can flip the state back to \"rendering\".\n if (renderInfo.status === 'Stopping') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'warning',\n message: 'LocalVideoStream was marked as stopping by dispose view. Resetting state to \"Rendering\".'\n });\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'Rendering', renderInfo.renderer);\n return;\n }\n\n const renderer = new VideoStreamRenderer(renderInfo.stream);\n\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'Rendering', renderer);\n\n let view;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_LOCAL_STREAM_FAIL,\n level: 'error',\n message: 'Failed to create view.',\n data: {\n error: e\n }\n });\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'NotRendered', undefined);\n throw e;\n }\n\n // Since render could take some time, we need to check if the stream is still valid and if we received a signal to\n // stop rendering.\n const refreshedRenderInfo = internalContext.getLocalRenderInfo(callId);\n if (!refreshedRenderInfo) {\n // RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer\n // and clean up the state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDER_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find local render info after create the view. ',\n data: {\n callId\n }\n });\n renderer.dispose();\n context.setLocalVideoStreamRendererView(callId, undefined);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state.\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_CREATED_STREAM_STOPPING,\n level: 'warning',\n message: 'Render info status is stopping, dispose renderer.',\n data: {\n callId\n }\n });\n renderer.dispose();\n internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'NotRendered', undefined);\n context.setLocalVideoStreamRendererView(callId, undefined);\n return;\n }\n\n // Else The stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'Rendered', renderer);\n context.setLocalVideoStreamRendererView(callId, convertFromSDKToDeclarativeVideoStreamRendererView(view));\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_VIEW_RENDER_SUCCEED,\n level: 'info',\n message: `Successfully render the local view.`,\n data: {\n callId\n }\n });\n\n return {\n renderer,\n view\n };\n}\n\nasync function createViewUnparentedVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n stream: LocalVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n const renderInfo = internalContext.getUnparentedRenderInfo(stream);\n\n if (renderInfo && renderInfo.status === 'Rendered') {\n console.warn('Unparented LocalVideoStream is already rendered');\n return;\n }\n\n if (renderInfo && renderInfo.status === 'Rendering') {\n // Do not log to console here as this is a very common situation due to UI rerenders while\n // the video rendering is in progress.\n return;\n }\n\n if (renderInfo && renderInfo.status === 'Stopping') {\n console.warn('Unparented LocalVideoStream is in the middle of stopping');\n return;\n }\n\n const localVideoStream = new LocalVideoStream(stream.source);\n const renderer = new VideoStreamRenderer(localVideoStream);\n\n internalContext.setUnparentedRenderInfo(stream, localVideoStream, 'Rendering', undefined);\n\n let view: VideoStreamRendererView;\n try {\n view = await renderer.createView(options);\n } catch (e) {\n // Special case for unparented views. Since they are not tied to anything and created by us based on the calls to\n // this function we'll delete it to clean up the data since keeping it around doesn't help us and if developer wants\n // to create a new view they can check that the view is not rendered and call this function again.\n internalContext.deleteUnparentedRenderInfo(stream);\n throw e;\n }\n\n // Since render could take some time, we need to check if the stream is still valid and if we received a signal to\n // stop rendering.\n const refreshedRenderInfo = internalContext.getUnparentedRenderInfo(stream);\n if (!refreshedRenderInfo) {\n // Unparented stream's RenderInfo was deleted. Currently this shouldn't happen but if it does we'll just dispose the\n // renderer and clean up state. If developer wanted the stream they could call this function again and that should\n // generate new working state via this function.\n renderer.dispose();\n context.deleteDeviceManagerUnparentedView(stream);\n return;\n }\n\n if (refreshedRenderInfo.status === 'Stopping') {\n // Stop render was called on this stream after we had started rendering. We will dispose this view and do not\n // put the view into the state. Special case for unparented views, delete them from state when stopped to free up\n // the memory since we were the ones generating this and not tied to any Call state.\n internalContext.deleteUnparentedRenderInfo(stream);\n context.deleteDeviceManagerUnparentedView(stream);\n return;\n }\n\n // Else the stream still exists and status is not telling us to stop rendering. Complete the render process by\n // updating the state.\n internalContext.setUnparentedRenderInfo(stream, localVideoStream, 'Rendered', renderer);\n context.setDeviceManagerUnparentedView(stream, convertFromSDKToDeclarativeVideoStreamRendererView(view));\n\n return {\n renderer,\n view\n };\n}\n\nfunction disposeViewRemoteVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string,\n participantId: CommunicationIdentifierKind | string,\n stream: RemoteVideoStreamState\n): void {\n const streamId = stream.id;\n\n let participantKey;\n if (typeof participantId === 'string') {\n participantKey = participantId;\n } else {\n participantKey = toFlatCommunicationIdentifier(participantId);\n }\n\n const streamLogInfo = { callId, participantKey, streamId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_REMOTE_STREAM,\n level: 'info',\n message: 'Start disposing remote stream.',\n data: streamLogInfo\n });\n\n context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);\n\n const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing remote stream.',\n data: streamLogInfo\n });\n return;\n }\n\n // Nothing to dispose of or clean up -- we can safely exit early here.\n if (renderInfo.status === 'NotRendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_ALREADY_DISPOSED,\n level: 'info',\n message: 'RemoteVideoStream is already disposed.',\n data: streamLogInfo\n });\n return;\n }\n\n // Status is already marked as \"stopping\" so we can exit early here. This is because stopping only occurs\n // when the stream is being created in createView but hasn't been completed being created yet. The createView\n // method will see the \"stopping\" status and perform the cleanup\n if (renderInfo.status === 'Stopping') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_STOPPING,\n level: 'info',\n message: 'Remote stream is already stopping.',\n data: streamLogInfo\n });\n return;\n }\n\n // If the stream is in the middle of being rendered (i.e. has state \"Rendering\"), we need the status as\n // \"stopping\" without performing any cleanup. This will tell the `createView` method that it should stop\n // rendering and clean up the state once the view has finished being created.\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_STOPPING,\n level: 'info',\n message: 'Remote stream is still rendering. Changing status to stopping.',\n data: streamLogInfo\n });\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Stopping', undefined);\n return;\n }\n\n // Else the state must be in the \"Rendered\" state, so we can dispose the renderer and clean up the state.\n internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_REMOTE_RENDERER,\n level: 'info',\n message: 'Disposing remote view renderer.',\n data: streamLogInfo\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find remote view renderer.',\n data: streamLogInfo\n });\n }\n}\n\nfunction disposeViewLocalVideo(context: CallContext, internalContext: InternalCallContext, callId: string): void {\n const streamLogInfo = { callId };\n\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_LOCAL_STREAM,\n level: 'info',\n message: 'Start disposing local stream.',\n data: streamLogInfo\n });\n\n context.setLocalVideoStreamRendererView(callId, undefined);\n\n const renderInfo = internalContext.getLocalRenderInfo(callId);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing local stream.',\n data: streamLogInfo\n });\n return;\n }\n\n // Nothing to dispose of or clean up -- we can safely exit early here.\n if (renderInfo.status === 'NotRendered') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_ALREADY_DISPOSED,\n level: 'info',\n message: 'LocalVideoStream is already disposed.'\n });\n return;\n }\n\n // Status is already marked as \"stopping\" so we can exit early here. This is because stopping only occurs\n // when the stream is being created in createView but hasn't been completed being created yet. The createView\n // method will see the \"stopping\" status and perform the cleanup\n if (renderInfo.status === 'Stopping') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'info',\n message: 'Local stream is already stopping.',\n data: streamLogInfo\n });\n return;\n }\n\n // If the stream is in the middle of being rendered (i.e. has state \"Rendering\"), we need the status as\n // \"stopping\" without performing any cleanup. This will tell the `createView` method that it should stop\n // rendering and clean up the state once the view has finished being created.\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.REMOTE_STREAM_STOPPING,\n level: 'info',\n message: 'Remote stream is still rendering. Changing status to stopping.',\n data: streamLogInfo\n });\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'Stopping', renderInfo.renderer);\n return;\n }\n\n // Else the state must be in the \"Rendered\" state, so we can dispose the renderer and clean up the state.\n internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'NotRendered', undefined);\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_LOCAL_RENDERER,\n level: 'info',\n message: 'Disposing local view renderer.',\n data: streamLogInfo\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find renderer when disposing local stream.',\n data: streamLogInfo\n });\n }\n}\n\nfunction disposeViewUnparentedVideo(\n context: CallContext,\n internalContext: InternalCallContext,\n stream: LocalVideoStreamState\n): void {\n _logEvent(callingStatefulLogger, {\n name: EventNames.START_DISPOSE_LOCAL_STREAM,\n level: 'info',\n message: 'Start disposing unparented local stream.'\n });\n\n context.deleteDeviceManagerUnparentedView(stream);\n\n const renderInfo = internalContext.getUnparentedRenderInfo(stream);\n if (!renderInfo) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_DISPOSE_INFO_NOT_FOUND,\n level: 'error',\n message: 'Cannot find render info when disposing unparented local stream.'\n });\n return;\n }\n\n if (renderInfo.status === 'Rendering') {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_STREAM_STOPPING,\n level: 'info',\n message: 'Unparented local stream is still rendering. Changing status to stopping.'\n });\n internalContext.setUnparentedRenderInfo(stream, renderInfo.stream, 'Stopping', undefined);\n } else {\n internalContext.deleteUnparentedRenderInfo(stream);\n }\n\n if (renderInfo.renderer) {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSING_LOCAL_RENDERER,\n level: 'info',\n message: 'Disposing unparented local view renderer.'\n });\n renderInfo.renderer.dispose();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.LOCAL_RENDERER_NOT_FOUND,\n level: 'error',\n message: 'Cannot find renderer when disposing unparented local stream.'\n });\n }\n}\n\n/**\n * @private\n */\nexport function createView(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string | undefined,\n participantId: CommunicationIdentifierKind | string | undefined,\n stream: LocalVideoStreamState | RemoteVideoStreamState,\n options?: CreateViewOptions\n): Promise<CreateViewResult | undefined> {\n if ('id' in stream && callId && participantId) {\n // Render RemoteVideoStream that is part of a Call\n return createViewRemoteVideo(context, internalContext, callId, participantId, stream, options);\n } else if (!('id' in stream) && callId) {\n // Render LocalVideoStream that is part of a Call\n return createViewLocalVideo(context, internalContext, callId, options);\n } else if (!('id' in stream) && !callId) {\n // Render LocalVideoStream that is not part of a Call\n // Because it is not part of the call we don't tee errors to state naturally (e.g. via a Call Client function such as startVideo).\n // We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.\n return context.withAsyncErrorTeedToState(\n async () => await createViewUnparentedVideo(context, internalContext, stream, options),\n 'Call.startVideo'\n )();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.CREATE_STREAM_INVALID_PARAMS,\n level: 'warning',\n message: 'Create View invalid combination of parameters.'\n });\n return Promise.resolve(undefined);\n }\n}\n\n/**\n * @private\n */\nexport function disposeView(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string | undefined,\n participantId: CommunicationIdentifierKind | string | undefined,\n stream: LocalVideoStreamState | RemoteVideoStreamState\n): void {\n if ('id' in stream && callId && participantId) {\n // Stop rendering RemoteVideoStream that is part of a Call\n disposeViewRemoteVideo(context, internalContext, callId, participantId, stream);\n } else if (!('id' in stream) && callId) {\n // Stop rendering LocalVideoStream that is part of a Call\n disposeViewLocalVideo(context, internalContext, callId);\n } else if (!('id' in stream) && !callId) {\n // Stop rendering LocalVideoStream that is not part of a Call\n // Because it is not part of the call we don't tee errors to state naturally (e.g. via a Call Client function such as startVideo).\n // We do not have a stopLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.\n context.withErrorTeedToState(\n () => disposeViewUnparentedVideo(context, internalContext, stream),\n 'Call.stopVideo'\n )();\n } else {\n _logEvent(callingStatefulLogger, {\n name: EventNames.DISPOSE_STREAM_INVALID_PARAMS,\n level: 'warning',\n message: 'Dispose View invalid combination of parameters.'\n });\n return;\n }\n}\n\n/**\n * @private\n * Only stops videos that are tied to a Call.\n */\nexport function disposeAllViewsFromCall(\n context: CallContext,\n internalContext: InternalCallContext,\n callId: string\n): void {\n const callStreams = internalContext.getRemoteRenderInfoForCall(callId);\n if (callStreams) {\n for (const [participantKey, participantStreams] of callStreams.entries()) {\n for (const [_, remoteStreamAndRenderer] of participantStreams.entries()) {\n // We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to\n // convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.\n disposeView(\n context,\n internalContext,\n callId,\n participantKey,\n convertSdkRemoteStreamToDeclarativeRemoteStream(remoteStreamAndRenderer.stream)\n );\n }\n }\n }\n const localStreamAndRenderer = internalContext.getLocalRenderInfo(callId);\n if (localStreamAndRenderer && localStreamAndRenderer.renderer) {\n // We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to\n // convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.\n disposeView(\n context,\n internalContext,\n callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(localStreamAndRenderer.stream)\n );\n }\n}\n\n/**\n * @private\n */\nexport function disposeAllViews(context: CallContext, internalContext: InternalCallContext): void {\n const callIds = internalContext.getCallIds();\n for (const callId of callIds) {\n disposeAllViewsFromCall(context, internalContext, callId);\n }\n}\n\"../../acs-ui-common/src\""]}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export const _isACSCall = (call) => {
7
7
  /* @conditional-compile-remove(teams-identity-support) */
8
- return call.kind === 'Call';
8
+ return !call.kind || call.kind === 'Call';
9
9
  return true;
10
10
  };
11
11
  /**
@@ -13,7 +13,7 @@ export const _isACSCall = (call) => {
13
13
  */
14
14
  export const _isACSCallAgent = (callAgent) => {
15
15
  /* @conditional-compile-remove(teams-identity-support) */
16
- return callAgent.kind === 'CallAgent';
16
+ return !callAgent.kind || callAgent.kind === 'CallAgent';
17
17
  return true;
18
18
  };
19
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/TypeGuards.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAgB,EAAE;IAC3D,yDAAyD;IACzD,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA0B,EAA0B,EAAE;IACpF,yDAAyD;IACzD,OAAO,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAqB,EAAE;IAClE,yDAAyD;IACzD,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAA0B,EAA+B,EAAE;IAC3F,yDAAyD;IACzD,OAAO,SAAS,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Call, CallAgent } from '@azure/communication-calling';\nimport { CallAgentCommon, CallCommon, TeamsCall, TeamsCallAgent } from './BetaToStableTypes';\n\n/**\n * @internal\n */\nexport const _isACSCall = (call: CallCommon): call is Call => {\n /* @conditional-compile-remove(teams-identity-support) */\n return call.kind === 'Call';\n return true;\n};\n\n/**\n * @internal\n */\nexport const _isACSCallAgent = (callAgent: CallAgentCommon): callAgent is CallAgent => {\n /* @conditional-compile-remove(teams-identity-support) */\n return callAgent.kind === 'CallAgent';\n return true;\n};\n\n/**\n * @internal\n */\nexport const _isTeamsCall = (call: CallCommon): call is TeamsCall => {\n /* @conditional-compile-remove(teams-identity-support) */\n return call.kind === 'TeamsCall';\n return false;\n};\n\n/**\n * @internal\n */\nexport const _isTeamsCallAgent = (callAgent: CallAgentCommon): callAgent is TeamsCallAgent => {\n /* @conditional-compile-remove(teams-identity-support) */\n return callAgent.kind === 'TeamsCallAgent';\n return false;\n};\n"]}
1
+ {"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/TypeGuards.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAgB,EAAE;IAC3D,yDAAyD;IACzD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA0B,EAA0B,EAAE;IACpF,yDAAyD;IACzD,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAqB,EAAE;IAClE,yDAAyD;IACzD,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAA0B,EAA+B,EAAE;IAC3F,yDAAyD;IACzD,OAAO,SAAS,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Call, CallAgent } from '@azure/communication-calling';\nimport { CallAgentCommon, CallCommon, TeamsCall, TeamsCallAgent } from './BetaToStableTypes';\n\n/**\n * @internal\n */\nexport const _isACSCall = (call: CallCommon): call is Call => {\n /* @conditional-compile-remove(teams-identity-support) */\n return !call.kind || call.kind === 'Call';\n return true;\n};\n\n/**\n * @internal\n */\nexport const _isACSCallAgent = (callAgent: CallAgentCommon): callAgent is CallAgent => {\n /* @conditional-compile-remove(teams-identity-support) */\n return !callAgent.kind || callAgent.kind === 'CallAgent';\n return true;\n};\n\n/**\n * @internal\n */\nexport const _isTeamsCall = (call: CallCommon): call is TeamsCall => {\n /* @conditional-compile-remove(teams-identity-support) */\n return call.kind === 'TeamsCall';\n return false;\n};\n\n/**\n * @internal\n */\nexport const _isTeamsCallAgent = (callAgent: CallAgentCommon): callAgent is TeamsCallAgent => {\n /* @conditional-compile-remove(teams-identity-support) */\n return callAgent.kind === 'TeamsCallAgent';\n return false;\n};\n"]}
@@ -0,0 +1,19 @@
1
+ import { VideoStreamRendererView } from '@azure/communication-calling';
2
+ import { CallContext } from './CallContext';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare class ProxyVideoStreamRendererView implements ProxyHandler<VideoStreamRendererView> {
7
+ private _context;
8
+ private _callId;
9
+ private _participantId;
10
+ private _streamId;
11
+ constructor(context: CallContext, callId: string, participantId: string, _streamId: number);
12
+ get<P extends keyof VideoStreamRendererView>(target: VideoStreamRendererView, prop: P): any;
13
+ }
14
+ /**
15
+ * Creates a declarative VideoStreamRendererView that is backed by a VideoStreamRendererView from the SDK.
16
+ * Calling methods on this declarative object triggers state updates in the stateful client.
17
+ */
18
+ export declare const videoStreamRendererViewDeclaratify: (view: VideoStreamRendererView, context: CallContext, callId: string, participantId: string, streamId: number) => VideoStreamRendererView;
19
+ //# sourceMappingURL=VideoStreamRendererViewDeclarative.d.ts.map
@@ -0,0 +1,43 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ /**
13
+ * @private
14
+ */
15
+ export class ProxyVideoStreamRendererView {
16
+ constructor(context, callId, participantId, _streamId) {
17
+ this._context = context;
18
+ this._callId = callId;
19
+ this._participantId = participantId;
20
+ this._streamId = _streamId;
21
+ }
22
+ get(target, prop) {
23
+ switch (prop) {
24
+ case 'updateScalingMode': {
25
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
26
+ yield target.updateScalingMode(...args);
27
+ this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);
28
+ });
29
+ }
30
+ default:
31
+ return Reflect.get(target, prop);
32
+ }
33
+ }
34
+ }
35
+ /**
36
+ * Creates a declarative VideoStreamRendererView that is backed by a VideoStreamRendererView from the SDK.
37
+ * Calling methods on this declarative object triggers state updates in the stateful client.
38
+ */
39
+ export const videoStreamRendererViewDeclaratify = (view, context, callId, participantId, streamId) => {
40
+ const proxyVideoStreamRendererView = new ProxyVideoStreamRendererView(context, callId, participantId, streamId);
41
+ return new Proxy(view, proxyVideoStreamRendererView);
42
+ };
43
+ //# sourceMappingURL=VideoStreamRendererViewDeclarative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoStreamRendererViewDeclarative.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/VideoStreamRendererViewDeclarative.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAKlC;;GAEG;AACH,MAAM,OAAO,4BAA4B;IAMvC,YAAY,OAAoB,EAAE,MAAc,EAAE,aAAqB,EAAE,SAAiB;QACxF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,GAAG,CAA0C,MAA+B,EAAE,IAAO;QAC1F,QAAQ,IAAI,EAAE;YACZ,KAAK,mBAAmB,CAAC,CAAC;gBACxB,OAAO,CAAO,GAAG,IAA8D,EAAE,EAAE;oBACjF,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChH,CAAC,CAAA,CAAC;aACH;YACD;gBACE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,IAA6B,EAC7B,OAAoB,EACpB,MAAc,EACd,aAAqB,EACrB,QAAgB,EACS,EAAE;IAC3B,MAAM,4BAA4B,GAAG,IAAI,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAChH,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAA4B,CAAC;AAClF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { VideoStreamRendererView } from '@azure/communication-calling';\nimport { CallContext } from './CallContext';\n\n/**\n * @private\n */\nexport class ProxyVideoStreamRendererView implements ProxyHandler<VideoStreamRendererView> {\n private _context: CallContext;\n private _callId: string;\n private _participantId: string;\n private _streamId: number;\n\n constructor(context: CallContext, callId: string, participantId: string, _streamId: number) {\n this._context = context;\n this._callId = callId;\n this._participantId = participantId;\n this._streamId = _streamId;\n }\n\n public get<P extends keyof VideoStreamRendererView>(target: VideoStreamRendererView, prop: P): any {\n switch (prop) {\n case 'updateScalingMode': {\n return async (...args: Parameters<VideoStreamRendererView['updateScalingMode']>) => {\n await target.updateScalingMode(...args);\n this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);\n };\n }\n default:\n return Reflect.get(target, prop);\n }\n }\n}\n\n/**\n * Creates a declarative VideoStreamRendererView that is backed by a VideoStreamRendererView from the SDK.\n * Calling methods on this declarative object triggers state updates in the stateful client.\n */\nexport const videoStreamRendererViewDeclaratify = (\n view: VideoStreamRendererView,\n context: CallContext,\n callId: string,\n participantId: string,\n streamId: number\n): VideoStreamRendererView => {\n const proxyVideoStreamRendererView = new ProxyVideoStreamRendererView(context, callId, participantId, streamId);\n return new Proxy(view, proxyVideoStreamRendererView) as VideoStreamRendererView;\n};\n"]}
@@ -28,9 +28,8 @@ export type { MessageThreadSelector, TypingIndicatorSelector, ChatParticipantLis
28
28
  export { _IdentifierProvider, CameraButton, ControlBar, ControlBarButton, DevicesButton, EndCallButton, ErrorBar, GridLayout, LocalizationProvider, MessageStatusIndicator, MessageThread, MicrophoneButton, ParticipantItem, ParticipantList, ParticipantsButton, ScreenShareButton, SendBox, StreamMedia, TypingIndicator, VideoGallery, VideoTile } from '../../react-components/src';
29
29
  export { HoldButton } from '../../react-components/src';
30
30
  export { Dialpad } from '../../react-components/src';
31
- export { CameraAndMicrophoneDomainPermissions, MicrophoneDomainPermissions, CameraDomainPermissions } from '../../react-components/src';
32
- export type { CameraAndMicrophoneDomainPermissionsStrings, CameraAndMicrophoneDomainPermissionsProps, CameraDomainPermissionsStrings, CameraDomainPermissionsProps, CommonDomainPermissionsProps, DomainPermissionsStrings, DomainPermissionsStyles, MicrophoneDomainPermissionsStrings, MicrophoneDomainPermissionsProps } from '../../react-components/src';
33
- export type { VideoTileMenuItems } from '../../react-components/src';
31
+ export { CameraAndMicrophoneSitePermissions, MicrophoneSitePermissions, CameraSitePermissions } from '../../react-components/src';
32
+ export type { CameraAndMicrophoneSitePermissionsStrings, CameraAndMicrophoneSitePermissionsProps, CameraSitePermissionsStrings, CameraSitePermissionsProps, CommonSitePermissionsProps, SitePermissionsStrings, SitePermissionsStyles, MicrophoneSitePermissionsStrings, MicrophoneSitePermissionsProps } from '../../react-components/src';
34
33
  export type { _IdentifierProviderProps, _Identifiers, ActiveErrorMessage, BaseCustomStyles, CallParticipantListParticipant, CameraButtonContextualMenuStyles, CameraButtonProps, CameraButtonStrings, CameraButtonStyles, ChatMessage, CommunicationParticipant, ComponentLocale, ComponentStrings, ContentSystemMessage, ControlBarButtonProps, ControlBarButtonStrings, ControlBarButtonStyles, ControlBarLayout, ControlBarProps, CreateVideoStreamViewResult, CustomAvatarOptions, CustomMessage, DevicesButtonContextualMenuStyles, DevicesButtonProps, DevicesButtonStrings, DevicesButtonStyles, EndCallButtonProps, EndCallButtonStrings, ErrorBarProps, ErrorBarStrings, ErrorType, GridLayoutProps, GridLayoutStyles, HorizontalGalleryStyles, JumpToNewMessageButtonProps, LocalizationProviderProps, LocalVideoCameraCycleButtonProps, LoadingState, Message, MessageAttachedStatus, MessageCommon, MessageContentType, MessageProps, MessageRenderer, MessageStatusIndicatorProps, MessageStatusIndicatorStrings, MessageThreadProps, MessageThreadStrings, MessageThreadStyles, MicrophoneButtonContextualMenuStyles, MicrophoneButtonProps, MicrophoneButtonStrings, MicrophoneButtonStyles, OnRenderAvatarCallback, OptionsDevice, ParticipantAddedSystemMessage, ParticipantItemProps, ParticipantItemStrings, ParticipantItemStyles, ParticipantListItemStyles, ParticipantListParticipant, ParticipantListProps, ParticipantListStyles, ParticipantMenuItemsCallback, ParticipantRemovedSystemMessage, ParticipantState, ParticipantsButtonContextualMenuStyles, ParticipantsButtonProps, ParticipantsButtonStrings, ParticipantsButtonStyles, ReadReceiptsBySenderId, ScreenShareButtonProps, ScreenShareButtonStrings, SendBoxProps, SendBoxStrings, SendBoxStylesProps, StreamMediaProps, SystemMessage, SystemMessageCommon, TopicUpdatedSystemMessage, TypingIndicatorProps, TypingIndicatorStrings, TypingIndicatorStylesProps, UpdateMessageCallback, VideoGalleryLayout, VideoGalleryLocalParticipant, VideoGalleryParticipant, VideoGalleryProps, VideoGalleryRemoteParticipant, VideoGalleryStream, VideoGalleryStrings, VideoGalleryStyles, VideoStreamOptions, VideoTileProps, VideoTileStylesProps, ViewScalingMode } from '../../react-components/src';
35
34
  export type { Role } from '../../react-components/src';
36
35
  export type { DialpadProps, DialpadStrings, DialpadStyles, DtmfTone } from '../../react-components/src';
@@ -38,6 +37,7 @@ export type { ActiveFileUpload, SendBoxErrorBarError, FileDownloadHandler, FileD
38
37
  export type { HoldButtonProps, HoldButtonStrings, VideoTileStrings } from '../../react-components/src';
39
38
  export type { BrowserPermissionDeniedStrings, BrowserPermissionDeniedProps } from '../../react-components/src';
40
39
  export type { BrowserPermissionDeniedIOSStrings, BrowserPermissionDeniedStyles, BrowserPermissionDeniedIOSProps } from '../../react-components/src';
40
+ export type { VideoTileContextualMenuProps, VideoTileDrawerMenuProps } from '../../react-components/src';
41
41
  export * from '../../react-components/src/localization/locales';
42
42
  export * from '../../react-components/src/theming';
43
43
  export * from '../../calling-stateful-client/src/index-public';
@@ -48,6 +48,8 @@ export * from '../../react-composites/src/index-public';
48
48
  export * from './mergedHooks';
49
49
  export { UnsupportedBrowser } from '../../react-components/src';
50
50
  export type { UnsupportedBrowserStrings, UnsupportedBrowserProps } from '../../react-components/src';
51
- export { _DevicePermissionDropdown } from '../../react-components/src';
52
- export type { _DevicePermissionDropdownStrings, _DevicePermissionDropdownProps, _PermissionConstraints } from '../../react-components/src';
51
+ export { UnsupportedBrowserVersion } from '../../react-components/src';
52
+ export type { UnsupportedBrowserVersionStrings, UnsupportedBrowserVersionProps } from '../../react-components/src';
53
+ export { UnsupportedOperatingSystem } from '../../react-components/src';
54
+ export type { UnsupportedOperatingSystemStrings, UnsupportedOperatingSystemProps } from '../../react-components/src';
53
55
  //# sourceMappingURL=index.d.ts.map
@@ -27,7 +27,7 @@ export { HoldButton } from '../../react-components/src';
27
27
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
28
28
  export { Dialpad } from '../../react-components/src';
29
29
  /* @conditional-compile-remove(call-readiness) */
30
- export { CameraAndMicrophoneDomainPermissions, MicrophoneDomainPermissions, CameraDomainPermissions } from '../../react-components/src';
30
+ export { CameraAndMicrophoneSitePermissions, MicrophoneSitePermissions, CameraSitePermissions } from '../../react-components/src';
31
31
  export * from '../../react-components/src/localization/locales';
32
32
  export * from '../../react-components/src/theming';
33
33
  export * from '../../calling-stateful-client/src/index-public';
@@ -36,6 +36,8 @@ export * from '../../react-composites/src/index-public';
36
36
  export * from './mergedHooks';
37
37
  /* @conditional-compile-remove(unsupported-browser) */
38
38
  export { UnsupportedBrowser } from '../../react-components/src';
39
- /* @conditional-compile-remove(call-readiness) */
40
- export { _DevicePermissionDropdown } from '../../react-components/src';
39
+ /* @conditional-compile-remove(unsupported-browser) */
40
+ export { UnsupportedBrowserVersion } from '../../react-components/src';
41
+ /* @conditional-compile-remove(unsupported-browser) */
42
+ export { UnsupportedOperatingSystem } from '../../react-components/src';
41
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AA4BzG,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAE9C,yDAAyD;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iCAAiC,EAClC,MAAM,sCAAsC,CAAC;AAmB9C,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,0CAA0C,CAAC,6CAA6C;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,iDAAiD;AACjD,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AAyIpC,cAAc,iDAAiD,CAAC;AAChE,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAa1E,cAAc,yCAAyC,CAAC;AACxD,cAAc,eAAe,CAAC;AAE9B,sDAAsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,iDAAiD;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * `@azure/communication-react` is an npm package that exports the functionality of the Azure Communication Services - UI Library.\n *\n * This package makes it easy for you to build modern communications user experiences using Azure Communication Services. It gives you a library of production-ready UI components that you can drop into your applications:\n * - Composites: These components are turn-key solutions that implement common communication scenarios. You can quickly add video calling or chat experiences to your applications. Composites are open-source higher order components built using UI components.\n * - UI Components - These components are open-source building blocks that let you build custom communications experience. Components are offered for both calling and chat capabilities that can be combined to build experiences.\n *\n * These UI client libraries all use Microsoft's Fluent design language and assets. Fluent UI provides a foundational layer for the UI Library and is actively used across Microsoft products.\n *\n * In conjunction with the UI components, the UI Library exposes a stateful client library for calling and chat. This client is agnostic to any specific state management framework and can be integrated with common state managers like Redux or React Context.\n * This stateful client library can be used with the UI Components to pass props and methods for the UI Components to render data. For more information, see Stateful Client Overview.\n *\n * For more information visit: https://aka.ms/acsstorybook\n *\n * @packageDocumentation\n */\n\nexport { fromFlatCommunicationIdentifier, toFlatCommunicationIdentifier } from '../../acs-ui-common/src';\nexport type {\n AreEqual,\n CommonProperties,\n MessageStatus,\n Common,\n AreTypeEqual,\n AreParamEqual\n} from '../../acs-ui-common/src';\n\n// Not to export chat/calling specific hook from binding package\nexport type {\n CallClientProviderProps,\n CallAgentProviderProps,\n CallProviderProps,\n GetCallingSelector,\n CallingHandlers,\n CallingBaseSelectorProps,\n CommonCallingHandlers\n} from '../../calling-component-bindings/src';\nexport type {\n ChatClientProviderProps,\n ChatThreadClientProviderProps,\n GetChatSelector,\n ChatHandlers,\n ChatBaseSelectorProps\n} from '../../chat-component-bindings/src';\n\nexport {\n CallClientProvider,\n CallAgentProvider,\n CallProvider,\n useCallClient,\n useCallAgent,\n useCall,\n useDeviceManager,\n getCallingSelector,\n createDefaultCallingHandlers\n} from '../../calling-component-bindings/src';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport {\n useTeamsCallAgent,\n useTeamsCall,\n createDefaultTeamsCallingHandlers\n} from '../../calling-component-bindings/src';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport type { TeamsCallingHandlers } from '../../calling-component-bindings/src';\n\nexport type {\n ScreenShareButtonSelector,\n CameraButtonSelector,\n VideoGallerySelector,\n DevicesButtonSelector,\n EmptySelector,\n ErrorBarSelector as CallErrorBarSelector,\n ParticipantListSelector,\n MicrophoneButtonSelector,\n ParticipantsButtonSelector\n} from '../../calling-component-bindings/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from '../../calling-component-bindings/src';\n\nexport {\n ChatClientProvider,\n ChatThreadClientProvider,\n useChatClient,\n useChatThreadClient,\n getChatSelector,\n createDefaultChatHandlers\n} from '../../chat-component-bindings/src';\n\nexport type {\n MessageThreadSelector,\n TypingIndicatorSelector,\n ChatParticipantListSelector,\n SendBoxSelector,\n ErrorBarSelector as ChatErrorBarSelector\n} from '../../chat-component-bindings/src';\n\nexport {\n _IdentifierProvider,\n CameraButton,\n ControlBar,\n ControlBarButton,\n DevicesButton,\n EndCallButton,\n ErrorBar,\n GridLayout,\n LocalizationProvider,\n MessageStatusIndicator,\n MessageThread,\n MicrophoneButton,\n ParticipantItem,\n ParticipantList,\n ParticipantsButton,\n ScreenShareButton,\n SendBox,\n StreamMedia,\n TypingIndicator,\n VideoGallery,\n VideoTile\n} from '../../react-components/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { HoldButton } from '../../react-components/src';\n\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nexport { Dialpad } from '../../react-components/src';\n\n/* @conditional-compile-remove(call-readiness) */\nexport {\n CameraAndMicrophoneDomainPermissions,\n MicrophoneDomainPermissions,\n CameraDomainPermissions\n} from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type {\n CameraAndMicrophoneDomainPermissionsStrings,\n CameraAndMicrophoneDomainPermissionsProps,\n CameraDomainPermissionsStrings,\n CameraDomainPermissionsProps,\n CommonDomainPermissionsProps,\n DomainPermissionsStrings,\n DomainPermissionsStyles,\n MicrophoneDomainPermissionsStrings,\n MicrophoneDomainPermissionsProps\n} from '../../react-components/src';\n\n/* @conditional-compile-remove(pinned-participants) */\nexport type { VideoTileMenuItems } from '../../react-components/src';\n\nexport type {\n _IdentifierProviderProps,\n _Identifiers,\n ActiveErrorMessage,\n BaseCustomStyles,\n CallParticipantListParticipant,\n CameraButtonContextualMenuStyles,\n CameraButtonProps,\n CameraButtonStrings,\n CameraButtonStyles,\n ChatMessage,\n CommunicationParticipant,\n ComponentLocale,\n ComponentStrings,\n ContentSystemMessage,\n ControlBarButtonProps,\n ControlBarButtonStrings,\n ControlBarButtonStyles,\n ControlBarLayout,\n ControlBarProps,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n DevicesButtonContextualMenuStyles,\n DevicesButtonProps,\n DevicesButtonStrings,\n DevicesButtonStyles,\n EndCallButtonProps,\n EndCallButtonStrings,\n ErrorBarProps,\n ErrorBarStrings,\n ErrorType,\n GridLayoutProps,\n GridLayoutStyles,\n HorizontalGalleryStyles,\n JumpToNewMessageButtonProps,\n LocalizationProviderProps,\n LocalVideoCameraCycleButtonProps,\n LoadingState,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n MessageProps,\n MessageRenderer,\n MessageStatusIndicatorProps,\n MessageStatusIndicatorStrings,\n MessageThreadProps,\n MessageThreadStrings,\n MessageThreadStyles,\n MicrophoneButtonContextualMenuStyles,\n MicrophoneButtonProps,\n MicrophoneButtonStrings,\n MicrophoneButtonStyles,\n OnRenderAvatarCallback,\n OptionsDevice,\n ParticipantAddedSystemMessage,\n ParticipantItemProps,\n ParticipantItemStrings,\n ParticipantItemStyles,\n ParticipantListItemStyles,\n ParticipantListParticipant,\n ParticipantListProps,\n ParticipantListStyles,\n ParticipantMenuItemsCallback,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ParticipantsButtonContextualMenuStyles,\n ParticipantsButtonProps,\n ParticipantsButtonStrings,\n ParticipantsButtonStyles,\n ReadReceiptsBySenderId,\n ScreenShareButtonProps,\n ScreenShareButtonStrings,\n SendBoxProps,\n SendBoxStrings,\n SendBoxStylesProps,\n StreamMediaProps,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n TypingIndicatorProps,\n TypingIndicatorStrings,\n TypingIndicatorStylesProps,\n UpdateMessageCallback,\n VideoGalleryLayout,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryProps,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoGalleryStrings,\n VideoGalleryStyles,\n VideoStreamOptions,\n VideoTileProps,\n VideoTileStylesProps,\n ViewScalingMode\n} from '../../react-components/src';\n/* @conditional-compile-remove(rooms) */\nexport type { Role } from '../../react-components/src';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nexport type { DialpadProps, DialpadStrings, DialpadStyles, DtmfTone } from '../../react-components/src';\n/* @conditional-compile-remove(file-sharing) */\nexport type {\n ActiveFileUpload,\n SendBoxErrorBarError,\n FileDownloadHandler,\n FileDownloadError,\n FileMetadata\n} from '../../react-components/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonProps, HoldButtonStrings, VideoTileStrings } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type { BrowserPermissionDeniedStrings, BrowserPermissionDeniedProps } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type {\n BrowserPermissionDeniedIOSStrings,\n BrowserPermissionDeniedStyles,\n BrowserPermissionDeniedIOSProps\n} from '../../react-components/src';\nexport * from '../../react-components/src/localization/locales';\nexport * from '../../react-components/src/theming';\nexport * from '../../calling-stateful-client/src/index-public';\n/* @conditional-compile-remove(one-to-n-calling) */\nexport type { DeclarativeCallAgent } from '../../calling-stateful-client/src';\nexport { createStatefulChatClient } from '../../chat-stateful-client/src';\nexport type {\n StatefulChatClient,\n StatefulChatClientArgs,\n StatefulChatClientOptions,\n ChatMessageWithStatus,\n ChatClientState,\n ChatError,\n ChatErrors,\n ChatThreadClientState,\n ChatThreadProperties,\n ChatErrorTarget\n} from '../../chat-stateful-client/src';\nexport * from '../../react-composites/src/index-public';\nexport * from './mergedHooks';\n\n/* @conditional-compile-remove(unsupported-browser) */\nexport { UnsupportedBrowser } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport type { UnsupportedBrowserStrings, UnsupportedBrowserProps } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport { _DevicePermissionDropdown } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type {\n _DevicePermissionDropdownStrings,\n _DevicePermissionDropdownProps,\n _PermissionConstraints\n} from '../../react-components/src';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AA4BzG,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAE9C,yDAAyD;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iCAAiC,EAClC,MAAM,sCAAsC,CAAC;AAmB9C,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,0CAA0C,CAAC,6CAA6C;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,iDAAiD;AACjD,OAAO,EACL,kCAAkC,EAClC,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAwIpC,cAAc,iDAAiD,CAAC;AAChE,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAa1E,cAAc,yCAAyC,CAAC;AACxD,cAAc,eAAe,CAAC;AAE9B,sDAAsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,sDAAsD;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,sDAAsD;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * `@azure/communication-react` is an npm package that exports the functionality of the Azure Communication Services - UI Library.\n *\n * This package makes it easy for you to build modern communications user experiences using Azure Communication Services. It gives you a library of production-ready UI components that you can drop into your applications:\n * - Composites: These components are turn-key solutions that implement common communication scenarios. You can quickly add video calling or chat experiences to your applications. Composites are open-source higher order components built using UI components.\n * - UI Components - These components are open-source building blocks that let you build custom communications experience. Components are offered for both calling and chat capabilities that can be combined to build experiences.\n *\n * These UI client libraries all use Microsoft's Fluent design language and assets. Fluent UI provides a foundational layer for the UI Library and is actively used across Microsoft products.\n *\n * In conjunction with the UI components, the UI Library exposes a stateful client library for calling and chat. This client is agnostic to any specific state management framework and can be integrated with common state managers like Redux or React Context.\n * This stateful client library can be used with the UI Components to pass props and methods for the UI Components to render data. For more information, see Stateful Client Overview.\n *\n * For more information visit: https://aka.ms/acsstorybook\n *\n * @packageDocumentation\n */\n\nexport { fromFlatCommunicationIdentifier, toFlatCommunicationIdentifier } from '../../acs-ui-common/src';\nexport type {\n AreEqual,\n CommonProperties,\n MessageStatus,\n Common,\n AreTypeEqual,\n AreParamEqual\n} from '../../acs-ui-common/src';\n\n// Not to export chat/calling specific hook from binding package\nexport type {\n CallClientProviderProps,\n CallAgentProviderProps,\n CallProviderProps,\n GetCallingSelector,\n CallingHandlers,\n CallingBaseSelectorProps,\n CommonCallingHandlers\n} from '../../calling-component-bindings/src';\nexport type {\n ChatClientProviderProps,\n ChatThreadClientProviderProps,\n GetChatSelector,\n ChatHandlers,\n ChatBaseSelectorProps\n} from '../../chat-component-bindings/src';\n\nexport {\n CallClientProvider,\n CallAgentProvider,\n CallProvider,\n useCallClient,\n useCallAgent,\n useCall,\n useDeviceManager,\n getCallingSelector,\n createDefaultCallingHandlers\n} from '../../calling-component-bindings/src';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport {\n useTeamsCallAgent,\n useTeamsCall,\n createDefaultTeamsCallingHandlers\n} from '../../calling-component-bindings/src';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport type { TeamsCallingHandlers } from '../../calling-component-bindings/src';\n\nexport type {\n ScreenShareButtonSelector,\n CameraButtonSelector,\n VideoGallerySelector,\n DevicesButtonSelector,\n EmptySelector,\n ErrorBarSelector as CallErrorBarSelector,\n ParticipantListSelector,\n MicrophoneButtonSelector,\n ParticipantsButtonSelector\n} from '../../calling-component-bindings/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from '../../calling-component-bindings/src';\n\nexport {\n ChatClientProvider,\n ChatThreadClientProvider,\n useChatClient,\n useChatThreadClient,\n getChatSelector,\n createDefaultChatHandlers\n} from '../../chat-component-bindings/src';\n\nexport type {\n MessageThreadSelector,\n TypingIndicatorSelector,\n ChatParticipantListSelector,\n SendBoxSelector,\n ErrorBarSelector as ChatErrorBarSelector\n} from '../../chat-component-bindings/src';\n\nexport {\n _IdentifierProvider,\n CameraButton,\n ControlBar,\n ControlBarButton,\n DevicesButton,\n EndCallButton,\n ErrorBar,\n GridLayout,\n LocalizationProvider,\n MessageStatusIndicator,\n MessageThread,\n MicrophoneButton,\n ParticipantItem,\n ParticipantList,\n ParticipantsButton,\n ScreenShareButton,\n SendBox,\n StreamMedia,\n TypingIndicator,\n VideoGallery,\n VideoTile\n} from '../../react-components/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { HoldButton } from '../../react-components/src';\n\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nexport { Dialpad } from '../../react-components/src';\n\n/* @conditional-compile-remove(call-readiness) */\nexport {\n CameraAndMicrophoneSitePermissions,\n MicrophoneSitePermissions,\n CameraSitePermissions\n} from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type {\n CameraAndMicrophoneSitePermissionsStrings,\n CameraAndMicrophoneSitePermissionsProps,\n CameraSitePermissionsStrings,\n CameraSitePermissionsProps,\n CommonSitePermissionsProps,\n SitePermissionsStrings,\n SitePermissionsStyles,\n MicrophoneSitePermissionsStrings,\n MicrophoneSitePermissionsProps\n} from '../../react-components/src';\n\nexport type {\n _IdentifierProviderProps,\n _Identifiers,\n ActiveErrorMessage,\n BaseCustomStyles,\n CallParticipantListParticipant,\n CameraButtonContextualMenuStyles,\n CameraButtonProps,\n CameraButtonStrings,\n CameraButtonStyles,\n ChatMessage,\n CommunicationParticipant,\n ComponentLocale,\n ComponentStrings,\n ContentSystemMessage,\n ControlBarButtonProps,\n ControlBarButtonStrings,\n ControlBarButtonStyles,\n ControlBarLayout,\n ControlBarProps,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n DevicesButtonContextualMenuStyles,\n DevicesButtonProps,\n DevicesButtonStrings,\n DevicesButtonStyles,\n EndCallButtonProps,\n EndCallButtonStrings,\n ErrorBarProps,\n ErrorBarStrings,\n ErrorType,\n GridLayoutProps,\n GridLayoutStyles,\n HorizontalGalleryStyles,\n JumpToNewMessageButtonProps,\n LocalizationProviderProps,\n LocalVideoCameraCycleButtonProps,\n LoadingState,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n MessageProps,\n MessageRenderer,\n MessageStatusIndicatorProps,\n MessageStatusIndicatorStrings,\n MessageThreadProps,\n MessageThreadStrings,\n MessageThreadStyles,\n MicrophoneButtonContextualMenuStyles,\n MicrophoneButtonProps,\n MicrophoneButtonStrings,\n MicrophoneButtonStyles,\n OnRenderAvatarCallback,\n OptionsDevice,\n ParticipantAddedSystemMessage,\n ParticipantItemProps,\n ParticipantItemStrings,\n ParticipantItemStyles,\n ParticipantListItemStyles,\n ParticipantListParticipant,\n ParticipantListProps,\n ParticipantListStyles,\n ParticipantMenuItemsCallback,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ParticipantsButtonContextualMenuStyles,\n ParticipantsButtonProps,\n ParticipantsButtonStrings,\n ParticipantsButtonStyles,\n ReadReceiptsBySenderId,\n ScreenShareButtonProps,\n ScreenShareButtonStrings,\n SendBoxProps,\n SendBoxStrings,\n SendBoxStylesProps,\n StreamMediaProps,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n TypingIndicatorProps,\n TypingIndicatorStrings,\n TypingIndicatorStylesProps,\n UpdateMessageCallback,\n VideoGalleryLayout,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryProps,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoGalleryStrings,\n VideoGalleryStyles,\n VideoStreamOptions,\n VideoTileProps,\n VideoTileStylesProps,\n ViewScalingMode\n} from '../../react-components/src';\n/* @conditional-compile-remove(rooms) */\nexport type { Role } from '../../react-components/src';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nexport type { DialpadProps, DialpadStrings, DialpadStyles, DtmfTone } from '../../react-components/src';\n/* @conditional-compile-remove(file-sharing) */\nexport type {\n ActiveFileUpload,\n SendBoxErrorBarError,\n FileDownloadHandler,\n FileDownloadError,\n FileMetadata\n} from '../../react-components/src';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonProps, HoldButtonStrings, VideoTileStrings } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type { BrowserPermissionDeniedStrings, BrowserPermissionDeniedProps } from '../../react-components/src';\n/* @conditional-compile-remove(call-readiness) */\nexport type {\n BrowserPermissionDeniedIOSStrings,\n BrowserPermissionDeniedStyles,\n BrowserPermissionDeniedIOSProps\n} from '../../react-components/src';\n/* @conditional-compile-remove(pinned-participants) */\nexport type { VideoTileContextualMenuProps, VideoTileDrawerMenuProps } from '../../react-components/src';\nexport * from '../../react-components/src/localization/locales';\nexport * from '../../react-components/src/theming';\nexport * from '../../calling-stateful-client/src/index-public';\n/* @conditional-compile-remove(one-to-n-calling) */\nexport type { DeclarativeCallAgent } from '../../calling-stateful-client/src';\nexport { createStatefulChatClient } from '../../chat-stateful-client/src';\nexport type {\n StatefulChatClient,\n StatefulChatClientArgs,\n StatefulChatClientOptions,\n ChatMessageWithStatus,\n ChatClientState,\n ChatError,\n ChatErrors,\n ChatThreadClientState,\n ChatThreadProperties,\n ChatErrorTarget\n} from '../../chat-stateful-client/src';\nexport * from '../../react-composites/src/index-public';\nexport * from './mergedHooks';\n\n/* @conditional-compile-remove(unsupported-browser) */\nexport { UnsupportedBrowser } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport type { UnsupportedBrowserStrings, UnsupportedBrowserProps } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport { UnsupportedBrowserVersion } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport type { UnsupportedBrowserVersionStrings, UnsupportedBrowserVersionProps } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport { UnsupportedOperatingSystem } from '../../react-components/src';\n/* @conditional-compile-remove(unsupported-browser) */\nexport type { UnsupportedOperatingSystemStrings, UnsupportedOperatingSystemProps } from '../../react-components/src';\n"]}
@@ -0,0 +1,105 @@
1
+ /// <reference types="react" />
2
+ import { SitePermissionsStrings, SitePermissionsStyles } from './SitePermissionsScaffolding';
3
+ /**
4
+ * @beta
5
+ * Props for SitePermissions components.
6
+ */
7
+ export interface CommonSitePermissionsProps {
8
+ /**
9
+ * Name of application calling experience is in.
10
+ */
11
+ appName: string;
12
+ /**
13
+ * Kind of the Site Permissions component.
14
+ */
15
+ kind: 'request' | 'denied' | 'check';
16
+ /**
17
+ * Type of the browser used, the Site permission component will show different guidance text based on the browser type
18
+ */
19
+ browserHint?: 'safari' | 'unset';
20
+ /**
21
+ * Action to be taken by the more help link. Possible to send to external page or show other modal.
22
+ * If this is not provided the button will not be shown.
23
+ */
24
+ onTroubleshootingClick?: () => void;
25
+ /**
26
+ * Action that is taken when the user clicks the continue anyway button.
27
+ * If this is not provided the button will not be shown.
28
+ */
29
+ onContinueAnywayClick?: () => void;
30
+ /**
31
+ * Styles for SitePermissions component.
32
+ */
33
+ styles?: SitePermissionsStyles;
34
+ }
35
+ /**
36
+ * @beta
37
+ * Strings for CameraAndMicrophoneSitePermissions component.
38
+ */
39
+ export declare type CameraAndMicrophoneSitePermissionsStrings = SitePermissionsStrings;
40
+ /**
41
+ * @beta
42
+ * Props for CameraAndMicrophoneSitePermissions component.
43
+ */
44
+ export interface CameraAndMicrophoneSitePermissionsProps extends CommonSitePermissionsProps {
45
+ /** Icon name for the camera icon */
46
+ cameraIconName?: string;
47
+ /** Icon name for the microphone icon */
48
+ microphoneIconName?: string;
49
+ /** Icon name for the central icon between the camera and microphone icons */
50
+ connectorIconName?: string;
51
+ /** Strings for use with the {@link CameraAndMicrophoneSitePermissions} */
52
+ strings?: CameraAndMicrophoneSitePermissionsStrings;
53
+ }
54
+ /**
55
+ * @beta
56
+ *
57
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
58
+ * by their browsers settings.
59
+ */
60
+ export declare const CameraAndMicrophoneSitePermissions: (props: CameraAndMicrophoneSitePermissionsProps) => JSX.Element;
61
+ /**
62
+ * @beta
63
+ * Strings for MicrophoneSitePermissions component.
64
+ */
65
+ export declare type MicrophoneSitePermissionsStrings = SitePermissionsStrings;
66
+ /**
67
+ * @beta
68
+ * Props for MicrophoneSitePermissions component.
69
+ */
70
+ export interface MicrophoneSitePermissionsProps extends CommonSitePermissionsProps {
71
+ /** Icon name for the microphone icon */
72
+ microphoneIconName?: string;
73
+ /** Strings for use with the {@link MicrophoneSitePermissions} */
74
+ strings?: MicrophoneSitePermissionsStrings;
75
+ }
76
+ /**
77
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
78
+ * by their browsers settings.
79
+ *
80
+ * @beta
81
+ */
82
+ export declare const MicrophoneSitePermissions: (props: MicrophoneSitePermissionsProps) => JSX.Element;
83
+ /**
84
+ * @beta
85
+ * Strings for CameraSitePermissions component.
86
+ */
87
+ export declare type CameraSitePermissionsStrings = SitePermissionsStrings;
88
+ /**
89
+ * @beta
90
+ * Props for CameraSitePermissions component.
91
+ */
92
+ export interface CameraSitePermissionsProps extends CommonSitePermissionsProps {
93
+ /** Icon name for the camera icon */
94
+ cameraIconName?: string;
95
+ /** Strings for use with the {@link CameraSitePermissions} */
96
+ strings?: CameraSitePermissionsStrings;
97
+ }
98
+ /**
99
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
100
+ * by their browsers settings.
101
+ *
102
+ * @beta
103
+ */
104
+ export declare const CameraSitePermissions: (props: CameraSitePermissionsProps) => JSX.Element;
105
+ //# sourceMappingURL=SitePermissions.d.ts.map
@@ -0,0 +1,86 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import React from 'react';
4
+ /* @conditional-compile-remove(call-readiness) */
5
+ import { useLocale } from '../../localization';
6
+ /* @conditional-compile-remove(call-readiness) */
7
+ import { SitePermissionsContainer } from './SitePermissionsScaffolding';
8
+ /* @conditional-compile-remove(call-readiness) */
9
+ import { useShallowMerge } from '../utils/merge';
10
+ /**
11
+ * @beta
12
+ *
13
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
14
+ * by their browsers settings.
15
+ */
16
+ export const CameraAndMicrophoneSitePermissions = (props) => {
17
+ var _a, _b, _c;
18
+ /* @conditional-compile-remove(call-readiness) */
19
+ const locale = useLocale().strings;
20
+ /* @conditional-compile-remove(call-readiness) */
21
+ const strings = useShallowMerge(props.kind === 'denied'
22
+ ? props.browserHint === 'safari'
23
+ ? locale.CameraAndMicrophoneSitePermissionsDeniedSafari
24
+ : locale.CameraAndMicrophoneSitePermissionsDenied
25
+ : props.kind === 'request'
26
+ ? locale.CameraAndMicrophoneSitePermissionsRequest
27
+ : locale.CameraAndMicrophoneSitePermissionsCheck, props.strings);
28
+ /* @conditional-compile-remove(call-readiness) */
29
+ const cameraIconName = ((_a = props.microphoneIconName) !== null && _a !== void 0 ? _a : props.kind === 'denied') ? 'SitePermissionCameraDenied' : 'SitePermissionCamera';
30
+ /* @conditional-compile-remove(call-readiness) */
31
+ const microphoneIconName = ((_b = props.microphoneIconName) !== null && _b !== void 0 ? _b : props.kind === 'denied') ? 'SitePermissionMicDenied' : 'SitePermissionMic';
32
+ /* @conditional-compile-remove(call-readiness) */
33
+ const connectorIconName = (_c = props.microphoneIconName) !== null && _c !== void 0 ? _c : 'SitePermissionsSparkle';
34
+ /* @conditional-compile-remove(call-readiness) */
35
+ return (React.createElement(SitePermissionsContainer, Object.assign({}, props, { strings: strings, cameraIconName: cameraIconName, connectorIconName: connectorIconName, microphoneIconName: microphoneIconName, onPrimaryButtonClick: props.onContinueAnywayClick })));
36
+ return React.createElement(React.Fragment, null);
37
+ };
38
+ /**
39
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
40
+ * by their browsers settings.
41
+ *
42
+ * @beta
43
+ */
44
+ export const MicrophoneSitePermissions = (props) => {
45
+ var _a;
46
+ /* @conditional-compile-remove(call-readiness) */
47
+ const locale = useLocale().strings;
48
+ /* @conditional-compile-remove(call-readiness) */
49
+ const strings = useShallowMerge(props.kind === 'denied'
50
+ ? props.browserHint === 'safari'
51
+ ? locale.MicrophoneSitePermissionsDeniedSafari
52
+ : locale.MicrophoneSitePermissionsDenied
53
+ : props.kind === 'request'
54
+ ? locale.MicrophoneSitePermissionsRequest
55
+ : locale.MicrophoneSitePermissionsCheck, props.strings);
56
+ /* @conditional-compile-remove(call-readiness) */
57
+ const iconName = ((_a = props.microphoneIconName) !== null && _a !== void 0 ? _a : props.kind === 'denied') ? 'SitePermissionMicDenied' : 'SitePermissionMic';
58
+ /* @conditional-compile-remove(call-readiness) */
59
+ return (React.createElement(SitePermissionsContainer, Object.assign({}, props, { strings: strings, cameraIconName: iconName, onPrimaryButtonClick: props.onContinueAnywayClick })));
60
+ return React.createElement(React.Fragment, null);
61
+ };
62
+ /**
63
+ * Component to allow Contoso to help their end user with their devices should their permissions be blocked
64
+ * by their browsers settings.
65
+ *
66
+ * @beta
67
+ */
68
+ export const CameraSitePermissions = (props) => {
69
+ var _a;
70
+ /* @conditional-compile-remove(call-readiness) */
71
+ const locale = useLocale().strings;
72
+ /* @conditional-compile-remove(call-readiness) */
73
+ const strings = useShallowMerge(props.kind === 'denied'
74
+ ? props.browserHint === 'safari'
75
+ ? locale.CameraSitePermissionsDeniedSafari
76
+ : locale.CameraSitePermissionsDenied
77
+ : props.kind === 'request'
78
+ ? locale.CameraSitePermissionsRequest
79
+ : locale.CameraSitePermissionsCheck, props.strings);
80
+ /* @conditional-compile-remove(call-readiness) */
81
+ const iconName = ((_a = props.cameraIconName) !== null && _a !== void 0 ? _a : props.kind === 'denied') ? 'SitePermissionCameraDenied' : 'SitePermissionCamera';
82
+ /* @conditional-compile-remove(call-readiness) */
83
+ return (React.createElement(SitePermissionsContainer, Object.assign({}, props, { strings: strings, microphoneIconName: iconName, onPrimaryButtonClick: props.onContinueAnywayClick })));
84
+ return React.createElement(React.Fragment, null);
85
+ };
86
+ //# sourceMappingURL=SitePermissions.js.map