@azure/communication-react 1.7.0-alpha-202307261914 → 1.7.0-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 (771) hide show
  1. package/dist/communication-react.d.ts +14 -130
  2. package/dist/dist-cjs/communication-react/index.js +3658 -3865
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/identifier.js +1 -4
  11. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  18. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +4 -4
  22. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  23. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +4 -5
  24. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  25. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +55 -20
  26. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +38 -32
  28. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +2 -2
  30. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  32. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +6 -2
  33. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  39. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts +0 -1
  40. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +12 -24
  41. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js +3 -6
  45. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  48. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +6 -9
  50. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  52. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +8 -13
  53. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +6 -22
  55. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  56. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  57. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +1 -1
  58. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  59. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +75 -65
  60. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  61. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +0 -16
  62. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  63. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -3
  64. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +6 -21
  65. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +8 -7
  67. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  68. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +83 -74
  69. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  70. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  72. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +0 -1
  73. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +3 -7
  74. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  75. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/Converter.js +7 -4
  77. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +57 -51
  79. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +16 -14
  81. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  83. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +15 -3
  84. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  85. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  87. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +3 -1
  88. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  89. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  90. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  91. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  92. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +67 -65
  93. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  94. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +31 -33
  95. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +11 -8
  97. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  98. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  100. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +8 -7
  101. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  102. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  103. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +1 -1
  104. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  105. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +3 -3
  106. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +7 -6
  108. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  109. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -1
  110. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  112. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js +4 -4
  113. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  114. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +3 -3
  115. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  116. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js +14 -13
  117. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  118. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  119. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +10 -3
  120. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  121. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  122. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  123. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  124. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  125. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +15 -33
  126. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  127. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  128. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js +1 -1
  129. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  130. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  131. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +7 -3
  132. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  133. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js +1 -3
  134. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  135. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  136. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -10
  137. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  138. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  139. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +9 -5
  140. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  141. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  142. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +10 -7
  143. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  144. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  145. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js +67 -57
  146. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  147. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +127 -113
  148. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  149. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +1 -3
  150. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  151. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  152. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  153. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  154. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  155. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  156. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  157. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  158. package/dist/dist-esm/communication-react/src/index.d.ts +0 -1
  159. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  160. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  161. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +6 -3
  162. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -1
  164. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +10 -4
  166. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +1 -1
  168. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +1 -1
  170. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/CameraButton.js +19 -8
  173. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  174. package/dist/dist-esm/react-components/src/components/Caption.js +2 -2
  175. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +10 -11
  177. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  178. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +14 -16
  179. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +8 -7
  181. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +17 -36
  183. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +9 -16
  185. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +35 -27
  187. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +33 -52
  189. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  190. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +28 -38
  191. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +18 -18
  194. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +4 -7
  196. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +2 -2
  198. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  199. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  202. package/dist/dist-esm/react-components/src/components/ControlBar.js +14 -10
  203. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +4 -14
  205. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  206. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +14 -3
  207. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  208. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +10 -4
  209. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +31 -14
  211. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +8 -5
  213. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +6 -24
  215. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +20 -12
  217. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/components/DevicesButton.js +27 -19
  219. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +44 -36
  221. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  222. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +4 -4
  223. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  224. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js +6 -2
  225. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  226. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +6 -6
  227. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  228. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +23 -11
  229. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  230. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +4 -6
  231. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  232. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  233. package/dist/dist-esm/react-components/src/components/EndCallButton.js +7 -3
  234. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  235. package/dist/dist-esm/react-components/src/components/ErrorBar.js +5 -9
  236. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  237. package/dist/dist-esm/react-components/src/components/FileCard.js +3 -2
  238. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +1 -1
  240. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +16 -17
  242. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  243. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +7 -8
  244. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  245. package/dist/dist-esm/react-components/src/components/GridLayout.js +37 -37
  246. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  247. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
  248. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  249. package/dist/dist-esm/react-components/src/components/HoldButton.js +1 -1
  250. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  251. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +9 -7
  252. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  253. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +15 -8
  254. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  255. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js +5 -3
  256. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  257. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +9 -27
  258. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  259. package/dist/dist-esm/react-components/src/components/MentionPopover.js +11 -19
  260. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +36 -23
  262. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +1 -1
  264. package/dist/dist-esm/react-components/src/components/MessageThread.js +91 -158
  265. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  266. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +14 -17
  267. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  268. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +101 -94
  269. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  270. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +17 -15
  271. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  272. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +0 -15
  273. package/dist/dist-esm/react-components/src/components/ParticipantList.js +14 -41
  274. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  275. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +32 -46
  276. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  277. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js +3 -3
  278. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  279. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js +3 -3
  280. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  281. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +14 -29
  282. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  283. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +2 -2
  284. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  285. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +2 -2
  286. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  287. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +14 -6
  288. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  289. package/dist/dist-esm/react-components/src/components/SendBox.js +19 -17
  290. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  291. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +2 -2
  292. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  293. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  294. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +4 -2
  295. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/StreamMedia.js +3 -3
  297. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  298. package/dist/dist-esm/react-components/src/components/SystemMessage.js +4 -2
  299. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  300. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +32 -70
  301. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  302. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +46 -52
  303. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  304. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +10 -10
  305. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  306. package/dist/dist-esm/react-components/src/components/TypingIndicator.js +6 -9
  307. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  308. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +1 -1
  309. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  310. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +1 -1
  311. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  312. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +8 -4
  313. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  314. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +1 -1
  315. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  316. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +34 -19
  317. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  318. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +1 -3
  319. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  320. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +13 -9
  321. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  322. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +15 -13
  323. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  324. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +3 -6
  325. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  326. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +15 -34
  327. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  328. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +10 -10
  329. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  330. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +24 -59
  331. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  332. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +7 -7
  334. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  335. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +5 -16
  336. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  337. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +6 -8
  338. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  339. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +4 -2
  340. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  341. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +6 -1
  342. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  343. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +32 -7
  344. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  345. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +11 -2
  346. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  347. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  348. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  349. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  350. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -1
  351. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +3 -1
  352. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  353. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +11 -10
  354. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  355. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +28 -22
  356. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +5 -10
  358. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  359. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +32 -18
  360. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  361. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +24 -40
  363. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  364. package/dist/dist-esm/react-components/src/components/VideoGallery.js +27 -97
  365. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  366. package/dist/dist-esm/react-components/src/components/VideoTile.js +51 -32
  367. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  368. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -1
  369. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  370. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  371. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +2 -2
  372. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +5 -9
  373. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  375. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +12 -3
  376. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  377. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  378. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  379. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  380. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js +3 -1
  381. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  382. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  383. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  385. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +4 -1
  386. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  387. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
  388. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  389. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +8 -2
  390. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  391. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +1 -0
  392. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  393. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +10 -2
  395. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  396. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  397. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +3 -0
  398. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  400. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +1 -0
  401. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  402. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  403. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  404. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +1 -0
  405. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  406. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +17 -3
  407. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  409. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  410. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  411. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  412. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  413. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +7 -4
  414. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  415. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  417. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  418. package/dist/dist-esm/react-components/src/components/utils/responsive.js +2 -2
  419. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  420. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +1 -10
  421. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  422. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +3 -1
  423. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  424. package/dist/dist-esm/react-components/src/components/utils.js +10 -13
  425. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  426. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +6 -8
  427. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  428. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  429. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  430. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  431. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  432. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -3
  433. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  434. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  435. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +0 -3
  436. package/dist/dist-esm/react-components/src/localization/locales/index.js +63 -21
  437. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  439. package/dist/dist-esm/react-components/src/permissions/index.js.map +1 -1
  440. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +6 -3
  441. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  442. package/dist/dist-esm/react-components/src/theming/icons.js +26 -20
  443. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  444. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  445. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  446. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  447. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  448. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  449. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  450. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  451. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  452. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  453. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  454. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  455. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  456. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  457. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  458. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  459. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +36 -34
  460. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  461. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  462. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +3 -3
  463. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +58 -130
  464. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  465. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -72
  466. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +1 -9
  467. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  468. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  469. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  470. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +3 -1
  471. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  472. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  473. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +2 -2
  474. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  475. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -1
  476. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  477. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +27 -50
  478. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  479. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +44 -19
  480. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  481. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +141 -133
  482. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  483. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +7 -1
  484. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  485. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +1 -1
  486. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  487. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +7 -1
  488. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  489. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +4 -5
  490. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  491. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +4 -4
  492. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  493. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +2 -2
  494. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  495. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +22 -32
  496. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  497. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +23 -34
  498. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  499. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +34 -25
  500. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  501. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +33 -41
  502. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  503. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js +2 -2
  504. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  505. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +2 -2
  506. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  507. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +10 -20
  508. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  509. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  510. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +7 -3
  511. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  512. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +8 -13
  513. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  514. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +1 -1
  515. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  516. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +2 -3
  517. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  518. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +2 -6
  519. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +4 -7
  520. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  521. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +11 -19
  522. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  523. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +2 -5
  524. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  525. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +6 -8
  526. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  527. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +2 -5
  528. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  529. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -1
  530. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  531. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -1
  532. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  533. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +8 -8
  534. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  535. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +3 -7
  536. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  537. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  538. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js +1 -1
  539. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  540. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -1
  541. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  542. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +4 -7
  543. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  544. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +29 -63
  545. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  546. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +7 -13
  547. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  548. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +7 -15
  549. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  550. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  551. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  552. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +23 -23
  553. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  554. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +3 -3
  555. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  556. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +2 -2
  557. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js +1 -1
  558. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  559. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +1 -2
  560. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  561. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  562. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +1 -1
  563. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  564. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +1 -1
  565. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  566. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +2 -2
  567. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js +1 -1
  568. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  569. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +2 -2
  570. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +5 -7
  571. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  572. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +4 -4
  573. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js +1 -1
  574. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  575. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +7 -7
  576. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  577. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +2 -2
  578. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +4 -4
  579. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  580. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +1 -1
  581. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  583. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +5 -5
  584. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +4 -4
  585. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  586. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +2 -2
  587. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js +1 -1
  588. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  589. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +5 -5
  590. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  591. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +1 -1
  592. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  593. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +6 -2
  594. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  595. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +7 -2
  596. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  597. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  598. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  599. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +4 -1
  600. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  601. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +4 -1
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +1 -0
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +1 -0
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +24 -6
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +2 -2
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +11 -9
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js +2 -2
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -2
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +22 -33
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  624. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +23 -62
  625. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  626. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js +1 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  628. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js +7 -9
  629. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +6 -3
  631. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -2
  635. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +8 -46
  636. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -13
  638. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  639. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -2
  640. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +2 -7
  641. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +1 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  646. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js +1 -1
  648. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  649. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  650. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  651. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +2 -2
  652. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  653. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js +5 -3
  654. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  655. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +19 -21
  656. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  657. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +1 -1
  658. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  659. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js +5 -3
  660. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  661. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  662. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -2
  663. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +38 -39
  664. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  665. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +20 -15
  666. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  667. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -2
  668. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  669. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  670. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  671. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +6 -11
  672. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  673. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  674. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  675. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js +5 -3
  676. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  677. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +1 -3
  678. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  679. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  680. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +1 -1
  681. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  682. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  683. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  684. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +6 -6
  685. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +5 -3
  686. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  687. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +6 -2
  688. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  689. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +9 -9
  690. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  691. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +25 -23
  692. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  693. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  694. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +3 -8
  695. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  696. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +14 -5
  697. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  698. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +23 -9
  699. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  700. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  701. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +8 -6
  702. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  703. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +16 -12
  704. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  705. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +1 -1
  706. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  707. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js +5 -1
  708. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  709. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +32 -40
  710. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  711. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +25 -32
  712. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  713. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +44 -22
  714. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  715. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +1 -1
  716. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  717. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  718. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +63 -29
  719. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  720. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  721. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  722. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js +7 -10
  723. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js.map +1 -1
  724. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js.map +1 -1
  725. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +1 -1
  726. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -1
  727. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +7 -9
  728. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  729. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  730. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  731. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +9 -20
  732. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  733. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +8 -19
  734. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  735. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +15 -7
  736. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  737. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  738. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +15 -7
  739. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  740. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +8 -10
  741. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  742. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +11 -16
  743. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  744. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  745. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  746. package/dist/dist-esm/react-composites/src/composites/common/icons.js +3 -3
  747. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  748. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  749. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  750. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +16 -5
  751. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  752. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +51 -12
  753. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  754. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +29 -6
  755. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  756. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +22 -4
  757. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  758. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  759. package/dist/dist-esm/react-composites/src/composites/common/utils.js +12 -17
  760. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  761. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  762. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js +2 -2
  763. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  764. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  765. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -1
  766. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  767. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  768. package/package.json +13 -13
  769. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.d.ts +0 -16
  770. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js +0 -24
  771. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +0 -1
@@ -83,32 +83,20 @@ const CallWithChatScreen = (props) => {
83
83
  tooltipOnContent: callWithChatStrings.chatButtonTooltipClose
84
84
  }), [callWithChatStrings]);
85
85
  const theme = useTheme();
86
- const commonButtonStyles = useMemo(() => (!mobileView ? getDesktopCommonButtonStyles(theme) : undefined), [mobileView, theme]);
86
+ const commonButtonStyles = useMemo(() => !mobileView ? getDesktopCommonButtonStyles(theme) : undefined, [mobileView, theme]);
87
87
  const showChatButton = checkShowChatButton(props.callControls);
88
88
  const chatButtonDisabled = showChatButton && (checkChatButtonIsDisabled(props.callControls) || !hasJoinedCall || isOnHold);
89
- const chatTabHeaderProps = useMemo(() => mobileView && showChatButton
90
- ? {
91
- onClick: toggleChat,
92
- disabled: chatButtonDisabled
93
- }
94
- : undefined, [chatButtonDisabled, mobileView, toggleChat, showChatButton]);
89
+ const chatTabHeaderProps = useMemo(() => mobileView && showChatButton ? {
90
+ onClick: toggleChat,
91
+ disabled: chatButtonDisabled
92
+ } : undefined, [chatButtonDisabled, mobileView, toggleChat, showChatButton]);
95
93
  const unreadChatMessagesCount = useUnreadMessagesTracker(chatProps.adapter, isChatOpen);
96
94
  const customChatButton = useCallback((args) => ({
97
95
  placement: mobileView ? 'primary' : 'secondary',
98
- onRenderButton: () => (React.createElement(ChatButtonWithUnreadMessagesBadge, { checked: isChatOpen, showLabel: args.displayType !== 'compact', onClick: toggleChat, disabled: chatButtonDisabled, strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel, unreadChatMessagesCount: unreadChatMessagesCount,
96
+ onRenderButton: () => React.createElement(ChatButtonWithUnreadMessagesBadge, { checked: isChatOpen, showLabel: args.displayType !== 'compact', onClick: toggleChat, disabled: chatButtonDisabled, strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel, unreadChatMessagesCount: unreadChatMessagesCount,
99
97
  // As chat is disabled when on hold, we don't want to show the unread badge when on hold
100
- hideUnreadChatMessagesBadge: isOnHold }))
101
- }), [
102
- callWithChatStrings.chatButtonNewMessageNotificationLabel,
103
- chatButtonStrings,
104
- commonButtonStyles,
105
- isChatOpen,
106
- chatButtonDisabled,
107
- mobileView,
108
- toggleChat,
109
- unreadChatMessagesCount,
110
- isOnHold
111
- ]);
98
+ hideUnreadChatMessagesBadge: isOnHold })
99
+ }), [callWithChatStrings.chatButtonNewMessageNotificationLabel, chatButtonStrings, commonButtonStyles, isChatOpen, chatButtonDisabled, mobileView, toggleChat, unreadChatMessagesCount, isOnHold]);
112
100
  const callControlOptionsFromProps = useMemo(() => (Object.assign({}, (typeof props.callControls === 'object' ? props.callControls : {}))), [props.callControls]);
113
101
  const injectedCustomButtonsFromProps = useMemo(() => {
114
102
  var _a;
@@ -117,13 +105,8 @@ const CallWithChatScreen = (props) => {
117
105
  return [];
118
106
  }, [callControlOptionsFromProps]);
119
107
  const callCompositeOptions = useMemo(() => ({
120
- callControls: props.callControls === false
121
- ? false
122
- : Object.assign(Object.assign({}, callControlOptionsFromProps), { onFetchCustomButtonProps: [
123
- ...(showChatButton ? [customChatButton] : []),
124
- /* @conditional-compile-remove(control-bar-button-injection) */
125
- ...injectedCustomButtonsFromProps
126
- ], legacyControlBarExperience: false }),
108
+ callControls: props.callControls === false ? false : Object.assign(Object.assign({}, callControlOptionsFromProps), { onFetchCustomButtonProps: [...(showChatButton ? [customChatButton] : []),
109
+ ...injectedCustomButtonsFromProps], legacyControlBarExperience: false }),
127
110
  /* @conditional-compile-remove(call-readiness) */
128
111
  deviceChecks: props.deviceChecks,
129
112
  /* @conditional-compile-remove(call-readiness) */
@@ -132,38 +115,20 @@ const CallWithChatScreen = (props) => {
132
115
  onPermissionsTroubleshootingClick: props.onPermissionsTroubleshootingClick,
133
116
  /* @conditional-compile-remove(unsupported-browser) */
134
117
  onEnvironmentInfoTroubleshootingClick: props.onEnvironmentInfoTroubleshootingClick
135
- }), [
136
- props.callControls,
137
- callControlOptionsFromProps,
138
- showChatButton,
139
- customChatButton,
140
- injectedCustomButtonsFromProps,
141
- /* @conditional-compile-remove(call-readiness) */
118
+ }), [props.callControls, callControlOptionsFromProps, showChatButton, customChatButton, injectedCustomButtonsFromProps,
142
119
  props.deviceChecks,
143
- /* @conditional-compile-remove(unsupported-browser) */
144
120
  props.onEnvironmentInfoTroubleshootingClick,
145
- /* @conditional-compile-remove(call-readiness) */
146
121
  props.onNetworkingTroubleShootingClick,
147
- /* @conditional-compile-remove(call-readiness) */
148
- props.onPermissionsTroubleshootingClick
149
- ]);
150
- const onRenderChatContent = useCallback(() => (React.createElement(ChatComposite, Object.assign({}, chatProps, { fluentTheme: theme, options: {
122
+ props.onPermissionsTroubleshootingClick]);
123
+ const onRenderChatContent = useCallback(() => React.createElement(ChatComposite, Object.assign({}, chatProps, { fluentTheme: theme, options: {
151
124
  topic: false,
152
125
  /* @conditional-compile-remove(chat-composite-participant-pane) */
153
126
  participantPane: false,
154
127
  /* @conditional-compile-remove(file-sharing) */
155
128
  fileSharing: props.fileSharing
156
- }, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData }))), [
157
- chatProps,
158
- /* @conditional-compile-remove(file-sharing) */ props.fileSharing,
159
- props.onFetchAvatarPersonaData,
160
- theme
161
- ]);
162
- const sidePaneHeaderRenderer = useCallback(() => {
163
- var _a;
164
- return (React.createElement(SidePaneHeader, { headingText: callWithChatStrings.chatPaneTitle, onClose: closeChat, dismissSidePaneButtonAriaLabel: (_a = callWithChatStrings.dismissSidePaneButtonLabel) !== null && _a !== void 0 ? _a : '', mobileView: mobileView }));
165
- }, [callWithChatStrings.chatPaneTitle, callWithChatStrings.dismissSidePaneButtonLabel, closeChat, mobileView]);
166
- const sidePaneContentRenderer = useMemo(() => (hasJoinedCall ? onRenderChatContent : undefined), [hasJoinedCall, onRenderChatContent]);
129
+ }, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), [chatProps, /* @conditional-compile-remove(file-sharing) */ props.fileSharing, props.onFetchAvatarPersonaData, theme]);
130
+ const sidePaneHeaderRenderer = useCallback(() => { var _a; return React.createElement(SidePaneHeader, { headingText: callWithChatStrings.chatPaneTitle, onClose: closeChat, dismissSidePaneButtonAriaLabel: (_a = callWithChatStrings.dismissSidePaneButtonLabel) !== null && _a !== void 0 ? _a : '', mobileView: mobileView }); }, [callWithChatStrings.chatPaneTitle, callWithChatStrings.dismissSidePaneButtonLabel, closeChat, mobileView]);
131
+ const sidePaneContentRenderer = useMemo(() => hasJoinedCall ? onRenderChatContent : undefined, [hasJoinedCall, onRenderChatContent]);
167
132
  const sidePaneRenderer = useMemo(() => ({
168
133
  contentRenderer: sidePaneContentRenderer,
169
134
  headerRenderer: sidePaneHeaderRenderer,
@@ -174,17 +139,17 @@ const CallWithChatScreen = (props) => {
174
139
  isActive: isChatOpen,
175
140
  persistRenderingWhenClosed: true
176
141
  }), [isChatOpen, sidePaneRenderer]);
177
- const onSidePaneIdChange = useCallback((sidePaneId) => {
142
+ const onSidePaneIdChange = useCallback(sidePaneId => {
178
143
  // If the pane is switched to something other than chat, removing rendering chat.
179
144
  if (sidePaneId && sidePaneId !== 'chat') {
180
145
  closeChat();
181
146
  }
182
147
  }, [closeChat]);
183
- return (React.createElement("div", { ref: containerRef, className: mergeStyles(containerDivStyles) },
148
+ return React.createElement("div", { ref: containerRef, className: mergeStyles(containerDivStyles) },
184
149
  React.createElement(Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
185
150
  React.createElement(Stack, { horizontal: true, grow: true },
186
151
  React.createElement(Stack.Item, { grow: true, styles: callCompositeContainerStyles(mobileView) },
187
- React.createElement(CallCompositeInner, Object.assign({}, props, { formFactor: formFactor, options: callCompositeOptions, adapter: callAdapter, fluentTheme: fluentTheme, callInvitationUrl: props.joinInvitationURL, overrideSidePane: overrideSidePaneProps, onSidePaneIdChange: onSidePaneIdChange, mobileChatTabHeader: chatTabHeaderProps })))))));
152
+ React.createElement(CallCompositeInner, Object.assign({}, props, { formFactor: formFactor, options: callCompositeOptions, adapter: callAdapter, fluentTheme: fluentTheme, callInvitationUrl: props.joinInvitationURL, overrideSidePane: overrideSidePaneProps, onSidePaneIdChange: onSidePaneIdChange, mobileChatTabHeader: chatTabHeaderProps }))))));
188
153
  };
189
154
  /**
190
155
  * CallWithChatComposite brings together key components to provide a full call with chat experience out of the box.
@@ -193,18 +158,14 @@ const CallWithChatScreen = (props) => {
193
158
  */
194
159
  export const CallWithChatComposite = (props) => {
195
160
  const { adapter, fluentTheme, rtl, formFactor, joinInvitationURL, options } = props;
196
- return (React.createElement(BaseProvider, { fluentTheme: fluentTheme, rtl: rtl, locale: props.locale, icons: props.icons },
161
+ return React.createElement(BaseProvider, { fluentTheme: fluentTheme, rtl: rtl, locale: props.locale, icons: props.icons },
197
162
  React.createElement(CallWithChatScreen, Object.assign({}, props, {
198
- /* @conditional-compile-remove(call-readiness) */
199
- deviceChecks: options === null || options === void 0 ? void 0 : options.deviceChecks, callWithChatAdapter: adapter, formFactor: formFactor, callControls: options === null || options === void 0 ? void 0 : options.callControls, joinInvitationURL: joinInvitationURL, fluentTheme: fluentTheme,
200
- /* @conditional-compile-remove(file-sharing) */
201
- fileSharing: options === null || options === void 0 ? void 0 : options.fileSharing }))));
163
+ /* @conditional-compile-remove(call-readiness) */ deviceChecks: options === null || options === void 0 ? void 0 : options.deviceChecks, callWithChatAdapter: adapter, formFactor: formFactor, callControls: options === null || options === void 0 ? void 0 : options.callControls, joinInvitationURL: joinInvitationURL, fluentTheme: fluentTheme,
164
+ /* @conditional-compile-remove(file-sharing) */ fileSharing: options === null || options === void 0 ? void 0 : options.fileSharing })));
202
165
  };
203
166
  const hasJoinedCallFn = (page, callStatus) => {
204
167
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
205
- return ((page === 'call' &&
206
- (callStatus === 'Connected' || callStatus === 'RemoteHold' || callStatus === 'Disconnecting')) ||
207
- (page === 'hold' && (callStatus === 'LocalHold' || callStatus === 'Disconnecting')));
168
+ return page === 'call' && (callStatus === 'Connected' || callStatus === 'RemoteHold' || callStatus === 'Disconnecting') || page === 'hold' && (callStatus === 'LocalHold' || callStatus === 'Disconnecting');
208
169
  return page === 'call' && (callStatus === 'Connected' || callStatus === 'Disconnecting');
209
170
  };
210
171
  const checkShowChatButton = (callControls) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CallWithChatComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useCallback, useState, useMemo, useEffect, useRef } from 'react';\nimport { mergeStyles, PartialTheme, Stack, Theme } from '@fluentui/react';\nimport { CallCompositePage } from '../CallComposite';\nimport { CallState } from '@azure/communication-calling';\nimport { callCompositeContainerStyles, compositeOuterContainerStyles } from './styles/CallWithChatCompositeStyles';\nimport { CallWithChatAdapter } from './adapter/CallWithChatAdapter';\nimport { CallWithChatBackedCallAdapter } from './adapter/CallWithChatBackedCallAdapter';\nimport { CallWithChatBackedChatAdapter } from './adapter/CallWithChatBackedChatAdapter';\nimport { CallAdapter } from '../CallComposite';\nimport { ChatComposite, ChatCompositeProps } from '../ChatComposite';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallWithChatCompositeIcons } from '../common/icons';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { CallWithChatAdapterState } from './state/CallWithChatAdapterState';\nimport {\n ParticipantMenuItemsCallback,\n _useContainerHeight,\n _useContainerWidth,\n useTheme\n} from '@internal/react-components';\nimport { useId } from '@fluentui/react-hooks';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileSharingOptions } from '../ChatComposite';\nimport { containerDivStyles } from '../common/ContainerRectProps';\nimport { useCallWithChatCompositeStrings } from './hooks/useCallWithChatCompositeStrings';\nimport { CallCompositeInner, CallCompositeOptions } from '../CallComposite/CallComposite';\n/* @conditional-compile-remove(call-readiness) */\nimport { DeviceCheckOptions } from '../CallComposite/CallComposite';\nimport {\n CommonCallControlOptions,\n CustomCallControlButtonCallbackArgs,\n _CommonCallControlOptions\n} from '../common/types/CommonCallControlOptions';\nimport { ChatButtonWithUnreadMessagesBadge } from './ChatButton/ChatButtonWithUnreadMessagesBadge';\nimport { getDesktopCommonButtonStyles } from '../common/ControlBar/CommonCallControlBar';\nimport { InjectedSidePaneProps } from '../CallComposite/components/SidePane/SidePaneProvider';\nimport { isDisabled } from '../CallComposite/utils';\nimport { CustomCallControlButtonCallback } from '../common/ControlBar/CustomButton';\nimport { SidePaneHeader } from '../common/SidePaneHeader';\nimport { _CallControlOptions } from '../CallComposite/types/CallControlOptions';\nimport { useUnreadMessagesTracker } from './ChatButton/useUnreadMessagesTracker';\n\n/**\n * Props required for the {@link CallWithChatComposite}\n *\n * @public\n */\nexport interface CallWithChatCompositeProps extends BaseCompositeProps<CallWithChatCompositeIcons> {\n adapter: CallWithChatAdapter;\n /**\n * Fluent theme for the composite.\n *\n * Defaults to a light theme if undefined.\n */\n fluentTheme?: PartialTheme | Theme;\n /**\n * Optimizes the composite form factor for either desktop or mobile.\n * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.\n * @defaultValue 'desktop'\n */\n formFactor?: 'desktop' | 'mobile';\n /**\n * URL that can be used to copy a call-with-chat invite to the Users clipboard.\n */\n joinInvitationURL?: string;\n /**\n * Flags to enable/disable or customize UI elements of the {@link CallWithChatComposite}\n */\n options?: CallWithChatCompositeOptions;\n}\n\n/**\n * Customization options for the control bar in calling with chat experience.\n *\n * @public\n */\nexport interface CallWithChatControlOptions extends CommonCallControlOptions {\n /**\n * Show or hide the chat button in the call-with-chat composite control bar.\n * @defaultValue true\n */\n chatButton?: boolean | /* @conditional-compile-remove(PSTN-calls) */ { disabled: boolean };\n}\n\n/**\n * Optional features of the {@link CallWithChatComposite}.\n *\n * @public\n */\nexport type CallWithChatCompositeOptions = {\n /**\n * Call control options to change what buttons show on the call-with-chat composite control bar.\n * If using the boolean values, true will cause default behavior across the whole control bar. False hides the whole control bar.\n */\n callControls?: boolean | CallWithChatControlOptions;\n /* @conditional-compile-remove(file-sharing) */\n /**\n * Properties for configuring the File Sharing feature.\n * If undefined, file sharing feature will be disabled.\n * @beta\n */\n fileSharing?: FileSharingOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Device permissions check options for your call.\n * Here you can choose what device permissions you prompt the user for,\n * as well as what device permissions must be accepted before starting a call.\n */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * unable to grant your site the required permissions for the call.\n *\n * @example\n * ```ts\n * onPermissionsTroubleshootingClick: () =>\n * window.open('https://contoso.com/permissions-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'further troubleshooting' link.\n */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Optional callback to supply users with further troubleshooting steps for network issues\n * experienced when connecting to a call.\n *\n * @example\n * ```ts\n * onNetworkingTroubleShootingClick?: () =>\n * window.open('https://contoso.com/network-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'network troubleshooting' link.\n */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n /**\n * Callback you may provide to supply users with a provided page to showcase supported browsers by ACS.\n *\n * @example\n * ```ts\n * onBrowserTroubleShootingClick?: () =>\n * window.open('https://contoso.com/browser-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a unsupported browser page.\n */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n};\n\ntype CallWithChatScreenProps = {\n callWithChatAdapter: CallWithChatAdapter;\n fluentTheme?: PartialTheme | Theme;\n formFactor?: 'desktop' | 'mobile';\n joinInvitationURL?: string;\n callControls?: boolean | CallWithChatControlOptions;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n /* @conditional-compile-remove(file-sharing) */\n fileSharing?: FileSharingOptions;\n rtl?: boolean;\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n};\n\nconst CallWithChatScreen = (props: CallWithChatScreenProps): JSX.Element => {\n const { callWithChatAdapter, fluentTheme, formFactor = 'desktop' } = props;\n const mobileView = formFactor === 'mobile';\n\n if (!callWithChatAdapter) {\n throw new Error('CallWithChatAdapter is undefined');\n }\n\n const callAdapter: CallAdapter = useMemo(\n () => new CallWithChatBackedCallAdapter(callWithChatAdapter),\n [callWithChatAdapter]\n );\n\n const [currentCallState, setCurrentCallState] = useState<CallState>();\n const [currentPage, setCurrentPage] = useState<CallCompositePage>();\n const [isChatOpen, setIsChatOpen] = useState(false);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const updateCallWithChatPage = (newState: CallWithChatAdapterState): void => {\n setCurrentPage(newState.page);\n setCurrentCallState(newState.call?.state);\n };\n updateCallWithChatPage(callWithChatAdapter.getState());\n callWithChatAdapter.onStateChange(updateCallWithChatPage);\n return () => {\n callWithChatAdapter.offStateChange(updateCallWithChatPage);\n };\n }, [callWithChatAdapter]);\n\n const chatProps: ChatCompositeProps = useMemo(() => {\n return {\n adapter: new CallWithChatBackedChatAdapter(callWithChatAdapter)\n };\n }, [callWithChatAdapter]);\n\n /** Constant setting of id for the parent stack of the composite */\n const compositeParentDivId = useId('callWithChatCompositeParentDiv-internal');\n\n const closeChat = useCallback(() => {\n setIsChatOpen(false);\n }, []);\n const openChat = useCallback(() => {\n setIsChatOpen(true);\n // timeout is required to give the window time to render the sendbox so we have something to send focus to.\n // TODO: Selecting elements in the DOM via attributes is not stable. We should expose an API from ChatComposite to be able to focus on the sendbox.\n const chatFocusTimeout = setInterval(() => {\n const callWithChatCompositeRootDiv = document.querySelector(`[id=\"${compositeParentDivId}\"]`);\n const sendbox = callWithChatCompositeRootDiv?.querySelector(`[id=\"sendbox\"]`) as HTMLTextAreaElement;\n if (sendbox !== null) {\n sendbox.focus();\n clearInterval(chatFocusTimeout);\n }\n }, 3);\n setTimeout(() => {\n clearInterval(chatFocusTimeout);\n }, 300);\n }, [compositeParentDivId]);\n\n const isOnHold = isOnHoldTrampoline(currentPage);\n useEffect(() => {\n if (isOnHold) {\n closeChat();\n }\n }, [closeChat, isOnHold]);\n\n const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState ?? 'None'));\n const toggleChat = useCallback(() => {\n isChatOpen || !hasJoinedCall ? closeChat() : openChat();\n }, [closeChat, hasJoinedCall, isChatOpen, openChat]);\n\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const chatButtonStrings = useMemo(\n () => ({\n label: callWithChatStrings.chatButtonLabel,\n tooltipOffContent: callWithChatStrings.chatButtonTooltipOpen,\n tooltipOnContent: callWithChatStrings.chatButtonTooltipClose\n }),\n [callWithChatStrings]\n );\n const theme = useTheme();\n const commonButtonStyles = useMemo(\n () => (!mobileView ? getDesktopCommonButtonStyles(theme) : undefined),\n [mobileView, theme]\n );\n\n const showChatButton = checkShowChatButton(props.callControls);\n const chatButtonDisabled =\n showChatButton && (checkChatButtonIsDisabled(props.callControls) || !hasJoinedCall || isOnHold);\n const chatTabHeaderProps = useMemo(\n () =>\n mobileView && showChatButton\n ? {\n onClick: toggleChat,\n disabled: chatButtonDisabled\n }\n : undefined,\n [chatButtonDisabled, mobileView, toggleChat, showChatButton]\n );\n\n const unreadChatMessagesCount = useUnreadMessagesTracker(chatProps.adapter, isChatOpen);\n\n const customChatButton: CustomCallControlButtonCallback = useCallback(\n (args: CustomCallControlButtonCallbackArgs) => ({\n placement: mobileView ? 'primary' : 'secondary',\n onRenderButton: () => (\n <ChatButtonWithUnreadMessagesBadge\n checked={isChatOpen}\n showLabel={args.displayType !== 'compact'}\n onClick={toggleChat}\n disabled={chatButtonDisabled}\n strings={chatButtonStrings}\n styles={commonButtonStyles}\n newMessageLabel={callWithChatStrings.chatButtonNewMessageNotificationLabel}\n unreadChatMessagesCount={unreadChatMessagesCount}\n // As chat is disabled when on hold, we don't want to show the unread badge when on hold\n hideUnreadChatMessagesBadge={isOnHold}\n />\n )\n }),\n [\n callWithChatStrings.chatButtonNewMessageNotificationLabel,\n chatButtonStrings,\n commonButtonStyles,\n isChatOpen,\n chatButtonDisabled,\n mobileView,\n toggleChat,\n unreadChatMessagesCount,\n isOnHold\n ]\n );\n\n const callControlOptionsFromProps = useMemo(\n () => ({\n ...(typeof props.callControls === 'object' ? props.callControls : {})\n }),\n [props.callControls]\n );\n\n const injectedCustomButtonsFromProps = useMemo(() => {\n /* @conditional-compile-remove(control-bar-button-injection) */\n return [...(callControlOptionsFromProps.onFetchCustomButtonProps ?? [])];\n return [];\n }, [callControlOptionsFromProps]);\n\n const callCompositeOptions: CallCompositeOptions = useMemo(\n () => ({\n callControls:\n props.callControls === false\n ? false\n : ({\n ...callControlOptionsFromProps,\n onFetchCustomButtonProps: [\n ...(showChatButton ? [customChatButton] : []),\n /* @conditional-compile-remove(control-bar-button-injection) */\n ...injectedCustomButtonsFromProps\n ],\n legacyControlBarExperience: false\n } as _CallControlOptions),\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks: props.deviceChecks,\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick: props.onNetworkingTroubleShootingClick,\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick: props.onPermissionsTroubleshootingClick,\n /* @conditional-compile-remove(unsupported-browser) */\n onEnvironmentInfoTroubleshootingClick: props.onEnvironmentInfoTroubleshootingClick\n }),\n [\n props.callControls,\n callControlOptionsFromProps,\n showChatButton,\n customChatButton,\n injectedCustomButtonsFromProps,\n /* @conditional-compile-remove(call-readiness) */\n props.deviceChecks,\n /* @conditional-compile-remove(unsupported-browser) */\n props.onEnvironmentInfoTroubleshootingClick,\n /* @conditional-compile-remove(call-readiness) */\n props.onNetworkingTroubleShootingClick,\n /* @conditional-compile-remove(call-readiness) */\n props.onPermissionsTroubleshootingClick\n ]\n );\n\n const onRenderChatContent = useCallback(\n (): JSX.Element => (\n <ChatComposite\n {...chatProps}\n fluentTheme={theme}\n options={{\n topic: false,\n /* @conditional-compile-remove(chat-composite-participant-pane) */\n participantPane: false,\n /* @conditional-compile-remove(file-sharing) */\n fileSharing: props.fileSharing\n }}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n />\n ),\n [\n chatProps,\n /* @conditional-compile-remove(file-sharing) */ props.fileSharing,\n props.onFetchAvatarPersonaData,\n theme\n ]\n );\n\n const sidePaneHeaderRenderer = useCallback(\n () => (\n <SidePaneHeader\n headingText={callWithChatStrings.chatPaneTitle}\n onClose={closeChat}\n dismissSidePaneButtonAriaLabel={callWithChatStrings.dismissSidePaneButtonLabel ?? ''}\n mobileView={mobileView}\n />\n ),\n [callWithChatStrings.chatPaneTitle, callWithChatStrings.dismissSidePaneButtonLabel, closeChat, mobileView]\n );\n\n const sidePaneContentRenderer = useMemo(\n () => (hasJoinedCall ? onRenderChatContent : undefined),\n [hasJoinedCall, onRenderChatContent]\n );\n\n const sidePaneRenderer = useMemo(\n () => ({\n contentRenderer: sidePaneContentRenderer,\n headerRenderer: sidePaneHeaderRenderer,\n id: 'chat'\n }),\n [sidePaneContentRenderer, sidePaneHeaderRenderer]\n );\n\n const overrideSidePaneProps: InjectedSidePaneProps = useMemo(\n () => ({\n renderer: sidePaneRenderer,\n isActive: isChatOpen,\n persistRenderingWhenClosed: true\n }),\n [isChatOpen, sidePaneRenderer]\n );\n\n const onSidePaneIdChange = useCallback(\n (sidePaneId) => {\n // If the pane is switched to something other than chat, removing rendering chat.\n if (sidePaneId && sidePaneId !== 'chat') {\n closeChat();\n }\n },\n [closeChat]\n );\n\n return (\n <div ref={containerRef} className={mergeStyles(containerDivStyles)}>\n <Stack verticalFill grow styles={compositeOuterContainerStyles} id={compositeParentDivId}>\n <Stack horizontal grow>\n <Stack.Item grow styles={callCompositeContainerStyles(mobileView)}>\n <CallCompositeInner\n {...props}\n formFactor={formFactor}\n options={callCompositeOptions}\n adapter={callAdapter}\n fluentTheme={fluentTheme}\n callInvitationUrl={props.joinInvitationURL}\n overrideSidePane={overrideSidePaneProps}\n onSidePaneIdChange={onSidePaneIdChange}\n mobileChatTabHeader={chatTabHeaderProps}\n />\n </Stack.Item>\n </Stack>\n </Stack>\n </div>\n );\n};\n\n/**\n * CallWithChatComposite brings together key components to provide a full call with chat experience out of the box.\n *\n * @public\n */\nexport const CallWithChatComposite = (props: CallWithChatCompositeProps): JSX.Element => {\n const { adapter, fluentTheme, rtl, formFactor, joinInvitationURL, options } = props;\n return (\n <BaseProvider fluentTheme={fluentTheme} rtl={rtl} locale={props.locale} icons={props.icons}>\n <CallWithChatScreen\n {...props}\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks={options?.deviceChecks}\n callWithChatAdapter={adapter}\n formFactor={formFactor}\n callControls={options?.callControls}\n joinInvitationURL={joinInvitationURL}\n fluentTheme={fluentTheme}\n /* @conditional-compile-remove(file-sharing) */\n fileSharing={options?.fileSharing}\n />\n </BaseProvider>\n );\n};\n\nconst hasJoinedCallFn = (page: CallCompositePage, callStatus: CallState): boolean => {\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */\n return (\n (page === 'call' &&\n (callStatus === 'Connected' || callStatus === 'RemoteHold' || callStatus === 'Disconnecting')) ||\n (page === 'hold' && (callStatus === 'LocalHold' || callStatus === 'Disconnecting'))\n );\n return page === 'call' && (callStatus === 'Connected' || callStatus === 'Disconnecting');\n};\n\nconst checkShowChatButton = (callControls?: boolean | CallWithChatControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.chatButton !== false;\n};\n\nconst checkChatButtonIsDisabled = (callControls?: boolean | CallWithChatControlOptions): boolean => {\n return typeof callControls === 'object' && isDisabled(callControls?.chatButton);\n};\n\nconst isOnHoldTrampoline = (page: CallCompositePage | undefined): boolean => {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return page === 'hold';\n return false;\n};\n\"../../../../react-components/src\""]}
1
+ {"version":3,"file":"CallWithChatComposite.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useCallback, useState, useMemo, useEffect, useRef } from 'react';\nimport { mergeStyles, PartialTheme, Stack, Theme } from '@fluentui/react';\nimport { CallCompositePage } from '../CallComposite';\nimport { CallState } from '@azure/communication-calling';\nimport { callCompositeContainerStyles, compositeOuterContainerStyles } from './styles/CallWithChatCompositeStyles';\nimport { CallWithChatAdapter } from './adapter/CallWithChatAdapter';\nimport { CallWithChatBackedCallAdapter } from './adapter/CallWithChatBackedCallAdapter';\nimport { CallWithChatBackedChatAdapter } from './adapter/CallWithChatBackedChatAdapter';\nimport { CallAdapter } from '../CallComposite';\nimport { ChatComposite, ChatCompositeProps } from '../ChatComposite';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallWithChatCompositeIcons } from '../common/icons';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { CallWithChatAdapterState } from './state/CallWithChatAdapterState';\nimport { ParticipantMenuItemsCallback, _useContainerHeight, _useContainerWidth, useTheme } from '@internal/react-components';\nimport { useId } from '@fluentui/react-hooks';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileSharingOptions } from '../ChatComposite';\nimport { containerDivStyles } from '../common/ContainerRectProps';\nimport { useCallWithChatCompositeStrings } from './hooks/useCallWithChatCompositeStrings';\nimport { CallCompositeInner, CallCompositeOptions } from '../CallComposite/CallComposite';\n/* @conditional-compile-remove(call-readiness) */\nimport { DeviceCheckOptions } from '../CallComposite/CallComposite';\nimport { CommonCallControlOptions, CustomCallControlButtonCallbackArgs, _CommonCallControlOptions } from '../common/types/CommonCallControlOptions';\nimport { ChatButtonWithUnreadMessagesBadge } from './ChatButton/ChatButtonWithUnreadMessagesBadge';\nimport { getDesktopCommonButtonStyles } from '../common/ControlBar/CommonCallControlBar';\nimport { InjectedSidePaneProps } from '../CallComposite/components/SidePane/SidePaneProvider';\nimport { isDisabled } from '../CallComposite/utils';\nimport { CustomCallControlButtonCallback } from '../common/ControlBar/CustomButton';\nimport { SidePaneHeader } from '../common/SidePaneHeader';\nimport { _CallControlOptions } from '../CallComposite/types/CallControlOptions';\nimport { useUnreadMessagesTracker } from './ChatButton/useUnreadMessagesTracker';\n\n/**\n * Props required for the {@link CallWithChatComposite}\n *\n * @public\n */\nexport interface CallWithChatCompositeProps extends BaseCompositeProps<CallWithChatCompositeIcons> {\n adapter: CallWithChatAdapter;\n /**\n * Fluent theme for the composite.\n *\n * Defaults to a light theme if undefined.\n */\n fluentTheme?: PartialTheme | Theme;\n /**\n * Optimizes the composite form factor for either desktop or mobile.\n * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.\n * @defaultValue 'desktop'\n */\n formFactor?: 'desktop' | 'mobile';\n /**\n * URL that can be used to copy a call-with-chat invite to the Users clipboard.\n */\n joinInvitationURL?: string;\n /**\n * Flags to enable/disable or customize UI elements of the {@link CallWithChatComposite}\n */\n options?: CallWithChatCompositeOptions;\n}\n\n/**\n * Customization options for the control bar in calling with chat experience.\n *\n * @public\n */\nexport interface CallWithChatControlOptions extends CommonCallControlOptions {\n /**\n * Show or hide the chat button in the call-with-chat composite control bar.\n * @defaultValue true\n */\n chatButton?: boolean | /* @conditional-compile-remove(PSTN-calls) */{\n disabled: boolean;\n };\n}\n\n/**\n * Optional features of the {@link CallWithChatComposite}.\n *\n * @public\n */\nexport type CallWithChatCompositeOptions = {\n /**\n * Call control options to change what buttons show on the call-with-chat composite control bar.\n * If using the boolean values, true will cause default behavior across the whole control bar. False hides the whole control bar.\n */\n callControls?: boolean | CallWithChatControlOptions;\n /* @conditional-compile-remove(file-sharing) */\n /**\n * Properties for configuring the File Sharing feature.\n * If undefined, file sharing feature will be disabled.\n * @beta\n */\n fileSharing?: FileSharingOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Device permissions check options for your call.\n * Here you can choose what device permissions you prompt the user for,\n * as well as what device permissions must be accepted before starting a call.\n */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * unable to grant your site the required permissions for the call.\n *\n * @example\n * ```ts\n * onPermissionsTroubleshootingClick: () =>\n * window.open('https://contoso.com/permissions-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'further troubleshooting' link.\n */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Optional callback to supply users with further troubleshooting steps for network issues\n * experienced when connecting to a call.\n *\n * @example\n * ```ts\n * onNetworkingTroubleShootingClick?: () =>\n * window.open('https://contoso.com/network-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'network troubleshooting' link.\n */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n /**\n * Callback you may provide to supply users with a provided page to showcase supported browsers by ACS.\n *\n * @example\n * ```ts\n * onBrowserTroubleShootingClick?: () =>\n * window.open('https://contoso.com/browser-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a unsupported browser page.\n */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n};\ntype CallWithChatScreenProps = {\n callWithChatAdapter: CallWithChatAdapter;\n fluentTheme?: PartialTheme | Theme;\n formFactor?: 'desktop' | 'mobile';\n joinInvitationURL?: string;\n callControls?: boolean | CallWithChatControlOptions;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n /* @conditional-compile-remove(file-sharing) */\n fileSharing?: FileSharingOptions;\n rtl?: boolean;\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n};\nconst CallWithChatScreen = (props: CallWithChatScreenProps): JSX.Element => {\n const {\n callWithChatAdapter,\n fluentTheme,\n formFactor = 'desktop'\n } = props;\n const mobileView = formFactor === 'mobile';\n if (!callWithChatAdapter) {\n throw new Error('CallWithChatAdapter is undefined');\n }\n const callAdapter: CallAdapter = useMemo(() => new CallWithChatBackedCallAdapter(callWithChatAdapter), [callWithChatAdapter]);\n const [currentCallState, setCurrentCallState] = useState<CallState>();\n const [currentPage, setCurrentPage] = useState<CallCompositePage>();\n const [isChatOpen, setIsChatOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n const updateCallWithChatPage = (newState: CallWithChatAdapterState): void => {\n setCurrentPage(newState.page);\n setCurrentCallState(newState.call?.state);\n };\n updateCallWithChatPage(callWithChatAdapter.getState());\n callWithChatAdapter.onStateChange(updateCallWithChatPage);\n return () => {\n callWithChatAdapter.offStateChange(updateCallWithChatPage);\n };\n }, [callWithChatAdapter]);\n const chatProps: ChatCompositeProps = useMemo(() => {\n return {\n adapter: new CallWithChatBackedChatAdapter(callWithChatAdapter)\n };\n }, [callWithChatAdapter]);\n\n /** Constant setting of id for the parent stack of the composite */\n const compositeParentDivId = useId('callWithChatCompositeParentDiv-internal');\n const closeChat = useCallback(() => {\n setIsChatOpen(false);\n }, []);\n const openChat = useCallback(() => {\n setIsChatOpen(true);\n // timeout is required to give the window time to render the sendbox so we have something to send focus to.\n // TODO: Selecting elements in the DOM via attributes is not stable. We should expose an API from ChatComposite to be able to focus on the sendbox.\n const chatFocusTimeout = setInterval(() => {\n const callWithChatCompositeRootDiv = document.querySelector(`[id=\"${compositeParentDivId}\"]`);\n const sendbox = (callWithChatCompositeRootDiv?.querySelector(`[id=\"sendbox\"]`) as HTMLTextAreaElement);\n if (sendbox !== null) {\n sendbox.focus();\n clearInterval(chatFocusTimeout);\n }\n }, 3);\n setTimeout(() => {\n clearInterval(chatFocusTimeout);\n }, 300);\n }, [compositeParentDivId]);\n const isOnHold = isOnHoldTrampoline(currentPage);\n useEffect(() => {\n if (isOnHold) {\n closeChat();\n }\n }, [closeChat, isOnHold]);\n const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState ?? 'None'));\n const toggleChat = useCallback(() => {\n isChatOpen || !hasJoinedCall ? closeChat() : openChat();\n }, [closeChat, hasJoinedCall, isChatOpen, openChat]);\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const chatButtonStrings = useMemo(() => ({\n label: callWithChatStrings.chatButtonLabel,\n tooltipOffContent: callWithChatStrings.chatButtonTooltipOpen,\n tooltipOnContent: callWithChatStrings.chatButtonTooltipClose\n }), [callWithChatStrings]);\n const theme = useTheme();\n const commonButtonStyles = useMemo(() => !mobileView ? getDesktopCommonButtonStyles(theme) : undefined, [mobileView, theme]);\n const showChatButton = checkShowChatButton(props.callControls);\n const chatButtonDisabled = showChatButton && (checkChatButtonIsDisabled(props.callControls) || !hasJoinedCall || isOnHold);\n const chatTabHeaderProps = useMemo(() => mobileView && showChatButton ? {\n onClick: toggleChat,\n disabled: chatButtonDisabled\n } : undefined, [chatButtonDisabled, mobileView, toggleChat, showChatButton]);\n const unreadChatMessagesCount = useUnreadMessagesTracker(chatProps.adapter, isChatOpen);\n const customChatButton: CustomCallControlButtonCallback = useCallback((args: CustomCallControlButtonCallbackArgs) => ({\n placement: mobileView ? 'primary' : 'secondary',\n onRenderButton: () => <ChatButtonWithUnreadMessagesBadge checked={isChatOpen} showLabel={args.displayType !== 'compact'} onClick={toggleChat} disabled={chatButtonDisabled} strings={chatButtonStrings} styles={commonButtonStyles} newMessageLabel={callWithChatStrings.chatButtonNewMessageNotificationLabel} unreadChatMessagesCount={unreadChatMessagesCount}\n // As chat is disabled when on hold, we don't want to show the unread badge when on hold\n hideUnreadChatMessagesBadge={isOnHold} />\n }), [callWithChatStrings.chatButtonNewMessageNotificationLabel, chatButtonStrings, commonButtonStyles, isChatOpen, chatButtonDisabled, mobileView, toggleChat, unreadChatMessagesCount, isOnHold]);\n const callControlOptionsFromProps = useMemo(() => ({\n ...(typeof props.callControls === 'object' ? props.callControls : {})\n }), [props.callControls]);\n const injectedCustomButtonsFromProps = useMemo(() => {\n /* @conditional-compile-remove(control-bar-button-injection) */\n return [...(callControlOptionsFromProps.onFetchCustomButtonProps ?? [])];\n return [];\n }, [callControlOptionsFromProps]);\n const callCompositeOptions: CallCompositeOptions = useMemo(() => ({\n callControls: props.callControls === false ? false : ({\n ...callControlOptionsFromProps,\n onFetchCustomButtonProps: [...(showChatButton ? [customChatButton] : []), /* @conditional-compile-remove(control-bar-button-injection) */\n ...injectedCustomButtonsFromProps],\n legacyControlBarExperience: false\n } as _CallControlOptions),\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks: props.deviceChecks,\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick: props.onNetworkingTroubleShootingClick,\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick: props.onPermissionsTroubleshootingClick,\n /* @conditional-compile-remove(unsupported-browser) */\n onEnvironmentInfoTroubleshootingClick: props.onEnvironmentInfoTroubleshootingClick\n }), [props.callControls, callControlOptionsFromProps, showChatButton, customChatButton, injectedCustomButtonsFromProps, /* @conditional-compile-remove(call-readiness) */\n props.deviceChecks, /* @conditional-compile-remove(unsupported-browser) */\n props.onEnvironmentInfoTroubleshootingClick, /* @conditional-compile-remove(call-readiness) */\n props.onNetworkingTroubleShootingClick, /* @conditional-compile-remove(call-readiness) */\n props.onPermissionsTroubleshootingClick]);\n const onRenderChatContent = useCallback((): JSX.Element => <ChatComposite {...chatProps} fluentTheme={theme} options={{\n topic: false,\n /* @conditional-compile-remove(chat-composite-participant-pane) */\n participantPane: false,\n /* @conditional-compile-remove(file-sharing) */\n fileSharing: props.fileSharing\n }} onFetchAvatarPersonaData={props.onFetchAvatarPersonaData} />, [chatProps, /* @conditional-compile-remove(file-sharing) */props.fileSharing, props.onFetchAvatarPersonaData, theme]);\n const sidePaneHeaderRenderer = useCallback(() => <SidePaneHeader headingText={callWithChatStrings.chatPaneTitle} onClose={closeChat} dismissSidePaneButtonAriaLabel={callWithChatStrings.dismissSidePaneButtonLabel ?? ''} mobileView={mobileView} />, [callWithChatStrings.chatPaneTitle, callWithChatStrings.dismissSidePaneButtonLabel, closeChat, mobileView]);\n const sidePaneContentRenderer = useMemo(() => hasJoinedCall ? onRenderChatContent : undefined, [hasJoinedCall, onRenderChatContent]);\n const sidePaneRenderer = useMemo(() => ({\n contentRenderer: sidePaneContentRenderer,\n headerRenderer: sidePaneHeaderRenderer,\n id: 'chat'\n }), [sidePaneContentRenderer, sidePaneHeaderRenderer]);\n const overrideSidePaneProps: InjectedSidePaneProps = useMemo(() => ({\n renderer: sidePaneRenderer,\n isActive: isChatOpen,\n persistRenderingWhenClosed: true\n }), [isChatOpen, sidePaneRenderer]);\n const onSidePaneIdChange = useCallback(sidePaneId => {\n // If the pane is switched to something other than chat, removing rendering chat.\n if (sidePaneId && sidePaneId !== 'chat') {\n closeChat();\n }\n }, [closeChat]);\n return <div ref={containerRef} className={mergeStyles(containerDivStyles)}>\n <Stack verticalFill grow styles={compositeOuterContainerStyles} id={compositeParentDivId}>\n <Stack horizontal grow>\n <Stack.Item grow styles={callCompositeContainerStyles(mobileView)}>\n <CallCompositeInner {...props} formFactor={formFactor} options={callCompositeOptions} adapter={callAdapter} fluentTheme={fluentTheme} callInvitationUrl={props.joinInvitationURL} overrideSidePane={overrideSidePaneProps} onSidePaneIdChange={onSidePaneIdChange} mobileChatTabHeader={chatTabHeaderProps} />\n </Stack.Item>\n </Stack>\n </Stack>\n </div>;\n};\n\n/**\n * CallWithChatComposite brings together key components to provide a full call with chat experience out of the box.\n *\n * @public\n */\nexport const CallWithChatComposite = (props: CallWithChatCompositeProps): JSX.Element => {\n const {\n adapter,\n fluentTheme,\n rtl,\n formFactor,\n joinInvitationURL,\n options\n } = props;\n return <BaseProvider fluentTheme={fluentTheme} rtl={rtl} locale={props.locale} icons={props.icons}>\n <CallWithChatScreen {...props}\n /* @conditional-compile-remove(call-readiness) */ deviceChecks={options?.deviceChecks} callWithChatAdapter={adapter} formFactor={formFactor} callControls={options?.callControls} joinInvitationURL={joinInvitationURL} fluentTheme={fluentTheme}\n /* @conditional-compile-remove(file-sharing) */ fileSharing={options?.fileSharing} />\n </BaseProvider>;\n};\nconst hasJoinedCallFn = (page: CallCompositePage, callStatus: CallState): boolean => {\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */\n return page === 'call' && (callStatus === 'Connected' || callStatus === 'RemoteHold' || callStatus === 'Disconnecting') || page === 'hold' && (callStatus === 'LocalHold' || callStatus === 'Disconnecting');\n return page === 'call' && (callStatus === 'Connected' || callStatus === 'Disconnecting');\n};\nconst checkShowChatButton = (callControls?: boolean | CallWithChatControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.chatButton !== false;\n};\nconst checkChatButtonIsDisabled = (callControls?: boolean | CallWithChatControlOptions): boolean => {\n return typeof callControls === 'object' && isDisabled(callControls?.chatButton);\n};\nconst isOnHoldTrampoline = (page: CallCompositePage | undefined): boolean => {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return page === 'hold';\n return false;\n};\"../../../../react-components/src\""]}
@@ -17,6 +17,6 @@ export const ChatButton = (props) => {
17
17
  }
18
18
  }, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
19
19
  }, [props.styles, theme.palette.neutralLight]);
20
- return (React.createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'chatButtonLabelKey', strings: strings, onClick: props.onClick, styles: styles })));
20
+ return React.createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'chatButtonLabelKey', strings: strings, onClick: props.onClick, styles: styles }));
21
21
  };
22
22
  //# sourceMappingURL=ChatButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatButton.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAiD,QAAQ,EAAE,4CAAmC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAe,EAAE;IACtE,MAAM,OAAO,mBAAK,KAAK,EAAE,KAAK,CAAC,KAAK,IAAK,KAAK,CAAC,OAAO,CAAE,CAAC;IACzD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAA2B,OAAO,CAC5C,GAAG,EAAE;;QACH,OAAA,eAAe,CACb;YACE,WAAW,EAAE;gBACX,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;aACvC;SACF,EACD,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CACnB,CAAA;KAAA,EACH,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAC3C,CAAC;IACF,OAAO,CACL,oBAAC,gBAAgB,oBACX,KAAK,IACT,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,MAAM,EAAE,MAAM,IACd,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo } from 'react';\nimport { ControlBarButton, ControlBarButtonProps, ControlBarButtonStyles, useTheme } from '@internal/react-components';\nimport { concatStyleSets } from '@fluentui/react';\n\n/**\n * @private\n */\nexport const ChatButton = (props: ControlBarButtonProps): JSX.Element => {\n const strings = { label: props.label, ...props.strings };\n const theme = useTheme();\n const styles: ControlBarButtonStyles = useMemo(\n () =>\n concatStyleSets(\n {\n rootChecked: {\n background: theme.palette.neutralLight\n }\n },\n props.styles ?? {}\n ),\n [props.styles, theme.palette.neutralLight]\n );\n return (\n <ControlBarButton\n {...props}\n labelKey={'chatButtonLabelKey'}\n strings={strings}\n onClick={props.onClick}\n styles={styles}\n />\n );\n};\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"ChatButton.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAiD,QAAQ,EAAE,4CAAmC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAe,EAAE;IACtE,MAAM,OAAO,mBACX,KAAK,EAAE,KAAK,CAAC,KAAK,IACf,KAAK,CAAC,OAAO,CACjB,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAA2B,OAAO,CAAC,GAAG,EAAE;;QAAC,OAAA,eAAe,CAAC;YACnE,WAAW,EAAE;gBACX,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;aACvC;SACF,EAAE,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAA;KAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,OAAO,oBAAC,gBAAgB,oBAAK,KAAK,IAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACnI,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo } from 'react';\nimport { ControlBarButton, ControlBarButtonProps, ControlBarButtonStyles, useTheme } from '@internal/react-components';\nimport { concatStyleSets } from '@fluentui/react';\n\n/**\n * @private\n */\nexport const ChatButton = (props: ControlBarButtonProps): JSX.Element => {\n const strings = {\n label: props.label,\n ...props.strings\n };\n const theme = useTheme();\n const styles: ControlBarButtonStyles = useMemo(() => concatStyleSets({\n rootChecked: {\n background: theme.palette.neutralLight\n }\n }, props.styles ?? {}), [props.styles, theme.palette.neutralLight]);\n return <ControlBarButton {...props} labelKey={'chatButtonLabelKey'} strings={strings} onClick={props.onClick} styles={styles} />;\n};\"../../../../../react-components/src\""]}
@@ -17,11 +17,9 @@ export const ChatButtonWithUnreadMessagesBadge = (props) => {
17
17
  const { newMessageLabel, unreadChatMessagesCount, hideUnreadChatMessagesBadge } = props;
18
18
  const baseIcon = props.showLabel ? regularIcon : filledIcon;
19
19
  const callWithChatStrings = useCallWithChatCompositeStrings();
20
- const numberOfMsgToolTip = ((_a = props.strings) === null || _a === void 0 ? void 0 : _a.tooltipOffContent) && unreadChatMessagesCount > 0
21
- ? _formatString(callWithChatStrings.chatButtonTooltipClosedWithMessageCount, {
22
- unreadMessagesCount: `${unreadChatMessagesCount}`
23
- })
24
- : undefined;
20
+ const numberOfMsgToolTip = ((_a = props.strings) === null || _a === void 0 ? void 0 : _a.tooltipOffContent) && unreadChatMessagesCount > 0 ? _formatString(callWithChatStrings.chatButtonTooltipClosedWithMessageCount, {
21
+ unreadMessagesCount: `${unreadChatMessagesCount}`
22
+ }) : undefined;
25
23
  const chatStrings = useMemo(() => {
26
24
  var _a, _b, _c;
27
25
  return ({
@@ -32,11 +30,11 @@ export const ChatButtonWithUnreadMessagesBadge = (props) => {
32
30
  }, [numberOfMsgToolTip, (_b = props.strings) === null || _b === void 0 ? void 0 : _b.label, (_c = props.strings) === null || _c === void 0 ? void 0 : _c.tooltipOffContent, (_d = props.strings) === null || _d === void 0 ? void 0 : _d.tooltipOnContent]);
33
31
  const onRenderOnIcon = useCallback(() => baseIcon, [baseIcon]);
34
32
  const notificationOnIcon = useCallback(() => {
35
- return (React.createElement(Stack, { styles: chatNotificationContainerStyles },
36
- unreadChatMessagesCount > 0 && !hideUnreadChatMessagesBadge && (React.createElement(NotificationIcon, { chatMessagesCount: unreadChatMessagesCount, label: newMessageLabel })),
37
- baseIcon));
33
+ return React.createElement(Stack, { styles: chatNotificationContainerStyles },
34
+ unreadChatMessagesCount > 0 && !hideUnreadChatMessagesBadge && React.createElement(NotificationIcon, { chatMessagesCount: unreadChatMessagesCount, label: newMessageLabel }),
35
+ baseIcon);
38
36
  }, [unreadChatMessagesCount, newMessageLabel, baseIcon, hideUnreadChatMessagesBadge]);
39
- return (React.createElement(ChatButton, Object.assign({}, props, { "data-ui-id": "call-with-chat-composite-chat-button", onRenderOffIcon: notificationOnIcon, onRenderOnIcon: onRenderOnIcon, strings: chatStrings })));
37
+ return React.createElement(ChatButton, Object.assign({}, props, { "data-ui-id": "call-with-chat-composite-chat-button", onRenderOffIcon: notificationOnIcon, onRenderOnIcon: onRenderOnIcon, strings: chatStrings }));
40
38
  };
41
39
  const chatNotificationContainerStyles = {
42
40
  root: {
@@ -1 +1 @@
1
- {"version":3,"file":"ChatButtonWithUnreadMessagesBadge.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAgB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,UAAU,GAAG,oBAAC,yBAAyB,IAAC,QAAQ,EAAE,4BAA4B,GAAI,CAAC;AACzF,MAAM,WAAW,GAAG,oBAAC,yBAAyB,IAAC,QAAQ,EAAE,8BAA8B,GAAI,CAAC;AAE5F;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAA6C,EAAe,EAAE;;IAC9G,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,GAAG,KAAK,CAAC;IAExF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5D,MAAM,mBAAmB,GAAG,+BAA+B,EAAE,CAAC;IAE9D,MAAM,kBAAkB,GACtB,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB,KAAI,uBAAuB,GAAG,CAAC;QAC7D,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,uCAAuC,EAAE;YACzE,mBAAmB,EAAE,GAAG,uBAAuB,EAAE;SAClD,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE;;QAAC,OAAA,CAAC;YACL,KAAK,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK;YAC3B,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB;YAC7F,gBAAgB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,gBAAgB;SAClD,CAAC,CAAA;KAAA,EACF,CAAC,kBAAkB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,gBAAgB,CAAC,CAC9G,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAgB,EAAE;QACvD,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,+BAA+B;YAC3C,uBAAuB,GAAG,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAC9D,oBAAC,gBAAgB,IAAC,iBAAiB,EAAE,uBAAuB,EAAE,KAAK,EAAE,eAAe,GAAI,CACzF;YACA,QAAQ,CACH,CACT,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEtF,OAAO,CACL,oBAAC,UAAU,oBACL,KAAK,kBACE,sCAAsC,EACjD,eAAe,EAAE,kBAAkB,EACnC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,WAAW,IACpB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,+BAA+B,GAAiB;IACpD,IAAI,EAAE;QACJ,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IStackStyles, Stack } from '@fluentui/react';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { ControlBarButtonProps } from '@internal/react-components';\nimport React, { useCallback, useMemo } from 'react';\nimport { CallWithChatCompositeIcon } from '../../common/icons';\nimport { ChatButton } from './ChatButton';\nimport { useCallWithChatCompositeStrings } from '../hooks/useCallWithChatCompositeStrings';\nimport { NotificationIcon } from './NotificationIcon';\n\n/**\n * @private\n */\nexport interface ChatButtonWithUnreadMessagesBadgeProps extends ControlBarButtonProps {\n unreadChatMessagesCount: number;\n hideUnreadChatMessagesBadge?: boolean;\n newMessageLabel: string;\n}\n\nconst filledIcon = <CallWithChatCompositeIcon iconName={'ControlBarChatButtonActive'} />;\nconst regularIcon = <CallWithChatCompositeIcon iconName={'ControlBarChatButtonInactive'} />;\n\n/**\n * @private\n */\nexport const ChatButtonWithUnreadMessagesBadge = (props: ChatButtonWithUnreadMessagesBadgeProps): JSX.Element => {\n const { newMessageLabel, unreadChatMessagesCount, hideUnreadChatMessagesBadge } = props;\n\n const baseIcon = props.showLabel ? regularIcon : filledIcon;\n const callWithChatStrings = useCallWithChatCompositeStrings();\n\n const numberOfMsgToolTip =\n props.strings?.tooltipOffContent && unreadChatMessagesCount > 0\n ? _formatString(callWithChatStrings.chatButtonTooltipClosedWithMessageCount, {\n unreadMessagesCount: `${unreadChatMessagesCount}`\n })\n : undefined;\n\n const chatStrings = useMemo(\n () => ({\n label: props.strings?.label,\n tooltipOffContent: numberOfMsgToolTip ? numberOfMsgToolTip : props.strings?.tooltipOffContent,\n tooltipOnContent: props.strings?.tooltipOnContent\n }),\n [numberOfMsgToolTip, props.strings?.label, props.strings?.tooltipOffContent, props.strings?.tooltipOnContent]\n );\n const onRenderOnIcon = useCallback(() => baseIcon, [baseIcon]);\n const notificationOnIcon = useCallback((): JSX.Element => {\n return (\n <Stack styles={chatNotificationContainerStyles}>\n {unreadChatMessagesCount > 0 && !hideUnreadChatMessagesBadge && (\n <NotificationIcon chatMessagesCount={unreadChatMessagesCount} label={newMessageLabel} />\n )}\n {baseIcon}\n </Stack>\n );\n }, [unreadChatMessagesCount, newMessageLabel, baseIcon, hideUnreadChatMessagesBadge]);\n\n return (\n <ChatButton\n {...props}\n data-ui-id=\"call-with-chat-composite-chat-button\"\n onRenderOffIcon={notificationOnIcon}\n onRenderOnIcon={onRenderOnIcon}\n strings={chatStrings}\n />\n );\n};\n\nconst chatNotificationContainerStyles: IStackStyles = {\n root: {\n display: 'inline',\n position: 'relative'\n }\n};\n\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"ChatButtonWithUnreadMessagesBadge.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAgB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAUtD,MAAM,UAAU,GAAG,oBAAC,yBAAyB,IAAC,QAAQ,EAAE,4BAA4B,GAAI,CAAC;AACzF,MAAM,WAAW,GAAG,oBAAC,yBAAyB,IAAC,QAAQ,EAAE,8BAA8B,GAAI,CAAC;AAE5F;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAA6C,EAAe,EAAE;;IAC9G,MAAM,EACJ,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC5B,GAAG,KAAK,CAAC;IACV,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5D,MAAM,mBAAmB,GAAG,+BAA+B,EAAE,CAAC;IAC9D,MAAM,kBAAkB,GAAG,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB,KAAI,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,uCAAuC,EAAE;QACtK,mBAAmB,EAAE,GAAG,uBAAuB,EAAE;KAClD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACf,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;;QAAC,OAAA,CAAC;YACjC,KAAK,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK;YAC3B,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB;YAC7F,gBAAgB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,gBAAgB;SAClD,CAAC,CAAA;KAAA,EAAE,CAAC,kBAAkB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,iBAAiB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,gBAAgB,CAAC,CAAC,CAAC;IACnH,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAgB,EAAE;QACvD,OAAO,oBAAC,KAAK,IAAC,MAAM,EAAE,+BAA+B;YAChD,uBAAuB,GAAG,CAAC,IAAI,CAAC,2BAA2B,IAAI,oBAAC,gBAAgB,IAAC,iBAAiB,EAAE,uBAAuB,EAAE,KAAK,EAAE,eAAe,GAAI;YACvJ,QAAQ,CACH,CAAC;IACb,CAAC,EAAE,CAAC,uBAAuB,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACtF,OAAO,oBAAC,UAAU,oBAAK,KAAK,kBAAa,sCAAsC,EAAC,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;AAChL,CAAC,CAAC;AACF,MAAM,+BAA+B,GAAiB;IACpD,IAAI,EAAE;QACJ,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IStackStyles, Stack } from '@fluentui/react';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { ControlBarButtonProps } from '@internal/react-components';\nimport React, { useCallback, useMemo } from 'react';\nimport { CallWithChatCompositeIcon } from '../../common/icons';\nimport { ChatButton } from './ChatButton';\nimport { useCallWithChatCompositeStrings } from '../hooks/useCallWithChatCompositeStrings';\nimport { NotificationIcon } from './NotificationIcon';\n\n/**\n * @private\n */\nexport interface ChatButtonWithUnreadMessagesBadgeProps extends ControlBarButtonProps {\n unreadChatMessagesCount: number;\n hideUnreadChatMessagesBadge?: boolean;\n newMessageLabel: string;\n}\nconst filledIcon = <CallWithChatCompositeIcon iconName={'ControlBarChatButtonActive'} />;\nconst regularIcon = <CallWithChatCompositeIcon iconName={'ControlBarChatButtonInactive'} />;\n\n/**\n * @private\n */\nexport const ChatButtonWithUnreadMessagesBadge = (props: ChatButtonWithUnreadMessagesBadgeProps): JSX.Element => {\n const {\n newMessageLabel,\n unreadChatMessagesCount,\n hideUnreadChatMessagesBadge\n } = props;\n const baseIcon = props.showLabel ? regularIcon : filledIcon;\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const numberOfMsgToolTip = props.strings?.tooltipOffContent && unreadChatMessagesCount > 0 ? _formatString(callWithChatStrings.chatButtonTooltipClosedWithMessageCount, {\n unreadMessagesCount: `${unreadChatMessagesCount}`\n }) : undefined;\n const chatStrings = useMemo(() => ({\n label: props.strings?.label,\n tooltipOffContent: numberOfMsgToolTip ? numberOfMsgToolTip : props.strings?.tooltipOffContent,\n tooltipOnContent: props.strings?.tooltipOnContent\n }), [numberOfMsgToolTip, props.strings?.label, props.strings?.tooltipOffContent, props.strings?.tooltipOnContent]);\n const onRenderOnIcon = useCallback(() => baseIcon, [baseIcon]);\n const notificationOnIcon = useCallback((): JSX.Element => {\n return <Stack styles={chatNotificationContainerStyles}>\n {unreadChatMessagesCount > 0 && !hideUnreadChatMessagesBadge && <NotificationIcon chatMessagesCount={unreadChatMessagesCount} label={newMessageLabel} />}\n {baseIcon}\n </Stack>;\n }, [unreadChatMessagesCount, newMessageLabel, baseIcon, hideUnreadChatMessagesBadge]);\n return <ChatButton {...props} data-ui-id=\"call-with-chat-composite-chat-button\" onRenderOffIcon={notificationOnIcon} onRenderOnIcon={onRenderOnIcon} strings={chatStrings} />;\n};\nconst chatNotificationContainerStyles: IStackStyles = {\n root: {\n display: 'inline',\n position: 'relative'\n }\n};\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
@@ -14,21 +14,24 @@ export const NotificationIcon = (props) => {
14
14
  }
15
15
  else {
16
16
  const textNumberOfMessages = numberOfMessages < 9 ? numberOfMessages : '9+';
17
- return (React.createElement(Text, { role: 'status', "aria-label": textNumberOfMessages + label, styles: notificationTextStyles(theme) }, textNumberOfMessages));
17
+ return React.createElement(Text, { role: 'status', "aria-label": textNumberOfMessages + label, styles: notificationTextStyles(theme) }, textNumberOfMessages);
18
18
  }
19
19
  };
20
- return (React.createElement(Stack, { "data-ui-id": "call-with-chat-composite-chat-button-unread-icon", horizontalAlign: "center", verticalAlign: "center", styles: notificationIconContainerStyles(theme) },
21
- React.createElement(Stack, null, renderNumber(chatMessagesCount))));
20
+ return React.createElement(Stack, { "data-ui-id": "call-with-chat-composite-chat-button-unread-icon", horizontalAlign: "center", verticalAlign: "center", styles: notificationIconContainerStyles(theme) },
21
+ React.createElement(Stack, null, renderNumber(chatMessagesCount)));
22
22
  };
23
23
  const notificationIconPaddingREM = 0.225;
24
24
  const notificationSizeREM = 1;
25
25
  const notificationIconContainerStyles = memoizeFunction((theme) => ({
26
26
  root: {
27
27
  borderRadius: `${notificationSizeREM}rem`,
28
+ // Create a css circle. This should match the height.
28
29
  height: `${notificationSizeREM}rem`,
29
30
  minWidth: `${notificationSizeREM}rem`,
31
+ // use min-width over width as we want to extend the width of the notification icon when contents is more than one character (e.g. 9+)
30
32
  background: theme.palette.themePrimary,
31
33
  border: `0.0625rem solid white`,
34
+ // border should always be white
32
35
  padding: `${notificationIconPaddingREM}rem`,
33
36
  // positioning to place the badge within the button appropriately.
34
37
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationIcon.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAqC,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAS5G;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAe,EAAE;IAC5E,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAe,EAAE;QACrD,IAAI,gBAAgB,GAAG,CAAC,EAAE;YACxB,OAAO,yCAAK,CAAC;SACd;aAAM;YACL,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,OAAO,CACL,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,gBAAc,oBAAoB,GAAG,KAAK,EAAE,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAClG,oBAAoB,CAChB,CACR,CAAC;SACH;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,KAAK,kBACO,kDAAkD,EAC7D,eAAe,EAAC,QAAQ,EACxB,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC;QAE9C,oBAAC,KAAK,QAAE,YAAY,CAAC,iBAAiB,CAAC,CAAS,CAC1C,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,+BAA+B,GAAG,eAAe,CACrD,CAAC,KAAa,EAAe,EAAE,CAAC,CAAC;IAC/B,IAAI,EAAE;QACJ,YAAY,EAAE,GAAG,mBAAmB,KAAK;QACzC,MAAM,EAAE,GAAG,mBAAmB,KAAK;QACnC,QAAQ,EAAE,GAAG,mBAAmB,KAAK;QACrC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;QACtC,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,GAAG,0BAA0B,KAAK;QAE3C,kEAAkE;QAClE,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,IAAI,GAAG,GAAG,0BAA0B,GAAG,CAAC,KAAK;QAClD,IAAI,EAAE,GAAG,GAAG,GAAG,0BAA0B,GAAG,CAAC,KAAK;KACnD;CACF,CAAC,CACH,CAAC;AAEF,MAAM,sBAAsB,GAAG,eAAe,CAC5C,CAAC,KAAa,EAAgB,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;KACtC;CACF,CAAC,CACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React from 'react';\nimport { IIconStyles, IStackStyles, ITheme, memoizeFunction, Stack, useTheme, Text } from '@fluentui/react';\n\n/**\n * @private\n */\nexport type NotificationIconProps = {\n chatMessagesCount: number;\n label?: string;\n};\n/**\n * @private\n */\nexport const NotificationIcon = (props: NotificationIconProps): JSX.Element => {\n const { chatMessagesCount, label } = props;\n const theme = useTheme();\n const renderNumber = (numberOfMessages): JSX.Element => {\n if (numberOfMessages < 1) {\n return <></>;\n } else {\n const textNumberOfMessages = numberOfMessages < 9 ? numberOfMessages : '9+';\n return (\n <Text role={'status'} aria-label={textNumberOfMessages + label} styles={notificationTextStyles(theme)}>\n {textNumberOfMessages}\n </Text>\n );\n }\n };\n\n return (\n <Stack\n data-ui-id=\"call-with-chat-composite-chat-button-unread-icon\"\n horizontalAlign=\"center\"\n verticalAlign=\"center\"\n styles={notificationIconContainerStyles(theme)}\n >\n <Stack>{renderNumber(chatMessagesCount)}</Stack>\n </Stack>\n );\n};\n\nconst notificationIconPaddingREM = 0.225;\nconst notificationSizeREM = 1;\n\nconst notificationIconContainerStyles = memoizeFunction(\n (theme: ITheme): IIconStyles => ({\n root: {\n borderRadius: `${notificationSizeREM}rem`, // Create a css circle. This should match the height.\n height: `${notificationSizeREM}rem`,\n minWidth: `${notificationSizeREM}rem`, // use min-width over width as we want to extend the width of the notification icon when contents is more than one character (e.g. 9+)\n background: theme.palette.themePrimary,\n border: `0.0625rem solid white`, // border should always be white\n padding: `${notificationIconPaddingREM}rem`,\n\n // positioning to place the badge within the button appropriately.\n position: 'absolute',\n top: `-${0.5 - notificationIconPaddingREM / 2}rem`,\n left: `${0.5 + notificationIconPaddingREM / 2}rem`\n }\n })\n);\n\nconst notificationTextStyles = memoizeFunction(\n (theme: ITheme): IStackStyles => ({\n root: {\n color: 'white',\n fontSize: theme.fonts.xSmall.fontSize\n }\n })\n);\n"]}
1
+ {"version":3,"file":"NotificationIcon.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAqC,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAS5G;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAe,EAAE;IAC5E,MAAM,EACJ,iBAAiB,EACjB,KAAK,EACN,GAAG,KAAK,CAAC;IACV,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAe,EAAE;QACrD,IAAI,gBAAgB,GAAG,CAAC,EAAE;YACxB,OAAO,yCAAK,CAAC;SACd;aAAM;YACL,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,OAAO,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,gBAAc,oBAAoB,GAAG,KAAK,EAAE,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,IACvG,oBAAoB,CAChB,CAAC;SACX;IACH,CAAC,CAAC;IACF,OAAO,oBAAC,KAAK,kBAAY,kDAAkD,EAAC,eAAe,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC;QACtK,oBAAC,KAAK,QAAE,YAAY,CAAC,iBAAiB,CAAC,CAAS,CAC1C,CAAC;AACb,CAAC,CAAC;AACF,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,+BAA+B,GAAG,eAAe,CAAC,CAAC,KAAa,EAAe,EAAE,CAAC,CAAC;IACvF,IAAI,EAAE;QACJ,YAAY,EAAE,GAAG,mBAAmB,KAAK;QACzC,qDAAqD;QACrD,MAAM,EAAE,GAAG,mBAAmB,KAAK;QACnC,QAAQ,EAAE,GAAG,mBAAmB,KAAK;QACrC,sIAAsI;QACtI,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;QACtC,MAAM,EAAE,uBAAuB;QAC/B,gCAAgC;QAChC,OAAO,EAAE,GAAG,0BAA0B,KAAK;QAC3C,kEAAkE;QAClE,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,IAAI,GAAG,GAAG,0BAA0B,GAAG,CAAC,KAAK;QAClD,IAAI,EAAE,GAAG,GAAG,GAAG,0BAA0B,GAAG,CAAC,KAAK;KACnD;CACF,CAAC,CAAC,CAAC;AACJ,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,KAAa,EAAgB,EAAE,CAAC,CAAC;IAC/E,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;KACtC;CACF,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React from 'react';\nimport { IIconStyles, IStackStyles, ITheme, memoizeFunction, Stack, useTheme, Text } from '@fluentui/react';\n\n/**\n * @private\n */\nexport type NotificationIconProps = {\n chatMessagesCount: number;\n label?: string;\n};\n/**\n * @private\n */\nexport const NotificationIcon = (props: NotificationIconProps): JSX.Element => {\n const {\n chatMessagesCount,\n label\n } = props;\n const theme = useTheme();\n const renderNumber = (numberOfMessages): JSX.Element => {\n if (numberOfMessages < 1) {\n return <></>;\n } else {\n const textNumberOfMessages = numberOfMessages < 9 ? numberOfMessages : '9+';\n return <Text role={'status'} aria-label={textNumberOfMessages + label} styles={notificationTextStyles(theme)}>\n {textNumberOfMessages}\n </Text>;\n }\n };\n return <Stack data-ui-id=\"call-with-chat-composite-chat-button-unread-icon\" horizontalAlign=\"center\" verticalAlign=\"center\" styles={notificationIconContainerStyles(theme)}>\n <Stack>{renderNumber(chatMessagesCount)}</Stack>\n </Stack>;\n};\nconst notificationIconPaddingREM = 0.225;\nconst notificationSizeREM = 1;\nconst notificationIconContainerStyles = memoizeFunction((theme: ITheme): IIconStyles => ({\n root: {\n borderRadius: `${notificationSizeREM}rem`,\n // Create a css circle. This should match the height.\n height: `${notificationSizeREM}rem`,\n minWidth: `${notificationSizeREM}rem`,\n // use min-width over width as we want to extend the width of the notification icon when contents is more than one character (e.g. 9+)\n background: theme.palette.themePrimary,\n border: `0.0625rem solid white`,\n // border should always be white\n padding: `${notificationIconPaddingREM}rem`,\n // positioning to place the badge within the button appropriately.\n position: 'absolute',\n top: `-${0.5 - notificationIconPaddingREM / 2}rem`,\n left: `${0.5 + notificationIconPaddingREM / 2}rem`\n }\n}));\nconst notificationTextStyles = memoizeFunction((theme: ITheme): IStackStyles => ({\n root: {\n color: 'white',\n fontSize: theme.fonts.xSmall.fontSize\n }\n}));"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useUnreadMessagesTracker.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAwB,EAAE,iBAA0B,EAAU,EAAE;IACvG,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAElF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,EAAE;YACrB,0BAA0B,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,MAAM,gCAAgC,GAAG,CAAC,KAA+B,EAAQ,EAAE;YACjF,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC5D,0BAA0B,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;aACzD;QACH,CAAC,CAAC;QACF,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;QAEpE,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;QACvE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE1F,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAW,EAAE,CAC/C,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { useEffect, useState } from 'react';\nimport { ChatAdapter } from '../../ChatComposite/adapter/ChatAdapter';\nimport { ChatMessage } from '@azure/communication-chat';\n\n/**\n * Used by the CallWithChatComposite to track unread messages for showing as a badge on the Chat Button.\n * @private\n */\nexport const useUnreadMessagesTracker = (chatAdapter: ChatAdapter, isChatPaneVisible: boolean): number => {\n const [unreadChatMessagesCount, setUnreadChatMessagesCount] = useState<number>(0);\n\n useEffect(() => {\n if (isChatPaneVisible) {\n setUnreadChatMessagesCount(0);\n return;\n }\n const incrementUnreadChatMessagesCount = (event: { message: ChatMessage }): void => {\n if (!isChatPaneVisible && validNewChatMessage(event.message)) {\n setUnreadChatMessagesCount(unreadChatMessagesCount + 1);\n }\n };\n chatAdapter.on('messageReceived', incrementUnreadChatMessagesCount);\n\n return () => {\n chatAdapter.off('messageReceived', incrementUnreadChatMessagesCount);\n };\n }, [chatAdapter, setUnreadChatMessagesCount, isChatPaneVisible, unreadChatMessagesCount]);\n\n return unreadChatMessagesCount;\n};\n\n/**\n * Helper function to determine if the message in the event is a valid one from a user.\n * Display name is used since system messages will not have one.\n */\nconst validNewChatMessage = (message): boolean =>\n !!message.senderDisplayName && (message.type === 'text' || message.type === 'html');\n"]}
1
+ {"version":3,"file":"useUnreadMessagesTracker.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAwB,EAAE,iBAA0B,EAAU,EAAE;IACvG,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAClF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,EAAE;YACrB,0BAA0B,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,MAAM,gCAAgC,GAAG,CAAC,KAEzC,EAAQ,EAAE;YACT,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC5D,0BAA0B,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;aACzD;QACH,CAAC,CAAC;QACF,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;QACpE,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;QACvE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC1F,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { useEffect, useState } from 'react';\nimport { ChatAdapter } from '../../ChatComposite/adapter/ChatAdapter';\nimport { ChatMessage } from '@azure/communication-chat';\n\n/**\n * Used by the CallWithChatComposite to track unread messages for showing as a badge on the Chat Button.\n * @private\n */\nexport const useUnreadMessagesTracker = (chatAdapter: ChatAdapter, isChatPaneVisible: boolean): number => {\n const [unreadChatMessagesCount, setUnreadChatMessagesCount] = useState<number>(0);\n useEffect(() => {\n if (isChatPaneVisible) {\n setUnreadChatMessagesCount(0);\n return;\n }\n const incrementUnreadChatMessagesCount = (event: {\n message: ChatMessage;\n }): void => {\n if (!isChatPaneVisible && validNewChatMessage(event.message)) {\n setUnreadChatMessagesCount(unreadChatMessagesCount + 1);\n }\n };\n chatAdapter.on('messageReceived', incrementUnreadChatMessagesCount);\n return () => {\n chatAdapter.off('messageReceived', incrementUnreadChatMessagesCount);\n };\n }, [chatAdapter, setUnreadChatMessagesCount, isChatPaneVisible, unreadChatMessagesCount]);\n return unreadChatMessagesCount;\n};\n\n/**\n * Helper function to determine if the message in the event is a valid one from a user.\n * Display name is used since system messages will not have one.\n */\nconst validNewChatMessage = (message): boolean => !!message.senderDisplayName && (message.type === 'text' || message.type === 'html');"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}\n"]}
1
+ {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}"]}
@@ -18,7 +18,6 @@ import { CallAdapterLocator } from '../../CallComposite/adapter/AzureCommunicati
18
18
  import { StatefulCallClient } from "../../../../../calling-stateful-client/src";
19
19
  import { StatefulChatClient } from "../../../../../chat-stateful-client/src";
20
20
  import { ChatThreadClient } from '@azure/communication-chat';
21
- import { JoinCallOptions } from '../../CallComposite/adapter/CallAdapter';
22
21
  import { AzureCommunicationCallAdapterOptions } from '../../CallComposite/adapter/AzureCommunicationCallAdapter';
23
22
  import { IsCaptionsActiveChangedListener, CaptionsReceivedListener } from '../../CallComposite/adapter/CallAdapter';
24
23
  import { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';
@@ -35,7 +34,7 @@ export declare class AzureCommunicationCallWithChatAdapter implements CallWithCh
35
34
  constructor(callAdapter: CallAdapter, chatAdapter: ChatAdapter);
36
35
  private bindPublicMethods;
37
36
  /** Join existing Call. */
38
- joinCall(options?: boolean | JoinCallOptions): Call | undefined;
37
+ joinCall(microphoneOn?: boolean): Call | undefined;
39
38
  /** Leave current Call. */
40
39
  leaveCall(forEveryone?: boolean): Promise<void>;
41
40
  /** Start a new Call. */
@@ -158,7 +158,8 @@ export class AzureCommunicationCallWithChatAdapter {
158
158
  this.sendDtmfTone.bind(this);
159
159
  /* @conditional-compile-remove(unsupported-browser) */
160
160
  this.allowUnsupportedBrowserVersion.bind(this);
161
- /* @conditional-compile-remove(close-captions) */ {
161
+ /* @conditional-compile-remove(close-captions) */
162
+ {
162
163
  this.startCaptions.bind(this);
163
164
  this.stopCaptions.bind(this);
164
165
  this.setSpokenLanguage.bind(this);
@@ -172,13 +173,8 @@ export class AzureCommunicationCallWithChatAdapter {
172
173
  this.updateBackgroundPickerImages.bind(this);
173
174
  }
174
175
  /** Join existing Call. */
175
- joinCall(options) {
176
- if (typeof options === 'boolean') {
177
- return this.callAdapter.joinCall(options);
178
- }
179
- else {
180
- return this.callAdapter.joinCall(options);
181
- }
176
+ joinCall(microphoneOn) {
177
+ return this.callAdapter.joinCall(microphoneOn);
182
178
  }
183
179
  /** Leave current Call. */
184
180
  leaveCall(forEveryone) {
@@ -610,9 +606,7 @@ export const createAzureCommunicationCallWithChatAdapter = ({ userId, displayNam
610
606
  /* @conditional-compile-remove(PSTN-calls) */ alternateCallerId,
611
607
  /* @conditional-compile-remove(rooms) */ options: callAdapterOptions
612
608
  });
613
- const threadId = isTeamsMeetingLinkLocator(locator)
614
- ? getChatThreadFromTeamsLink(locator.meetingLink)
615
- : locator.chatThreadId;
609
+ const threadId = isTeamsMeetingLinkLocator(locator) ? getChatThreadFromTeamsLink(locator.meetingLink) : locator.chatThreadId;
616
610
  const createChatAdapterPromise = createAzureCommunicationChatAdapter({
617
611
  endpoint,
618
612
  userId,
@@ -637,26 +631,7 @@ export const createAzureCommunicationCallWithChatAdapter = ({ userId, displayNam
637
631
  *
638
632
  * @public
639
633
  */
640
- export const useAzureCommunicationCallWithChatAdapter = (
641
- /**
642
- * Arguments to be passed to {@link createAzureCommunicationCallWithChatAdapter}.
643
- *
644
- * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments
645
- * as they are created. The adapter is only created when all arguments are defined.
646
- */
647
- args,
648
- /**
649
- * Optional callback to modify the adapter once it is created.
650
- *
651
- * If set, must return the modified adapter.
652
- */
653
- afterCreate,
654
- /**
655
- * Optional callback called before the adapter is disposed.
656
- *
657
- * This is useful for clean up tasks, e.g., leaving any ongoing calls.
658
- */
659
- beforeDispose) => {
634
+ export const useAzureCommunicationCallWithChatAdapter = (args, afterCreate, beforeDispose) => {
660
635
  const { credential, displayName, endpoint, locator, userId,
661
636
  /* @conditional-compile-remove(PSTN-calls) */ alternateCallerId,
662
637
  /* @conditional-compile-remove(rooms) */ callAdapterOptions } = args;
@@ -706,18 +681,7 @@ beforeDispose) => {
706
681
  }))();
707
682
  },
708
683
  // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.
709
- [
710
- adapterRef,
711
- afterCreateRef,
712
- /* @conditional-compile-remove(PSTN-calls) */ alternateCallerId,
713
- beforeDisposeRef,
714
- credential,
715
- displayName,
716
- endpoint,
717
- locator,
718
- userId,
719
- /* @conditional-compile-remove(rooms) */ callAdapterOptions
720
- ]);
684
+ [adapterRef, afterCreateRef, /* @conditional-compile-remove(PSTN-calls) */ alternateCallerId, beforeDisposeRef, credential, displayName, endpoint, locator, userId, /* @conditional-compile-remove(rooms) */ callAdapterOptions]);
721
685
  // Dispose any existing adapter when the component unmounts.
722
686
  useEffect(() => {
723
687
  return () => {
@@ -746,9 +710,7 @@ export const createAzureCommunicationCallWithChatAdapterFromClients = ({ callCli
746
710
  /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
747
711
  options }) => __awaiter(void 0, void 0, void 0, function* () {
748
712
  const createCallAdapterPromise = createAzureCommunicationCallAdapterFromClient(callClient, callAgent, callLocator);
749
- const createChatAdapterPromise = createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
750
- /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
751
- options);
713
+ const createChatAdapterPromise = createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
752
714
  const [callAdapter, chatAdapter] = yield Promise.all([createCallAdapterPromise, createChatAdapterPromise]);
753
715
  return new AzureCommunicationCallWithChatAdapter(callAdapter, chatAdapter);
754
716
  });