@azure/communication-react 1.8.0-alpha-202309080012 → 1.8.0-alpha-202309130012

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 (22) hide show
  1. package/dist/communication-react.d.ts +4 -2
  2. package/dist/dist-cjs/communication-react/index.js +94 -36
  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/react-components/src/components/DevicesButton.d.ts +4 -4
  7. package/dist/dist-esm/react-components/src/components/DevicesButton.js +1 -1
  8. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  9. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -2
  10. package/dist/dist-esm/react-components/src/components/index.js +1 -1
  11. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  12. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +1 -1
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +90 -34
  15. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  16. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -0
  17. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  18. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -1
  19. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  20. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +4 -1
  21. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  22. package/package.json +34 -34
@@ -3,7 +3,7 @@
3
3
  import { memoizeFunction, Stack, useTheme } from '@fluentui/react';
4
4
  /* @conditional-compile-remove(PSTN-calls) */
5
5
  import { useState } from 'react';
6
- import { ControlBar } from "../../../../../react-components/src";
6
+ import { ControlBar, DevicesButton } from "../../../../../react-components/src";
7
7
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
8
8
  import { HoldButton } from "../../../../../react-components/src";
9
9
  import React, { useMemo } from 'react';
@@ -34,6 +34,7 @@ import { callControlsContainerStyles } from '../styles/CallPage.styles';
34
34
  import { RaiseHand } from './buttons/RaiseHand';
35
35
  /* @conditional-compile-remove(raise-hand) */
36
36
  import { RaiseHandButton } from "../../../../../react-components/src";
37
+ import { _generateDefaultDeviceMenuProps } from "../../../../../react-components/src";
37
38
  // Enforce a background color on control bar to ensure it matches the composite background color.
38
39
  const controlBarStyles = memoizeFunction((background) => ({ root: { background: background } }));
39
40
  /**
@@ -68,7 +69,29 @@ export const CallControls = (props) => {
68
69
  const raiseHandButtonProps = usePropsFor(RaiseHandButton);
69
70
  /* @conditional-compile-remove(PSTN-calls) */
70
71
  const alternateCallerId = useAdapter().getState().alternateCallerId;
71
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */
72
+ const devicesButtonProps = usePropsFor(DevicesButton);
73
+ let numberOfButtons = 0;
74
+ const screenShareButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.screenShareButton);
75
+ if (screenShareButtonIsEnabled) {
76
+ numberOfButtons++;
77
+ }
78
+ const microphoneButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.microphoneButton);
79
+ if (microphoneButtonIsEnabled) {
80
+ numberOfButtons++;
81
+ }
82
+ const cameraButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.cameraButton);
83
+ if (cameraButtonIsEnabled) {
84
+ numberOfButtons++;
85
+ }
86
+ if (isEnabled(options === null || options === void 0 ? void 0 : options.endCallButton)) {
87
+ numberOfButtons++;
88
+ }
89
+ const showParticipantsButtonInControlBar = isEnabled(options === null || options === void 0 ? void 0 : options.participantsButton) &&
90
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
91
+ !props.isMobile;
92
+ if (showParticipantsButtonInControlBar) {
93
+ numberOfButtons++;
94
+ }
72
95
  const moreButtonContextualMenuItems = () => {
73
96
  const items = [];
74
97
  if (props.isMobile && props.onPeopleButtonClicked && isEnabled(options === null || options === void 0 ? void 0 : options.participantsButton)) {
@@ -119,32 +142,72 @@ export const CallControls = (props) => {
119
142
  }
120
143
  });
121
144
  }
122
- /* @conditional-compile-remove(raise-hand) */
123
- if (raiseHandButtonIsEnabled) {
124
- items.push({
125
- key: 'raiseHandButtonKey',
126
- text: raiseHandButtonProps.checked
127
- ? localeStrings.component.strings.raiseHandButton.onLabel
128
- : localeStrings.component.strings.raiseHandButton.offLabel,
129
- onClick: () => {
130
- if (raiseHandButtonProps.onToggleRaiseHand) {
131
- raiseHandButtonProps.onToggleRaiseHand();
132
- }
133
- },
134
- iconProps: { iconName: 'RaiseHandContextualMenuItem', styles: { root: { lineHeight: 0 } } },
135
- itemProps: {
136
- styles: buttonFlyoutIncreasedSizeStyles
137
- },
138
- disabled: isDisabled(options === null || options === void 0 ? void 0 : options.raiseHandButton),
139
- ['data-ui-id']: 'raise-hand-button'
140
- });
141
- }
142
145
  return items;
143
146
  };
147
+ const moreButtonMenuItems = moreButtonContextualMenuItems();
148
+ let showMoreButton = isEnabled(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonMenuItems.length > 0;
149
+ if (showMoreButton) {
150
+ numberOfButtons++;
151
+ }
152
+ const customButtons = useMemo(() => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline(options), options === null || options === void 0 ? void 0 : options.displayType), [options]);
153
+ numberOfButtons += React.Children.count(customButtons['primary']) + React.Children.count(customButtons['secondary']);
154
+ let showDevicesButtonInControlBar = isEnabled(options === null || options === void 0 ? void 0 : options.devicesButton);
155
+ if (showDevicesButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {
156
+ numberOfButtons++;
157
+ }
158
+ else {
159
+ showDevicesButtonInControlBar = false;
160
+ showMoreButton = isEnabled(options === null || options === void 0 ? void 0 : options.moreButton);
161
+ }
162
+ /* @conditional-compile-remove(raise-hand) */
163
+ const raiseHandButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.raiseHandButton);
164
+ /* @conditional-compile-remove(raise-hand) */
165
+ let showRaiseHandButtonInControlBar = raiseHandButtonIsEnabled;
166
+ /* @conditional-compile-remove(raise-hand) */
167
+ if (showRaiseHandButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {
168
+ numberOfButtons++;
169
+ }
170
+ else {
171
+ // If more button is not present but enabled then replace previous button (devices button) with more button
172
+ if (!showMoreButton && isEnabled(options === null || options === void 0 ? void 0 : options.moreButton)) {
173
+ showMoreButton = true;
174
+ showDevicesButtonInControlBar = false;
175
+ }
176
+ showRaiseHandButtonInControlBar = false;
177
+ }
178
+ if (!showDevicesButtonInControlBar) {
179
+ const devicesButtonMenu = _generateDefaultDeviceMenuProps(devicesButtonProps, localeStrings.component.strings.devicesButton);
180
+ moreButtonMenuItems.push({
181
+ key: 'devicesButtonKey',
182
+ text: localeStrings.component.strings.devicesButton.label,
183
+ iconProps: { iconName: 'ControlButtonOptions', styles: { root: { lineHeight: 0 } } },
184
+ subMenuProps: devicesButtonMenu,
185
+ ['data-ui-id']: 'call-composite-more-menu-devices-button'
186
+ });
187
+ }
188
+ /* @conditional-compile-remove(raise-hand) */
189
+ if (!showRaiseHandButtonInControlBar) {
190
+ moreButtonMenuItems.push({
191
+ key: 'raiseHandButtonKey',
192
+ text: raiseHandButtonProps.checked
193
+ ? localeStrings.component.strings.raiseHandButton.onLabel
194
+ : localeStrings.component.strings.raiseHandButton.offLabel,
195
+ onClick: () => {
196
+ if (raiseHandButtonProps.onToggleRaiseHand) {
197
+ raiseHandButtonProps.onToggleRaiseHand();
198
+ }
199
+ },
200
+ iconProps: { iconName: 'RaiseHandContextualMenuItem', styles: { root: { lineHeight: 0 } } },
201
+ itemProps: {
202
+ styles: buttonFlyoutIncreasedSizeStyles
203
+ },
204
+ disabled: isDisabled(options === null || options === void 0 ? void 0 : options.raiseHandButton),
205
+ ['data-ui-id']: 'call-composite-more-menu-raise-hand-button'
206
+ });
207
+ }
144
208
  /* @conditional-compile-remove(PSTN-calls) */
145
209
  const [showDialpad, setShowDialpad] = useState(false);
146
210
  const theme = useTheme();
147
- const customButtons = useMemo(() => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline(options), options === null || options === void 0 ? void 0 : options.displayType), [options]);
148
211
  // when props.options is false then we want to hide the whole control bar.
149
212
  if (props.options === false) {
150
213
  return React.createElement(React.Fragment, null);
@@ -153,11 +216,6 @@ export const CallControls = (props) => {
153
216
  const onDismissDialpad = () => {
154
217
  setShowDialpad(false);
155
218
  };
156
- const screenShareButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.screenShareButton);
157
- const microphoneButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.microphoneButton);
158
- const cameraButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.cameraButton);
159
- /* @conditional-compile-remove(raise-hand) */
160
- const raiseHandButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.raiseHandButton);
161
219
  return (React.createElement(Stack, { horizontalAlign: "center", className: callControlsContainerStyles },
162
220
  /* @conditional-compile-remove(PSTN-calls) */
163
221
  React.createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
@@ -165,16 +223,14 @@ export const CallControls = (props) => {
165
223
  React.createElement(ControlBar, { layout: props.displayVertical ? 'vertical' : 'horizontal', styles: controlBarStyles(theme.semanticColors.bodyBackground) },
166
224
  microphoneButtonIsEnabled && (React.createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
167
225
  cameraButtonIsEnabled && (React.createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.cameraButton) })),
168
- /* @conditional-compile-remove(raise-hand) */ raiseHandButtonIsEnabled && !props.isMobile && (React.createElement(RaiseHand, { displayType: options === null || options === void 0 ? void 0 : options.displayType })),
226
+ /* @conditional-compile-remove(raise-hand) */ showRaiseHandButtonInControlBar && (React.createElement(RaiseHand, { displayType: options === null || options === void 0 ? void 0 : options.displayType })),
169
227
  screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
170
- isEnabled(options === null || options === void 0 ? void 0 : options.participantsButton) &&
171
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
172
- !props.isMobile && (React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
228
+ showParticipantsButtonInControlBar && (React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
173
229
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
174
230
  React.createElement(People, { checked: props.peopleButtonChecked, ariaLabel: peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })),
175
- isEnabled(options === null || options === void 0 ? void 0 : options.devicesButton) && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) })),
231
+ showDevicesButtonInControlBar && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) })),
176
232
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */
177
- isEnabled(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonContextualMenuItems().length > 0 && (React.createElement(MoreButton, { "data-ui-id": "common-call-composite-more-button", strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact' })),
233
+ showMoreButton && (React.createElement(MoreButton, { "data-ui-id": "common-call-composite-more-button", strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonMenuItems }, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact' })),
178
234
  customButtons['primary'],
179
235
  isEnabled(options === null || options === void 0 ? void 0 : options.endCallButton) && React.createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
180
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CallControls.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/CallControls.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { memoizeFunction, Stack, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { IContextualMenuItem } from '@fluentui/react';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useState } from 'react';\nimport { _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { ControlBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React, { useMemo } from 'react';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { Camera } from './buttons/Camera';\nimport { generateCustomControlBarButtons, onFetchCustomButtonPropsTrampoline } from './buttons/Custom';\nimport { Devices } from './buttons/Devices';\nimport { EndCall } from './buttons/EndCall';\nimport { Microphone } from './buttons/Microphone';\nimport { Participants } from './buttons/Participants';\nimport { ScreenShare } from './buttons/ScreenShare';\nimport { ContainerRectProps } from '../../common/ContainerRectProps';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { People } from './buttons/People';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { MoreButton } from '../../common/MoreButton';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(raise-hand) */\nimport { usePropsFor } from '../hooks/usePropsFor';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { SendDtmfDialpad } from '../../common/SendDtmfDialpad';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { isDisabled } from '../utils';\nimport { callControlsContainerStyles } from '../styles/CallPage.styles';\nimport { CommonCallAdapter } from '../adapter';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHand } from './buttons/RaiseHand';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\n/**\n * @private\n */\nexport type CallControlsProps = {\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n peopleButtonChecked?: boolean;\n onPeopleButtonClicked?: () => void;\n callInvitationURL?: string;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n options?: boolean | CallControlOptions;\n /**\n * Option to increase the height of the button flyout menu items from 36px to 48px.\n * Recommended for mobile devices.\n */\n increaseFlyoutItemSize?: boolean;\n isMobile?: boolean;\n displayVertical?: boolean;\n};\n\n// Enforce a background color on control bar to ensure it matches the composite background color.\nconst controlBarStyles = memoizeFunction((background: string) => ({ root: { background: background } }));\n\n/**\n * @private\n */\nexport const CallControls = (props: CallControlsProps & ContainerRectProps): JSX.Element => {\n const options = useMemo(() => (typeof props.options === 'boolean' ? {} : props.options), [props.options]);\n /* @conditional-compile-remove(PSTN-calls) */\n const adapter = useAdapter();\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n const localeStrings = useLocale();\n\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n const peopleButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.peopleButtonLabel,\n tooltipOffContent: localeStrings.strings.call.peopleButtonTooltipOpen,\n tooltipOnContent: localeStrings.strings.call.peopleButtonTooltipClose\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n const moreButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const dialpadStrings = useMemo(\n () => ({\n dialpadModalAriaLabel: localeStrings.strings.call.dialpadModalAriaLabel,\n dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel,\n placeholderText: localeStrings.strings.call.dtmfDialpadPlaceholderText\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = useAdapter().getState().alternateCallerId;\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n const moreButtonContextualMenuItems = (): IContextualMenuItem[] => {\n const items: IContextualMenuItem[] = [];\n\n if (props.isMobile && props.onPeopleButtonClicked && isEnabled(options?.participantsButton)) {\n items.push({\n key: 'peopleButtonKey',\n text: localeStrings.component.strings.participantsButton.label,\n onClick: () => {\n if (props.onPeopleButtonClicked) {\n props.onPeopleButtonClicked();\n }\n },\n iconProps: { iconName: 'ControlButtonParticipantsContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.participantsButton),\n ['data-ui-id']: 'call-composite-more-menu-people-button'\n });\n }\n\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n if (!isRoomsCallTrampoline(adapter)) {\n items.push({\n key: 'holdButtonKey',\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onClick: () => {\n holdButtonProps.onToggleHold();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.holdButton),\n ['data-ui-id']: 'hold-button'\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n // dtmf tone sending only works for 1:1 PSTN call\n if (alternateCallerId) {\n items.push({\n key: 'showDialpadKey',\n text: localeStrings.strings.call.openDtmfDialpadLabel,\n onClick: () => {\n setShowDialpad(true);\n },\n iconProps: { iconName: 'PeoplePaneOpenDialpad', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n }\n });\n }\n\n /* @conditional-compile-remove(raise-hand) */\n if (raiseHandButtonIsEnabled) {\n items.push({\n key: 'raiseHandButtonKey',\n text: raiseHandButtonProps.checked\n ? localeStrings.component.strings.raiseHandButton.onLabel\n : localeStrings.component.strings.raiseHandButton.offLabel,\n onClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n },\n iconProps: { iconName: 'RaiseHandContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.raiseHandButton),\n ['data-ui-id']: 'raise-hand-button'\n });\n }\n\n return items;\n };\n\n /* @conditional-compile-remove(PSTN-calls) */\n const [showDialpad, setShowDialpad] = useState(false);\n\n const theme = useTheme();\n\n const customButtons = useMemo(\n () => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline(options), options?.displayType),\n [options]\n );\n\n // when props.options is false then we want to hide the whole control bar.\n if (props.options === false) {\n return <></>;\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onDismissDialpad = (): void => {\n setShowDialpad(false);\n };\n\n const screenShareButtonIsEnabled = isEnabled(options?.screenShareButton);\n\n const microphoneButtonIsEnabled = isEnabled(options?.microphoneButton);\n\n const cameraButtonIsEnabled = isEnabled(options?.cameraButton);\n\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonIsEnabled = isEnabled(options?.raiseHandButton);\n\n return (\n <Stack horizontalAlign=\"center\" className={callControlsContainerStyles}>\n {\n /* @conditional-compile-remove(PSTN-calls) */\n <SendDtmfDialpad\n isMobile={!!props.isMobile}\n strings={dialpadStrings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n />\n }\n <Stack.Item>\n {/*\n Note: We use the layout=\"horizontal\" instead of dockedBottom because of how we position the\n control bar. The control bar exists in a Stack below the MediaGallery. The MediaGallery is\n set to grow and fill the remaining space not taken up by the ControlBar. If we were to use\n dockedBottom it has position absolute and would therefore float on top of the media gallery,\n occluding some of its content.\n */}\n <ControlBar\n layout={props.displayVertical ? 'vertical' : 'horizontal'}\n styles={controlBarStyles(theme.semanticColors.bodyBackground)}\n >\n {microphoneButtonIsEnabled && (\n <Microphone displayType={options?.displayType} disabled={isDisabled(options?.microphoneButton)} />\n )}\n {cameraButtonIsEnabled && (\n <Camera displayType={options?.displayType} disabled={isDisabled(options?.cameraButton)} />\n )}\n {\n /* @conditional-compile-remove(raise-hand) */ raiseHandButtonIsEnabled && !props.isMobile && (\n <RaiseHand displayType={options?.displayType} />\n )\n }\n {screenShareButtonIsEnabled && (\n <ScreenShare\n option={options?.screenShareButton}\n displayType={options?.displayType}\n disabled={isDisabled(options?.screenShareButton)}\n />\n )}\n {isEnabled(options?.participantsButton) &&\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n !props.isMobile && (\n <Participants\n option={options?.participantsButton}\n callInvitationURL={props.callInvitationURL}\n onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n displayType={options?.displayType}\n increaseFlyoutItemSize={props.increaseFlyoutItemSize}\n isMobile={props.isMobile}\n disabled={isDisabled(options?.participantsButton)}\n />\n ) && (\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n <People\n checked={props.peopleButtonChecked}\n ariaLabel={peopleButtonStrings?.label}\n showLabel={options?.displayType !== 'compact'}\n onClick={props.onPeopleButtonClicked}\n data-ui-id=\"call-composite-people-button\"\n strings={peopleButtonStrings}\n disabled={isDisabled(options?.participantsButton)}\n />\n )}\n {isEnabled(options?.devicesButton) && (\n <Devices\n displayType={options?.displayType}\n increaseFlyoutItemSize={props.increaseFlyoutItemSize}\n disabled={isDisabled(options?.devicesButton)}\n />\n )}\n {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n isEnabled(options?.moreButton) && moreButtonContextualMenuItems().length > 0 && (\n <MoreButton\n data-ui-id=\"common-call-composite-more-button\"\n strings={moreButtonStrings}\n menuIconProps={{ hidden: true }}\n menuProps={{ items: moreButtonContextualMenuItems() }}\n showLabel={options?.displayType !== 'compact'}\n />\n )\n }\n {customButtons['primary']}\n {isEnabled(options?.endCallButton) && <EndCall displayType={options?.displayType} />}\n </ControlBar>\n </Stack.Item>\n </Stack>\n );\n};\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n\n/** @private */\nexport const isRoomsCallTrampoline = (adapter: CommonCallAdapter): boolean => {\n /* @conditional-compile-remove(rooms) */\n return adapter.getState().isRoomsCall;\n\n return false;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"CallControls.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/CallControls.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { memoizeFunction, Stack, useTheme } from '@fluentui/react';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { IContextualMenuItem } from '@fluentui/react';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useState } from 'react';\nimport { _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport { ControlBar, DevicesButton, ParticipantMenuItemsCallback } from '@internal/react-components';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React, { useMemo } from 'react';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { Camera } from './buttons/Camera';\nimport { generateCustomControlBarButtons, onFetchCustomButtonPropsTrampoline } from './buttons/Custom';\nimport { Devices } from './buttons/Devices';\nimport { EndCall } from './buttons/EndCall';\nimport { Microphone } from './buttons/Microphone';\nimport { Participants } from './buttons/Participants';\nimport { ScreenShare } from './buttons/ScreenShare';\nimport { ContainerRectProps } from '../../common/ContainerRectProps';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { People } from './buttons/People';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { MoreButton } from '../../common/MoreButton';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(raise-hand) */\nimport { usePropsFor } from '../hooks/usePropsFor';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { SendDtmfDialpad } from '../../common/SendDtmfDialpad';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { isDisabled } from '../utils';\nimport { callControlsContainerStyles } from '../styles/CallPage.styles';\nimport { CommonCallAdapter } from '../adapter';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHand } from './buttons/RaiseHand';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { _generateDefaultDeviceMenuProps } from '@internal/react-components';\n/**\n * @private\n */\nexport type CallControlsProps = {\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n peopleButtonChecked?: boolean;\n onPeopleButtonClicked?: () => void;\n callInvitationURL?: string;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n options?: boolean | CallControlOptions;\n /**\n * Option to increase the height of the button flyout menu items from 36px to 48px.\n * Recommended for mobile devices.\n */\n increaseFlyoutItemSize?: boolean;\n isMobile?: boolean;\n displayVertical?: boolean;\n};\n\n// Enforce a background color on control bar to ensure it matches the composite background color.\nconst controlBarStyles = memoizeFunction((background: string) => ({ root: { background: background } }));\n\n/**\n * @private\n */\nexport const CallControls = (props: CallControlsProps & ContainerRectProps): JSX.Element => {\n const options = useMemo(() => (typeof props.options === 'boolean' ? {} : props.options), [props.options]);\n /* @conditional-compile-remove(PSTN-calls) */\n const adapter = useAdapter();\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n const localeStrings = useLocale();\n\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n const peopleButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.peopleButtonLabel,\n tooltipOffContent: localeStrings.strings.call.peopleButtonTooltipOpen,\n tooltipOnContent: localeStrings.strings.call.peopleButtonTooltipClose\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n const moreButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const dialpadStrings = useMemo(\n () => ({\n dialpadModalAriaLabel: localeStrings.strings.call.dialpadModalAriaLabel,\n dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel,\n placeholderText: localeStrings.strings.call.dtmfDialpadPlaceholderText\n }),\n [localeStrings]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = useAdapter().getState().alternateCallerId;\n\n const devicesButtonProps = usePropsFor(DevicesButton);\n\n let numberOfButtons = 0;\n\n const screenShareButtonIsEnabled = isEnabled(options?.screenShareButton);\n if (screenShareButtonIsEnabled) {\n numberOfButtons++;\n }\n\n const microphoneButtonIsEnabled = isEnabled(options?.microphoneButton);\n if (microphoneButtonIsEnabled) {\n numberOfButtons++;\n }\n\n const cameraButtonIsEnabled = isEnabled(options?.cameraButton);\n if (cameraButtonIsEnabled) {\n numberOfButtons++;\n }\n\n if (isEnabled(options?.endCallButton)) {\n numberOfButtons++;\n }\n\n const showParticipantsButtonInControlBar =\n isEnabled(options?.participantsButton) &&\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n !props.isMobile;\n if (showParticipantsButtonInControlBar) {\n numberOfButtons++;\n }\n\n const moreButtonContextualMenuItems = (): IContextualMenuItem[] => {\n const items: IContextualMenuItem[] = [];\n\n if (props.isMobile && props.onPeopleButtonClicked && isEnabled(options?.participantsButton)) {\n items.push({\n key: 'peopleButtonKey',\n text: localeStrings.component.strings.participantsButton.label,\n onClick: () => {\n if (props.onPeopleButtonClicked) {\n props.onPeopleButtonClicked();\n }\n },\n iconProps: { iconName: 'ControlButtonParticipantsContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.participantsButton),\n ['data-ui-id']: 'call-composite-more-menu-people-button'\n });\n }\n\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n if (!isRoomsCallTrampoline(adapter)) {\n items.push({\n key: 'holdButtonKey',\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onClick: () => {\n holdButtonProps.onToggleHold();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.holdButton),\n ['data-ui-id']: 'hold-button'\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n // dtmf tone sending only works for 1:1 PSTN call\n if (alternateCallerId) {\n items.push({\n key: 'showDialpadKey',\n text: localeStrings.strings.call.openDtmfDialpadLabel,\n onClick: () => {\n setShowDialpad(true);\n },\n iconProps: { iconName: 'PeoplePaneOpenDialpad', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n }\n });\n }\n\n return items;\n };\n\n const moreButtonMenuItems = moreButtonContextualMenuItems();\n let showMoreButton = isEnabled(options?.moreButton) && moreButtonMenuItems.length > 0;\n if (showMoreButton) {\n numberOfButtons++;\n }\n\n const customButtons = useMemo(\n () => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline(options), options?.displayType),\n [options]\n );\n\n numberOfButtons += React.Children.count(customButtons['primary']) + React.Children.count(customButtons['secondary']);\n\n let showDevicesButtonInControlBar = isEnabled(options?.devicesButton);\n if (showDevicesButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {\n numberOfButtons++;\n } else {\n showDevicesButtonInControlBar = false;\n\n showMoreButton = isEnabled(options?.moreButton);\n }\n\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonIsEnabled = isEnabled(options?.raiseHandButton);\n /* @conditional-compile-remove(raise-hand) */\n let showRaiseHandButtonInControlBar = raiseHandButtonIsEnabled;\n /* @conditional-compile-remove(raise-hand) */\n if (showRaiseHandButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {\n numberOfButtons++;\n } else {\n // If more button is not present but enabled then replace previous button (devices button) with more button\n if (!showMoreButton && isEnabled(options?.moreButton)) {\n showMoreButton = true;\n showDevicesButtonInControlBar = false;\n }\n\n showRaiseHandButtonInControlBar = false;\n }\n\n if (!showDevicesButtonInControlBar) {\n const devicesButtonMenu = _generateDefaultDeviceMenuProps(\n devicesButtonProps,\n localeStrings.component.strings.devicesButton\n );\n moreButtonMenuItems.push({\n key: 'devicesButtonKey',\n text: localeStrings.component.strings.devicesButton.label,\n iconProps: { iconName: 'ControlButtonOptions', styles: { root: { lineHeight: 0 } } },\n subMenuProps: devicesButtonMenu,\n ['data-ui-id']: 'call-composite-more-menu-devices-button'\n });\n }\n\n /* @conditional-compile-remove(raise-hand) */\n if (!showRaiseHandButtonInControlBar) {\n moreButtonMenuItems.push({\n key: 'raiseHandButtonKey',\n text: raiseHandButtonProps.checked\n ? localeStrings.component.strings.raiseHandButton.onLabel\n : localeStrings.component.strings.raiseHandButton.offLabel,\n onClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n },\n iconProps: { iconName: 'RaiseHandContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options?.raiseHandButton),\n ['data-ui-id']: 'call-composite-more-menu-raise-hand-button'\n });\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n const [showDialpad, setShowDialpad] = useState(false);\n\n const theme = useTheme();\n\n // when props.options is false then we want to hide the whole control bar.\n if (props.options === false) {\n return <></>;\n }\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onDismissDialpad = (): void => {\n setShowDialpad(false);\n };\n\n return (\n <Stack horizontalAlign=\"center\" className={callControlsContainerStyles}>\n {\n /* @conditional-compile-remove(PSTN-calls) */\n <SendDtmfDialpad\n isMobile={!!props.isMobile}\n strings={dialpadStrings}\n showDialpad={showDialpad}\n onDismissDialpad={onDismissDialpad}\n />\n }\n <Stack.Item>\n {/*\n Note: We use the layout=\"horizontal\" instead of dockedBottom because of how we position the\n control bar. The control bar exists in a Stack below the MediaGallery. The MediaGallery is\n set to grow and fill the remaining space not taken up by the ControlBar. If we were to use\n dockedBottom it has position absolute and would therefore float on top of the media gallery,\n occluding some of its content.\n */}\n <ControlBar\n layout={props.displayVertical ? 'vertical' : 'horizontal'}\n styles={controlBarStyles(theme.semanticColors.bodyBackground)}\n >\n {microphoneButtonIsEnabled && (\n <Microphone displayType={options?.displayType} disabled={isDisabled(options?.microphoneButton)} />\n )}\n {cameraButtonIsEnabled && (\n <Camera displayType={options?.displayType} disabled={isDisabled(options?.cameraButton)} />\n )}\n {\n /* @conditional-compile-remove(raise-hand) */ showRaiseHandButtonInControlBar && (\n <RaiseHand displayType={options?.displayType} />\n )\n }\n {screenShareButtonIsEnabled && (\n <ScreenShare\n option={options?.screenShareButton}\n displayType={options?.displayType}\n disabled={isDisabled(options?.screenShareButton)}\n />\n )}\n {showParticipantsButtonInControlBar && (\n <Participants\n option={options?.participantsButton}\n callInvitationURL={props.callInvitationURL}\n onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n displayType={options?.displayType}\n increaseFlyoutItemSize={props.increaseFlyoutItemSize}\n isMobile={props.isMobile}\n disabled={isDisabled(options?.participantsButton)}\n />\n ) && (\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\n <People\n checked={props.peopleButtonChecked}\n ariaLabel={peopleButtonStrings?.label}\n showLabel={options?.displayType !== 'compact'}\n onClick={props.onPeopleButtonClicked}\n data-ui-id=\"call-composite-people-button\"\n strings={peopleButtonStrings}\n disabled={isDisabled(options?.participantsButton)}\n />\n )}\n {showDevicesButtonInControlBar && (\n <Devices\n displayType={options?.displayType}\n increaseFlyoutItemSize={props.increaseFlyoutItemSize}\n disabled={isDisabled(options?.devicesButton)}\n />\n )}\n {\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\n showMoreButton && (\n <MoreButton\n data-ui-id=\"common-call-composite-more-button\"\n strings={moreButtonStrings}\n menuIconProps={{ hidden: true }}\n menuProps={{ items: moreButtonMenuItems }}\n showLabel={options?.displayType !== 'compact'}\n />\n )\n }\n {customButtons['primary']}\n {isEnabled(options?.endCallButton) && <EndCall displayType={options?.displayType} />}\n </ControlBar>\n </Stack.Item>\n </Stack>\n );\n};\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n\n/** @private */\nexport const isRoomsCallTrampoline = (adapter: CommonCallAdapter): boolean => {\n /* @conditional-compile-remove(rooms) */\n return adapter.getState().isRoomsCall;\n\n return false;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
@@ -21,6 +21,7 @@ import { ChatThreadClient } from '@azure/communication-chat';
21
21
  import { JoinCallOptions } from '../../CallComposite/adapter/CallAdapter';
22
22
  import { AzureCommunicationCallAdapterOptions } from '../../CallComposite/adapter/AzureCommunicationCallAdapter';
23
23
  import { IsCaptionsActiveChangedListener, CaptionsReceivedListener, IsCaptionLanguageChangedListener, IsSpokenLanguageChangedListener } from '../../CallComposite/adapter/CallAdapter';
24
+ import { CapabilitiesChangedListener } from '../../CallComposite/adapter/CallAdapter';
24
25
  import { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';
25
26
  /**
26
27
  * CallWithChat adapter backed by Azure Communication Services.
@@ -153,6 +154,7 @@ export declare class AzureCommunicationCallWithChatAdapter implements CallWithCh
153
154
  on(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;
154
155
  on(event: 'isCaptionLanguageChanged', listener: IsCaptionLanguageChangedListener): void;
155
156
  on(event: 'isSpokenLanguageChanged', listener: IsSpokenLanguageChangedListener): void;
157
+ on(event: 'capabilitiesChanged', listener: CapabilitiesChangedListener): void;
156
158
  off(event: 'callParticipantsJoined', listener: ParticipantsJoinedListener): void;
157
159
  off(event: 'callParticipantsLeft', listener: ParticipantsLeftListener): void;
158
160
  off(event: 'callEnded', listener: CallEndedListener): void;
@@ -174,6 +176,7 @@ export declare class AzureCommunicationCallWithChatAdapter implements CallWithCh
174
176
  off(event: 'isCaptionsActiveChanged', listener: IsCaptionsActiveChangedListener): void;
175
177
  off(event: 'isCaptionLanguageChanged', listener: IsCaptionLanguageChangedListener): void;
176
178
  off(event: 'isSpokenLanguageChanged', listener: IsSpokenLanguageChangedListener): void;
179
+ off(event: 'capabilitiesChanged', listener: CapabilitiesChangedListener): void;
177
180
  }
178
181
  /**
179
182
  * Arguments for use in {@link createAzureCommunicationCallWithChatAdapter} to join a Call with an associated Chat thread.