@azure/communication-react 1.5.1-alpha-202304150013 → 1.5.1-alpha-202304180012

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 (160) hide show
  1. package/dist/communication-react.d.ts +296 -3
  2. package/dist/dist-cjs/communication-react/index.js +1726 -499
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +13 -0
  7. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +36 -0
  8. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.d.ts +49 -0
  10. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +53 -0
  11. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -0
  12. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +12 -0
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +25 -1
  14. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +3 -0
  16. package/dist/dist-esm/calling-component-bindings/src/index.js +2 -0
  17. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +68 -1
  19. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +8 -0
  21. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +81 -0
  22. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  23. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +57 -0
  24. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  25. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +2 -0
  26. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +19 -0
  27. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  28. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.d.ts +18 -0
  29. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js +38 -0
  30. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -0
  31. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +6 -0
  32. package/dist/dist-esm/calling-stateful-client/src/Converter.js +17 -1
  33. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  34. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +7 -0
  35. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +10 -0
  36. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  37. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -0
  38. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  39. package/dist/dist-esm/communication-react/src/index.d.ts +2 -0
  40. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/Caption.js +4 -3
  42. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +1 -0
  44. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +4 -4
  45. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.d.ts +37 -0
  47. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +88 -0
  48. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -0
  49. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.d.ts +2 -0
  50. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +1 -0
  51. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +70 -0
  53. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +52 -0
  54. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -0
  55. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
  56. package/dist/dist-esm/react-components/src/components/index.js +6 -0
  57. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  58. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +8 -0
  59. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +17 -2
  60. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  61. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.d.ts +34 -0
  62. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js +85 -0
  63. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -0
  64. package/dist/dist-esm/react-components/src/components/utils.d.ts +4 -0
  65. package/dist/dist-esm/react-components/src/components/utils.js +4 -0
  66. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  67. package/dist/dist-esm/react-components/src/index.d.ts +1 -0
  68. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  69. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +1 -1
  70. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/theming/icons.d.ts +4 -0
  72. package/dist/dist-esm/react-components/src/theming/icons.js +11 -1
  73. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.d.ts +48 -0
  75. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js +4 -0
  76. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -0
  77. package/dist/dist-esm/react-components/src/types/index.d.ts +1 -0
  78. package/dist/dist-esm/react-components/src/types/index.js +1 -0
  79. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +65 -0
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +13 -0
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +61 -2
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +54 -1
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +18 -3
  90. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -1
  92. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  93. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +16 -0
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -1
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +7 -0
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +21 -0
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -0
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +22 -0
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +46 -0
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +9 -2
  106. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +12 -0
  108. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  109. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +10 -0
  110. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +46 -0
  111. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  112. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +26 -1
  113. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  114. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +5 -0
  115. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +27 -1
  116. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  117. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +3 -1
  118. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +6 -2
  119. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  120. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +6 -0
  121. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +60 -0
  122. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -0
  123. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.d.ts +12 -0
  124. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +107 -0
  125. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -0
  126. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.d.ts +7 -0
  127. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +38 -0
  128. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -0
  129. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +1 -0
  130. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +19 -1
  131. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  132. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +2 -0
  133. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +113 -6
  134. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  135. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +13 -0
  136. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +103 -0
  137. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  138. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.d.ts +6 -0
  139. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js +24 -0
  140. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -0
  141. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +1 -0
  142. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +5 -1
  143. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  144. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.d.ts +20 -0
  145. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js +55 -0
  146. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js.map +1 -0
  147. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.d.ts +7 -0
  148. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js +25 -0
  149. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js.map +1 -0
  150. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  151. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  152. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +0 -2
  153. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +20 -10
  154. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  155. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +4 -0
  156. package/dist/dist-esm/react-composites/src/composites/common/utils.d.ts +4 -0
  157. package/dist/dist-esm/react-composites/src/composites/common/utils.js +4 -0
  158. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  159. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +61 -1
  160. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useCallback } from 'react';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport { useMemo } from 'react';\nimport {\n OptionsDevice,\n _DrawerMenu as DrawerMenu,\n _DrawerMenuItemProps as DrawerMenuItemProps,\n _DrawerMenuItemProps\n} from '@internal/react-components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDrawerButtons,\n onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\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\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}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n}\n\nconst inferCallWithChatControlOptions = (\n callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n if (callWithChatControls === false) {\n return false;\n }\n const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const localeStrings = useLocale();\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n const onSpeakerItemClick = useCallback(\n (_ev, itemKey) => {\n const selected = speakers?.find((speaker) => speaker.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectSpeaker(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [speakers, onSelectSpeaker, onLightDismiss]\n );\n\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n if (props.speakers && props.speakers.length > 0) {\n drawerMenuItems.push({\n itemKey: 'speakers',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.speakerMenuTitle,\n iconProps: { iconName: 'MoreDrawerSpeakers' },\n subMenuProps: props.speakers.map((speaker) => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n ? 'MoreDrawerSelectedSpeaker'\n : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n\n const { microphones, onSelectMicrophone } = props;\n const onMicrophoneItemClick = useCallback(\n (_ev, itemKey) => {\n const selected = microphones?.find((mic) => mic.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectMicrophone(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [microphones, onSelectMicrophone, onLightDismiss]\n );\n\n if (props.microphones && props.microphones.length > 0) {\n // Set props as Microphone if speakers can be enumerated else set as Audio Device\n const speakersAvailable = props.speakers && props.speakers.length > 0;\n const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: { iconName: iconName },\n subMenuProps: props.microphones.map((mic) => ({\n itemKey: mic.id,\n iconProps: {\n iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n },\n text: mic.name,\n onItemClick: onMicrophoneItemClick,\n secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n drawerMenuItems.push({\n itemKey: 'people',\n id: 'call-composite-drawer-people-button',\n text: props.strings.peopleButtonLabel,\n iconProps: { iconName: 'MoreDrawerPeople' },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton)\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n drawerMenuItems.push({\n itemKey: 'holdButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onItemClick: () => {\n holdButtonProps.onToggleHold();\n onLightDismiss();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n /*@conditional-compile-remove(PSTN-calls) */\n // dtmf tone sending only works for 1:1 PSTN call\n if (drawerSelectionOptions !== false && props.onClickShowDialpad) {\n drawerMenuItems.push({\n itemKey: 'showDialpadKey',\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,\n onItemClick: () => {\n props.onClickShowDialpad && props.onClickShowDialpad();\n },\n iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDrawerButtons(\n onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n ),\n [drawerSelectionOptions]\n );\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['secondary'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['overflow'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n\n return <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />;\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useState } from 'react';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport { useMemo } from 'react';\nimport {\n OptionsDevice,\n _DrawerMenu as DrawerMenu,\n _DrawerMenuItemProps as DrawerMenuItemProps,\n _DrawerMenuStyles\n} from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _StartCaptionsButton } from '@internal/react-components';\n\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDrawerButtons,\n onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n/* @conditional-compile-remove(close-captions) */\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(close-captions) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { defaultSpokenLanguage } from '../utils';\n/* @conditional-compile-remove(close-captions) */\nimport { SpokenLanguageDrawer } from './SpokenLanguageDrawer';\n/* @conditional-compile-remove(close-captions) */\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\n\n/** @private */\nexport interface MoreDrawerStrings {\n /**\n * Label for people drawerMenuItem.\n */\n peopleButtonLabel: string;\n /**\n * Label for audio device drawerMenuItem.\n *\n * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated\n *\n */\n audioDeviceMenuTitle?: string;\n /**\n * Label for microphone drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used\n *\n */\n microphoneMenuTitle: string;\n /**\n * Label for speaker drawerMenuItem.\n *\n * @remarks Only displayed when speakers can be enumerated\n *\n */\n speakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for captions drawerMenuItem\n *\n * @remarks Only displayed when in Teams call\n */\n captionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Label for spokenLanguage drawerMenuItem\n *\n * @remarks Only displayed when in Teams call, disabled until captions is on\n */\n spokenLanguageMenuTitle: string;\n}\n\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}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n strings: MoreDrawerStrings;\n disableButtonsForHoldScreen?: boolean;\n}\n\nconst inferCallWithChatControlOptions = (\n callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n if (callWithChatControls === false) {\n return false;\n }\n const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const theme = useTheme();\n const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const localeStrings = useLocale();\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n const onSpeakerItemClick = useCallback(\n (_ev, itemKey) => {\n const selected = speakers?.find((speaker) => speaker.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectSpeaker(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [speakers, onSelectSpeaker, onLightDismiss]\n );\n\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n if (props.speakers && props.speakers.length > 0) {\n drawerMenuItems.push({\n itemKey: 'speakers',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.speakerMenuTitle,\n iconProps: { iconName: 'MoreDrawerSpeakers' },\n subMenuProps: props.speakers.map((speaker) => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n ? 'MoreDrawerSelectedSpeaker'\n : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n })),\n secondaryText: props.selectedSpeaker?.name\n });\n }\n\n const { microphones, onSelectMicrophone } = props;\n const onMicrophoneItemClick = useCallback(\n (_ev, itemKey) => {\n const selected = microphones?.find((mic) => mic.id === itemKey);\n if (selected) {\n // This is unsafe - we're only passing in part of the argument to the handler.\n // But this is a known issue in our state.\n onSelectMicrophone(selected as AudioDeviceInfo);\n }\n onLightDismiss();\n },\n [microphones, onSelectMicrophone, onLightDismiss]\n );\n\n if (props.microphones && props.microphones.length > 0) {\n // Set props as Microphone if speakers can be enumerated else set as Audio Device\n const speakersAvailable = props.speakers && props.speakers.length > 0;\n const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: { iconName: iconName },\n subMenuProps: props.microphones.map((mic) => ({\n itemKey: mic.id,\n iconProps: {\n iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n },\n text: mic.name,\n onItemClick: onMicrophoneItemClick,\n secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: props.selectedMicrophone?.name\n });\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n drawerMenuItems.push({\n itemKey: 'people',\n id: 'call-composite-drawer-people-button',\n text: props.strings.peopleButtonLabel,\n iconProps: { iconName: 'MoreDrawerPeople' },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton)\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n drawerMenuItems.push({\n itemKey: 'holdButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onItemClick: () => {\n holdButtonProps.onToggleHold();\n onLightDismiss();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n /*@conditional-compile-remove(PSTN-calls) */\n // dtmf tone sending only works for 1:1 PSTN call\n if (drawerSelectionOptions !== false && props.onClickShowDialpad) {\n drawerMenuItems.push({\n itemKey: 'showDialpadKey',\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,\n onItemClick: () => {\n props.onClickShowDialpad && props.onClickShowDialpad();\n },\n iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } }\n });\n }\n\n /* @conditional-compile-remove(close-captions) */\n //Captions drawer menu\n const supportedLanguageStrings = useLocale().strings.call.captionsAvailableLanguageStrings;\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n\n /* @conditional-compile-remove(close-captions) */\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n\n /* @conditional-compile-remove(close-captions) */\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<string>(\n startCaptionsButtonProps.currentSpokenLanguage === ''\n ? defaultSpokenLanguage\n : startCaptionsButtonProps.currentSpokenLanguage\n );\n /* @conditional-compile-remove(close-captions) */\n const onToggleChange = useCallback(async () => {\n if (!startCaptionsButtonProps.checked) {\n await startCaptionsButtonHandlers.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n // set spoken language when start captions with a spoken language specified.\n // this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language\n startCaptionsButtonHandlers.onSetSpokenLanguage(currentSpokenLanguage);\n } else {\n startCaptionsButtonHandlers.onStopCaptions();\n }\n }, [startCaptionsButtonProps.checked, startCaptionsButtonHandlers, currentSpokenLanguage]);\n\n /* @conditional-compile-remove(close-captions) */\n if (props.isCaptionsSupported) {\n const captionsDrawerItems: DrawerMenuItemProps[] = [];\n\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: { iconName: 'CaptionsIcon' },\n subMenuProps: captionsDrawerItems\n });\n\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: startCaptionsButtonProps.checked\n ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: (\n <Stack verticalFill verticalAlign=\"center\">\n <Toggle\n id=\"common-call-composite-captions-toggle-button\"\n checked={startCaptionsButtonProps.checked}\n styles={themedToggleButtonStyle(theme, startCaptionsButtonProps.checked)}\n onChange={onToggleChange}\n />\n </Stack>\n )\n });\n\n captionsDrawerItems.push({\n itemKey: 'ChangeSpokenLanguage',\n text: props.strings.spokenLanguageMenuTitle,\n id: 'common-call-composite-captions-settings-button',\n secondaryText: supportedLanguageStrings ? supportedLanguageStrings[currentSpokenLanguage] : currentSpokenLanguage,\n iconProps: {\n iconName: 'ChangeSpokenLanguageIcon',\n styles: { root: { lineHeight: 0 } }\n },\n disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: { root: { lineHeight: 0 } }\n }\n });\n }\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDrawerButtons(\n onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n ),\n [drawerSelectionOptions]\n );\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['secondary'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['overflow'].forEach((element) => {\n drawerMenuItems.push(element);\n });\n /* @conditional-compile-remove(close-captions) */\n return (\n <>\n {isSpokenLanguageDrawerOpen && props.isCaptionsSupported && (\n <SpokenLanguageDrawer\n onLightDismiss={props.onLightDismiss}\n setCurrentSpokenLanguage={setCurrentSpokenLanguage}\n currentSpokenLanguage={currentSpokenLanguage}\n strings={props.strings}\n supportedLanguageStrings={supportedLanguageStrings}\n />\n )}\n {!isSpokenLanguageDrawerOpen && <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />}\n </>\n );\n\n return <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />;\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n\"../../../../../react-components/src\"\"../../../../../acs-ui-common/src\"\"../../../../../calling-component-bindings/src\""]}
@@ -0,0 +1,6 @@
1
+ import { Theme, IToggleStyles } from '@fluentui/react';
2
+ /**
3
+ * @private
4
+ */
5
+ export declare const themedToggleButtonStyle: (theme: Theme, checked: boolean) => Partial<IToggleStyles>;
6
+ //# sourceMappingURL=MoreDrawer.styles.d.ts.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export const themedToggleButtonStyle = (theme, checked) => {
5
+ if (checked) {
6
+ return {
7
+ root: {
8
+ margin: 0
9
+ },
10
+ pill: {
11
+ backgroundColor: `${theme.palette.themePrimary} !important`
12
+ },
13
+ thumb: {
14
+ backgroundColor: `${theme.palette.white} !important`
15
+ }
16
+ };
17
+ }
18
+ return {
19
+ root: {
20
+ margin: 0
21
+ }
22
+ };
23
+ };
24
+ //# sourceMappingURL=MoreDrawer.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoreDrawer.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.styles.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAY,EAAE,OAAgB,EAA0B,EAAE;IAChG,IAAI,OAAO,EAAE;QACX,OAAO;YACL,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC;aACV;YACD,IAAI,EAAE;gBACJ,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,aAAa;aAC5D;YACD,KAAK,EAAE;gBACL,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,aAAa;aACrD;SACF,CAAC;KACH;IACD,OAAO;QACL,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC;SACV;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { Theme, IToggleStyles } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const themedToggleButtonStyle = (theme: Theme, checked: boolean): Partial<IToggleStyles> => {\n if (checked) {\n return {\n root: {\n margin: 0\n },\n pill: {\n backgroundColor: `${theme.palette.themePrimary} !important`\n },\n thumb: {\n backgroundColor: `${theme.palette.white} !important`\n }\n };\n }\n return {\n root: {\n margin: 0\n }\n };\n};\n\"../../../../../acs-ui-common/src\""]}
@@ -6,6 +6,7 @@ export interface PreparedMoreDrawerProps {
6
6
  onPeopleButtonClicked: () => void;
7
7
  callControls?: boolean | CommonCallControlOptions;
8
8
  onClickShowDialpad?: () => void;
9
+ isCaptionsSupported?: boolean;
9
10
  disableButtonsForHoldScreen?: boolean;
10
11
  }
11
12
  /** @private */
@@ -13,7 +13,11 @@ export const PreparedMoreDrawer = (props) => {
13
13
  peopleButtonLabel: strings.peopleButtonLabel,
14
14
  audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,
15
15
  microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,
16
- speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle
16
+ speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle,
17
+ /* @conditional-compile-remove(close-captions) */
18
+ captionsMenuTitle: strings.moreDrawerCaptionsMenuTitle,
19
+ /* @conditional-compile-remove(close-captions) */
20
+ spokenLanguageMenuTitle: strings.moreDrawerSpokenLanguageMenuTitle
17
21
  }), [strings]);
18
22
  const deviceProps = useSelector(moreDrawerSelector);
19
23
  const callHandlers = useHandlers(MoreDrawer);
@@ -1 +1 @@
1
- {"version":3,"file":"PreparedMoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/PreparedMoreDrawer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,+BAA+B,EAAE,MAAM,mEAAmE,CAAC;AACpH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAapE,eAAe;AACf,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,MAAM,iBAAiB,GAAsB,OAAO,CAClD,GAAG,EAAE,CAAC,CAAC;QACL,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,oBAAoB,EAAE,OAAO,CAAC,8BAA8B;QAC5D,mBAAmB,EAAE,OAAO,CAAC,6BAA6B;QAC1D,gBAAgB,EAAE,OAAO,CAAC,0BAA0B;KACrD,CAAC,EACF,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,oBAAC,UAAU,oBAAK,KAAK,EAAM,WAAW,EAAM,YAAY,IAAE,OAAO,EAAE,iBAAiB,IAAI,CAAC;AAClG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo } from 'react';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { MoreDrawer, MoreDrawerStrings } from './MoreDrawer';\nimport { moreDrawerSelector } from '../../CallWithChatComposite/selectors/moreDrawerSelector';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n\n/** @private */\nexport interface PreparedMoreDrawerProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n /* @conditional-compile-remove(PSTN-calls) */\n onClickShowDialpad?: () => void;\n disableButtonsForHoldScreen?: boolean;\n}\n\n/** @private */\nexport const PreparedMoreDrawer = (props: PreparedMoreDrawerProps): JSX.Element => {\n const strings = useCallWithChatCompositeStrings();\n const moreDrawerStrings: MoreDrawerStrings = useMemo(\n () => ({\n peopleButtonLabel: strings.peopleButtonLabel,\n audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,\n microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,\n speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle\n }),\n [strings]\n );\n const deviceProps = useSelector(moreDrawerSelector);\n const callHandlers = useHandlers(MoreDrawer);\n return <MoreDrawer {...props} {...deviceProps} {...callHandlers} strings={moreDrawerStrings} />;\n};\n"]}
1
+ {"version":3,"file":"PreparedMoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/PreparedMoreDrawer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,+BAA+B,EAAE,MAAM,mEAAmE,CAAC;AACpH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAepE,eAAe;AACf,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,MAAM,iBAAiB,GAAsB,OAAO,CAClD,GAAG,EAAE,CAAC,CAAC;QACL,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,oBAAoB,EAAE,OAAO,CAAC,8BAA8B;QAC5D,mBAAmB,EAAE,OAAO,CAAC,6BAA6B;QAC1D,gBAAgB,EAAE,OAAO,CAAC,0BAA0B;QACpD,iDAAiD;QACjD,iBAAiB,EAAE,OAAO,CAAC,2BAA2B;QACtD,iDAAiD;QACjD,uBAAuB,EAAE,OAAO,CAAC,iCAAiC;KACnE,CAAC,EACF,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,oBAAC,UAAU,oBAAK,KAAK,EAAM,WAAW,EAAM,YAAY,IAAE,OAAO,EAAE,iBAAiB,IAAI,CAAC;AAClG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo } from 'react';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { MoreDrawer, MoreDrawerStrings } from './MoreDrawer';\nimport { moreDrawerSelector } from '../../CallWithChatComposite/selectors/moreDrawerSelector';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n\n/** @private */\nexport interface PreparedMoreDrawerProps {\n onLightDismiss: () => void;\n onPeopleButtonClicked: () => void;\n callControls?: boolean | CommonCallControlOptions;\n /* @conditional-compile-remove(PSTN-calls) */\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n disableButtonsForHoldScreen?: boolean;\n}\n\n/** @private */\nexport const PreparedMoreDrawer = (props: PreparedMoreDrawerProps): JSX.Element => {\n const strings = useCallWithChatCompositeStrings();\n const moreDrawerStrings: MoreDrawerStrings = useMemo(\n () => ({\n peopleButtonLabel: strings.peopleButtonLabel,\n audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,\n microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,\n speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle,\n /* @conditional-compile-remove(close-captions) */\n captionsMenuTitle: strings.moreDrawerCaptionsMenuTitle,\n /* @conditional-compile-remove(close-captions) */\n spokenLanguageMenuTitle: strings.moreDrawerSpokenLanguageMenuTitle\n }),\n [strings]\n );\n const deviceProps = useSelector(moreDrawerSelector);\n const callHandlers = useHandlers(MoreDrawer);\n return <MoreDrawer {...props} {...deviceProps} {...callHandlers} strings={moreDrawerStrings} />;\n};\n"]}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { CaptionsAvailableLanguageStrings } from "../../../../../react-components/src";
3
+ /** @private */
4
+ export interface SpokenLanguageDrawerStrings {
5
+ /**
6
+ * Label for spokenLanguage drawerMenuItem
7
+ *
8
+ * @remarks Only displayed when in Teams call, disabled until captions is on
9
+ */
10
+ spokenLanguageMenuTitle: string;
11
+ }
12
+ /** @private */
13
+ export declare const SpokenLanguageDrawer: (props: {
14
+ setCurrentSpokenLanguage: (language: string) => void;
15
+ currentSpokenLanguage: string;
16
+ onLightDismiss: () => void;
17
+ strings?: SpokenLanguageDrawerStrings | undefined;
18
+ supportedLanguageStrings?: CaptionsAvailableLanguageStrings | undefined;
19
+ }) => JSX.Element;
20
+ //# sourceMappingURL=SpokenLanguageDrawer.d.ts.map
@@ -0,0 +1,55 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import React from 'react';
4
+ /* @conditional-compile-remove(close-captions) */
5
+ import { useMemo, useCallback } from 'react';
6
+ /* @conditional-compile-remove(close-captions) */
7
+ import { useTheme } from "../../../../../react-components/src";
8
+ /* @conditional-compile-remove(close-captions) */
9
+ import { _CaptionsSettingsModal } from "../../../../../react-components/src";
10
+ /* @conditional-compile-remove(close-captions) */
11
+ import { _changeSpokenLanguageSelector } from "../../../../../calling-component-bindings/src";
12
+ /* @conditional-compile-remove(close-captions) */
13
+ import { _DrawerMenu as DrawerMenu } from "../../../../../react-components/src";
14
+ /* @conditional-compile-remove(close-captions) */
15
+ import { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';
16
+ /* @conditional-compile-remove(close-captions) */
17
+ import { useHandlers } from '../../CallComposite/hooks/useHandlers';
18
+ /* @conditional-compile-remove(close-captions) */
19
+ import { spokenLanguageDrawerStyles } from './SpokenLanguageDrawer.styles';
20
+ /** @private */
21
+ export const SpokenLanguageDrawer = (props) => {
22
+ var _a;
23
+ /* @conditional-compile-remove(close-captions) */
24
+ const theme = useTheme();
25
+ /* @conditional-compile-remove(close-captions) */
26
+ const changeSpokenLanguageProps = useAdaptedSelector(_changeSpokenLanguageSelector);
27
+ /* @conditional-compile-remove(close-captions) */
28
+ const changeSpokenLanguageHandlers = useHandlers(_CaptionsSettingsModal);
29
+ /* @conditional-compile-remove(close-captions) */
30
+ const onSpokenLanguageDrawerItemClick = useCallback((languageCode) => {
31
+ props.setCurrentSpokenLanguage(languageCode);
32
+ }, [props]);
33
+ /* @conditional-compile-remove(close-captions) */
34
+ const spokenLanguageDrawerItems = useMemo(() => {
35
+ var _a;
36
+ return (_a = changeSpokenLanguageProps === null || changeSpokenLanguageProps === void 0 ? void 0 : changeSpokenLanguageProps.supportedSpokenLanguages) === null || _a === void 0 ? void 0 : _a.map((languageCode) => ({
37
+ itemKey: languageCode,
38
+ text: props.supportedLanguageStrings ? props.supportedLanguageStrings[languageCode] : languageCode,
39
+ onItemClick: () => onSpokenLanguageDrawerItemClick(languageCode),
40
+ secondaryIconProps: props.currentSpokenLanguage === languageCode ? { iconName: 'Accept' } : undefined
41
+ }));
42
+ }, [
43
+ changeSpokenLanguageProps === null || changeSpokenLanguageProps === void 0 ? void 0 : changeSpokenLanguageProps.supportedSpokenLanguages,
44
+ props.currentSpokenLanguage,
45
+ props.supportedLanguageStrings,
46
+ onSpokenLanguageDrawerItemClick
47
+ ]);
48
+ /* @conditional-compile-remove(close-captions) */
49
+ return (React.createElement(DrawerMenu, { heading: (_a = props.strings) === null || _a === void 0 ? void 0 : _a.spokenLanguageMenuTitle, items: spokenLanguageDrawerItems !== null && spokenLanguageDrawerItems !== void 0 ? spokenLanguageDrawerItems : [], onLightDismiss: () => {
50
+ changeSpokenLanguageHandlers.onSetSpokenLanguage(props.currentSpokenLanguage);
51
+ props.onLightDismiss();
52
+ }, styles: spokenLanguageDrawerStyles(theme) }));
53
+ return React.createElement(React.Fragment, null);
54
+ };
55
+ //# sourceMappingURL=SpokenLanguageDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpokenLanguageDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7C,iDAAiD;AACjD,OAAO,EAAE,QAAQ,EAAE,4CAAmC;AACtD,iDAAiD;AACjD,OAAO,EAAE,sBAAsB,EAAoC,4CAAmC;AACtG,iDAAiD;AACjD,OAAO,EAAE,6BAA6B,EAAE,sDAA6C;AACrF,iDAAiD;AACjD,OAAO,EACL,WAAW,IAAI,UAAU,EAG1B,4CAAmC;AACpC,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,iDAAiD;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAY3E,eAAe;AACf,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAMpC,EAAe,EAAE;;IAChB,iDAAiD;IACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,iDAAiD;IACjD,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,6BAA6B,CAAC,CAAC;IACpF,iDAAiD;IACjD,MAAM,4BAA4B,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAEzE,iDAAiD;IACjD,MAAM,+BAA+B,GAAG,WAAW,CACjD,CAAC,YAAoB,EAAE,EAAE;QACvB,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,iDAAiD;IACjD,MAAM,yBAAyB,GAA0B,OAAO,CAAC,GAAG,EAAE;;QACpE,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,wBAAwB,0CAAE,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACjF,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;YAClG,WAAW,EAAE,GAAG,EAAE,CAAC,+BAA+B,CAAC,YAAY,CAAC;YAChE,kBAAkB,EAAE,KAAK,CAAC,qBAAqB,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;SACtG,CAAC,CAAC,CAAC;IACN,CAAC,EAAE;QACD,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,wBAAwB;QACnD,KAAK,CAAC,qBAAqB;QAC3B,KAAK,CAAC,wBAAwB;QAC9B,+BAA+B;KAChC,CAAC,CAAC;IAEH,iDAAiD;IACjD,OAAO,CACL,oBAAC,UAAU,IACT,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,uBAAuB,EAC/C,KAAK,EAAE,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,EAAE,EACtC,cAAc,EAAE,GAAG,EAAE;YACnB,4BAA4B,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC9E,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,EACD,MAAM,EAAE,0BAA0B,CAAC,KAAK,CAAC,GACzC,CACH,CAAC;IACF,OAAO,yCAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useMemo, useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useTheme } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _CaptionsSettingsModal, CaptionsAvailableLanguageStrings } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _changeSpokenLanguageSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport {\n _DrawerMenu as DrawerMenu,\n _DrawerMenuItemProps as DrawerMenuItemProps,\n _DrawerMenuStyles\n} from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { spokenLanguageDrawerStyles } from './SpokenLanguageDrawer.styles';\n\n/** @private */\nexport interface SpokenLanguageDrawerStrings {\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/** @private */\nexport const SpokenLanguageDrawer = (props: {\n /* @conditional-compile-remove(close-captions) */ setCurrentSpokenLanguage: (language: string) => void;\n /* @conditional-compile-remove(close-captions) */ currentSpokenLanguage: string;\n /* @conditional-compile-remove(close-captions) */ onLightDismiss: () => void;\n /* @conditional-compile-remove(close-captions) */ strings?: SpokenLanguageDrawerStrings;\n /* @conditional-compile-remove(close-captions) */ supportedLanguageStrings?: CaptionsAvailableLanguageStrings;\n}): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const theme = useTheme();\n\n /* @conditional-compile-remove(close-captions) */\n const changeSpokenLanguageProps = useAdaptedSelector(_changeSpokenLanguageSelector);\n /* @conditional-compile-remove(close-captions) */\n const changeSpokenLanguageHandlers = useHandlers(_CaptionsSettingsModal);\n\n /* @conditional-compile-remove(close-captions) */\n const onSpokenLanguageDrawerItemClick = useCallback(\n (languageCode: string) => {\n props.setCurrentSpokenLanguage(languageCode);\n },\n [props]\n );\n\n /* @conditional-compile-remove(close-captions) */\n const spokenLanguageDrawerItems: DrawerMenuItemProps[] = useMemo(() => {\n return changeSpokenLanguageProps?.supportedSpokenLanguages?.map((languageCode) => ({\n itemKey: languageCode,\n text: props.supportedLanguageStrings ? props.supportedLanguageStrings[languageCode] : languageCode,\n onItemClick: () => onSpokenLanguageDrawerItemClick(languageCode),\n secondaryIconProps: props.currentSpokenLanguage === languageCode ? { iconName: 'Accept' } : undefined\n }));\n }, [\n changeSpokenLanguageProps?.supportedSpokenLanguages,\n props.currentSpokenLanguage,\n props.supportedLanguageStrings,\n onSpokenLanguageDrawerItemClick\n ]);\n\n /* @conditional-compile-remove(close-captions) */\n return (\n <DrawerMenu\n heading={props.strings?.spokenLanguageMenuTitle}\n items={spokenLanguageDrawerItems ?? []}\n onLightDismiss={() => {\n changeSpokenLanguageHandlers.onSetSpokenLanguage(props.currentSpokenLanguage);\n props.onLightDismiss();\n }}\n styles={spokenLanguageDrawerStyles(theme)}\n />\n );\n return <></>;\n};\n\"../../../../../react-components/src\"\"../../../../../calling-component-bindings/src\""]}
@@ -0,0 +1,7 @@
1
+ import { Theme } from '@fluentui/react';
2
+ import { _DrawerMenuStyles } from "../../../../../react-components/src";
3
+ /**
4
+ * @private
5
+ */
6
+ export declare const spokenLanguageDrawerStyles: (theme: Theme) => _DrawerMenuStyles;
7
+ //# sourceMappingURL=SpokenLanguageDrawer.styles.d.ts.map
@@ -0,0 +1,25 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { _pxToRem } from "../../../../../acs-ui-common/src";
4
+ /**
5
+ * @private
6
+ */
7
+ export const spokenLanguageDrawerStyles = (theme) => ({
8
+ root: {
9
+ height: _pxToRem(300),
10
+ overflow: 'auto'
11
+ },
12
+ drawerSurfaceStyles: {
13
+ drawerContentContainer: {
14
+ root: {
15
+ span: {
16
+ fontWeight: 600,
17
+ fontSize: _pxToRem(17),
18
+ lineHeight: _pxToRem(22),
19
+ color: theme.palette.neutralDark
20
+ }
21
+ }
22
+ }
23
+ }
24
+ });
25
+ //# sourceMappingURL=SpokenLanguageDrawer.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpokenLanguageDrawer.styles.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,QAAQ,EAAE,yCAAgC;AAGnD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAqB,EAAE,CAAC,CAAC;IAC9E,IAAI,EAAE;QACJ,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;QACrB,QAAQ,EAAE,MAAM;KACjB;IACD,mBAAmB,EAAE;QACnB,sBAAsB,EAAE;YACtB,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACtB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;iBACjC;aACF;SACF;KACF;CACF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Theme } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { _DrawerMenuStyles } from '@internal/react-components';\n\n/**\n * @private\n */\nexport const spokenLanguageDrawerStyles = (theme: Theme): _DrawerMenuStyles => ({\n root: {\n height: _pxToRem(300),\n overflow: 'auto'\n },\n drawerSurfaceStyles: {\n drawerContentContainer: {\n root: {\n span: {\n fontWeight: 600,\n fontSize: _pxToRem(17),\n lineHeight: _pxToRem(22),\n color: theme.palette.neutralDark\n }\n }\n }\n }\n});\n\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
@@ -8,6 +8,6 @@ const icon = () => React.createElement(MoreHorizontal20Filled, { key: 'chatOnIco
8
8
  * @private
9
9
  */
10
10
  export const MoreButton = (props) => {
11
- return (React.createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'optionsButtonLabelKey', showLabel: props.showLabel, onRenderOnIcon: icon, onRenderOffIcon: icon, onClick: props.onClick, "data-ui-id": 'common-call-composite-more-button' })));
11
+ return (React.createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'optionsButtonLabelKey', showLabel: props.showLabel, onRenderOnIcon: icon, onRenderOffIcon: icon, onClick: props.onClick, "data-ui-id": props['data-ui-id'] })));
12
12
  };
13
13
  //# sourceMappingURL=MoreButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MoreButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAyB,yCAAmC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,IAAI,GAAG,GAAgB,EAAE,CAAC,oBAAC,sBAAsB,IAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAe,EAAE;IACtE,OAAO,CACL,oBAAC,gBAAgB,oBACX,KAAK,IACT,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,cAAc,EAAE,IAAI,EACpB,eAAe,EAAE,IAAI,EACrB,OAAO,EAAE,KAAK,CAAC,OAAO,gBACV,mCAAmC,IAC/C,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React from 'react';\nimport { ControlBarButton, ControlBarButtonProps } from '@internal/react-components';\nimport { MoreHorizontal20Filled } from '@fluentui/react-icons';\n\nconst icon = (): JSX.Element => <MoreHorizontal20Filled key={'chatOnIconKey'} primaryFill=\"currentColor\" />;\n\n/**\n * @private\n */\nexport const MoreButton = (props: ControlBarButtonProps): JSX.Element => {\n return (\n <ControlBarButton\n {...props}\n labelKey={'optionsButtonLabelKey'}\n showLabel={props.showLabel}\n onRenderOnIcon={icon}\n onRenderOffIcon={icon}\n onClick={props.onClick}\n data-ui-id={'common-call-composite-more-button'}\n />\n );\n};\n\"../../../../react-components/src\""]}
1
+ {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MoreButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAyB,yCAAmC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,IAAI,GAAG,GAAgB,EAAE,CAAC,oBAAC,sBAAsB,IAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAe,EAAE;IACtE,OAAO,CACL,oBAAC,gBAAgB,oBACX,KAAK,IACT,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,cAAc,EAAE,IAAI,EACpB,eAAe,EAAE,IAAI,EACrB,OAAO,EAAE,KAAK,CAAC,OAAO,gBACV,KAAK,CAAC,YAAY,CAAC,IAC/B,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React from 'react';\nimport { ControlBarButton, ControlBarButtonProps } from '@internal/react-components';\nimport { MoreHorizontal20Filled } from '@fluentui/react-icons';\n\nconst icon = (): JSX.Element => <MoreHorizontal20Filled key={'chatOnIconKey'} primaryFill=\"currentColor\" />;\n\n/**\n * @private\n */\nexport const MoreButton = (props: ControlBarButtonProps): JSX.Element => {\n return (\n <ControlBarButton\n {...props}\n labelKey={'optionsButtonLabelKey'}\n showLabel={props.showLabel}\n onRenderOnIcon={icon}\n onRenderOffIcon={icon}\n onClick={props.onClick}\n data-ui-id={props['data-ui-id']}\n />\n );\n};\n\"../../../../react-components/src\""]}
@@ -1,5 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { CallAdapter, CommonCallAdapter } from '../CallComposite';
3
2
  /**
4
3
  * Pane that is used to show video effects button
5
4
  * @private
@@ -8,6 +7,5 @@ import { CallAdapter, CommonCallAdapter } from '../CallComposite';
8
7
  export declare const VideoEffectsPane: (props: {
9
8
  showVideoEffectsOptions: boolean;
10
9
  setshowVideoEffectsOptions: (showVideoEffectsOptions: boolean) => void;
11
- adapter: CallAdapter | CommonCallAdapter;
12
10
  }) => JSX.Element;
13
11
  //# sourceMappingURL=VideoEffectsPane.d.ts.map
@@ -18,6 +18,12 @@ import { Panel } from '@fluentui/react';
18
18
  import { useLocale } from '../localization';
19
19
  /* @conditional-compile-remove(video-background-effects) */
20
20
  import { _VideoBackgroundEffectsPicker } from "../../../../react-components/src";
21
+ /* @conditional-compile-remove(video-background-effects) */
22
+ import { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';
23
+ /* @conditional-compile-remove(video-background-effects) */
24
+ import { useSelector } from '../CallComposite/hooks/useSelector';
25
+ /* @conditional-compile-remove(video-background-effects) */
26
+ import { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';
21
27
  /**
22
28
  * Pane that is used to show video effects button
23
29
  * @private
@@ -28,6 +34,8 @@ export const VideoEffectsPane = (props) => {
28
34
  /* @conditional-compile-remove(video-background-effects) */
29
35
  const locale = useLocale();
30
36
  /* @conditional-compile-remove(video-background-effects) */
37
+ const adapter = useAdapter();
38
+ /* @conditional-compile-remove(video-background-effects) */
31
39
  const strings = locale.strings.call;
32
40
  /* @conditional-compile-remove(video-background-effects) */
33
41
  const selectableVideoEffects = useMemo(() => {
@@ -53,7 +61,7 @@ export const VideoEffectsPane = (props) => {
53
61
  }
54
62
  }
55
63
  ];
56
- const videoEffectImages = props.adapter.getState().videoBackgroundImages;
64
+ const videoEffectImages = adapter.getState().videoBackgroundImages;
57
65
  if (videoEffectImages) {
58
66
  videoEffectImages.forEach((img) => {
59
67
  var _a;
@@ -69,22 +77,22 @@ export const VideoEffectsPane = (props) => {
69
77
  });
70
78
  }
71
79
  return videoEffects;
72
- }, [strings, props.adapter]);
80
+ }, [strings, adapter]);
73
81
  /* @conditional-compile-remove(video-background-effects) */
74
82
  const onEffectChange = useCallback((effectKey) => __awaiter(void 0, void 0, void 0, function* () {
75
83
  if (effectKey === 'blur') {
76
84
  const blurEffect = {
77
85
  effectName: effectKey
78
86
  };
79
- props.adapter.updateSelectedVideoBackgroundEffect(blurEffect);
80
- yield props.adapter.blurVideoBackground();
87
+ adapter.updateSelectedVideoBackgroundEffect(blurEffect);
88
+ yield adapter.blurVideoBackground();
81
89
  }
82
90
  else if (effectKey === 'none') {
83
91
  const noneEffect = {
84
92
  effectName: effectKey
85
93
  };
86
- props.adapter.updateSelectedVideoBackgroundEffect(noneEffect);
87
- yield props.adapter.stopVideoBackgroundEffect();
94
+ adapter.updateSelectedVideoBackgroundEffect(noneEffect);
95
+ yield adapter.stopVideoBackgroundEffect();
88
96
  }
89
97
  else {
90
98
  const backgroundImg = selectableVideoEffects.find((effect) => {
@@ -96,11 +104,11 @@ export const VideoEffectsPane = (props) => {
96
104
  effectKey,
97
105
  backgroundImageUrl: backgroundImg.backgroundProps.url
98
106
  };
99
- props.adapter.updateSelectedVideoBackgroundEffect(replaceEffect);
100
- yield props.adapter.replaceVideoBackground({ backgroundImageUrl: backgroundImg.backgroundProps.url });
107
+ adapter.updateSelectedVideoBackgroundEffect(replaceEffect);
108
+ yield adapter.replaceVideoBackground({ backgroundImageUrl: backgroundImg.backgroundProps.url });
101
109
  }
102
110
  }
103
- }), [props.adapter, selectableVideoEffects]);
111
+ }), [adapter, selectableVideoEffects]);
104
112
  return VideoEffectsPaneTrampoline(showVideoEffectsOptions, setshowVideoEffectsOptions,
105
113
  /* @conditional-compile-remove(video-background-effects) */
106
114
  selectableVideoEffects,
@@ -111,7 +119,9 @@ const VideoEffectsPaneTrampoline = (showVideoEffectsOptions, setshowVideoEffects
111
119
  /* @conditional-compile-remove(video-background-effects) */
112
120
  const locale = useLocale();
113
121
  /* @conditional-compile-remove(video-background-effects) */
114
- return (React.createElement(Panel, { headerText: locale.strings.call.effects, isOpen: showVideoEffectsOptions, onDismiss: () => setshowVideoEffectsOptions(false), hasCloseButton: true, closeButtonAriaLabel: "Close", isLightDismiss: true }, selectableVideoEffects && (React.createElement(_VideoBackgroundEffectsPicker, { options: selectableVideoEffects, onChange: onEffectChange }))));
122
+ const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);
123
+ /* @conditional-compile-remove(video-background-effects) */
124
+ return (React.createElement(Panel, { headerText: locale.strings.call.effects, isOpen: showVideoEffectsOptions, onDismiss: () => setshowVideoEffectsOptions(false), hasCloseButton: true, closeButtonAriaLabel: "Close", isLightDismiss: true }, selectableVideoEffects && (React.createElement(_VideoBackgroundEffectsPicker, { options: selectableVideoEffects, onChange: onEffectChange, selectedEffectKey: selectedEffect }))));
115
125
  return React.createElement(React.Fragment, null);
116
126
  };
117
127
  //# sourceMappingURL=VideoEffectsPane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,2DAA2D;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,2DAA2D;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,2DAA2D;AAC3D,OAAO,EAAE,6BAA6B,EAAE,yCAAmC;AAU3E;;;GAGG;AACH,YAAY;AACZ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAIhC,EAAe,EAAE;IAChB,MAAM,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,GAAG,KAAK,CAAC;IACtE,2DAA2D;IAC3D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,2DAA2D;IAC3D,MAAM,sBAAsB,GAA6B,OAAO,CAAC,GAAG,EAAE;QACpE,MAAM,YAAY,GAA6B;YAC7C;gBACE,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE;oBACT,QAAQ,EAAE,6BAA6B;iBACxC;gBACD,KAAK,EAAE,OAAO,CAAC,iCAAiC;gBAChD,YAAY,EAAE;oBACZ,OAAO,EAAE,OAAO,CAAC,uBAAuB;iBACzC;aACF;YACD;gBACE,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE;oBACT,QAAQ,EAAE,qBAAqB;iBAChC;gBACD,KAAK,EAAE,OAAO,CAAC,+BAA+B;gBAC9C,YAAY,EAAE;oBACZ,OAAO,EAAE,OAAO,CAAC,qBAAqB;iBACvC;aACF;SACF,CAAC;QACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;QAEzE,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAyB,EAAE,EAAE;;gBACtD,YAAY,CAAC,IAAI,CAAC;oBAChB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,eAAe,EAAE;wBACf,GAAG,EAAE,GAAG,CAAC,GAAG;qBACb;oBACD,YAAY,EAAE;wBACZ,OAAO,EAAE,MAAA,GAAG,CAAC,WAAW,mCAAI,EAAE;qBAC/B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7B,2DAA2D;IAC3D,MAAM,cAAc,GAAG,WAAW,CAChC,CAAO,SAAiB,EAAE,EAAE;QAC1B,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,MAAM,UAAU,GAA8B;gBAC5C,UAAU,EAAE,SAAS;aACtB,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;SAC3C;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE;YAC/B,MAAM,UAAU,GAA8B;gBAC5C,UAAU,EAAE,SAAS;aACtB,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;SACjD;aAAM;YACL,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3D,OAAO,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,aAAa,IAAI,aAAa,CAAC,eAAe,EAAE;gBAClD,MAAM,aAAa,GAAqC;oBACtD,UAAU,EAAE,aAAa;oBACzB,SAAS;oBACT,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG;iBACtD,CAAC;gBACF,KAAK,CAAC,OAAO,CAAC,mCAAmC,CAAC,aAAa,CAAC,CAAC;gBACjE,MAAM,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;aACvG;SACF;IACH,CAAC,CAAA,EACD,CAAC,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CACxC,CAAC;IACF,OAAO,0BAA0B,CAC/B,uBAAuB,EACvB,0BAA0B;IAC1B,2DAA2D;IAC3D,sBAAsB;IACtB,2DAA2D;IAC3D,cAAc,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,uBAAgC,EAChC,0BAAsE,EACtE,sBAAiD,EACjD,cAAqD,EACxC,EAAE;IACf,2DAA2D;IAC3D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,CACL,oBAAC,KAAK,IACJ,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EACvC,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAClD,cAAc,EAAE,IAAI,EACpB,oBAAoB,EAAC,OAAO,EAC5B,cAAc,EAAE,IAAI,IAEnB,sBAAsB,IAAI,CACzB,oBAAC,6BAA6B,IAC5B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,cAAc,GACO,CAClC,CACK,CACT,CAAC;IACF,OAAO,yCAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport React from 'react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useCallback, useMemo } from 'react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { Panel } from '@fluentui/react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useLocale } from '../localization';\nimport { _VideoEffectsItemProps } from '@internal/react-components';\n/* @conditional-compile-remove(video-background-effects) */\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n/* @conditional-compile-remove(video-background-effects) */\nimport {\n VideoBackgroundImage,\n VideoBackgroundBlurEffect,\n VideoBackgroundNoneEffect,\n VideoBackgroundReplacementEffect\n} from '../CallComposite';\nimport { CallAdapter, CommonCallAdapter } from '../CallComposite';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPane = (props: {\n showVideoEffectsOptions: boolean;\n setshowVideoEffectsOptions: (showVideoEffectsOptions: boolean) => void;\n adapter: CallAdapter | CommonCallAdapter;\n}): JSX.Element => {\n const { showVideoEffectsOptions, setshowVideoEffectsOptions } = props;\n /* @conditional-compile-remove(video-background-effects) */\n const locale = useLocale();\n /* @conditional-compile-remove(video-background-effects) */\n const strings = locale.strings.call;\n /* @conditional-compile-remove(video-background-effects) */\n const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n const videoEffects: _VideoEffectsItemProps[] = [\n {\n key: 'none',\n iconProps: {\n iconName: 'RemoveVideoBackgroundEffect'\n },\n title: strings.removeBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.removeBackgroundTooltip\n }\n },\n {\n key: 'blur',\n iconProps: {\n iconName: 'BlurVideoBackground'\n },\n title: strings.blurBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.blurBackgroundTooltip\n }\n }\n ];\n const videoEffectImages = props.adapter.getState().videoBackgroundImages;\n\n if (videoEffectImages) {\n videoEffectImages.forEach((img: VideoBackgroundImage) => {\n videoEffects.push({\n key: img.key,\n backgroundProps: {\n url: img.url\n },\n tooltipProps: {\n content: img.tooltipText ?? ''\n }\n });\n });\n }\n return videoEffects;\n }, [strings, props.adapter]);\n\n /* @conditional-compile-remove(video-background-effects) */\n const onEffectChange = useCallback(\n async (effectKey: string) => {\n if (effectKey === 'blur') {\n const blurEffect: VideoBackgroundBlurEffect = {\n effectName: effectKey\n };\n props.adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n await props.adapter.blurVideoBackground();\n } else if (effectKey === 'none') {\n const noneEffect: VideoBackgroundNoneEffect = {\n effectName: effectKey\n };\n props.adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n await props.adapter.stopVideoBackgroundEffect();\n } else {\n const backgroundImg = selectableVideoEffects.find((effect) => {\n return effect.key === effectKey;\n });\n if (backgroundImg && backgroundImg.backgroundProps) {\n const replaceEffect: VideoBackgroundReplacementEffect = {\n effectName: 'replacement',\n effectKey,\n backgroundImageUrl: backgroundImg.backgroundProps.url\n };\n props.adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n await props.adapter.replaceVideoBackground({ backgroundImageUrl: backgroundImg.backgroundProps.url });\n }\n }\n },\n [props.adapter, selectableVideoEffects]\n );\n return VideoEffectsPaneTrampoline(\n showVideoEffectsOptions,\n setshowVideoEffectsOptions,\n /* @conditional-compile-remove(video-background-effects) */\n selectableVideoEffects,\n /* @conditional-compile-remove(video-background-effects) */\n onEffectChange\n );\n};\n\nconst VideoEffectsPaneTrampoline = (\n showVideoEffectsOptions: boolean,\n setshowVideoEffectsOptions: (showVideoEffectsOptions: boolean) => void,\n selectableVideoEffects?: _VideoEffectsItemProps[],\n onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n /* @conditional-compile-remove(video-background-effects) */\n const locale = useLocale();\n /* @conditional-compile-remove(video-background-effects) */\n return (\n <Panel\n headerText={locale.strings.call.effects}\n isOpen={showVideoEffectsOptions}\n onDismiss={() => setshowVideoEffectsOptions(false)}\n hasCloseButton={true}\n closeButtonAriaLabel=\"Close\"\n isLightDismiss={true}\n >\n {selectableVideoEffects && (\n <_VideoBackgroundEffectsPicker\n options={selectableVideoEffects}\n onChange={onEffectChange}\n ></_VideoBackgroundEffectsPicker>\n )}\n </Panel>\n );\n return <></>;\n};\n\"../../../../react-components/src\""]}
1
+ {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport React from 'react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useCallback, useMemo } from 'react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { Panel } from '@fluentui/react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useLocale } from '../localization';\nimport { _VideoEffectsItemProps } from '@internal/react-components';\n/* @conditional-compile-remove(video-background-effects) */\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n/* @conditional-compile-remove(video-background-effects) */\nimport {\n VideoBackgroundImage,\n VideoBackgroundBlurEffect,\n VideoBackgroundNoneEffect,\n VideoBackgroundReplacementEffect\n} from '../CallComposite';\n/* @conditional-compile-remove(video-background-effects) */\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useSelector } from '../CallComposite/hooks/useSelector';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPane = (props: {\n showVideoEffectsOptions: boolean;\n setshowVideoEffectsOptions: (showVideoEffectsOptions: boolean) => void;\n}): JSX.Element => {\n const { showVideoEffectsOptions, setshowVideoEffectsOptions } = props;\n /* @conditional-compile-remove(video-background-effects) */\n const locale = useLocale();\n /* @conditional-compile-remove(video-background-effects) */\n const adapter = useAdapter();\n /* @conditional-compile-remove(video-background-effects) */\n const strings = locale.strings.call;\n /* @conditional-compile-remove(video-background-effects) */\n const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n const videoEffects: _VideoEffectsItemProps[] = [\n {\n key: 'none',\n iconProps: {\n iconName: 'RemoveVideoBackgroundEffect'\n },\n title: strings.removeBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.removeBackgroundTooltip\n }\n },\n {\n key: 'blur',\n iconProps: {\n iconName: 'BlurVideoBackground'\n },\n title: strings.blurBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.blurBackgroundTooltip\n }\n }\n ];\n const videoEffectImages = adapter.getState().videoBackgroundImages;\n\n if (videoEffectImages) {\n videoEffectImages.forEach((img: VideoBackgroundImage) => {\n videoEffects.push({\n key: img.key,\n backgroundProps: {\n url: img.url\n },\n tooltipProps: {\n content: img.tooltipText ?? ''\n }\n });\n });\n }\n return videoEffects;\n }, [strings, adapter]);\n\n /* @conditional-compile-remove(video-background-effects) */\n const onEffectChange = useCallback(\n async (effectKey: string) => {\n if (effectKey === 'blur') {\n const blurEffect: VideoBackgroundBlurEffect = {\n effectName: effectKey\n };\n adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n await adapter.blurVideoBackground();\n } else if (effectKey === 'none') {\n const noneEffect: VideoBackgroundNoneEffect = {\n effectName: effectKey\n };\n adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n await adapter.stopVideoBackgroundEffect();\n } else {\n const backgroundImg = selectableVideoEffects.find((effect) => {\n return effect.key === effectKey;\n });\n if (backgroundImg && backgroundImg.backgroundProps) {\n const replaceEffect: VideoBackgroundReplacementEffect = {\n effectName: 'replacement',\n effectKey,\n backgroundImageUrl: backgroundImg.backgroundProps.url\n };\n adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n await adapter.replaceVideoBackground({ backgroundImageUrl: backgroundImg.backgroundProps.url });\n }\n }\n },\n [adapter, selectableVideoEffects]\n );\n return VideoEffectsPaneTrampoline(\n showVideoEffectsOptions,\n setshowVideoEffectsOptions,\n /* @conditional-compile-remove(video-background-effects) */\n selectableVideoEffects,\n /* @conditional-compile-remove(video-background-effects) */\n onEffectChange\n );\n};\n\nconst VideoEffectsPaneTrampoline = (\n showVideoEffectsOptions: boolean,\n setshowVideoEffectsOptions: (showVideoEffectsOptions: boolean) => void,\n selectableVideoEffects?: _VideoEffectsItemProps[],\n onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n /* @conditional-compile-remove(video-background-effects) */\n const locale = useLocale();\n /* @conditional-compile-remove(video-background-effects) */\n const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n /* @conditional-compile-remove(video-background-effects) */\n return (\n <Panel\n headerText={locale.strings.call.effects}\n isOpen={showVideoEffectsOptions}\n onDismiss={() => setshowVideoEffectsOptions(false)}\n hasCloseButton={true}\n closeButtonAriaLabel=\"Close\"\n isLightDismiss={true}\n >\n {selectableVideoEffects && (\n <_VideoBackgroundEffectsPicker\n options={selectableVideoEffects}\n onChange={onEffectChange}\n selectedEffectKey={selectedEffect}\n ></_VideoBackgroundEffectsPicker>\n )}\n </Panel>\n );\n return <></>;\n};\n\"../../../../react-components/src\""]}
@@ -115,6 +115,10 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
115
115
  VerticalGalleryLeftButton: JSX.Element;
116
116
  VerticalGalleryRightButton: JSX.Element;
117
117
  OptionsVideoBackgroundEffect: JSX.Element;
118
+ CaptionsIcon: JSX.Element;
119
+ CaptionsOffIcon: JSX.Element;
120
+ CaptionsSettingsIcon: JSX.Element;
121
+ ChangeSpokenLanguageIcon: JSX.Element;
118
122
  };
119
123
  /** @private */
120
124
  export declare type CompositeIconProps<Icons> = IIconProps & {
@@ -10,5 +10,9 @@ interface MinMaxDragPosition {
10
10
  * @private
11
11
  */
12
12
  export declare const useMinMaxDragPosition: (modalLayerHostId: string, rtl?: boolean | undefined) => MinMaxDragPosition;
13
+ /**
14
+ * @private
15
+ */
16
+ export declare const defaultSpokenLanguage = "en-us";
13
17
  export {};
14
18
  //# sourceMappingURL=utils.d.ts.map
@@ -29,4 +29,8 @@ export const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
29
29
  }, [modalHostHeight, modalHostWidth, rtl]);
30
30
  return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
31
31
  };
32
+ /**
33
+ * @private
34
+ */
35
+ export const defaultSpokenLanguage = 'en-us';
32
36
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/utils.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAiB,mBAAmB,EAAE,kBAAkB,EAAE,yCAAmC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAU9E;;GAEG;AACH,sIAAsI;AACtI,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,GAAa,EAAsB,EAAE;IACnG,MAAM,YAAY,GAAG,MAAM,CAAc,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,eAAe,GAA8B,OAAO,CACxD,GAAG,EAAE,CACH,cAAc,KAAK,SAAS;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,CAAC,EAAE,GAAG;gBACJ,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,eAAe;gBAC3C,CAAC,CAAC,oBAAoB,CAAC,eAAe,GAAG,cAAc,GAAG,oBAAoB,CAAC,OAAO;YACxF,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB,CAAC,aAAa;SAC3C,EACP,CAAC,cAAc,EAAE,GAAG,CAAC,CACtB,CAAC;IACF,MAAM,eAAe,GAA8B,OAAO,CACxD,GAAG,EAAE,CACH,cAAc,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;QAC3D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,CAAC,EAAE,GAAG;gBACJ,CAAC,CAAC,cAAc,GAAG,oBAAoB,CAAC,eAAe,GAAG,oBAAoB,CAAC,OAAO;gBACtF,CAAC,CAAC,oBAAoB,CAAC,eAAe;YACxC,CAAC,EAAE,eAAe,GAAG,oBAAoB,CAAC,aAAa,GAAG,oBAAoB,CAAC,QAAQ;SACxF,EACP,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,CAAC,CACvC,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAChF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _ICoordinates, _useContainerHeight, _useContainerWidth } from '@internal/react-components';\nimport { useMemo, useRef } from 'react';\nimport { MODAL_PIP_DEFAULT_PX } from './styles/ModalLocalAndRemotePIP.styles';\n\n/**\n * Interface for ModalLocalAndRemotePIP drag positions\n */\ninterface MinMaxDragPosition {\n minDragPosition: _ICoordinates | undefined;\n maxDragPosition: _ICoordinates | undefined;\n}\n\n/**\n * @private\n */\n// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410\nexport const useMinMaxDragPosition = (modalLayerHostId: string, rtl?: boolean): MinMaxDragPosition => {\n const modalHostRef = useRef<HTMLElement>(document.getElementById(modalLayerHostId));\n const modalHostWidth = _useContainerWidth(modalHostRef);\n const modalHostHeight = _useContainerHeight(modalHostRef);\n const minDragPosition: _ICoordinates | undefined = useMemo(\n () =>\n modalHostWidth === undefined\n ? undefined\n : {\n x: rtl\n ? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx\n : MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,\n y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx\n },\n [modalHostWidth, rtl]\n );\n const maxDragPosition: _ICoordinates | undefined = useMemo(\n () =>\n modalHostWidth === undefined || modalHostHeight === undefined\n ? undefined\n : {\n x: rtl\n ? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx\n : MODAL_PIP_DEFAULT_PX.rightPositionPx,\n y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx\n },\n [modalHostHeight, modalHostWidth, rtl]\n );\n\n return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };\n};\n\"../../../../react-components/src\""]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/utils.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAiB,mBAAmB,EAAE,kBAAkB,EAAE,yCAAmC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAU9E;;GAEG;AACH,sIAAsI;AACtI,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,GAAa,EAAsB,EAAE;IACnG,MAAM,YAAY,GAAG,MAAM,CAAc,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,eAAe,GAA8B,OAAO,CACxD,GAAG,EAAE,CACH,cAAc,KAAK,SAAS;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,CAAC,EAAE,GAAG;gBACJ,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,eAAe;gBAC3C,CAAC,CAAC,oBAAoB,CAAC,eAAe,GAAG,cAAc,GAAG,oBAAoB,CAAC,OAAO;YACxF,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB,CAAC,aAAa;SAC3C,EACP,CAAC,cAAc,EAAE,GAAG,CAAC,CACtB,CAAC;IACF,MAAM,eAAe,GAA8B,OAAO,CACxD,GAAG,EAAE,CACH,cAAc,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;QAC3D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,CAAC,EAAE,GAAG;gBACJ,CAAC,CAAC,cAAc,GAAG,oBAAoB,CAAC,eAAe,GAAG,oBAAoB,CAAC,OAAO;gBACtF,CAAC,CAAC,oBAAoB,CAAC,eAAe;YACxC,CAAC,EAAE,eAAe,GAAG,oBAAoB,CAAC,aAAa,GAAG,oBAAoB,CAAC,QAAQ;SACxF,EACP,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,CAAC,CACvC,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAChF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _ICoordinates, _useContainerHeight, _useContainerWidth } from '@internal/react-components';\nimport { useMemo, useRef } from 'react';\nimport { MODAL_PIP_DEFAULT_PX } from './styles/ModalLocalAndRemotePIP.styles';\n\n/**\n * Interface for ModalLocalAndRemotePIP drag positions\n */\ninterface MinMaxDragPosition {\n minDragPosition: _ICoordinates | undefined;\n maxDragPosition: _ICoordinates | undefined;\n}\n\n/**\n * @private\n */\n// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410\nexport const useMinMaxDragPosition = (modalLayerHostId: string, rtl?: boolean): MinMaxDragPosition => {\n const modalHostRef = useRef<HTMLElement>(document.getElementById(modalLayerHostId));\n const modalHostWidth = _useContainerWidth(modalHostRef);\n const modalHostHeight = _useContainerHeight(modalHostRef);\n const minDragPosition: _ICoordinates | undefined = useMemo(\n () =>\n modalHostWidth === undefined\n ? undefined\n : {\n x: rtl\n ? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx\n : MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,\n y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx\n },\n [modalHostWidth, rtl]\n );\n const maxDragPosition: _ICoordinates | undefined = useMemo(\n () =>\n modalHostWidth === undefined || modalHostHeight === undefined\n ? undefined\n : {\n x: rtl\n ? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx\n : MODAL_PIP_DEFAULT_PX.rightPositionPx,\n y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx\n },\n [modalHostHeight, modalHostWidth, rtl]\n );\n\n return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };\n};\n\n/**\n * @private\n */\nexport const defaultSpokenLanguage = 'en-us';\n\"../../../../react-components/src\""]}