@azure/communication-react 1.5.1-beta.1 → 1.5.1-beta.2

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 (253) hide show
  1. package/CHANGELOG.beta.md +76 -1
  2. package/CHANGELOG.json +621 -0
  3. package/dist/communication-react.d.ts +217 -7
  4. package/dist/dist-cjs/communication-react/index.js +2207 -1184
  5. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  8. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  10. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +4 -0
  11. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +37 -1
  12. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  13. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +22 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  15. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +14 -0
  16. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +44 -0
  17. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +1 -0
  19. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +21 -0
  20. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  21. package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -0
  22. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  23. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.d.ts +13 -1
  24. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +8 -1
  25. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  26. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +4 -0
  27. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +28 -0
  28. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.d.ts +29 -0
  30. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js +54 -0
  31. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -0
  32. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +16 -29
  33. package/dist/dist-esm/calling-stateful-client/src/Logger.js +16 -29
  34. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  35. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +1 -1
  36. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  37. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +137 -370
  38. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  39. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.d.ts +17 -0
  40. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +198 -0
  41. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -0
  42. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -0
  43. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  44. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +1 -1
  45. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  46. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +10 -2
  47. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  48. package/dist/dist-esm/communication-react/src/index.d.ts +2 -0
  49. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +16 -0
  51. package/dist/dist-esm/react-components/src/components/CameraButton.js +38 -1
  52. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +30 -0
  54. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +47 -0
  55. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -0
  56. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +6 -1
  57. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  58. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +1 -1
  59. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  60. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts +1 -1
  61. package/dist/dist-esm/react-components/src/components/DevicesButton.js +79 -55
  62. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  63. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +4 -0
  64. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/HorizontalGallery.d.ts +4 -0
  66. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +29 -24
  67. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +2 -2
  69. package/dist/dist-esm/react-components/src/components/MessageThread.js +24 -11
  70. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +12 -0
  72. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +29 -1
  73. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +1 -1
  75. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +1 -1
  77. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  78. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.d.ts +4 -2
  79. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +6 -42
  80. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  81. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.d.ts +35 -0
  82. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +32 -0
  83. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -0
  84. package/dist/dist-esm/react-components/src/components/SendBox.js +5 -2
  85. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  86. package/dist/dist-esm/react-components/src/components/VerticalGallery.d.ts +67 -0
  87. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +113 -0
  88. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -0
  89. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.d.ts +21 -0
  90. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +65 -0
  91. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -0
  92. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.d.ts +75 -0
  93. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +44 -0
  94. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -0
  95. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.d.ts +88 -0
  96. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +80 -0
  97. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -0
  98. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +1 -1
  99. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +55 -19
  100. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  101. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.d.ts +10 -3
  102. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +11 -9
  103. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  104. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.d.ts +1 -1
  105. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +81 -24
  106. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +11 -1
  108. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  109. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +21 -0
  110. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +63 -0
  111. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -0
  112. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +2 -1
  113. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +8 -2
  114. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  115. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.d.ts +32 -7
  116. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +28 -12
  117. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  118. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +2 -2
  119. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  120. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.d.ts +4 -1
  121. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +8 -7
  122. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  123. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.d.ts +64 -0
  124. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +79 -0
  125. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -0
  126. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.d.ts +25 -0
  127. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js +94 -0
  128. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -0
  129. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +4 -4
  130. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +58 -49
  131. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  132. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +25 -0
  133. package/dist/dist-esm/react-components/src/components/VideoGallery.js +32 -4
  134. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  135. package/dist/dist-esm/react-components/src/components/VideoTile.js +9 -12
  136. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/components/index.d.ts +8 -0
  138. package/dist/dist-esm/react-components/src/components/index.js +4 -0
  139. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  140. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.d.ts +13 -0
  141. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.js +35 -0
  142. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.js.map +1 -0
  143. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js +1 -0
  144. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  145. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +2 -2
  146. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +30 -2
  147. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  148. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.d.ts +32 -0
  149. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +66 -0
  150. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -0
  151. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.d.ts +11 -0
  152. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js +22 -0
  153. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -0
  154. package/dist/dist-esm/react-components/src/components/utils/responsive.d.ts +6 -0
  155. package/dist/dist-esm/react-components/src/components/utils/responsive.js +7 -0
  156. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/utils.d.ts +5 -0
  158. package/dist/dist-esm/react-components/src/components/utils.js +20 -0
  159. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  160. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +6 -14
  161. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  162. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +10 -4
  163. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +7 -2
  164. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +5 -0
  166. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +14 -3
  168. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +14 -3
  169. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +14 -3
  170. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +14 -3
  171. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +14 -3
  172. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +14 -3
  173. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +14 -3
  174. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +14 -3
  175. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +14 -3
  176. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +14 -3
  177. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +14 -3
  178. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +14 -3
  179. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +14 -3
  180. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +14 -3
  181. package/dist/dist-esm/react-components/src/theming/icons.d.ts +7 -0
  182. package/dist/dist-esm/react-components/src/theming/icons.js +19 -7
  183. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  184. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  185. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +4 -0
  186. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +27 -2
  187. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  188. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +42 -0
  189. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  190. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +8 -2
  191. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  192. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -1
  193. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  194. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +21 -3
  195. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  196. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +1 -1
  197. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  198. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +5 -4
  199. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +3 -1
  200. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  201. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +0 -5
  202. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +1 -31
  203. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  204. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +12 -0
  205. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  206. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  207. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  208. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -1
  209. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  210. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +1 -1
  211. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +3 -3
  212. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  213. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +11 -1
  214. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  215. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts +1 -0
  216. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +12 -8
  217. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  218. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts +16 -3
  219. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js +49 -43
  220. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +1 -1
  221. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +4 -0
  222. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +24 -0
  223. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  224. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +19 -0
  225. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  226. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +4 -0
  227. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +18 -0
  228. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  229. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.d.ts +2 -0
  230. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js +47 -26
  231. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +1 -1
  232. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +4 -4
  233. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
  234. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.d.ts +1 -1
  235. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js +5 -3
  236. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  237. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +16 -1
  238. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  239. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  240. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  241. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +11 -0
  242. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +19 -0
  243. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -0
  244. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +7 -0
  245. package/dist/dist-esm/react-composites/src/composites/common/icons.js +4 -4
  246. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  247. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.d.ts +7 -0
  248. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js +9 -0
  249. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -0
  250. package/package.json +12 -12
  251. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.d.ts +0 -14
  252. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js +0 -19
  253. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js.map +0 -1
@@ -19,6 +19,8 @@
19
19
 
20
20
  import { AddPhoneNumberOptions } from '@azure/communication-calling';
21
21
  import { AudioDeviceInfo } from '@azure/communication-calling';
22
+ import { BackgroundBlurConfig } from '@azure/communication-calling-effects';
23
+ import { BackgroundReplacementConfig } from '@azure/communication-calling-effects';
22
24
  import { Call } from '@azure/communication-calling';
23
25
  import { CallAgent } from '@azure/communication-calling';
24
26
  import { CallClient } from '@azure/communication-calling';
@@ -64,6 +66,7 @@ import { IStyleFunctionOrObject } from '@fluentui/react';
64
66
  import { ITextFieldStyles } from '@fluentui/react';
65
67
  import { LatestMediaDiagnostics } from '@azure/communication-calling';
66
68
  import { LatestNetworkDiagnostics } from '@azure/communication-calling';
69
+ import { LocalVideoStream } from '@azure/communication-calling';
67
70
  import type { MediaDiagnosticChangedEventArgs } from '@azure/communication-calling';
68
71
  import { MediaStreamType } from '@azure/communication-calling';
69
72
  import { MicrosoftTeamsUserIdentifier } from '@azure/communication-common';
@@ -93,6 +96,7 @@ import { TypingIndicatorReceivedEvent } from '@azure/communication-chat';
93
96
  import { UnknownIdentifier } from '@azure/communication-common';
94
97
  import { UnknownIdentifierKind } from '@azure/communication-common';
95
98
  import { VideoDeviceInfo } from '@azure/communication-calling';
99
+ import { VideoEffectName } from '@azure/communication-calling';
96
100
  import { VideoStreamRenderer } from '@azure/communication-calling';
97
101
  import { VideoStreamRendererView } from '@azure/communication-calling';
98
102
 
@@ -709,6 +713,24 @@ export declare interface CallAdapterCallOperations {
709
713
  * Continues into a call when the browser version is not supported.
710
714
  */
711
715
  allowUnsupportedBrowserVersion(): void;
716
+ /**
717
+ * Start the blur video background effect.
718
+ *
719
+ * @beta
720
+ */
721
+ blurVideoBackground(backgroundBlurConfig?: BackgroundBlurConfig): Promise<void>;
722
+ /**
723
+ * Start the video background replacement effect.
724
+ *
725
+ * @beta
726
+ */
727
+ replaceVideoBackground(backgroundReplacementConfig: BackgroundReplacementConfig): Promise<void>;
728
+ /**
729
+ * Stop the video background effect.
730
+ *
731
+ * @beta
732
+ */
733
+ stopVideoBackgroundEffect(): Promise<void>;
712
734
  }
713
735
 
714
736
  /**
@@ -746,6 +768,10 @@ export declare type CallAdapterClientState = {
746
768
  * control bar with the CallComposite.
747
769
  */
748
770
  cameraStatus?: 'On' | 'Off';
771
+ /**
772
+ * Default set of background images for background replacement effect.
773
+ */
774
+ videoBackgroundImages?: VideoBackgroundImage[];
749
775
  };
750
776
 
751
777
  /**
@@ -1776,7 +1802,7 @@ export declare type CallErrors = {
1776
1802
  *
1777
1803
  * @public
1778
1804
  */
1779
- export declare type CallErrorTarget = 'Call.addParticipant' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.dispose' | 'Call.feature' | 'Call.hangUp' | 'Call.hold' | 'Call.mute' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.muteIncomingAudio' | 'Call.off' | 'Call.on' | 'Call.removeParticipant' | 'Call.resume' | 'Call.sendDtmf' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.startAudio' | 'Call.startScreenSharing' | 'Call.startVideo' | 'Call.stopScreenSharing' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.stopAudio' | 'Call.stopVideo' | 'Call.unmute' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.unmuteIncomingAudio' | 'CallAgent.dispose' | 'CallAgent.feature' | 'CallAgent.join' | 'CallAgent.off' | 'CallAgent.on' | 'CallAgent.startCall' | 'CallClient.createCallAgent' | /* @conditional-compile-remove(calling-beta-sdk) */ /* @conditional-compile-remove(teams-identity-support) */ 'CallClient.createTeamsCallAgent' | 'CallClient.feature' | 'CallClient.getDeviceManager' | /* @conditional-compile-remove(calling-beta-sdk) */ 'CallClient.getEnvironmentInfo' | 'DeviceManager.askDevicePermission' | 'DeviceManager.getCameras' | 'DeviceManager.getMicrophones' | 'DeviceManager.getSpeakers' | 'DeviceManager.off' | 'DeviceManager.on' | 'DeviceManager.selectMicrophone' | 'DeviceManager.selectSpeaker' | 'IncomingCall.accept' | 'IncomingCall.reject' | /* @conditional-compile-remove(calling-beta-sdk) */ /* @conditional-compile-remove(teams-identity-support) */ 'TeamsCall.addParticipant';
1805
+ export declare type CallErrorTarget = 'Call.addParticipant' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.dispose' | 'Call.feature' | 'Call.hangUp' | 'Call.hold' | 'Call.mute' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.muteIncomingAudio' | 'Call.off' | 'Call.on' | 'Call.removeParticipant' | 'Call.resume' | 'Call.sendDtmf' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.startAudio' | 'Call.startScreenSharing' | 'Call.startVideo' | 'Call.stopScreenSharing' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.stopAudio' | 'Call.stopVideo' | 'Call.unmute' | /* @conditional-compile-remove(calling-beta-sdk) */ 'Call.unmuteIncomingAudio' | 'CallAgent.dispose' | 'CallAgent.feature' | 'CallAgent.join' | 'CallAgent.off' | 'CallAgent.on' | 'CallAgent.startCall' | 'CallClient.createCallAgent' | /* @conditional-compile-remove(calling-beta-sdk) */ /* @conditional-compile-remove(teams-identity-support) */ 'CallClient.createTeamsCallAgent' | 'CallClient.feature' | 'CallClient.getDeviceManager' | /* @conditional-compile-remove(calling-beta-sdk) */ 'CallClient.getEnvironmentInfo' | 'DeviceManager.askDevicePermission' | 'DeviceManager.getCameras' | 'DeviceManager.getMicrophones' | 'DeviceManager.getSpeakers' | 'DeviceManager.off' | 'DeviceManager.on' | 'DeviceManager.selectMicrophone' | 'DeviceManager.selectSpeaker' | 'IncomingCall.accept' | 'IncomingCall.reject' | /* @conditional-compile-remove(calling-beta-sdk) */ /* @conditional-compile-remove(teams-identity-support) */ 'TeamsCall.addParticipant' | /* @conditional-compile-remove(video-background-effects) */ 'VideoEffectsFeature.startEffects' | /* @conditional-compile-remove(calling-beta-sdk) */ 'CallAgent.handlePushNotification';
1780
1806
 
1781
1807
  /**
1782
1808
  * Callback for {@link CallAdapterSubscribers} 'callIdChanged' event.
@@ -2272,6 +2298,24 @@ export declare interface CallWithChatAdapterManagement {
2272
2298
  * Continues into a call when the browser version is not supported.
2273
2299
  */
2274
2300
  allowUnsupportedBrowserVersion(): void;
2301
+ /**
2302
+ * Start the blur video background effect.
2303
+ *
2304
+ * @beta
2305
+ */
2306
+ blurVideoBackground(backgroundBlurConfig?: BackgroundBlurConfig): Promise<void>;
2307
+ /**
2308
+ * Start the video background replacement effect.
2309
+ *
2310
+ * @beta
2311
+ */
2312
+ replaceVideoBackground(backgroundReplacementConfig: BackgroundReplacementConfig): Promise<void>;
2313
+ /**
2314
+ * Stop the video background effect.
2315
+ *
2316
+ * @beta
2317
+ */
2318
+ stopVideoBackgroundEffect(): Promise<void>;
2275
2319
  }
2276
2320
 
2277
2321
  /**
@@ -2884,6 +2928,10 @@ export declare interface CameraButtonProps extends ControlBarButtonProps {
2884
2928
  * Styles for {@link CameraButton} and the device selection flyout.
2885
2929
  */
2886
2930
  styles?: Partial<CameraButtonStyles>;
2931
+ /**
2932
+ * Callback when a effects is clicked
2933
+ */
2934
+ onShowVideoEffectsPicker?: (showVideoEffectsOptions: boolean) => void;
2887
2935
  }
2888
2936
 
2889
2937
  /**
@@ -2944,6 +2992,18 @@ export declare interface CameraButtonStrings {
2944
2992
  * Camera action turned off string for announcer
2945
2993
  */
2946
2994
  cameraActionTurnedOffAnnouncement?: string;
2995
+ /**
2996
+ * Primary action for when the camera is turned off
2997
+ */
2998
+ offSplitButtonPrimaryActionCamera?: string;
2999
+ /**
3000
+ * Primary action for when the camera is on
3001
+ */
3002
+ onSplitButtonPrimaryActionCamera?: string;
3003
+ /**
3004
+ * Title for primary action section of split button
3005
+ */
3006
+ cameraPrimaryActionSplitButtonTitle?: string;
2947
3007
  }
2948
3008
 
2949
3009
  /**
@@ -3602,6 +3662,9 @@ export declare interface CommonCallingHandlers {
3602
3662
  onRemoveParticipant(participant: CommunicationIdentifier): Promise<void>;
3603
3663
  askDevicePermission: (constrain: PermissionConstraints) => Promise<void>;
3604
3664
  onStartCall: (participants: (CommunicationUserIdentifier | PhoneNumberIdentifier | UnknownIdentifier)[], options?: StartCallOptions) => void;
3665
+ onRemoveVideoBackgroundEffects: () => Promise<void>;
3666
+ onBlurVideoBackground: (backgroundBlurConfig?: BackgroundBlurConfig) => Promise<void>;
3667
+ onReplaceVideoBackground: (backgroundReplacementConfig: BackgroundReplacementConfig) => Promise<void>;
3605
3668
  }
3606
3669
 
3607
3670
  /**
@@ -3859,6 +3922,10 @@ export declare interface ComponentStrings {
3859
3922
  BrowserPermissionDenied: BrowserPermissionDeniedStrings;
3860
3923
  /** Strings for BrowserPemissionDeniedIOS */
3861
3924
  BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;
3925
+ /**
3926
+ * Strings for the VerticalGallery.
3927
+ */
3928
+ VerticalGallery: VerticalGalleryStrings;
3862
3929
  }
3863
3930
 
3864
3931
  /**
@@ -4599,6 +4666,13 @@ export declare const DEFAULT_COMPONENT_ICONS: {
4599
4666
  VideoTileScaleFill: JSX.Element;
4600
4667
  PinParticipant: JSX.Element;
4601
4668
  UnpinParticipant: JSX.Element;
4669
+ SplitButtonPrimaryActionCameraOn: JSX.Element;
4670
+ SplitButtonPrimaryActionCameraOff: JSX.Element;
4671
+ SplitButtonPrimaryActionMicUnmuted: JSX.Element;
4672
+ SplitButtonPrimaryActionMicMuted: JSX.Element;
4673
+ VerticalGalleryLeftButton: JSX.Element;
4674
+ VerticalGalleryRightButton: JSX.Element;
4675
+ OptionsVideoBackgroundEffect: JSX.Element;
4602
4676
  };
4603
4677
 
4604
4678
  /**
@@ -4700,6 +4774,13 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
4700
4774
  VideoTileScaleFill: JSX.Element;
4701
4775
  PinParticipant: JSX.Element;
4702
4776
  UnpinParticipant: JSX.Element;
4777
+ SplitButtonPrimaryActionCameraOn: JSX.Element;
4778
+ SplitButtonPrimaryActionCameraOff: JSX.Element;
4779
+ SplitButtonPrimaryActionMicUnmuted: JSX.Element;
4780
+ SplitButtonPrimaryActionMicMuted: JSX.Element;
4781
+ VerticalGalleryLeftButton: JSX.Element;
4782
+ VerticalGalleryRightButton: JSX.Element;
4783
+ OptionsVideoBackgroundEffect: JSX.Element;
4703
4784
  };
4704
4785
 
4705
4786
  /**
@@ -5259,6 +5340,10 @@ export declare interface ErrorBarStrings {
5259
5340
  * Generic message for when screen sharing fails
5260
5341
  */
5261
5342
  startScreenSharingGeneric?: string;
5343
+ /**
5344
+ * Error bar string letting you know remote participants see a frozen stream for you.
5345
+ */
5346
+ cameraFrozenForRemoteParticipants?: string;
5262
5347
  }
5263
5348
 
5264
5349
  /**
@@ -5694,10 +5779,16 @@ export declare interface _Identifiers {
5694
5779
  videoGallery: string;
5695
5780
  /** `data-ui-id` value for `VideoTile` Component */
5696
5781
  videoTile: string;
5697
- /** `data-ui-id` value for `HorizontalGallery` Component's left navigation button */
5698
- horizontalGalleryLeftNavButton: string;
5699
- /** `data-ui-id` value for `HorizontalGallery` Component's right navigation button */
5700
- horizontalGalleryRightNavButton: string;
5782
+ /** `data-ui-id` value for overflow gallery component's left navigation button */
5783
+ overflowGalleryLeftNavButton: string;
5784
+ /** `data-ui-id` value for overflow gallery component's right navigation button */
5785
+ overflowGalleryRightNavButton: string;
5786
+ /** `data-ui-id` value for the video tiles in the horizontal gallery */
5787
+ horizontalGalleryVideoTile: string;
5788
+ /** `data-ui-id` value for `VerticalGallery` Component's children video tiles */
5789
+ verticalGalleryVideoTile: string;
5790
+ /** `data-ui-id` value for `VerticalGallery` Component's page counter */
5791
+ verticalGalleryPageCounter: string;
5701
5792
  }
5702
5793
 
5703
5794
  /**
@@ -5857,6 +5948,27 @@ export declare interface LocalVideoStreamState {
5857
5948
  * API. This can be undefined if the stream has not yet been rendered and defined after createView creates the view.
5858
5949
  */
5859
5950
  view?: VideoStreamRendererViewState;
5951
+ /**
5952
+ * Stores the state of the video effects.
5953
+ * @beta
5954
+ */
5955
+ videoEffects?: LocalVideoStreamVideoEffectsState;
5956
+ }
5957
+
5958
+ /**
5959
+ * State only version of a LocalVideoStream's {@link @azure/communication-calling#VideoEffectsFeature}.
5960
+ *
5961
+ * @beta
5962
+ */
5963
+ export declare interface LocalVideoStreamVideoEffectsState {
5964
+ /**
5965
+ * State of the video background effect.
5966
+ */
5967
+ isActive: boolean;
5968
+ /**
5969
+ * Name of the effect if one is active.
5970
+ */
5971
+ effectName?: VideoEffectName;
5860
5972
  }
5861
5973
 
5862
5974
  /**
@@ -6203,10 +6315,10 @@ export declare type MessageThreadProps = {
6203
6315
  /**
6204
6316
  * Optional callback to send a message.
6205
6317
  *
6206
- * @param messageId - message id from chatClient
6318
+ * @param content - message body to send
6207
6319
  *
6208
6320
  */
6209
- onSendMessage?: (messageId: string) => Promise<void>;
6321
+ onSendMessage?: (content: string) => Promise<void>;
6210
6322
  /**
6211
6323
  /**
6212
6324
  * Disable editing messages.
@@ -6473,6 +6585,18 @@ export declare interface MicrophoneButtonStrings {
6473
6585
  * Microphone action turned off string for announcer
6474
6586
  */
6475
6587
  microphoneActionTurnedOffAnnouncement?: string;
6588
+ /**
6589
+ * Primary action for the microphone when microphone is live.
6590
+ */
6591
+ onSplitButtonMicrophonePrimaryAction?: string;
6592
+ /**
6593
+ * Primary action for the microphone when the microphone is muted.
6594
+ */
6595
+ offSplitButtonMicrophonePrimaryAction?: string;
6596
+ /**
6597
+ * Title for primary action section of split button
6598
+ */
6599
+ micPrimaryActionSplitButtonTitle?: string;
6476
6600
  }
6477
6601
 
6478
6602
  /**
@@ -6569,6 +6693,13 @@ export declare interface OptionsDevice {
6569
6693
  name: string;
6570
6694
  }
6571
6695
 
6696
+ /**
6697
+ * Different modes and positions of the overflow gallery in the VideoGallery
6698
+ *
6699
+ * @beta
6700
+ */
6701
+ export declare type OverflowGalleryPosition = 'HorizontalBottom' | 'VerticalRight';
6702
+
6572
6703
  /**
6573
6704
  * A system message notifying that a participant was added to the chat thread.
6574
6705
  *
@@ -7587,6 +7718,14 @@ export declare interface StatefulDeviceManager extends DeviceManager {
7587
7718
  * {@link StatefulDeviceManager}. See also {@link DeviceManagerState.selectedCamera}.
7588
7719
  */
7589
7720
  selectCamera: (VideoDeviceInfo: any) => void;
7721
+ /**
7722
+ * Gets the list of unparented video streams. This is a list of video streams that have not been added to a
7723
+ * {@link @azure/communication-calling#Call}. This is useful for developers who want to interact with rendered
7724
+ * video streams before they have started a call. See also {@link @azure/communication-react#CallClient.createView}.
7725
+ *
7726
+ * @beta
7727
+ */
7728
+ getUnparentedVideoStreams: () => LocalVideoStream[];
7590
7729
  }
7591
7730
 
7592
7731
  /**
@@ -8192,6 +8331,70 @@ export declare const useTeamsCallAgent: () => undefined | /* @conditional-compil
8192
8331
  */
8193
8332
  export declare const useTheme: () => Theme;
8194
8333
 
8334
+ /**
8335
+ * Styles for the control bar inside the VerticalGallery component
8336
+ *
8337
+ * @beta
8338
+ */
8339
+ export declare interface VerticalGalleryControlBarStyles extends BaseCustomStyles {
8340
+ /**
8341
+ * styles for the next button in the VerticalGalleryControlBar
8342
+ */
8343
+ nextButton?: IStyle;
8344
+ /**
8345
+ * Styles for the previous button in the VerticalGalleryControlBar
8346
+ */
8347
+ previousButton?: IStyle;
8348
+ /**
8349
+ * Styles for the counter in the VerticalGalleryControlBar
8350
+ */
8351
+ counter?: IStyle;
8352
+ }
8353
+
8354
+ /**
8355
+ * Strings for localization of the vertical gallery.
8356
+ *
8357
+ * @beta
8358
+ */
8359
+ export declare interface VerticalGalleryStrings {
8360
+ /** Aria label for the left page navigation button */
8361
+ leftNavButtonAriaLabel?: string;
8362
+ /** Aria label for the right page navigation button */
8363
+ rightNavButtonAriaLabel?: string;
8364
+ }
8365
+
8366
+ /**
8367
+ * Styles for the VerticalGallery component
8368
+ *
8369
+ * @beta
8370
+ */
8371
+ export declare interface VerticalGalleryStyles extends BaseCustomStyles {
8372
+ /** Styles for each video tile in the vertical gallery */
8373
+ children?: IStyle;
8374
+ /** Styles for the verticalGallery control bar */
8375
+ controlBar?: VerticalGalleryControlBarStyles;
8376
+ }
8377
+
8378
+ /**
8379
+ * Contains the attibutes of a background image like url, name etc.
8380
+ *
8381
+ * @beta
8382
+ */
8383
+ export declare interface VideoBackgroundImage {
8384
+ /**
8385
+ * key for unique identification of the custom background
8386
+ */
8387
+ key: string;
8388
+ /**
8389
+ * URL of the uploaded background image.
8390
+ */
8391
+ url: string;
8392
+ /**
8393
+ * Image name to be displayed.
8394
+ */
8395
+ tooltipText?: string;
8396
+ }
8397
+
8195
8398
  /**
8196
8399
  * VideoGallery represents a layout of video tiles for a specific call.
8197
8400
  * It displays a {@link VideoTile} for the local user as well as for each remote participant who has joined the call.
@@ -8309,6 +8512,11 @@ export declare interface VideoGalleryProps {
8309
8512
  * @defaultValue \{ kind: 'contextual' \}
8310
8513
  */
8311
8514
  remoteVideoTileMenuOptions?: false | VideoTileContextualMenuProps | VideoTileDrawerMenuProps;
8515
+ /**
8516
+ * Determines the layout of the overflowGallery inside the VideoGallery.
8517
+ * @defaultValue 'HorizontalBottom'
8518
+ */
8519
+ overflowGalleryPosition?: OverflowGalleryPosition;
8312
8520
  }
8313
8521
 
8314
8522
  /**
@@ -8409,6 +8617,8 @@ export declare interface VideoGalleryStyles extends BaseCustomStyles {
8409
8617
  horizontalGallery?: HorizontalGalleryStyles;
8410
8618
  /** Styles for the local video */
8411
8619
  localVideo?: IStyle;
8620
+ /** Styles for the vertical gallery */
8621
+ verticalGallery?: VerticalGalleryStyles;
8412
8622
  }
8413
8623
 
8414
8624
  /**