@azure/communication-react 1.27.0-beta.1 → 1.27.0

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 (437) hide show
  1. package/dist/communication-react.d.ts +142 -1385
  2. package/dist/dist-cjs/communication-react/index.js +40061 -174
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/common.d.ts +0 -13
  5. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/constants.d.ts +0 -5
  7. package/dist/dist-esm/acs-ui-common/src/constants.js +0 -5
  8. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/index.d.ts +0 -4
  10. package/dist/dist-esm/acs-ui-common/src/index.js +0 -3
  11. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.d.ts +27 -3
  15. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js +9 -2
  16. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.d.ts +31 -3
  18. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js +9 -2
  19. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js.map +1 -1
  20. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.d.ts +22 -3
  21. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js +8 -2
  22. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js.map +1 -1
  23. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.d.ts +29 -3
  24. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js +9 -2
  25. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js.map +1 -1
  26. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +6 -0
  27. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +7 -2
  28. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +13 -16
  30. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +0 -2
  32. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +0 -6
  33. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +1 -19
  35. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +2 -0
  37. package/dist/dist-esm/calling-component-bindings/src/index.js +1 -0
  38. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  39. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts +0 -1
  40. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -3
  41. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/remoteParticipantsSelector.d.ts +15 -0
  43. package/dist/dist-esm/calling-component-bindings/src/remoteParticipantsSelector.js +13 -0
  44. package/dist/dist-esm/calling-component-bindings/src/remoteParticipantsSelector.js.map +1 -0
  45. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +9 -0
  46. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +16 -0
  47. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  48. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +0 -4
  49. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  50. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +2 -42
  51. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  52. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +0 -6
  53. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -35
  54. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  55. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +0 -4
  56. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +4 -24
  57. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  58. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -3
  59. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/RealTimeTextSubscriber.js +2 -0
  61. package/dist/dist-esm/calling-stateful-client/src/RealTimeTextSubscriber.js.map +1 -1
  62. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts +0 -1
  63. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js +1 -7
  64. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  65. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +0 -17
  66. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -1
  68. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  69. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +2 -6
  70. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -35
  71. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  72. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts +1 -2
  73. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js +0 -4
  74. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  75. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +2 -25
  76. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  77. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -3
  78. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  79. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -15
  80. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  81. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +1 -2
  82. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  83. package/dist/dist-esm/chat-stateful-client/src/index.d.ts +0 -1
  84. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  85. package/dist/dist-esm/communication-react/src/index.d.ts +0 -21
  86. package/dist/dist-esm/communication-react/src/index.js +0 -3
  87. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  88. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.d.ts +0 -2
  89. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +0 -1
  90. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
  91. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +4 -7
  92. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  93. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -13
  94. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js +3 -9
  95. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  96. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +0 -11
  97. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +2 -32
  98. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  99. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -8
  100. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +5 -9
  101. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.d.ts +1 -2
  103. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +4 -4
  104. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
  105. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.d.ts +1 -4
  106. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +6 -31
  107. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  108. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +1 -15
  109. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +0 -9
  110. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  111. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +2 -23
  112. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +6 -17
  113. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  114. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -8
  115. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +6 -10
  116. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  117. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +5 -5
  118. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +0 -2
  120. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  121. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts +0 -2
  122. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +0 -15
  123. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  124. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +5 -81
  125. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -13
  126. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  127. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +0 -15
  128. package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -12
  129. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  130. package/dist/dist-esm/react-components/src/components/RTTDisclosureBanner.js.map +1 -1
  131. package/dist/dist-esm/react-components/src/components/RealTimeText.js.map +1 -1
  132. package/dist/dist-esm/react-components/src/components/RealTimeTextModal.js.map +1 -1
  133. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +1 -47
  134. package/dist/dist-esm/react-components/src/components/SendBox.js +6 -57
  135. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  136. package/dist/dist-esm/react-components/src/components/StartRealTimeTextButton.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js +10 -4
  138. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js.map +1 -1
  139. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -21
  140. package/dist/dist-esm/react-components/src/components/index.js +0 -8
  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 +1 -1
  143. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.d.ts +1 -1
  144. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  145. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +1 -1
  146. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  147. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +3 -3
  148. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +0 -8
  149. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  150. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.js +2 -0
  151. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +3 -37
  153. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +3 -30
  154. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  155. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +2 -4
  156. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +2 -9
  157. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
  158. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +1 -38
  159. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +4 -131
  160. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  161. package/dist/dist-esm/react-components/src/components/utils/common.js +0 -2
  162. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +1 -2
  164. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/utils/sortCaptionsAndRealTimeTexts.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +0 -4
  167. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +1 -3
  168. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  170. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -45
  172. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/theming/icons.d.ts +0 -24
  174. package/dist/dist-esm/react-components/src/theming/icons.js +0 -67
  175. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/theming/themes.d.ts +0 -6
  177. package/dist/dist-esm/react-components/src/theming/themes.js +0 -9
  178. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +0 -13
  180. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -20
  182. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  183. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +0 -59
  184. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +10 -15
  185. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  186. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  187. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +5 -37
  188. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +1 -11
  189. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  190. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -4
  191. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  192. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +1 -2
  193. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  194. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +0 -2
  195. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  196. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +0 -2
  197. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +0 -19
  198. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  199. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +2 -10
  200. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  201. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +0 -2
  202. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +0 -19
  203. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  204. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -1
  205. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +3 -5
  206. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  207. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -3
  208. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  209. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +0 -3
  210. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  211. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
  212. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  213. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +0 -7
  214. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +5 -40
  215. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  216. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +2 -2
  217. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  218. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -2
  219. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  220. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +2 -2
  221. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  222. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +3 -1
  224. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +11 -1
  226. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  227. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +0 -8
  228. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -49
  229. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  230. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +0 -52
  231. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +4 -10
  232. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  233. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -10
  234. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -20
  235. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  236. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +6 -20
  237. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -10
  239. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +2 -14
  240. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  241. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +0 -27
  242. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +1 -2
  243. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  244. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +0 -2
  245. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -189
  246. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  247. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +0 -20
  248. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  249. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -6
  250. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +0 -36
  251. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  252. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -12
  253. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  254. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +2 -13
  255. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  256. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +0 -2
  257. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  258. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +0 -4
  259. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +0 -4
  260. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  261. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +1 -1
  262. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  263. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +1 -1
  264. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  265. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -2
  266. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  267. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -41
  268. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +0 -21
  269. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  270. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +0 -5
  271. package/dist/dist-esm/react-composites/src/composites/common/constants.js +0 -5
  272. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  273. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -26
  274. package/dist/dist-esm/react-composites/src/composites/common/icons.js +0 -2
  275. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  276. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +5 -0
  277. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  278. package/package.json +14 -14
  279. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CuMDt6F1.js +0 -205
  280. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CuMDt6F1.js.map +0 -1
  281. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-FltfC9HN.js +0 -49
  282. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-FltfC9HN.js.map +0 -1
  283. package/dist/dist-cjs/communication-react/index-baiJAAbD.js +0 -45914
  284. package/dist/dist-cjs/communication-react/index-baiJAAbD.js.map +0 -1
  285. package/dist/dist-esm/acs-ui-common/src/dataConversion.d.ts +0 -6
  286. package/dist/dist-esm/acs-ui-common/src/dataConversion.js +0 -20
  287. package/dist/dist-esm/acs-ui-common/src/dataConversion.js.map +0 -1
  288. package/dist/dist-esm/acs-ui-common/src/removeImageTags.d.ts +0 -7
  289. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js +0 -18
  290. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js.map +0 -1
  291. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.d.ts +0 -17
  292. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js +0 -33
  293. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js.map +0 -1
  294. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.d.ts +0 -6
  295. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js +0 -20
  296. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js.map +0 -1
  297. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.d.ts +0 -10
  298. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js +0 -15
  299. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +0 -1
  300. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +0 -24
  301. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +0 -196
  302. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +0 -1
  303. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.d.ts +0 -69
  304. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +0 -36
  305. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +0 -1
  306. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.d.ts +0 -75
  307. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +0 -67
  308. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +0 -1
  309. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +0 -105
  310. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +0 -51
  311. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +0 -1
  312. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +0 -86
  313. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +0 -40
  314. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +0 -1
  315. package/dist/dist-esm/react-components/src/components/MentionPopover.d.ts +0 -121
  316. package/dist/dist-esm/react-components/src/components/MentionPopover.js +0 -119
  317. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +0 -1
  318. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.d.ts +0 -9
  319. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js +0 -29
  320. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js.map +0 -1
  321. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +0 -30
  322. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +0 -98
  323. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +0 -1
  324. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.d.ts +0 -19
  325. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js +0 -43
  326. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js.map +0 -1
  327. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +0 -15
  328. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +0 -42
  329. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +0 -1
  330. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.d.ts +0 -24
  331. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js +0 -64
  332. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js.map +0 -1
  333. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.d.ts +0 -20
  334. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js +0 -45
  335. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js.map +0 -1
  336. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.d.ts +0 -14
  337. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js +0 -42
  338. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js.map +0 -1
  339. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.d.ts +0 -30
  340. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js +0 -99
  341. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js.map +0 -1
  342. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +0 -59
  343. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +0 -334
  344. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +0 -1
  345. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +0 -37
  346. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +0 -78
  347. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +0 -1
  348. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -215
  349. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +0 -177
  350. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +0 -1
  351. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +0 -16
  352. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +0 -75
  353. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +0 -1
  354. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.d.ts +0 -9
  355. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js +0 -16
  356. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js.map +0 -1
  357. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.d.ts +0 -19
  358. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +0 -229
  359. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +0 -1
  360. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.d.ts +0 -7
  361. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js +0 -51
  362. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js.map +0 -1
  363. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.d.ts +0 -15
  364. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js +0 -64
  365. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js.map +0 -1
  366. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.d.ts +0 -6
  367. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js +0 -13
  368. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js.map +0 -1
  369. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts +0 -56
  370. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +0 -75
  371. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +0 -1
  372. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +0 -14
  373. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +0 -18
  374. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +0 -1
  375. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.d.ts +0 -24
  376. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +0 -550
  377. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +0 -1
  378. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +0 -152
  379. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +0 -819
  380. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +0 -1
  381. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +0 -58
  382. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +0 -144
  383. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +0 -1
  384. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +0 -26
  385. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +0 -69
  386. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +0 -1
  387. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +0 -82
  388. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +0 -324
  389. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +0 -1
  390. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.d.ts +0 -21
  391. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +0 -38
  392. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +0 -1
  393. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.d.ts +0 -38
  394. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js +0 -99
  395. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +0 -1
  396. package/dist/dist-esm/react-components/src/components/styles/Stack.style.d.ts +0 -5
  397. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js +0 -32
  398. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js.map +0 -1
  399. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +0 -73
  400. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +0 -178
  401. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +0 -1
  402. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.d.ts +0 -33
  403. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js +0 -119
  404. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js.map +0 -1
  405. package/dist/dist-esm/react-components/src/components/utils/merge.d.ts +0 -7
  406. package/dist/dist-esm/react-components/src/components/utils/merge.js +0 -16
  407. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +0 -1
  408. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +0 -6
  409. package/dist/dist-esm/react-components/src/theming/icons.styles.js +0 -25
  410. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +0 -1
  411. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +0 -46
  412. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +0 -200
  413. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +0 -1
  414. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.d.ts +0 -15
  415. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js +0 -23
  416. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js.map +0 -1
  417. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +0 -18
  418. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +0 -18
  419. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +0 -1
  420. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +0 -49
  421. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +0 -44
  422. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +0 -1
  423. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +0 -39
  424. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +0 -265
  425. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +0 -1
  426. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +0 -80
  427. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +0 -36
  428. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +0 -1
  429. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.d.ts +0 -38
  430. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +0 -67
  431. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +0 -1
  432. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +0 -5
  433. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +0 -5
  434. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +0 -1
  435. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.d.ts +0 -10
  436. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +0 -16
  437. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommonCallControlBar.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/common/ControlBar/CommonCallControlBar.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo, useRef, useEffect, useState, useCallback, RefObject } from 'react';\nimport { CallAdapterProvider } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { CallAdapter } from '../../CallComposite';\nimport { PeopleButton } from './PeopleButton';\nimport { concatStyleSets, IButton, IStyle, ITheme, mergeStyles, mergeStyleSets, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport { controlBarContainerStyles } from '../../CallComposite/styles/CallControls.styles';\nimport { callControlsContainerStyles } from '../../CallComposite/styles/CallPage.styles';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { BaseCustomStyles, ControlBarButtonStyles } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { ControlBar } from '@internal/react-components';\nimport { Microphone } from '../../CallComposite/components/buttons/Microphone';\nimport { Camera } from '../../CallComposite/components/buttons/Camera';\nimport { ScreenShare } from '../../CallComposite/components/buttons/ScreenShare';\nimport { EndCall } from '../../CallComposite/components/buttons/EndCall';\nimport { MoreButton } from '../MoreButton';\nimport { ContainerRectProps } from '../ContainerRectProps';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallControlBarButton, onFetchCustomButtonPropsTrampoline } from './CustomButton';\nimport { DesktopMoreButton } from './DesktopMoreButton';\nimport { isDisabled, _isSafari } from '../../CallComposite/utils';\nimport { CallWithChatControlOptions } from '../../CallWithChatComposite';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { CallingCaptionsSettingsModal } from '../CallingCaptionsSettingsModal';\nimport { RaiseHand } from '../../CallComposite/components/buttons/RaiseHand';\nimport { Reaction } from '../../CallComposite/components/buttons/Reaction';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { capabilitySelector } from '../../CallComposite/selectors/capabilitySelector';\nimport { DtmfDialpadButton } from './DtmfDialerButton';\nimport { ExitSpotlightButton } from '../ExitSpotlightButton';\nimport { useLocale } from '../../localization';\nimport { isBoolean } from '../utils';\nimport { getEnvironmentInfo } from '../../CallComposite/selectors/baseSelectors';\nimport { getIsTeamsCall } from '../../CallComposite/selectors/baseSelectors';\nimport { getAssignedBreakoutRoom, getBreakoutRoomSettings } from '../../CallComposite/selectors/baseSelectors';\nimport { callStatusSelector } from '../../CallComposite/selectors/callStatusSelector';\nimport { MeetingConferencePhoneInfoModal } from '@internal/react-components';\nimport { Timer } from './Timer';\nimport { CallingRealTimeTextModal } from '../CallingRealTimeTextModal';\n\n/**\n * @private\n */\nexport interface CommonCallControlBarProps {\n callAdapter: CallAdapter;\n peopleButtonChecked: boolean;\n onPeopleButtonClicked: () => void;\n onMoreButtonClicked?: () => void;\n mobileView: boolean;\n disableButtonsForLobbyPage: boolean;\n callControls?: boolean | CommonCallControlOptions | CallWithChatControlOptions;\n disableButtonsForHoldScreen?: boolean;\n onClickShowDialpad?: () => void;\n onClickVideoEffects?: (showVideoEffects: boolean) => void;\n isCaptionsSupported?: boolean;\n isRealTimeTextSupported?: boolean;\n isCaptionsOn?: boolean;\n displayVertical?: boolean;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n peopleButtonRef?: RefObject<IButton>;\n cameraButtonRef?: RefObject<IButton>;\n videoBackgroundPickerRef?: RefObject<IButton>;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n onStopLocalSpotlight?: () => void;\n useTeamsCaptions?: boolean;\n onToggleTeamsMeetingConferenceModal?: () => void;\n teamsMeetingConferenceModalPresent?: boolean;\n sidePaneDismissButtonRef?: RefObject<IButton>;\n onStartRealTimeText?: () => void;\n startRealTimeTextButtonChecked?: boolean;\n}\nconst inferCommonCallControlOptions = (mobileView: boolean, commonCallControlOptions?: boolean | CallWithChatControlOptions): CallWithChatControlOptions | false => {\n if (commonCallControlOptions === false) {\n return false;\n }\n const options = commonCallControlOptions === true || commonCallControlOptions === undefined ? {} : commonCallControlOptions;\n if (mobileView) {\n // Set to compressed mode when composite is optimized for mobile\n options.displayType = 'compact';\n // Set options to always not show screen share button for mobile\n options.screenShareButton = false;\n }\n return options;\n};\ntype CommonCallControlBarMergedProps = CommonCallControlBarProps & ContainerRectProps;\n\n/**\n * @private\n */\nexport const CommonCallControlBar = (props: CommonCallControlBarMergedProps): JSX.Element => {\n const theme = useTheme();\n const rtl = theme.rtl;\n const controlBarContainerRef = useRef<HTMLHeadingElement>(null);\n const sidepaneControlsRef = useRef<HTMLHeadingElement>(null);\n const controlBarSizeRef = useRef<HTMLHeadingElement>(null);\n const [controlBarButtonsWidth, setControlBarButtonsWidth] = useState(0);\n const [panelsButtonsWidth, setPanelsButtonsWidth] = useState(0);\n const [controlBarContainerWidth, setControlBarContainerWidth] = useState(0);\n const [totalButtonsWidth, setTotalButtonsWidth] = useState(0);\n const [isOutOfSpace, setIsOutOfSpace] = useState(false);\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const options = inferCommonCallControlOptions(props.mobileView, props.callControls);\n const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = useState(false);\n const [showRealTimeTextModal, setShowRealTimeTextModal] = useState(false);\n\n // If the hangup capability is not present, we default to true\n const isHangUpForEveryoneAllowed = useSelector(state => state.call?.capabilitiesFeature?.capabilities.hangUpForEveryOne.isPresent) ?? true;\n const isTeams = useSelector(getIsTeamsCall);\n const assignedBreakoutRoom = useSelector(getAssignedBreakoutRoom);\n const breakoutRoomSettings = useSelector(getBreakoutRoomSettings);\n const handleResize = useCallback((): void => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n\n // on load set inital width\n useEffect(() => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n\n // get the current width of control bar buttons and panel control buttons when browser size change\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n /* when size change, reset total buttons width and compare with the control bar container width\n if the total width of those buttons exceed container width, do not center the control bar buttons based on parent container width\n Instead let them take up the remaining white space on the left */\n useEffect(() => {\n // white space on the left when control bar buttons are centered based on container width + control bar buttons width + panel control buttons width\n setTotalButtonsWidth((controlBarContainerWidth - controlBarButtonsWidth) / 2 + controlBarButtonsWidth + panelsButtonsWidth);\n }, [controlBarButtonsWidth, panelsButtonsWidth, controlBarContainerWidth]);\n useEffect(() => {\n setIsOutOfSpace(totalButtonsWidth > controlBarContainerWidth);\n }, [totalButtonsWidth, controlBarContainerWidth]);\n const openCaptionsSettingsModal = useCallback((): void => {\n setShowCaptionsSettingsModal(true);\n }, []);\n const openRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(true);\n }, []);\n const onDismissRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(false);\n }, []);\n const onDismissCaptionsSettings = useCallback((): void => {\n setShowCaptionsSettingsModal(false);\n }, []);\n const peopleButtonStrings = useMemo(() => ({\n label: callWithChatStrings.peopleButtonLabel,\n selectedLabel: callWithChatStrings.selectedPeopleButtonLabel,\n tooltipOpenAriaLabel: callWithChatStrings.peopleButtonTooltipOpenAriaLabel,\n tooltipCloseAriaLabel: callWithChatStrings.peopleButtonTooltipCloseAriaLabel,\n tooltipOffContent: callWithChatStrings.peopleButtonTooltipOpen,\n tooltipOnContent: callWithChatStrings.peopleButtonTooltipClose\n }), [callWithChatStrings]);\n const moreButtonStrings = useMemo(() => ({\n label: callWithChatStrings.moreDrawerButtonLabel,\n tooltipContent: callWithChatStrings.moreDrawerButtonTooltip\n }), [callWithChatStrings]);\n const callStrings = useLocale().strings.call;\n const exitSpotlightButtonStrings = useMemo(() => ({\n label: callStrings.exitSpotlightButtonLabel,\n tooltipContent: callStrings.exitSpotlightButtonTooltip\n }), [callStrings]);\n const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = useState<boolean>(false);\n const startDeepNoiseSuppression = useCallback(async () => {\n await props.callAdapter.startNoiseSuppressionEffect();\n }, [props.callAdapter]);\n const environmentInfo = useSelector(getEnvironmentInfo);\n const isSafari = _isSafari(environmentInfo);\n useEffect(() => {\n if (props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && props.callAdapter.getState().deepNoiseSuppressionOnByDefault) {\n startDeepNoiseSuppression();\n setDeepNoiseSuppressionOn(true);\n }\n }, [props.callAdapter, startDeepNoiseSuppression]);\n const showNoiseSuppressionButton = props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && !props.callAdapter.getState().hideDeepNoiseSuppressionButton && !isSafari ? true : false;\n const onClickNoiseSuppression = useCallback(async () => {\n if (isDeepNoiseSuppressionOn) {\n await props.callAdapter.stopNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(false);\n } else {\n await props.callAdapter.startNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(true);\n }\n }, [props.callAdapter, isDeepNoiseSuppressionOn]);\n const centerContainerStyles = useMemo(() => {\n const styles: BaseCustomStyles = !props.mobileView ? desktopControlBarStyles : {};\n return mergeStyleSets(styles, {\n root: {\n // Enforce a background color on control bar to ensure it matches the composite background color.\n background: theme.semanticColors.bodyBackground\n }\n });\n }, [props.mobileView, theme.semanticColors.bodyBackground]);\n const screenShareButtonStyles = useMemo(() => !props.mobileView ? getDesktopScreenShareButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const commonButtonStyles = useMemo(() => !props.mobileView ? getDesktopCommonButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const endCallButtonStyles = useMemo(() => !props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const controlBarWrapperDesktopStyles: IStyle = useMemo(\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n () => !props.mobileView && !isOutOfSpace ? rtl ? wrapperDesktopRtlStyles : wrapperDesktopStyles : {}, [props.mobileView, rtl, isOutOfSpace]);\n\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n const controlBarDesktopContainerStyles: IStyle = useMemo(() => !props.mobileView && !isOutOfSpace ? {\n position: 'relative',\n minHeight: '4.5rem',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n paddingLeft: '1rem'\n } : {}, [props.mobileView, isOutOfSpace]);\n const customButtons = useMemo(() => generateCustomCallControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options?.displayType : undefined), [options]);\n const capabilitiesSelector = useSelector(capabilitySelector);\n const callState = useSelector(callStatusSelector);\n const isReactionAllowed = callState.callStatus !== 'Connected' || !capabilitiesSelector?.capabilities || capabilitiesSelector.capabilities.useReactions.isPresent;\n const canReturnToMainMeeting = breakoutRoomSettings && breakoutRoomSettings.disableReturnToMainMeeting === false;\n const returnFromBreakoutRoom = useCallback(() => props.callAdapter.returnFromBreakoutRoom(), [props.callAdapter]);\n\n // when options is false then we want to hide the whole control bar.\n if (options === false) {\n return <></>;\n }\n const sideButtonsPresent = isEnabled(options.peopleButton) || isEnabled(options.chatButton) || customButtons['secondary'] !== undefined;\n const screenShareButtonIsEnabled = isEnabled(options?.screenShareButton);\n const microphoneButtonIsEnabled = isEnabled(options?.microphoneButton);\n const cameraButtonIsEnabled = isEnabled(options?.cameraButton);\n const showExitSpotlightButton = options?.exitSpotlightButton !== false;\n const showCaptionsButton = props.isCaptionsSupported && isEnabled(options.captionsButton);\n const showRealTimeTextButton = props.isRealTimeTextSupported;\n const showTeamsMeetingPhoneCallButton = isEnabled(options?.teamsMeetingPhoneCallButton);\n const showDesktopMoreButton = isEnabled(options?.moreButton) && (false || isEnabled(options?.holdButton) || showCaptionsButton || props.onUserSetGalleryLayout || showRealTimeTextButton);\n const role = props.callAdapter.getState().call?.role;\n const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n const reactionResources = props.callAdapter.getState().reactions;\n return <div ref={controlBarSizeRef}>\n <CallAdapterProvider adapter={props.callAdapter}>\n {showCaptionsSettingsModal && <CallingCaptionsSettingsModal showCaptionsSettingsModal={showCaptionsSettingsModal} onDismissCaptionsSettings={onDismissCaptionsSettings} changeCaptionLanguage={props.isCaptionsOn && props.useTeamsCaptions} />}\n {showRealTimeTextModal && <CallingRealTimeTextModal showModal={showRealTimeTextModal} onDismissModal={onDismissRealTimeTextModal} onStartRealTimeText={props.onStartRealTimeText} />}\n {props.teamsMeetingConferenceModalPresent && <MeetingConferencePhoneInfoModal conferencePhoneInfoList={props.callAdapter.getState().call?.meetingConference?.conferencePhones ?? []} showModal={props.teamsMeetingConferenceModalPresent} onDismissMeetingPhoneInfoSettings={props.onToggleTeamsMeetingConferenceModal} />}\n </CallAdapterProvider>\n <Stack horizontal reversed={!props.mobileView && !isOutOfSpace} horizontalAlign=\"space-between\" className={mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles)}>\n <Stack.Item grow className={mergeStyles(controlBarWrapperDesktopStyles)}>\n <CallAdapterProvider adapter={props.callAdapter}>\n <Stack horizontalAlign=\"center\">\n <Stack.Item>\n {/*\n Note: We use the layout=\"horizontal\" instead of dockedBottom because of how we position the\n control bar. The control bar exists in a Stack below the MediaGallery. The MediaGallery is\n set to grow and fill the remaining space not taken up by the ControlBar. If we were to use\n dockedBottom it has position absolute and would therefore float on top of the media gallery,\n occluding some of its content.\n */}\n <div ref={controlBarContainerRef}>\n <ControlBar layout={props.displayVertical ? 'vertical' : 'horizontal'} styles={centerContainerStyles}>\n {!props.mobileView && assignedBreakoutRoom && assignedBreakoutRoom.state === 'open' &&\n // Breakout room settings are only defined in a breakout room so we use this to ensure\n // the button is not shown when already in a breakout room\n !breakoutRoomSettings && <PrimaryButton text={callStrings.joinBreakoutRoomButtonLabel} onClick={async (): Promise<void> => {\n assignedBreakoutRoom.join();\n }} styles={commonButtonStyles} />}\n {microphoneButtonIsEnabled && <Microphone displayType={options.displayType} styles={commonButtonStyles} splitButtonsForDeviceSelection={!props.mobileView} disabled={props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton)} disableTooltip={props.mobileView} onClickNoiseSuppression={onClickNoiseSuppression} isDeepNoiseSuppressionOn={isDeepNoiseSuppressionOn} showNoiseSuppressionButton={showNoiseSuppressionButton} />}\n {cameraButtonIsEnabled && <Camera displayType={options.displayType} styles={commonButtonStyles} splitButtonsForDeviceSelection={!props.mobileView} disabled={props.disableButtonsForHoldScreen || isDisabled(options.cameraButton)} onClickVideoEffects={props.onClickVideoEffects} componentRef={props.cameraButtonRef} disableTooltip={props.mobileView} />}\n {!props.mobileView && isReactionAllowed && isEnabled(options.reactionButton) && reactionResources && <Reaction displayType={options.displayType} styles={commonButtonStyles} disabled={props.disableButtonsForHoldScreen} reactionResource={reactionResources} />}\n {!props.mobileView && isEnabled(options.raiseHandButton) && !hideRaiseHandButtonInRoomsCall && <RaiseHand displayType={options.displayType} styles={commonButtonStyles} disabled={props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton)} />}\n {showDtmfDialerButton(options) && props.onSetDialpadPage !== undefined && <DtmfDialpadButton styles={commonButtonStyles} displayType={options.displayType} onClick={() => {\n if (props.onSetDialpadPage !== undefined) {\n props.onSetDialpadPage();\n }\n }} />}\n {showExitSpotlightButton && props.onStopLocalSpotlight && <ExitSpotlightButton displayType={options.displayType} onClick={props.onStopLocalSpotlight} styles={commonButtonStyles} strings={exitSpotlightButtonStrings} />}\n {screenShareButtonIsEnabled && <ScreenShare option={options.screenShareButton} displayType={options.displayType} styles={screenShareButtonStyles} disabled={props.disableButtonsForHoldScreen || isDisabled(options.screenShareButton)} />}\n {customButtons['primary']?.slice(0, props.mobileView ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return <CustomButton key={`primary-custom-button-${i}`} styles={commonButtonStyles} showLabel={options.displayType !== 'compact'} disableTooltip={props.mobileView} />;\n })}\n {props.mobileView && <MoreButton data-ui-id=\"common-call-composite-more-button\" strings={moreButtonStrings} onClick={props.onMoreButtonClicked} disabled={props.disableButtonsForLobbyPage} disableTooltip={props.mobileView} />}\n {!props.mobileView && showDesktopMoreButton && <DesktopMoreButton disableButtonsForHoldScreen={props.disableButtonsForHoldScreen} styles={commonButtonStyles} onClickShowDialpad={props.onClickShowDialpad} callControls={props.callControls} isCaptionsSupported={showCaptionsButton} isRealTimeTextSupported={showRealTimeTextButton} onCaptionsSettingsClick={openCaptionsSettingsModal} onStartRealTimeTextClick={openRealTimeTextModal} startRealTimeTextButtonChecked={props.startRealTimeTextButtonChecked} onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange} onUserSetGalleryLayout={props.onUserSetGalleryLayout} userSetGalleryLayout={props.userSetGalleryLayout} dtmfDialerPresent={props.dtmfDialerPresent} onSetDialpadPage={props.onSetDialpadPage} teamsMeetingPhoneCallEnable={showTeamsMeetingPhoneCallButton} onMeetingPhoneInfoClick={props.onToggleTeamsMeetingConferenceModal} />}\n <EndCall displayType=\"compact\" mobileView={props.mobileView} styles={endCallButtonStyles} enableEndCallMenu={!isBoolean(props.callControls) && !isBoolean(props.callControls?.endCallButton) && !props.mobileView && isHangUpForEveryoneAllowed && !isTeams &&\n // Temporary disable it for Teams call, since capability does not give the right value\n props.callControls?.endCallButton?.hangUpForEveryone === 'endCallOptions' &&\n // Only show the end call menu when the call is connected, user should not be able to end the call for everyone\n // when they are not actively in the call to communicate they will.\n callState.callStatus === 'Connected' && !canReturnToMainMeeting} disableEndCallModal={!isBoolean(props.callControls) && !isBoolean(props.callControls?.endCallButton) && props.callControls?.endCallButton?.disableEndCallModal} returnFromBreakoutRoom={canReturnToMainMeeting ? returnFromBreakoutRoom : undefined} />\n </ControlBar>\n </div>\n </Stack.Item>\n </Stack>\n </CallAdapterProvider>\n </Stack.Item>\n {!props.mobileView && sideButtonsPresent && <Stack.Item>\n <div ref={sidepaneControlsRef}>\n <Stack horizontal className={!props.mobileView ? mergeStyles(desktopButtonContainerStyle) : undefined}>\n {isEnabled(options?.peopleButton) && <PeopleButton checked={props.peopleButtonChecked} ariaLabel={peopleButtonStrings.label} showLabel={options.displayType !== 'compact'} onClick={props.onPeopleButtonClicked} data-ui-id=\"common-call-composite-people-button\" disabled={props.disableButtonsForLobbyPage || props.disableButtonsForHoldScreen || isDisabled(options.peopleButton)} strings={peopleButtonStrings} styles={commonButtonStyles} componentRef={props.peopleButtonRef} chatButtonPresent={isEnabled(options.chatButton)} peoplePaneDismissButtonRef={props.sidePaneDismissButtonRef} />}\n {customButtons['secondary']?.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return <CustomButton key={`secondary-custom-button-${i}`} styles={commonButtonStyles} showLabel={options.displayType !== 'compact'} />;\n })}\n </Stack>\n </div>\n </Stack.Item>}\n {breakoutRoomSettings?.roomEndTime && !props.mobileView && !isOutOfSpace && <Stack.Item>\n <Timer timeStampInfo={breakoutRoomSettings?.roomEndTime.toString()} />\n </Stack.Item>}\n </Stack>\n </div>;\n};\nconst desktopButtonContainerStyle: IStyle = {\n padding: '0.75rem',\n columnGap: '0.5rem'\n};\nconst desktopControlBarStyles: BaseCustomStyles = {\n root: desktopButtonContainerStyle\n};\n{\n /*\n Styling here to ensure the control bar buttons stay in the center of the parent component (control Container) regardless of its siblings\n Need to add 'reversed' to parent container because the styling here reverse the position of the two stack items \n */\n}\nconst wrapperDesktopStyles: IStyle = {\n position: 'absolute',\n left: '50%',\n transform: 'translate(-50%, 0)'\n};\nconst wrapperDesktopRtlStyles: IStyle = {\n position: 'absolute',\n right: '50%',\n transform: 'translate(-50%, 0)'\n};\n\n/** @private */\nexport const getDesktopCommonButtonStyles = (theme: ITheme): ControlBarButtonStyles => ({\n root: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderRadius: theme.effects.roundedCorner4,\n minHeight: '2.5rem',\n maxWidth: '12rem' // allot extra space than the regular ControlBarButton. This is to give extra room to have the icon beside the text.\n },\n flexContainer: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n textContainer: {\n // Override the default so that label doesn't introduce a new block.\n display: 'inline',\n // Ensure width is set to permit child to show ellipsis when there is a label that is too long\n maxWidth: '100%'\n },\n label: {\n fontSize: theme.fonts.medium.fontSize,\n // Ensure there is enough space between the icon and text to allow for the unread messages badge in the chat button\n marginLeft: '0.625rem',\n // Ensure letters that go above and below the standard text line like 'g', 'y', 'j' are not clipped\n lineHeight: '1.5rem',\n // Do not allow very long button texts to ruin the control bar experience, instead ensure long text is truncated and shows ellipsis\n display: 'block',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n splitButtonMenuButton: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderTopRightRadius: theme.effects.roundedCorner4,\n borderBottomRightRadius: theme.effects.roundedCorner4,\n borderTopLeftRadius: '0',\n borderBottomLeftRadius: '0'\n },\n splitButtonMenuButtonChecked: {\n // Default colors the menu half similarly for :hover and when button is checked.\n // To align with how the left-half is styled, override the checked style.\n background: 'none'\n }\n});\nconst getDesktopScreenShareButtonStyles = (theme: ITheme): ControlBarButtonStyles => {\n const overrideStyles = {\n border: 'none',\n background: theme.palette.themePrimary,\n color: theme.palette.white,\n '* > svg': {\n fill: theme.palette.white\n },\n '@media (forced-colors: active)': {\n border: '1px solid',\n borderColor: theme.palette.black\n }\n };\n const overrides: ControlBarButtonStyles = {\n rootChecked: overrideStyles,\n rootCheckedHovered: overrideStyles\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst getDesktopEndCallButtonStyles = (theme: ITheme): ControlBarButtonStyles => {\n const overrides: ControlBarButtonStyles = {\n root: {\n // Suppress border around the dark-red button.\n border: 'none'\n },\n rootFocused: {\n '@media (forced-colors: active)': {\n background: 'highlight',\n color: 'highlightText',\n borderColor: theme.palette.black,\n borderRadius: 'unset',\n outline: `3px solid ${theme.palette.black}`\n }\n },\n icon: {\n '@media (forced-colors: active)': {\n ':focused': {\n color: theme.palette.white\n }\n }\n }\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst isEnabled = (option: unknown): boolean => option !== false;\nconst showDtmfDialerButton = (options: CommonCallControlOptions | CallWithChatControlOptions): boolean => {\n if (options.moreButton === false && options.dtmfDialerButton !== false) {\n return true;\n } else {\n return false;\n }\n};"]}
1
+ {"version":3,"file":"CommonCallControlBar.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/common/ControlBar/CommonCallControlBar.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo, useRef, useEffect, useState, useCallback, RefObject } from 'react';\nimport { CallAdapterProvider } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { CallAdapter } from '../../CallComposite';\nimport { PeopleButton } from './PeopleButton';\nimport { concatStyleSets, IButton, IStyle, ITheme, mergeStyles, mergeStyleSets, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport { controlBarContainerStyles } from '../../CallComposite/styles/CallControls.styles';\nimport { callControlsContainerStyles } from '../../CallComposite/styles/CallPage.styles';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { BaseCustomStyles, ControlBarButtonStyles } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { ControlBar } from '@internal/react-components';\nimport { Microphone } from '../../CallComposite/components/buttons/Microphone';\nimport { Camera } from '../../CallComposite/components/buttons/Camera';\nimport { ScreenShare } from '../../CallComposite/components/buttons/ScreenShare';\nimport { EndCall } from '../../CallComposite/components/buttons/EndCall';\nimport { MoreButton } from '../MoreButton';\nimport { ContainerRectProps } from '../ContainerRectProps';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallControlBarButton, onFetchCustomButtonPropsTrampoline } from './CustomButton';\nimport { DesktopMoreButton } from './DesktopMoreButton';\nimport { isDisabled, _isSafari } from '../../CallComposite/utils';\nimport { CallWithChatControlOptions } from '../../CallWithChatComposite';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { CallingCaptionsSettingsModal } from '../CallingCaptionsSettingsModal';\nimport { RaiseHand } from '../../CallComposite/components/buttons/RaiseHand';\nimport { Reaction } from '../../CallComposite/components/buttons/Reaction';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { capabilitySelector } from '../../CallComposite/selectors/capabilitySelector';\nimport { DtmfDialpadButton } from './DtmfDialerButton';\nimport { ExitSpotlightButton } from '../ExitSpotlightButton';\nimport { useLocale } from '../../localization';\nimport { isBoolean } from '../utils';\nimport { getEnvironmentInfo } from '../../CallComposite/selectors/baseSelectors';\nimport { getIsTeamsCall } from '../../CallComposite/selectors/baseSelectors';\nimport { getAssignedBreakoutRoom, getBreakoutRoomSettings } from '../../CallComposite/selectors/baseSelectors';\nimport { callStatusSelector } from '../../CallComposite/selectors/callStatusSelector';\nimport { MeetingConferencePhoneInfoModal } from '@internal/react-components';\nimport { Timer } from './Timer';\nimport { CallingRealTimeTextModal } from '../CallingRealTimeTextModal';\n\n/**\n * @private\n */\nexport interface CommonCallControlBarProps {\n callAdapter: CallAdapter;\n peopleButtonChecked: boolean;\n onPeopleButtonClicked: () => void;\n onMoreButtonClicked?: () => void;\n mobileView: boolean;\n disableButtonsForLobbyPage: boolean;\n callControls?: boolean | CommonCallControlOptions | CallWithChatControlOptions;\n disableButtonsForHoldScreen?: boolean;\n onClickShowDialpad?: () => void;\n onClickVideoEffects?: (showVideoEffects: boolean) => void;\n isCaptionsSupported?: boolean;\n isRealTimeTextSupported?: boolean;\n isCaptionsOn?: boolean;\n displayVertical?: boolean;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n peopleButtonRef?: RefObject<IButton>;\n cameraButtonRef?: RefObject<IButton>;\n videoBackgroundPickerRef?: RefObject<IButton>;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n onStopLocalSpotlight?: () => void;\n useTeamsCaptions?: boolean;\n onToggleTeamsMeetingConferenceModal?: () => void;\n teamsMeetingConferenceModalPresent?: boolean;\n sidePaneDismissButtonRef?: RefObject<IButton>;\n onStartRealTimeText?: () => void;\n startRealTimeTextButtonChecked?: boolean;\n}\nconst inferCommonCallControlOptions = (mobileView: boolean, commonCallControlOptions?: boolean | CallWithChatControlOptions): CallWithChatControlOptions | false => {\n if (commonCallControlOptions === false) {\n return false;\n }\n const options = commonCallControlOptions === true || commonCallControlOptions === undefined ? {} : commonCallControlOptions;\n if (mobileView) {\n // Set to compressed mode when composite is optimized for mobile\n options.displayType = 'compact';\n // Set options to always not show screen share button for mobile\n options.screenShareButton = false;\n }\n return options;\n};\ntype CommonCallControlBarMergedProps = CommonCallControlBarProps & ContainerRectProps;\n\n/**\n * @private\n */\nexport const CommonCallControlBar = (props: CommonCallControlBarMergedProps): JSX.Element => {\n const theme = useTheme();\n const rtl = theme.rtl;\n const controlBarContainerRef = useRef<HTMLHeadingElement>(null);\n const sidepaneControlsRef = useRef<HTMLHeadingElement>(null);\n const controlBarSizeRef = useRef<HTMLHeadingElement>(null);\n const [controlBarButtonsWidth, setControlBarButtonsWidth] = useState(0);\n const [panelsButtonsWidth, setPanelsButtonsWidth] = useState(0);\n const [controlBarContainerWidth, setControlBarContainerWidth] = useState(0);\n const [totalButtonsWidth, setTotalButtonsWidth] = useState(0);\n const [isOutOfSpace, setIsOutOfSpace] = useState(false);\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const options = inferCommonCallControlOptions(props.mobileView, props.callControls);\n const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = useState(false);\n const [showRealTimeTextModal, setShowRealTimeTextModal] = useState(false);\n\n // If the hangup capability is not present, we default to true\n const isHangUpForEveryoneAllowed = useSelector(state => state.call?.capabilitiesFeature?.capabilities.hangUpForEveryOne.isPresent) ?? true;\n const isTeams = useSelector(getIsTeamsCall);\n const assignedBreakoutRoom = useSelector(getAssignedBreakoutRoom);\n const breakoutRoomSettings = useSelector(getBreakoutRoomSettings);\n const handleResize = useCallback((): void => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n\n // on load set inital width\n useEffect(() => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n\n // get the current width of control bar buttons and panel control buttons when browser size change\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n /* when size change, reset total buttons width and compare with the control bar container width\n if the total width of those buttons exceed container width, do not center the control bar buttons based on parent container width\n Instead let them take up the remaining white space on the left */\n useEffect(() => {\n // white space on the left when control bar buttons are centered based on container width + control bar buttons width + panel control buttons width\n setTotalButtonsWidth((controlBarContainerWidth - controlBarButtonsWidth) / 2 + controlBarButtonsWidth + panelsButtonsWidth);\n }, [controlBarButtonsWidth, panelsButtonsWidth, controlBarContainerWidth]);\n useEffect(() => {\n setIsOutOfSpace(totalButtonsWidth > controlBarContainerWidth);\n }, [totalButtonsWidth, controlBarContainerWidth]);\n const openCaptionsSettingsModal = useCallback((): void => {\n setShowCaptionsSettingsModal(true);\n }, []);\n const openRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(true);\n }, []);\n const onDismissRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(false);\n }, []);\n const onDismissCaptionsSettings = useCallback((): void => {\n setShowCaptionsSettingsModal(false);\n }, []);\n const peopleButtonStrings = useMemo(() => ({\n label: callWithChatStrings.peopleButtonLabel,\n selectedLabel: callWithChatStrings.selectedPeopleButtonLabel,\n tooltipOpenAriaLabel: callWithChatStrings.peopleButtonTooltipOpenAriaLabel,\n tooltipCloseAriaLabel: callWithChatStrings.peopleButtonTooltipCloseAriaLabel,\n tooltipOffContent: callWithChatStrings.peopleButtonTooltipOpen,\n tooltipOnContent: callWithChatStrings.peopleButtonTooltipClose\n }), [callWithChatStrings]);\n const moreButtonStrings = useMemo(() => ({\n label: callWithChatStrings.moreDrawerButtonLabel,\n tooltipContent: callWithChatStrings.moreDrawerButtonTooltip\n }), [callWithChatStrings]);\n const callStrings = useLocale().strings.call;\n const exitSpotlightButtonStrings = useMemo(() => ({\n label: callStrings.exitSpotlightButtonLabel,\n tooltipContent: callStrings.exitSpotlightButtonTooltip\n }), [callStrings]);\n const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = useState<boolean>(false);\n const startDeepNoiseSuppression = useCallback(async () => {\n await props.callAdapter.startNoiseSuppressionEffect();\n }, [props.callAdapter]);\n const environmentInfo = useSelector(getEnvironmentInfo);\n const isSafari = _isSafari(environmentInfo);\n useEffect(() => {\n if (props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && props.callAdapter.getState().deepNoiseSuppressionOnByDefault) {\n startDeepNoiseSuppression();\n setDeepNoiseSuppressionOn(true);\n }\n }, [props.callAdapter, startDeepNoiseSuppression]);\n const showNoiseSuppressionButton = props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && !props.callAdapter.getState().hideDeepNoiseSuppressionButton && !isSafari ? true : false;\n const onClickNoiseSuppression = useCallback(async () => {\n if (isDeepNoiseSuppressionOn) {\n await props.callAdapter.stopNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(false);\n } else {\n await props.callAdapter.startNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(true);\n }\n }, [props.callAdapter, isDeepNoiseSuppressionOn]);\n const centerContainerStyles = useMemo(() => {\n const styles: BaseCustomStyles = !props.mobileView ? desktopControlBarStyles : {};\n return mergeStyleSets(styles, {\n root: {\n // Enforce a background color on control bar to ensure it matches the composite background color.\n background: theme.semanticColors.bodyBackground\n }\n });\n }, [props.mobileView, theme.semanticColors.bodyBackground]);\n const screenShareButtonStyles = useMemo(() => !props.mobileView ? getDesktopScreenShareButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const commonButtonStyles = useMemo(() => !props.mobileView ? getDesktopCommonButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const endCallButtonStyles = useMemo(() => !props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const controlBarWrapperDesktopStyles: IStyle = useMemo(\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n () => !props.mobileView && !isOutOfSpace ? rtl ? wrapperDesktopRtlStyles : wrapperDesktopStyles : {}, [props.mobileView, rtl, isOutOfSpace]);\n\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n const controlBarDesktopContainerStyles: IStyle = useMemo(() => !props.mobileView && !isOutOfSpace ? {\n position: 'relative',\n minHeight: '4.5rem',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n paddingLeft: '1rem'\n } : {}, [props.mobileView, isOutOfSpace]);\n const customButtons = useMemo(() => generateCustomCallControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options?.displayType : undefined), [options]);\n const capabilitiesSelector = useSelector(capabilitySelector);\n const callState = useSelector(callStatusSelector);\n const isReactionAllowed = callState.callStatus !== 'Connected' || !capabilitiesSelector?.capabilities || capabilitiesSelector.capabilities.useReactions.isPresent;\n const canReturnToMainMeeting = breakoutRoomSettings && breakoutRoomSettings.disableReturnToMainMeeting === false;\n const returnFromBreakoutRoom = useCallback(() => props.callAdapter.returnFromBreakoutRoom(), [props.callAdapter]);\n\n // when options is false then we want to hide the whole control bar.\n if (options === false) {\n return <></>;\n }\n const sideButtonsPresent = isEnabled(options.peopleButton) || isEnabled(options.chatButton) || customButtons['secondary'] !== undefined;\n const screenShareButtonIsEnabled = isEnabled(options?.screenShareButton);\n const microphoneButtonIsEnabled = isEnabled(options?.microphoneButton);\n const cameraButtonIsEnabled = isEnabled(options?.cameraButton);\n const showExitSpotlightButton = options?.exitSpotlightButton !== false;\n const showCaptionsButton = props.isCaptionsSupported && isEnabled(options.captionsButton);\n const showRealTimeTextButton = props.isRealTimeTextSupported && isEnabled(options.realTimeTextButton);\n const showTeamsMeetingPhoneCallButton = isEnabled(options?.teamsMeetingPhoneCallButton);\n const showDesktopMoreButton = isEnabled(options?.moreButton) && (false || isEnabled(options?.holdButton) || showCaptionsButton || props.onUserSetGalleryLayout || showRealTimeTextButton);\n const role = props.callAdapter.getState().call?.role;\n const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n const reactionResources = props.callAdapter.getState().reactions;\n return <div ref={controlBarSizeRef}>\n <CallAdapterProvider adapter={props.callAdapter}>\n {showCaptionsSettingsModal && <CallingCaptionsSettingsModal showCaptionsSettingsModal={showCaptionsSettingsModal} onDismissCaptionsSettings={onDismissCaptionsSettings} changeCaptionLanguage={props.isCaptionsOn && props.useTeamsCaptions} />}\n {showRealTimeTextModal && <CallingRealTimeTextModal showModal={showRealTimeTextModal} onDismissModal={onDismissRealTimeTextModal} onStartRealTimeText={props.onStartRealTimeText} />}\n {props.teamsMeetingConferenceModalPresent && <MeetingConferencePhoneInfoModal conferencePhoneInfoList={props.callAdapter.getState().call?.meetingConference?.conferencePhones ?? []} showModal={props.teamsMeetingConferenceModalPresent} onDismissMeetingPhoneInfoSettings={props.onToggleTeamsMeetingConferenceModal} />}\n </CallAdapterProvider>\n <Stack horizontal reversed={!props.mobileView && !isOutOfSpace} horizontalAlign=\"space-between\" className={mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles)}>\n <Stack.Item grow className={mergeStyles(controlBarWrapperDesktopStyles)}>\n <CallAdapterProvider adapter={props.callAdapter}>\n <Stack horizontalAlign=\"center\">\n <Stack.Item>\n {/*\n Note: We use the layout=\"horizontal\" instead of dockedBottom because of how we position the\n control bar. The control bar exists in a Stack below the MediaGallery. The MediaGallery is\n set to grow and fill the remaining space not taken up by the ControlBar. If we were to use\n dockedBottom it has position absolute and would therefore float on top of the media gallery,\n occluding some of its content.\n */}\n <div ref={controlBarContainerRef}>\n <ControlBar layout={props.displayVertical ? 'vertical' : 'horizontal'} styles={centerContainerStyles}>\n {!props.mobileView && assignedBreakoutRoom && assignedBreakoutRoom.state === 'open' &&\n // Breakout room settings are only defined in a breakout room so we use this to ensure\n // the button is not shown when already in a breakout room\n !breakoutRoomSettings && <PrimaryButton text={callStrings.joinBreakoutRoomButtonLabel} onClick={async (): Promise<void> => {\n assignedBreakoutRoom.join();\n }} styles={commonButtonStyles} />}\n {microphoneButtonIsEnabled && <Microphone displayType={options.displayType} styles={commonButtonStyles} splitButtonsForDeviceSelection={!props.mobileView} disabled={props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton)} disableTooltip={props.mobileView} onClickNoiseSuppression={onClickNoiseSuppression} isDeepNoiseSuppressionOn={isDeepNoiseSuppressionOn} showNoiseSuppressionButton={showNoiseSuppressionButton} />}\n {cameraButtonIsEnabled && <Camera displayType={options.displayType} styles={commonButtonStyles} splitButtonsForDeviceSelection={!props.mobileView} disabled={props.disableButtonsForHoldScreen || isDisabled(options.cameraButton)} onClickVideoEffects={props.onClickVideoEffects} componentRef={props.cameraButtonRef} disableTooltip={props.mobileView} />}\n {!props.mobileView && isReactionAllowed && isEnabled(options.reactionButton) && reactionResources && <Reaction displayType={options.displayType} styles={commonButtonStyles} disabled={props.disableButtonsForHoldScreen} reactionResource={reactionResources} />}\n {!props.mobileView && isEnabled(options.raiseHandButton) && !hideRaiseHandButtonInRoomsCall && <RaiseHand displayType={options.displayType} styles={commonButtonStyles} disabled={props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton)} />}\n {showDtmfDialerButton(options) && props.onSetDialpadPage !== undefined && <DtmfDialpadButton styles={commonButtonStyles} displayType={options.displayType} onClick={() => {\n if (props.onSetDialpadPage !== undefined) {\n props.onSetDialpadPage();\n }\n }} />}\n {showExitSpotlightButton && props.onStopLocalSpotlight && <ExitSpotlightButton displayType={options.displayType} onClick={props.onStopLocalSpotlight} styles={commonButtonStyles} strings={exitSpotlightButtonStrings} />}\n {screenShareButtonIsEnabled && <ScreenShare option={options.screenShareButton} displayType={options.displayType} styles={screenShareButtonStyles} disabled={props.disableButtonsForHoldScreen || isDisabled(options.screenShareButton)} />}\n {customButtons['primary']?.slice(0, props.mobileView ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return <CustomButton key={`primary-custom-button-${i}`} styles={commonButtonStyles} showLabel={options.displayType !== 'compact'} disableTooltip={props.mobileView} />;\n })}\n {props.mobileView && <MoreButton data-ui-id=\"common-call-composite-more-button\" strings={moreButtonStrings} onClick={props.onMoreButtonClicked} disabled={props.disableButtonsForLobbyPage} disableTooltip={props.mobileView} />}\n {!props.mobileView && showDesktopMoreButton && <DesktopMoreButton disableButtonsForHoldScreen={props.disableButtonsForHoldScreen} styles={commonButtonStyles} onClickShowDialpad={props.onClickShowDialpad} callControls={props.callControls} isCaptionsSupported={showCaptionsButton} isRealTimeTextSupported={showRealTimeTextButton} onCaptionsSettingsClick={openCaptionsSettingsModal} onStartRealTimeTextClick={openRealTimeTextModal} startRealTimeTextButtonChecked={props.startRealTimeTextButtonChecked} onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange} onUserSetGalleryLayout={props.onUserSetGalleryLayout} userSetGalleryLayout={props.userSetGalleryLayout} dtmfDialerPresent={props.dtmfDialerPresent} onSetDialpadPage={props.onSetDialpadPage} teamsMeetingPhoneCallEnable={showTeamsMeetingPhoneCallButton} onMeetingPhoneInfoClick={props.onToggleTeamsMeetingConferenceModal} />}\n <EndCall displayType=\"compact\" mobileView={props.mobileView} styles={endCallButtonStyles} enableEndCallMenu={!isBoolean(props.callControls) && !isBoolean(props.callControls?.endCallButton) && !props.mobileView && isHangUpForEveryoneAllowed && !isTeams &&\n // Temporary disable it for Teams call, since capability does not give the right value\n props.callControls?.endCallButton?.hangUpForEveryone === 'endCallOptions' &&\n // Only show the end call menu when the call is connected, user should not be able to end the call for everyone\n // when they are not actively in the call to communicate they will.\n callState.callStatus === 'Connected' && !canReturnToMainMeeting} disableEndCallModal={!isBoolean(props.callControls) && !isBoolean(props.callControls?.endCallButton) && props.callControls?.endCallButton?.disableEndCallModal} returnFromBreakoutRoom={canReturnToMainMeeting ? returnFromBreakoutRoom : undefined} />\n </ControlBar>\n </div>\n </Stack.Item>\n </Stack>\n </CallAdapterProvider>\n </Stack.Item>\n {!props.mobileView && sideButtonsPresent && <Stack.Item>\n <div ref={sidepaneControlsRef}>\n <Stack horizontal className={!props.mobileView ? mergeStyles(desktopButtonContainerStyle) : undefined}>\n {isEnabled(options?.peopleButton) && <PeopleButton checked={props.peopleButtonChecked} ariaLabel={peopleButtonStrings.label} showLabel={options.displayType !== 'compact'} onClick={props.onPeopleButtonClicked} data-ui-id=\"common-call-composite-people-button\" disabled={props.disableButtonsForLobbyPage || props.disableButtonsForHoldScreen || isDisabled(options.peopleButton)} strings={peopleButtonStrings} styles={commonButtonStyles} componentRef={props.peopleButtonRef} chatButtonPresent={isEnabled(options.chatButton)} peoplePaneDismissButtonRef={props.sidePaneDismissButtonRef} />}\n {customButtons['secondary']?.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return <CustomButton key={`secondary-custom-button-${i}`} styles={commonButtonStyles} showLabel={options.displayType !== 'compact'} />;\n })}\n </Stack>\n </div>\n </Stack.Item>}\n {breakoutRoomSettings?.roomEndTime && !props.mobileView && !isOutOfSpace && <Stack.Item>\n <Timer timeStampInfo={breakoutRoomSettings?.roomEndTime.toString()} />\n </Stack.Item>}\n </Stack>\n </div>;\n};\nconst desktopButtonContainerStyle: IStyle = {\n padding: '0.75rem',\n columnGap: '0.5rem'\n};\nconst desktopControlBarStyles: BaseCustomStyles = {\n root: desktopButtonContainerStyle\n};\n{\n /*\n Styling here to ensure the control bar buttons stay in the center of the parent component (control Container) regardless of its siblings\n Need to add 'reversed' to parent container because the styling here reverse the position of the two stack items \n */\n}\nconst wrapperDesktopStyles: IStyle = {\n position: 'absolute',\n left: '50%',\n transform: 'translate(-50%, 0)'\n};\nconst wrapperDesktopRtlStyles: IStyle = {\n position: 'absolute',\n right: '50%',\n transform: 'translate(-50%, 0)'\n};\n\n/** @private */\nexport const getDesktopCommonButtonStyles = (theme: ITheme): ControlBarButtonStyles => ({\n root: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderRadius: theme.effects.roundedCorner4,\n minHeight: '2.5rem',\n maxWidth: '12rem' // allot extra space than the regular ControlBarButton. This is to give extra room to have the icon beside the text.\n },\n flexContainer: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n textContainer: {\n // Override the default so that label doesn't introduce a new block.\n display: 'inline',\n // Ensure width is set to permit child to show ellipsis when there is a label that is too long\n maxWidth: '100%'\n },\n label: {\n fontSize: theme.fonts.medium.fontSize,\n // Ensure there is enough space between the icon and text to allow for the unread messages badge in the chat button\n marginLeft: '0.625rem',\n // Ensure letters that go above and below the standard text line like 'g', 'y', 'j' are not clipped\n lineHeight: '1.5rem',\n // Do not allow very long button texts to ruin the control bar experience, instead ensure long text is truncated and shows ellipsis\n display: 'block',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n splitButtonMenuButton: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderTopRightRadius: theme.effects.roundedCorner4,\n borderBottomRightRadius: theme.effects.roundedCorner4,\n borderTopLeftRadius: '0',\n borderBottomLeftRadius: '0'\n },\n splitButtonMenuButtonChecked: {\n // Default colors the menu half similarly for :hover and when button is checked.\n // To align with how the left-half is styled, override the checked style.\n background: 'none'\n }\n});\nconst getDesktopScreenShareButtonStyles = (theme: ITheme): ControlBarButtonStyles => {\n const overrideStyles = {\n border: 'none',\n background: theme.palette.themePrimary,\n color: theme.palette.white,\n '* > svg': {\n fill: theme.palette.white\n },\n '@media (forced-colors: active)': {\n border: '1px solid',\n borderColor: theme.palette.black\n }\n };\n const overrides: ControlBarButtonStyles = {\n rootChecked: overrideStyles,\n rootCheckedHovered: overrideStyles\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst getDesktopEndCallButtonStyles = (theme: ITheme): ControlBarButtonStyles => {\n const overrides: ControlBarButtonStyles = {\n root: {\n // Suppress border around the dark-red button.\n border: 'none'\n },\n rootFocused: {\n '@media (forced-colors: active)': {\n background: 'highlight',\n color: 'highlightText',\n borderColor: theme.palette.black,\n borderRadius: 'unset',\n outline: `3px solid ${theme.palette.black}`\n }\n },\n icon: {\n '@media (forced-colors: active)': {\n ':focused': {\n color: theme.palette.white\n }\n }\n }\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst isEnabled = (option: unknown): boolean => option !== false;\nconst showDtmfDialerButton = (options: CommonCallControlOptions | CallWithChatControlOptions): boolean => {\n if (options.moreButton === false && options.dtmfDialerButton !== false) {\n return true;\n } else {\n return false;\n }\n};"]}
@@ -80,7 +80,7 @@ export const MoreDrawer = (props) => {
80
80
  }, [speakers, onSelectSpeaker, onLightDismiss]);
81
81
  const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);
82
82
  const showCaptionsButton = props.isCaptionsSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.captionsButton);
83
- const showRealTimeTextButton = props.isRealTimeTextSupported;
83
+ const showRealTimeTextButton = props.isRealTimeTextSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.realTimeTextButton);
84
84
  if (props.reactionResources !== undefined) {
85
85
  drawerMenuItems.push({
86
86
  itemKey: 'reactions',
@@ -1 +1 @@
1
- {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/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';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport { OptionsDevice, _DrawerMenu as DrawerMenu, _DrawerMenuItemProps as DrawerMenuItemProps, _DrawerMenuStyles, SpokenLanguageStrings, CaptionLanguageStrings, CaptionsSettingsModal } from '@internal/react-components';\nimport { CaptionsBanner } from '@internal/react-components';\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { StartCaptionsButton } from '@internal/react-components';\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallDrawerButtons, onFetchCustomButtonPropsTrampoline } from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\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 { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\nimport { DtmfDialPadOptions } from '../../CallComposite';\nimport { getRemoteParticipantsConnectedSelector } from '../../CallComposite/selectors/mediaGallerySelector';\nimport { getCapabilites, getIsTogetherModeActive, getLocalUserId, getIsTeamsCall } from '../../CallComposite/selectors/baseSelectors';\nimport { CallingRealTimeTextModal } from '../CallingRealTimeTextModal';\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 /**\n * Label for captions drawerMenuItem\n *\n * @remarks Only displayed when in Teams call\n */\n captionsMenuTitle: string;\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 /**\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 * options for the controls of the DTMF dialer\n */\n dtmfDialerOptions?: boolean | DtmfDialPadOptions;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n isCaptionsSupported?: boolean;\n isRealTimeTextSupported?: boolean;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n useTeamsCaptions?: boolean;\n reactionResources?: ReactionResources;\n onReactionClick?: (reaction: string) => Promise<void>;\n onClickMeetingPhoneInfo?: () => void;\n onMuteAllRemoteParticipants?: () => void;\n onForbidOthersAudio?: () => void;\n onPermitOthersAudio?: () => void;\n onForbidOthersVideo?: () => void;\n onPermitOthersVideo?: () => void;\n onStartRealTimeText?: () => void;\n startRealTimeTextButtonChecked?: boolean;\n}\nconst inferCallWithChatControlOptions = (callWithChatControls?: boolean | CommonCallControlOptions): 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 const theme = useTheme();\n const callAdapter = useAdapter();\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n const {\n speakers,\n onSelectSpeaker,\n onLightDismiss\n } = props;\n const localeStrings = useLocale();\n const holdButtonProps = usePropsFor(HoldButton);\n const realTimeTextProps = usePropsFor(CaptionsBanner);\n const callees = useSelector(getTargetCallees);\n const participants = useSelector(getRemoteParticipantsConnectedSelector);\n const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n const [showRealTimeTextModal, setShowRealTimeTextModal] = useState(false);\n const openRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(true);\n }, []);\n const onDismissRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(false);\n }, []);\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n const participantCapability = useSelector(getCapabilites);\n const participantId = useSelector(getLocalUserId);\n const isTogetherModeActive = useSelector(getIsTogetherModeActive);\n const isTeamsCall = useSelector(getIsTeamsCall);\n const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());\n const onSpeakerItemClick = useCallback((_ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined, itemKey: string | undefined) => {\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 }, [speakers, onSelectSpeaker, onLightDismiss]);\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n const showCaptionsButton = props.isCaptionsSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.captionsButton);\n const showRealTimeTextButton = props.isRealTimeTextSupported;\n if (props.reactionResources !== undefined) {\n drawerMenuItems.push({\n itemKey: 'reactions',\n onRendererContent: () => <_ReactionDrawerMenuItem onReactionClick={async reaction => {\n props.onReactionClick?.(reaction);\n onLightDismiss();\n }} reactionResources={props.reactionResources} />\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: {\n iconName: 'MoreDrawerSpeakers'\n },\n subMenuProps: props.speakers.map(speaker => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker) ? 'MoreDrawerSelectedSpeaker' : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? {\n iconName: 'Accept'\n } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n const {\n microphones,\n onSelectMicrophone\n } = props;\n const onMicrophoneItemClick = useCallback((_ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined, itemKey: string | undefined) => {\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 }, [microphones, onSelectMicrophone, onLightDismiss]);\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 drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: {\n iconName: iconName\n },\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) ? {\n iconName: 'Accept'\n } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n const dtmfDialerScreenOption = {\n itemKey: 'dtmfDialerScreenKey',\n text: !dtmfDialerChecked ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn : 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: {\n root: {\n lineHeight: 0\n }\n }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.dtmfDialerButton)) {\n drawerMenuItems.push(dtmfDialerScreenOption);\n }\n const galleryLayoutOptions = {\n itemKey: 'galleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: [{\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? {\n iconName: 'Accept'\n } : undefined\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? {\n iconName: 'Accept'\n } : undefined\n }]\n };\n const togetherModeOption = {\n itemKey: 'togetherModeSelectionKey',\n text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'TogetherModeLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: !(participantId?.kind === 'microsoftTeamsUser' && participantCapability?.startTogetherMode?.isPresent || isTogetherModeActive),\n secondaryIconProps: props.userSetGalleryLayout === 'default' ? {\n iconName: 'Accept'\n } : undefined\n };\n if (isTeamsCall || isTeamsMeeting) {\n galleryLayoutOptions.subMenuProps?.push(togetherModeOption);\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.galleryControlsButton)) {\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: {\n iconName: 'MoreDrawerPeople'\n },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n });\n }\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: {\n iconName: 'HoldCallContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const role = callAdapter.getState().call?.role;\n const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.raiseHandButton) && !hideRaiseHandButtonInRoomsCall) {\n const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n drawerMenuItems.push({\n itemKey: 'raiseHandButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n text: raiseHandButtonProps.checked ? localeStrings.component.strings.raiseHandButton.onLabel : 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: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.teamsMeetingPhoneCallButton) && isTeamsMeeting && teamsMeetingCoordinates) {\n drawerMenuItems.push({\n itemKey: 'phoneCallInfoKey',\n disabled: isDisabled(drawerSelectionOptions.teamsMeetingPhoneCallButton),\n text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n onItemClick: () => {\n props.onClickMeetingPhoneInfo?.();\n onLightDismiss();\n },\n iconProps: {\n iconName: 'PhoneNumberButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n\n //Captions drawer menu\n const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n //Captions drawer menu\n const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n const captionSettingsProp = usePropsFor(CaptionsSettingsModal);\n const startCaptionsButtonProps = usePropsFor(StartCaptionsButton);\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n // we don't display the setting modal to set the spoken language on mobile\n // so when spoken language is empty (not set), we default to 'en-us'\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(captionSettingsProp.currentSpokenLanguage && captionSettingsProp.currentSpokenLanguage as string !== '' ? captionSettingsProp.currentSpokenLanguage : 'en-us');\n const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);\n const onToggleChange = useCallback(async () => {\n if (!captionSettingsProp.isCaptionsFeatureActive) {\n await startCaptionsButtonProps.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n } else {\n startCaptionsButtonProps.onStopCaptions();\n }\n }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonProps, currentSpokenLanguage]);\n if (showCaptionsButton) {\n const captionsDrawerItems: DrawerMenuItemProps[] = [];\n const spokenLanguageString = supportedSpokenLanguageStrings ? supportedSpokenLanguageStrings[currentSpokenLanguage] : currentSpokenLanguage;\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: {\n iconName: 'CaptionsIcon'\n },\n subMenuProps: captionsDrawerItems\n });\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: captionSettingsProp.isCaptionsFeatureActive ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n onItemClick: onToggleChange,\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: <Stack verticalFill verticalAlign=\"center\">\n <Toggle id=\"common-call-composite-captions-toggle-button\" checked={captionSettingsProp.isCaptionsFeatureActive} styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)} onChange={onToggleChange} />\n </Stack>\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n if (props.useTeamsCaptions) {\n const captionLanguageString = supportedCaptionLanguageStrings ? supportedCaptionLanguageStrings[currentCaptionLanguage] : currentCaptionLanguage;\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsCaptionLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n }\n const rttDisabled = props.disableButtonsForHoldScreen || realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked;\n // rtt\n if (showRealTimeTextButton) {\n const realTimeTextDrawerItems: DrawerMenuItemProps[] = [];\n drawerMenuItems.push({\n itemKey: 'realTimeText',\n id: 'common-call-composite-rtt-button',\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.realTimeTextLabel,\n iconProps: {\n iconName: 'RealTimeTextIcon'\n },\n subMenuProps: realTimeTextDrawerItems\n });\n realTimeTextDrawerItems.push({\n itemKey: 'ToggleRTTKey',\n id: 'common-call-composite-rtt-start-button',\n text: localeStrings.strings.call.startRealTimeTextLabel,\n ariaLabel: rttDisabled ? localeStrings.strings.call.disabledStartRealTimeTextLabel : localeStrings.strings.call.startRealTimeTextLabel,\n iconProps: {\n iconName: 'RealTimeTextIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n onItemClick: openRealTimeTextModal,\n disabled: rttDisabled,\n secondaryComponent: <Stack verticalFill verticalAlign=\"center\">\n <Toggle id=\"common-call-composite-rtt-toggle-button\" checked={realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked} styles={themedToggleButtonStyle(theme, realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked)} onChange={openRealTimeTextModal} />\n </Stack>\n });\n }\n const customDrawerButtons = useMemo(() => generateCustomCallDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined), [drawerSelectionOptions]);\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 return <>\n {showRealTimeTextModal && <CallingRealTimeTextModal showModal={showRealTimeTextModal} onDismissModal={onDismissRealTimeTextModal} onStartRealTimeText={props.onStartRealTimeText} />}\n {isSpokenLanguageDrawerOpen && showCaptionsButton && <SpokenLanguageSettingsDrawer onLightDismiss={props.onLightDismiss} selectLanguage={setCurrentSpokenLanguage} setCurrentLanguage={captionSettingsProp.onSetSpokenLanguage} currentLanguage={currentSpokenLanguage} strings={{\n menuTitle: props.strings.spokenLanguageMenuTitle\n }} supportedLanguageStrings={supportedSpokenLanguageStrings} />}\n {isCaptionLanguageDrawerOpen && showCaptionsButton && <CaptionLanguageSettingsDrawer onLightDismiss={props.onLightDismiss} selectLanguage={setCurrentCaptionLanguage} setCurrentLanguage={captionSettingsProp.onSetCaptionLanguage} currentLanguage={currentCaptionLanguage} strings={{\n menuTitle: props.strings.captionLanguageMenuTitle\n }} supportedLanguageStrings={supportedCaptionLanguageStrings} />}\n {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />}\n </>;\n};\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean => !!selectedSpeaker && speaker.id === selectedSpeaker.id;\nconst isEnabled = (option: unknown): boolean => option !== false;"]}
1
+ {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAiB,WAAW,IAAI,UAAU,EAAiH,qBAAqB,EAAE,4CAAmC;AAC5N,OAAO,EAAE,cAAc,EAAE,4CAAmC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,4CAAmC;AAGrE,OAAO,EAAE,mBAAmB,EAAE,4CAAmC;AACjE,OAAO,EAAE,UAAU,EAAE,4CAAmC;AACxD,OAAO,EAAE,eAAe,EAAwB,4CAAmC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AACxI,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,4CAAmC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,oDAAoD,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AACtI,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AA0HvE,MAAM,+BAA+B,GAAG,CAAC,oBAAyD,EAAoC,EAAE;IACtI,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAChH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAe,EAAE;;IAChE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,eAAe,GAA0B,EAAE,CAAC;IAClD,MAAM,EACJ,QAAQ,EACR,eAAe,EACf,cAAc,EACf,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC;IAClC,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,MAAA,KAAK,CAAC,iBAAiB,mCAAI,KAAK,CAAC,CAAC;IACtG,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAS,EAAE;QACnD,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,0BAA0B,GAAG,WAAW,CAAC,GAAS,EAAE;QACxD,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAyB,CAAC;IAClF,MAAM,qBAAqB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,GAAiF,EAAE,OAA2B,EAAE,EAAE;QACxJ,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE,CAAC;YACb,8EAA8E;YAC9E,0CAA0C;YAC1C,eAAe,CAAC,QAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAChD,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAC7I,MAAM,sBAAsB,GAAG,KAAK,CAAC,uBAAuB,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IACzJ,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,WAAW;YACpB,iBAAiB,EAAE,GAAG,EAAE,CAAC,oBAAC,uBAAuB,IAAC,eAAe,EAAE,CAAM,QAAQ,EAAC,EAAE;;oBAClF,MAAA,KAAK,CAAC,eAAe,sDAAG,QAAQ,CAAC,CAAC;oBAClC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAA,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAI;SAClD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;YACpC,SAAS,EAAE;gBACT,QAAQ,EAAE,oBAAoB;aAC/B;YACD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,OAAO,CAAC,EAAE;gBACnB,SAAS,EAAE;oBACT,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;iBAChH;gBACD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,kBAAkB;gBAC/B,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACrE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YACH,aAAa,EAAE,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EACJ,WAAW,EACX,kBAAkB,EACnB,GAAG,KAAK,CAAC;IACV,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,GAAiF,EAAE,OAA2B,EAAE,EAAE;QAC3J,MAAM,QAAQ,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,8EAA8E;YAC9E,0CAA0C;YAC1C,kBAAkB,CAAC,QAA2B,CAAC,CAAC;QAClD,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,iFAAiF;QACjF,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QACnE,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACxG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACpF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC1G,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,IAAI;YACV,SAAS,EAAE;gBACT,QAAQ,EAAE,QAAQ;aACnB;YACD,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,CAAC,EAAE;gBACf,SAAS,EAAE;oBACT,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ;iBACxF;gBACD,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,qBAAqB;gBAClC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBACpE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7G,CAAC,CAAC;YACH,aAAa,EAAE,MAAA,KAAK,CAAC,kBAAkB,0CAAE,IAAI;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,sBAAsB,GAAG;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B;QAC3I,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,CAAC;YACD,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACzC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC;iBACd;aACF;SACF;KACF,CAAC;IACF;;OAEG;IACH,IAAI,KAAK,CAAC,gBAAgB,IAAI,eAAe,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxI,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,oBAAoB,GAAG;QAC3B,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE;YACT,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC;iBACd;aACF;SACF;QACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B;QAC3C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B;QAC9D,YAAY,EAAE,CAAC;gBACb,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC;gBAC1E,WAAW,EAAE,GAAG,EAAE;oBAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;oBACnF,cAAc,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE;oBACT,QAAQ,EAAE,iCAAiC;oBAC3C,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,UAAU,EAAE,CAAC;yBACd;qBACF;iBACF;gBACD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBACxE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC,CAAC,SAAS;aACd,EAAE;gBACD,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C;gBAC3E,WAAW,EAAE,GAAG,EAAE;oBAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;oBAC/E,cAAc,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE;oBACT,QAAQ,EAAE,6BAA6B;oBACvC,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,UAAU,EAAE,CAAC;yBACd;qBACF;iBACF;gBACD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACpE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;KACH,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,OAAO,EAAE,0BAA0B;QACnC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC;QAClE,WAAW,EAAE,GAAG,EAAE;YAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;YAC7E,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC;iBACd;aACF;SACF;QACD,QAAQ,EAAE,CAAC,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,oBAAoB,KAAI,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,iBAAiB,0CAAE,SAAS,CAAA,IAAI,oBAAoB,CAAC;QACxI,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC;YAC7D,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC,CAAC,SAAS;KACd,CAAC;IACF,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,MAAA,oBAAoB,CAAC,YAAY,0CAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,qBAAqB,CAAC,EAAE,CAAC;QACjG,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,YAAY,CAAC,EAAE,CAAC;QACxF,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,QAAQ;YACjB,EAAE,EAAE,qCAAqC;YACzC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;YACrC,SAAS,EAAE;gBACT,QAAQ,EAAE,kBAAkB;aAC7B;YACD,WAAW,EAAE,KAAK,CAAC,qBAAqB;YACxC,QAAQ,EAAE,UAAU,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,2BAA2B;SAC/F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU,CAAC,EAAE,CAAC;QACtF,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,CAAC,UAAU,CAAC;YAC5F,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB;YAClE,WAAW,EAAE,GAAG,EAAE;gBAChB,eAAe,CAAC,YAAY,EAAE,CAAC;gBAC/B,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,MAAA,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,0CAAE,IAAI,CAAC;IAC/C,MAAM,8BAA8B,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5H,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC9H,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACnH,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,CAAC,eAAe,CAAC;YACjG,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ;YACvJ,WAAW,EAAE,GAAG,EAAE;gBAChB,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;oBAC3C,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,CAAC;gBACD,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,2BAA2B,CAAC,IAAI,cAAc,IAAI,uBAAuB,EAAE,CAAC;QACpJ,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,UAAU,CAAC,sBAAsB,CAAC,2BAA2B,CAAC;YACxE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB;YACzD,WAAW,EAAE,GAAG,EAAE;;gBAChB,MAAA,KAAK,CAAC,uBAAuB,qDAAI,CAAC;gBAClC,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IACtB,MAAM,8BAA8B,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAEtF,sBAAsB;IACtB,MAAM,+BAA+B,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACxF,MAAM,mBAAmB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAClE,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC7F,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE/F,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAA8B,mBAAmB,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,qBAA+B,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/P,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAA+B,MAAA,mBAAmB,CAAC,sBAAsB,mCAAI,gCAAgC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC1M,MAAM,cAAc,GAAG,WAAW,CAAC,GAAS,EAAE;QAC5C,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;YACjD,MAAM,wBAAwB,CAAC,eAAe,CAAC;gBAC7C,cAAc,EAAE,qBAAqB;aACtC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,wBAAwB,CAAC,cAAc,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC,CAAA,EAAE,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACnG,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,mBAAmB,GAA0B,EAAE,CAAC;QACtD,MAAM,oBAAoB,GAAG,8BAA8B,CAAC,CAAC,CAAC,8BAA8B,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC5I,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,UAAU;YACnB,EAAE,EAAE,uCAAuC;YAC3C,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;YACrC,SAAS,EAAE;gBACT,QAAQ,EAAE,cAAc;aACzB;YACD,YAAY,EAAE,mBAAmB;SAClC,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC;YACpL,SAAS,EAAE;gBACT,QAAQ,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc;gBAC1F,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;YACD,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,kBAAkB,EAAE,oBAAC,KAAK,IAAC,YAAY,QAAC,aAAa,EAAC,QAAQ;gBAC1D,oBAAC,MAAM,IAAC,EAAE,EAAC,8CAA8C,EAAC,OAAO,EAAE,mBAAmB,CAAC,uBAAuB,EAAE,MAAM,EAAE,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAI,CAC3N;SACX,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,sBAAsB;YAC/B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB;YAC3C,EAAE,EAAE,uDAAuD;YAC3D,aAAa,EAAE,oBAAoB;YACnC,SAAS,EAAE;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;YACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,mBAAmB,CAAC,uBAAuB;YAC3F,WAAW,EAAE,GAAG,EAAE;gBAChB,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,kBAAkB,EAAE;gBAClB,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;SACF,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,CAAC,CAAC,+BAA+B,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACjJ,mBAAmB,CAAC,IAAI,CAAC;gBACvB,OAAO,EAAE,uBAAuB;gBAChC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,wBAAwB;gBAC5C,EAAE,EAAE,yDAAyD;gBAC7D,aAAa,EAAE,qBAAqB;gBACpC,SAAS,EAAE;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,UAAU,EAAE,CAAC;yBACd;qBACF;iBACF;gBACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,mBAAmB,CAAC,uBAAuB;gBAC3F,WAAW,EAAE,GAAG,EAAE;oBAChB,8BAA8B,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;gBACD,kBAAkB,EAAE;oBAClB,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,UAAU,EAAE,CAAC;yBACd;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,2BAA2B,IAAI,iBAAiB,CAAC,gBAAgB,IAAI,KAAK,CAAC,8BAA8B,CAAC;IACpI,MAAM;IAEN,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,uBAAuB,GAA0B,EAAE,CAAC;QAC1D,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,cAAc;YACvB,EAAE,EAAE,kCAAkC;YACtC,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB;YAClD,SAAS,EAAE;gBACT,QAAQ,EAAE,kBAAkB;aAC7B;YACD,YAAY,EAAE,uBAAuB;SACtC,CAAC,CAAC;QACH,uBAAuB,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,cAAc;YACvB,EAAE,EAAE,wCAAwC;YAC5C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB;YACvD,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB;YACtI,SAAS,EAAE;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;qBACd;iBACF;aACF;YACD,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,WAAW;YACrB,kBAAkB,EAAE,oBAAC,KAAK,IAAC,YAAY,QAAC,aAAa,EAAC,QAAQ;gBAC1D,oBAAC,MAAM,IAAC,EAAE,EAAC,yCAAyC,EAAC,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,IAAI,KAAK,CAAC,8BAA8B,EAAE,MAAM,EAAE,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,qBAAqB,GAAI,CAC3R;SACX,CAAC,CAAC;IACL,CAAC;IACD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,kCAAkC,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACpS,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9G,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,mBAAmB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACjD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAChD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO;QACF,qBAAqB,IAAI,oBAAC,wBAAwB,IAAC,SAAS,EAAE,qBAAqB,EAAE,cAAc,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAAI;QACnL,0BAA0B,IAAI,kBAAkB,IAAI,oBAAC,4BAA4B,IAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,OAAO,EAAE;gBACjR,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB;aACjD,EAAE,wBAAwB,EAAE,8BAA8B,GAAI;QAC5D,2BAA2B,IAAI,kBAAkB,IAAI,oBAAC,6BAA6B,IAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,OAAO,EAAE;gBACtR,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,wBAAwB;aAClD,EAAE,wBAAwB,EAAE,+BAA+B,GAAI;QAC7D,CAAC,0BAA0B,IAAI,CAAC,2BAA2B,IAAI,oBAAC,UAAU,IAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAI,CAC3I,CAAC;AACR,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,eAA+B,EAAW,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;AACtJ,MAAM,SAAS,GAAG,CAAC,MAAe,EAAW,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback } from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport { OptionsDevice, _DrawerMenu as DrawerMenu, _DrawerMenuItemProps as DrawerMenuItemProps, _DrawerMenuStyles, SpokenLanguageStrings, CaptionLanguageStrings, CaptionsSettingsModal } from '@internal/react-components';\nimport { CaptionsBanner } from '@internal/react-components';\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { StartCaptionsButton } from '@internal/react-components';\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallDrawerButtons, onFetchCustomButtonPropsTrampoline } from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\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 { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\nimport { DtmfDialPadOptions } from '../../CallComposite';\nimport { getRemoteParticipantsConnectedSelector } from '../../CallComposite/selectors/mediaGallerySelector';\nimport { getCapabilites, getIsTogetherModeActive, getLocalUserId, getIsTeamsCall } from '../../CallComposite/selectors/baseSelectors';\nimport { CallingRealTimeTextModal } from '../CallingRealTimeTextModal';\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 /**\n * Label for captions drawerMenuItem\n *\n * @remarks Only displayed when in Teams call\n */\n captionsMenuTitle: string;\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 /**\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 * options for the controls of the DTMF dialer\n */\n dtmfDialerOptions?: boolean | DtmfDialPadOptions;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n isCaptionsSupported?: boolean;\n isRealTimeTextSupported?: boolean;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n useTeamsCaptions?: boolean;\n reactionResources?: ReactionResources;\n onReactionClick?: (reaction: string) => Promise<void>;\n onClickMeetingPhoneInfo?: () => void;\n onMuteAllRemoteParticipants?: () => void;\n onForbidOthersAudio?: () => void;\n onPermitOthersAudio?: () => void;\n onForbidOthersVideo?: () => void;\n onPermitOthersVideo?: () => void;\n onStartRealTimeText?: () => void;\n startRealTimeTextButtonChecked?: boolean;\n}\nconst inferCallWithChatControlOptions = (callWithChatControls?: boolean | CommonCallControlOptions): 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 const theme = useTheme();\n const callAdapter = useAdapter();\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n const {\n speakers,\n onSelectSpeaker,\n onLightDismiss\n } = props;\n const localeStrings = useLocale();\n const holdButtonProps = usePropsFor(HoldButton);\n const realTimeTextProps = usePropsFor(CaptionsBanner);\n const callees = useSelector(getTargetCallees);\n const participants = useSelector(getRemoteParticipantsConnectedSelector);\n const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n const [showRealTimeTextModal, setShowRealTimeTextModal] = useState(false);\n const openRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(true);\n }, []);\n const onDismissRealTimeTextModal = useCallback((): void => {\n setShowRealTimeTextModal(false);\n }, []);\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n const participantCapability = useSelector(getCapabilites);\n const participantId = useSelector(getLocalUserId);\n const isTogetherModeActive = useSelector(getIsTogetherModeActive);\n const isTeamsCall = useSelector(getIsTeamsCall);\n const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());\n const onSpeakerItemClick = useCallback((_ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined, itemKey: string | undefined) => {\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 }, [speakers, onSelectSpeaker, onLightDismiss]);\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n const showCaptionsButton = props.isCaptionsSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.captionsButton);\n const showRealTimeTextButton = props.isRealTimeTextSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.realTimeTextButton);\n if (props.reactionResources !== undefined) {\n drawerMenuItems.push({\n itemKey: 'reactions',\n onRendererContent: () => <_ReactionDrawerMenuItem onReactionClick={async reaction => {\n props.onReactionClick?.(reaction);\n onLightDismiss();\n }} reactionResources={props.reactionResources} />\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: {\n iconName: 'MoreDrawerSpeakers'\n },\n subMenuProps: props.speakers.map(speaker => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker) ? 'MoreDrawerSelectedSpeaker' : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? {\n iconName: 'Accept'\n } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n const {\n microphones,\n onSelectMicrophone\n } = props;\n const onMicrophoneItemClick = useCallback((_ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined, itemKey: string | undefined) => {\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 }, [microphones, onSelectMicrophone, onLightDismiss]);\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 drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: {\n iconName: iconName\n },\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) ? {\n iconName: 'Accept'\n } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n const dtmfDialerScreenOption = {\n itemKey: 'dtmfDialerScreenKey',\n text: !dtmfDialerChecked ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn : 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: {\n root: {\n lineHeight: 0\n }\n }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.dtmfDialerButton)) {\n drawerMenuItems.push(dtmfDialerScreenOption);\n }\n const galleryLayoutOptions = {\n itemKey: 'galleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: [{\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? {\n iconName: 'Accept'\n } : undefined\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? {\n iconName: 'Accept'\n } : undefined\n }]\n };\n const togetherModeOption = {\n itemKey: 'togetherModeSelectionKey',\n text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'TogetherModeLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: !(participantId?.kind === 'microsoftTeamsUser' && participantCapability?.startTogetherMode?.isPresent || isTogetherModeActive),\n secondaryIconProps: props.userSetGalleryLayout === 'default' ? {\n iconName: 'Accept'\n } : undefined\n };\n if (isTeamsCall || isTeamsMeeting) {\n galleryLayoutOptions.subMenuProps?.push(togetherModeOption);\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.galleryControlsButton)) {\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: {\n iconName: 'MoreDrawerPeople'\n },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n });\n }\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: {\n iconName: 'HoldCallContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const role = callAdapter.getState().call?.role;\n const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.raiseHandButton) && !hideRaiseHandButtonInRoomsCall) {\n const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n drawerMenuItems.push({\n itemKey: 'raiseHandButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n text: raiseHandButtonProps.checked ? localeStrings.component.strings.raiseHandButton.onLabel : 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: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.teamsMeetingPhoneCallButton) && isTeamsMeeting && teamsMeetingCoordinates) {\n drawerMenuItems.push({\n itemKey: 'phoneCallInfoKey',\n disabled: isDisabled(drawerSelectionOptions.teamsMeetingPhoneCallButton),\n text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n onItemClick: () => {\n props.onClickMeetingPhoneInfo?.();\n onLightDismiss();\n },\n iconProps: {\n iconName: 'PhoneNumberButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n\n //Captions drawer menu\n const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n //Captions drawer menu\n const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n const captionSettingsProp = usePropsFor(CaptionsSettingsModal);\n const startCaptionsButtonProps = usePropsFor(StartCaptionsButton);\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n // we don't display the setting modal to set the spoken language on mobile\n // so when spoken language is empty (not set), we default to 'en-us'\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(captionSettingsProp.currentSpokenLanguage && captionSettingsProp.currentSpokenLanguage as string !== '' ? captionSettingsProp.currentSpokenLanguage : 'en-us');\n const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);\n const onToggleChange = useCallback(async () => {\n if (!captionSettingsProp.isCaptionsFeatureActive) {\n await startCaptionsButtonProps.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n } else {\n startCaptionsButtonProps.onStopCaptions();\n }\n }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonProps, currentSpokenLanguage]);\n if (showCaptionsButton) {\n const captionsDrawerItems: DrawerMenuItemProps[] = [];\n const spokenLanguageString = supportedSpokenLanguageStrings ? supportedSpokenLanguageStrings[currentSpokenLanguage] : currentSpokenLanguage;\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: {\n iconName: 'CaptionsIcon'\n },\n subMenuProps: captionsDrawerItems\n });\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: captionSettingsProp.isCaptionsFeatureActive ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n onItemClick: onToggleChange,\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: <Stack verticalFill verticalAlign=\"center\">\n <Toggle id=\"common-call-composite-captions-toggle-button\" checked={captionSettingsProp.isCaptionsFeatureActive} styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)} onChange={onToggleChange} />\n </Stack>\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n if (props.useTeamsCaptions) {\n const captionLanguageString = supportedCaptionLanguageStrings ? supportedCaptionLanguageStrings[currentCaptionLanguage] : currentCaptionLanguage;\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: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsCaptionLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n }\n const rttDisabled = props.disableButtonsForHoldScreen || realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked;\n // rtt\n\n if (showRealTimeTextButton) {\n const realTimeTextDrawerItems: DrawerMenuItemProps[] = [];\n drawerMenuItems.push({\n itemKey: 'realTimeText',\n id: 'common-call-composite-rtt-button',\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.realTimeTextLabel,\n iconProps: {\n iconName: 'RealTimeTextIcon'\n },\n subMenuProps: realTimeTextDrawerItems\n });\n realTimeTextDrawerItems.push({\n itemKey: 'ToggleRTTKey',\n id: 'common-call-composite-rtt-start-button',\n text: localeStrings.strings.call.startRealTimeTextLabel,\n ariaLabel: rttDisabled ? localeStrings.strings.call.disabledStartRealTimeTextLabel : localeStrings.strings.call.startRealTimeTextLabel,\n iconProps: {\n iconName: 'RealTimeTextIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n onItemClick: openRealTimeTextModal,\n disabled: rttDisabled,\n secondaryComponent: <Stack verticalFill verticalAlign=\"center\">\n <Toggle id=\"common-call-composite-rtt-toggle-button\" checked={realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked} styles={themedToggleButtonStyle(theme, realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked)} onChange={openRealTimeTextModal} />\n </Stack>\n });\n }\n const customDrawerButtons = useMemo(() => generateCustomCallDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined), [drawerSelectionOptions]);\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 return <>\n {showRealTimeTextModal && <CallingRealTimeTextModal showModal={showRealTimeTextModal} onDismissModal={onDismissRealTimeTextModal} onStartRealTimeText={props.onStartRealTimeText} />}\n {isSpokenLanguageDrawerOpen && showCaptionsButton && <SpokenLanguageSettingsDrawer onLightDismiss={props.onLightDismiss} selectLanguage={setCurrentSpokenLanguage} setCurrentLanguage={captionSettingsProp.onSetSpokenLanguage} currentLanguage={currentSpokenLanguage} strings={{\n menuTitle: props.strings.spokenLanguageMenuTitle\n }} supportedLanguageStrings={supportedSpokenLanguageStrings} />}\n {isCaptionLanguageDrawerOpen && showCaptionsButton && <CaptionLanguageSettingsDrawer onLightDismiss={props.onLightDismiss} selectLanguage={setCurrentCaptionLanguage} setCurrentLanguage={captionSettingsProp.onSetCaptionLanguage} currentLanguage={currentCaptionLanguage} strings={{\n menuTitle: props.strings.captionLanguageMenuTitle\n }} supportedLanguageStrings={supportedCaptionLanguageStrings} />}\n {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />}\n </>;\n};\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean => !!selectedSpeaker && speaker.id === selectedSpeaker.id;\nconst isEnabled = (option: unknown): boolean => option !== false;"]}
@@ -24,7 +24,6 @@ export const ParticipantListWithHeading = (props) => {
24
24
  const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps, headingMoreButtonAriaLabel, onClickHeadingMoreButton, headingMoreButtonMenuProps, pinnedParticipants } = props;
25
25
  const subheadingUniqueId = useId();
26
26
  const theme = useTheme();
27
- const totalParticipantCount = participantListProps.totalParticipantCount;
28
27
  const tooltipId = getId('text-tooltip');
29
28
  const subheadingStyleThemed = useMemo(() => ({
30
29
  root: {
@@ -39,7 +38,7 @@ export const ParticipantListWithHeading = (props) => {
39
38
  return React.createElement(Stack, { className: participantListStack },
40
39
  React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
41
40
  React.createElement(Stack.Item, { grow: true, styles: subheadingStyleThemed, "aria-label": title, id: subheadingUniqueId },
42
- React.createElement("h2", null, paneTitleTrampoline(title !== null && title !== void 0 ? title : '', totalParticipantCount))),
41
+ React.createElement("h2", null, paneTitleTrampoline(title !== null && title !== void 0 ? title : ''))),
43
42
  (onClickHeadingMoreButton || (headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0) && React.createElement(Stack.Item, null,
44
43
  React.createElement(DefaultButton, { "data-ui-id": "people-pane-header-more-button", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: {
45
44
  iconName: 'PeoplePaneMoreButton'
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/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 { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles, headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { Stack, Text, TooltipHost, TooltipOverflowMode, getId, useTheme } from '@fluentui/react';\nimport { DefaultButton, IContextualMenuProps } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\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 <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>;\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 headingMoreButtonAriaLabel?: string;\n onClickHeadingMoreButton?: () => void;\n headingMoreButtonMenuProps?: IContextualMenuProps;\n pinnedParticipants?: string[];\n}): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n title,\n participantListProps,\n headingMoreButtonAriaLabel,\n onClickHeadingMoreButton,\n headingMoreButtonMenuProps,\n pinnedParticipants\n } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const tooltipId: string = getId('text-tooltip');\n const subheadingStyleThemed = useMemo(() => ({\n root: {\n h2: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize,\n fontWeight: 'normal'\n }\n }\n }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);\n return <Stack className={participantListStack}>\n <Stack horizontal horizontalAlign=\"space-between\" verticalAlign=\"center\">\n <Stack.Item grow styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n <h2>\n {paneTitleTrampoline(title ?? '', totalParticipantCount)}\n </h2>\n </Stack.Item>\n {(onClickHeadingMoreButton || headingMoreButtonMenuProps?.items && headingMoreButtonMenuProps.items.length > 0) && <Stack.Item>\n <DefaultButton data-ui-id=\"people-pane-header-more-button\" ariaLabel={headingMoreButtonAriaLabel} styles={headingMoreButtonStyles(theme)} iconProps={{\n iconName: 'PeoplePaneMoreButton'\n }} onClick={onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined} menuProps={props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps} onRenderMenuIcon={() => null} />\n </Stack.Item>}\n </Stack>\n <Stack className={participantListContainerStyle}>\n <ParticipantList {...participantListProps} pinnedParticipants={pinnedParticipants} styles={props.isMobile ? participantListMobileStyle : participantListStyle} onRenderAvatar={(userId, options) => <>\n <AvatarPersona data-ui-id=\"chat-composite-participant-custom-avatar\" userId={userId} {...options} {...{\n hidePersonaDetails: !!options?.text\n }} dataProvider={onFetchAvatarPersonaData} allowActiveBorder={true} />\n {options?.text && <div style={displayNameStyles}>\n <TooltipHost content={options?.text} id={tooltipId} overflowMode={TooltipOverflowMode.Parent}>\n <Text nowrap={false} aria-labelledby={tooltipId}>\n {options?.text}\n </Text>\n </TooltipHost>\n </div>}\n </>} onFetchParticipantMenuItems={onFetchParticipantMenuItems} showParticipantOverflowTooltip={!props.isMobile} participantAriaLabelledBy={subheadingUniqueId} />\n </Stack>\n </Stack>;\n};\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount ? {\n numberOfPeople: `(${totalParticipantCount})`\n } : {\n numberOfPeople: ' '\n };\n return _formatString(paneTitle, participantCountString);\n};"]}
1
+ {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/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 { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles, headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { Stack, Text, TooltipHost, TooltipOverflowMode, getId, useTheme } from '@fluentui/react';\nimport { DefaultButton, IContextualMenuProps } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\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 <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>;\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 headingMoreButtonAriaLabel?: string;\n onClickHeadingMoreButton?: () => void;\n headingMoreButtonMenuProps?: IContextualMenuProps;\n pinnedParticipants?: string[];\n}): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n title,\n participantListProps,\n headingMoreButtonAriaLabel,\n onClickHeadingMoreButton,\n headingMoreButtonMenuProps,\n pinnedParticipants\n } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n const tooltipId: string = getId('text-tooltip');\n const subheadingStyleThemed = useMemo(() => ({\n root: {\n h2: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize,\n fontWeight: 'normal'\n }\n }\n }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);\n return <Stack className={participantListStack}>\n <Stack horizontal horizontalAlign=\"space-between\" verticalAlign=\"center\">\n <Stack.Item grow styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n <h2>\n {paneTitleTrampoline(title ?? '')}\n </h2>\n </Stack.Item>\n {(onClickHeadingMoreButton || headingMoreButtonMenuProps?.items && headingMoreButtonMenuProps.items.length > 0) && <Stack.Item>\n <DefaultButton data-ui-id=\"people-pane-header-more-button\" ariaLabel={headingMoreButtonAriaLabel} styles={headingMoreButtonStyles(theme)} iconProps={{\n iconName: 'PeoplePaneMoreButton'\n }} onClick={onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined} menuProps={props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps} onRenderMenuIcon={() => null} />\n </Stack.Item>}\n </Stack>\n <Stack className={participantListContainerStyle}>\n <ParticipantList {...participantListProps} pinnedParticipants={pinnedParticipants} styles={props.isMobile ? participantListMobileStyle : participantListStyle} onRenderAvatar={(userId, options) => <>\n <AvatarPersona data-ui-id=\"chat-composite-participant-custom-avatar\" userId={userId} {...options} {...{\n hidePersonaDetails: !!options?.text\n }} dataProvider={onFetchAvatarPersonaData} allowActiveBorder={true} />\n {options?.text && <div style={displayNameStyles}>\n <TooltipHost content={options?.text} id={tooltipId} overflowMode={TooltipOverflowMode.Parent}>\n <Text nowrap={false} aria-labelledby={tooltipId}>\n {options?.text}\n </Text>\n </TooltipHost>\n </div>}\n </>} onFetchParticipantMenuItems={onFetchParticipantMenuItems} showParticipantOverflowTooltip={!props.isMobile} participantAriaLabelledBy={subheadingUniqueId} />\n </Stack>\n </Stack>;\n};\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount ? {\n numberOfPeople: `(${totalParticipantCount})`\n } : {\n numberOfPeople: ' '\n };\n return _formatString(paneTitle, participantCountString);\n};"]}
@@ -1,51 +1,12 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { SendBoxStylesProps } from "../../../../react-components/src";
3
- import { RichTextSendBoxProps, RichTextEditorOptions } from "../../../../react-components/src";
4
- import { AttachmentMetadataInProgress, MessageOptions } from "../../../../acs-ui-common/src";
5
- export declare const loadRichTextSendBox: () => Promise<{
6
- default: React.ComponentType<RichTextSendBoxProps>;
7
- }>;
8
- /**
9
- * Options for the rich text editor send box configuration.
10
- *
11
- * @internal
12
- */
13
- export interface RichTextSendBoxOptions extends RichTextEditorOptions {
14
- /**
15
- * Optional callback to handle an inline image that's inserted in the rich text editor.
16
- * When not provided, pasting images into rich text editor will be disabled.
17
- * @param imageAttributes - attributes of the image such as id, src, style, etc.
18
- * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name']
19
- */
20
- onInsertInlineImage?: (imageAttributes: Record<string, string>) => void;
21
- /**
22
- * Optional callback invoked after inline image is removed from the UI.
23
- * @param imageAttributes - attributes of the image such as id, src, style, etc.
24
- * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name'].
25
- * Note that if the src attribute is a local blob url, it has been revoked at this point.
26
- */
27
- onRemoveInlineImage?: (imageAttributes: Record<string, string>) => void;
28
- /**
29
- * Optional Array of type {@link AttachmentMetadataInProgress}
30
- * to render the errorBar for inline images inserted in the RichTextSendBox when:
31
- * - there is an error provided in the inlineImagesWithProgress
32
- * - progress is less than 1 when the send button is clicked
33
- * - content html string is longer than the max allowed length.
34
- * (Note that the id and the url prop of the inlineImagesWithProgress will be used as the id and src attribute of the content html
35
- * when calculating the content length, only for the purpose of displaying the content length overflow error.)
36
- */
37
- inlineImagesWithProgress?: AttachmentMetadataInProgress[];
38
- }
39
3
  /**
40
4
  * @private
41
5
  */
42
6
  export type SendBoxPickerProps = {
43
7
  styles?: SendBoxStylesProps;
44
8
  autoFocus?: 'sendBoxTextField';
45
- onSendMessage: (content: string, options?: MessageOptions) => Promise<void>;
46
- richTextEditorOptions?: RichTextSendBoxOptions;
47
- attachments?: AttachmentMetadataInProgress[];
48
- onCancelAttachmentUpload?: (attachmentId: string) => void;
9
+ onSendMessage: (content: string) => Promise<void>;
49
10
  };
50
11
  /**
51
12
  * @private