@azure/communication-react 1.4.2-alpha-202211300015.0 → 1.4.2-alpha-202301052137

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 (256) hide show
  1. package/CHANGELOG.stable.md +10 -1
  2. package/dist/communication-react.d.ts +359 -279
  3. package/dist/dist-cjs/communication-react/index.js +2690 -1748
  4. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/identifier.js +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +5 -0
  10. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +8 -0
  11. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +21 -10
  13. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +1 -2
  15. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +0 -7
  16. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +12 -0
  18. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +20 -2
  19. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +2 -13
  21. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  22. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -1
  23. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +14 -0
  24. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  25. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +1 -0
  26. package/dist/dist-esm/calling-stateful-client/src/Logger.js +1 -0
  27. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  28. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +2 -1
  29. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +11 -4
  30. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +39 -12
  32. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  33. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +2 -2
  34. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  35. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.d.ts +19 -0
  36. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +43 -0
  37. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -0
  38. package/dist/dist-esm/communication-react/src/index.d.ts +6 -4
  39. package/dist/dist-esm/communication-react/src/index.js +5 -3
  40. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +105 -0
  42. package/dist/dist-esm/react-components/src/components/DevicePermissions/{DomainPermissions.js → SitePermissions.js} +28 -22
  43. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -0
  44. package/dist/dist-esm/react-components/src/components/DevicePermissions/{DomainPermissionsScaffolding.d.ts → SitePermissionsScaffolding.d.ts} +12 -12
  45. package/dist/dist-esm/react-components/src/components/DevicePermissions/{DomainPermissionsScaffolding.js → SitePermissionsScaffolding.js} +4 -4
  46. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -0
  47. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +8 -0
  48. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  49. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +8 -0
  50. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/MessageThread.js +6 -4
  52. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +4 -0
  54. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +25 -4
  55. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +9 -4
  57. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +64 -7
  58. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.d.ts +6 -6
  60. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +13 -21
  61. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.d.ts +37 -0
  63. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +27 -0
  64. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -0
  65. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.d.ts +41 -0
  66. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +32 -0
  67. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -0
  68. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.d.ts +32 -0
  69. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +25 -0
  70. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -0
  71. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +16 -0
  72. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +45 -0
  73. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -0
  74. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.d.ts +12 -0
  75. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +41 -0
  76. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -0
  77. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.d.ts +25 -0
  78. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +61 -0
  79. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -0
  80. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +34 -0
  81. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js +4 -0
  82. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -0
  83. package/dist/dist-esm/react-components/src/components/VideoGallery/PinnedParticipantsLayout.d.ts +25 -0
  84. package/dist/dist-esm/react-components/src/components/VideoGallery/PinnedParticipantsLayout.js +62 -0
  85. package/dist/dist-esm/react-components/src/components/VideoGallery/PinnedParticipantsLayout.js.map +1 -0
  86. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.d.ts +14 -0
  87. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js +20 -0
  88. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js.map +1 -0
  89. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.d.ts +6 -0
  90. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +9 -0
  91. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -0
  92. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.d.ts +62 -0
  93. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +118 -0
  94. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -0
  95. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.d.ts +14 -0
  96. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +28 -0
  97. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -0
  98. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.d.ts +9 -0
  99. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js +22 -0
  100. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -0
  101. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.d.ts +45 -0
  102. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +57 -0
  103. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -0
  104. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts +2 -2
  105. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +7 -2
  106. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +21 -0
  108. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +72 -0
  109. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -0
  110. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +36 -0
  111. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +116 -0
  112. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -0
  113. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +25 -0
  114. package/dist/dist-esm/react-components/src/components/VideoGallery.js +105 -122
  115. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  116. package/dist/dist-esm/react-components/src/components/VideoTile.js +15 -16
  117. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  118. package/dist/dist-esm/react-components/src/components/index.d.ts +7 -3
  119. package/dist/dist-esm/react-components/src/components/index.js +3 -2
  120. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  121. package/dist/dist-esm/react-components/src/components/styles/{DomainPermissions.styles.d.ts → SitePermissions.styles.d.ts} +1 -1
  122. package/dist/dist-esm/react-components/src/components/styles/{DomainPermissions.styles.js → SitePermissions.styles.js} +1 -1
  123. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -0
  124. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.d.ts +26 -0
  125. package/dist/dist-esm/react-components/src/components/styles/{UnsupportedBrowser.styles.js → UnsupportedEnvironment.styles.js} +25 -10
  126. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -0
  127. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +1 -95
  128. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +3 -138
  129. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  130. package/dist/dist-esm/react-components/src/components/utils.js +4 -0
  131. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  132. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +31 -19
  133. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  134. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +1 -1
  135. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +1 -1
  136. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +48 -12
  137. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +1 -1
  138. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +1 -1
  139. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +1 -1
  140. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +1 -1
  141. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +1 -1
  142. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +1 -1
  143. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +1 -1
  144. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +1 -1
  145. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +1 -1
  146. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +1 -1
  147. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +1 -1
  148. package/dist/dist-esm/react-components/src/theming/icons.d.ts +10 -6
  149. package/dist/dist-esm/react-components/src/theming/icons.js +28 -20
  150. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  151. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +1 -1
  152. package/dist/dist-esm/react-components/src/theming/icons.styles.js +1 -1
  153. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  154. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -0
  155. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  156. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +7 -11
  157. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +9 -9
  158. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  159. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +12 -0
  160. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  161. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +16 -10
  162. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +83 -38
  163. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  164. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +6 -17
  165. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  166. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +2 -2
  167. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js +1 -1
  168. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  169. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  170. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +17 -16
  171. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  172. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +5 -4
  173. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +68 -28
  174. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  175. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +16 -0
  176. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageCameraDropdown.js → ConfigurationPageCameraDropdown.js} +4 -6
  177. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -0
  178. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageErrorBar.d.ts → ConfigurationPageErrorBar.d.ts} +3 -4
  179. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageErrorBar.js → ConfigurationPageErrorBar.js} +4 -6
  180. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -0
  181. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +16 -0
  182. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/{ConfigurationpageMicDropdown.js → ConfigurationPageMicDropdown.js} +4 -8
  183. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -0
  184. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +1 -0
  185. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  186. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -1
  187. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +16 -14
  188. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  189. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +8 -3
  190. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  191. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +1 -0
  192. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +4 -2
  193. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  194. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -1
  195. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  196. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +11 -3
  197. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  198. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +3 -4
  199. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js +1 -1
  200. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  201. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +4 -2
  202. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  203. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +3 -3
  204. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +46 -27
  205. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  206. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +2 -0
  207. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +28 -7
  208. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  209. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts +4 -0
  210. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +8 -0
  211. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  212. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +20 -4
  213. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +70 -21
  214. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  215. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +16 -7
  216. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +22 -10
  217. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  218. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +2 -0
  219. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  220. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -0
  221. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -0
  222. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -0
  224. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -0
  226. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +7 -1
  227. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  228. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +8 -0
  229. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  230. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +4 -0
  231. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  232. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +26 -3
  233. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  234. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.d.ts +8 -0
  235. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +40 -0
  236. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -0
  237. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  239. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +10 -6
  240. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +1 -0
  241. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  242. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +2 -1
  243. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  244. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +3 -0
  245. package/package.json +9 -9
  246. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.d.ts +0 -101
  247. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissions.js.map +0 -1
  248. package/dist/dist-esm/react-components/src/components/DevicePermissions/DomainPermissionsScaffolding.js.map +0 -1
  249. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +0 -1
  250. package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.d.ts +0 -22
  251. package/dist/dist-esm/react-components/src/components/styles/UnsupportedBrowser.styles.js.map +0 -1
  252. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +0 -17
  253. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +0 -1
  254. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageErrorBar.js.map +0 -1
  255. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +0 -17
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteVideoTile.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/RemoteVideoTile.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,uCAAuC,EAExC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACxC,CAAC,KAoBA,EAAE,EAAE;IACH,MAAM,EACJ,WAAW,EACX,WAAW,GAAG,IAAI,EAAE,iDAAiD;IACrE,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,GAAG,KAAK,CAAC;IAEV,MAAM,sBAAsB,GAA8C,OAAO,CAC/E,GAAG,EAAE,CAAC,CAAC;QACL,UAAU,EAAE,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU;QAC9C,iBAAiB;QACjB,iBAAiB,EAAE,WAAW;QAC9B,iBAAiB,EAAE,WAAW;QAC9B,wBAAwB;QACxB,yBAAyB;QACzB,mBAAmB,EAAE,MAAM;QAC3B,mBAAmB,EAAE,CAAC,CAAC,aAAa;QACpC,WAAW,EAAE,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,WAAW;KACjD,CAAC,EACF;QACE,WAAW;QACX,WAAW;QACX,iBAAiB;QACjB,wBAAwB;QACxB,yBAAyB;QACzB,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU;QAClC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,WAAW;QACnC,aAAa;QACb,MAAM;KACP,CACF,CAAC;IAEF,yEAAyE;IACzE,uCAAuC,CAAC,sBAAsB,CAAC,CAAC;IAEhE,MAAM,oBAAoB,GAAG,WAAW,IAAI,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,gBAAgB,KAAK,cAAc,CAAC;IAE/G,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,iHAAiH;QACjH,+EAA+E;QAC/E,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACtD,2EAA2E;YAC3E,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,CACL,oBAAC,WAAW,IAAC,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAI,CAC5G,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,wBAAwB,EACvC,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,mDAAmD;QACnD,6CAA6C;QAC7C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GACxC,CACH,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo } from 'react';\nimport { CreateVideoStreamViewResult, OnRenderAvatarCallback, ParticipantState, VideoStreamOptions } from '../types';\nimport { StreamMedia } from './StreamMedia';\nimport {\n useRemoteVideoStreamLifecycleMaintainer,\n RemoteVideoStreamLifecycleMaintainerProps\n} from './VideoGallery/useVideoStreamLifecycleMaintainer';\nimport { VideoTile } from './VideoTile';\n\n/**\n * A memoized version of VideoTile for rendering remote participants. React.memo is used for a performance\n * boost by memoizing the same rendered component to avoid rerendering a VideoTile when its position in the\n * array changes causing a rerender in the parent component. https://reactjs.org/docs/react-api.html#reactmemo\n *\n * @internal\n */\nexport const _RemoteVideoTile = React.memo(\n (props: {\n userId: string;\n onCreateRemoteStreamView?: (\n userId: string,\n options?: VideoStreamOptions\n ) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeRemoteStreamView?: (userId: string) => Promise<void>;\n isAvailable?: boolean;\n isReceiving?: boolean;\n isMuted?: boolean;\n isSpeaking?: boolean;\n isScreenSharingOn?: boolean; // TODO: Remove this once onDisposeRemoteStreamView no longer disposes of screen share stream\n renderElement?: HTMLElement;\n displayName?: string;\n remoteVideoViewOptions?: VideoStreamOptions;\n onRenderAvatar?: OnRenderAvatarCallback;\n showMuteIndicator?: boolean;\n showLabel?: boolean;\n personaMinSize?: number;\n participantState?: ParticipantState;\n }) => {\n const {\n isAvailable,\n isReceiving = true, // default to true to prevent any breaking change\n isMuted,\n isSpeaking,\n isScreenSharingOn,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteVideoViewOptions,\n renderElement,\n userId,\n displayName,\n onRenderAvatar,\n showMuteIndicator\n } = props;\n\n const remoteVideoStreamProps: RemoteVideoStreamLifecycleMaintainerProps = useMemo(\n () => ({\n isMirrored: remoteVideoViewOptions?.isMirrored,\n isScreenSharingOn,\n isStreamAvailable: isAvailable,\n isStreamReceiving: isReceiving,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteParticipantId: userId,\n renderElementExists: !!renderElement,\n scalingMode: remoteVideoViewOptions?.scalingMode\n }),\n [\n isAvailable,\n isReceiving,\n isScreenSharingOn,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteVideoViewOptions?.isMirrored,\n remoteVideoViewOptions?.scalingMode,\n renderElement,\n userId\n ]\n );\n\n // Handle creating, destroying and updating the video stream as necessary\n useRemoteVideoStreamLifecycleMaintainer(remoteVideoStreamProps);\n\n const showLoadingIndicator = isAvailable && isReceiving === false && props.participantState !== 'Disconnected';\n\n const renderVideoStreamElement = useMemo(() => {\n // Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which\n // implies that, after their threshold, all streams have no child (blank video)\n if (!renderElement || !renderElement.childElementCount) {\n // Returning `undefined` results in the placeholder with avatar being shown\n return undefined;\n }\n\n return (\n <StreamMedia videoStreamElement={renderElement} loadingState={showLoadingIndicator ? 'loading' : 'none'} />\n );\n }, [renderElement, showLoadingIndicator]);\n\n return (\n <VideoTile\n key={userId}\n userId={userId}\n renderElement={renderVideoStreamElement}\n displayName={displayName}\n onRenderPlaceholder={onRenderAvatar}\n isMuted={isMuted}\n isSpeaking={isSpeaking}\n showMuteIndicator={showMuteIndicator}\n personaMinSize={props.personaMinSize}\n showLabel={props.showLabel}\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n participantState={props.participantState}\n />\n );\n }\n);\n"]}
1
+ {"version":3,"file":"RemoteVideoTile.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/RemoteVideoTile.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IContextualMenuProps, Layer, Stack } from '@fluentui/react';\nimport React, { useMemo } from 'react';\nimport {\n CreateVideoStreamViewResult,\n OnRenderAvatarCallback,\n ParticipantState,\n VideoGalleryRemoteParticipant,\n VideoStreamOptions\n} from '../types';\nimport { _DrawerMenu, _DrawerMenuItemProps } from './Drawer';\nimport { StreamMedia } from './StreamMedia';\nimport { VideoGalleryStrings } from './VideoGallery';\nimport { drawerMenuWrapperStyles, remoteVideoTileWrapperStyle } from './VideoGallery/styles/RemoteVideoTile.styles';\nimport {\n RemoteVideoStreamLifecycleMaintainerProps,\n useRemoteVideoStreamLifecycleMaintainer\n} from './VideoGallery/useVideoStreamLifecycleMaintainer';\nimport { useVideoTileContextualMenuProps } from './VideoGallery/useVideoTileContextualMenuProps';\nimport { VideoTile } from './VideoTile';\n\n/**\n * A memoized version of VideoTile for rendering remote participants. React.memo is used for a performance\n * boost by memoizing the same rendered component to avoid rerendering a VideoTile when its position in the\n * array changes causing a rerender in the parent component. https://reactjs.org/docs/react-api.html#reactmemo\n *\n * @internal\n */\nexport const _RemoteVideoTile = React.memo(\n (props: {\n userId: string;\n remoteParticipant: VideoGalleryRemoteParticipant;\n onCreateRemoteStreamView?: (\n userId: string,\n options?: VideoStreamOptions\n ) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeRemoteStreamView?: (userId: string) => Promise<void>;\n isAvailable?: boolean;\n isReceiving?: boolean;\n isScreenSharingOn?: boolean; // TODO: Remove this once onDisposeRemoteStreamView no longer disposes of screen share stream\n renderElement?: HTMLElement;\n remoteVideoViewOptions?: VideoStreamOptions;\n onRenderAvatar?: OnRenderAvatarCallback;\n showMuteIndicator?: boolean;\n showLabel?: boolean;\n personaMinSize?: number;\n strings?: VideoGalleryStrings;\n participantState?: ParticipantState;\n showRemoteVideoTileContextualMenu?: boolean;\n drawerMenuHostId?: string;\n onPinParticipant?: (userId: string) => void;\n onUnpinParticipant?: (userId: string) => void;\n isPinned?: boolean;\n }) => {\n const {\n isAvailable,\n isReceiving = true, // default to true to prevent any breaking change\n isScreenSharingOn,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteVideoViewOptions,\n renderElement,\n userId,\n onRenderAvatar,\n showMuteIndicator,\n remoteParticipant,\n participantState,\n showRemoteVideoTileContextualMenu = true,\n isPinned,\n onPinParticipant,\n onUnpinParticipant\n } = props;\n\n const remoteVideoStreamProps: RemoteVideoStreamLifecycleMaintainerProps = useMemo(\n () => ({\n isMirrored: remoteVideoViewOptions?.isMirrored,\n isScreenSharingOn,\n isStreamAvailable: isAvailable,\n isStreamReceiving: isReceiving,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteParticipantId: userId,\n renderElementExists: !!renderElement,\n scalingMode: remoteVideoViewOptions?.scalingMode\n }),\n [\n isAvailable,\n isReceiving,\n isScreenSharingOn,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteVideoViewOptions?.isMirrored,\n remoteVideoViewOptions?.scalingMode,\n renderElement,\n userId\n ]\n );\n\n // Handle creating, destroying and updating the video stream as necessary\n const createVideoStreamResult = useRemoteVideoStreamLifecycleMaintainer(remoteVideoStreamProps);\n\n const contextualMenuProps = useVideoTileContextualMenuProps({\n remoteParticipant,\n view: createVideoStreamResult?.view,\n /* @conditional-compile-remove(pinned-participants) */\n strings: { ...props.strings },\n isPinned,\n onPinParticipant,\n onUnpinParticipant\n });\n\n const videoTileContextualMenuProps = useMemo(() => {\n if (!showRemoteVideoTileContextualMenu) {\n return {};\n }\n return videoTileContextualMenuPropsTrampoline(contextualMenuProps);\n }, [contextualMenuProps, showRemoteVideoTileContextualMenu]);\n\n const showLoadingIndicator = isAvailable && isReceiving === false && participantState !== 'Disconnected';\n\n const [drawerMenuItemProps, setDrawerMenuItemProps] = React.useState<_DrawerMenuItemProps[]>([]);\n\n const renderVideoStreamElement = useMemo(() => {\n // Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which\n // implies that, after their threshold, all streams have no child (blank video)\n if (!renderElement || !renderElement.childElementCount) {\n // Returning `undefined` results in the placeholder with avatar being shown\n return undefined;\n }\n\n return (\n <StreamMedia videoStreamElement={renderElement} loadingState={showLoadingIndicator ? 'loading' : 'none'} />\n );\n }, [renderElement, showLoadingIndicator]);\n\n return (\n <Stack style={remoteVideoTileWrapperStyle}>\n <VideoTile\n key={userId}\n userId={userId}\n renderElement={renderVideoStreamElement}\n displayName={remoteParticipant.displayName}\n onRenderPlaceholder={onRenderAvatar}\n isMuted={remoteParticipant.isMuted}\n isSpeaking={remoteParticipant.isSpeaking}\n showMuteIndicator={showMuteIndicator}\n personaMinSize={props.personaMinSize}\n showLabel={props.showLabel}\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n participantState={participantState}\n {...videoTileContextualMenuProps}\n /* @conditional-compile-remove(pinned-participants) */\n isPinned={props.isPinned}\n /* @conditional-compile-remove(pinned-participants) */\n onLongTouch={() =>\n setDrawerMenuItemProps(\n convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))\n )\n }\n />\n {drawerMenuItemProps.length > 0 && (\n <Layer hostId={props.drawerMenuHostId}>\n <Stack styles={drawerMenuWrapperStyles}>\n <_DrawerMenu onLightDismiss={() => setDrawerMenuItemProps([])} items={drawerMenuItemProps} />\n </Stack>\n </Layer>\n )}\n </Stack>\n );\n }\n);\n\nconst videoTileContextualMenuPropsTrampoline = (\n contextualMenuProps?: IContextualMenuProps\n): { contextualMenu?: IContextualMenuProps } => {\n if (!contextualMenuProps) {\n return {};\n }\n /* @conditional-compile-remove(pinned-participants) */\n return {\n contextualMenu: contextualMenuProps\n };\n\n return {};\n};\n\n/* @conditional-compile-remove(pinned-participants) */\nconst convertContextualMenuItemsToDrawerMenuItemProps = (\n contextualMenuProps?: IContextualMenuProps,\n onLightDismiss?: () => void\n): _DrawerMenuItemProps[] => {\n if (!contextualMenuProps) {\n return [];\n }\n return contextualMenuProps.items.map((item) => {\n return {\n itemKey: item.key,\n text: item.text,\n iconProps: item.iconProps,\n disabled: item.disabled,\n onItemClick: () => {\n item.onClick?.();\n onLightDismiss?.();\n }\n };\n });\n};\n"]}
@@ -9,22 +9,22 @@ export interface UnsupportedBrowserStrings {
9
9
  primaryText: string;
10
10
  /** String for the secondary text */
11
11
  secondaryText: string;
12
- /** String for the help link */
13
- moreHelpLink: string;
12
+ /** String to display in the text for the help link */
13
+ moreHelpLinkText: string;
14
14
  }
15
15
  /**
16
- * props for UnsupportedBrowser UI
16
+ * props for {@link UnsupportedBrowser} UI
17
17
  *
18
18
  * @beta
19
19
  */
20
20
  export interface UnsupportedBrowserProps {
21
- /** Handler to perform a action when the help link is actioned */
21
+ /** Handler to perform an action when the help link is actioned */
22
22
  onTroubleshootingClick?: () => void;
23
23
  /** String overrides for the component */
24
- strings: UnsupportedBrowserStrings;
24
+ strings?: UnsupportedBrowserStrings;
25
25
  }
26
26
  /**
27
- * UI to display to the user that the browser they are using is not supported by calling application.
27
+ * UI to display to the user that the browser they are using is not supported by Azure Communications Calling service.
28
28
  *
29
29
  * @beta
30
30
  */
@@ -1,33 +1,25 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- /* @conditional-compile-remove(unsupported-browser) */
4
- import { Icon, Link, Stack, Text } from '@fluentui/react';
5
3
  import React from 'react';
6
- /* @conditional-compile-remove(unsupported-browser) */
7
4
  import { useLocale } from '../localization';
8
- /* @conditional-compile-remove(unsupported-browser) */
9
- import { containerStyles, iconStyles, linkTextStyles, mainTextStyles, secondaryTextStyles } from './styles/UnsupportedBrowser.styles';
10
- /* @conditional-compile-remove(unsupported-browser) */
11
- const UnsupportedBrowserContainer = (props) => {
12
- const { onTroubleshootingClick, strings } = props;
13
- return (React.createElement(Stack, { styles: containerStyles },
14
- React.createElement(Icon, { styles: iconStyles, iconName: "UnsupportedBrowserWarning", "data-ui-id": "unsupportedBrowserIcon" }),
15
- React.createElement(Text, { styles: mainTextStyles }, strings.primaryText),
16
- React.createElement(Text, { styles: secondaryTextStyles }, strings.secondaryText),
17
- onTroubleshootingClick && (React.createElement(Link, { styles: linkTextStyles, onClick: () => {
18
- onTroubleshootingClick();
19
- }, "data-ui-id": "unsupportedBrowserLink" }, strings.moreHelpLink))));
20
- };
5
+ import { UnsupportedEnvironment } from './UnsupportedEnvironment';
21
6
  /**
22
- * UI to display to the user that the browser they are using is not supported by calling application.
7
+ * UI to display to the user that the browser they are using is not supported by Azure Communications Calling service.
23
8
  *
24
9
  * @beta
25
10
  */
26
11
  export const UnsupportedBrowser = (props) => {
12
+ const { onTroubleshootingClick, strings } = props;
13
+ const locale = useLocale();
14
+ return (React.createElement(UnsupportedEnvironment, { onTroubleshootingClick: onTroubleshootingClick, strings: Object.assign(Object.assign({}, unsupportedBrowserStringsTrampoline(locale)), strings) }));
15
+ };
16
+ const unsupportedBrowserStringsTrampoline = (locale) => {
27
17
  /* @conditional-compile-remove(unsupported-browser) */
28
- const strings = useLocale().strings.UnsupportedBrowser;
29
- /* @conditional-compile-remove(unsupported-browser) */
30
- return React.createElement(UnsupportedBrowserContainer, Object.assign({}, props, { strings: strings }));
31
- return React.createElement(React.Fragment, null);
18
+ return locale.strings.UnsupportedBrowser;
19
+ return {
20
+ primaryText: '',
21
+ secondaryText: '',
22
+ moreHelpLinkText: ''
23
+ };
32
24
  };
33
25
  //# sourceMappingURL=UnsupportedBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnsupportedBrowser.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/UnsupportedBrowser.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,sDAAsD;AACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,sDAAsD;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,sDAAsD;AACtD,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AA4B5C,sDAAsD;AACtD,MAAM,2BAA2B,GAAG,CAAC,KAA8B,EAAe,EAAE;IAClF,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClD,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,eAAe;QAC5B,oBAAC,IAAI,IAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC,2BAA2B,gBAAY,wBAAwB,GAAQ;QAC1G,oBAAC,IAAI,IAAC,MAAM,EAAE,cAAc,IAAG,OAAO,CAAC,WAAW,CAAQ;QAC1D,oBAAC,IAAI,IAAC,MAAM,EAAE,mBAAmB,IAAG,OAAO,CAAC,aAAa,CAAQ;QAChE,sBAAsB,IAAI,CACzB,oBAAC,IAAI,IACH,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,GAAG,EAAE;gBACZ,sBAAsB,EAAE,CAAC;YAC3B,CAAC,gBACU,wBAAwB,IAElC,OAAO,CAAC,YAAY,CAChB,CACR,CACK,CACT,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,sDAAsD;IACtD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACvD,sDAAsD;IACtD,OAAO,oBAAC,2BAA2B,oBAAK,KAAK,IAAE,OAAO,EAAE,OAAO,IAAI,CAAC;IACpE,OAAO,yCAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/* @conditional-compile-remove(unsupported-browser) */\nimport { Icon, Link, Stack, Text } from '@fluentui/react';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport React from 'react';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { useLocale } from '../localization';\n/* @conditional-compile-remove(unsupported-browser) */\nimport {\n containerStyles,\n iconStyles,\n linkTextStyles,\n mainTextStyles,\n secondaryTextStyles\n} from './styles/UnsupportedBrowser.styles';\n\n/**\n * Strings for UnsupportedBrowser component\n *\n * @beta\n */\nexport interface UnsupportedBrowserStrings {\n /** String for the primary text */\n primaryText: string;\n /** String for the secondary text */\n secondaryText: string;\n /** String for the help link */\n moreHelpLink: string;\n}\n\n/**\n * props for UnsupportedBrowser UI\n *\n * @beta\n */\nexport interface UnsupportedBrowserProps {\n /** Handler to perform a action when the help link is actioned */\n onTroubleshootingClick?: () => void;\n /** String overrides for the component */\n strings: UnsupportedBrowserStrings;\n}\n\n/* @conditional-compile-remove(unsupported-browser) */\nconst UnsupportedBrowserContainer = (props: UnsupportedBrowserProps): JSX.Element => {\n const { onTroubleshootingClick, strings } = props;\n return (\n <Stack styles={containerStyles}>\n <Icon styles={iconStyles} iconName=\"UnsupportedBrowserWarning\" data-ui-id=\"unsupportedBrowserIcon\"></Icon>\n <Text styles={mainTextStyles}>{strings.primaryText}</Text>\n <Text styles={secondaryTextStyles}>{strings.secondaryText}</Text>\n {onTroubleshootingClick && (\n <Link\n styles={linkTextStyles}\n onClick={() => {\n onTroubleshootingClick();\n }}\n data-ui-id=\"unsupportedBrowserLink\"\n >\n {strings.moreHelpLink}\n </Link>\n )}\n </Stack>\n );\n};\n\n/**\n * UI to display to the user that the browser they are using is not supported by calling application.\n *\n * @beta\n */\nexport const UnsupportedBrowser = (props: UnsupportedBrowserProps): JSX.Element => {\n /* @conditional-compile-remove(unsupported-browser) */\n const strings = useLocale().strings.UnsupportedBrowser;\n /* @conditional-compile-remove(unsupported-browser) */\n return <UnsupportedBrowserContainer {...props} strings={strings} />;\n return <></>;\n};\n\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"UnsupportedBrowser.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/UnsupportedBrowser.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA4BlE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CACL,oBAAC,sBAAsB,IACrB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,kCAAO,mCAAmC,CAAC,MAAM,CAAC,GAAK,OAAO,IACrE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAAG,CAAC,MAAuB,EAA6B,EAAE;IACjG,sDAAsD;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzC,OAAO;QACL,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport React from 'react';\nimport { ComponentLocale, useLocale } from '../localization';\nimport { UnsupportedEnvironment } from './UnsupportedEnvironment';\n\n/**\n * Strings for UnsupportedBrowser component\n *\n * @beta\n */\nexport interface UnsupportedBrowserStrings {\n /** String for the primary text */\n primaryText: string;\n /** String for the secondary text */\n secondaryText: string;\n /** String to display in the text for the help link */\n moreHelpLinkText: string;\n}\n\n/**\n * props for {@link UnsupportedBrowser} UI\n *\n * @beta\n */\nexport interface UnsupportedBrowserProps {\n /** Handler to perform an action when the help link is actioned */\n onTroubleshootingClick?: () => void;\n /** String overrides for the component */\n strings?: UnsupportedBrowserStrings;\n}\n\n/**\n * UI to display to the user that the browser they are using is not supported by Azure Communications Calling service.\n *\n * @beta\n */\nexport const UnsupportedBrowser = (props: UnsupportedBrowserProps): JSX.Element => {\n const { onTroubleshootingClick, strings } = props;\n const locale = useLocale();\n return (\n <UnsupportedEnvironment\n onTroubleshootingClick={onTroubleshootingClick}\n strings={{ ...unsupportedBrowserStringsTrampoline(locale), ...strings }}\n />\n );\n};\n\nconst unsupportedBrowserStringsTrampoline = (locale: ComponentLocale): UnsupportedBrowserStrings => {\n /* @conditional-compile-remove(unsupported-browser) */\n return locale.strings.UnsupportedBrowser;\n return {\n primaryText: '',\n secondaryText: '',\n moreHelpLinkText: ''\n };\n};\n\"../../../acs-ui-common/src\""]}
@@ -0,0 +1,37 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Strings for UnsupportedBrowser component
4
+ *
5
+ * @beta
6
+ */
7
+ export interface UnsupportedBrowserVersionStrings {
8
+ /** String for the primary text */
9
+ primaryText: string;
10
+ /** String for the secondary text */
11
+ secondaryText: string;
12
+ /** String to display in the text for the help link */
13
+ moreHelpLinkText: string;
14
+ /** String for continue without updating button */
15
+ continueAnywayButtonText?: string;
16
+ }
17
+ /**
18
+ * props for {@link UnsupportedBrowserVersion} UI
19
+ *
20
+ * @beta
21
+ */
22
+ export interface UnsupportedBrowserVersionProps {
23
+ /** Handler to perform an action when the help link is actioned */
24
+ onTroubleshootingClick?: () => void;
25
+ /** String overrides for the component */
26
+ strings?: UnsupportedBrowserVersionStrings;
27
+ /** Handler to allow user to continue into the call */
28
+ onContinueAnywayClick?: () => void;
29
+ }
30
+ /**
31
+ * UI to display to the user that the browser version they are using is out of date
32
+ * and not supported by Azure Communications Calling service.
33
+ *
34
+ * @beta
35
+ */
36
+ export declare const UnsupportedBrowserVersion: (props: UnsupportedBrowserVersionProps) => JSX.Element;
37
+ //# sourceMappingURL=UnsupportedBrowserVersion.d.ts.map
@@ -0,0 +1,27 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import React from 'react';
4
+ import { useLocale } from '../localization';
5
+ import { UnsupportedEnvironment } from './UnsupportedEnvironment';
6
+ /**
7
+ * UI to display to the user that the browser version they are using is out of date
8
+ * and not supported by Azure Communications Calling service.
9
+ *
10
+ * @beta
11
+ */
12
+ export const UnsupportedBrowserVersion = (props) => {
13
+ const { onTroubleshootingClick, strings, onContinueAnywayClick } = props;
14
+ const locale = useLocale();
15
+ return (React.createElement(UnsupportedEnvironment, { onTroubleshootingClick: onTroubleshootingClick, strings: Object.assign(Object.assign({}, unsupportedBrowserVersionStringsTrampoline(locale)), strings), onContinueAnywayClick: onContinueAnywayClick }));
16
+ };
17
+ const unsupportedBrowserVersionStringsTrampoline = (locale) => {
18
+ /* @conditional-compile-remove(unsupported-browser) */
19
+ return locale.strings.UnsupportedBrowserVersion;
20
+ return {
21
+ primaryText: '',
22
+ secondaryText: '',
23
+ moreHelpLinkText: '',
24
+ continueAnywayButtonText: ''
25
+ };
26
+ };
27
+ //# sourceMappingURL=UnsupportedBrowserVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedBrowserVersion.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/UnsupportedBrowserVersion.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAgClE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAqC,EAAe,EAAE;IAC9F,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CACL,oBAAC,sBAAsB,IACrB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,kCAAO,0CAA0C,CAAC,MAAM,CAAC,GAAK,OAAO,GAC5E,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0CAA0C,GAAG,CAAC,MAAuB,EAAoC,EAAE;IAC/G,sDAAsD;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAChD,OAAO;QACL,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,wBAAwB,EAAE,EAAE;KAC7B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport React from 'react';\nimport { ComponentLocale, useLocale } from '../localization';\nimport { UnsupportedEnvironment } from './UnsupportedEnvironment';\n\n/**\n * Strings for UnsupportedBrowser component\n *\n * @beta\n */\nexport interface UnsupportedBrowserVersionStrings {\n /** String for the primary text */\n primaryText: string;\n /** String for the secondary text */\n secondaryText: string;\n /** String to display in the text for the help link */\n moreHelpLinkText: string;\n /** String for continue without updating button */\n continueAnywayButtonText?: string;\n}\n\n/**\n * props for {@link UnsupportedBrowserVersion} UI\n *\n * @beta\n */\nexport interface UnsupportedBrowserVersionProps {\n /** Handler to perform an action when the help link is actioned */\n onTroubleshootingClick?: () => void;\n /** String overrides for the component */\n strings?: UnsupportedBrowserVersionStrings;\n /** Handler to allow user to continue into the call */\n onContinueAnywayClick?: () => void;\n}\n\n/**\n * UI to display to the user that the browser version they are using is out of date\n * and not supported by Azure Communications Calling service.\n *\n * @beta\n */\nexport const UnsupportedBrowserVersion = (props: UnsupportedBrowserVersionProps): JSX.Element => {\n const { onTroubleshootingClick, strings, onContinueAnywayClick } = props;\n const locale = useLocale();\n return (\n <UnsupportedEnvironment\n onTroubleshootingClick={onTroubleshootingClick}\n strings={{ ...unsupportedBrowserVersionStringsTrampoline(locale), ...strings }}\n onContinueAnywayClick={onContinueAnywayClick}\n />\n );\n};\n\nconst unsupportedBrowserVersionStringsTrampoline = (locale: ComponentLocale): UnsupportedBrowserVersionStrings => {\n /* @conditional-compile-remove(unsupported-browser) */\n return locale.strings.UnsupportedBrowserVersion;\n return {\n primaryText: '',\n secondaryText: '',\n moreHelpLinkText: '',\n continueAnywayButtonText: ''\n };\n};\n\"../../../acs-ui-common/src\""]}
@@ -0,0 +1,41 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * @private
4
+ */
5
+ export interface UnsupportedEnvironmentStrings {
6
+ /** String for the primary text */
7
+ primaryText: string;
8
+ /** String for the secondary text */
9
+ secondaryText: string;
10
+ /** String to display in the text for the help link */
11
+ moreHelpLinkText: string;
12
+ /** String for continue anyway button */
13
+ continueAnywayButtonText?: string;
14
+ }
15
+ /**
16
+ * props for {@link UnsupportedEnvironment} UI
17
+ *
18
+ * @private
19
+ */
20
+ export interface UnsupportedEnvironmentProps {
21
+ /**
22
+ * Handler to perform a action when the help link is actioned
23
+ */
24
+ onTroubleshootingClick?: () => void;
25
+ /**
26
+ * String overrides for the component
27
+ */
28
+ strings?: UnsupportedEnvironmentStrings;
29
+ /**
30
+ * CallBack for the continue anyay button. Use this as a mechanism to allow users into
31
+ * a call with a unsupported browser version.
32
+ */
33
+ onContinueAnywayClick?: () => void;
34
+ }
35
+ /**
36
+ * UI to display to the user that the environment they are using is not supported by calling application.
37
+ *
38
+ * @private
39
+ */
40
+ export declare const UnsupportedEnvironment: (props: UnsupportedEnvironmentProps) => JSX.Element;
41
+ //# sourceMappingURL=UnsupportedEnvironment.d.ts.map
@@ -0,0 +1,32 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /* @conditional-compile-remove(unsupported-browser) */
4
+ import { DefaultButton, Icon, Link, Stack, Text } from '@fluentui/react';
5
+ import React from 'react';
6
+ /* @conditional-compile-remove(unsupported-browser) */
7
+ import { useTheme } from '../theming';
8
+ /* @conditional-compile-remove(unsupported-browser) */
9
+ import { containerStyles, continueAnywayButtonStyles, linkTextStyles, mainTextStyles, secondaryTextStyles, testContainerStyles } from './styles/UnsupportedEnvironment.styles';
10
+ /* @conditional-compile-remove(unsupported-browser) */
11
+ const UnsupportedEnvironmentContainer = (props) => {
12
+ const { onTroubleshootingClick, strings, onContinueAnywayClick } = props;
13
+ const theme = useTheme();
14
+ return (React.createElement(Stack, { styles: containerStyles, tokens: { childrenGap: '2rem' } },
15
+ React.createElement(Icon, { iconName: "UnsupportedEnvironmentWarning", "data-ui-id": "unsupported-environment-icon" }),
16
+ React.createElement(Stack, { styles: testContainerStyles, tokens: { childrenGap: '0.25rem' } },
17
+ React.createElement(Text, { styles: mainTextStyles }, strings === null || strings === void 0 ? void 0 : strings.primaryText),
18
+ React.createElement(Text, { styles: secondaryTextStyles }, strings === null || strings === void 0 ? void 0 : strings.secondaryText)),
19
+ onTroubleshootingClick && (React.createElement(Link, { styles: linkTextStyles, onClick: onTroubleshootingClick, "data-ui-id": "unsupported-environment-link" }, strings === null || strings === void 0 ? void 0 : strings.moreHelpLinkText)),
20
+ onContinueAnywayClick && (React.createElement(DefaultButton, { "data-ui-id": "allowUnsupportedBrowserButton", styles: continueAnywayButtonStyles(theme), onClick: onContinueAnywayClick }, strings === null || strings === void 0 ? void 0 : strings.continueAnywayButtonText))));
21
+ };
22
+ /**
23
+ * UI to display to the user that the environment they are using is not supported by calling application.
24
+ *
25
+ * @private
26
+ */
27
+ export const UnsupportedEnvironment = (props) => {
28
+ /* @conditional-compile-remove(unsupported-browser) */
29
+ return React.createElement(UnsupportedEnvironmentContainer, Object.assign({}, props));
30
+ return React.createElement(React.Fragment, null);
31
+ };
32
+ //# sourceMappingURL=UnsupportedEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedEnvironment.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/UnsupportedEnvironment.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,sDAAsD;AACtD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,sDAAsD;AACtD,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wCAAwC,CAAC;AAqChD,sDAAsD;AACtD,MAAM,+BAA+B,GAAG,CAAC,KAAkC,EAAe,EAAE;IAC1F,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QAC7D,oBAAC,IAAI,IAAC,QAAQ,EAAC,+BAA+B,gBAAY,8BAA8B,GAAQ;QAChG,oBAAC,KAAK,IAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;YACpE,oBAAC,IAAI,IAAC,MAAM,EAAE,cAAc,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAQ;YAC3D,oBAAC,IAAI,IAAC,MAAM,EAAE,mBAAmB,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAQ,CAC5D;QACP,sBAAsB,IAAI,CACzB,oBAAC,IAAI,IAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,gBAAa,8BAA8B,IACrG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CACrB,CACR;QACA,qBAAqB,IAAI,CACxB,oBAAC,aAAa,kBACD,+BAA+B,EAC1C,MAAM,EAAE,0BAA0B,CAAC,KAAK,CAAC,EACzC,OAAO,EAAE,qBAAqB,IAE7B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CACpB,CACjB,CACK,CACT,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAkC,EAAe,EAAE;IACxF,sDAAsD;IACtD,OAAO,oBAAC,+BAA+B,oBAAK,KAAK,EAAI,CAAC;IACtD,OAAO,yCAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/* @conditional-compile-remove(unsupported-browser) */\nimport { DefaultButton, Icon, Link, Stack, Text } from '@fluentui/react';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport React from 'react';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { useTheme } from '../theming';\n/* @conditional-compile-remove(unsupported-browser) */\nimport {\n containerStyles,\n continueAnywayButtonStyles,\n linkTextStyles,\n mainTextStyles,\n secondaryTextStyles,\n testContainerStyles\n} from './styles/UnsupportedEnvironment.styles';\n\n/**\n * @private\n */\nexport interface UnsupportedEnvironmentStrings {\n /** String for the primary text */\n primaryText: string;\n /** String for the secondary text */\n secondaryText: string;\n /** String to display in the text for the help link */\n moreHelpLinkText: string;\n /** String for continue anyway button */\n continueAnywayButtonText?: string;\n}\n\n/**\n * props for {@link UnsupportedEnvironment} UI\n *\n * @private\n */\nexport interface UnsupportedEnvironmentProps {\n /**\n * Handler to perform a action when the help link is actioned\n */\n onTroubleshootingClick?: () => void;\n /**\n * String overrides for the component\n */\n strings?: UnsupportedEnvironmentStrings;\n /**\n * CallBack for the continue anyay button. Use this as a mechanism to allow users into\n * a call with a unsupported browser version.\n */\n onContinueAnywayClick?: () => void;\n}\n\n/* @conditional-compile-remove(unsupported-browser) */\nconst UnsupportedEnvironmentContainer = (props: UnsupportedEnvironmentProps): JSX.Element => {\n const { onTroubleshootingClick, strings, onContinueAnywayClick } = props;\n const theme = useTheme();\n return (\n <Stack styles={containerStyles} tokens={{ childrenGap: '2rem' }}>\n <Icon iconName=\"UnsupportedEnvironmentWarning\" data-ui-id=\"unsupported-environment-icon\"></Icon>\n <Stack styles={testContainerStyles} tokens={{ childrenGap: '0.25rem' }}>\n <Text styles={mainTextStyles}>{strings?.primaryText}</Text>\n <Text styles={secondaryTextStyles}>{strings?.secondaryText}</Text>\n </Stack>\n {onTroubleshootingClick && (\n <Link styles={linkTextStyles} onClick={onTroubleshootingClick} data-ui-id=\"unsupported-environment-link\">\n {strings?.moreHelpLinkText}\n </Link>\n )}\n {onContinueAnywayClick && (\n <DefaultButton\n data-ui-id=\"allowUnsupportedBrowserButton\"\n styles={continueAnywayButtonStyles(theme)}\n onClick={onContinueAnywayClick}\n >\n {strings?.continueAnywayButtonText}\n </DefaultButton>\n )}\n </Stack>\n );\n};\n\n/**\n * UI to display to the user that the environment they are using is not supported by calling application.\n *\n * @private\n */\nexport const UnsupportedEnvironment = (props: UnsupportedEnvironmentProps): JSX.Element => {\n /* @conditional-compile-remove(unsupported-browser) */\n return <UnsupportedEnvironmentContainer {...props} />;\n return <></>;\n};\n\"../../../acs-ui-common/src\""]}
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Strings for UnsupportedBrowser component
4
+ *
5
+ * @beta
6
+ */
7
+ export interface UnsupportedOperatingSystemStrings {
8
+ /** String for the primary text */
9
+ primaryText: string;
10
+ /** String for the secondary text */
11
+ secondaryText: string;
12
+ /** String to display in the text for the help link */
13
+ moreHelpLinkText: string;
14
+ }
15
+ /**
16
+ * Props for {@link UnsupportedOperatingSystem} UI
17
+ *
18
+ * @beta
19
+ */
20
+ export interface UnsupportedOperatingSystemProps {
21
+ /** Handler to perform a action when the help link is actioned */
22
+ onTroubleshootingClick?: () => void;
23
+ /** String overrides for the component */
24
+ strings?: UnsupportedOperatingSystemStrings;
25
+ }
26
+ /**
27
+ * UI to display to the user that the operating system they are using is not supported by Azure Communications Calling service.
28
+ *
29
+ * @beta
30
+ */
31
+ export declare const UnsupportedOperatingSystem: (props: UnsupportedOperatingSystemProps) => JSX.Element;
32
+ //# sourceMappingURL=UnsupportedOperatingSystem.d.ts.map
@@ -0,0 +1,25 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import React from 'react';
4
+ import { useLocale } from '../localization';
5
+ import { UnsupportedEnvironment } from './UnsupportedEnvironment';
6
+ /**
7
+ * UI to display to the user that the operating system they are using is not supported by Azure Communications Calling service.
8
+ *
9
+ * @beta
10
+ */
11
+ export const UnsupportedOperatingSystem = (props) => {
12
+ const { onTroubleshootingClick, strings } = props;
13
+ const locale = useLocale();
14
+ return (React.createElement(UnsupportedEnvironment, { onTroubleshootingClick: onTroubleshootingClick, strings: Object.assign(Object.assign({}, unsupportedOperatingSystemStringsTrampoline(locale)), strings) }));
15
+ };
16
+ const unsupportedOperatingSystemStringsTrampoline = (locale) => {
17
+ /* @conditional-compile-remove(unsupported-browser) */
18
+ return locale.strings.UnsupportedOperatingSystem;
19
+ return {
20
+ primaryText: '',
21
+ secondaryText: '',
22
+ moreHelpLinkText: ''
23
+ };
24
+ };
25
+ //# sourceMappingURL=UnsupportedOperatingSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedOperatingSystem.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/UnsupportedOperatingSystem.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA4BlE;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAsC,EAAe,EAAE;IAChG,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CACL,oBAAC,sBAAsB,IACrB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,kCAAO,2CAA2C,CAAC,MAAM,CAAC,GAAK,OAAO,IAC7E,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,2CAA2C,GAAG,CAAC,MAAuB,EAAqC,EAAE;IACjH,sDAAsD;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACjD,OAAO;QACL,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport React from 'react';\nimport { ComponentLocale, useLocale } from '../localization';\nimport { UnsupportedEnvironment } from './UnsupportedEnvironment';\n\n/**\n * Strings for UnsupportedBrowser component\n *\n * @beta\n */\nexport interface UnsupportedOperatingSystemStrings {\n /** String for the primary text */\n primaryText: string;\n /** String for the secondary text */\n secondaryText: string;\n /** String to display in the text for the help link */\n moreHelpLinkText: string;\n}\n\n/**\n * Props for {@link UnsupportedOperatingSystem} UI\n *\n * @beta\n */\nexport interface UnsupportedOperatingSystemProps {\n /** Handler to perform a action when the help link is actioned */\n onTroubleshootingClick?: () => void;\n /** String overrides for the component */\n strings?: UnsupportedOperatingSystemStrings;\n}\n\n/**\n * UI to display to the user that the operating system they are using is not supported by Azure Communications Calling service.\n *\n * @beta\n */\nexport const UnsupportedOperatingSystem = (props: UnsupportedOperatingSystemProps): JSX.Element => {\n const { onTroubleshootingClick, strings } = props;\n const locale = useLocale();\n return (\n <UnsupportedEnvironment\n onTroubleshootingClick={onTroubleshootingClick}\n strings={{ ...unsupportedOperatingSystemStringsTrampoline(locale), ...strings }}\n />\n );\n};\n\nconst unsupportedOperatingSystemStringsTrampoline = (locale: ComponentLocale): UnsupportedOperatingSystemStrings => {\n /* @conditional-compile-remove(unsupported-browser) */\n return locale.strings.UnsupportedOperatingSystem;\n return {\n primaryText: '',\n secondaryText: '',\n moreHelpLinkText: ''\n };\n};\n\"../../../acs-ui-common/src\""]}
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { LayoutProps } from './Layout';
3
+ /**
4
+ * Props for {@link DefaultLayout}.
5
+ *
6
+ * @private
7
+ */
8
+ export declare type DefaultLayoutProps = LayoutProps;
9
+ /**
10
+ * DefaultLayout displays remote participants, local video component, and screen sharing component in
11
+ * a grid and horizontal gallery.
12
+ *
13
+ * @private
14
+ */
15
+ export declare const DefaultLayout: (props: DefaultLayoutProps) => JSX.Element;
16
+ //# sourceMappingURL=DefaultLayout.d.ts.map
@@ -0,0 +1,45 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { Stack } from '@fluentui/react';
4
+ import React from 'react';
5
+ import { GridLayout } from '../GridLayout';
6
+ import { isNarrowWidth } from '../utils/responsive';
7
+ import { rootLayoutStyle } from './styles/DefaultLayout.styles';
8
+ import { useFloatingLocalVideoLayout } from './utils/videoGalleryLayoutUtils';
9
+ import { VideoGalleryResponsiveHorizontalGallery } from './VideoGalleryResponsiveHorizontalGallery';
10
+ /**
11
+ * DefaultLayout displays remote participants, local video component, and screen sharing component in
12
+ * a grid and horizontal gallery.
13
+ *
14
+ * @private
15
+ */
16
+ export const DefaultLayout = (props) => {
17
+ const { remoteParticipants = [], dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth } = props;
18
+ const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
19
+ const floatingLocalVideoLayout = useFloatingLocalVideoLayout({
20
+ remoteParticipants,
21
+ dominantSpeakers,
22
+ maxRemoteVideoStreams,
23
+ isScreenShareActive: !!screenShareComponent
24
+ });
25
+ let activeVideoStreams = 0;
26
+ const gridTiles = floatingLocalVideoLayout.gridParticipants.map((p) => {
27
+ var _a, _b;
28
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
29
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && activeVideoStreams++ < maxRemoteVideoStreams
30
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
31
+ });
32
+ const horizontalGalleryTiles = floatingLocalVideoLayout.horizontalGalleryParticipants.map((p) => {
33
+ var _a, _b;
34
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
35
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && activeVideoStreams++ < maxRemoteVideoStreams
36
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
37
+ });
38
+ if (localVideoComponent) {
39
+ gridTiles.push(localVideoComponent);
40
+ }
41
+ return (React.createElement(Stack, { horizontal: false, styles: rootLayoutStyle },
42
+ screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === void 0 ? void 0 : styles.gridLayout }, gridTiles)),
43
+ horizontalGalleryTiles.length > 0 && (React.createElement(VideoGalleryResponsiveHorizontalGallery, { isNarrow: isNarrow, horizontalGalleryElements: horizontalGalleryTiles, styles: styles === null || styles === void 0 ? void 0 : styles.horizontalGallery }))));
44
+ };
45
+ //# sourceMappingURL=DefaultLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultLayout.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/VideoGallery/DefaultLayout.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAC;AASpG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,MAAM,EACJ,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,MAAM,EACN,qBAAqB,EACrB,WAAW,EACZ,GAAG,KAAK,CAAC;IAEV,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;QAC3D,kBAAkB;QAClB,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;KAC5C,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QACpE,OAAO,yBAAyB,CAC9B,CAAC,EACD,qBAAqB,IAAI,qBAAqB,IAAI,CAAC;YACjD,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,KAAI,kBAAkB,EAAE,GAAG,qBAAqB;YAC5E,CAAC,CAAC,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QAC9F,OAAO,yBAAyB,CAC9B,CAAC,EACD,qBAAqB,IAAI,qBAAqB,IAAI,CAAC;YACjD,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,KAAI,kBAAkB,EAAE,GAAG,qBAAqB;YAC5E,CAAC,CAAC,MAAA,CAAC,CAAC,WAAW,0CAAE,WAAW,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,mBAAmB,EAAE;QACvB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACrC;IAED,OAAO,CACL,oBAAC,KAAK,IAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;QAC9C,oBAAoB,CAAC,CAAC,CAAC,CACtB,oBAAoB,CACrB,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IAAC,GAAG,EAAC,aAAa,EAAC,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,IACrD,SAAS,CACC,CACd;QACA,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,oBAAC,uCAAuC,IACtC,QAAQ,EAAE,QAAQ,EAClB,yBAAyB,EAAE,sBAAsB,EACjD,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,GACjC,CACH,CACK,CACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Stack } from '@fluentui/react';\nimport React from 'react';\nimport { GridLayout } from '../GridLayout';\nimport { isNarrowWidth } from '../utils/responsive';\nimport { LayoutProps } from './Layout';\nimport { rootLayoutStyle } from './styles/DefaultLayout.styles';\nimport { useFloatingLocalVideoLayout } from './utils/videoGalleryLayoutUtils';\nimport { VideoGalleryResponsiveHorizontalGallery } from './VideoGalleryResponsiveHorizontalGallery';\n\n/**\n * Props for {@link DefaultLayout}.\n *\n * @private\n */\nexport type DefaultLayoutProps = LayoutProps;\n\n/**\n * DefaultLayout displays remote participants, local video component, and screen sharing component in\n * a grid and horizontal gallery.\n *\n * @private\n */\nexport const DefaultLayout = (props: DefaultLayoutProps): JSX.Element => {\n const {\n remoteParticipants = [],\n dominantSpeakers,\n localVideoComponent,\n screenShareComponent,\n onRenderRemoteParticipant,\n styles,\n maxRemoteVideoStreams,\n parentWidth\n } = props;\n\n const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;\n\n const floatingLocalVideoLayout = useFloatingLocalVideoLayout({\n remoteParticipants,\n dominantSpeakers,\n maxRemoteVideoStreams,\n isScreenShareActive: !!screenShareComponent\n });\n\n let activeVideoStreams = 0;\n\n const gridTiles = floatingLocalVideoLayout.gridParticipants.map((p) => {\n return onRenderRemoteParticipant(\n p,\n maxRemoteVideoStreams && maxRemoteVideoStreams >= 0\n ? p.videoStream?.isAvailable && activeVideoStreams++ < maxRemoteVideoStreams\n : p.videoStream?.isAvailable\n );\n });\n\n const horizontalGalleryTiles = floatingLocalVideoLayout.horizontalGalleryParticipants.map((p) => {\n return onRenderRemoteParticipant(\n p,\n maxRemoteVideoStreams && maxRemoteVideoStreams >= 0\n ? p.videoStream?.isAvailable && activeVideoStreams++ < maxRemoteVideoStreams\n : p.videoStream?.isAvailable\n );\n });\n\n if (localVideoComponent) {\n gridTiles.push(localVideoComponent);\n }\n\n return (\n <Stack horizontal={false} styles={rootLayoutStyle}>\n {screenShareComponent ? (\n screenShareComponent\n ) : (\n <GridLayout key=\"grid-layout\" styles={styles?.gridLayout}>\n {gridTiles}\n </GridLayout>\n )}\n {horizontalGalleryTiles.length > 0 && (\n <VideoGalleryResponsiveHorizontalGallery\n isNarrow={isNarrow}\n horizontalGalleryElements={horizontalGalleryTiles}\n styles={styles?.horizontalGallery}\n />\n )}\n </Stack>\n );\n};\n"]}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * @private
4
+ */
5
+ export declare const FloatingLocalVideo: (props: {
6
+ localVideoComponent: JSX.Element;
7
+ layerHostId: string;
8
+ isNarrow?: boolean;
9
+ parentWidth?: number;
10
+ parentHeight?: number;
11
+ }) => JSX.Element;
12
+ //# sourceMappingURL=FloatingLocalVideo.d.ts.map
@@ -0,0 +1,41 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { ContextualMenu } from '@fluentui/react';
4
+ import React, { useMemo } from 'react';
5
+ import { useTheme } from '../../theming';
6
+ import { _ModalClone } from '../ModalClone/ModalClone';
7
+ import { floatingLocalVideoModalStyle, LARGE_FLOATING_MODAL_SIZE_PX, localVideoTileOuterPaddingPX, SMALL_FLOATING_MODAL_SIZE_PX } from './styles/FloatingLocalVideo.styles';
8
+ const DRAG_OPTIONS = {
9
+ moveMenuItemText: 'Move',
10
+ closeMenuItemText: 'Close',
11
+ menu: ContextualMenu,
12
+ keepInBounds: true
13
+ };
14
+ // Manually override the max position used to keep the modal in the bounds of its container.
15
+ // This is a workaround for: https://github.com/microsoft/fluentui/issues/20122
16
+ // Because our modal starts in the bottom right corner, we can say that this is the max (i.e. rightmost and bottomost)
17
+ // position the modal can be dragged to.
18
+ const modalMaxDragPosition = { x: localVideoTileOuterPaddingPX, y: localVideoTileOuterPaddingPX };
19
+ /**
20
+ * @private
21
+ */
22
+ export const FloatingLocalVideo = (props) => {
23
+ const { localVideoComponent, layerHostId, isNarrow, parentWidth, parentHeight } = props;
24
+ const theme = useTheme();
25
+ const modalWidth = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.width : LARGE_FLOATING_MODAL_SIZE_PX.width;
26
+ const modalHeight = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.height : LARGE_FLOATING_MODAL_SIZE_PX.height;
27
+ // The minimum drag position is the top left of the video gallery. i.e. the modal (PiP) should not be able
28
+ // to be dragged offscreen and these are the top and left bounds of that calculation.
29
+ const modalMinDragPosition = useMemo(() => parentWidth && parentHeight
30
+ ? {
31
+ // We use -parentWidth/Height because our modal is positioned to start in the bottom right,
32
+ // hence (0,0) is the bottom right of the video gallery.
33
+ x: -parentWidth + modalWidth + localVideoTileOuterPaddingPX,
34
+ y: -parentHeight + modalHeight + localVideoTileOuterPaddingPX
35
+ }
36
+ : undefined, [parentHeight, parentWidth, modalHeight, modalWidth]);
37
+ const modalStyles = useMemo(() => floatingLocalVideoModalStyle(theme, isNarrow), [theme, isNarrow]);
38
+ const layerProps = useMemo(() => ({ hostId: layerHostId }), [layerHostId]);
39
+ return (React.createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS, styles: modalStyles, layerProps: layerProps, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition }, localVideoComponent));
40
+ };
41
+ //# sourceMappingURL=FloatingLocalVideo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingLocalVideo.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/VideoGallery/FloatingLocalVideo.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAiB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,YAAY,GAAiB;IACjC,gBAAgB,EAAE,MAAM;IACxB,iBAAiB,EAAE,OAAO;IAC1B,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,4FAA4F;AAC5F,+EAA+E;AAC/E,sHAAsH;AACtH,wCAAwC;AACxC,MAAM,oBAAoB,GAAG,EAAE,CAAC,EAAE,4BAA4B,EAAE,CAAC,EAAE,4BAA4B,EAAE,CAAC;AAElG;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAMlC,EAAe,EAAE;IAChB,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAExF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC;IACtG,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC;IACzG,0GAA0G;IAC1G,qFAAqF;IACrF,MAAM,oBAAoB,GAA8B,OAAO,CAC7D,GAAG,EAAE,CACH,WAAW,IAAI,YAAY;QACzB,CAAC,CAAC;YACE,2FAA2F;YAC3F,wDAAwD;YACxD,CAAC,EAAE,CAAC,WAAW,GAAG,UAAU,GAAG,4BAA4B;YAC3D,CAAC,EAAE,CAAC,YAAY,GAAG,WAAW,GAAG,4BAA4B;SAC9D;QACH,CAAC,CAAC,SAAS,EACf,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CACrD,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpG,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,OAAO,CACL,oBAAC,WAAW,IACV,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,oBAAoB,EACrC,eAAe,EAAE,oBAAoB,IAEpC,mBAAmB,CACR,CACf,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ContextualMenu, IDragOptions } from '@fluentui/react';\nimport React, { useMemo } from 'react';\nimport { useTheme } from '../../theming';\nimport { _ICoordinates, _ModalClone } from '../ModalClone/ModalClone';\nimport {\n floatingLocalVideoModalStyle,\n LARGE_FLOATING_MODAL_SIZE_PX,\n localVideoTileOuterPaddingPX,\n SMALL_FLOATING_MODAL_SIZE_PX\n} from './styles/FloatingLocalVideo.styles';\n\nconst DRAG_OPTIONS: IDragOptions = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n\n// Manually override the max position used to keep the modal in the bounds of its container.\n// This is a workaround for: https://github.com/microsoft/fluentui/issues/20122\n// Because our modal starts in the bottom right corner, we can say that this is the max (i.e. rightmost and bottomost)\n// position the modal can be dragged to.\nconst modalMaxDragPosition = { x: localVideoTileOuterPaddingPX, y: localVideoTileOuterPaddingPX };\n\n/**\n * @private\n */\nexport const FloatingLocalVideo = (props: {\n localVideoComponent: JSX.Element;\n layerHostId: string;\n isNarrow?: boolean;\n parentWidth?: number;\n parentHeight?: number;\n}): JSX.Element => {\n const { localVideoComponent, layerHostId, isNarrow, parentWidth, parentHeight } = props;\n\n const theme = useTheme();\n\n const modalWidth = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.width : LARGE_FLOATING_MODAL_SIZE_PX.width;\n const modalHeight = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.height : LARGE_FLOATING_MODAL_SIZE_PX.height;\n // The minimum drag position is the top left of the video gallery. i.e. the modal (PiP) should not be able\n // to be dragged offscreen and these are the top and left bounds of that calculation.\n const modalMinDragPosition: _ICoordinates | undefined = useMemo(\n () =>\n parentWidth && parentHeight\n ? {\n // We use -parentWidth/Height because our modal is positioned to start in the bottom right,\n // hence (0,0) is the bottom right of the video gallery.\n x: -parentWidth + modalWidth + localVideoTileOuterPaddingPX,\n y: -parentHeight + modalHeight + localVideoTileOuterPaddingPX\n }\n : undefined,\n [parentHeight, parentWidth, modalHeight, modalWidth]\n );\n\n const modalStyles = useMemo(() => floatingLocalVideoModalStyle(theme, isNarrow), [theme, isNarrow]);\n const layerProps = useMemo(() => ({ hostId: layerHostId }), [layerHostId]);\n\n return (\n <_ModalClone\n isOpen={true}\n isModeless={true}\n dragOptions={DRAG_OPTIONS}\n styles={modalStyles}\n layerProps={layerProps}\n maxDragPosition={modalMaxDragPosition}\n minDragPosition={modalMinDragPosition}\n >\n {localVideoComponent}\n </_ModalClone>\n );\n};\n"]}
@@ -0,0 +1,25 @@
1
+ /// <reference types="react" />
2
+ import { LayoutProps } from './Layout';
3
+ /**
4
+ * Props for {@link FloatingLocalVideoLayout}.
5
+ *
6
+ * @private
7
+ */
8
+ export interface FloatingLocalVideoLayoutProps extends LayoutProps {
9
+ /**
10
+ * Whether to display the local video camera switcher button
11
+ */
12
+ showCameraSwitcherInLocalPreview?: boolean;
13
+ /**
14
+ * Height of parent element
15
+ */
16
+ parentHeight?: number;
17
+ }
18
+ /**
19
+ * FloatingLocalVideoLayout displays remote participants and a screen sharing component in
20
+ * a grid and horizontal gallery while floating the local video
21
+ *
22
+ * @private
23
+ */
24
+ export declare const FloatingLocalVideoLayout: (props: FloatingLocalVideoLayoutProps) => JSX.Element;
25
+ //# sourceMappingURL=FloatingLocalVideoLayout.d.ts.map
@@ -0,0 +1,61 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { LayerHost, mergeStyles, Stack } from '@fluentui/react';
4
+ import { useId } from '@fluentui/react-hooks';
5
+ import React from 'react';
6
+ import { useTheme } from '../../theming';
7
+ import { GridLayout } from '../GridLayout';
8
+ import { isNarrowWidth } from '../utils/responsive';
9
+ import { FloatingLocalVideo } from './FloatingLocalVideo';
10
+ import { localVideoTileContainerStyle, localVideoTileWithControlsContainerStyle, LOCAL_VIDEO_TILE_ZINDEX } from './styles/FloatingLocalVideo.styles';
11
+ import { innerLayoutStyle, layerHostStyle, rootLayoutStyle } from './styles/FloatingLocalVideoLayout.styles';
12
+ import { useFloatingLocalVideoLayout } from './utils/videoGalleryLayoutUtils';
13
+ import { VideoGalleryResponsiveHorizontalGallery } from './VideoGalleryResponsiveHorizontalGallery';
14
+ /**
15
+ * FloatingLocalVideoLayout displays remote participants and a screen sharing component in
16
+ * a grid and horizontal gallery while floating the local video
17
+ *
18
+ * @private
19
+ */
20
+ export const FloatingLocalVideoLayout = (props) => {
21
+ const { remoteParticipants = [], dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, showCameraSwitcherInLocalPreview, parentWidth, parentHeight } = props;
22
+ const theme = useTheme();
23
+ const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
24
+ const floatingLocalVideoLayout = useFloatingLocalVideoLayout({
25
+ remoteParticipants,
26
+ dominantSpeakers,
27
+ maxRemoteVideoStreams,
28
+ isScreenShareActive: !!screenShareComponent
29
+ });
30
+ let activeVideoStreams = 0;
31
+ const gridTiles = floatingLocalVideoLayout.gridParticipants.map((p) => {
32
+ var _a, _b;
33
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
34
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && activeVideoStreams++ < maxRemoteVideoStreams
35
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
36
+ });
37
+ const shouldFloatLocalVideo = remoteParticipants.length > 0;
38
+ if (!shouldFloatLocalVideo && localVideoComponent) {
39
+ gridTiles.push(localVideoComponent);
40
+ }
41
+ const horizontalGalleryTiles = floatingLocalVideoLayout.horizontalGalleryParticipants.map((p) => {
42
+ var _a, _b;
43
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
44
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && activeVideoStreams++ < maxRemoteVideoStreams
45
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
46
+ });
47
+ const layerHostId = useId('layerhost');
48
+ const wrappedLocalVideoComponent = localVideoComponent && shouldFloatLocalVideo ? (
49
+ // When we use showCameraSwitcherInLocalPreview it disables dragging to allow keyboard navigation.
50
+ showCameraSwitcherInLocalPreview ? (React.createElement(Stack, { className: mergeStyles(localVideoTileWithControlsContainerStyle(theme, isNarrow), {
51
+ boxShadow: theme.effects.elevation8,
52
+ zIndex: LOCAL_VIDEO_TILE_ZINDEX
53
+ }) }, localVideoComponent)) : horizontalGalleryTiles.length > 0 ? (React.createElement(Stack, { className: mergeStyles(localVideoTileContainerStyle(theme, isNarrow)) }, localVideoComponent)) : (React.createElement(FloatingLocalVideo, { localVideoComponent: localVideoComponent, layerHostId: layerHostId, isNarrow: isNarrow, parentWidth: parentWidth, parentHeight: parentHeight }))) : undefined;
54
+ return (React.createElement(Stack, { styles: rootLayoutStyle },
55
+ wrappedLocalVideoComponent,
56
+ React.createElement(Stack, { horizontal: false, styles: innerLayoutStyle },
57
+ screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === void 0 ? void 0 : styles.gridLayout }, gridTiles)),
58
+ horizontalGalleryTiles.length > 0 && (React.createElement(VideoGalleryResponsiveHorizontalGallery, { isNarrow: isNarrow, shouldFloatLocalVideo: true, horizontalGalleryElements: horizontalGalleryTiles, styles: styles === null || styles === void 0 ? void 0 : styles.horizontalGallery })),
59
+ React.createElement(LayerHost, { id: layerHostId, className: mergeStyles(layerHostStyle) }))));
60
+ };
61
+ //# sourceMappingURL=FloatingLocalVideoLayout.js.map