@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,65 +1,94 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { useRef, useState } from 'react';
3
+ import { useMemo, useRef, useState, useCallback, useEffect } from 'react';
4
4
  /**
5
5
  * @private
6
6
  */
7
- export default function useLongPress(onClick, onLongPress, isMobile) {
7
+ export default function useLongPress(props) {
8
+ const { onClick, onLongPress, touchEventsOnly = false } = props;
8
9
  const timerRef = useRef();
9
10
  const [isLongPress, setIsLongPress] = useState(false);
10
11
  const [action, setAction] = useState(false);
11
- function startPressTimer() {
12
+ useEffect(() => {
13
+ if (timerRef.current) {
14
+ clearTimeout(timerRef.current);
15
+ }
16
+ return () => {
17
+ if (timerRef.current) {
18
+ clearTimeout(timerRef.current);
19
+ }
20
+ };
21
+ }, [onClick, onLongPress, touchEventsOnly]);
22
+ const startPressTimer = useCallback(() => {
12
23
  setIsLongPress(false);
13
24
  timerRef.current = setTimeout(() => {
14
25
  setIsLongPress(true);
26
+ onLongPress();
15
27
  }, 500);
16
- }
17
- function handleOnClick() {
18
- // when it's mobile use ontouchstart and ontouchend to fire onclick and onlongpress event
19
- if (isMobile) {
28
+ }, [onLongPress]);
29
+ const handleOnClick = useCallback(() => {
30
+ if (touchEventsOnly || !onClick) {
20
31
  return;
21
32
  }
22
- onClick();
23
- if (isLongPress) {
24
- onLongPress();
33
+ if (!isLongPress) {
34
+ onClick();
35
+ }
36
+ }, [isLongPress, onClick, touchEventsOnly]);
37
+ const handleOnKeyDown = useCallback(() => {
38
+ if (touchEventsOnly) {
25
39
  return;
26
40
  }
27
- }
28
- function handleOnKeyDown() {
29
41
  if (action) {
30
42
  setAction(false);
31
43
  startPressTimer();
32
44
  }
33
- }
34
- function handleOnKeyUp() {
45
+ }, [action, startPressTimer, touchEventsOnly]);
46
+ const handleOnKeyUp = useCallback(() => {
47
+ if (touchEventsOnly) {
48
+ return;
49
+ }
35
50
  setAction(true);
36
51
  timerRef.current && clearTimeout(timerRef.current);
37
- }
38
- function handleOnMouseDown() {
52
+ }, [touchEventsOnly]);
53
+ const handleOnMouseDown = useCallback(() => {
54
+ if (touchEventsOnly) {
55
+ return;
56
+ }
39
57
  startPressTimer();
40
- }
41
- function handleOnMouseUp() {
58
+ }, [startPressTimer, touchEventsOnly]);
59
+ const handleOnMouseUp = useCallback(() => {
60
+ if (touchEventsOnly) {
61
+ return;
62
+ }
42
63
  timerRef.current && clearTimeout(timerRef.current);
43
- }
44
- function handleOnTouchStart() {
64
+ }, [touchEventsOnly]);
65
+ const handleOnTouchStart = useCallback(() => {
45
66
  startPressTimer();
46
- }
47
- function handleOnTouchEnd() {
48
- if (isMobile) {
49
- isLongPress ? onLongPress() : onClick();
50
- }
67
+ }, [startPressTimer]);
68
+ const handleOnTouchEnd = useCallback(() => {
51
69
  timerRef.current && clearTimeout(timerRef.current);
52
- }
53
- return {
54
- handlers: {
55
- onClick: handleOnClick,
56
- onMouseDown: handleOnMouseDown,
57
- onMouseUp: handleOnMouseUp,
58
- onTouchStart: handleOnTouchStart,
59
- onTouchEnd: handleOnTouchEnd,
60
- onKeyDown: handleOnKeyDown,
61
- onKeyUp: handleOnKeyUp
62
- }
63
- };
70
+ }, []);
71
+ const handleOnTouchMove = useCallback(() => {
72
+ timerRef.current && clearTimeout(timerRef.current);
73
+ }, []);
74
+ return useMemo(() => ({
75
+ onClick: handleOnClick,
76
+ onMouseDown: handleOnMouseDown,
77
+ onMouseUp: handleOnMouseUp,
78
+ onTouchStart: handleOnTouchStart,
79
+ onTouchEnd: handleOnTouchEnd,
80
+ onKeyDown: handleOnKeyDown,
81
+ onKeyUp: handleOnKeyUp,
82
+ onTouchMove: handleOnTouchMove
83
+ }), [
84
+ handleOnClick,
85
+ handleOnKeyDown,
86
+ handleOnKeyUp,
87
+ handleOnMouseDown,
88
+ handleOnMouseUp,
89
+ handleOnTouchEnd,
90
+ handleOnTouchStart,
91
+ handleOnTouchMove
92
+ ]);
64
93
  }
65
94
  //# sourceMappingURL=useLongPress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLongPress.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/useLongPress.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAmB,EACnB,WAAuB,EACvB,QAAiB;IAYjB,MAAM,QAAQ,GAAG,MAAM,EAAiC,CAAC;IACzD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,eAAe;QACtB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,SAAS,aAAa;QACpB,yFAAyF;QACzF,IAAI,QAAQ,EAAE;YACZ,OAAO;SACR;QACD,OAAO,EAAE,CAAC;QACV,IAAI,WAAW,EAAE;YACf,WAAW,EAAE,CAAC;YACd,OAAO;SACR;IACH,CAAC;IAED,SAAS,eAAe;QACtB,IAAI,MAAM,EAAE;YACV,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,eAAe,EAAE,CAAC;SACnB;IACH,CAAC;IAED,SAAS,aAAa;QACpB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,iBAAiB;QACxB,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,SAAS,eAAe;QACtB,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,kBAAkB;QACzB,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,SAAS,gBAAgB;QACvB,IAAI,QAAQ,EAAE;YACZ,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACzC;QAED,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,iBAAiB;YAC9B,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,kBAAkB;YAChC,UAAU,EAAE,gBAAgB;YAC5B,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,aAAa;SACvB;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { useRef, useState } from 'react';\n\n/**\n * @private\n */\nexport default function useLongPress(\n onClick: () => void,\n onLongPress: () => void,\n isMobile: boolean\n): {\n handlers: {\n onClick: () => void;\n onMouseDown: () => void;\n onMouseUp: () => void;\n onTouchStart: () => void;\n onTouchEnd: () => void;\n onKeyDown: () => void;\n onKeyUp: () => void;\n };\n} {\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const [isLongPress, setIsLongPress] = useState(false);\n const [action, setAction] = useState(false);\n\n function startPressTimer(): void {\n setIsLongPress(false);\n timerRef.current = setTimeout(() => {\n setIsLongPress(true);\n }, 500);\n }\n\n function handleOnClick(): void {\n // when it's mobile use ontouchstart and ontouchend to fire onclick and onlongpress event\n if (isMobile) {\n return;\n }\n onClick();\n if (isLongPress) {\n onLongPress();\n return;\n }\n }\n\n function handleOnKeyDown(): void {\n if (action) {\n setAction(false);\n startPressTimer();\n }\n }\n\n function handleOnKeyUp(): void {\n setAction(true);\n timerRef.current && clearTimeout(timerRef.current);\n }\n\n function handleOnMouseDown(): void {\n startPressTimer();\n }\n\n function handleOnMouseUp(): void {\n timerRef.current && clearTimeout(timerRef.current);\n }\n\n function handleOnTouchStart(): void {\n startPressTimer();\n }\n\n function handleOnTouchEnd(): void {\n if (isMobile) {\n isLongPress ? onLongPress() : onClick();\n }\n\n timerRef.current && clearTimeout(timerRef.current);\n }\n\n return {\n handlers: {\n onClick: handleOnClick,\n onMouseDown: handleOnMouseDown,\n onMouseUp: handleOnMouseUp,\n onTouchStart: handleOnTouchStart,\n onTouchEnd: handleOnTouchEnd,\n onKeyDown: handleOnKeyDown,\n onKeyUp: handleOnKeyUp\n }\n };\n}\n"]}
1
+ {"version":3,"file":"useLongPress.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/useLongPress.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { useMemo, useRef, useState, useCallback, useEffect } from 'react';\n\n/**\n * @private\n */\nexport default function useLongPress(props: {\n onLongPress: () => void;\n onClick?: () => void;\n touchEventsOnly?: boolean;\n}): {\n onClick: () => void;\n onMouseDown: () => void;\n onMouseUp: () => void;\n onTouchStart: () => void;\n onTouchEnd: () => void;\n onKeyDown: () => void;\n onKeyUp: () => void;\n onTouchMove: () => void;\n} {\n const { onClick, onLongPress, touchEventsOnly = false } = props;\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const [isLongPress, setIsLongPress] = useState(false);\n const [action, setAction] = useState(false);\n\n useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [onClick, onLongPress, touchEventsOnly]);\n\n const startPressTimer = useCallback(() => {\n setIsLongPress(false);\n timerRef.current = setTimeout(() => {\n setIsLongPress(true);\n onLongPress();\n }, 500);\n }, [onLongPress]);\n\n const handleOnClick = useCallback(() => {\n if (touchEventsOnly || !onClick) {\n return;\n }\n if (!isLongPress) {\n onClick();\n }\n }, [isLongPress, onClick, touchEventsOnly]);\n\n const handleOnKeyDown = useCallback(() => {\n if (touchEventsOnly) {\n return;\n }\n if (action) {\n setAction(false);\n startPressTimer();\n }\n }, [action, startPressTimer, touchEventsOnly]);\n\n const handleOnKeyUp = useCallback(() => {\n if (touchEventsOnly) {\n return;\n }\n setAction(true);\n timerRef.current && clearTimeout(timerRef.current);\n }, [touchEventsOnly]);\n\n const handleOnMouseDown = useCallback(() => {\n if (touchEventsOnly) {\n return;\n }\n startPressTimer();\n }, [startPressTimer, touchEventsOnly]);\n\n const handleOnMouseUp = useCallback(() => {\n if (touchEventsOnly) {\n return;\n }\n timerRef.current && clearTimeout(timerRef.current);\n }, [touchEventsOnly]);\n\n const handleOnTouchStart = useCallback(() => {\n startPressTimer();\n }, [startPressTimer]);\n\n const handleOnTouchEnd = useCallback(() => {\n timerRef.current && clearTimeout(timerRef.current);\n }, []);\n\n const handleOnTouchMove = useCallback(() => {\n timerRef.current && clearTimeout(timerRef.current);\n }, []);\n\n return useMemo(\n () => ({\n onClick: handleOnClick,\n onMouseDown: handleOnMouseDown,\n onMouseUp: handleOnMouseUp,\n onTouchStart: handleOnTouchStart,\n onTouchEnd: handleOnTouchEnd,\n onKeyDown: handleOnKeyDown,\n onKeyUp: handleOnKeyUp,\n onTouchMove: handleOnTouchMove\n }),\n [\n handleOnClick,\n handleOnKeyDown,\n handleOnKeyUp,\n handleOnMouseDown,\n handleOnMouseUp,\n handleOnTouchEnd,\n handleOnTouchStart,\n handleOnTouchMove\n ]\n );\n}\n"]}
@@ -1,6 +1,5 @@
1
- import { IContextualMenuItem, IIconProps, MessageBarType } from '@fluentui/react';
1
+ import { IIconProps, MessageBarType } from '@fluentui/react';
2
2
  import { ActiveErrorMessage, ErrorType } from './ErrorBar';
3
- import { VideoTileMenuItems } from './VideoTile';
4
3
  /**
5
4
  * @private
6
5
  *
@@ -53,10 +52,6 @@ export declare const errorsToShow: (activeErrorMessages: ActiveErrorMessage[], d
53
52
  * @returns MessageBarType
54
53
  */
55
54
  export declare const messageBarType: (errorType: ErrorType) => MessageBarType;
56
- /**
57
- * @private
58
- */
59
- export declare const mapMenuItemsToContextualMenuItems: (menuItems: VideoTileMenuItems) => IContextualMenuItem[];
60
55
  /**
61
56
  * @private
62
57
  * @param errorType
@@ -109,11 +109,13 @@ export const messageBarType = (errorType) => {
109
109
  case 'callNoSpeakerFound':
110
110
  case 'callNoMicrophoneFound':
111
111
  case 'callMicrophoneAccessDenied':
112
+ case 'callMicrophoneAccessDeniedSafari':
112
113
  case 'callMicrophoneMutedBySystem':
113
114
  case 'callMicrophoneUnmutedBySystem':
114
115
  case 'callMacOsMicrophoneAccessDenied':
115
116
  case 'callLocalVideoFreeze':
116
117
  case 'callCameraAccessDenied':
118
+ case 'callCameraAccessDeniedSafari':
117
119
  case 'callCameraAlreadyInUse':
118
120
  case 'callVideoStoppedBySystem':
119
121
  case 'callVideoRecoveredBySystem':
@@ -124,22 +126,6 @@ export const messageBarType = (errorType) => {
124
126
  return MessageBarType.error;
125
127
  }
126
128
  };
127
- /**
128
- * @private
129
- */
130
- export const mapMenuItemsToContextualMenuItems = (menuItems) => {
131
- const contextualMenuItems = [];
132
- menuItems.map((item) => {
133
- contextualMenuItems.push({
134
- key: item.key,
135
- text: item.text,
136
- ariaLabel: item.ariaLabel,
137
- onClick: item.onClick,
138
- iconProps: item.iconProps
139
- });
140
- });
141
- return contextualMenuItems;
142
- };
143
129
  /**
144
130
  * @private
145
131
  * @param errorType
@@ -157,11 +143,13 @@ export const customIconName = {
157
143
  callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',
158
144
  callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',
159
145
  callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',
146
+ callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',
160
147
  callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',
161
148
  callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',
162
149
  callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',
163
150
  callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',
164
151
  callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',
152
+ callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',
165
153
  callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',
166
154
  callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',
167
155
  callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IContextualMenuItem, IIconProps, MessageBarType } from '@fluentui/react';\nimport { ActiveErrorMessage, ErrorType } from './ErrorBar';\nimport { VideoTileMenuItems } from './VideoTile';\n\n/**\n * @private\n *\n * @param fileName\n * @param length\n * @returns string\n */\nexport const truncatedFileName = (fileName: string, length: number): string => {\n return fileName.substring(0, length).trimEnd() + (fileName.length > length ? '... ' : '');\n};\n\n/**\n * @private\n *\n * @param fileName\n * @returns string\n */\nexport const extension = (fileName: string): string => fileName.split('.').pop() || '';\n\n/**\n * @private\n */\nexport interface DismissedError {\n type: ErrorType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n * @param dismissedErrors\n * @param toDismiss\n * @returns DismissedError[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissError = (dismissedErrors: DismissedError[], toDismiss: ActiveErrorMessage): DismissedError[] => {\n const now = new Date(Date.now());\n for (const error of dismissedErrors) {\n if (error.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n error.dismissedAt = now;\n error.activeSince = toDismiss.timestamp;\n return Array.from(dismissedErrors);\n }\n }\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedErrors,\n {\n type: toDismiss.type,\n dismissedAt: now,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveErrors = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[]\n): DismissedError[] => {\n const active = new Map();\n for (const message of activeErrorMessages) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedError): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedErrors.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedErrors.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedErrors;\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns ActiveErrorMessage[]\n */\nexport const errorsToShow = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[],\n mountTimestamp?: Date\n): ActiveErrorMessage[] => {\n const dismissed: Map<ErrorType, DismissedError> = new Map();\n for (const error of dismissedErrors) {\n dismissed.set(error.type, error);\n }\n\n return activeErrorMessages.filter((error) => {\n if (mountTimestamp && error.timestamp && mountTimestamp > error.timestamp) {\n // Error has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(error.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!error.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return error.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param errorType\n * @returns MessageBarType\n */\nexport const messageBarType = (errorType: ErrorType): MessageBarType => {\n switch (errorType) {\n case 'callNetworkQualityLow':\n case 'callNoSpeakerFound':\n case 'callNoMicrophoneFound':\n case 'callMicrophoneAccessDenied':\n case 'callMicrophoneMutedBySystem':\n case 'callMicrophoneUnmutedBySystem':\n case 'callMacOsMicrophoneAccessDenied':\n case 'callLocalVideoFreeze':\n case 'callCameraAccessDenied':\n case 'callCameraAlreadyInUse':\n case 'callVideoStoppedBySystem':\n case 'callVideoRecoveredBySystem':\n case 'callMacOsCameraAccessDenied':\n case 'callMacOsScreenShareAccessDenied':\n return MessageBarType.warning;\n default:\n return MessageBarType.error;\n }\n};\n\n/**\n * @private\n */\nexport const mapMenuItemsToContextualMenuItems = (menuItems: VideoTileMenuItems): IContextualMenuItem[] => {\n const contextualMenuItems: IContextualMenuItem[] = [];\n menuItems.map((item) => {\n contextualMenuItems.push({\n key: item.key,\n text: item.text,\n ariaLabel: item.ariaLabel,\n onClick: item.onClick,\n iconProps: item.iconProps\n });\n });\n\n return contextualMenuItems;\n};\n\n/**\n * @private\n * @param errorType\n * @returns IIconProps | undefined\n */\nexport const messageBarIconProps = (errorType: ErrorType): IIconProps | undefined => {\n const iconName = customIconName[errorType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customIconName: Partial<{ [key in ErrorType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'\n};\n\n/**\n * @private\n */\nexport const isValidString = (string: string | undefined): string is string => {\n return !!string && string.length > 0;\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IIconProps, MessageBarType } from '@fluentui/react';\nimport { ActiveErrorMessage, ErrorType } from './ErrorBar';\n\n/**\n * @private\n *\n * @param fileName\n * @param length\n * @returns string\n */\nexport const truncatedFileName = (fileName: string, length: number): string => {\n return fileName.substring(0, length).trimEnd() + (fileName.length > length ? '... ' : '');\n};\n\n/**\n * @private\n *\n * @param fileName\n * @returns string\n */\nexport const extension = (fileName: string): string => fileName.split('.').pop() || '';\n\n/**\n * @private\n */\nexport interface DismissedError {\n type: ErrorType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n * @param dismissedErrors\n * @param toDismiss\n * @returns DismissedError[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissError = (dismissedErrors: DismissedError[], toDismiss: ActiveErrorMessage): DismissedError[] => {\n const now = new Date(Date.now());\n for (const error of dismissedErrors) {\n if (error.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n error.dismissedAt = now;\n error.activeSince = toDismiss.timestamp;\n return Array.from(dismissedErrors);\n }\n }\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedErrors,\n {\n type: toDismiss.type,\n dismissedAt: now,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveErrors = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[]\n): DismissedError[] => {\n const active = new Map();\n for (const message of activeErrorMessages) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedError): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedErrors.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedErrors.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedErrors;\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns ActiveErrorMessage[]\n */\nexport const errorsToShow = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[],\n mountTimestamp?: Date\n): ActiveErrorMessage[] => {\n const dismissed: Map<ErrorType, DismissedError> = new Map();\n for (const error of dismissedErrors) {\n dismissed.set(error.type, error);\n }\n\n return activeErrorMessages.filter((error) => {\n if (mountTimestamp && error.timestamp && mountTimestamp > error.timestamp) {\n // Error has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(error.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!error.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return error.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param errorType\n * @returns MessageBarType\n */\nexport const messageBarType = (errorType: ErrorType): MessageBarType => {\n switch (errorType) {\n case 'callNetworkQualityLow':\n case 'callNoSpeakerFound':\n case 'callNoMicrophoneFound':\n case 'callMicrophoneAccessDenied':\n case 'callMicrophoneAccessDeniedSafari':\n case 'callMicrophoneMutedBySystem':\n case 'callMicrophoneUnmutedBySystem':\n case 'callMacOsMicrophoneAccessDenied':\n case 'callLocalVideoFreeze':\n case 'callCameraAccessDenied':\n case 'callCameraAccessDeniedSafari':\n case 'callCameraAlreadyInUse':\n case 'callVideoStoppedBySystem':\n case 'callVideoRecoveredBySystem':\n case 'callMacOsCameraAccessDenied':\n case 'callMacOsScreenShareAccessDenied':\n return MessageBarType.warning;\n default:\n return MessageBarType.error;\n }\n};\n\n/**\n * @private\n * @param errorType\n * @returns IIconProps | undefined\n */\nexport const messageBarIconProps = (errorType: ErrorType): IIconProps | undefined => {\n const iconName = customIconName[errorType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customIconName: Partial<{ [key in ErrorType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'\n};\n\n/**\n * @private\n */\nexport const isValidString = (string: string | undefined): string is string => {\n return !!string && string.length > 0;\n};\n"]}
@@ -7,6 +7,5 @@ export type { ComponentStrings, ComponentLocale, LocalizationProviderProps } fro
7
7
  export * from './theming';
8
8
  export { _PermissionsProvider, presenterPermissions, consumerPermissions, _usePermissions, _getPermissions } from './permissions';
9
9
  export type { _Permissions, _PermissionsProviderProps, Role } from './permissions';
10
- export type { VideoTileMenuItems } from './components/VideoTile';
11
10
  export type { BaseCustomStyles, CallParticipantListParticipant, ChatMessage, CommunicationParticipant, ContentSystemMessage, CreateVideoStreamViewResult, CustomAvatarOptions, CustomMessage, Message, MessageAttachedStatus, MessageCommon, MessageContentType, OnRenderAvatarCallback, ParticipantAddedSystemMessage, ParticipantListParticipant, ParticipantRemovedSystemMessage, ParticipantState, ReadReceiptsBySenderId, SystemMessage, SystemMessageCommon, TopicUpdatedSystemMessage, VideoGalleryLocalParticipant, VideoGalleryParticipant, VideoGalleryRemoteParticipant, VideoGalleryStream, VideoStreamOptions, ViewScalingMode } from './types';
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,WAAW,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,eAAe,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from './components';\nexport { _IdentifierProvider } from './identifiers';\nexport type { _Identifiers, _IdentifierProviderProps } from './identifiers';\nexport * from './localization/locales';\nexport { LocalizationProvider } from './localization';\nexport type { ComponentStrings, ComponentLocale, LocalizationProviderProps } from './localization';\nexport * from './theming';\n\n/* @conditional-compile-remove(rooms) */\nexport {\n _PermissionsProvider,\n presenterPermissions,\n consumerPermissions,\n _usePermissions,\n _getPermissions\n} from './permissions';\n/* @conditional-compile-remove(rooms) */\nexport type { _Permissions, _PermissionsProviderProps, Role } from './permissions';\n\nexport type { VideoTileMenuItems } from './components/VideoTile';\n\nexport type {\n BaseCustomStyles,\n CallParticipantListParticipant,\n ChatMessage,\n CommunicationParticipant,\n ContentSystemMessage,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n OnRenderAvatarCallback,\n ParticipantAddedSystemMessage,\n ParticipantListParticipant,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ReadReceiptsBySenderId,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoStreamOptions,\n ViewScalingMode\n} from './types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,WAAW,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,eAAe,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from './components';\nexport { _IdentifierProvider } from './identifiers';\nexport type { _Identifiers, _IdentifierProviderProps } from './identifiers';\nexport * from './localization/locales';\nexport { LocalizationProvider } from './localization';\nexport type { ComponentStrings, ComponentLocale, LocalizationProviderProps } from './localization';\nexport * from './theming';\n\n/* @conditional-compile-remove(rooms) */\nexport {\n _PermissionsProvider,\n presenterPermissions,\n consumerPermissions,\n _usePermissions,\n _getPermissions\n} from './permissions';\n/* @conditional-compile-remove(rooms) */\nexport type { _Permissions, _PermissionsProviderProps, Role } from './permissions';\n\nexport type {\n BaseCustomStyles,\n CallParticipantListParticipant,\n ChatMessage,\n CommunicationParticipant,\n ContentSystemMessage,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n OnRenderAvatarCallback,\n ParticipantAddedSystemMessage,\n ParticipantListParticipant,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ReadReceiptsBySenderId,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoStreamOptions,\n ViewScalingMode\n} from './types';\n"]}
@@ -2,11 +2,13 @@ import React from 'react';
2
2
  import { CameraButtonStrings, EndCallButtonStrings, ErrorBarStrings, MessageStatusIndicatorStrings, MessageThreadStrings, MicrophoneButtonStrings, DevicesButtonStrings, ParticipantsButtonStrings, ParticipantItemStrings, ScreenShareButtonStrings, SendBoxStrings, TypingIndicatorStrings, VideoGalleryStrings } from '../components';
3
3
  import { HoldButtonStrings } from '../components';
4
4
  import { DialpadStrings } from '../components';
5
- import { DomainPermissionsStrings } from '../components/DevicePermissions/DomainPermissionsScaffolding';
5
+ import { SitePermissionsStrings } from '../components/DevicePermissions/SitePermissionsScaffolding';
6
6
  import { BrowserPermissionDeniedStrings } from '../components/DevicePermissions/BrowserPermissionDenied';
7
7
  import { BrowserPermissionDeniedIOSStrings } from '../components/DevicePermissions/BrowserPermissionDeniedIOS';
8
8
  import { UnsupportedBrowserStrings } from '../components/UnsupportedBrowser';
9
9
  import { VideoTileStrings } from '../components/VideoTile';
10
+ import { UnsupportedBrowserVersionStrings } from '../components/UnsupportedBrowserVersion';
11
+ import { UnsupportedOperatingSystemStrings } from '../components/UnsupportedOperatingSystem';
10
12
  /**
11
13
  * Locale information for all components exported from this library.
12
14
  *
@@ -59,26 +61,36 @@ export interface ComponentStrings {
59
61
  videoTile: VideoTileStrings;
60
62
  /** Strings for HoldButton */
61
63
  holdButton: HoldButtonStrings;
62
- /** Strings for a domain permission request prompt */
63
- CameraAndMicrophoneDomainPermissionsRequest: DomainPermissionsStrings;
64
- /** Strings for a domain permission request prompt */
65
- CameraDomainPermissionsRequest: DomainPermissionsStrings;
66
- /** Strings for a domain permission request prompt */
67
- MicrophoneDomainPermissionsRequest: DomainPermissionsStrings;
68
- /** Strings for a domain permission generic checking prompt */
69
- CameraAndMicrophoneDomainPermissionsCheck: DomainPermissionsStrings;
70
- /** Strings for a domain permission generic checking prompt */
71
- CameraDomainPermissionsCheck: DomainPermissionsStrings;
72
- /** Strings for a domain permission generic checking prompt */
73
- MicrophoneDomainPermissionsCheck: DomainPermissionsStrings;
74
- /** Strings for a domain permission denied prompt */
75
- CameraAndMicrophoneDomainPermissionsDenied: DomainPermissionsStrings;
76
- /** Strings for a domain permission denied prompt */
77
- CameraDomainPermissionsDenied: DomainPermissionsStrings;
78
- /** Strings for a domain permission denied prompt */
79
- MicrophoneDomainPermissionsDenied: DomainPermissionsStrings;
64
+ /** Strings for a site's permission request prompt */
65
+ CameraAndMicrophoneSitePermissionsRequest: SitePermissionsStrings;
66
+ /** Strings for a site's permission request prompt */
67
+ CameraSitePermissionsRequest: SitePermissionsStrings;
68
+ /** Strings for a site's permission request prompt */
69
+ MicrophoneSitePermissionsRequest: SitePermissionsStrings;
70
+ /** Strings for a site's permission generic checking prompt */
71
+ CameraAndMicrophoneSitePermissionsCheck: SitePermissionsStrings;
72
+ /** Strings for a site's permission generic checking prompt */
73
+ CameraSitePermissionsCheck: SitePermissionsStrings;
74
+ /** Strings for a site's permission generic checking prompt */
75
+ MicrophoneSitePermissionsCheck: SitePermissionsStrings;
76
+ /** Strings for a site's permission denied prompt */
77
+ CameraAndMicrophoneSitePermissionsDenied: SitePermissionsStrings;
78
+ /** Strings for a site's permission denied prompt for safari browsers*/
79
+ CameraAndMicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;
80
+ /** Strings for a site's permission denied prompt */
81
+ CameraSitePermissionsDenied: SitePermissionsStrings;
82
+ /** Strings for a site's permission denied prompt */
83
+ MicrophoneSitePermissionsDenied: SitePermissionsStrings;
84
+ /** Strings for a site's permission denied prompt for safari browsers*/
85
+ CameraSitePermissionsDeniedSafari: SitePermissionsStrings;
86
+ /** Strings for a site's permission denied prompt for safari browsers*/
87
+ MicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;
80
88
  /** Strings for unsupported browser UI */
81
89
  UnsupportedBrowser: UnsupportedBrowserStrings;
90
+ /** Strings for unsupported browser version UI */
91
+ UnsupportedBrowserVersion: UnsupportedBrowserVersionStrings;
92
+ /** Strings for unsupported browser version UI */
93
+ UnsupportedOperatingSystem: UnsupportedOperatingSystemStrings;
82
94
  /** Strings for BrowserPemissionDenied */
83
95
  BrowserPermissionDenied: BrowserPermissionDeniedStrings;
84
96
  /** Strings for BrowserPemissionDeniedIOS */
@@ -1 +1 @@
1
- {"version":3,"file":"LocalizationProvider.js","sourceRoot":"","sources":["../../../../../../react-components/src/localization/LocalizationProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA+BzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAkGnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAkB,sBAAsB,CAAC,CAAC;AAcpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,OAAO,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAG,QAAQ,CAA0B,CAAC;AACpF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAoB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { createContext, useContext } from 'react';\nimport {\n CameraButtonStrings,\n EndCallButtonStrings,\n ErrorBarStrings,\n MessageStatusIndicatorStrings,\n MessageThreadStrings,\n MicrophoneButtonStrings,\n DevicesButtonStrings,\n ParticipantsButtonStrings,\n ParticipantItemStrings,\n ScreenShareButtonStrings,\n SendBoxStrings,\n TypingIndicatorStrings,\n VideoGalleryStrings\n} from '../components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButtonStrings } from '../components';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { DialpadStrings } from '../components';\n/* @conditional-compile-remove(call-readiness) */\nimport { DomainPermissionsStrings } from '../components/DevicePermissions/DomainPermissionsScaffolding';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedStrings } from '../components/DevicePermissions/BrowserPermissionDenied';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedIOSStrings } from '../components/DevicePermissions/BrowserPermissionDeniedIOS';\n/* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserStrings } from '../components/UnsupportedBrowser';\n/* @conditional-compile-remove(one-to-n-calling) */\n// @conditional-compile-remove(PSTN-calls)\nimport { VideoTileStrings } from '../components/VideoTile';\nimport { COMPONENT_LOCALE_EN_US } from './locales';\n\n/**\n * Locale information for all components exported from this library.\n *\n * @public\n */\nexport interface ComponentLocale {\n /** Strings for components */\n strings: ComponentStrings;\n /* @conditional-compile-remove(date-time-customization) */\n /**\n * Optional function to provide customized date format.\n * @beta\n */\n onDisplayDateTimeString?: (messageDate: Date) => string;\n}\n\n/**\n * Strings used by all components exported from this library.\n *\n * @public\n */\nexport interface ComponentStrings {\n /** Strings for MessageThread */\n messageThread: MessageThreadStrings;\n /** Strings for ParticipantItem */\n participantItem: ParticipantItemStrings;\n /** Strings for CameraButton */\n cameraButton: CameraButtonStrings;\n /** Strings for MicrophoneButton */\n microphoneButton: MicrophoneButtonStrings;\n /** Strings for EndCallButton */\n endCallButton: EndCallButtonStrings;\n /** Strings for DevicesButton */\n devicesButton: DevicesButtonStrings;\n /** Strings for ParticipantsButton */\n participantsButton: ParticipantsButtonStrings;\n /** Strings for ScreenShareButton */\n screenShareButton: ScreenShareButtonStrings;\n /** Strings for TypingIndicator */\n typingIndicator: TypingIndicatorStrings;\n /** Strings for SendBox */\n sendBox: SendBoxStrings;\n /** Strings for MessageStatusIndicator */\n messageStatusIndicator: MessageStatusIndicatorStrings;\n /** Strings for ErroBar */\n errorBar: ErrorBarStrings;\n /** Strings for VideoGallery */\n videoGallery: VideoGalleryStrings;\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n /** Strings for Dialpad */\n dialpad: DialpadStrings;\n /* @conditional-compile-remove(one-to-n-calling) */\n // @conditional-compile-remove(PSTN-calls)\n /** Strings for VideoTile */\n videoTile: VideoTileStrings;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /** Strings for HoldButton */\n holdButton: HoldButtonStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission request prompt */\n CameraAndMicrophoneDomainPermissionsRequest: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission request prompt */\n CameraDomainPermissionsRequest: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission request prompt */\n MicrophoneDomainPermissionsRequest: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission generic checking prompt */\n CameraAndMicrophoneDomainPermissionsCheck: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission generic checking prompt */\n CameraDomainPermissionsCheck: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission generic checking prompt */\n MicrophoneDomainPermissionsCheck: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission denied prompt */\n CameraAndMicrophoneDomainPermissionsDenied: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission denied prompt */\n CameraDomainPermissionsDenied: DomainPermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a domain permission denied prompt */\n MicrophoneDomainPermissionsDenied: DomainPermissionsStrings;\n /* @conditional-compile-remove(unsupported-browser) */\n /** Strings for unsupported browser UI */\n UnsupportedBrowser: UnsupportedBrowserStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for BrowserPemissionDenied */\n BrowserPermissionDenied: BrowserPermissionDeniedStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for BrowserPemissionDeniedIOS */\n BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;\n}\n\n/**\n * Context for providing localized strings to components exported from this library.\n *\n * @public\n */\nexport const LocaleContext = createContext<ComponentLocale>(COMPONENT_LOCALE_EN_US);\n\n/**\n * Props for {@link LocalizationProvider}.\n *\n * @public\n */\nexport type LocalizationProviderProps = {\n /** Locale context to provide components */\n locale: ComponentLocale;\n /** Children to provide locale context. */\n children: React.ReactNode;\n};\n\n/**\n * Provider to provide localized strings for this library's react components.\n *\n * @remarks Components will be provided localized strings in English (US) by default if this\n * provider is not used.\n *\n * @public\n */\nexport const LocalizationProvider = (props: LocalizationProviderProps): JSX.Element => {\n const { locale, children } = props;\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>;\n};\n\n/** React hook to access locale */\nexport const useLocale = (): ComponentLocale => useContext(LocaleContext);\n"]}
1
+ {"version":3,"file":"LocalizationProvider.js","sourceRoot":"","sources":["../../../../../../react-components/src/localization/LocalizationProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA+BzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAqHnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAkB,sBAAsB,CAAC,CAAC;AAcpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,OAAO,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAG,QAAQ,CAA0B,CAAC;AACpF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAoB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { createContext, useContext } from 'react';\nimport {\n CameraButtonStrings,\n EndCallButtonStrings,\n ErrorBarStrings,\n MessageStatusIndicatorStrings,\n MessageThreadStrings,\n MicrophoneButtonStrings,\n DevicesButtonStrings,\n ParticipantsButtonStrings,\n ParticipantItemStrings,\n ScreenShareButtonStrings,\n SendBoxStrings,\n TypingIndicatorStrings,\n VideoGalleryStrings\n} from '../components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButtonStrings } from '../components';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { DialpadStrings } from '../components';\n/* @conditional-compile-remove(call-readiness) */\nimport { SitePermissionsStrings } from '../components/DevicePermissions/SitePermissionsScaffolding';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedStrings } from '../components/DevicePermissions/BrowserPermissionDenied';\n/* @conditional-compile-remove(call-readiness) */\nimport { BrowserPermissionDeniedIOSStrings } from '../components/DevicePermissions/BrowserPermissionDeniedIOS';\n/* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserStrings } from '../components/UnsupportedBrowser';\n/* @conditional-compile-remove(one-to-n-calling) */\n// @conditional-compile-remove(PSTN-calls)\nimport { VideoTileStrings } from '../components/VideoTile';\nimport { COMPONENT_LOCALE_EN_US } from './locales';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserVersionStrings } from '../components/UnsupportedBrowserVersion';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedOperatingSystemStrings } from '../components/UnsupportedOperatingSystem';\n\n/**\n * Locale information for all components exported from this library.\n *\n * @public\n */\nexport interface ComponentLocale {\n /** Strings for components */\n strings: ComponentStrings;\n /* @conditional-compile-remove(date-time-customization) */\n /**\n * Optional function to provide customized date format.\n * @beta\n */\n onDisplayDateTimeString?: (messageDate: Date) => string;\n}\n\n/**\n * Strings used by all components exported from this library.\n *\n * @public\n */\nexport interface ComponentStrings {\n /** Strings for MessageThread */\n messageThread: MessageThreadStrings;\n /** Strings for ParticipantItem */\n participantItem: ParticipantItemStrings;\n /** Strings for CameraButton */\n cameraButton: CameraButtonStrings;\n /** Strings for MicrophoneButton */\n microphoneButton: MicrophoneButtonStrings;\n /** Strings for EndCallButton */\n endCallButton: EndCallButtonStrings;\n /** Strings for DevicesButton */\n devicesButton: DevicesButtonStrings;\n /** Strings for ParticipantsButton */\n participantsButton: ParticipantsButtonStrings;\n /** Strings for ScreenShareButton */\n screenShareButton: ScreenShareButtonStrings;\n /** Strings for TypingIndicator */\n typingIndicator: TypingIndicatorStrings;\n /** Strings for SendBox */\n sendBox: SendBoxStrings;\n /** Strings for MessageStatusIndicator */\n messageStatusIndicator: MessageStatusIndicatorStrings;\n /** Strings for ErroBar */\n errorBar: ErrorBarStrings;\n /** Strings for VideoGallery */\n videoGallery: VideoGalleryStrings;\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n /** Strings for Dialpad */\n dialpad: DialpadStrings;\n /* @conditional-compile-remove(one-to-n-calling) */\n // @conditional-compile-remove(PSTN-calls)\n /** Strings for VideoTile */\n videoTile: VideoTileStrings;\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n /** Strings for HoldButton */\n holdButton: HoldButtonStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission request prompt */\n CameraAndMicrophoneSitePermissionsRequest: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission request prompt */\n CameraSitePermissionsRequest: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission request prompt */\n MicrophoneSitePermissionsRequest: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission generic checking prompt */\n CameraAndMicrophoneSitePermissionsCheck: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission generic checking prompt */\n CameraSitePermissionsCheck: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission generic checking prompt */\n MicrophoneSitePermissionsCheck: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt */\n CameraAndMicrophoneSitePermissionsDenied: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt for safari browsers*/\n CameraAndMicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt */\n CameraSitePermissionsDenied: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt */\n MicrophoneSitePermissionsDenied: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt for safari browsers*/\n CameraSitePermissionsDeniedSafari: SitePermissionsStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for a site's permission denied prompt for safari browsers*/\n MicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;\n /* @conditional-compile-remove(unsupported-browser) */\n /** Strings for unsupported browser UI */\n UnsupportedBrowser: UnsupportedBrowserStrings;\n /* @conditional-compile-remove(unsupported-browser) */\n /** Strings for unsupported browser version UI */\n UnsupportedBrowserVersion: UnsupportedBrowserVersionStrings;\n /* @conditional-compile-remove(unsupported-browser) */\n /** Strings for unsupported browser version UI */\n UnsupportedOperatingSystem: UnsupportedOperatingSystemStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for BrowserPemissionDenied */\n BrowserPermissionDenied: BrowserPermissionDeniedStrings;\n /* @conditional-compile-remove(call-readiness) */\n /** Strings for BrowserPemissionDeniedIOS */\n BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;\n}\n\n/**\n * Context for providing localized strings to components exported from this library.\n *\n * @public\n */\nexport const LocaleContext = createContext<ComponentLocale>(COMPONENT_LOCALE_EN_US);\n\n/**\n * Props for {@link LocalizationProvider}.\n *\n * @public\n */\nexport type LocalizationProviderProps = {\n /** Locale context to provide components */\n locale: ComponentLocale;\n /** Children to provide locale context. */\n children: React.ReactNode;\n};\n\n/**\n * Provider to provide localized strings for this library's react components.\n *\n * @remarks Components will be provided localized strings in English (US) by default if this\n * provider is not used.\n *\n * @public\n */\nexport const LocalizationProvider = (props: LocalizationProviderProps): JSX.Element => {\n const { locale, children } = props;\n return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>;\n};\n\n/** React hook to access locale */\nexport const useLocale = (): ComponentLocale => useContext(LocaleContext);\n"]}
@@ -184,7 +184,7 @@
184
184
  "participantStateRinging": "Anrufen...",
185
185
  "participantStateHold": "In der Warteschleife"
186
186
  },
187
- "DomainPermissions": {
187
+ "SitePermissions": {
188
188
  "primaryText": "Zulassen, dass {appName} Ihre Kamera und Ihr Mikrofon verwendet",
189
189
  "secondaryText": "So können die Teilnehmer Sie sehen und hören.",
190
190
  "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
@@ -184,7 +184,7 @@
184
184
  "participantStateRinging": "Calling...",
185
185
  "participantStateHold": "On hold"
186
186
  },
187
- "DomainPermissions": {
187
+ "SitePermissions": {
188
188
  "primaryText": "Allow {appName} to use your camera and microphone",
189
189
  "secondaryText": "This is so participants can see and hear you.",
190
190
  "linkText": "Need help? Get troubleshooting help",
@@ -6,7 +6,6 @@
6
6
  "sharingIconLabel": "Sharing",
7
7
  "mutedIconLabel": "Muted",
8
8
  "displayNamePlaceholder": "Unnamed participant",
9
- "participantStateConnecting": "Calling...",
10
9
  "participantStateRinging": "Calling...",
11
10
  "participantStateHold": "On hold"
12
11
  },
@@ -90,7 +89,8 @@
90
89
  "menuHeader": "In this call",
91
90
  "participantsListButtonLabel": "{numParticipants} people",
92
91
  "muteAllButtonLabel": "Mute all",
93
- "copyInviteLinkButtonLabel": "Copy invite link"
92
+ "copyInviteLinkButtonLabel": "Copy invite link",
93
+ "copyInviteLinkActionedAriaLabel": "Invite link copied"
94
94
  },
95
95
  "screenShareButton": {
96
96
  "onLabel": "Stop presenting",
@@ -146,11 +146,13 @@
146
146
  "callNoSpeakerFound": "No speakers or headphones found. Connect an audio device to hear the call.",
147
147
  "callNoMicrophoneFound": "No microphones found. Connect an audio input device.",
148
148
  "callMicrophoneAccessDenied": "Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",
149
+ "callMicrophoneAccessDeniedSafari": "Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
149
150
  "callMicrophoneMutedBySystem": "You are muted by your system.",
150
151
  "callMicrophoneUnmutedBySystem": "Your microphone recovered and you were unmuted by your system.",
151
152
  "callMacOsMicrophoneAccessDenied": "Unable to access microphone. Grant microphone permission in your macOS privacy settings.",
152
153
  "callLocalVideoFreeze": "Network bandwidth is poor. Your video may appear paused for others on the call.",
153
154
  "callCameraAccessDenied": "Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",
155
+ "callCameraAccessDeniedSafari": "Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
154
156
  "callCameraAlreadyInUse": "Unable to access camera. It may already be in use by another application.",
155
157
  "callVideoStoppedBySystem": "Your video has been stopped by your system.",
156
158
  "callVideoRecoveredBySystem": "Your video has resumed.",
@@ -167,7 +169,12 @@
167
169
  "localVideoCameraSwitcherLabel": "Switch camera",
168
170
  "localVideoMovementLabel": "Movable Local Video Tile",
169
171
  "localVideoSelectedDescription": "{cameraName} selected",
170
- "displayNamePlaceholder": "Unnamed participant"
172
+ "displayNamePlaceholder": "Unnamed participant",
173
+ "fitRemoteParticipantToFrame": "Fit to frame",
174
+ "fillRemoteParticipantFrame": "Fill frame",
175
+ "pinParticipantForMe": "Pin for me",
176
+ "pinParticipantForMeLimitReached": "Pin (limit reached)",
177
+ "unpinParticipantForMe": "Unpin for me"
171
178
  },
172
179
  "dialpad": {
173
180
  "placeholderText": "Enter phone number",
@@ -180,74 +187,102 @@
180
187
  "tooltipOffContent": "Hold call"
181
188
  },
182
189
  "videoTile": {
183
- "participantStateConnecting": "Calling...",
184
190
  "participantStateRinging": "Calling...",
185
191
  "participantStateHold": "On hold"
186
192
  },
187
- "CameraAndMicrophoneDomainPermissionsRequest": {
193
+ "CameraAndMicrophoneSitePermissionsRequest": {
188
194
  "primaryText": "Allow {appName} to use your camera and microphone",
189
195
  "secondaryText": "This is so participants can see and hear you.",
190
196
  "linkText": "Need help? Get troubleshooting help",
191
197
  "primaryButtonText": "Continue without camera and microphone",
192
198
  "ariaLabel": "Allow camera and microphone access"
193
199
  },
194
- "CameraDomainPermissionsRequest": {
200
+ "CameraSitePermissionsRequest": {
195
201
  "primaryText": "Allow {appName} to use your camera",
196
202
  "secondaryText": "This is so participants can see you.",
197
203
  "linkText": "Need help? Get troubleshooting help",
198
204
  "primaryButtonText": "Continue without camera",
199
205
  "ariaLabel": "Allow camera access"
200
206
  },
201
- "MicrophoneDomainPermissionsRequest": {
207
+ "MicrophoneSitePermissionsRequest": {
202
208
  "primaryText": "Allow {appName} to use your microphone",
203
209
  "secondaryText": "This is so participants can hear you.",
204
210
  "linkText": "Need help? Get troubleshooting help",
205
211
  "primaryButtonText": "Continue without microphone",
206
212
  "ariaLabel": "Allow microphone access"
207
213
  },
208
- "CameraAndMicrophoneDomainPermissionsCheck": {
214
+ "CameraAndMicrophoneSitePermissionsCheck": {
209
215
  "primaryText": "Checking for camera and microphone access",
210
216
  "secondaryText": "Allow access if prompted. This is so participants can see and hear you.",
211
217
  "linkText": "Need help? Get troubleshooting help",
212
218
  "primaryButtonText": "Continue without camera and microphone",
213
219
  "ariaLabel": "Checking for camera and microphone access. Allow access if prompted."
214
220
  },
215
- "CameraDomainPermissionsCheck": {
221
+ "CameraSitePermissionsCheck": {
216
222
  "primaryText": "Checking for camera access",
217
223
  "secondaryText": "Allow access if prompted. This is so participants can see you.",
218
224
  "linkText": "Need help? Get troubleshooting help",
219
225
  "primaryButtonText": "Continue without camera",
220
226
  "ariaLabel": "Checking for camera access. Allow access if prompted."
221
227
  },
222
- "MicrophoneDomainPermissionsCheck": {
228
+ "MicrophoneSitePermissionsCheck": {
223
229
  "primaryText": "Checking for microphone access",
224
230
  "secondaryText": "Allow access if prompted. This is so participants can hear you.",
225
231
  "linkText": "Need help? Get troubleshooting help",
226
232
  "primaryButtonText": "Continue without microphone",
227
233
  "ariaLabel": "Checking for microphone access. Allow access if prompted."
228
234
  },
229
- "CameraAndMicrophoneDomainPermissionsDenied": {
235
+ "CameraAndMicrophoneSitePermissionsDenied": {
230
236
  "primaryText": "Unable to access camera and microphone",
231
237
  "secondaryText": "Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",
232
238
  "primaryButtonText": "Continue without camera and microphone",
233
239
  "linkText": "Need help? Get troubleshooting help"
234
240
  },
235
- "CameraDomainPermissionsDenied": {
241
+ "CameraAndMicrophoneSitePermissionsDeniedSafari": {
242
+ "primaryText": "Unable to access camera and microphone",
243
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
244
+ "primaryButtonText": "Continue without camera and microphone",
245
+ "linkText": "Need help? Get troubleshooting help"
246
+ },
247
+ "CameraSitePermissionsDenied": {
236
248
  "primaryText": "Unable to access camera",
237
249
  "secondaryText": "Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",
238
250
  "primaryButtonText": "Continue without camera",
239
251
  "linkText": "Need help? Get troubleshooting help"
240
252
  },
241
- "MicrophoneDomainPermissionsDenied": {
253
+ "MicrophoneSitePermissionsDenied": {
242
254
  "primaryText": "Unable to access microphone",
243
255
  "secondaryText": "Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",
244
256
  "primaryButtonText": "Continue without microphone",
245
257
  "linkText": "Need help? Get troubleshooting help"
246
258
  },
259
+ "CameraSitePermissionsDeniedSafari": {
260
+ "primaryText": "Unable to access camera",
261
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
262
+ "primaryButtonText": "Continue without camera",
263
+ "linkText": "Need help? Get troubleshooting help"
264
+ },
265
+ "MicrophoneSitePermissionsDeniedSafari": {
266
+ "primaryText": "Unable to access microphone",
267
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
268
+ "primaryButtonText": "Continue without microphone",
269
+ "linkText": "Need help? Get troubleshooting help"
270
+ },
247
271
  "UnsupportedBrowser": {
248
272
  "primaryText": "Browser not supported",
249
273
  "secondaryText": "Please join this call using a compatible browser.",
250
- "moreHelpLink": "More help"
274
+ "moreHelpLinkText": "See compatibility requirements"
275
+ },
276
+ "UnsupportedBrowserVersion": {
277
+ "primaryText": "Browser update needed",
278
+ "secondaryText": "To ensure the best call possible, please update your browser and then try joining the call again.",
279
+ "moreHelpLinkText": "See compatibility requirements",
280
+ "continueAnywayButtonText": "Start call without updating"
281
+ },
282
+ "UnsupportedOperatingSystem": {
283
+ "primaryText": "Operating system not supported",
284
+ "secondaryText": "Please join this call using a device with a compatible operating system.",
285
+ "moreHelpLinkText": "See compatibility requirements"
251
286
  },
252
287
  "BrowserPermissionDenied": {
253
288
  "primaryText": "Can't use your camera or microphone",
@@ -184,7 +184,7 @@
184
184
  "participantStateRinging": "Llamando...",
185
185
  "participantStateHold": "En espera"
186
186
  },
187
- "DomainPermissions": {
187
+ "SitePermissions": {
188
188
  "primaryText": "Permitir que {appName} usen la cámara y el micrófono",
189
189
  "secondaryText": "Esto es para que los participantes puedan verle y oírle.",
190
190
  "linkText": "¿Necesitas ayuda? Obtén ayuda para la solución de problemas",