@azure/communication-react 1.14.1-alpha-202403210013 → 1.14.1-alpha-202403270012

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 (393) hide show
  1. package/dist/communication-react.d.ts +45 -39
  2. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BgK9tOAk.js → RichTextSendBoxWrapper-Yty3fOoA.js} +6 -6
  3. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BgK9tOAk.js.map → RichTextSendBoxWrapper-Yty3fOoA.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{index-B_kqOVlM.js → index-BEomNZbT.js} +1864 -1452
  5. package/dist/dist-cjs/communication-react/index-BEomNZbT.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/index.js +3 -3
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -2
  10. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +0 -1
  12. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  13. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js +0 -2
  14. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +17 -16
  16. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +2 -4
  18. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +0 -2
  20. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  22. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +0 -6
  23. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +0 -4
  25. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +1 -9
  26. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +12 -7
  28. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +3 -10
  30. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -2
  32. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  33. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -2
  34. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -5
  35. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  36. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +2 -1
  37. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +19 -13
  38. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  39. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -5
  40. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  41. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +0 -1
  42. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  43. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +0 -5
  44. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  45. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js +0 -2
  46. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  47. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js +0 -3
  48. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  49. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  50. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +4 -1
  51. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  52. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +11 -14
  53. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  54. package/dist/dist-esm/communication-react/src/index.js +0 -1
  55. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/AttachmentCard.d.ts +41 -0
  57. package/dist/dist-esm/react-components/src/components/AttachmentCard.js +108 -0
  58. package/dist/dist-esm/react-components/src/components/AttachmentCard.js.map +1 -0
  59. package/dist/dist-esm/react-components/src/components/AttachmentCardGroup.d.ts +16 -0
  60. package/dist/dist-esm/react-components/src/components/{FileCardGroup.js → AttachmentCardGroup.js} +5 -5
  61. package/dist/dist-esm/react-components/src/components/AttachmentCardGroup.js.map +1 -0
  62. package/dist/dist-esm/react-components/src/components/AttachmentDownloadCards.d.ts +49 -0
  63. package/dist/dist-esm/react-components/src/components/{FileDownloadCards.js → AttachmentDownloadCards.js} +28 -27
  64. package/dist/dist-esm/react-components/src/components/AttachmentDownloadCards.js.map +1 -0
  65. package/dist/dist-esm/react-components/src/components/{FileUploadCards.d.ts → AttachmentUploadCards.d.ts} +15 -15
  66. package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js +24 -0
  67. package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js.map +1 -0
  68. package/dist/dist-esm/react-components/src/components/CameraButton.js +0 -1
  69. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  70. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  72. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +1 -1
  73. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +10 -10
  74. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  75. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.d.ts +1 -1
  76. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js +6 -6
  77. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  78. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -1
  79. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  80. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -1
  81. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +6 -6
  82. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  83. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +10 -8
  84. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
  85. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +1 -1
  86. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  87. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -1
  88. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +6 -6
  89. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  90. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +10 -8
  91. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  92. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +1 -10
  93. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  94. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  95. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +5 -3
  96. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  97. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.d.ts +40 -0
  98. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js +77 -0
  99. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js.map +1 -0
  100. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +4 -5
  101. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -3
  102. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  103. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -4
  104. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  105. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +1 -1
  106. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +3 -1
  108. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +21 -6
  109. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  110. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +1 -8
  111. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +55 -30
  112. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  113. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +2 -2
  114. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +12 -12
  115. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  116. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +10 -10
  117. package/dist/dist-esm/react-components/src/components/SendBox.js +44 -34
  118. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +2 -2
  120. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +7 -5
  121. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.d.ts +15 -0
  123. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js +58 -0
  124. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -0
  125. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.d.ts +14 -0
  126. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js +149 -0
  127. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -0
  128. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts +4 -0
  129. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +14 -2
  130. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  131. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.d.ts +11 -0
  132. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js +23 -0
  133. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js.map +1 -0
  134. package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -3
  135. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  136. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +5 -6
  137. package/dist/dist-esm/react-components/src/components/VideoTile.js +3 -51
  138. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  139. package/dist/dist-esm/react-components/src/components/index.d.ts +7 -5
  140. package/dist/dist-esm/react-components/src/components/index.js +3 -3
  141. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  142. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +9 -0
  143. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +27 -0
  144. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -0
  145. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.d.ts +70 -0
  146. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js +259 -0
  147. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js.map +1 -0
  148. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +1 -1
  149. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +2 -2
  150. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  151. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.d.ts +4 -0
  152. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +5 -1
  153. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +1 -1
  154. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts +2 -2
  155. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +5 -4
  156. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +2 -2
  158. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +8 -1
  159. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  160. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +1 -1
  161. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +6 -5
  162. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +1 -1
  164. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +16 -13
  165. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +1 -1
  167. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +5 -3
  168. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/utils/common.d.ts +3 -3
  170. package/dist/dist-esm/react-components/src/components/utils/common.js +5 -5
  171. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +6 -6
  174. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +6 -6
  175. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +6 -6
  176. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +6 -6
  177. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +6 -6
  178. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +6 -6
  179. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +6 -6
  180. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +6 -6
  181. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +6 -6
  182. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +6 -6
  183. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +6 -6
  184. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +6 -6
  185. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +6 -6
  186. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +6 -6
  187. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +6 -6
  188. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +6 -6
  189. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +6 -6
  190. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +6 -6
  191. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +6 -6
  192. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +6 -6
  193. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +6 -6
  194. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +1 -1
  195. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/theming/icons.js +3 -10
  197. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +151 -0
  199. package/dist/dist-esm/{react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js → react-components/src/types/Attachment.js} +1 -1
  200. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -0
  201. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -1
  202. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/types/ReactionTypes.d.ts +5 -0
  204. package/dist/dist-esm/react-components/src/types/ReactionTypes.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/types/index.d.ts +1 -0
  206. package/dist/dist-esm/react-components/src/types/index.js +1 -0
  207. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  208. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +3 -3
  209. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  210. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  211. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -3
  212. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +18 -60
  213. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  214. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  215. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +0 -2
  216. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  217. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +3 -9
  218. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  219. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  220. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +14 -65
  221. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  222. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +2 -9
  223. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  224. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.d.ts +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +10 -10
  226. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  227. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +0 -9
  228. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  229. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +2 -0
  230. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +25 -13
  231. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  232. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.d.ts +10 -2
  233. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js +3 -3
  234. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js.map +1 -1
  235. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +0 -1
  236. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +1 -2
  237. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +12 -7
  239. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  240. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +4 -18
  241. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  242. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +2 -9
  243. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  244. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +2 -22
  245. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  246. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -6
  247. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  248. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -6
  249. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  250. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +6 -9
  251. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  252. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  253. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -0
  254. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
  255. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +5 -27
  257. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  258. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +0 -3
  259. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  260. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
  261. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +5 -1
  262. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  263. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +2 -2
  264. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +3 -12
  265. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  266. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.d.ts +15 -0
  267. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js +32 -0
  268. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js.map +1 -0
  269. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +10 -9
  270. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +28 -3
  271. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  272. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +0 -1
  273. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  274. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -8
  275. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  276. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.d.ts +6 -0
  277. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js +36 -0
  278. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js.map +1 -1
  279. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js +0 -3
  280. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js.map +1 -1
  281. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +3 -3
  282. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  283. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -2
  284. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +22 -35
  285. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  286. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -1
  287. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  288. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -8
  289. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  290. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -1
  291. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +8 -8
  292. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  293. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +3 -12
  294. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  295. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +4 -4
  296. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  297. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +1 -1
  298. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +10 -11
  299. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  300. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  301. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +1 -1
  302. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +22 -22
  303. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  304. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +2 -2
  305. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +11 -8
  306. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  307. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  308. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js +1 -1
  309. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  310. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.d.ts +2 -69
  311. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  312. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +4 -4
  313. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  314. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +0 -1
  315. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +0 -1
  316. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  317. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +3 -3
  318. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  319. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  320. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +1 -1
  321. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  322. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +5 -10
  323. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  324. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +7 -8
  325. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  326. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +11 -15
  327. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  328. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +4 -0
  329. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +14 -3
  330. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  331. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +2 -0
  332. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +16 -17
  333. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  334. package/dist/dist-esm/react-composites/src/composites/common/SendBox.js +8 -8
  335. package/dist/dist-esm/react-composites/src/composites/common/SendBox.js.map +1 -1
  336. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts +0 -3
  337. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +1 -6
  338. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  339. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +0 -1
  340. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +1 -4
  341. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  342. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +2 -29
  343. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  344. package/dist/dist-esm/react-composites/src/composites/common/icons.js +2 -10
  345. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  346. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js +0 -1
  347. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  348. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js +0 -1
  349. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  350. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts +5 -1
  351. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +29 -0
  352. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  353. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +5 -0
  354. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  355. package/dist/dist-esm/react-composites/src/composites/index.js +0 -2
  356. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  357. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +2 -0
  358. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +2 -0
  359. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +2 -0
  360. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +2 -0
  361. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -0
  362. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +2 -0
  363. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +2 -0
  364. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +2 -0
  365. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +2 -0
  366. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +2 -0
  367. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +2 -0
  368. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +2 -0
  369. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +2 -0
  370. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +2 -0
  371. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +2 -0
  372. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +2 -0
  373. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +2 -0
  374. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +2 -0
  375. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +2 -0
  376. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +2 -0
  377. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +2 -0
  378. package/package.json +1 -1
  379. package/dist/dist-cjs/communication-react/index-B_kqOVlM.js.map +0 -1
  380. package/dist/dist-esm/react-components/src/components/FileCard.d.ts +0 -39
  381. package/dist/dist-esm/react-components/src/components/FileCard.js +0 -92
  382. package/dist/dist-esm/react-components/src/components/FileCard.js.map +0 -1
  383. package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts +0 -16
  384. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +0 -1
  385. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +0 -114
  386. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +0 -1
  387. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +0 -34
  388. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +0 -1
  389. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.d.ts +0 -5
  390. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js +0 -17
  391. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +0 -1
  392. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.d.ts +0 -10
  393. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +0 -1
@@ -39,7 +39,6 @@ import { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';
39
39
  import { themedToggleButtonStyle } from './MoreDrawer.styles';
40
40
  /* @conditional-compile-remove(close-captions) */
41
41
  import { _spokenLanguageToCaptionLanguage } from "../../../../../react-components/src";
42
- /* @conditional-compile-remove(rooms) */
43
42
  import { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';
44
43
  import { useSelector } from '../../CallComposite/hooks/useSelector';
45
44
  import { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';
@@ -57,7 +56,6 @@ export const MoreDrawer = (props) => {
57
56
  var _a, _b, _c, _d, _e, _f, _g;
58
57
  /* @conditional-compile-remove(close-captions) */
59
58
  const theme = useTheme();
60
- /* @conditional-compile-remove(rooms) */
61
59
  const callAdapter = useAdapter();
62
60
  const drawerMenuItems = [];
63
61
  const { speakers, onSelectSpeaker, onLightDismiss } = props;
@@ -78,6 +76,9 @@ export const MoreDrawer = (props) => {
78
76
  onLightDismiss();
79
77
  }, [speakers, onSelectSpeaker, onLightDismiss]);
80
78
  const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);
79
+ const showCaptionsButton = props.isCaptionsSupported &&
80
+ /* @conditional-compile-remove(acs-close-captions) */ drawerSelectionOptions !== false &&
81
+ /* @conditional-compile-remove(acs-close-captions) */ isEnabled(drawerSelectionOptions.captions);
81
82
  /* @conditional-compile-remove(reaction) */
82
83
  if (props.reactionResources !== undefined) {
83
84
  drawerMenuItems.push({
@@ -240,13 +241,11 @@ export const MoreDrawer = (props) => {
240
241
  iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }
241
242
  });
242
243
  }
243
- /*@conditional-compile-remove(rooms) */
244
244
  const role = (_e = callAdapter.getState().call) === null || _e === void 0 ? void 0 : _e.role;
245
- /*@conditional-compile-remove(rooms) */
246
245
  const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
247
246
  if (drawerSelectionOptions !== false &&
248
247
  isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.raiseHandButton) &&
249
- /*@conditional-compile-remove(rooms) */ !hideRaiseHandButtonInRoomsCall) {
248
+ !hideRaiseHandButtonInRoomsCall) {
250
249
  const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';
251
250
  drawerMenuItems.push({
252
251
  itemKey: 'raiseHandButtonKey',
@@ -298,7 +297,7 @@ export const MoreDrawer = (props) => {
298
297
  }
299
298
  }), [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);
300
299
  /* @conditional-compile-remove(close-captions) */
301
- if (props.isCaptionsSupported) {
300
+ if (showCaptionsButton) {
302
301
  const captionsDrawerItems = [];
303
302
  const spokenLanguageString = supportedSpokenLanguageStrings
304
303
  ? supportedSpokenLanguageStrings[currentSpokenLanguage]
@@ -379,8 +378,8 @@ export const MoreDrawer = (props) => {
379
378
  });
380
379
  /* @conditional-compile-remove(close-captions) */
381
380
  return (React.createElement(React.Fragment, null,
382
- isSpokenLanguageDrawerOpen && props.isCaptionsSupported && (React.createElement(SpokenLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentSpokenLanguage, setCurrentLanguage: captionSettingsHandlers.onSetSpokenLanguage, currentLanguage: currentSpokenLanguage, strings: { menuTitle: props.strings.spokenLanguageMenuTitle }, supportedLanguageStrings: supportedSpokenLanguageStrings })),
383
- isCaptionLanguageDrawerOpen && props.isCaptionsSupported && (React.createElement(CaptionLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentCaptionLanguage, setCurrentLanguage: captionSettingsHandlers.onSetCaptionLanguage, currentLanguage: currentCaptionLanguage, strings: { menuTitle: props.strings.captionLanguageMenuTitle }, supportedLanguageStrings: supportedCaptionLanguageStrings })),
381
+ isSpokenLanguageDrawerOpen && showCaptionsButton && (React.createElement(SpokenLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentSpokenLanguage, setCurrentLanguage: captionSettingsHandlers.onSetSpokenLanguage, currentLanguage: currentSpokenLanguage, strings: { menuTitle: props.strings.spokenLanguageMenuTitle }, supportedLanguageStrings: supportedSpokenLanguageStrings })),
382
+ isCaptionLanguageDrawerOpen && showCaptionsButton && (React.createElement(CaptionLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentCaptionLanguage, setCurrentLanguage: captionSettingsHandlers.onSetCaptionLanguage, currentLanguage: currentCaptionLanguage, strings: { menuTitle: props.strings.captionLanguageMenuTitle }, supportedLanguageStrings: supportedCaptionLanguageStrings })),
384
383
  !isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && (React.createElement(DrawerMenu, { items: drawerMenuItems, onLightDismiss: props.onLightDismiss }))));
385
384
  return React.createElement(DrawerMenu, { items: drawerMenuItems, onLightDismiss: props.onLightDismiss });
386
385
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport {\n OptionsDevice,\n _DrawerMenu as DrawerMenu,\n _DrawerMenuItemProps as DrawerMenuItemProps,\n _DrawerMenuStyles,\n SpokenLanguageStrings,\n CaptionLanguageStrings\n} from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _StartCaptionsButton, _CaptionsSettingsModal } from '@internal/react-components';\n\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDrawerButtons,\n onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n/* @conditional-compile-remove(close-captions) */\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(close-captions) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { _captionSettingsSelector, _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\n/* @conditional-compile-remove(close-captions) */\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\n/* @conditional-compile-remove(close-captions) */\nimport { _spokenLanguageToCaptionLanguage } from '@internal/react-components';\n/* @conditional-compile-remove(rooms) */\nimport { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\n\n/** @private */\nexport interface MoreDrawerStrings {\n /**\n * Label for people drawerMenuItem.\n */\n peopleButtonLabel: string;\n /**\n * Label for audio device drawerMenuItem.\n *\n * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated\n *\n */\n audioDeviceMenuTitle?: string;\n /**\n * Label for microphone drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used\n *\n */\n microphoneMenuTitle: string;\n /**\n * Label for speaker drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated\n *\n */\n speakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for captions drawerMenuItem\n *\n * @remarks Only displayed when in Teams call\n */\n captionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for spokenLanguage drawerMenuItem\n *\n * @remarks Only displayed when in Teams call, disabled until captions is on\n */\n spokenLanguageMenuTitle: string;\n\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for captionLanguage drawerMenuItem\n *\n * @remarks Only displayed when in Teams call, disabled until captions is on\n */\n captionLanguageMenuTitle: string;\n\n /**\n * Label for gallery options drawerMenuItem\n */\n galleryOptionsMenuTitle: string;\n}\n\n/** @private */\nexport interface MoreDrawerDevicesMenuProps {\n /**\n * Available microphones for selection\n */\n microphones?: OptionsDevice[];\n /**\n * Available speakers for selection\n */\n speakers?: OptionsDevice[];\n /**\n * Microphone that is shown as currently selected\n */\n selectedMicrophone?: OptionsDevice;\n /**\n * Speaker that is shown as currently selected\n */\n selectedSpeaker?: OptionsDevice;\n /**\n * Speaker when a speaker is selected\n */\n onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n /**\n * Callback when a microphone is selected\n */\n onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n userSetGalleryLayout?: VideoGalleryLayout;\n /**\n * Callback for when the gallery layout is changed\n */\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n /**\n * Callback to hide and show the dialpad in the more drawer\n */\n onSetDialpadPage?: () => void;\n /**\n * Whether the dialpad is present in the call\n */\n dtmfDialerPresent?: boolean;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n /* @conditional-compile-remove(close-captions) */\n isTeamsCall?: boolean;\n /* @conditional-compile-remove(reaction) */\n reactionResources?: ReactionResources;\n /* @conditional-compile-remove(reaction) */\n onReactionClick?: (reaction: string) => Promise<void>;\n}\n\nconst inferCallWithChatControlOptions = (\n callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n if (callWithChatControls === false) {\n return false;\n }\n const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const theme = useTheme();\n /* @conditional-compile-remove(rooms) */\n const callAdapter = useAdapter();\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n const localeStrings = useLocale();\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n const callees = useSelector(getTargetCallees);\n const allowDtmfDialer = showDtmfDialer(callees);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n const onSpeakerItemClick = useCallback(\n (\n _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n itemKey: string | undefined\n ) => {\n const selected = speakers?.find((speaker) => speaker.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectSpeaker(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [speakers, onSelectSpeaker, onLightDismiss]\n );\n\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n /* @conditional-compile-remove(reaction) */\n if (props.reactionResources !== undefined) {\n drawerMenuItems.push({\n itemKey: 'reactions',\n onRendererContent: () => (\n <_ReactionDrawerMenuItem onReactionClick={props.onReactionClick} reactionResources={props.reactionResources} />\n )\n });\n }\n\n if (props.speakers && props.speakers.length > 0) {\n drawerMenuItems.push({\n itemKey: 'speakers',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.speakerMenuTitle,\n iconProps: { iconName: 'MoreDrawerSpeakers' },\n subMenuProps: props.speakers.map((speaker) => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n ? 'MoreDrawerSelectedSpeaker'\n : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n\n const { microphones, onSelectMicrophone } = props;\n const onMicrophoneItemClick = useCallback(\n (\n _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n itemKey: string | undefined\n ) => {\n const selected = microphones?.find((mic) => mic.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectMicrophone(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [microphones, onSelectMicrophone, onLightDismiss]\n );\n\n if (props.microphones && props.microphones.length > 0) {\n // Set props as Microphone if speakers can be enumerated else set as Audio Device\n const speakersAvailable = props.speakers && props.speakers.length > 0;\n const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: { iconName: iconName },\n subMenuProps: props.microphones.map((mic) => ({\n itemKey: mic.id,\n iconProps: {\n iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n },\n text: mic.name,\n onItemClick: onMicrophoneItemClick,\n secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n\n const dtmfDialerScreenOption = {\n itemKey: 'dtmfDialerScreenKey',\n text: !dtmfDialerChecked\n ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n onItemClick: () => {\n if (props.onSetDialpadPage) {\n props.onSetDialpadPage();\n }\n setDtmfDialerChecked(!dtmfDialerChecked);\n onLightDismiss();\n },\n iconProps: {\n iconName: 'DtmfDialpadButton',\n styles: { root: { lineHeight: 0 } }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer) {\n drawerMenuItems.push(dtmfDialerScreenOption);\n }\n\n const galleryLayoutOptions = {\n itemKey: 'galleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: [\n {\n itemKey: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? { iconName: 'Accept' } : undefined\n },\n {\n itemKey: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? { iconName: 'Accept' } : undefined\n }\n ]\n };\n\n /* @conditional-compile-remove(gallery-layout-composite) */\n const galleryOption = {\n itemKey: 'defaultSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'DefaultGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined\n };\n\n /* @conditional-compile-remove(gallery-layout-composite) */\n galleryLayoutOptions.subMenuProps?.push(galleryOption);\n\n drawerMenuItems.push(galleryLayoutOptions);\n\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n drawerMenuItems.push({\n itemKey: 'people',\n id: 'call-composite-drawer-people-button',\n text: props.strings.peopleButtonLabel,\n iconProps: { iconName: 'MoreDrawerPeople' },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n drawerMenuItems.push({\n itemKey: 'holdButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onItemClick: () => {\n holdButtonProps.onToggleHold();\n onLightDismiss();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n /*@conditional-compile-remove(rooms) */\n const role = callAdapter.getState().call?.role;\n /*@conditional-compile-remove(rooms) */\n const hideRaiseHandButtonInRoomsCall =\n callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n\n if (\n drawerSelectionOptions !== false &&\n isEnabled(drawerSelectionOptions?.raiseHandButton) &&\n /*@conditional-compile-remove(rooms) */ !hideRaiseHandButtonInRoomsCall\n ) {\n const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n drawerMenuItems.push({\n itemKey: 'raiseHandButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n text: raiseHandButtonProps.checked\n ? localeStrings.component.strings.raiseHandButton.onLabel\n : localeStrings.component.strings.raiseHandButton.offLabel,\n onItemClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n onLightDismiss();\n },\n iconProps: {\n iconName: raiseHandIcon,\n styles: { root: { lineHeight: 0 } }\n }\n });\n }\n\n /* @conditional-compile-remove(close-captions) */\n //Captions drawer menu\n const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n /* @conditional-compile-remove(close-captions) */\n //Captions drawer menu\n const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n /* @conditional-compile-remove(close-captions) */\n const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n /* @conditional-compile-remove(close-captions) */\n const captionSettingsHandlers = useHandlers(_CaptionsSettingsModal);\n\n /* @conditional-compile-remove(close-captions) */\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n\n /* @conditional-compile-remove(close-captions) */\n const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n /* @conditional-compile-remove(close-captions) */\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(\n captionSettingsProp.currentSpokenLanguage ?? 'en-us'\n );\n\n /* @conditional-compile-remove(close-captions) */\n const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(\n captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]\n );\n\n /* @conditional-compile-remove(close-captions) */\n const onToggleChange = useCallback(async () => {\n if (!captionSettingsProp.isCaptionsFeatureActive) {\n await startCaptionsButtonHandlers.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n } else {\n startCaptionsButtonHandlers.onStopCaptions();\n }\n }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);\n\n /* @conditional-compile-remove(close-captions) */\n if (props.isCaptionsSupported) {\n const captionsDrawerItems: DrawerMenuItemProps[] = [];\n\n const spokenLanguageString = supportedSpokenLanguageStrings\n ? supportedSpokenLanguageStrings[currentSpokenLanguage]\n : currentSpokenLanguage;\n\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: { iconName: 'CaptionsIcon' },\n subMenuProps: captionsDrawerItems\n });\n\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: captionSettingsProp.isCaptionsFeatureActive\n ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onItemClick: onToggleChange,\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: (\n <Stack verticalFill verticalAlign=\"center\">\n <Toggle\n id=\"common-call-composite-captions-toggle-button\"\n checked={captionSettingsProp.isCaptionsFeatureActive}\n styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)}\n onChange={onToggleChange}\n />\n </Stack>\n )\n });\n\n captionsDrawerItems.push({\n itemKey: 'ChangeSpokenLanguage',\n text: props.strings.spokenLanguageMenuTitle,\n id: 'common-call-composite-captions-spoken-settings-button',\n secondaryText: spokenLanguageString,\n iconProps: {\n iconName: 'ChangeSpokenLanguageIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: { root: { lineHeight: 0 } }\n }\n });\n\n if (props.isTeamsCall) {\n const captionLanguageString = supportedCaptionLanguageStrings\n ? supportedCaptionLanguageStrings[currentCaptionLanguage]\n : currentCaptionLanguage;\n\n captionsDrawerItems.push({\n itemKey: 'ChangeCaptionLanguage',\n text: props.strings.captionLanguageMenuTitle,\n id: 'common-call-composite-captions-subtitle-settings-button',\n secondaryText: captionLanguageString,\n iconProps: {\n iconName: 'ChangeCaptionLanguageIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsCaptionLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: { root: { lineHeight: 0 } }\n }\n });\n }\n }\n\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDrawerButtons(\n onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n ),\n [drawerSelectionOptions]\n );\n\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['secondary'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['overflow'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(close-captions) */\n return (\n <>\n {isSpokenLanguageDrawerOpen && props.isCaptionsSupported && (\n <SpokenLanguageSettingsDrawer\n onLightDismiss={props.onLightDismiss}\n selectLanguage={setCurrentSpokenLanguage}\n setCurrentLanguage={captionSettingsHandlers.onSetSpokenLanguage}\n currentLanguage={currentSpokenLanguage}\n strings={{ menuTitle: props.strings.spokenLanguageMenuTitle }}\n supportedLanguageStrings={supportedSpokenLanguageStrings}\n />\n )}\n {isCaptionLanguageDrawerOpen && props.isCaptionsSupported && (\n <CaptionLanguageSettingsDrawer\n onLightDismiss={props.onLightDismiss}\n selectLanguage={setCurrentCaptionLanguage}\n setCurrentLanguage={captionSettingsHandlers.onSetCaptionLanguage}\n currentLanguage={currentCaptionLanguage}\n strings={{ menuTitle: props.strings.captionLanguageMenuTitle }}\n supportedLanguageStrings={supportedCaptionLanguageStrings}\n />\n )}\n {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && (\n <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />\n )}\n </>\n );\n\n return <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />;\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n"]}
1
+ {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport {\n OptionsDevice,\n _DrawerMenu as DrawerMenu,\n _DrawerMenuItemProps as DrawerMenuItemProps,\n _DrawerMenuStyles,\n SpokenLanguageStrings,\n CaptionLanguageStrings\n} from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _StartCaptionsButton, _CaptionsSettingsModal } from '@internal/react-components';\n\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDrawerButtons,\n onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n/* @conditional-compile-remove(close-captions) */\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(close-captions) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { _captionSettingsSelector, _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\n/* @conditional-compile-remove(close-captions) */\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\n/* @conditional-compile-remove(close-captions) */\nimport { _spokenLanguageToCaptionLanguage } from '@internal/react-components';\nimport { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\n\n/** @private */\nexport interface MoreDrawerStrings {\n /**\n * Label for people drawerMenuItem.\n */\n peopleButtonLabel: string;\n /**\n * Label for audio device drawerMenuItem.\n *\n * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated\n *\n */\n audioDeviceMenuTitle?: string;\n /**\n * Label for microphone drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used\n *\n */\n microphoneMenuTitle: string;\n /**\n * Label for speaker drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated\n *\n */\n speakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for captions drawerMenuItem\n *\n * @remarks Only displayed when in Teams call\n */\n captionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for spokenLanguage drawerMenuItem\n *\n * @remarks Only displayed when in Teams call, disabled until captions is on\n */\n spokenLanguageMenuTitle: string;\n\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for captionLanguage drawerMenuItem\n *\n * @remarks Only displayed when in Teams call, disabled until captions is on\n */\n captionLanguageMenuTitle: string;\n\n /**\n * Label for gallery options drawerMenuItem\n */\n galleryOptionsMenuTitle: string;\n}\n\n/** @private */\nexport interface MoreDrawerDevicesMenuProps {\n /**\n * Available microphones for selection\n */\n microphones?: OptionsDevice[];\n /**\n * Available speakers for selection\n */\n speakers?: OptionsDevice[];\n /**\n * Microphone that is shown as currently selected\n */\n selectedMicrophone?: OptionsDevice;\n /**\n * Speaker that is shown as currently selected\n */\n selectedSpeaker?: OptionsDevice;\n /**\n * Speaker when a speaker is selected\n */\n onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n /**\n * Callback when a microphone is selected\n */\n onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n userSetGalleryLayout?: VideoGalleryLayout;\n /**\n * Callback for when the gallery layout is changed\n */\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n /**\n * Callback to hide and show the dialpad in the more drawer\n */\n onSetDialpadPage?: () => void;\n /**\n * Whether the dialpad is present in the call\n */\n dtmfDialerPresent?: boolean;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n /* @conditional-compile-remove(close-captions) */\n isTeamsCall?: boolean;\n /* @conditional-compile-remove(reaction) */\n reactionResources?: ReactionResources;\n /* @conditional-compile-remove(reaction) */\n onReactionClick?: (reaction: string) => Promise<void>;\n}\n\nconst inferCallWithChatControlOptions = (\n callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n if (callWithChatControls === false) {\n return false;\n }\n const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const theme = useTheme();\n const callAdapter = useAdapter();\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n const localeStrings = useLocale();\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n const callees = useSelector(getTargetCallees);\n const allowDtmfDialer = showDtmfDialer(callees);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n const onSpeakerItemClick = useCallback(\n (\n _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n itemKey: string | undefined\n ) => {\n const selected = speakers?.find((speaker) => speaker.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectSpeaker(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [speakers, onSelectSpeaker, onLightDismiss]\n );\n\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n const showCaptionsButton =\n props.isCaptionsSupported &&\n /* @conditional-compile-remove(acs-close-captions) */ drawerSelectionOptions !== false &&\n /* @conditional-compile-remove(acs-close-captions) */ isEnabled(drawerSelectionOptions.captions);\n\n /* @conditional-compile-remove(reaction) */\n if (props.reactionResources !== undefined) {\n drawerMenuItems.push({\n itemKey: 'reactions',\n onRendererContent: () => (\n <_ReactionDrawerMenuItem onReactionClick={props.onReactionClick} reactionResources={props.reactionResources} />\n )\n });\n }\n\n if (props.speakers && props.speakers.length > 0) {\n drawerMenuItems.push({\n itemKey: 'speakers',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.speakerMenuTitle,\n iconProps: { iconName: 'MoreDrawerSpeakers' },\n subMenuProps: props.speakers.map((speaker) => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n ? 'MoreDrawerSelectedSpeaker'\n : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n\n const { microphones, onSelectMicrophone } = props;\n const onMicrophoneItemClick = useCallback(\n (\n _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n itemKey: string | undefined\n ) => {\n const selected = microphones?.find((mic) => mic.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectMicrophone(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [microphones, onSelectMicrophone, onLightDismiss]\n );\n\n if (props.microphones && props.microphones.length > 0) {\n // Set props as Microphone if speakers can be enumerated else set as Audio Device\n const speakersAvailable = props.speakers && props.speakers.length > 0;\n const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: { iconName: iconName },\n subMenuProps: props.microphones.map((mic) => ({\n itemKey: mic.id,\n iconProps: {\n iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n },\n text: mic.name,\n onItemClick: onMicrophoneItemClick,\n secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n\n const dtmfDialerScreenOption = {\n itemKey: 'dtmfDialerScreenKey',\n text: !dtmfDialerChecked\n ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n onItemClick: () => {\n if (props.onSetDialpadPage) {\n props.onSetDialpadPage();\n }\n setDtmfDialerChecked(!dtmfDialerChecked);\n onLightDismiss();\n },\n iconProps: {\n iconName: 'DtmfDialpadButton',\n styles: { root: { lineHeight: 0 } }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer) {\n drawerMenuItems.push(dtmfDialerScreenOption);\n }\n\n const galleryLayoutOptions = {\n itemKey: 'galleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: [\n {\n itemKey: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? { iconName: 'Accept' } : undefined\n },\n {\n itemKey: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? { iconName: 'Accept' } : undefined\n }\n ]\n };\n\n /* @conditional-compile-remove(gallery-layout-composite) */\n const galleryOption = {\n itemKey: 'defaultSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'DefaultGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined\n };\n\n /* @conditional-compile-remove(gallery-layout-composite) */\n galleryLayoutOptions.subMenuProps?.push(galleryOption);\n\n drawerMenuItems.push(galleryLayoutOptions);\n\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n drawerMenuItems.push({\n itemKey: 'people',\n id: 'call-composite-drawer-people-button',\n text: props.strings.peopleButtonLabel,\n iconProps: { iconName: 'MoreDrawerPeople' },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n drawerMenuItems.push({\n itemKey: 'holdButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onItemClick: () => {\n holdButtonProps.onToggleHold();\n onLightDismiss();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n const role = callAdapter.getState().call?.role;\n const hideRaiseHandButtonInRoomsCall =\n callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n\n if (\n drawerSelectionOptions !== false &&\n isEnabled(drawerSelectionOptions?.raiseHandButton) &&\n !hideRaiseHandButtonInRoomsCall\n ) {\n const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n drawerMenuItems.push({\n itemKey: 'raiseHandButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n text: raiseHandButtonProps.checked\n ? localeStrings.component.strings.raiseHandButton.onLabel\n : localeStrings.component.strings.raiseHandButton.offLabel,\n onItemClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n onLightDismiss();\n },\n iconProps: {\n iconName: raiseHandIcon,\n styles: { root: { lineHeight: 0 } }\n }\n });\n }\n\n /* @conditional-compile-remove(close-captions) */\n //Captions drawer menu\n const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n /* @conditional-compile-remove(close-captions) */\n //Captions drawer menu\n const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n /* @conditional-compile-remove(close-captions) */\n const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n /* @conditional-compile-remove(close-captions) */\n const captionSettingsHandlers = useHandlers(_CaptionsSettingsModal);\n\n /* @conditional-compile-remove(close-captions) */\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n\n /* @conditional-compile-remove(close-captions) */\n const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n /* @conditional-compile-remove(close-captions) */\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(\n captionSettingsProp.currentSpokenLanguage ?? 'en-us'\n );\n\n /* @conditional-compile-remove(close-captions) */\n const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(\n captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]\n );\n\n /* @conditional-compile-remove(close-captions) */\n const onToggleChange = useCallback(async () => {\n if (!captionSettingsProp.isCaptionsFeatureActive) {\n await startCaptionsButtonHandlers.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n } else {\n startCaptionsButtonHandlers.onStopCaptions();\n }\n }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);\n\n /* @conditional-compile-remove(close-captions) */\n if (showCaptionsButton) {\n const captionsDrawerItems: DrawerMenuItemProps[] = [];\n\n const spokenLanguageString = supportedSpokenLanguageStrings\n ? supportedSpokenLanguageStrings[currentSpokenLanguage]\n : currentSpokenLanguage;\n\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: { iconName: 'CaptionsIcon' },\n subMenuProps: captionsDrawerItems\n });\n\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: captionSettingsProp.isCaptionsFeatureActive\n ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onItemClick: onToggleChange,\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: (\n <Stack verticalFill verticalAlign=\"center\">\n <Toggle\n id=\"common-call-composite-captions-toggle-button\"\n checked={captionSettingsProp.isCaptionsFeatureActive}\n styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)}\n onChange={onToggleChange}\n />\n </Stack>\n )\n });\n\n captionsDrawerItems.push({\n itemKey: 'ChangeSpokenLanguage',\n text: props.strings.spokenLanguageMenuTitle,\n id: 'common-call-composite-captions-spoken-settings-button',\n secondaryText: spokenLanguageString,\n iconProps: {\n iconName: 'ChangeSpokenLanguageIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: { root: { lineHeight: 0 } }\n }\n });\n\n if (props.isTeamsCall) {\n const captionLanguageString = supportedCaptionLanguageStrings\n ? supportedCaptionLanguageStrings[currentCaptionLanguage]\n : currentCaptionLanguage;\n\n captionsDrawerItems.push({\n itemKey: 'ChangeCaptionLanguage',\n text: props.strings.captionLanguageMenuTitle,\n id: 'common-call-composite-captions-subtitle-settings-button',\n secondaryText: captionLanguageString,\n iconProps: {\n iconName: 'ChangeCaptionLanguageIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsCaptionLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: { root: { lineHeight: 0 } }\n }\n });\n }\n }\n\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDrawerButtons(\n onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n ),\n [drawerSelectionOptions]\n );\n\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['secondary'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['overflow'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(close-captions) */\n return (\n <>\n {isSpokenLanguageDrawerOpen && showCaptionsButton && (\n <SpokenLanguageSettingsDrawer\n onLightDismiss={props.onLightDismiss}\n selectLanguage={setCurrentSpokenLanguage}\n setCurrentLanguage={captionSettingsHandlers.onSetSpokenLanguage}\n currentLanguage={currentSpokenLanguage}\n strings={{ menuTitle: props.strings.spokenLanguageMenuTitle }}\n supportedLanguageStrings={supportedSpokenLanguageStrings}\n />\n )}\n {isCaptionLanguageDrawerOpen && showCaptionsButton && (\n <CaptionLanguageSettingsDrawer\n onLightDismiss={props.onLightDismiss}\n selectLanguage={setCurrentCaptionLanguage}\n setCurrentLanguage={captionSettingsHandlers.onSetCaptionLanguage}\n currentLanguage={currentCaptionLanguage}\n strings={{ menuTitle: props.strings.captionLanguageMenuTitle }}\n supportedLanguageStrings={supportedCaptionLanguageStrings}\n />\n )}\n {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && (\n <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />\n )}\n </>\n );\n\n return <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />;\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n"]}
@@ -7,10 +7,8 @@ import { useHandlers } from '../CallComposite/hooks/useHandlers';
7
7
  import { useSelector } from '../CallComposite/hooks/useSelector';
8
8
  import { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';
9
9
  import { _ModalClone } from "../../../../react-components/src";
10
- /* @conditional-compile-remove(rooms) */
11
10
  import { _RemoteVideoTile } from "../../../../react-components/src";
12
11
  import { hiddenStyle, modalStyle, PIPContainerStyle } from './styles/ModalLocalAndRemotePIP.styles';
13
- /* @conditional-compile-remove(rooms) */
14
12
  import { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';
15
13
  import { useLocale } from '../localization';
16
14
  /**
@@ -30,9 +28,7 @@ const DRAG_OPTIONS = {
30
28
  export const ModalLocalAndRemotePIP = (props) => {
31
29
  var _a, _b;
32
30
  const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;
33
- /* @conditional-compile-remove(rooms) */
34
31
  const adapter = useAdapter();
35
- /* @conditional-compile-remove(rooms) */
36
32
  const role = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role;
37
33
  const locale = useLocale();
38
34
  const pictureInPictureProps = useSelector(localAndRemotePIPSelector);
@@ -58,25 +54,25 @@ export const ModalLocalAndRemotePIP = (props) => {
58
54
  }
59
55
  }, [props]);
60
56
  const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);
57
+ const remoteParticipant = pictureInPictureProps.remoteParticipant;
61
58
  const localAndRemotePIP = useMemo(() => {
62
- var _a, _b, _c, _d, _e;
63
- /* @conditional-compile-remove(rooms) */
64
- if (role === 'Consumer' && ((_a = pictureInPictureProps.dominantRemoteParticipant) === null || _a === void 0 ? void 0 : _a.userId)) {
65
- return (React.createElement(Stack, { tabIndex: 0, "aria-label": (_c = (_b = props.strings) === null || _b === void 0 ? void 0 : _b.dismissModalAriaLabel) !== null && _c !== void 0 ? _c : '', onKeyDown: onKeyDown },
66
- React.createElement(_RemoteVideoTile, Object.assign({ strings: locale.component.strings.videoGallery }, pictureInPictureProps.dominantRemoteParticipant, { remoteParticipant: pictureInPictureProps.dominantRemoteParticipant }))));
59
+ var _a, _b, _c, _d;
60
+ if (role === 'Consumer' && (remoteParticipant === null || remoteParticipant === void 0 ? void 0 : remoteParticipant.userId)) {
61
+ return (React.createElement(Stack, { tabIndex: 0, "aria-label": (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.dismissModalAriaLabel) !== null && _b !== void 0 ? _b : '', onKeyDown: onKeyDown },
62
+ React.createElement(_RemoteVideoTile, Object.assign({ strings: locale.component.strings.videoGallery }, remoteParticipant, { remoteParticipant: remoteParticipant }))));
67
63
  }
68
- return (React.createElement(Stack, { tabIndex: 0, "aria-label": (_e = (_d = props.strings) === null || _d === void 0 ? void 0 : _d.dismissModalAriaLabel) !== null && _e !== void 0 ? _e : '', onKeyDown: onKeyDown },
69
- React.createElement(LocalAndRemotePIP, Object.assign({}, pictureInPictureProps, pictureInPictureHandlers))));
64
+ return (React.createElement(Stack, { tabIndex: 0, "aria-label": (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.dismissModalAriaLabel) !== null && _d !== void 0 ? _d : '', onKeyDown: onKeyDown },
65
+ React.createElement(LocalAndRemotePIP, Object.assign({}, pictureInPictureProps, pictureInPictureHandlers, { remoteParticipant: remoteParticipant }))));
70
66
  }, [
71
- /* @conditional-compile-remove(rooms) */ role,
67
+ role,
72
68
  onKeyDown,
73
69
  pictureInPictureProps,
74
70
  props,
75
71
  pictureInPictureHandlers,
76
- locale.component.strings.videoGallery
72
+ locale.component.strings.videoGallery,
73
+ remoteParticipant
77
74
  ]);
78
- /* @conditional-compile-remove(rooms) */
79
- if (role === 'Consumer' && !pictureInPictureProps.dominantRemoteParticipant) {
75
+ if (role === 'Consumer' && !remoteParticipant) {
80
76
  return null;
81
77
  }
82
78
  const modalStylesThemed = concatStyleSets(modalStyle, (_b = props.styles) === null || _b === void 0 ? void 0 : _b.modal);
@@ -1 +1 @@
1
- {"version":3,"file":"ModalLocalAndRemotePIP.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ModalLocalAndRemotePIP.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, ContextualMenu, IDragOptions, Stack } from '@fluentui/react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { LocalAndRemotePIP } from '../CallComposite/components/LocalAndRemotePIP';\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';\nimport { _ModalClone, _ICoordinates } from '@internal/react-components';\n/* @conditional-compile-remove(rooms) */\nimport { _RemoteVideoTile } from '@internal/react-components';\nimport {\n hiddenStyle,\n ModalLocalAndRemotePIPStyles,\n modalStyle,\n PIPContainerStyle\n} from './styles/ModalLocalAndRemotePIP.styles';\n/* @conditional-compile-remove(rooms) */\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { useLocale } from '../localization';\n\n/**\n * Drag options for Modal in {@link ModalLocalAndRemotePIP} component\n */\nconst DRAG_OPTIONS: IDragOptions = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n\n/**\n * @private\n */\nexport interface ModalLocalAndRemotePIPStrings {\n /**\n * Aria label for dismiss control when using keyboard\n */\n dismissModalAriaLabel?: string;\n}\n\n/**\n * A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id\n * specified by `modalLayerHostId` prop\n * @private\n */\nexport const ModalLocalAndRemotePIP = (props: {\n hidden: boolean;\n modalLayerHostId: string;\n styles?: ModalLocalAndRemotePIPStyles;\n minDragPosition?: _ICoordinates;\n maxDragPosition?: _ICoordinates;\n onDismissSidePane?: () => void;\n strings?: ModalLocalAndRemotePIPStrings;\n}): JSX.Element | null => {\n const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;\n\n /* @conditional-compile-remove(rooms) */\n const adapter = useAdapter();\n /* @conditional-compile-remove(rooms) */\n const role = adapter.getState().call?.role;\n\n const locale = useLocale();\n\n const pictureInPictureProps = useSelector(localAndRemotePIPSelector);\n\n const [touchStartTouches, setTouchStartTouches] = useState<React.TouchList | null>(null);\n\n const onTouchEnd = useCallback(\n (event: React.TouchEvent) => {\n if (touchStartTouches && touchStartTouches.length === 1 && event.changedTouches.length === 1) {\n const touchStartTouch = touchStartTouches[0];\n const touchEndTouch = event.changedTouches[0];\n if (\n Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 &&\n Math.abs(touchStartTouch.clientY - touchEndTouch.clientY) < 10\n ) {\n props.onDismissSidePane?.();\n }\n }\n },\n [props, touchStartTouches]\n );\n\n const onTouchStart = useCallback((event: React.TouchEvent) => {\n setTouchStartTouches(event.touches);\n }, []);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n props.onDismissSidePane?.();\n }\n },\n [props]\n );\n\n const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);\n const localAndRemotePIP = useMemo(() => {\n /* @conditional-compile-remove(rooms) */\n if (role === 'Consumer' && pictureInPictureProps.dominantRemoteParticipant?.userId) {\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <_RemoteVideoTile\n strings={locale.component.strings.videoGallery}\n {...pictureInPictureProps.dominantRemoteParticipant}\n remoteParticipant={pictureInPictureProps.dominantRemoteParticipant}\n />\n </Stack>\n );\n }\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <LocalAndRemotePIP {...pictureInPictureProps} {...pictureInPictureHandlers} />\n </Stack>\n );\n }, [\n /* @conditional-compile-remove(rooms) */ role,\n onKeyDown,\n pictureInPictureProps,\n props,\n pictureInPictureHandlers,\n locale.component.strings.videoGallery\n ]);\n\n /* @conditional-compile-remove(rooms) */\n if (role === 'Consumer' && !pictureInPictureProps.dominantRemoteParticipant) {\n return null;\n }\n\n const modalStylesThemed = concatStyleSets(modalStyle, props.styles?.modal);\n\n return (\n <Stack styles={rootStyles}>\n <Stack onTouchStart={onTouchStart} onTouchEnd={onTouchEnd}>\n <_ModalClone\n isOpen={true}\n isModeless={true}\n dragOptions={DRAG_OPTIONS}\n styles={modalStylesThemed}\n layerProps={{ hostId: props.modalLayerHostId }}\n minDragPosition={props.minDragPosition}\n maxDragPosition={props.maxDragPosition}\n >\n {\n // Only render LocalAndRemotePIP when this component is NOT hidden because VideoGallery needs to have\n // possession of the dominant remote participant video stream\n !props.hidden && localAndRemotePIP\n }\n </_ModalClone>\n </Stack>\n </Stack>\n );\n};\n"]}
1
+ {"version":3,"file":"ModalLocalAndRemotePIP.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ModalLocalAndRemotePIP.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, ContextualMenu, IDragOptions, Stack } from '@fluentui/react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { LocalAndRemotePIP } from '../CallComposite/components/LocalAndRemotePIP';\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';\nimport { _ModalClone, _ICoordinates } from '@internal/react-components';\nimport { _RemoteVideoTile } from '@internal/react-components';\nimport {\n hiddenStyle,\n ModalLocalAndRemotePIPStyles,\n modalStyle,\n PIPContainerStyle\n} from './styles/ModalLocalAndRemotePIP.styles';\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { useLocale } from '../localization';\n\n/**\n * Drag options for Modal in {@link ModalLocalAndRemotePIP} component\n */\nconst DRAG_OPTIONS: IDragOptions = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n\n/**\n * @private\n */\nexport interface ModalLocalAndRemotePIPStrings {\n /**\n * Aria label for dismiss control when using keyboard\n */\n dismissModalAriaLabel?: string;\n}\n\n/**\n * A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id\n * specified by `modalLayerHostId` prop\n * @private\n */\nexport const ModalLocalAndRemotePIP = (props: {\n hidden: boolean;\n modalLayerHostId: string;\n styles?: ModalLocalAndRemotePIPStyles;\n minDragPosition?: _ICoordinates;\n maxDragPosition?: _ICoordinates;\n onDismissSidePane?: () => void;\n strings?: ModalLocalAndRemotePIPStrings;\n}): JSX.Element | null => {\n const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;\n\n const adapter = useAdapter();\n const role = adapter.getState().call?.role;\n\n const locale = useLocale();\n\n const pictureInPictureProps = useSelector(localAndRemotePIPSelector);\n\n const [touchStartTouches, setTouchStartTouches] = useState<React.TouchList | null>(null);\n\n const onTouchEnd = useCallback(\n (event: React.TouchEvent) => {\n if (touchStartTouches && touchStartTouches.length === 1 && event.changedTouches.length === 1) {\n const touchStartTouch = touchStartTouches[0];\n const touchEndTouch = event.changedTouches[0];\n if (\n Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 &&\n Math.abs(touchStartTouch.clientY - touchEndTouch.clientY) < 10\n ) {\n props.onDismissSidePane?.();\n }\n }\n },\n [props, touchStartTouches]\n );\n\n const onTouchStart = useCallback((event: React.TouchEvent) => {\n setTouchStartTouches(event.touches);\n }, []);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n props.onDismissSidePane?.();\n }\n },\n [props]\n );\n\n const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);\n const remoteParticipant = pictureInPictureProps.remoteParticipant;\n\n const localAndRemotePIP = useMemo(() => {\n if (role === 'Consumer' && remoteParticipant?.userId) {\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <_RemoteVideoTile\n strings={locale.component.strings.videoGallery}\n {...remoteParticipant}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }\n return (\n <Stack tabIndex={0} aria-label={props.strings?.dismissModalAriaLabel ?? ''} onKeyDown={onKeyDown}>\n <LocalAndRemotePIP\n {...pictureInPictureProps}\n {...pictureInPictureHandlers}\n remoteParticipant={remoteParticipant}\n />\n </Stack>\n );\n }, [\n role,\n onKeyDown,\n pictureInPictureProps,\n props,\n pictureInPictureHandlers,\n locale.component.strings.videoGallery,\n remoteParticipant\n ]);\n\n if (role === 'Consumer' && !remoteParticipant) {\n return null;\n }\n\n const modalStylesThemed = concatStyleSets(modalStyle, props.styles?.modal);\n\n return (\n <Stack styles={rootStyles}>\n <Stack onTouchStart={onTouchStart} onTouchEnd={onTouchEnd}>\n <_ModalClone\n isOpen={true}\n isModeless={true}\n dragOptions={DRAG_OPTIONS}\n styles={modalStylesThemed}\n layerProps={{ hostId: props.modalLayerHostId }}\n minDragPosition={props.minDragPosition}\n maxDragPosition={props.maxDragPosition}\n >\n {\n // Only render LocalAndRemotePIP when this component is NOT hidden because VideoGallery needs to have\n // possession of the dominant remote participant video stream\n !props.hidden && localAndRemotePIP\n }\n </_ModalClone>\n </Stack>\n </Stack>\n );\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ParticipantListProps, ParticipantMenuItemsCallback } from "../../../../react-components/src";
3
+ import { IContextualMenuProps } from '@fluentui/react';
3
4
  import { AvatarPersonaDataCallback } from './AvatarPersona';
4
5
  type ParticipantContainerProps = {
5
6
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
@@ -21,6 +22,9 @@ export declare const ParticipantListWithHeading: (props: {
21
22
  isMobile?: boolean;
22
23
  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;
23
24
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
25
+ headingMoreButtonAriaLabel?: string;
26
+ onClickHeadingMoreButton?: () => void;
27
+ headingMoreButtonMenuProps?: IContextualMenuProps;
24
28
  }) => JSX.Element;
25
29
  export {};
26
30
  //# sourceMappingURL=ParticipantContainer.d.ts.map
@@ -2,8 +2,12 @@
2
2
  // Licensed under the MIT License.
3
3
  import React, { useMemo } from 'react';
4
4
  import { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles } from './styles/ParticipantContainer.styles';
5
+ /* @conditional-compile-remove(spotlight) */
6
+ import { headingMoreButtonStyles } from './styles/ParticipantContainer.styles';
5
7
  import { ParticipantList } from "../../../../react-components/src";
6
8
  import { FocusZone, Stack, Text, useTheme } from '@fluentui/react';
9
+ /* @conditional-compile-remove(spotlight) */
10
+ import { DefaultButton } from '@fluentui/react';
7
11
  import { AvatarPersona } from './AvatarPersona';
8
12
  import { useId } from '@fluentui/react-hooks';
9
13
  import { _formatString } from "../../../../acs-ui-common/src";
@@ -20,7 +24,10 @@ export const ParticipantContainer = (props) => {
20
24
  * @private
21
25
  */
22
26
  export const ParticipantListWithHeading = (props) => {
23
- const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps } = props;
27
+ const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps,
28
+ /* @conditional-compile-remove(spotlight) */ headingMoreButtonAriaLabel,
29
+ /* @conditional-compile-remove(spotlight) */ onClickHeadingMoreButton,
30
+ /* @conditional-compile-remove(spotlight) */ headingMoreButtonMenuProps } = props;
24
31
  const subheadingUniqueId = useId();
25
32
  const theme = useTheme();
26
33
  /* @conditional-compile-remove(total-participant-count) */
@@ -33,8 +40,12 @@ export const ParticipantListWithHeading = (props) => {
33
40
  }
34
41
  }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);
35
42
  return (React.createElement(Stack, { className: participantListStack },
36
- React.createElement(Stack.Item, { styles: subheadingStyleThemed, "aria-label": title, id: subheadingUniqueId }, paneTitleTrampoline(title !== null && title !== void 0 ? title : '',
37
- /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount)),
43
+ React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
44
+ React.createElement(Stack.Item, { grow: true, styles: subheadingStyleThemed, "aria-label": title, id: subheadingUniqueId }, paneTitleTrampoline(title !== null && title !== void 0 ? title : '',
45
+ /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount)),
46
+ /* @conditional-compile-remove(spotlight) */ (onClickHeadingMoreButton ||
47
+ ((headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0)) && (React.createElement(Stack.Item, null,
48
+ React.createElement(DefaultButton, { ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
38
49
  React.createElement(FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },
39
50
  React.createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
40
51
  React.createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text), dataProvider: onFetchAvatarPersonaData, allowActiveBorder: true })),
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport {\n participantListContainerStyle,\n participantListMobileStyle,\n participantListStack,\n participantListStyle,\n participantListWrapper,\n displayNameStyles\n} from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { FocusZone, Stack, Text, useTheme } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\n\ntype ParticipantContainerProps = {\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return (\n <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>\n );\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n}): JSX.Element => {\n const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const subheadingStyleThemed = useMemo(\n () => ({\n root: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize\n }\n }),\n [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]\n );\n\n return (\n <Stack className={participantListStack}>\n <Stack.Item styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n {paneTitleTrampoline(\n title ?? '',\n /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount\n )}\n </Stack.Item>\n <FocusZone className={participantListContainerStyle} shouldFocusOnMount={true}>\n <ParticipantList\n {...participantListProps}\n styles={props.isMobile ? participantListMobileStyle : participantListStyle}\n onRenderAvatar={(userId, options) => (\n <>\n <AvatarPersona\n data-ui-id=\"chat-composite-participant-custom-avatar\"\n userId={userId}\n {...options}\n {...{ hidePersonaDetails: !!options?.text }}\n dataProvider={onFetchAvatarPersonaData}\n allowActiveBorder={true}\n />\n {options?.text && (\n <Text nowrap={true} styles={displayNameStyles}>\n {options?.text}\n </Text>\n )}\n </>\n )}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n showParticipantOverflowTooltip={!props.isMobile}\n participantAriaLabelledBy={subheadingUniqueId}\n />\n </FocusZone>\n </Stack>\n );\n};\n\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount\n ? { numberOfPeople: `(${totalParticipantCount})` }\n : { numberOfPeople: ' ' };\n return _formatString(paneTitle, participantCountString);\n};\n"]}
1
+ {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport {\n participantListContainerStyle,\n participantListMobileStyle,\n participantListStack,\n participantListStyle,\n participantListWrapper,\n displayNameStyles\n} from './styles/ParticipantContainer.styles';\n/* @conditional-compile-remove(spotlight) */\nimport { headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { FocusZone, Stack, Text, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(spotlight) */\nimport { DefaultButton, IContextualMenuProps } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\n\ntype ParticipantContainerProps = {\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return (\n <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>\n );\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonAriaLabel?: string;\n /* @conditional-compile-remove(spotlight) */\n onClickHeadingMoreButton?: () => void;\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonMenuProps?: IContextualMenuProps;\n}): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n title,\n participantListProps,\n /* @conditional-compile-remove(spotlight) */ headingMoreButtonAriaLabel,\n /* @conditional-compile-remove(spotlight) */ onClickHeadingMoreButton,\n /* @conditional-compile-remove(spotlight) */ headingMoreButtonMenuProps\n } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const subheadingStyleThemed = useMemo(\n () => ({\n root: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize\n }\n }),\n [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]\n );\n\n return (\n <Stack className={participantListStack}>\n <Stack horizontal horizontalAlign=\"space-between\" verticalAlign=\"center\">\n <Stack.Item grow styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n {paneTitleTrampoline(\n title ?? '',\n /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount\n )}\n </Stack.Item>\n {\n /* @conditional-compile-remove(spotlight) */ (onClickHeadingMoreButton ||\n (headingMoreButtonMenuProps?.items && headingMoreButtonMenuProps.items.length > 0)) && (\n <Stack.Item>\n <DefaultButton\n ariaLabel={headingMoreButtonAriaLabel}\n styles={headingMoreButtonStyles(theme)}\n iconProps={{ iconName: 'PeoplePaneMoreButton' }}\n onClick={onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined}\n menuProps={props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps}\n onRenderMenuIcon={() => null}\n />\n </Stack.Item>\n )\n }\n </Stack>\n <FocusZone className={participantListContainerStyle} shouldFocusOnMount={true}>\n <ParticipantList\n {...participantListProps}\n styles={props.isMobile ? participantListMobileStyle : participantListStyle}\n onRenderAvatar={(userId, options) => (\n <>\n <AvatarPersona\n data-ui-id=\"chat-composite-participant-custom-avatar\"\n userId={userId}\n {...options}\n {...{ hidePersonaDetails: !!options?.text }}\n dataProvider={onFetchAvatarPersonaData}\n allowActiveBorder={true}\n />\n {options?.text && (\n <Text nowrap={true} styles={displayNameStyles}>\n {options?.text}\n </Text>\n )}\n </>\n )}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n showParticipantOverflowTooltip={!props.isMobile}\n participantAriaLabelledBy={subheadingUniqueId}\n />\n </FocusZone>\n </Stack>\n );\n};\n\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount\n ? { numberOfPeople: `(${totalParticipantCount})` }\n : { numberOfPeople: ' ' };\n return _formatString(paneTitle, participantCountString);\n};\n"]}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { IContextualMenuProps } from '@fluentui/react';
2
3
  import { ParticipantMenuItemsCallback, _DrawerMenuItemProps } from "../../../../react-components/src";
3
4
  import { AvatarPersonaDataCallback } from '../common/AvatarPersona';
4
5
  /**
@@ -10,5 +11,6 @@ export declare const PeoplePaneContent: (props: {
10
11
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback | undefined;
11
12
  setDrawerMenuItems: (drawerMenuItems: _DrawerMenuItemProps[]) => void;
12
13
  mobileView?: boolean | undefined;
14
+ participantListHeadingMoreButtonProps?: IContextualMenuProps | undefined;
13
15
  }) => JSX.Element;
14
16
  //# sourceMappingURL=PeoplePaneContent.d.ts.map
@@ -24,7 +24,9 @@ import { useLocale } from '../localization';
24
24
  * @private
25
25
  */
26
26
  export const PeoplePaneContent = (props) => {
27
- const { inviteLink, onFetchParticipantMenuItems, setDrawerMenuItems } = props;
27
+ var _a, _b;
28
+ const { inviteLink, onFetchParticipantMenuItems, setDrawerMenuItems,
29
+ /* @conditional-compile-remove(spotlight) */ participantListHeadingMoreButtonProps } = props;
28
30
  const adapter = useAdapter();
29
31
  const localeStrings = useLocale();
30
32
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
@@ -44,7 +46,7 @@ export const PeoplePaneContent = (props) => {
44
46
  /* @conditional-compile-remove(PSTN-calls) */
45
47
  const alternateCallerId = adapter.getState().alternateCallerId;
46
48
  const participantListDefaultProps = usePropsFor(ParticipantList);
47
- const removeButtonAllowed = hasRemoveParticipantsPermissionTrampoline(adapter);
49
+ const removeButtonAllowed = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.removeParticipant.isPresent;
48
50
  const setDrawerMenuItemsForParticipant = useMemo(() => {
49
51
  return (participant) => {
50
52
  if (participant) {
@@ -64,6 +66,11 @@ export const PeoplePaneContent = (props) => {
64
66
  onFetchParticipantMenuItems,
65
67
  setDrawerMenuItems
66
68
  ]);
69
+ /* @conditional-compile-remove(spotlight) */
70
+ const setDrawerMenuItemsForParticipantListHeadingMoreButton = useMemo(() => {
71
+ const drawerMenuItems = participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items.map((contextualMenu) => convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([])));
72
+ return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;
73
+ }, [participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items, setDrawerMenuItems]);
67
74
  const participantListProps = useMemo(() => {
68
75
  const onRemoveAParticipant = (participantId) => __awaiter(void 0, void 0, void 0, function* () { return removeParticipantFromCall(participantId); });
69
76
  return Object.assign(Object.assign({}, participantListDefaultProps), {
@@ -72,7 +79,13 @@ export const PeoplePaneContent = (props) => {
72
79
  // We want the drawer menu items to appear when participants in ParticipantList are clicked
73
80
  onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined });
74
81
  }, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, removeParticipantFromCall]);
75
- const participantList = (React.createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : onFetchParticipantMenuItems, title: strings.peoplePaneSubTitle }));
82
+ const participantList = (React.createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : onFetchParticipantMenuItems, title: strings.peoplePaneSubTitle,
83
+ /* @conditional-compile-remove(spotlight) */
84
+ headingMoreButtonAriaLabel: localeStrings.strings.call.peoplePaneMoreButtonAriaLabel,
85
+ /* @conditional-compile-remove(spotlight) */
86
+ onClickHeadingMoreButton: props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined,
87
+ /* @conditional-compile-remove(spotlight) */
88
+ headingMoreButtonMenuProps: props.participantListHeadingMoreButtonProps }));
76
89
  if (props.mobileView) {
77
90
  return (React.createElement(Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens, "data-ui-id": "people-pane-content" },
78
91
  React.createElement(Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
@@ -115,18 +128,4 @@ const createDefaultContextualMenuItems = (participant, strings, onRemoveParticip
115
128
  }
116
129
  return menuItems;
117
130
  };
118
- /**
119
- * @private
120
- */
121
- const hasRemoveParticipantsPermissionTrampoline = (adapter) => {
122
- var _a;
123
- /* @conditional-compile-remove(rooms) */
124
- const role = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role;
125
- /* @conditional-compile-remove(rooms) */
126
- const canRemove = role === 'Presenter' || role === 'Unknown' || role === undefined;
127
- /* @conditional-compile-remove(rooms) */
128
- return canRemove;
129
- // Return true if stable.
130
- return true;
131
- };
132
131
  //# sourceMappingURL=PeoplePaneContent.js.map