@azure/communication-react 1.11.0-alpha-202312100013 → 1.11.0-alpha-202312111717

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 (506) hide show
  1. package/dist/dist-cjs/communication-react/index.js +52 -48
  2. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  3. package/dist/dist-esm/acs-ui-common/src/MessageStatus.d.ts +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/areEqual.d.ts +3 -3
  5. package/dist/dist-esm/acs-ui-common/src/commonProperties.d.ts +2 -2
  6. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/logEvent.d.ts +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.d.ts +2 -2
  10. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/telemetry.d.ts +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  18. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts +6 -6
  19. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.d.ts +3 -3
  21. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  22. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts +1 -1
  23. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
  25. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +2 -2
  26. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  28. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +2 -2
  29. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  30. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  32. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +2 -2
  34. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.d.ts +1 -1
  39. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  40. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.d.ts +1 -1
  41. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.d.ts +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.d.ts +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +1 -1
  48. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  50. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts +1 -1
  52. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  53. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.d.ts +5 -5
  54. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +2 -2
  55. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  56. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +2 -2
  57. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  58. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +4 -4
  59. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  61. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  62. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  63. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  64. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  65. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +1 -1
  68. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  69. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +3 -3
  70. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  72. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  73. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  75. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +3 -3
  77. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts +1 -1
  79. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  81. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  83. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.d.ts +1 -1
  84. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  85. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  87. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  88. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.d.ts +1 -1
  89. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  90. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.d.ts +1 -1
  91. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  92. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.d.ts +1 -1
  93. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  94. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  95. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  96. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  97. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts +1 -1
  98. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  99. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  100. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.d.ts +1 -1
  101. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  102. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.d.ts +1 -1
  103. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  104. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.d.ts +1 -1
  105. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  106. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.d.ts +1 -1
  107. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  108. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.d.ts +1 -1
  109. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  110. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  111. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  112. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +5 -5
  113. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  114. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +8 -6
  115. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  116. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.d.ts +3 -3
  117. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  118. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  119. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  120. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.d.ts +1 -1
  121. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  122. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  123. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +1 -1
  124. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  125. package/dist/dist-esm/communication-react/src/mergedHooks.d.ts +5 -5
  126. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  127. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.d.ts +2 -2
  128. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  129. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.d.ts +1 -1
  130. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  131. package/dist/dist-esm/react-components/src/components/Announcer.d.ts +1 -1
  132. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  133. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +1 -1
  134. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  135. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  136. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +1 -1
  137. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  138. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  139. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +1 -1
  140. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  141. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +1 -1
  142. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  143. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +1 -1
  144. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  145. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -1
  146. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  147. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +2 -2
  148. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  149. package/dist/dist-esm/react-components/src/components/ChatMessage/DefaultSystemMessage.js.map +1 -1
  150. package/dist/dist-esm/react-components/src/components/ChatMessage/FluentChatMessageComponentWrapper.d.ts +1 -1
  151. package/dist/dist-esm/react-components/src/components/ChatMessage/FluentChatMessageComponentWrapper.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  153. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  154. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  155. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.d.ts +2 -2
  156. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.d.ts +1 -1
  158. package/dist/dist-esm/react-components/src/components/ControlBar.d.ts +1 -1
  159. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts +1 -1
  160. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  161. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  162. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.d.ts +1 -1
  163. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  164. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +3 -3
  165. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +1 -1
  166. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +1 -1
  169. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  170. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +1 -1
  173. package/dist/dist-esm/react-components/src/components/FileCard.js +1 -1
  174. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +3 -3
  177. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  178. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/GridLayout.d.ts +2 -2
  180. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts +2 -2
  183. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  185. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/MentionPopover.d.ts +1 -1
  187. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  189. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +6 -6
  190. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.d.ts +1 -1
  193. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  194. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -2
  196. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.d.ts +2 -2
  199. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +2 -2
  202. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  206. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +1 -1
  207. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  208. package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts +1 -1
  209. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/components/SystemMessage.d.ts +2 -2
  211. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.d.ts +1 -1
  212. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +6 -6
  214. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +3 -3
  215. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  217. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  219. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  222. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  223. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.d.ts +1 -1
  224. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  225. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  226. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +1 -1
  227. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  228. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  229. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  230. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.d.ts +1 -1
  231. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -1
  232. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  233. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  234. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  235. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  236. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
  237. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +2 -2
  238. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  240. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  242. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  243. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  244. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +3 -3
  245. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  247. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  249. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  250. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +1 -1
  251. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  252. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +1 -1
  253. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +1 -1
  254. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +1 -1
  255. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  256. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +2 -2
  257. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  258. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +1 -1
  259. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  260. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +3 -3
  262. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +1 -1
  264. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  265. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  266. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +1 -1
  267. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  268. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +2 -2
  269. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  270. package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  272. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  273. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  274. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  275. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  276. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  277. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  278. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  279. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.d.ts +1 -1
  280. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  281. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +1 -1
  282. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  283. package/dist/dist-esm/react-components/src/theming/generateTheme.js.map +1 -1
  284. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -1
  285. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/theming/themeDuplicates.d.ts +2 -2
  287. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +4 -4
  289. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.d.ts +1 -1
  291. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.d.ts +1 -1
  292. package/dist/dist-esm/react-components/src/types/OnRender.d.ts +2 -2
  293. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +4 -4
  294. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.d.ts +1 -1
  295. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -2
  296. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +1 -1
  297. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  298. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  299. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +9 -9
  300. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +7 -7
  301. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  302. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +25 -25
  303. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  304. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.d.ts +1 -1
  305. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  306. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  307. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  308. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.d.ts +2 -2
  309. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  310. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.d.ts +1 -1
  311. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +1 -1
  312. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  313. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  314. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +1 -1
  315. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  316. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  317. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  318. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  319. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  320. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  321. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  322. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  323. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  324. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  325. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  326. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  327. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +1 -1
  328. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  329. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  330. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  331. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.d.ts +2 -2
  332. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  333. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  334. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SvgWithWordWrapping.js.map +1 -1
  335. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  336. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  337. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  338. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  339. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  340. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  341. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  342. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  343. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  344. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  345. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.d.ts +1 -1
  346. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  347. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  348. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  349. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  350. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  351. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  352. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +1 -1
  353. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  354. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +2 -2
  355. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  356. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  357. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +1 -1
  358. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +1 -1
  359. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +1 -1
  360. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +1 -1
  361. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +2 -2
  362. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +2 -2
  363. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  364. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +4 -4
  365. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  366. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +10 -10
  367. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  368. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +2 -2
  369. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +1 -1
  370. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  371. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +5 -5
  372. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +2 -2
  373. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +5 -5
  374. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  375. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +3 -3
  376. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  377. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  378. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +1 -1
  379. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  380. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +1 -1
  381. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  382. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +1 -1
  383. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.d.ts +1 -1
  384. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.d.ts +1 -1
  385. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  386. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +1 -1
  387. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  388. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  389. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  390. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +1 -1
  391. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  392. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js.map +1 -1
  393. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +1 -1
  394. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  395. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  396. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  397. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.d.ts +1 -1
  398. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +3 -3
  399. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  400. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  401. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
  402. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  403. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -1
  404. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  405. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  406. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  407. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  408. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.d.ts +1 -1
  409. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  410. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  411. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +1 -1
  412. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  413. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.d.ts +1 -1
  414. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  415. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +2 -2
  416. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  417. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +1 -1
  418. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  419. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  420. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -2
  421. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +7 -5
  422. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  423. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +1 -1
  424. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  425. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +10 -10
  426. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  427. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.d.ts +1 -1
  428. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  429. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.d.ts +4 -4
  430. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  431. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.d.ts +1 -1
  432. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +1 -1
  433. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  434. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  435. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.d.ts +1 -1
  436. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  437. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +6 -6
  438. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  439. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  440. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  441. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts +2 -2
  442. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  443. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  444. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  445. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  446. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  447. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  448. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  449. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.d.ts +1 -1
  450. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  451. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.d.ts +5 -5
  452. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  453. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  454. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  455. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  456. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js.map +1 -1
  457. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  458. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  459. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  460. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  461. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  462. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  463. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +1 -1
  464. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  465. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  466. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  467. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  468. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  469. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  470. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +2 -2
  471. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  472. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  473. package/dist/dist-esm/react-composites/src/composites/common/adapters.d.ts +1 -1
  474. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +5 -5
  475. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  476. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  477. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  478. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.d.ts +1 -1
  479. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  480. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  481. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +2 -2
  482. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  483. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.d.ts +1 -1
  484. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  485. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -1
  486. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -1
  487. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -1
  488. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -1
  489. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -1
  490. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -1
  491. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -1
  492. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -1
  493. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  494. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -1
  495. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -1
  496. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -1
  497. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -1
  498. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -1
  499. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -1
  500. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -1
  501. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -1
  502. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -1
  503. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -1
  504. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -1
  505. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -1
  506. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Buttons.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/Buttons.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,eAAe,EAAoD,MAAM,iBAAiB,CAAC;AAGpG,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,eAAe;AACf,MAAM,CAAC,MAAM,yBAAyB,GAAW;IAC/C,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IAExB,4HAA4H;IAC5H,SAAS,EAAE;;;GAGV;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE;QACJ,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;KACnB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,QAAQ;KACvB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA8B;IACxE,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,+BAA+B,KAAK;QAC/C,UAAU,EAAE,GAAG,+BAA+B,KAAK;QACnD,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,MAAM,EAAE,GAAG,+BAA+B,KAAK;QAC/C,UAAU,EAAE,GAAG,+BAA+B,KAAK;QACnD,SAAS,EAAE,OAAO;KACnB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,MAAM;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAA6B;IAClF,UAAU,EAAE;QACV,cAAc,EAAE,+BAA+B;QAC/C,qBAAqB,EAAE;YACrB,qBAAqB,EAAE;gBACrB,IAAI,EAAE;oBACJ,MAAM,EAAE,GAAG,+BAA+B,KAAK;iBAChD;gBACD,6BAA6B,EAAE,+BAA+B;aAC/D;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAwB;IACzE,UAAU,EAAE;QACV,cAAc,EAAE,+BAA+B;KAChD;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAuB,EAAiB,EAAE;IAClF,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, IButtonStyles, IContextualMenuItemStyles, IStyle } from '@fluentui/react';\nimport { DevicesButtonStyles, ParticipantsButtonStyles } from '@internal/react-components';\n\nconst MINIMUM_TOUCH_TARGET_HEIGHT_REM = 3;\n\n/** @private */\nexport const controlBarContainerStyles: IStyle = {\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem',\n\n // @TODO: this should be exposed through a custom CallComposite Theme API that extends the fluent theme with semantic values\n boxShadow: `\n 0px 6.400000095367432px 14.399999618530273px 0px #00000021;\n 0px 1.2000000476837158px 3.5999999046325684px 0px #0000001A;\n `\n};\n\n/**\n * @private\n */\nexport const groupCallLeaveButtonStyle = {\n root: {\n border: '0.125rem',\n borderRadius: 2,\n height: '2.1875rem',\n width: '6.5625rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n\n/**\n * @private\n */\nexport const groupCallLeaveButtonCompressedStyle = {\n root: {\n border: '0',\n borderRadius: '0.5rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n\n/**\n * Styles that can be applied to ensure flyout items have the minimum touch target size.\n *\n * @private\n */\nexport const buttonFlyoutIncreasedSizeStyles: IContextualMenuItemStyles = {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset',\n overflow: 'hidden'\n },\n linkContent: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset'\n },\n icon: {\n maxHeight: 'unset',\n textAlign: 'center'\n },\n checkmarkIcon: {\n lineHeight: '2rem'\n }\n};\n\n/**\n * @private\n */\nexport const participantButtonWithIncreasedTouchTargets: ParticipantsButtonStyles = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles,\n participantListStyles: {\n participantItemStyles: {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`\n },\n participantSubMenuItemsStyles: buttonFlyoutIncreasedSizeStyles\n }\n }\n }\n};\n\n/**\n * @private\n */\nexport const devicesButtonWithIncreasedTouchTargets: DevicesButtonStyles = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n};\n\n/**\n * @private\n */\nexport const controlButtonBaseStyle: IButtonStyles = {\n label: {\n minWidth: '2.25rem'\n }\n};\n\n/**\n * @private\n */\nexport const concatButtonBaseStyles = (...styles: IButtonStyles[]): IButtonStyles => {\n let result = controlButtonBaseStyle;\n styles.forEach((style) => {\n result = concatStyleSets(result, style);\n });\n return result;\n};\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"Buttons.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/Buttons.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,eAAe,EAAoD,MAAM,iBAAiB,CAAC;AAGpG,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,eAAe;AACf,MAAM,CAAC,MAAM,yBAAyB,GAAW;IAC/C,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IAExB,4HAA4H;IAC5H,SAAS,EAAE;;;GAGV;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE;QACJ,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;KACnB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,QAAQ;KACvB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA8B;IACxE,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,+BAA+B,KAAK;QAC/C,UAAU,EAAE,GAAG,+BAA+B,KAAK;QACnD,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,MAAM,EAAE,GAAG,+BAA+B,KAAK;QAC/C,UAAU,EAAE,GAAG,+BAA+B,KAAK;QACnD,SAAS,EAAE,OAAO;KACnB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,MAAM;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAA6B;IAClF,UAAU,EAAE;QACV,cAAc,EAAE,+BAA+B;QAC/C,qBAAqB,EAAE;YACrB,qBAAqB,EAAE;gBACrB,IAAI,EAAE;oBACJ,MAAM,EAAE,GAAG,+BAA+B,KAAK;iBAChD;gBACD,6BAA6B,EAAE,+BAA+B;aAC/D;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAwB;IACzE,UAAU,EAAE;QACV,cAAc,EAAE,+BAA+B;KAChD;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAuB,EAAiB,EAAE;IAClF,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, IButtonStyles, IContextualMenuItemStyles, IStyle } from '@fluentui/react';\nimport { DevicesButtonStyles, ParticipantsButtonStyles } from '@internal/react-components';\n\nconst MINIMUM_TOUCH_TARGET_HEIGHT_REM = 3;\n\n/** @private */\nexport const controlBarContainerStyles: IStyle = {\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem',\n\n // @TODO: this should be exposed through a custom CallComposite Theme API that extends the fluent theme with semantic values\n boxShadow: `\n 0px 6.400000095367432px 14.399999618530273px 0px #00000021;\n 0px 1.2000000476837158px 3.5999999046325684px 0px #0000001A;\n `\n};\n\n/**\n * @private\n */\nexport const groupCallLeaveButtonStyle = {\n root: {\n border: '0.125rem',\n borderRadius: 2,\n height: '2.1875rem',\n width: '6.5625rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n\n/**\n * @private\n */\nexport const groupCallLeaveButtonCompressedStyle = {\n root: {\n border: '0',\n borderRadius: '0.5rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n\n/**\n * Styles that can be applied to ensure flyout items have the minimum touch target size.\n *\n * @private\n */\nexport const buttonFlyoutIncreasedSizeStyles: IContextualMenuItemStyles = {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset',\n overflow: 'hidden'\n },\n linkContent: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset'\n },\n icon: {\n maxHeight: 'unset',\n textAlign: 'center'\n },\n checkmarkIcon: {\n lineHeight: '2rem'\n }\n};\n\n/**\n * @private\n */\nexport const participantButtonWithIncreasedTouchTargets: ParticipantsButtonStyles = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles,\n participantListStyles: {\n participantItemStyles: {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`\n },\n participantSubMenuItemsStyles: buttonFlyoutIncreasedSizeStyles\n }\n }\n }\n};\n\n/**\n * @private\n */\nexport const devicesButtonWithIncreasedTouchTargets: DevicesButtonStyles = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n};\n\n/**\n * @private\n */\nexport const controlButtonBaseStyle: IButtonStyles = {\n label: {\n minWidth: '2.25rem'\n }\n};\n\n/**\n * @private\n */\nexport const concatButtonBaseStyles = (...styles: IButtonStyles[]): IButtonStyles => {\n let result = controlButtonBaseStyle;\n styles.forEach((style) => {\n result = concatStyleSets(result, style);\n });\n return result;\n};\n"]}
@@ -35,7 +35,7 @@ export const configurationContainerStyle = (desktop, backgroundImageUrl) => ({
35
35
  padding: desktop ? '2rem 1rem 2rem 1rem' : '1rem 1rem 2rem 1rem',
36
36
  minWidth: desktop
37
37
  ? '25rem' // sum of min-width from children + ChildrenGap * (nb of children - 1) + padding * 2 = (11 + 11) + (2 * 1) + 0.5 * 2
38
- : '16rem',
38
+ : '16rem', // from LocalPreview: ControlBar width + 0.5 * 2 for spacing + padding * 2 = 14 + 0.5 * 2 + 0.5 * 2
39
39
  minHeight: desktop
40
40
  ? '22rem' // max height of SelectionContainer + padding * 2 = 21 + 0.5 * 2
41
41
  : '13rem',
@@ -229,7 +229,7 @@ export const panelStyles = {
229
229
  content: {
230
230
  display: 'flex',
231
231
  flexBasis: '100%',
232
- paddingLeft: '0rem',
232
+ paddingLeft: '0rem', // remove default padding
233
233
  paddingRight: '0rem' // remove default padding
234
234
  },
235
235
  commands: {
@@ -250,7 +250,7 @@ export const panelFocusProps = {
250
250
  */
251
251
  export const logoStyles = (shape) => ({
252
252
  root: {
253
- overflow: 'initial',
253
+ overflow: 'initial', // prevent the image being clipped
254
254
  display: 'flex',
255
255
  justifyContent: 'center'
256
256
  },
@@ -1 +1 @@
1
- {"version":3,"file":"CallConfiguration.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAKL,WAAW,EAMX,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,yCAAgC;AAEnD,eAAe;AACf,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC;AAC3D,eAAe;AACf,MAAM,CAAC,MAAM,wCAAwC,GAAG,MAAM,CAAC;AAC/D,eAAe;AACf,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAE5D,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAiB;IAC3D,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAiB;IAC1D,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAiB;IAC1D,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAAgB,EAAE,kBAA2B,EAAgB,EAAE,CAAC,CAAC;IAC3G,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB;QAChE,QAAQ,EAAE,OAAO;YACf,CAAC,CAAC,OAAO,CAAC,oHAAoH;YAC9H,CAAC,CAAC,OAAO;QACX,SAAS,EAAE,OAAO;YAChB,CAAC,CAAC,OAAO,CAAC,gEAAgE;YAC1E,CAAC,CAAC,OAAO;QACX,UAAU,EAAE,CAAC,kBAAkB;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,iBACG,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,OAAO,kBAAkB,GAAG,EAC7C,cAAc,EAAE,OAAO,EACvB,kBAAkB,EAAE,QAAQ,IACzB,eAAe,CAAC,SAAS,CAC7B;KACN;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAiB;IACrD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG,wCAAwC,KAAK;QAC1D,QAAQ,EAAE,GAAG,wCAAwC,KAAK;KAC3D;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC/D,WAAW,CAAC;IACV,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,GAAG,qCAAqC,KAAK;IACrD,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc;IAC1C,MAAM,EAAE,mBAAmB,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;IACvD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;IACnC,sEAAsE;IACtE,sFAAsF;IACtF,uFAAuF;IACvF,yBAAyB;IACzB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC/B,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc;KAC3C;CACF,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAU,EAAE,CAClE,WAAW,CACT;IACE,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,GAAG;CAChB,EACD,+BAA+B,CAAC,KAAK,CAAC,CACvC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAa,EAAU,EAAE,CACjE,WAAW,CACT;IACE,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,QAAQ;CACpB,EACD,+BAA+B,CAAC,KAAK,CAAC,CACvC,CAAC;AAEJ;;;GAGG;AACH,MAAM,+BAA+B,GAAG,CAAC,KAAa,EAAU,EAAE;IAChE,OAAO;QACL,UAAU,EAAE,eAAe,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC7D,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ;QACnC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB;QACxC,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC1B,IAAI,EAAE;YACJ,aAAa,EAAE,UAAU,CAAC,4CAA4C;SACvE;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAiB;IACtD,IAAI,EAAE;QACJ,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;QACvB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAW;IAC/B,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,SAAS;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,mBAC7C,gBAAgB,EACnB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,iCAC5C,gBAAgB,KACnB,YAAY,EAAE,QAAQ,EACtB,SAAS,EAAE,QAAQ,IACnB,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAiB;IAChE,IAAI,EAAE;QACJ,UAAU,EAAE,UAAU;KACvB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAiB;IAC/D,IAAI,EAAE;QACJ,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;IACpD,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,SAAS;CACxB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;IACrD,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,CAAC,MAAM,0CAA0C,GAAqB;IAC1E,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAiB,EAAE;IACjE,OAAO;QACL,IAAI,EAAE;YACJ,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;YACjC,oEAAoE;YACpE,OAAO,EAAE,aAAa;YACtB,gBAAgB,EAAE;gBAChB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;aAClC;YACD,GAAG,EAAE;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,MAAM;aACd;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;SAClC;QACD,WAAW,EAAE;YACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;SAClC;QACD,WAAW,EAAE;YACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;SAClC;QACD,WAAW,EAAE;YACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;SAClC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;IACnC,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,WAAoB,EAAE,OAAiB,EAAU,EAAE,CAC9F,WAAW,CAAC;IACV,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,UAAU;IAEpB,iEAAiE;IACjE,iFAAiF;IACjF,iFAAiF;IACjF,kFAAkF;IAClF,uCAAuC;IACvC,MAAM,EAAE,eAAe,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG;CACrF,CAAC,CAAC;AAEL,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,MAAM,CAAC,yBAAyB;KAC/C;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC,yBAAyB;KAC7C;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAwB;IAClD,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAqC,EAAgB,EAAE,CAAC,CAAC;IAClF,IAAI,EAAE;QACJ,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,GAAG,eAAe,KAAK;QAC/B,YAAY,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACrD,WAAW,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,SAAS,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACpD;CACF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n IStackItemStyles,\n IStackStyles,\n IStackTokens,\n IStyle,\n mergeStyles,\n IButtonStyles,\n Theme,\n IPanelStyles,\n IFocusTrapZoneProps,\n IImageStyles,\n AnimationStyles,\n ITheme\n} from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM = 11;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM = 20.625;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_HEIGHT_REM = 13.625;\n\nconst LOGO_HEIGHT_REM = 3;\n\n/**\n * @private\n */\nexport const configurationStackTokensDesktop: IStackTokens = {\n childrenGap: '1rem'\n};\n\n/**\n * @private\n */\nexport const configurationStackTokensMobile: IStackTokens = {\n childrenGap: '0.5rem'\n};\n\n/**\n * @private\n */\nexport const deviceConfigurationStackTokens: IStackTokens = {\n childrenGap: '1.5rem'\n};\n\n/** @private */\nexport const configurationContainerStyle = (desktop: boolean, backgroundImageUrl?: string): IStackStyles => ({\n root: {\n height: '100%',\n width: '100%',\n padding: desktop ? '2rem 1rem 2rem 1rem' : '1rem 1rem 2rem 1rem',\n minWidth: desktop\n ? '25rem' // sum of min-width from children + ChildrenGap * (nb of children - 1) + padding * 2 = (11 + 11) + (2 * 1) + 0.5 * 2\n : '16rem', // from LocalPreview: ControlBar width + 0.5 * 2 for spacing + padding * 2 = 14 + 0.5 * 2 + 0.5 * 2\n minHeight: desktop\n ? '22rem' // max height of SelectionContainer + padding * 2 = 21 + 0.5 * 2\n : '13rem',\n '::before': !backgroundImageUrl\n ? undefined\n : {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 0,\n width: '100%',\n height: '100%',\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n ...AnimationStyles.fadeIn500\n }\n }\n});\n\n/**\n * @private\n */\nexport const configurationSectionStyle: IStackStyles = {\n root: {\n width: '100%',\n minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`,\n maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem`\n }\n};\n\n/**\n * @private\n */\nexport const selectionContainerStyle = (theme: ITheme): string =>\n mergeStyles({\n width: '100%',\n height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`,\n padding: '1rem',\n borderRadius: theme.effects.roundedCorner6,\n border: `0.0625rem solid ${theme.palette.neutralLight}`,\n boxShadow: theme.effects.elevation4,\n // Style the background of the container to have partial transparency.\n // Using `before:` pseudo-element to avoid having to wrap the content in an extra div.\n // Ideally rgba would be used but we cannot garauntee the format of theme.palette.white\n // to parse it correctly.\n position: 'relative',\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 0,\n background: theme.palette.white,\n opacity: 0.9,\n borderRadius: theme.effects.roundedCorner4\n }\n });\n\n/**\n * @private\n */\nexport const titleContainerStyleDesktop = (theme: ITheme): string =>\n mergeStyles(\n {\n fontSize: '1.2rem',\n lineHeight: '1rem',\n fontWeight: 600\n },\n configurationPageTextDecoration(theme)\n );\n\n/**\n * @private\n */\nexport const titleContainerStyleMobile = (theme: ITheme): string =>\n mergeStyles(\n {\n fontSize: '1.0625rem',\n lineHeight: '1.375rem',\n fontWeight: 600,\n textAlign: 'center'\n },\n configurationPageTextDecoration(theme)\n );\n\n/**\n * Ensure configuration page text is legible on top of a background image.\n * @private\n */\nconst configurationPageTextDecoration = (theme: ITheme): IStyle => {\n return {\n textShadow: `0px 0px 8px ${theme.palette.whiteTranslucent40}`,\n fill: theme.semanticColors.bodyText,\n stroke: theme.palette.whiteTranslucent40,\n paintOrder: 'stroke fill',\n strokeWidth: _pxToRem(1.5),\n text: {\n letterSpacing: '-0.02rem' // cope with extra width due to stroke width\n }\n };\n};\n\n/**\n * @private\n */\nexport const callDetailsContainerStyles: IStackStyles = {\n root: {\n textAlign: 'center',\n maxWidth: _pxToRem(700),\n alignSelf: 'center'\n }\n};\n\nconst callDetailsStyle: IStyle = {\n fontSize: '0.9375',\n lineHeight: '1.25rem'\n};\n\n/**\n * @private\n */\nexport const callDetailsStyleDesktop = mergeStyles({\n ...callDetailsStyle\n});\n\n/**\n * @private\n */\nexport const callDetailsStyleMobile = mergeStyles({\n ...callDetailsStyle,\n marginBottom: '0.5rem',\n textAlign: 'center'\n});\n\n/**\n * @private\n */\nexport const startCallButtonContainerStyleDesktop: IStackStyles = {\n root: {\n paddingTop: '1.125rem'\n }\n};\n\n/**\n * @private\n */\nexport const startCallButtonContainerStyleMobile: IStackStyles = {\n root: {\n textAlign: 'center'\n }\n};\n\n/**\n * @private\n */\nexport const startCallButtonStyleMobile = mergeStyles({\n width: '100%',\n maxWidth: 'unset',\n borderRadius: '0.25rem'\n});\n\n/**\n * @private\n */\nexport const startCallButtonStyleDesktop = mergeStyles({\n borderRadius: '0.25rem',\n width: 'auto',\n height: '2.25rem'\n});\n\n/** @private */\nexport const cameraAndVideoEffectsContainerStyleDesktop: IStackItemStyles = {\n root: {\n alignItems: 'center'\n }\n};\n\n/**\n * @private\n */\nexport const effectsButtonStyles = (theme: Theme): IButtonStyles => {\n return {\n root: {\n background: 'transparent',\n border: 'none',\n color: theme.palette.themePrimary,\n // Top and bottom padding needs to be 5px to match the label padding\n padding: '5px 0.25rem',\n ':hover, :focus': {\n color: theme.palette.themePrimary\n },\n svg: {\n height: '1rem',\n width: '1rem'\n }\n },\n rootChecked: {\n color: theme.palette.themePrimary\n },\n rootHovered: {\n color: theme.palette.themePrimary\n },\n rootPressed: {\n color: theme.palette.themePrimary\n },\n rootFocused: {\n color: theme.palette.themePrimary\n }\n };\n};\n\n/** @private */\nexport const fillWidth = mergeStyles({\n width: '100%',\n position: 'relative'\n});\n\n/** @private */\nexport const configurationCenteredContent = (fillsHeight: boolean, hasLogo?: boolean): string =>\n mergeStyles({\n width: '100%',\n position: 'relative',\n\n // If the content does not fill the height, center it vertically.\n // We do not include the logo in the centering per design. This allows it to fade\n // in and not shift the content. To exclude the logo, we subtract the logo height\n // and margin from the actual height. This allows the flex box's natural centering\n // to appropriately center the content.\n height: `calc(100% - ${!fillsHeight && hasLogo ? `${LOGO_HEIGHT_REM}rem` : '0rem'})`\n });\n\n/** @private */\nexport const panelStyles: Partial<IPanelStyles> = {\n content: {\n display: 'flex',\n flexBasis: '100%',\n paddingLeft: '0rem', // remove default padding\n paddingRight: '0rem' // remove default padding\n },\n commands: {\n paddingTop: '0rem' // remove default padding\n },\n scrollableContent: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n }\n};\n\n/** @private */\nexport const panelFocusProps: IFocusTrapZoneProps = {\n forceFocusInsideTrap: false\n};\n\n/**\n * @private\n */\nexport const logoStyles = (shape: undefined | 'unset' | 'circle'): IImageStyles => ({\n root: {\n overflow: 'initial', // prevent the image being clipped\n display: 'flex',\n justifyContent: 'center'\n },\n image: {\n height: `${LOGO_HEIGHT_REM}rem`,\n borderRadius: shape === 'circle' ? '100%' : undefined,\n aspectRatio: shape === 'circle' ? '1 / 1' : undefined,\n objectFit: shape === 'circle' ? 'cover' : undefined\n }\n});\n\"../../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"CallConfiguration.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n IStackItemStyles,\n IStackStyles,\n IStackTokens,\n IStyle,\n mergeStyles,\n IButtonStyles,\n Theme,\n IPanelStyles,\n IFocusTrapZoneProps,\n IImageStyles,\n AnimationStyles,\n ITheme\n} from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM = 11;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM = 20.625;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_HEIGHT_REM = 13.625;\n\nconst LOGO_HEIGHT_REM = 3;\n\n/**\n * @private\n */\nexport const configurationStackTokensDesktop: IStackTokens = {\n childrenGap: '1rem'\n};\n\n/**\n * @private\n */\nexport const configurationStackTokensMobile: IStackTokens = {\n childrenGap: '0.5rem'\n};\n\n/**\n * @private\n */\nexport const deviceConfigurationStackTokens: IStackTokens = {\n childrenGap: '1.5rem'\n};\n\n/** @private */\nexport const configurationContainerStyle = (desktop: boolean, backgroundImageUrl?: string): IStackStyles => ({\n root: {\n height: '100%',\n width: '100%',\n padding: desktop ? '2rem 1rem 2rem 1rem' : '1rem 1rem 2rem 1rem',\n minWidth: desktop\n ? '25rem' // sum of min-width from children + ChildrenGap * (nb of children - 1) + padding * 2 = (11 + 11) + (2 * 1) + 0.5 * 2\n : '16rem', // from LocalPreview: ControlBar width + 0.5 * 2 for spacing + padding * 2 = 14 + 0.5 * 2 + 0.5 * 2\n minHeight: desktop\n ? '22rem' // max height of SelectionContainer + padding * 2 = 21 + 0.5 * 2\n : '13rem',\n '::before': !backgroundImageUrl\n ? undefined\n : {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 0,\n width: '100%',\n height: '100%',\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n ...AnimationStyles.fadeIn500\n }\n }\n});\n\n/**\n * @private\n */\nexport const configurationSectionStyle: IStackStyles = {\n root: {\n width: '100%',\n minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`,\n maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem`\n }\n};\n\n/**\n * @private\n */\nexport const selectionContainerStyle = (theme: ITheme): string =>\n mergeStyles({\n width: '100%',\n height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`,\n padding: '1rem',\n borderRadius: theme.effects.roundedCorner6,\n border: `0.0625rem solid ${theme.palette.neutralLight}`,\n boxShadow: theme.effects.elevation4,\n // Style the background of the container to have partial transparency.\n // Using `before:` pseudo-element to avoid having to wrap the content in an extra div.\n // Ideally rgba would be used but we cannot garauntee the format of theme.palette.white\n // to parse it correctly.\n position: 'relative',\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 0,\n background: theme.palette.white,\n opacity: 0.9,\n borderRadius: theme.effects.roundedCorner4\n }\n });\n\n/**\n * @private\n */\nexport const titleContainerStyleDesktop = (theme: ITheme): string =>\n mergeStyles(\n {\n fontSize: '1.2rem',\n lineHeight: '1rem',\n fontWeight: 600\n },\n configurationPageTextDecoration(theme)\n );\n\n/**\n * @private\n */\nexport const titleContainerStyleMobile = (theme: ITheme): string =>\n mergeStyles(\n {\n fontSize: '1.0625rem',\n lineHeight: '1.375rem',\n fontWeight: 600,\n textAlign: 'center'\n },\n configurationPageTextDecoration(theme)\n );\n\n/**\n * Ensure configuration page text is legible on top of a background image.\n * @private\n */\nconst configurationPageTextDecoration = (theme: ITheme): IStyle => {\n return {\n textShadow: `0px 0px 8px ${theme.palette.whiteTranslucent40}`,\n fill: theme.semanticColors.bodyText,\n stroke: theme.palette.whiteTranslucent40,\n paintOrder: 'stroke fill',\n strokeWidth: _pxToRem(1.5),\n text: {\n letterSpacing: '-0.02rem' // cope with extra width due to stroke width\n }\n };\n};\n\n/**\n * @private\n */\nexport const callDetailsContainerStyles: IStackStyles = {\n root: {\n textAlign: 'center',\n maxWidth: _pxToRem(700),\n alignSelf: 'center'\n }\n};\n\nconst callDetailsStyle: IStyle = {\n fontSize: '0.9375',\n lineHeight: '1.25rem'\n};\n\n/**\n * @private\n */\nexport const callDetailsStyleDesktop = mergeStyles({\n ...callDetailsStyle\n});\n\n/**\n * @private\n */\nexport const callDetailsStyleMobile = mergeStyles({\n ...callDetailsStyle,\n marginBottom: '0.5rem',\n textAlign: 'center'\n});\n\n/**\n * @private\n */\nexport const startCallButtonContainerStyleDesktop: IStackStyles = {\n root: {\n paddingTop: '1.125rem'\n }\n};\n\n/**\n * @private\n */\nexport const startCallButtonContainerStyleMobile: IStackStyles = {\n root: {\n textAlign: 'center'\n }\n};\n\n/**\n * @private\n */\nexport const startCallButtonStyleMobile = mergeStyles({\n width: '100%',\n maxWidth: 'unset',\n borderRadius: '0.25rem'\n});\n\n/**\n * @private\n */\nexport const startCallButtonStyleDesktop = mergeStyles({\n borderRadius: '0.25rem',\n width: 'auto',\n height: '2.25rem'\n});\n\n/** @private */\nexport const cameraAndVideoEffectsContainerStyleDesktop: IStackItemStyles = {\n root: {\n alignItems: 'center'\n }\n};\n\n/**\n * @private\n */\nexport const effectsButtonStyles = (theme: Theme): IButtonStyles => {\n return {\n root: {\n background: 'transparent',\n border: 'none',\n color: theme.palette.themePrimary,\n // Top and bottom padding needs to be 5px to match the label padding\n padding: '5px 0.25rem',\n ':hover, :focus': {\n color: theme.palette.themePrimary\n },\n svg: {\n height: '1rem',\n width: '1rem'\n }\n },\n rootChecked: {\n color: theme.palette.themePrimary\n },\n rootHovered: {\n color: theme.palette.themePrimary\n },\n rootPressed: {\n color: theme.palette.themePrimary\n },\n rootFocused: {\n color: theme.palette.themePrimary\n }\n };\n};\n\n/** @private */\nexport const fillWidth = mergeStyles({\n width: '100%',\n position: 'relative'\n});\n\n/** @private */\nexport const configurationCenteredContent = (fillsHeight: boolean, hasLogo?: boolean): string =>\n mergeStyles({\n width: '100%',\n position: 'relative',\n\n // If the content does not fill the height, center it vertically.\n // We do not include the logo in the centering per design. This allows it to fade\n // in and not shift the content. To exclude the logo, we subtract the logo height\n // and margin from the actual height. This allows the flex box's natural centering\n // to appropriately center the content.\n height: `calc(100% - ${!fillsHeight && hasLogo ? `${LOGO_HEIGHT_REM}rem` : '0rem'})`\n });\n\n/** @private */\nexport const panelStyles: Partial<IPanelStyles> = {\n content: {\n display: 'flex',\n flexBasis: '100%',\n paddingLeft: '0rem', // remove default padding\n paddingRight: '0rem' // remove default padding\n },\n commands: {\n paddingTop: '0rem' // remove default padding\n },\n scrollableContent: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n }\n};\n\n/** @private */\nexport const panelFocusProps: IFocusTrapZoneProps = {\n forceFocusInsideTrap: false\n};\n\n/**\n * @private\n */\nexport const logoStyles = (shape: undefined | 'unset' | 'circle'): IImageStyles => ({\n root: {\n overflow: 'initial', // prevent the image being clipped\n display: 'flex',\n justifyContent: 'center'\n },\n image: {\n height: `${LOGO_HEIGHT_REM}rem`,\n borderRadius: shape === 'circle' ? '100%' : undefined,\n aspectRatio: shape === 'circle' ? '1 / 1' : undefined,\n objectFit: shape === 'circle' ? 'cover' : undefined\n }\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HoldPane.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/HoldPane.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,QAAQ,EAAE,yCAAgC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,IAAI,EAAE;QACJ,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG;KAC3C;IACD,KAAK,EAAE;QACL,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;KACvB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;KACvB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtB,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,QAAQ;KACvB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,SAAS;KACtB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, IStackStyles, ITextStyles } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n\n/**\n * styles for hold pane resume button\n *\n * @private\n */\nexport const resumeButtonStyles: IButtonStyles = {\n root: {\n borderRadius: _pxToRem(4),\n padding: `${_pxToRem(6)} ${_pxToRem(20)} `\n },\n label: {\n fontWeight: 400,\n display: 'flex',\n fontSize: _pxToRem(14)\n },\n labelDisabled: {\n fontWeight: 400,\n display: 'flex',\n fontSize: _pxToRem(14)\n }\n};\n\n/**\n * styles for hold pane main text\n *\n * @private\n */\nexport const holdPaneLabelStyles: ITextStyles = {\n root: {\n color: 'inherit',\n fontWeight: 600,\n fontHeight: _pxToRem(22),\n fontSize: _pxToRem(16),\n marginTop: '0.5rem',\n marginBottom: '1.5rem'\n }\n};\n\n/**\n * styles for hold pane timer\n *\n * @private\n */\nexport const holdPaneTimerStyles: ITextStyles = {\n root: {\n color: 'inherit',\n fontWeight: 600,\n fontSize: _pxToRem(20),\n lineHeight: _pxToRem(28),\n margin: 'auto'\n }\n};\n\n/**\n * styles for hold pane container\n *\n * @private\n */\nexport const paneStyles: IStackStyles = {\n root: {\n width: '100%',\n height: '100%',\n background: 'inherit'\n }\n};\n\n/**\n * styles for the hold pane content container\n *\n * @private\n */\nexport const holdPaneContentStyles: IStackStyles = {\n root: {\n display: 'flex',\n margin: 'auto',\n flexDirection: 'column',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center'\n }\n};\n\"../../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"HoldPane.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/HoldPane.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,QAAQ,EAAE,yCAAgC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,IAAI,EAAE;QACJ,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG;KAC3C;IACD,KAAK,EAAE;QACL,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;KACvB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;KACvB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtB,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,QAAQ;KACvB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,SAAS;KACtB;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, IStackStyles, ITextStyles } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n\n/**\n * styles for hold pane resume button\n *\n * @private\n */\nexport const resumeButtonStyles: IButtonStyles = {\n root: {\n borderRadius: _pxToRem(4),\n padding: `${_pxToRem(6)} ${_pxToRem(20)} `\n },\n label: {\n fontWeight: 400,\n display: 'flex',\n fontSize: _pxToRem(14)\n },\n labelDisabled: {\n fontWeight: 400,\n display: 'flex',\n fontSize: _pxToRem(14)\n }\n};\n\n/**\n * styles for hold pane main text\n *\n * @private\n */\nexport const holdPaneLabelStyles: ITextStyles = {\n root: {\n color: 'inherit',\n fontWeight: 600,\n fontHeight: _pxToRem(22),\n fontSize: _pxToRem(16),\n marginTop: '0.5rem',\n marginBottom: '1.5rem'\n }\n};\n\n/**\n * styles for hold pane timer\n *\n * @private\n */\nexport const holdPaneTimerStyles: ITextStyles = {\n root: {\n color: 'inherit',\n fontWeight: 600,\n fontSize: _pxToRem(20),\n lineHeight: _pxToRem(28),\n margin: 'auto'\n }\n};\n\n/**\n * styles for hold pane container\n *\n * @private\n */\nexport const paneStyles: IStackStyles = {\n root: {\n width: '100%',\n height: '100%',\n background: 'inherit'\n }\n};\n\n/**\n * styles for the hold pane content container\n *\n * @private\n */\nexport const holdPaneContentStyles: IStackStyles = {\n root: {\n display: 'flex',\n margin: 'auto',\n flexDirection: 'column',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center'\n }\n};\n"]}
@@ -41,7 +41,7 @@ export const localPreviewButtonStyle = {
41
41
  border: '1px solid !important' // we need bang important to override fluents colours
42
42
  },
43
43
  ':focus::after': {
44
- border: 'unset !important',
44
+ border: 'unset !important', // we need bang important to override fluents colours
45
45
  outline: 'unset !important'
46
46
  }
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalPreview.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/LocalPreview.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,qCAAqC,EACrC,wCAAwC,EACxC,wCAAwC,EACzC,MAAM,4BAA4B,CAAC;AAEpC,MAAM,0BAA0B,GAAW;IACzC,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAa,EAAU,EAAE,CACzE,WAAW,iCACN,0BAA0B,KAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,GAAG,qCAAqC,KAAK,EACrD,QAAQ,EAAE,GAAG,wCAAwC,KAAK,EAC1D,QAAQ,EAAE,GAAG,wCAAwC,KAAK,EAC1D,MAAM,EAAE,mBAAmB,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EACvD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IACnC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,WAAW,iCACtD,0BAA0B,KAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,qCAAqC,KAAK,IACxD,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC,OAAO;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE;QACJ,YAAY,EAAE,QAAQ;QACtB,gCAAgC,EAAE;YAChC,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,WAAW;SACpB;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE;QACJ,gCAAgC,EAAE;YAChC,QAAQ,EAAE;gBACR,MAAM,EAAE,sBAAsB,CAAC,qDAAqD;aACrF;YACD,eAAe,EAAE;gBACf,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,kBAAkB;aAC5B;SACF;KACF;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStyle, ITheme, mergeStyles } from '@fluentui/react';\nimport {\n CONFIGURATION_PAGE_SECTION_HEIGHT_REM,\n CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM,\n CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM\n} from './CallConfiguration.styles';\n\nconst localPreviewContainerStyle: IStyle = {\n borderRadius: '.25rem'\n};\n\n/**\n * @private\n */\nexport const localPreviewContainerStyleDesktop = (theme: ITheme): string =>\n mergeStyles({\n ...localPreviewContainerStyle,\n width: '100%',\n height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`,\n minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`,\n maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem`,\n border: `0.0625rem solid ${theme.palette.neutralLight}`,\n boxShadow: theme.effects.elevation4\n });\n\n/**\n * @private\n */\nexport const localPreviewContainerStyleMobile = mergeStyles({\n ...localPreviewContainerStyle,\n width: '100%',\n height: '100%',\n minHeight: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`\n});\n\n/**\n * @private\n */\nexport const cameraOffLabelStyle = mergeStyles({\n fontSize: '0.75rem' // 12px\n});\n\n/**\n * @private\n */\nexport const localPreviewTileStyle = {\n root: {\n borderRadius: '.25rem',\n '@media (forced-colors: active)': {\n borderColor: '#FFFFFF',\n border: '1px solid'\n }\n }\n};\n\n/**\n * @private\n */\nexport const localPreviewButtonStyle = {\n root: {\n '@media (forced-colors: active)': {\n ':focus': {\n border: '1px solid !important' // we need bang important to override fluents colours\n },\n ':focus::after': {\n border: 'unset !important', // we need bang important to override fluents colours\n outline: 'unset !important'\n }\n }\n }\n};\n"]}
1
+ {"version":3,"file":"LocalPreview.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/LocalPreview.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,qCAAqC,EACrC,wCAAwC,EACxC,wCAAwC,EACzC,MAAM,4BAA4B,CAAC;AAEpC,MAAM,0BAA0B,GAAW;IACzC,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAa,EAAU,EAAE,CACzE,WAAW,iCACN,0BAA0B,KAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,GAAG,qCAAqC,KAAK,EACrD,QAAQ,EAAE,GAAG,wCAAwC,KAAK,EAC1D,QAAQ,EAAE,GAAG,wCAAwC,KAAK,EAC1D,MAAM,EAAE,mBAAmB,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EACvD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IACnC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,WAAW,iCACtD,0BAA0B,KAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,qCAAqC,KAAK,IACxD,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC,OAAO;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE;QACJ,YAAY,EAAE,QAAQ;QACtB,gCAAgC,EAAE;YAChC,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,WAAW;SACpB;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE;QACJ,gCAAgC,EAAE;YAChC,QAAQ,EAAE;gBACR,MAAM,EAAE,sBAAsB,CAAC,qDAAqD;aACrF;YACD,eAAe,EAAE;gBACf,MAAM,EAAE,kBAAkB,EAAE,qDAAqD;gBACjF,OAAO,EAAE,kBAAkB;aAC5B;SACF;KACF;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStyle, ITheme, mergeStyles } from '@fluentui/react';\nimport {\n CONFIGURATION_PAGE_SECTION_HEIGHT_REM,\n CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM,\n CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM\n} from './CallConfiguration.styles';\n\nconst localPreviewContainerStyle: IStyle = {\n borderRadius: '.25rem'\n};\n\n/**\n * @private\n */\nexport const localPreviewContainerStyleDesktop = (theme: ITheme): string =>\n mergeStyles({\n ...localPreviewContainerStyle,\n width: '100%',\n height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`,\n minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`,\n maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem`,\n border: `0.0625rem solid ${theme.palette.neutralLight}`,\n boxShadow: theme.effects.elevation4\n });\n\n/**\n * @private\n */\nexport const localPreviewContainerStyleMobile = mergeStyles({\n ...localPreviewContainerStyle,\n width: '100%',\n height: '100%',\n minHeight: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`\n});\n\n/**\n * @private\n */\nexport const cameraOffLabelStyle = mergeStyles({\n fontSize: '0.75rem' // 12px\n});\n\n/**\n * @private\n */\nexport const localPreviewTileStyle = {\n root: {\n borderRadius: '.25rem',\n '@media (forced-colors: active)': {\n borderColor: '#FFFFFF',\n border: '1px solid'\n }\n }\n};\n\n/**\n * @private\n */\nexport const localPreviewButtonStyle = {\n root: {\n '@media (forced-colors: active)': {\n ':focus': {\n border: '1px solid !important' // we need bang important to override fluents colours\n },\n ':focus::after': {\n border: 'unset !important', // we need bang important to override fluents colours\n outline: 'unset !important'\n }\n }\n }\n};\n"]}
@@ -13,7 +13,7 @@ export const videoCameraIconStyle = mergeStyles({
13
13
  */
14
14
  export const buttonStyle = mergeStyles({
15
15
  fontWeight: 600,
16
- fontSize: '0.875rem',
16
+ fontSize: '0.875rem', // 14px
17
17
  height: '2.75rem',
18
18
  width: '100%'
19
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StartCallButton.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/StartCallButton.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;IACrC,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,aAAa,EAAE;QACb,OAAO,EAAE,UAAU;KACpB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, mergeStyles } from '@fluentui/react';\n\n/**\n * @private\n */\nexport const videoCameraIconStyle = mergeStyles({\n marginRight: '0.375rem',\n fontSize: '1.375rem'\n});\n\n/**\n * @private\n */\nexport const buttonStyle = mergeStyles({\n fontWeight: 600,\n fontSize: '0.875rem', // 14px\n height: '2.75rem',\n width: '100%'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n"]}
1
+ {"version":3,"file":"StartCallButton.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/styles/StartCallButton.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;IACrC,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,UAAU,EAAE,OAAO;IAC7B,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,aAAa,EAAE;QACb,OAAO,EAAE,UAAU;KACpB;CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, mergeStyles } from '@fluentui/react';\n\n/**\n * @private\n */\nexport const videoCameraIconStyle = mergeStyles({\n marginRight: '0.375rem',\n fontSize: '1.375rem'\n});\n\n/**\n * @private\n */\nexport const buttonStyle = mergeStyles({\n fontWeight: 600,\n fontSize: '0.875rem', // 14px\n height: '2.75rem',\n width: '100%'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n"]}
@@ -4,7 +4,7 @@ import { CommonCallControlOptions } from '../../common/types/CommonCallControlOp
4
4
  *
5
5
  * @public
6
6
  */
7
- export declare type CallControlOptions = CommonCallControlOptions & {
7
+ export type CallControlOptions = CommonCallControlOptions & {
8
8
  /**
9
9
  * Show, Hide or Disable participants button during a call. This is the option only work for legacyControl bar.
10
10
  * @defaultValue true
@@ -5,5 +5,5 @@ export interface CapabilityChangedNotificationTrackingInfo {
5
5
  lastDismissedAt?: Date;
6
6
  }
7
7
  /** @private */
8
- export declare type TrackedCapabilityChangedNotifications = Partial<Record<ParticipantCapabilityName, CapabilityChangedNotificationTrackingInfo>>;
8
+ export type TrackedCapabilityChangedNotifications = Partial<Record<ParticipantCapabilityName, CapabilityChangedNotificationTrackingInfo>>;
9
9
  //# sourceMappingURL=CapabilityChangedNotificationTracking.d.ts.map
@@ -5,5 +5,5 @@ export interface ErrorTrackingInfo {
5
5
  lastDismissedAt?: Date;
6
6
  }
7
7
  /** @private */
8
- export declare type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;
8
+ export type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;
9
9
  //# sourceMappingURL=ErrorTracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorTracking.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/types/ErrorTracking.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ErrorType } from '@internal/react-components';\n\n/** @private */\nexport interface ErrorTrackingInfo {\n mostRecentlyActive: Date;\n lastDismissedAt?: Date;\n}\n\n/** @private */\nexport type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"ErrorTracking.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/types/ErrorTracking.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ErrorType } from '@internal/react-components';\n\n/** @private */\nexport interface ErrorTrackingInfo {\n mostRecentlyActive: Date;\n lastDismissedAt?: Date;\n}\n\n/** @private */\nexport type TrackedErrors = Partial<Record<ErrorType, ErrorTrackingInfo>>;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { RemoteParticipantState } from "../../../../../calling-stateful-client/src";
2
- declare type ParticipantChangedAnnouncmentStrings = {
2
+ type ParticipantChangedAnnouncmentStrings = {
3
3
  participantJoinedNoticeString: string;
4
4
  twoParticipantJoinedNoticeString: string;
5
5
  threeParticipantJoinedNoticeString: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaGalleryUtils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,6BAA6B,EAAE,aAAa,EAAE,yCAAgC;AAEvF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sCAAsC,EAAE,MAAM,mCAAmC,CAAC;AAgB3F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAW,EAAE;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO;YACL,6BAA6B,EAAE,MAAM,CAAC,6BAA6B;YACnE,gCAAgC,EAAE,MAAM,CAAC,gCAAgC;YACzE,kCAAkC,EAAE,MAAM,CAAC,kCAAkC;YAC7E,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;YAC/D,8BAA8B,EAAE,MAAM,CAAC,8BAA8B;YACrE,gCAAgC,EAAE,MAAM,CAAC,gCAAgC;YACzE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;YACzD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,6BAA6B,EAAE,MAAM,CAAC,6BAA6B;YACnE,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;SAChE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;IAChF;;;;;OAKG;IACH,MAAM,oBAAoB,GAAG,MAAM,CAA2B,mBAAmB,CAAC,CAAC;IAEnF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAQ,EAAE;QAChD,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE;QACX,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACzG,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAC1E,CAAC;QACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CACzE,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,gBAAgB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1E;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,gBAAgB,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;SACtE;QACD,kCAAkC;QAClC,oBAAoB,CAAC,OAAO,GAAG,mBAAmB,CAAC;IACrD,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;IACnC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,SAA4B,EAC5B,YAAsC,EACtC,OAA6C,EACrC,EAAE;;IACV;;OAEG;IACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,EAAE,CAAC;KACX;IACD;;;OAGG;IACH,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAExE;;;OAGG;IACH,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QACjG,OAAO,aAAa,CAClB,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EACpG;YACE,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC9D,CACF,CAAC;KACH;IACD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,WAAW,mCAAI,OAAO,CAAC,wBAAwB,CAAA,EAAA,CAAC,CAAC;IAE1G,QAAQ,kBAAkB,CAAC,MAAM,EAAE;QACjC,KAAK,CAAC;YACJ,OAAO,aAAa,CAClB,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EACpG,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;QACJ,KAAK,CAAC;YACJ,OAAO,aAAa,CAClB,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAC1G;gBACE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACjC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;aAClC,CACF,CAAC;QACJ,KAAK,CAAC;YACJ,OAAO,aAAa,CAClB,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAC9G;gBACE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACjC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACjC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;aAClC,CACF,CAAC;KACL;IAED;;;;;;OAMG;IAEH,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;IAEhE,OAAO,aAAa,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE;QAC3G,YAAY,EAAE,MAAA,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,mCAAI,OAAO,CAAC,wBAAwB;QACnF,YAAY,EAAE,MAAA,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,mCAAI,OAAO,CAAC,wBAAwB;QACnF,YAAY,EAAE,MAAA,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,mCAAI,OAAO,CAAC,wBAAwB;QACnF,iBAAiB,EAAE,yBAAyB,CAAC,QAAQ,EAAE;KACxD,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { toFlatCommunicationIdentifier, _formatString } from '@internal/acs-ui-common';\nimport { RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { useMemo, useRef, useState } from 'react';\nimport { useLocale } from '../../localization';\nimport { useSelector } from '../hooks/useSelector';\nimport { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\n\ntype ParticipantChangedAnnouncmentStrings = {\n participantJoinedNoticeString: string;\n twoParticipantJoinedNoticeString: string;\n threeParticipantJoinedNoticeString: string;\n participantLeftNoticeString: string;\n twoParticipantLeftNoticeString: string;\n threeParticipantLeftNoticeString: string;\n unnamedParticipantString: string;\n manyParticipantsJoined: string;\n manyParticipantsLeft: string;\n manyUnnamedParticipantsJoined: string;\n manyUnnamedParticipantsLeft: string;\n};\n\n/**\n * sets the announcement string whenever a Participant comes or goes from a call to be\n * used by the system narrator.\n *\n * @returns string to be used by the narrator and Announcer component\n *\n * @internal\n */\nexport const useParticipantChangedAnnouncement = (): string => {\n const locale = useLocale().strings.call;\n const strings = useMemo(() => {\n return {\n participantJoinedNoticeString: locale.participantJoinedNoticeString,\n twoParticipantJoinedNoticeString: locale.twoParticipantJoinedNoticeString,\n threeParticipantJoinedNoticeString: locale.threeParticipantJoinedNoticeString,\n participantLeftNoticeString: locale.participantLeftNoticeString,\n twoParticipantLeftNoticeString: locale.twoParticipantLeftNoticeString,\n threeParticipantLeftNoticeString: locale.threeParticipantLeftNoticeString,\n unnamedParticipantString: locale.unnamedParticipantString,\n manyParticipantsJoined: locale.manyParticipantsJoined,\n manyParticipantsLeft: locale.manyParticipantsLeft,\n manyUnnamedParticipantsJoined: locale.manyUnnamedParticipantsJoined,\n manyUnnamedParticipantsLeft: locale.manyUnnamedParticipantsLeft\n };\n }, [locale]);\n const [announcerString, setAnnouncerString] = useState<string>('');\n const currentParticipants = useSelector(getRemoteParticipantsConnectedSelector);\n /**\n * We want to use a useRef here since we want to not fire this hook based on the previous participants\n * this allows this value to be used in the hook without being in the dependency array.\n *\n * Note: By definition if this hook is used in another component it is not pure anymore.\n */\n const previousParticipants = useRef<RemoteParticipantState[]>(currentParticipants);\n\n const resetAnnoucement = (string: string): void => {\n setAnnouncerString(string);\n };\n\n useMemo(() => {\n const currentIds = currentParticipants.map((p) => toFlatCommunicationIdentifier(p.identifier));\n const previousIds = previousParticipants.current.map((p) => toFlatCommunicationIdentifier(p.identifier));\n const whoJoined = currentParticipants.filter(\n (p) => !previousIds.includes(toFlatCommunicationIdentifier(p.identifier))\n );\n const whoLeft = previousParticipants.current.filter(\n (p) => !currentIds.includes(toFlatCommunicationIdentifier(p.identifier))\n );\n if (whoJoined.length > 0) {\n resetAnnoucement(createAnnouncementString('joined', whoJoined, strings));\n }\n if (whoLeft.length > 0) {\n resetAnnoucement(createAnnouncementString('left', whoLeft, strings));\n }\n // Update cached value at the end.\n previousParticipants.current = currentParticipants;\n }, [currentParticipants, strings]);\n return announcerString;\n};\n\n/**\n * Generates the announcement string for when a participant joins or leaves a call.\n */\nexport const createAnnouncementString = (\n direction: 'joined' | 'left',\n participants: RemoteParticipantState[],\n strings: ParticipantChangedAnnouncmentStrings\n): string => {\n /**\n * If there are no participants return empty string.\n */\n if (participants.length === 0) {\n return '';\n }\n /**\n * Filter participants into two arrays to put all the unnamed participants at the back of the\n * names being announced.\n */\n const unnamedParticipants = participants.filter((p) => !p.displayName);\n const namedParicipants = participants.filter((p) => p.displayName);\n const sortedParticipants = namedParicipants.concat(unnamedParticipants);\n\n /**\n * if there are only unnamed participants present in the array announce a special unnamed participants\n * only string.\n */\n if (sortedParticipants.filter((p) => p.displayName).length === 0 && sortedParticipants.length > 1) {\n return _formatString(\n direction === 'joined' ? strings.manyUnnamedParticipantsJoined : strings.manyUnnamedParticipantsLeft,\n {\n numOfParticipants: (sortedParticipants.length - 1).toString()\n }\n );\n }\n const participantNames = sortedParticipants.map((p) => p.displayName ?? strings.unnamedParticipantString);\n\n switch (sortedParticipants.length) {\n case 1:\n return _formatString(\n direction === 'joined' ? strings.participantJoinedNoticeString : strings.participantLeftNoticeString,\n { displayName: participantNames[0] }\n );\n case 2:\n return _formatString(\n direction === 'joined' ? strings.twoParticipantJoinedNoticeString : strings.twoParticipantLeftNoticeString,\n {\n displayName1: participantNames[0],\n displayName2: participantNames[1]\n }\n );\n case 3:\n return _formatString(\n direction === 'joined' ? strings.threeParticipantJoinedNoticeString : strings.threeParticipantLeftNoticeString,\n {\n displayName1: participantNames[0],\n displayName2: participantNames[1],\n displayName3: participantNames[2]\n }\n );\n }\n\n /**\n * If we have more than 3 participants joining we need to do something more to announce them\n * appropriately.\n *\n * We don't want to announce every name when more than 3 participants join at once so\n * we parse out the first 3 names we have and announce those with the number of others.\n */\n\n const numberOfExtraParticipants = sortedParticipants.length - 3;\n\n return _formatString(direction === 'joined' ? strings.manyParticipantsJoined : strings.manyParticipantsLeft, {\n displayName1: sortedParticipants[0].displayName ?? strings.unnamedParticipantString,\n displayName2: sortedParticipants[1].displayName ?? strings.unnamedParticipantString,\n displayName3: sortedParticipants[2].displayName ?? strings.unnamedParticipantString,\n numOfParticipants: numberOfExtraParticipants.toString()\n });\n};\n\"../../../../../acs-ui-common/src\"\"../../../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"MediaGalleryUtils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { toFlatCommunicationIdentifier, _formatString } from '@internal/acs-ui-common';\nimport { RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { useMemo, useRef, useState } from 'react';\nimport { useLocale } from '../../localization';\nimport { useSelector } from '../hooks/useSelector';\nimport { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\n\ntype ParticipantChangedAnnouncmentStrings = {\n participantJoinedNoticeString: string;\n twoParticipantJoinedNoticeString: string;\n threeParticipantJoinedNoticeString: string;\n participantLeftNoticeString: string;\n twoParticipantLeftNoticeString: string;\n threeParticipantLeftNoticeString: string;\n unnamedParticipantString: string;\n manyParticipantsJoined: string;\n manyParticipantsLeft: string;\n manyUnnamedParticipantsJoined: string;\n manyUnnamedParticipantsLeft: string;\n};\n\n/**\n * sets the announcement string whenever a Participant comes or goes from a call to be\n * used by the system narrator.\n *\n * @returns string to be used by the narrator and Announcer component\n *\n * @internal\n */\nexport const useParticipantChangedAnnouncement = (): string => {\n const locale = useLocale().strings.call;\n const strings = useMemo(() => {\n return {\n participantJoinedNoticeString: locale.participantJoinedNoticeString,\n twoParticipantJoinedNoticeString: locale.twoParticipantJoinedNoticeString,\n threeParticipantJoinedNoticeString: locale.threeParticipantJoinedNoticeString,\n participantLeftNoticeString: locale.participantLeftNoticeString,\n twoParticipantLeftNoticeString: locale.twoParticipantLeftNoticeString,\n threeParticipantLeftNoticeString: locale.threeParticipantLeftNoticeString,\n unnamedParticipantString: locale.unnamedParticipantString,\n manyParticipantsJoined: locale.manyParticipantsJoined,\n manyParticipantsLeft: locale.manyParticipantsLeft,\n manyUnnamedParticipantsJoined: locale.manyUnnamedParticipantsJoined,\n manyUnnamedParticipantsLeft: locale.manyUnnamedParticipantsLeft\n };\n }, [locale]);\n const [announcerString, setAnnouncerString] = useState<string>('');\n const currentParticipants = useSelector(getRemoteParticipantsConnectedSelector);\n /**\n * We want to use a useRef here since we want to not fire this hook based on the previous participants\n * this allows this value to be used in the hook without being in the dependency array.\n *\n * Note: By definition if this hook is used in another component it is not pure anymore.\n */\n const previousParticipants = useRef<RemoteParticipantState[]>(currentParticipants);\n\n const resetAnnoucement = (string: string): void => {\n setAnnouncerString(string);\n };\n\n useMemo(() => {\n const currentIds = currentParticipants.map((p) => toFlatCommunicationIdentifier(p.identifier));\n const previousIds = previousParticipants.current.map((p) => toFlatCommunicationIdentifier(p.identifier));\n const whoJoined = currentParticipants.filter(\n (p) => !previousIds.includes(toFlatCommunicationIdentifier(p.identifier))\n );\n const whoLeft = previousParticipants.current.filter(\n (p) => !currentIds.includes(toFlatCommunicationIdentifier(p.identifier))\n );\n if (whoJoined.length > 0) {\n resetAnnoucement(createAnnouncementString('joined', whoJoined, strings));\n }\n if (whoLeft.length > 0) {\n resetAnnoucement(createAnnouncementString('left', whoLeft, strings));\n }\n // Update cached value at the end.\n previousParticipants.current = currentParticipants;\n }, [currentParticipants, strings]);\n return announcerString;\n};\n\n/**\n * Generates the announcement string for when a participant joins or leaves a call.\n */\nexport const createAnnouncementString = (\n direction: 'joined' | 'left',\n participants: RemoteParticipantState[],\n strings: ParticipantChangedAnnouncmentStrings\n): string => {\n /**\n * If there are no participants return empty string.\n */\n if (participants.length === 0) {\n return '';\n }\n /**\n * Filter participants into two arrays to put all the unnamed participants at the back of the\n * names being announced.\n */\n const unnamedParticipants = participants.filter((p) => !p.displayName);\n const namedParicipants = participants.filter((p) => p.displayName);\n const sortedParticipants = namedParicipants.concat(unnamedParticipants);\n\n /**\n * if there are only unnamed participants present in the array announce a special unnamed participants\n * only string.\n */\n if (sortedParticipants.filter((p) => p.displayName).length === 0 && sortedParticipants.length > 1) {\n return _formatString(\n direction === 'joined' ? strings.manyUnnamedParticipantsJoined : strings.manyUnnamedParticipantsLeft,\n {\n numOfParticipants: (sortedParticipants.length - 1).toString()\n }\n );\n }\n const participantNames = sortedParticipants.map((p) => p.displayName ?? strings.unnamedParticipantString);\n\n switch (sortedParticipants.length) {\n case 1:\n return _formatString(\n direction === 'joined' ? strings.participantJoinedNoticeString : strings.participantLeftNoticeString,\n { displayName: participantNames[0] }\n );\n case 2:\n return _formatString(\n direction === 'joined' ? strings.twoParticipantJoinedNoticeString : strings.twoParticipantLeftNoticeString,\n {\n displayName1: participantNames[0],\n displayName2: participantNames[1]\n }\n );\n case 3:\n return _formatString(\n direction === 'joined' ? strings.threeParticipantJoinedNoticeString : strings.threeParticipantLeftNoticeString,\n {\n displayName1: participantNames[0],\n displayName2: participantNames[1],\n displayName3: participantNames[2]\n }\n );\n }\n\n /**\n * If we have more than 3 participants joining we need to do something more to announce them\n * appropriately.\n *\n * We don't want to announce every name when more than 3 participants join at once so\n * we parse out the first 3 names we have and announce those with the number of others.\n */\n\n const numberOfExtraParticipants = sortedParticipants.length - 3;\n\n return _formatString(direction === 'joined' ? strings.manyParticipantsJoined : strings.manyParticipantsLeft, {\n displayName1: sortedParticipants[0].displayName ?? strings.unnamedParticipantString,\n displayName2: sortedParticipants[1].displayName ?? strings.unnamedParticipantString,\n displayName3: sortedParticipants[2].displayName ?? strings.unnamedParticipantString,\n numOfParticipants: numberOfExtraParticipants.toString()\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrackCapabilityChangedNotifications.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,+CAA+C;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAW1E,+CAA+C;AAC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,8BAA8D,EACtB,EAAE;IAC1C,MAAM,CAAC,qCAAqC,EAAE,wCAAwC,CAAC,GACrF,QAAQ,CAAwC,EAAE,CAAC,CAAC;IAEtD,0GAA0G;IAC1G,+GAA+G;IAC/G,6FAA6F;IAC7F,MAAM,mBAAmB,GAAG,MAAM,CAA4C;QAC5E,WAAW,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE;KAC9F,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,OAAO,GAAG,4CAA4C,CACxE,8BAA8B,EAC9B,mBAAmB,CAAC,OAAO,CAC5B,CAAC;QACF,wCAAwC,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,kEAAkE,CAChE,IAAI,EACJ,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAC3C,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAErC,MAAM,sCAAsC,GAAG,WAAW,CAAC,CAAC,YAA2C,EAAE,EAAE;QACzG,wCAAwC,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,6CAA6C,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CACjF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oCAAoC,GAAG,OAAO,CAClD,GAAG,EAAE,CACH,0CAA0C,CACxC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAC1C,qCAAqC,CACtC,EACH,CAAC,qCAAqC,CAAC,CACxC,CAAC;IAEF,OAAO;QACL,gCAAgC,EAAE,oCAAoC;QACtE,qBAAqB,EAAE,sCAAsC;KAC9D,CAAC;AACJ,CAAC,CAAC;AAEF,+CAA+C;AAC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CACxD,mBAAoD,EACpD,oBAA2D,EAC1B,EAAE;IACnC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,EAAE;QAC9E,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACpF,OAAO,CACL,CAAC,mBAAmB;YACpB,CAAC,mBAAmB,CAAC,eAAe;YACpC,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,kBAAkB,CAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC;AAEF,+CAA+C;AAC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kEAAkE,GAAG,CAChF,4BAAmE,EACnE,mBAAoD,EACb,EAAE;;IACzC,MAAM,oBAAoB,GAA0C,EAAE,CAAC;IAEvE,wIAAwI;IACxI,KAAK,MAAM,kBAAkB,IAAI,mBAAmB,EAAE;QACpD,MAAM,2BAA2B,GAAG,4BAA4B,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACpG,oBAAoB,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG;YACxD,kBAAkB,EAChB,MAAA,MAAA,kBAAkB,CAAC,SAAS,mCAAI,2BAA2B,aAA3B,2BAA2B,uBAA3B,2BAA2B,CAAE,kBAAkB,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACzG,eAAe,EAAE,2BAA2B,aAA3B,2BAA2B,uBAA3B,2BAA2B,CAAE,eAAe;SAC9D,CAAC;KACH;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAEF,+CAA+C;AAC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAC3D,cAAyC,EACzC,oBAA2D,EACpB,EAAE;IACzC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAElE,uCACK,oBAAoB,KACvB,CAAC,cAAc,CAAC,kCACX,CAAC,oBAAoB,IAAI,EAAE,CAAC,KAC/B,eAAe,EAAE,GAAG,OAEtB;AACJ,CAAC,CAAC;AAaF,+CAA+C;AAC/C,MAAM,4CAA4C,GAAG,CACnD,8BAA8D,EAC9D,mBAA8D,EACnB,EAAE;IAC7C,IAAI,CAAC,8BAA8B,CAAC,sBAAsB,EAAE;QAC1D,OAAO,mBAAmB,CAAC;KAC5B;IAED,KAAK,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAC/D,8BAA8B,CAAC,sBAAsB,CAAC,QAAQ,CAC/D,EAAE;QACD,4GAA4G;QAC5G,+FAA+F;QAC/F,IACE,mBAAmB,CAAC,cAAc,CAAC;YACnC,kBAAkB,CAAC,SAAS,KAAK,mBAAmB,CAAC,cAAc,CAAC,CAAC,SAAS;YAC9E,8BAA8B,CAAC,sBAAsB,CAAC,MAAM,KAAK,mBAAmB,CAAC,cAAc,CAAC,CAAC,aAAa,EAClH;YACA,SAAS;SACV;QACD,MAAM,+BAA+B,GAAkC;YACrE,cAAc,EAAE,cAA2C;YAC3D,SAAS,EAAE,kBAAkB,CAAC,SAAS;YACvC,aAAa,EAAE,8BAA8B,CAAC,sBAAsB,CAAC,MAAM;YAC3E,IAAI,EAAE,8BAA8B,CAAC,eAAe;YACpD,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAChC,CAAC;QACF,mBAAmB,CAAC,cAAc,CAAC,GAAG,+BAA+B,CAAC;KACvE;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(capabilities) */\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(capabilities) */\nimport { CapabilitiesChangeInfo, ParticipantCapabilityName, ParticipantRole } from '@azure/communication-calling';\n/* @conditional-compile-remove(capabilities) */\nimport {\n CapabalityChangedNotification,\n CapabilitiesChangeNotificationBarProps\n} from '../components/CapabilitiesChangedNotificationBar';\n/* @conditional-compile-remove(capabilities) */\nimport { TrackedCapabilityChangedNotifications } from '../types/CapabilityChangedNotificationTracking';\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const useTrackedCapabilityChangedNotifications = (\n capabilitiesChangedAndRoleInfo: CapabilitiesChangedInfoAndRole\n): CapabilitiesChangeNotificationBarProps => {\n const [trackedCapabilityChangedNotifications, setTrackedCapabilityChangedNotifications] =\n useState<TrackedCapabilityChangedNotifications>({});\n\n // Initialize a share screen capability changed notification with 'RoleChanged' reason so that the initial\n // share screen capability changed info from the Calling SDK when joining Teams interop will be ignored because\n // being able to share screen is assumed by default. This is inline with what Teams is doing.\n const activeNotifications = useRef<LatestCapabilityChangedNotificationRecord>({\n shareScreen: { capabilityName: 'shareScreen', isPresent: true, changedReason: 'RoleChanged' }\n });\n\n useEffect(() => {\n activeNotifications.current = updateLatestCapabilityChangedNotificationMap(\n capabilitiesChangedAndRoleInfo,\n activeNotifications.current\n );\n setTrackedCapabilityChangedNotifications((prev) =>\n updateTrackedCapabilityChangedNotificationsWithActiveNotifications(\n prev,\n Object.values(activeNotifications.current)\n )\n );\n }, [capabilitiesChangedAndRoleInfo]);\n\n const onDismissCapabilityChangedNotification = useCallback((notification: CapabalityChangedNotification) => {\n setTrackedCapabilityChangedNotifications((prev) =>\n trackCapabilityChangedNotificationAsDismissed(notification.capabilityName, prev)\n );\n }, []);\n\n const latestCapabilityChangedNotifications = useMemo(\n () =>\n filterLatestCapabilityChangedNotifications(\n Object.values(activeNotifications.current),\n trackedCapabilityChangedNotifications\n ),\n [trackedCapabilityChangedNotifications]\n );\n\n return {\n capabilitiesChangedNotifications: latestCapabilityChangedNotifications,\n onDismissNotification: onDismissCapabilityChangedNotification\n };\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Take the set of active notifications, and filter to only those that are newer than previously dismissed notifications or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestCapabilityChangedNotifications = (\n activeNotifications: CapabalityChangedNotification[],\n trackedNotifications: TrackedCapabilityChangedNotifications\n): CapabalityChangedNotification[] => {\n const filteredNotifications = activeNotifications.filter((activeNotification) => {\n const trackedNotification = trackedNotifications[activeNotification.capabilityName];\n return (\n !trackedNotification ||\n !trackedNotification.lastDismissedAt ||\n trackedNotification.lastDismissedAt < trackedNotification.mostRecentlyActive\n );\n });\n return filteredNotifications;\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Maintain a record of the most recently active notification for each capability name.\n *\n * @private\n */\nexport const updateTrackedCapabilityChangedNotificationsWithActiveNotifications = (\n existingTrackedNotifications: TrackedCapabilityChangedNotifications,\n activeNotifications: CapabalityChangedNotification[]\n): TrackedCapabilityChangedNotifications => {\n const trackedNotifications: TrackedCapabilityChangedNotifications = {};\n\n // Only care about active notifications. If notifications are no longer active we do not track that they have been previously dismissed.\n for (const activeNotification of activeNotifications) {\n const existingTrackedNotification = existingTrackedNotifications[activeNotification.capabilityName];\n trackedNotifications[activeNotification.capabilityName] = {\n mostRecentlyActive:\n activeNotification.timestamp ?? existingTrackedNotification?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedNotification?.lastDismissedAt\n };\n }\n\n return trackedNotifications;\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const trackCapabilityChangedNotificationAsDismissed = (\n capabilityName: ParticipantCapabilityName,\n trackedNotifications: TrackedCapabilityChangedNotifications\n): TrackedCapabilityChangedNotifications => {\n const now = new Date(Date.now());\n const existingNotification = trackedNotifications[capabilityName];\n\n return {\n ...trackedNotifications,\n [capabilityName]: {\n ...(existingNotification || {}),\n lastDismissedAt: now\n }\n };\n};\n\n/* @conditional-compile-remove(capabilities) */\ninterface CapabilitiesChangedInfoAndRole {\n capabilitiesChangeInfo?: CapabilitiesChangeInfo;\n participantRole?: ParticipantRole;\n}\n\n/* @conditional-compile-remove(capabilities) */\ntype LatestCapabilityChangedNotificationRecord = Partial<\n Record<ParticipantCapabilityName, CapabalityChangedNotification>\n>;\n\n/* @conditional-compile-remove(capabilities) */\nconst updateLatestCapabilityChangedNotificationMap = (\n capabilitiesChangedInfoAndRole: CapabilitiesChangedInfoAndRole,\n activeNotifications: LatestCapabilityChangedNotificationRecord\n): LatestCapabilityChangedNotificationRecord => {\n if (!capabilitiesChangedInfoAndRole.capabilitiesChangeInfo) {\n return activeNotifications;\n }\n\n for (const [capabilityName, newCapabilityValue] of Object.entries(\n capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.newValue\n )) {\n // If the active notification for a capability has the same `isPresent` value and the same reason as the new\n // capability value from the SDK then we will not create a new notification to avoid redundancy\n if (\n activeNotifications[capabilityName] &&\n newCapabilityValue.isPresent === activeNotifications[capabilityName].isPresent &&\n capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason === activeNotifications[capabilityName].changedReason\n ) {\n continue;\n }\n const newCapabilityChangeNotification: CapabalityChangedNotification = {\n capabilityName: capabilityName as ParticipantCapabilityName,\n isPresent: newCapabilityValue.isPresent,\n changedReason: capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason,\n role: capabilitiesChangedInfoAndRole.participantRole,\n timestamp: new Date(Date.now())\n };\n activeNotifications[capabilityName] = newCapabilityChangeNotification;\n }\n return activeNotifications;\n};\n"]}
1
+ {"version":3,"file":"TrackCapabilityChangedNotifications.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(capabilities) */\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(capabilities) */\nimport { CapabilitiesChangeInfo, ParticipantCapabilityName, ParticipantRole } from '@azure/communication-calling';\n/* @conditional-compile-remove(capabilities) */\nimport {\n CapabalityChangedNotification,\n CapabilitiesChangeNotificationBarProps\n} from '../components/CapabilitiesChangedNotificationBar';\n/* @conditional-compile-remove(capabilities) */\nimport { TrackedCapabilityChangedNotifications } from '../types/CapabilityChangedNotificationTracking';\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const useTrackedCapabilityChangedNotifications = (\n capabilitiesChangedAndRoleInfo: CapabilitiesChangedInfoAndRole\n): CapabilitiesChangeNotificationBarProps => {\n const [trackedCapabilityChangedNotifications, setTrackedCapabilityChangedNotifications] =\n useState<TrackedCapabilityChangedNotifications>({});\n\n // Initialize a share screen capability changed notification with 'RoleChanged' reason so that the initial\n // share screen capability changed info from the Calling SDK when joining Teams interop will be ignored because\n // being able to share screen is assumed by default. This is inline with what Teams is doing.\n const activeNotifications = useRef<LatestCapabilityChangedNotificationRecord>({\n shareScreen: { capabilityName: 'shareScreen', isPresent: true, changedReason: 'RoleChanged' }\n });\n\n useEffect(() => {\n activeNotifications.current = updateLatestCapabilityChangedNotificationMap(\n capabilitiesChangedAndRoleInfo,\n activeNotifications.current\n );\n setTrackedCapabilityChangedNotifications((prev) =>\n updateTrackedCapabilityChangedNotificationsWithActiveNotifications(\n prev,\n Object.values(activeNotifications.current)\n )\n );\n }, [capabilitiesChangedAndRoleInfo]);\n\n const onDismissCapabilityChangedNotification = useCallback((notification: CapabalityChangedNotification) => {\n setTrackedCapabilityChangedNotifications((prev) =>\n trackCapabilityChangedNotificationAsDismissed(notification.capabilityName, prev)\n );\n }, []);\n\n const latestCapabilityChangedNotifications = useMemo(\n () =>\n filterLatestCapabilityChangedNotifications(\n Object.values(activeNotifications.current),\n trackedCapabilityChangedNotifications\n ),\n [trackedCapabilityChangedNotifications]\n );\n\n return {\n capabilitiesChangedNotifications: latestCapabilityChangedNotifications,\n onDismissNotification: onDismissCapabilityChangedNotification\n };\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Take the set of active notifications, and filter to only those that are newer than previously dismissed notifications or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestCapabilityChangedNotifications = (\n activeNotifications: CapabalityChangedNotification[],\n trackedNotifications: TrackedCapabilityChangedNotifications\n): CapabalityChangedNotification[] => {\n const filteredNotifications = activeNotifications.filter((activeNotification) => {\n const trackedNotification = trackedNotifications[activeNotification.capabilityName];\n return (\n !trackedNotification ||\n !trackedNotification.lastDismissedAt ||\n trackedNotification.lastDismissedAt < trackedNotification.mostRecentlyActive\n );\n });\n return filteredNotifications;\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Maintain a record of the most recently active notification for each capability name.\n *\n * @private\n */\nexport const updateTrackedCapabilityChangedNotificationsWithActiveNotifications = (\n existingTrackedNotifications: TrackedCapabilityChangedNotifications,\n activeNotifications: CapabalityChangedNotification[]\n): TrackedCapabilityChangedNotifications => {\n const trackedNotifications: TrackedCapabilityChangedNotifications = {};\n\n // Only care about active notifications. If notifications are no longer active we do not track that they have been previously dismissed.\n for (const activeNotification of activeNotifications) {\n const existingTrackedNotification = existingTrackedNotifications[activeNotification.capabilityName];\n trackedNotifications[activeNotification.capabilityName] = {\n mostRecentlyActive:\n activeNotification.timestamp ?? existingTrackedNotification?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedNotification?.lastDismissedAt\n };\n }\n\n return trackedNotifications;\n};\n\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const trackCapabilityChangedNotificationAsDismissed = (\n capabilityName: ParticipantCapabilityName,\n trackedNotifications: TrackedCapabilityChangedNotifications\n): TrackedCapabilityChangedNotifications => {\n const now = new Date(Date.now());\n const existingNotification = trackedNotifications[capabilityName];\n\n return {\n ...trackedNotifications,\n [capabilityName]: {\n ...(existingNotification || {}),\n lastDismissedAt: now\n }\n };\n};\n\n/* @conditional-compile-remove(capabilities) */\ninterface CapabilitiesChangedInfoAndRole {\n capabilitiesChangeInfo?: CapabilitiesChangeInfo;\n participantRole?: ParticipantRole;\n}\n\n/* @conditional-compile-remove(capabilities) */\ntype LatestCapabilityChangedNotificationRecord = Partial<\n Record<ParticipantCapabilityName, CapabalityChangedNotification>\n>;\n\n/* @conditional-compile-remove(capabilities) */\nconst updateLatestCapabilityChangedNotificationMap = (\n capabilitiesChangedInfoAndRole: CapabilitiesChangedInfoAndRole,\n activeNotifications: LatestCapabilityChangedNotificationRecord\n): LatestCapabilityChangedNotificationRecord => {\n if (!capabilitiesChangedInfoAndRole.capabilitiesChangeInfo) {\n return activeNotifications;\n }\n\n for (const [capabilityName, newCapabilityValue] of Object.entries(\n capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.newValue\n )) {\n // If the active notification for a capability has the same `isPresent` value and the same reason as the new\n // capability value from the SDK then we will not create a new notification to avoid redundancy\n if (\n activeNotifications[capabilityName] &&\n newCapabilityValue.isPresent === activeNotifications[capabilityName].isPresent &&\n capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason === activeNotifications[capabilityName].changedReason\n ) {\n continue;\n }\n const newCapabilityChangeNotification: CapabalityChangedNotification = {\n capabilityName: capabilityName as ParticipantCapabilityName,\n isPresent: newCapabilityValue.isPresent,\n changedReason: capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason,\n role: capabilitiesChangedInfoAndRole.participantRole,\n timestamp: new Date(Date.now())\n };\n activeNotifications[capabilityName] = newCapabilityChangeNotification;\n }\n return activeNotifications;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrackErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAkC,EAClC,aAA4B,EACN,EAAE;IACxB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CACL,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,kBAAkB,CACjH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,qBAAoC,EACpC,YAAkC,EACnB,EAAE;;IACjB,MAAM,aAAa,GAAkB,EAAE,CAAC;IAExC,0HAA0H;IAC1H,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;YAChC,kBAAkB,EAAE,MAAA,MAAA,WAAW,CAAC,SAAS,mCAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,kBAAkB,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7G,eAAe,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,eAAe;SACvD,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,aAA4B,EAAiB,EAAE;IACzG,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE/C,uCACK,aAAa,KAChB,CAAC,SAAS,CAAC,kCACN,CAAC,aAAa,IAAI,EAAE,CAAC,KACxB,eAAe,EAAE,GAAG,OAEtB;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorType } from '@internal/react-components';\nimport { TrackedErrors } from '../types/ErrorTracking';\n\n/**\n * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestErrors = (\n activeErrors: ActiveErrorMessage[],\n trackedErrors: TrackedErrors\n): ActiveErrorMessage[] => {\n const filteredErrors = activeErrors.filter((activeError) => {\n const trackedError = trackedErrors[activeError.type];\n return (\n !trackedError || !trackedError.lastDismissedAt || trackedError.lastDismissedAt < trackedError.mostRecentlyActive\n );\n });\n return filteredErrors;\n};\n\n/**\n * Maintain a record of the most recently active error for each error type.\n *\n * @private\n */\nexport const updateTrackedErrorsWithActiveErrors = (\n existingTrackedErrors: TrackedErrors,\n activeErrors: ActiveErrorMessage[]\n): TrackedErrors => {\n const trackedErrors: TrackedErrors = {};\n\n // Only care about active errors. If errors are no longer active we do not track that they have been previously dismissed.\n for (const activeError of activeErrors) {\n const existingTrackedError = existingTrackedErrors[activeError.type];\n trackedErrors[activeError.type] = {\n mostRecentlyActive: activeError.timestamp ?? existingTrackedError?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedError?.lastDismissedAt\n };\n }\n\n return trackedErrors;\n};\n\n/**\n * Create a record for when the error was most recently dismissed for tracking dismissed errors.\n *\n * @private\n */\nexport const trackErrorAsDismissed = (errorType: ErrorType, trackedErrors: TrackedErrors): TrackedErrors => {\n const now = new Date(Date.now());\n const existingError = trackedErrors[errorType];\n\n return {\n ...trackedErrors,\n [errorType]: {\n ...(existingError || {}),\n lastDismissedAt: now\n }\n };\n};\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"TrackErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/TrackErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAkC,EAClC,aAA4B,EACN,EAAE;IACxB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CACL,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,kBAAkB,CACjH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,qBAAoC,EACpC,YAAkC,EACnB,EAAE;;IACjB,MAAM,aAAa,GAAkB,EAAE,CAAC;IAExC,0HAA0H;IAC1H,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;YAChC,kBAAkB,EAAE,MAAA,MAAA,WAAW,CAAC,SAAS,mCAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,kBAAkB,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7G,eAAe,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,eAAe;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,aAA4B,EAAiB,EAAE;IACzG,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE/C,uCACK,aAAa,KAChB,CAAC,SAAS,CAAC,kCACN,CAAC,aAAa,IAAI,EAAE,CAAC,KACxB,eAAe,EAAE,GAAG,OAEtB;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorType } from '@internal/react-components';\nimport { TrackedErrors } from '../types/ErrorTracking';\n\n/**\n * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestErrors = (\n activeErrors: ActiveErrorMessage[],\n trackedErrors: TrackedErrors\n): ActiveErrorMessage[] => {\n const filteredErrors = activeErrors.filter((activeError) => {\n const trackedError = trackedErrors[activeError.type];\n return (\n !trackedError || !trackedError.lastDismissedAt || trackedError.lastDismissedAt < trackedError.mostRecentlyActive\n );\n });\n return filteredErrors;\n};\n\n/**\n * Maintain a record of the most recently active error for each error type.\n *\n * @private\n */\nexport const updateTrackedErrorsWithActiveErrors = (\n existingTrackedErrors: TrackedErrors,\n activeErrors: ActiveErrorMessage[]\n): TrackedErrors => {\n const trackedErrors: TrackedErrors = {};\n\n // Only care about active errors. If errors are no longer active we do not track that they have been previously dismissed.\n for (const activeError of activeErrors) {\n const existingTrackedError = existingTrackedErrors[activeError.type];\n trackedErrors[activeError.type] = {\n mostRecentlyActive: activeError.timestamp ?? existingTrackedError?.mostRecentlyActive ?? new Date(Date.now()),\n lastDismissedAt: existingTrackedError?.lastDismissedAt\n };\n }\n\n return trackedErrors;\n};\n\n/**\n * Create a record for when the error was most recently dismissed for tracking dismissed errors.\n *\n * @private\n */\nexport const trackErrorAsDismissed = (errorType: ErrorType, trackedErrors: TrackedErrors): TrackedErrors => {\n const now = new Date(Date.now());\n const existingError = trackedErrors[errorType];\n\n return {\n ...trackedErrors,\n [errorType]: {\n ...(existingError || {}),\n lastDismissedAt: now\n }\n };\n};\n"]}
@@ -41,7 +41,7 @@ export declare const getEndedCallPageProps: (locale: CompositeLocale, endedCall?
41
41
  /**
42
42
  * type definition for conditional-compilation
43
43
  */
44
- declare type GetCallCompositePageFunction = ((call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage) & ((call: CallState | undefined, previousCall: CallState | undefined, unsupportedBrowserInfo?: {
44
+ type GetCallCompositePageFunction = ((call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage) & ((call: CallState | undefined, previousCall: CallState | undefined, unsupportedBrowserInfo?: {
45
45
  environmentInfo?: EnvironmentInfo;
46
46
  unsupportedBrowserVersionOptedIn?: boolean;
47
47
  }, transferCall?: CallState) => CallCompositePage);
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallAdapterState, CallCompositePage, END_CALL_PAGES } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { CallState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\nimport { AdapterStateModifier } from '../adapter/AzureCommunicationCallAdapter';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundEffectsDependency } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundEffect } from '../adapter/CallAdapter';\nimport { VideoDeviceInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoEffectProcessor } from '@azure/communication-calling';\nimport { CompositeLocale } from '../../localization';\nimport { CallCompositeIcons } from '../../common/icons';\n\nconst ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;\nconst REMOTE_PSTN_USER_HUNG_UP = 560000;\nconst REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];\n/* @conditional-compile-remove(calling-sounds) */\nconst CALL_REJECTED_CODE = 603;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const ROOM_NOT_FOUND_SUB_CODE = 5732;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const ROOM_NOT_VALID_SUB_CODE = 5829;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const NOT_INVITED_TO_ROOM_SUB_CODE = 5828;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const INVITE_TO_ROOM_REMOVED_SUB_CODE = 5317;\n\n/**\n * @private\n */\nexport const isCameraOn = (state: CallAdapterState): boolean => {\n if (state.call) {\n const stream = state.call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return !!stream;\n } else {\n if (state.devices.selectedCamera) {\n const previewOn = _isPreviewOn(state.devices);\n return previewOn;\n }\n }\n return false;\n};\n\n/**\n * Reduce the set of call controls visible on mobile.\n * For example do not show screenshare button.\n *\n * @private\n */\nexport const reduceCallControlsForMobile = (\n callControlOptions: CallControlOptions | boolean | undefined\n): CallControlOptions | false => {\n if (callControlOptions === false) {\n return false;\n }\n\n // Ensure call controls a valid object.\n const reduceCallControlOptions = callControlOptions === true ? {} : callControlOptions || {};\n\n // Set to compressed mode when composite is optimized for mobile\n reduceCallControlOptions.displayType = 'compact';\n\n // Do not show screen share button when composite is optimized for mobile unless the developer\n // has explicitly opted in.\n if (reduceCallControlOptions.screenShareButton !== true) {\n reduceCallControlOptions.screenShareButton = false;\n }\n\n return reduceCallControlOptions;\n};\n\nenum CallEndReasons {\n LEFT_CALL,\n ACCESS_DENIED,\n REMOVED_FROM_CALL\n}\n\nconst getCallEndReason = (call: CallState): CallEndReasons => {\n const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));\n /**\n * Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.\n * The code and subcode is the same as when a user is removed from a teams interop call.\n * Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.\n * If yes, the caller was kicked out of the call, but we need to show them that they left the call.\n * Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.\n */\n if (\n remoteParticipantsEndedArray.length === 1 &&\n isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) &&\n call.callEndReason?.subCode !== REMOTE_PSTN_USER_HUNG_UP\n ) {\n return CallEndReasons.LEFT_CALL;\n }\n\n if (call.callEndReason?.subCode && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {\n return CallEndReasons.ACCESS_DENIED;\n }\n\n if (call.callEndReason?.subCode && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {\n return CallEndReasons.REMOVED_FROM_CALL;\n }\n\n if (call.callEndReason) {\n // No error codes match, assume the user simply left the call regularly\n return CallEndReasons.LEFT_CALL;\n }\n\n throw new Error('No matching call end reason');\n};\n\n/**\n * Helper function for determine strings and icons for end call page\n * @private\n */\nexport const getEndedCallPageProps = (\n locale: CompositeLocale,\n endedCall?: CallState\n): { title: string; moreDetails?: string; disableStartCallButton: boolean; iconName: keyof CallCompositeIcons } => {\n let title = locale.strings.call.leftCallTitle;\n let moreDetails = locale.strings.call.leftCallMoreDetails;\n let disableStartCallButton = false;\n let iconName: keyof CallCompositeIcons = 'NoticePageLeftCall';\n /* @conditional-compile-remove(rooms) */\n switch (endedCall?.callEndReason?.subCode) {\n case ROOM_NOT_FOUND_SUB_CODE:\n if (locale.strings.call.roomNotFoundTitle) {\n title = locale.strings.call.roomNotFoundTitle;\n moreDetails = locale.strings.call.roomNotFoundDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageRoomNotFound';\n }\n break;\n case ROOM_NOT_VALID_SUB_CODE:\n if (locale.strings.call.roomNotValidTitle) {\n title = locale.strings.call.roomNotValidTitle;\n moreDetails = locale.strings.call.roomNotValidDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageRoomNotValid';\n }\n break;\n case NOT_INVITED_TO_ROOM_SUB_CODE:\n if (locale.strings.call.notInvitedToRoomTitle) {\n title = locale.strings.call.notInvitedToRoomTitle;\n moreDetails = locale.strings.call.notInvitedToRoomDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageNotInvitedToRoom';\n }\n break;\n case INVITE_TO_ROOM_REMOVED_SUB_CODE:\n if (locale.strings.call.inviteToRoomRemovedTitle) {\n title = locale.strings.call.inviteToRoomRemovedTitle;\n moreDetails = locale.strings.call.inviteToRoomRemovedDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageInviteToRoomRemoved';\n }\n break;\n }\n /* @conditional-compile-remove(calling-sounds) */\n switch (endedCall?.callEndReason?.code) {\n case CALL_REJECTED_CODE:\n if (locale.strings.call.callRejectedTitle) {\n title = locale.strings.call.callRejectedTitle;\n moreDetails = locale.strings.call.callRejectedMoreDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageCallRejected';\n }\n break;\n }\n /* @conditional-compile-remove(teams-adhoc-call) */\n switch (endedCall?.callEndReason?.subCode) {\n case 10037:\n if (locale.strings.call.participantCouldNotBeReachedTitle) {\n title = locale.strings.call.participantCouldNotBeReachedTitle;\n moreDetails = locale.strings.call.participantCouldNotBeReachedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10124:\n if (locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle) {\n title = locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle;\n moreDetails = locale.strings.call.permissionToReachTargetParticipantNotAllowedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10119:\n if (locale.strings.call.unableToResolveTenantTitle) {\n title = locale.strings.call.unableToResolveTenantTitle;\n moreDetails = locale.strings.call.unableToResolveTenantMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10044:\n if (locale.strings.call.participantIdIsMalformedTitle) {\n title = locale.strings.call.participantIdIsMalformedTitle;\n moreDetails = locale.strings.call.participantIdIsMalformedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n }\n return { title, moreDetails, disableStartCallButton, iconName };\n};\n\n/**\n * type definition for conditional-compilation\n */\ntype GetCallCompositePageFunction = ((\n call: CallState | undefined,\n previousCall: CallState | undefined\n) => CallCompositePage) &\n ((\n call: CallState | undefined,\n previousCall: CallState | undefined,\n /* @conditional-compile-remove(unsupported-browser) */ unsupportedBrowserInfo?: {\n environmentInfo?: EnvironmentInfo;\n unsupportedBrowserVersionOptedIn?: boolean;\n },\n /* @conditional-compile-remove(call-transfer) */ transferCall?: CallState\n ) => CallCompositePage);\n/**\n * Get the current call composite page based on the current call composite state\n *\n * @param Call - The current call state\n * @param previousCall - The state of the most recent previous call that has ended.\n *\n * @remarks - The previousCall state is needed to determine if the call has ended.\n * When the call ends a new call object is created, and so we must lookback at the\n * previous call state to understand how the call has ended. If there is no previous\n * call we know that this is a fresh call and can display the configuration page.\n *\n * @private\n */\nexport const getCallCompositePage: GetCallCompositePageFunction = (\n call,\n previousCall?,\n unsupportedBrowserInfo?,\n transferCall?: CallState\n): CallCompositePage => {\n /* @conditional-compile-remove(unsupported-browser) */\n if (\n isUnsupportedEnvironment(\n unsupportedBrowserInfo.environmentInfo,\n unsupportedBrowserInfo.unsupportedBrowserVersionOptedIn\n )\n ) {\n return 'unsupportedEnvironment';\n }\n\n /* @conditional-compile-remove(call-transfer) */\n if (transferCall !== undefined) {\n return 'transferring';\n }\n\n if (call) {\n // Must check for ongoing call *before* looking at any previous calls.\n // If the composite completes one call and joins another, the previous calls\n // will be populated, but not relevant for determining the page.\n\n // `_isInLobbyOrConnecting` needs to be checked first because `_isInCall` also returns true when call is in lobby.\n if (_isInLobbyOrConnecting(call?.state)) {\n return 'lobby';\n // `LocalHold` needs to be checked before `isInCall` since it is also a state that's considered in call.\n } else if (call?.state === 'LocalHold') {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return 'hold';\n return 'call';\n } else if (call?.state === 'Disconnecting') {\n return 'leaving';\n } else if (_isInCall(call?.state)) {\n return 'call';\n } else {\n // When the call object has been constructed after clicking , but before 'connecting' has been\n // set on the call object, we continue to show the configuration screen.\n // The call object does not correctly reflect local device state until `call.state` moves to `connecting`.\n // Moving to the 'lobby' page too soon leads to components that depend on the `call` object to show incorrect\n // transitional state.\n return 'configuration';\n }\n }\n\n if (previousCall) {\n const reason = getCallEndReason(previousCall);\n switch (reason) {\n case CallEndReasons.ACCESS_DENIED:\n return 'accessDeniedTeamsMeeting';\n case CallEndReasons.REMOVED_FROM_CALL:\n return 'removedFromCall';\n case CallEndReasons.LEFT_CALL:\n if (previousCall.diagnostics.network.latest.noNetwork) {\n return 'joinCallFailedDueToNoNetwork';\n }\n return 'leftCall';\n }\n }\n\n // No call state - show starting page (configuration)\n return 'configuration';\n};\n\n/** @private */\nexport const IsCallEndedPage = (\n /**\n * Explicitly listing the pages of this function intentionally.\n * This protects against adding a new composite page that should be marked as an callEndedPage.\n * EndCallPages are used to trigger onCallEnded events so this could easily be missed.\n * When you add a new composite page this will throw a compiler error. If this new page is an\n * EndCallPage ensure you update the END_CALL_PAGES. Afterwards update the `page` parameter\n * type below to allow your new page, i.e. add `| <your new page>\n */\n page: CallCompositePage\n): boolean => END_CALL_PAGES.includes(page);\n\n/**\n * Creates a new call control options object and sets the correct values for disabling\n * the buttons provided in the `disabledControls` array.\n * Returns a new object without changing the original object.\n * @param callControlOptions options for the call control component that need to be modified.\n * @param disabledControls An array of controls to disable.\n * @returns a copy of callControlOptions with disabledControls disabled\n * @private\n */\nexport const disableCallControls = (\n callControlOptions: CallControlOptions | boolean | undefined,\n disabledControls: (keyof CallControlOptions)[]\n): CallControlOptions | boolean | undefined => {\n if (callControlOptions === false) {\n return false;\n }\n // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.\n let newOptions =\n (callControlOptions instanceof Object ? ({ ...callControlOptions } as CallControlOptions) : callControlOptions) ??\n {};\n if (newOptions === true || newOptions === undefined) {\n newOptions = disabledControls.reduce((acc, key) => {\n acc[key] = { disabled: true };\n return acc;\n }, {});\n } else {\n disabledControls.forEach((key) => {\n if (newOptions[key] !== false) {\n newOptions[key] = { disabled: true };\n }\n });\n }\n return newOptions;\n};\n\n/**\n * Check if a disabled object is provided for a button and returns if the button is disabled.\n * A button is only disabled if is explicitly set to disabled.\n *\n * @param option\n * @returns whether a button is disabled\n * @private\n */\nexport const isDisabled = (option: boolean | { disabled: boolean } | undefined): boolean => {\n if (option === undefined || typeof option === 'boolean') {\n return false;\n }\n\n return option.disabled;\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * @returns Permissions state for the camera.\n */\nconst queryCameraPermissionFromPermissionsAPI = async (): Promise<PermissionState | 'unsupported'> => {\n try {\n return (await navigator.permissions.query({ name: 'camera' as PermissionName })).state;\n } catch (e) {\n console.info('permissions API is not supported by browser', e);\n return 'unsupported';\n }\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * @returns Permissions state for the microphone.\n */\nconst queryMicrophonePermissionFromPermissionsAPI = async (): Promise<PermissionState | 'unsupported'> => {\n try {\n return (await navigator.permissions.query({ name: 'microphone' as PermissionName })).state;\n } catch (e) {\n console.info('permissions API is not supported by browser', e);\n return 'unsupported';\n }\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n *\n * This function uses permission API to determine if device permission state is granted, prompt or denied\n * @returns whether device permission state is granted, prompt or denied\n * If permission API is not supported on this browser, permission state is set to unsupported.\n * @private\n */\nexport const getDevicePermissionState = async (\n setVideoState: (state: PermissionState | 'unsupported') => void,\n setAudioState: (state: PermissionState | 'unsupported') => void\n): Promise<void> => {\n const [cameraResult, microphoneResult] = await Promise.all([\n queryCameraPermissionFromPermissionsAPI(),\n queryMicrophonePermissionFromPermissionsAPI()\n ]);\n setVideoState(cameraResult);\n setAudioState(microphoneResult);\n};\n/* @conditional-compile-remove(unsupported-browser) */\nconst isUnsupportedEnvironment = (\n environmentInfo?: EnvironmentInfo,\n unsupportedBrowserVersionOptedIn?: boolean\n): boolean => {\n return !!(\n environmentInfo?.isSupportedBrowser === false ||\n (environmentInfo?.isSupportedBrowserVersion === false && !unsupportedBrowserVersionOptedIn) ||\n environmentInfo?.isSupportedPlatform === false\n );\n};\n\n/**\n * Check if we are using safari browser\n * @private\n */\nexport const _isSafari = (\n environmentInfo: undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo\n): boolean => {\n /* @conditional-compile-remove(unsupported-browser) */\n return environmentInfo?.environment.browser === 'safari';\n return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);\n};\n\n/**\n * @private\n * This is the util function to create a participant modifier for remote participantList\n * It memoize previous original participant items and only update the changed participant\n * It takes in one modifier function to generate one single participant object, it returns undefined if the object keeps unmodified\n */\nexport const createParticipantModifier = (\n createModifiedParticipant: (id: string, participant: RemoteParticipantState) => RemoteParticipantState | undefined\n): AdapterStateModifier => {\n let previousParticipantState:\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined = undefined;\n let modifiedParticipants = {};\n const memoizedParticipants: {\n [id: string]: { originalRef: RemoteParticipantState; newParticipant: RemoteParticipantState };\n } = {};\n\n return (state: CallAdapterState) => {\n // if root state is the same, we don't need to update the participants\n if (state.call?.remoteParticipants !== previousParticipantState) {\n modifiedParticipants = {};\n const originalParticipants = state.call?.remoteParticipants;\n for (const key in originalParticipants) {\n const modifiedParticipant = createModifiedParticipant(key, originalParticipants[key]);\n if (modifiedParticipant === undefined) {\n modifiedParticipants[key] = originalParticipants[key];\n continue;\n }\n // Generate the new item if original cached item has been changed\n if (memoizedParticipants[key]?.originalRef !== originalParticipants[key]) {\n memoizedParticipants[key] = {\n newParticipant: modifiedParticipant,\n originalRef: originalParticipants[key]\n };\n }\n\n // the modified participant is always coming from the memoized cache, whether is was refreshed\n // from the previous closure or not\n modifiedParticipants[key] = memoizedParticipants[key].newParticipant;\n }\n\n previousParticipantState = state.call?.remoteParticipants;\n }\n return {\n ...state,\n call: state.call\n ? {\n ...state.call,\n remoteParticipants: modifiedParticipants\n }\n : undefined\n };\n };\n};\n\n/* @conditional-compile-remove(video-background-effects) */\n/** @private */\nexport const getBackgroundEffectFromSelectedEffect = (\n selectedEffect: VideoBackgroundEffect | undefined,\n VideoBackgroundEffectsDependency: VideoBackgroundEffectsDependency\n): VideoEffectProcessor | undefined =>\n selectedEffect?.effectName === 'blur'\n ? VideoBackgroundEffectsDependency.createBackgroundBlurEffect()\n : selectedEffect?.effectName === 'replacement'\n ? VideoBackgroundEffectsDependency.createBackgroundReplacementEffect({\n backgroundImageUrl: selectedEffect.backgroundImageUrl\n })\n : undefined;\n\n/**\n * @remarks this logic should mimic the onToggleCamera in the common call handlers.\n * @private\n */\nexport const getSelectedCameraFromAdapterState = (state: CallAdapterState): VideoDeviceInfo | undefined =>\n state.devices.selectedCamera || state.devices.cameras[0];\n\"../../../../../calling-component-bindings/src\"\"../../../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/Utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallAdapterState, CallCompositePage, END_CALL_PAGES } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { CallState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\nimport { AdapterStateModifier } from '../adapter/AzureCommunicationCallAdapter';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundEffectsDependency } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundEffect } from '../adapter/CallAdapter';\nimport { VideoDeviceInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoEffectProcessor } from '@azure/communication-calling';\nimport { CompositeLocale } from '../../localization';\nimport { CallCompositeIcons } from '../../common/icons';\n\nconst ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;\nconst REMOTE_PSTN_USER_HUNG_UP = 560000;\nconst REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];\n/* @conditional-compile-remove(calling-sounds) */\nconst CALL_REJECTED_CODE = 603;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const ROOM_NOT_FOUND_SUB_CODE = 5732;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const ROOM_NOT_VALID_SUB_CODE = 5829;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const NOT_INVITED_TO_ROOM_SUB_CODE = 5828;\n/* @conditional-compile-remove(rooms) */\n/** @private */\nexport const INVITE_TO_ROOM_REMOVED_SUB_CODE = 5317;\n\n/**\n * @private\n */\nexport const isCameraOn = (state: CallAdapterState): boolean => {\n if (state.call) {\n const stream = state.call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return !!stream;\n } else {\n if (state.devices.selectedCamera) {\n const previewOn = _isPreviewOn(state.devices);\n return previewOn;\n }\n }\n return false;\n};\n\n/**\n * Reduce the set of call controls visible on mobile.\n * For example do not show screenshare button.\n *\n * @private\n */\nexport const reduceCallControlsForMobile = (\n callControlOptions: CallControlOptions | boolean | undefined\n): CallControlOptions | false => {\n if (callControlOptions === false) {\n return false;\n }\n\n // Ensure call controls a valid object.\n const reduceCallControlOptions = callControlOptions === true ? {} : callControlOptions || {};\n\n // Set to compressed mode when composite is optimized for mobile\n reduceCallControlOptions.displayType = 'compact';\n\n // Do not show screen share button when composite is optimized for mobile unless the developer\n // has explicitly opted in.\n if (reduceCallControlOptions.screenShareButton !== true) {\n reduceCallControlOptions.screenShareButton = false;\n }\n\n return reduceCallControlOptions;\n};\n\nenum CallEndReasons {\n LEFT_CALL,\n ACCESS_DENIED,\n REMOVED_FROM_CALL\n}\n\nconst getCallEndReason = (call: CallState): CallEndReasons => {\n const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));\n /**\n * Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.\n * The code and subcode is the same as when a user is removed from a teams interop call.\n * Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.\n * If yes, the caller was kicked out of the call, but we need to show them that they left the call.\n * Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.\n */\n if (\n remoteParticipantsEndedArray.length === 1 &&\n isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) &&\n call.callEndReason?.subCode !== REMOTE_PSTN_USER_HUNG_UP\n ) {\n return CallEndReasons.LEFT_CALL;\n }\n\n if (call.callEndReason?.subCode && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {\n return CallEndReasons.ACCESS_DENIED;\n }\n\n if (call.callEndReason?.subCode && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {\n return CallEndReasons.REMOVED_FROM_CALL;\n }\n\n if (call.callEndReason) {\n // No error codes match, assume the user simply left the call regularly\n return CallEndReasons.LEFT_CALL;\n }\n\n throw new Error('No matching call end reason');\n};\n\n/**\n * Helper function for determine strings and icons for end call page\n * @private\n */\nexport const getEndedCallPageProps = (\n locale: CompositeLocale,\n endedCall?: CallState\n): { title: string; moreDetails?: string; disableStartCallButton: boolean; iconName: keyof CallCompositeIcons } => {\n let title = locale.strings.call.leftCallTitle;\n let moreDetails = locale.strings.call.leftCallMoreDetails;\n let disableStartCallButton = false;\n let iconName: keyof CallCompositeIcons = 'NoticePageLeftCall';\n /* @conditional-compile-remove(rooms) */\n switch (endedCall?.callEndReason?.subCode) {\n case ROOM_NOT_FOUND_SUB_CODE:\n if (locale.strings.call.roomNotFoundTitle) {\n title = locale.strings.call.roomNotFoundTitle;\n moreDetails = locale.strings.call.roomNotFoundDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageRoomNotFound';\n }\n break;\n case ROOM_NOT_VALID_SUB_CODE:\n if (locale.strings.call.roomNotValidTitle) {\n title = locale.strings.call.roomNotValidTitle;\n moreDetails = locale.strings.call.roomNotValidDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageRoomNotValid';\n }\n break;\n case NOT_INVITED_TO_ROOM_SUB_CODE:\n if (locale.strings.call.notInvitedToRoomTitle) {\n title = locale.strings.call.notInvitedToRoomTitle;\n moreDetails = locale.strings.call.notInvitedToRoomDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageNotInvitedToRoom';\n }\n break;\n case INVITE_TO_ROOM_REMOVED_SUB_CODE:\n if (locale.strings.call.inviteToRoomRemovedTitle) {\n title = locale.strings.call.inviteToRoomRemovedTitle;\n moreDetails = locale.strings.call.inviteToRoomRemovedDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageInviteToRoomRemoved';\n }\n break;\n }\n /* @conditional-compile-remove(calling-sounds) */\n switch (endedCall?.callEndReason?.code) {\n case CALL_REJECTED_CODE:\n if (locale.strings.call.callRejectedTitle) {\n title = locale.strings.call.callRejectedTitle;\n moreDetails = locale.strings.call.callRejectedMoreDetails;\n disableStartCallButton = true;\n iconName = 'NoticePageCallRejected';\n }\n break;\n }\n /* @conditional-compile-remove(teams-adhoc-call) */\n switch (endedCall?.callEndReason?.subCode) {\n case 10037:\n if (locale.strings.call.participantCouldNotBeReachedTitle) {\n title = locale.strings.call.participantCouldNotBeReachedTitle;\n moreDetails = locale.strings.call.participantCouldNotBeReachedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10124:\n if (locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle) {\n title = locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle;\n moreDetails = locale.strings.call.permissionToReachTargetParticipantNotAllowedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10119:\n if (locale.strings.call.unableToResolveTenantTitle) {\n title = locale.strings.call.unableToResolveTenantTitle;\n moreDetails = locale.strings.call.unableToResolveTenantMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10044:\n if (locale.strings.call.participantIdIsMalformedTitle) {\n title = locale.strings.call.participantIdIsMalformedTitle;\n moreDetails = locale.strings.call.participantIdIsMalformedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n }\n return { title, moreDetails, disableStartCallButton, iconName };\n};\n\n/**\n * type definition for conditional-compilation\n */\ntype GetCallCompositePageFunction = ((\n call: CallState | undefined,\n previousCall: CallState | undefined\n) => CallCompositePage) &\n ((\n call: CallState | undefined,\n previousCall: CallState | undefined,\n /* @conditional-compile-remove(unsupported-browser) */ unsupportedBrowserInfo?: {\n environmentInfo?: EnvironmentInfo;\n unsupportedBrowserVersionOptedIn?: boolean;\n },\n /* @conditional-compile-remove(call-transfer) */ transferCall?: CallState\n ) => CallCompositePage);\n/**\n * Get the current call composite page based on the current call composite state\n *\n * @param Call - The current call state\n * @param previousCall - The state of the most recent previous call that has ended.\n *\n * @remarks - The previousCall state is needed to determine if the call has ended.\n * When the call ends a new call object is created, and so we must lookback at the\n * previous call state to understand how the call has ended. If there is no previous\n * call we know that this is a fresh call and can display the configuration page.\n *\n * @private\n */\nexport const getCallCompositePage: GetCallCompositePageFunction = (\n call,\n previousCall?,\n unsupportedBrowserInfo?,\n transferCall?: CallState\n): CallCompositePage => {\n /* @conditional-compile-remove(unsupported-browser) */\n if (\n isUnsupportedEnvironment(\n unsupportedBrowserInfo.environmentInfo,\n unsupportedBrowserInfo.unsupportedBrowserVersionOptedIn\n )\n ) {\n return 'unsupportedEnvironment';\n }\n\n /* @conditional-compile-remove(call-transfer) */\n if (transferCall !== undefined) {\n return 'transferring';\n }\n\n if (call) {\n // Must check for ongoing call *before* looking at any previous calls.\n // If the composite completes one call and joins another, the previous calls\n // will be populated, but not relevant for determining the page.\n\n // `_isInLobbyOrConnecting` needs to be checked first because `_isInCall` also returns true when call is in lobby.\n if (_isInLobbyOrConnecting(call?.state)) {\n return 'lobby';\n // `LocalHold` needs to be checked before `isInCall` since it is also a state that's considered in call.\n } else if (call?.state === 'LocalHold') {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return 'hold';\n return 'call';\n } else if (call?.state === 'Disconnecting') {\n return 'leaving';\n } else if (_isInCall(call?.state)) {\n return 'call';\n } else {\n // When the call object has been constructed after clicking , but before 'connecting' has been\n // set on the call object, we continue to show the configuration screen.\n // The call object does not correctly reflect local device state until `call.state` moves to `connecting`.\n // Moving to the 'lobby' page too soon leads to components that depend on the `call` object to show incorrect\n // transitional state.\n return 'configuration';\n }\n }\n\n if (previousCall) {\n const reason = getCallEndReason(previousCall);\n switch (reason) {\n case CallEndReasons.ACCESS_DENIED:\n return 'accessDeniedTeamsMeeting';\n case CallEndReasons.REMOVED_FROM_CALL:\n return 'removedFromCall';\n case CallEndReasons.LEFT_CALL:\n if (previousCall.diagnostics.network.latest.noNetwork) {\n return 'joinCallFailedDueToNoNetwork';\n }\n return 'leftCall';\n }\n }\n\n // No call state - show starting page (configuration)\n return 'configuration';\n};\n\n/** @private */\nexport const IsCallEndedPage = (\n /**\n * Explicitly listing the pages of this function intentionally.\n * This protects against adding a new composite page that should be marked as an callEndedPage.\n * EndCallPages are used to trigger onCallEnded events so this could easily be missed.\n * When you add a new composite page this will throw a compiler error. If this new page is an\n * EndCallPage ensure you update the END_CALL_PAGES. Afterwards update the `page` parameter\n * type below to allow your new page, i.e. add `| <your new page>\n */\n page: CallCompositePage\n): boolean => END_CALL_PAGES.includes(page);\n\n/**\n * Creates a new call control options object and sets the correct values for disabling\n * the buttons provided in the `disabledControls` array.\n * Returns a new object without changing the original object.\n * @param callControlOptions options for the call control component that need to be modified.\n * @param disabledControls An array of controls to disable.\n * @returns a copy of callControlOptions with disabledControls disabled\n * @private\n */\nexport const disableCallControls = (\n callControlOptions: CallControlOptions | boolean | undefined,\n disabledControls: (keyof CallControlOptions)[]\n): CallControlOptions | boolean | undefined => {\n if (callControlOptions === false) {\n return false;\n }\n // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.\n let newOptions =\n (callControlOptions instanceof Object ? ({ ...callControlOptions } as CallControlOptions) : callControlOptions) ??\n {};\n if (newOptions === true || newOptions === undefined) {\n newOptions = disabledControls.reduce((acc, key) => {\n acc[key] = { disabled: true };\n return acc;\n }, {});\n } else {\n disabledControls.forEach((key) => {\n if (newOptions[key] !== false) {\n newOptions[key] = { disabled: true };\n }\n });\n }\n return newOptions;\n};\n\n/**\n * Check if a disabled object is provided for a button and returns if the button is disabled.\n * A button is only disabled if is explicitly set to disabled.\n *\n * @param option\n * @returns whether a button is disabled\n * @private\n */\nexport const isDisabled = (option: boolean | { disabled: boolean } | undefined): boolean => {\n if (option === undefined || typeof option === 'boolean') {\n return false;\n }\n\n return option.disabled;\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * @returns Permissions state for the camera.\n */\nconst queryCameraPermissionFromPermissionsAPI = async (): Promise<PermissionState | 'unsupported'> => {\n try {\n return (await navigator.permissions.query({ name: 'camera' as PermissionName })).state;\n } catch (e) {\n console.info('permissions API is not supported by browser', e);\n return 'unsupported';\n }\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * @returns Permissions state for the microphone.\n */\nconst queryMicrophonePermissionFromPermissionsAPI = async (): Promise<PermissionState | 'unsupported'> => {\n try {\n return (await navigator.permissions.query({ name: 'microphone' as PermissionName })).state;\n } catch (e) {\n console.info('permissions API is not supported by browser', e);\n return 'unsupported';\n }\n};\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n *\n * This function uses permission API to determine if device permission state is granted, prompt or denied\n * @returns whether device permission state is granted, prompt or denied\n * If permission API is not supported on this browser, permission state is set to unsupported.\n * @private\n */\nexport const getDevicePermissionState = async (\n setVideoState: (state: PermissionState | 'unsupported') => void,\n setAudioState: (state: PermissionState | 'unsupported') => void\n): Promise<void> => {\n const [cameraResult, microphoneResult] = await Promise.all([\n queryCameraPermissionFromPermissionsAPI(),\n queryMicrophonePermissionFromPermissionsAPI()\n ]);\n setVideoState(cameraResult);\n setAudioState(microphoneResult);\n};\n/* @conditional-compile-remove(unsupported-browser) */\nconst isUnsupportedEnvironment = (\n environmentInfo?: EnvironmentInfo,\n unsupportedBrowserVersionOptedIn?: boolean\n): boolean => {\n return !!(\n environmentInfo?.isSupportedBrowser === false ||\n (environmentInfo?.isSupportedBrowserVersion === false && !unsupportedBrowserVersionOptedIn) ||\n environmentInfo?.isSupportedPlatform === false\n );\n};\n\n/**\n * Check if we are using safari browser\n * @private\n */\nexport const _isSafari = (\n environmentInfo: undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo\n): boolean => {\n /* @conditional-compile-remove(unsupported-browser) */\n return environmentInfo?.environment.browser === 'safari';\n return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);\n};\n\n/**\n * @private\n * This is the util function to create a participant modifier for remote participantList\n * It memoize previous original participant items and only update the changed participant\n * It takes in one modifier function to generate one single participant object, it returns undefined if the object keeps unmodified\n */\nexport const createParticipantModifier = (\n createModifiedParticipant: (id: string, participant: RemoteParticipantState) => RemoteParticipantState | undefined\n): AdapterStateModifier => {\n let previousParticipantState:\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined = undefined;\n let modifiedParticipants = {};\n const memoizedParticipants: {\n [id: string]: { originalRef: RemoteParticipantState; newParticipant: RemoteParticipantState };\n } = {};\n\n return (state: CallAdapterState) => {\n // if root state is the same, we don't need to update the participants\n if (state.call?.remoteParticipants !== previousParticipantState) {\n modifiedParticipants = {};\n const originalParticipants = state.call?.remoteParticipants;\n for (const key in originalParticipants) {\n const modifiedParticipant = createModifiedParticipant(key, originalParticipants[key]);\n if (modifiedParticipant === undefined) {\n modifiedParticipants[key] = originalParticipants[key];\n continue;\n }\n // Generate the new item if original cached item has been changed\n if (memoizedParticipants[key]?.originalRef !== originalParticipants[key]) {\n memoizedParticipants[key] = {\n newParticipant: modifiedParticipant,\n originalRef: originalParticipants[key]\n };\n }\n\n // the modified participant is always coming from the memoized cache, whether is was refreshed\n // from the previous closure or not\n modifiedParticipants[key] = memoizedParticipants[key].newParticipant;\n }\n\n previousParticipantState = state.call?.remoteParticipants;\n }\n return {\n ...state,\n call: state.call\n ? {\n ...state.call,\n remoteParticipants: modifiedParticipants\n }\n : undefined\n };\n };\n};\n\n/* @conditional-compile-remove(video-background-effects) */\n/** @private */\nexport const getBackgroundEffectFromSelectedEffect = (\n selectedEffect: VideoBackgroundEffect | undefined,\n VideoBackgroundEffectsDependency: VideoBackgroundEffectsDependency\n): VideoEffectProcessor | undefined =>\n selectedEffect?.effectName === 'blur'\n ? VideoBackgroundEffectsDependency.createBackgroundBlurEffect()\n : selectedEffect?.effectName === 'replacement'\n ? VideoBackgroundEffectsDependency.createBackgroundReplacementEffect({\n backgroundImageUrl: selectedEffect.backgroundImageUrl\n })\n : undefined;\n\n/**\n * @remarks this logic should mimic the onToggleCamera in the common call handlers.\n * @private\n */\nexport const getSelectedCameraFromAdapterState = (state: CallAdapterState): VideoDeviceInfo | undefined =>\n state.devices.selectedCamera || state.devices.cameras[0];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useConsoleErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/useConsoleErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,wCAAwC;AACxC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAqB,EAAQ,EAAE;;IACvE,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;;QACb,QAAQ,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,OAAO,EAAE;YACzC,KAAK,uBAAuB;gBAC1B,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;gBACxG,MAAM;YACR,KAAK,uBAAuB;gBAC1B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,4BAA4B;gBAC/B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,+BAA+B;gBAClC,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBAC/E,MAAM;SACT;IACH,CAAC,EAAE,CAAC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(rooms) */\nimport { useEffect } from 'react';\n/* @conditional-compile-remove(rooms) */\nimport {\n ROOM_NOT_FOUND_SUB_CODE,\n ROOM_NOT_VALID_SUB_CODE,\n NOT_INVITED_TO_ROOM_SUB_CODE,\n INVITE_TO_ROOM_REMOVED_SUB_CODE\n} from './Utils';\n\n/**\n * @private\n */\nexport const useEndedCallConsoleErrors = (endedCall?: CallState): void => {\n /* @conditional-compile-remove(rooms) */\n useEffect(() => {\n switch (endedCall?.callEndReason?.subCode) {\n case ROOM_NOT_FOUND_SUB_CODE:\n console.error('Call ended because the room id provided through the adapter locator could not be found');\n break;\n case ROOM_NOT_VALID_SUB_CODE:\n console.error('Call ended because this room is currently not valid.');\n break;\n case NOT_INVITED_TO_ROOM_SUB_CODE:\n console.error('Call ended because you are not invited to this room.');\n break;\n case INVITE_TO_ROOM_REMOVED_SUB_CODE:\n console.error('Call ended because your invite to this room has been removed.');\n break;\n }\n }, [endedCall?.callEndReason?.subCode]);\n};\n\"../../../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"useConsoleErrors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/utils/useConsoleErrors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,wCAAwC;AACxC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAqB,EAAQ,EAAE;;IACvE,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;;QACb,QAAQ,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,OAAO,EAAE,CAAC;YAC1C,KAAK,uBAAuB;gBAC1B,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;gBACxG,MAAM;YACR,KAAK,uBAAuB;gBAC1B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,4BAA4B;gBAC/B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,+BAA+B;gBAClC,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBAC/E,MAAM;QACV,CAAC;IACH,CAAC,EAAE,CAAC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(rooms) */\nimport { useEffect } from 'react';\n/* @conditional-compile-remove(rooms) */\nimport {\n ROOM_NOT_FOUND_SUB_CODE,\n ROOM_NOT_VALID_SUB_CODE,\n NOT_INVITED_TO_ROOM_SUB_CODE,\n INVITE_TO_ROOM_REMOVED_SUB_CODE\n} from './Utils';\n\n/**\n * @private\n */\nexport const useEndedCallConsoleErrors = (endedCall?: CallState): void => {\n /* @conditional-compile-remove(rooms) */\n useEffect(() => {\n switch (endedCall?.callEndReason?.subCode) {\n case ROOM_NOT_FOUND_SUB_CODE:\n console.error('Call ended because the room id provided through the adapter locator could not be found');\n break;\n case ROOM_NOT_VALID_SUB_CODE:\n console.error('Call ended because this room is currently not valid.');\n break;\n case NOT_INVITED_TO_ROOM_SUB_CODE:\n console.error('Call ended because you are not invited to this room.');\n break;\n case INVITE_TO_ROOM_REMOVED_SUB_CODE:\n console.error('Call ended because your invite to this room has been removed.');\n break;\n }\n }, [endedCall?.callEndReason?.subCode]);\n};\n"]}
@@ -56,7 +56,7 @@ export interface CallWithChatControlOptions extends CommonCallControlOptions {
56
56
  *
57
57
  * @public
58
58
  */
59
- export declare type CallWithChatCompositeOptions = {
59
+ export type CallWithChatCompositeOptions = {
60
60
  /**
61
61
  * Call control options to change what buttons show on the call-with-chat composite control bar.
62
62
  * If using the boolean values, true will cause default behavior across the whole control bar. False hides the whole control bar.