{"version":3,"file":"static/js/2718_4f6db21ddeae30ff7959.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsBanner.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsSettingsModal.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ControlBar/DtmfDialerButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ExitSpotlightButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/MoreButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/StarSurvey.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/Survey.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/TabHeader.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/icons.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/constants.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/common/utils.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useContext, createContext, useState, useEffect } from 'react';\n/**\n *\n * @param props\n * @returns\n */\nexport const ACSAudioProvider = (props) => {\n const { audioContext, children } = props;\n const [stateAudioContext, setStateAudioContext] = useState(undefined);\n useEffect(() => {\n // Create the AudioContext only when the component is rendered\n setStateAudioContext(audioContext);\n }, [audioContext]);\n const alreadyWrapped = useAudio();\n if (alreadyWrapped) {\n return React.createElement(React.Fragment, null, children);\n }\n return React.createElement(ACSAudioContext.Provider, { value: stateAudioContext }, props.children);\n};\n/**\n * @private\n */\nconst ACSAudioContext = createContext(undefined);\n/**\n * @private\n */\nexport const useAudio = () => useContext(ACSAudioContext);\n//# sourceMappingURL=AudioProvider.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Persona } from '@fluentui/react';\nimport React, { useEffect, useState } from 'react';\nimport { mergeStyles } from '@fluentui/react';\n/**\n * An Avatar component made using the `Persona` component.\n * It allows you to specify a `userId` and a `dataProvider` to retrieve the `AvatarPersonaData`.\n * Read more about `Persona` component at https://developer.microsoft.com/fluentui#/controls/web/persona\n *\n * @private\n */\nexport const AvatarPersona = (props) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;\n const [data, setData] = useState();\n useEffect(() => {\n (() => __awaiter(void 0, void 0, void 0, function* () {\n if (dataProvider && userId) {\n const newData = yield dataProvider(userId);\n if (avatarDeepDifferenceCheck(data, newData)) {\n setData(newData);\n }\n }\n }))();\n }, [data, dataProvider, userId]);\n let activePersona = '';\n if (props.allowActiveBorder) {\n // Display a border for raised handed participants in participant list\n activePersona = mergeStyles({\n border: 'solid 2px',\n borderColor: 'transparent',\n borderRadius: '50%',\n padding: '2px',\n boxSizing: 'content-box',\n margin: '-4px'\n });\n mergeStyles(activePersona, props.styles);\n }\n return React.createElement(Persona, Object.assign({}, props, { className: activePersona, text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white', \n // default disable tooltip unless specified\n showOverflowTooltip: showOverflowTooltip !== null && showOverflowTooltip !== void 0 ? showOverflowTooltip : false, showUnknownPersonaCoin: (_h = (_g = data === null || data === void 0 ? void 0 : data.showUnknownPersonaCoin) !== null && _g !== void 0 ? _g : props.showUnknownPersonaCoin) !== null && _h !== void 0 ? _h : false }));\n};\nconst avatarDeepDifferenceCheck = (currentData, newData) => {\n return (currentData === null || currentData === void 0 ? void 0 : currentData.text) !== (newData === null || newData === void 0 ? void 0 : newData.text) || (currentData === null || currentData === void 0 ? void 0 : currentData.imageUrl) !== (newData === null || newData === void 0 ? void 0 : newData.imageUrl) || (currentData === null || currentData === void 0 ? void 0 : currentData.initialsColor) !== (newData === null || newData === void 0 ? void 0 : newData.initialsColor) || (currentData === null || currentData === void 0 ? void 0 : currentData.imageInitials) !== (newData === null || newData === void 0 ? void 0 : newData.imageInitials) || (currentData === null || currentData === void 0 ? void 0 : currentData.initialsTextColor) !== (newData === null || newData === void 0 ? void 0 : newData.initialsTextColor);\n};\n//# sourceMappingURL=AvatarPersona.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const globalLayerHostStyle = {\n position: 'fixed',\n zIndex: 1000000,\n inset: '0px',\n visibility: 'hidden'\n};\n//# sourceMappingURL=GlobalHostLayer.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Customizer, LayerHost, mergeStyles, registerIcons, Stack, useTheme } from '@fluentui/react';\nimport { FluentThemeProvider } from \"../../../../react-components/src\";\nimport React, { createContext, useContext } from 'react';\nimport { LocalizationProvider } from '../localization';\nimport { DEFAULT_COMPOSITE_ICONS } from './icons';\nimport { globalLayerHostStyle } from './styles/GlobalHostLayer.styles';\nimport { useId } from '@fluentui/react-hooks';\nimport { ACSAudioProvider } from './AudioProvider';\n/**\n * A base provider {@link React.Context} to wrap components with other required providers\n * (e.g. icons, FluentThemeProvider, LocalizationProvider).\n *\n * Required providers are only wrapped once, with all other instances only passing children.\n *\n * @private\n */\nexport const BaseProvider = (props) => {\n const { fluentTheme, rtl, locale } = props;\n const globalLayerHostId = useId('composite-global-hostId');\n /**\n * Pass only the children if we previously registered icons, and have previously wrapped the children in\n * FluentThemeProvider and LocalizationProvider\n */\n const alreadyWrapped = useBase();\n if (alreadyWrapped) {\n return React.createElement(React.Fragment, null, props.children);\n }\n /**\n * Before registering fluent icons, we should check DEFAULT_COMPOSITE_ICONS and strip out the key value pairs where value is undefined\n */\n const iconsToRegister = {};\n Object.entries(DEFAULT_COMPOSITE_ICONS).forEach(([key, value]) => {\n if (value) {\n iconsToRegister[key] = value;\n }\n });\n /**\n * We register the default icon mappings merged with custom icons provided through props\n * to ensure all icons render correctly.\n */\n registerIcons({\n icons: Object.assign(Object.assign({}, iconsToRegister), props.icons)\n });\n /**\n * We need to create one context for the AudioProvider to ensure that we only have one instance of the AudioContext.\n */\n const compositeAudioContext = new AudioContext();\n // we use Customizer to override default LayerHost injected to \n // which stop polluting global dom tree and increase compatibility with react-full-screen\n const CompositeElement = React.createElement(FluentThemeProvider, { fluentTheme: fluentTheme, rtl: rtl },\n // On mobile we expect the composite to fill the device screen, hence we set a meta property to have better OOBE.\n props.formFactor === 'mobile' && React.createElement(\"meta\", { name: \"viewport\", content: \"width=device-width\" }),\n React.createElement(Customizer, { scopedSettings: {\n Layer: {\n hostId: globalLayerHostId\n }\n } },\n React.createElement(ACSAudioProvider, { audioContext: compositeAudioContext },\n React.createElement(WithBackgroundColor, null, props.children))),\n React.createElement(LayerHost, { id: globalLayerHostId, className: mergeStyles(globalLayerHostStyle) }));\n const localizedElement = locale ? LocalizationProvider({\n locale,\n children: CompositeElement\n }) : CompositeElement;\n return React.createElement(BaseContext.Provider, { value: true }, localizedElement);\n};\n/**\n * @private\n */\nconst BaseContext = createContext(false);\n/**\n * @private\n */\nconst useBase = () => useContext(BaseContext);\n/**\n * @private\n * Provides a wrapper with a background color to ensure that composites always have a background color.\n * This is necessary to ensure that composites are not transparent,\n * and the background color of it's parent elements doesn't show through the composite.\n */\nconst WithBackgroundColor = (props) => {\n const { children } = props;\n const theme = useTheme();\n const className = mergeStyles({\n background: theme.semanticColors.bodyBackground,\n height: '100%',\n width: '100%',\n position: 'relative'\n });\n return React.createElement(Stack, { className: className }, children);\n};\n//# sourceMappingURL=BaseComposite.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React from 'react';\nimport { useCallback } from 'react';\nimport { StartCaptionsButton } from \"../../../../react-components/src\";\nimport { useMemo } from 'react';\nimport { buttonFlyoutIncreasedSizeStyles } from '../CallComposite/styles/Buttons.styles';\nimport { useLocale } from '../localization';\nimport { MoreButton } from './MoreButton';\nimport { _preventDismissOnEvent } from \"../../../../acs-ui-common/src\";\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\n/**\n *\n * @private\n */\nexport const CaptionsBannerMoreButton = (props) => {\n const localeStrings = useLocale();\n const startCaptionsButtonProps = usePropsFor(StartCaptionsButton);\n const moreButtonStrings = useMemo(() => ({\n label: localeStrings.strings.call.captionsBannerMoreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.call.captionsBannerMoreButtonTooltip\n }), [localeStrings]);\n const moreButtonContextualMenuItems = [];\n const startCaptions = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n yield startCaptionsButtonProps.onStartCaptions({\n spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n });\n }), [startCaptionsButtonProps]);\n const stopCaptions = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n yield startCaptionsButtonProps.onStopCaptions();\n (_b = (_a = props.returnFocusRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.focus();\n }), [startCaptionsButtonProps, props.returnFocusRef]);\n moreButtonContextualMenuItems.push({\n key: 'ToggleCaptionsKey',\n text: startCaptionsButtonProps.checked ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n onClick: () => {\n startCaptionsButtonProps.checked ? stopCaptions() : startCaptionsButtonProps.currentSpokenLanguage !== '' ? startCaptions() : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n },\n iconProps: {\n iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n }\n });\n if (props.onCaptionsSettingsClick) {\n moreButtonContextualMenuItems.push({\n key: 'openCaptionsSettingsKey',\n id: 'common-call-composite-captions-settings-button',\n text: localeStrings.strings.call.captionsSettingsLabel,\n onClick: props.onCaptionsSettingsClick,\n iconProps: {\n iconName: 'CaptionsSettingsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: !startCaptionsButtonProps.checked\n });\n }\n return React.createElement(MoreButton, Object.assign({}, props, { \"data-ui-id\": \"captions-banner-more-button\", strings: moreButtonStrings, menuIconProps: {\n hidden: true\n }, menuProps: {\n items: moreButtonContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n } }));\n};\n//# sourceMappingURL=CaptionsBannerMoreButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { useState, useEffect, useCallback } from 'react';\nimport { CaptionsBanner } from \"../../../../react-components/src\";\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { CallingCaptionsSettingsModal } from './CallingCaptionsSettingsModal';\nimport { CaptionsBannerMoreButton } from './CaptionsBannerMoreButton';\nimport { useLocale } from '../localization';\nimport { AvatarPersona } from './AvatarPersona';\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\nconst mobileViewBannerWidth = '90%';\n/** @private */\nexport const CallingCaptionsBanner = (props) => {\n var _a;\n const captionsBannerProps = usePropsFor(CaptionsBanner);\n const [isCaptionsSettingsOpen, setIsCaptionsSettingsOpen] = useState(false);\n const onClickCaptionsSettings = () => {\n setIsCaptionsSettingsOpen(true);\n };\n const onDismissCaptionsSettings = () => {\n setIsCaptionsSettingsOpen(false);\n };\n const containerClassName = mergeStyles(((_a = props.captionsOptions) === null || _a === void 0 ? void 0 : _a.height) === 'full' ? mergeStyles({\n position: 'absolute',\n height: '100%',\n width: '100%'\n }) : {\n position: 'relative'\n });\n const floatingChildClassName = mergeStyles({\n position: 'absolute',\n right: 0,\n top: 0\n });\n const strings = useLocale().strings.call;\n const captionsBannerStrings = {\n captionsBannerSpinnerText: strings.captionsBannerSpinnerText\n };\n const onRenderAvatar = useCallback((userId, options) => {\n return React.createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }));\n }, [props.onFetchAvatarPersonaData]);\n const { innerWidth: width } = window;\n const [windowWidth, setWindowWidth] = useState(width);\n useEffect(() => {\n function handleResize() {\n setWindowWidth(window.innerWidth);\n }\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n const desktopViewBannerWidth = windowWidth > 620 ? '35rem' : '80%';\n return React.createElement(React.Fragment, null,\n isCaptionsSettingsOpen && React.createElement(CallingCaptionsSettingsModal, { showCaptionsSettingsModal: isCaptionsSettingsOpen, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.useTeamsCaptions }),\n React.createElement(\"div\", { className: containerClassName },\n React.createElement(Stack, { horizontalAlign: \"center\" },\n React.createElement(Stack.Item, { style: {\n width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth\n } },\n React.createElement(CaptionsBanner, Object.assign({ captionsOptions: props.captionsOptions, onRenderAvatar: onRenderAvatar, formFactor: props.isMobile ? 'compact' : 'default', strings: captionsBannerStrings }, captionsBannerProps)))),\n !props.isMobile && captionsBannerProps.isCaptionsOn && React.createElement(\"div\", { className: floatingChildClassName },\n React.createElement(CaptionsBannerMoreButton, { onCaptionsSettingsClick: onClickCaptionsSettings, returnFocusRef: props.returnFocusRef }))));\n};\n//# sourceMappingURL=CallingCaptionsBanner.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { CaptionsSettingsModal } from \"../../../../react-components/src\";\nimport { useLocale } from '../localization';\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\n/** @private */\nexport const CallingCaptionsSettingsModal = (props) => {\n const CaptionsSettingsModalProps = usePropsFor(CaptionsSettingsModal);\n const strings = useLocale().strings.call;\n const modalStrings = {\n captionsSettingsModalTitle: strings.captionsSettingsModalTitle,\n captionsSettingsSpokenLanguageDropdownLabel: strings.captionsSettingsSpokenLanguageDropdownLabel,\n captionsSettingsCaptionLanguageDropdownLabel: strings.captionsSettingsCaptionLanguageDropdownLabel,\n captionsSettingsSpokenLanguageDropdownInfoText: strings.captionsSettingsSpokenLanguageDropdownInfoText,\n captionsSettingsCaptionLanguageDropdownInfoText: strings.captionsSettingsCaptionLanguageDropdownInfoText,\n captionsSettingsConfirmButtonLabel: strings.captionsSettingsConfirmButtonLabel,\n captionsSettingsCancelButtonLabel: strings.captionsSettingsCancelButtonLabel,\n captionsSettingsModalAriaLabel: strings.captionsSettingsModalAriaLabel,\n captionsSettingsCloseModalButtonAriaLabel: strings.captionsSettingsCloseModalButtonAriaLabel\n };\n const spokenLanguageStrings = strings.spokenLanguageStrings;\n const captionLanguageStrings = strings.captionLanguageStrings;\n return React.createElement(CaptionsSettingsModal, Object.assign({}, CaptionsSettingsModalProps, { strings: modalStrings, spokenLanguageStrings: spokenLanguageStrings, captionLanguageStrings: captionLanguageStrings, showModal: props.showCaptionsSettingsModal, onDismissCaptionsSettings: props.onDismissCaptionsSettings, changeCaptionLanguage: props.changeCaptionLanguage }));\n};\n//# sourceMappingURL=CallingCaptionsSettingsModal.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/** @private */\nexport const containerDivStyles = {\n position: 'relative',\n width: '100%',\n height: '100%'\n};\n//# sourceMappingURL=ContainerRectProps.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useMemo } from 'react';\nimport { ControlBarButton, useTheme } from \"../../../../../react-components/src\";\nimport { concatStyleSets } from '@fluentui/react';\nimport { CallCompositeIcon } from '../icons';\nconst icon = () => React.createElement(CallCompositeIcon, { iconName: 'ControlBarPeopleButton' });\n/**\n * @private\n */\nexport const PeopleButton = (props) => {\n const { strings, onRenderOnIcon, onRenderOffIcon, onClick } = props;\n const theme = useTheme();\n const styles = useMemo(() => {\n var _a;\n return concatStyleSets({\n rootChecked: {\n background: theme.palette.neutralLight\n }\n }, (_a = props.styles) !== null && _a !== void 0 ? _a : {});\n }, [props.styles, theme.palette.neutralLight]);\n return React.createElement(ControlBarButton, Object.assign({}, props, { strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon, onClick: onClick, styles: styles }));\n};\n//# sourceMappingURL=PeopleButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { HoldButton } from \"../../../../../react-components/src\";\nimport { StartCaptionsButton } from \"../../../../../react-components/src\";\nimport React from 'react';\nimport { useState } from 'react';\nimport { useMemo, useCallback } from 'react';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { buttonFlyoutIncreasedSizeStyles } from '../../CallComposite/styles/Buttons.styles';\nimport { MoreButton } from '../MoreButton';\nimport { useLocale } from '../../localization';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallDesktopOverflowButtons, onFetchCustomButtonPropsTrampoline } from './CustomButton';\nimport { _preventDismissOnEvent } from \"../../../../../acs-ui-common/src\";\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\n/**\n *\n * @private\n */\nexport const DesktopMoreButton = (props) => {\n var _a, _b, _c, _d, _e;\n const localeStrings = useLocale();\n const holdButtonProps = usePropsFor(HoldButton);\n const startCaptionsButtonProps = usePropsFor(StartCaptionsButton);\n const startCaptions = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n yield startCaptionsButtonProps.onStartCaptions({\n spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n });\n }), [startCaptionsButtonProps]);\n const [focusedContentOn, setFocusedContentOn] = useState(false);\n const [previousLayout, setPreviousLayout] = useState((_a = props.userSetGalleryLayout) !== null && _a !== void 0 ? _a : 'floatingLocalVideo');\n const callees = useSelector(getTargetCallees);\n const allowDtmfDialer = showDtmfDialer(callees);\n const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n const teamsMeetingCoordinates = useSelector(getTeamsMeetingCoordinates);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState((_b = props.dtmfDialerPresent) !== null && _b !== void 0 ? _b : false);\n const moreButtonStrings = useMemo(() => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }), [localeStrings]);\n const moreButtonContextualMenuItems = [];\n const menuSubIconStyleSet = {\n root: {\n height: 'unset',\n lineHeight: '100%',\n width: '1.25rem'\n }\n };\n if (props.callControls === true || ((_c = props.callControls) === null || _c === void 0 ? void 0 : _c.holdButton) !== false) {\n moreButtonContextualMenuItems.push({\n key: 'holdButtonKey',\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onClick: () => {\n holdButtonProps.onToggleHold();\n },\n iconProps: {\n iconName: 'HoldCallContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n }\n // is captions feature is active\n if (props.isCaptionsSupported) {\n const captionsContextualMenuItems = [];\n moreButtonContextualMenuItems.push({\n key: 'liveCaptionsKey',\n id: 'common-call-composite-captions-button',\n text: localeStrings.strings.call.liveCaptionsLabel,\n iconProps: {\n iconName: 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen,\n subMenuProps: {\n id: 'captions-contextual-menu',\n items: captionsContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n },\n submenuIconProps: {\n iconName: 'HorizontalGalleryRightButton',\n styles: menuSubIconStyleSet\n }\n });\n captionsContextualMenuItems.push({\n key: 'ToggleCaptionsKey',\n id: 'common-call-composite-captions-toggle-button',\n text: startCaptionsButtonProps.checked ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n onClick: () => {\n startCaptionsButtonProps.checked ? startCaptionsButtonProps.onStopCaptions() : startCaptionsButtonProps.currentSpokenLanguage !== '' ? startCaptions() : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n },\n iconProps: {\n iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n if (props.onCaptionsSettingsClick) {\n captionsContextualMenuItems.push({\n key: 'openCaptionsSettingsKey',\n id: 'common-call-composite-captions-settings-button',\n text: localeStrings.strings.call.captionsSettingsLabel,\n onClick: props.onCaptionsSettingsClick,\n iconProps: {\n iconName: 'CaptionsSettingsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked\n });\n }\n }\n const dtmfDialerScreenOption = {\n key: 'dtmfDialerScreenKey',\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n text: !dtmfDialerChecked ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n onClick: () => {\n props.onSetDialpadPage && props.onSetDialpadPage();\n setDtmfDialerChecked(!dtmfDialerChecked);\n },\n iconProps: {\n iconName: 'DtmfDialpadButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer) {\n if (props.callControls === true || ((_d = props.callControls) === null || _d === void 0 ? void 0 : _d.dtmfDialerButton) !== false) {\n moreButtonContextualMenuItems.push(dtmfDialerScreenOption);\n }\n }\n const joinByPhoneOption = {\n key: 'phoneCallKey',\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n onClick: () => {\n props.onMeetingPhoneInfoClick && props.onMeetingPhoneInfoClick();\n },\n iconProps: {\n iconName: 'PhoneNumberButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n };\n /**\n * Only render the phone call button if meeting conordinates are present\n */\n if (props.teamsMeetingPhoneCallEnable && isTeamsMeeting && teamsMeetingCoordinates) {\n moreButtonContextualMenuItems.push(joinByPhoneOption);\n }\n if (props.onUserSetOverflowGalleryPositionChange) {\n const galleryOptions = {\n key: 'overflowGalleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n submenuIconProps: {\n styles: menuSubIconStyleSet\n },\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n disabled: props.disableButtonsForHoldScreen,\n subMenuProps: {\n items: [{\n key: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n }, {\n key: 'speakerSelectionKey',\n text: localeStrings.strings.call.moreButtonGallerySpeakerLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'speaker',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'SpeakerGalleryLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n }, {\n key: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: focusedContentOn,\n onClick: () => {\n var _a;\n if (focusedContentOn === false) {\n setPreviousLayout((_a = props.userSetGalleryLayout) !== null && _a !== void 0 ? _a : 'floatingLocalVideo');\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n setFocusedContentOn(true);\n }\n else {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);\n setFocusedContentOn(false);\n }\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n }],\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n }\n };\n if (props.callControls === true || ((_e = props.callControls) === null || _e === void 0 ? void 0 : _e.galleryControlsButton) !== false) {\n moreButtonContextualMenuItems.push(galleryOptions);\n }\n }\n const customDrawerButtons = useMemo(() => generateCustomCallDesktopOverflowButtons(onFetchCustomButtonPropsTrampoline(typeof props.callControls === 'object' ? props.callControls : undefined), typeof props.callControls === 'object' ? props.callControls.displayType : undefined), [props.callControls]);\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach(element => {\n moreButtonContextualMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n customDrawerButtons['secondary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).forEach(element => {\n moreButtonContextualMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n customDrawerButtons['overflow'].forEach(element => {\n moreButtonContextualMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n return React.createElement(MoreButton, Object.assign({}, props, { \"data-ui-id\": \"common-call-composite-more-button\", strings: moreButtonStrings, menuIconProps: {\n hidden: true\n }, menuProps: {\n shouldFocusOnContainer: false,\n items: moreButtonContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n } }));\n};\n//# sourceMappingURL=DesktopMoreButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DefaultButton } from '@fluentui/react';\nimport React from 'react';\nimport { useEffect, useState } from 'react';\n/**\n * @private\n * hidden button to set first tab keypress focus on a specific grouping.\n * On mount, button is autofocused then immediately hidden\n */\nexport const HiddenFocusStartPoint = () => {\n const [isMounted, setIsMounted] = useState(false);\n // ariaHidden is used to hide the button from screen readers,\n // we want to only focus it for once then never again\n const [isUnfocused, setIsUnfocused] = useState(false);\n useEffect(() => {\n setIsMounted(true);\n }, []);\n return React.createElement(DefaultButton, { autoFocus: true, onBlur: () => setIsUnfocused(true), ariaHidden: isUnfocused, styles: isMounted ? invisibleHiddenFocusStartPoint : hiddenFocusStartPointStyles, tabIndex: -1 });\n};\n/** @private */\nconst hiddenFocusStartPointStyles = {\n root: {\n width: '0',\n height: '0',\n margin: '0',\n minHeight: '0',\n minWidth: '0',\n maxHeight: '0',\n maxWidth: '0',\n opacity: '0',\n outline: 'none',\n padding: '0',\n position: 'absolute'\n }\n};\n/** @private */\nconst invisibleHiddenFocusStartPoint = {\n root: {\n display: 'none'\n }\n};\n//# sourceMappingURL=HiddenFocusStartPoint.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useMemo } from 'react';\nimport { CallCompositeIcon } from '../icons';\nimport { ControlBarButton } from \"../../../../../react-components/src\";\nimport { concatStyleSets, useTheme } from '@fluentui/react';\nimport { useLocale } from '../../localization';\nconst icon = () => React.createElement(CallCompositeIcon, { iconName: 'DtmfDialpadButton' });\n/**\n * Button for showing and hiding the dtmf dialer in the Call composite.\n * To be used only if the more button control is disabled. This button will replace\n * it in the control bar unless it is also disabled.\n * @private\n */\nexport const DtmfDialpadButton = (props) => {\n const { strings, onRenderOnIcon, onRenderOffIcon, onClick, displayType } = props;\n const theme = useTheme();\n const locale = useLocale();\n const dialpadButtonStrings = {\n label: locale.strings.call.dtmfDialerButtonLabel,\n tooltipOnContent: locale.strings.call.dtmfDialerButtonTooltipOn,\n tooltipOffContent: locale.strings.call.dtmfDialerButtonTooltipOff\n };\n const styles = useMemo(() => {\n var _a;\n return concatStyleSets({\n rootChecked: {\n background: theme.palette.neutralLight\n }\n }, (_a = props.styles) !== null && _a !== void 0 ? _a : {});\n }, [props.styles, theme.palette.neutralLight]);\n return React.createElement(ControlBarButton, Object.assign({}, props, { strings: strings ? strings : dialpadButtonStrings, showLabel: displayType !== 'compact', labelKey: 'dtmfDialpadButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon, onClick: onClick, styles: styles }));\n};\n//# sourceMappingURL=DtmfDialerButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { ControlBarButton } from \"../../../../react-components/src\";\nimport { _HighContrastAwareIcon } from \"../../../../react-components/src\";\n/**\n * @private\n */\nexport const ExitSpotlightButton = (props) => {\n return React.createElement(ControlBarButton, Object.assign({ \"data-ui-id\": 'call-composite-exit-spotlight-button', labelKey: 'exitSpotlightButtonLabelKey', showLabel: props.displayType !== 'compact', onRenderIcon: () => React.createElement(_HighContrastAwareIcon, { iconName: 'ControlButtonExitSpotlight' }), onClick: props.onClick }, props));\n};\n//# sourceMappingURL=ExitSpotlightButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React, { useMemo, useRef, useEffect, useState, useCallback, useImperativeHandle, forwardRef } from 'react';\nimport { CallAdapterProvider } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { PeopleButton } from './PeopleButton';\nimport { concatStyleSets, mergeStyles, mergeStyleSets, Stack, useTheme } from '@fluentui/react';\nimport { controlBarContainerStyles } from '../../CallComposite/styles/CallControls.styles';\nimport { callControlsContainerStyles } from '../../CallComposite/styles/CallPage.styles';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { ControlBar } from \"../../../../../react-components/src\";\nimport { Microphone } from '../../CallComposite/components/buttons/Microphone';\nimport { Camera } from '../../CallComposite/components/buttons/Camera';\nimport { ScreenShare } from '../../CallComposite/components/buttons/ScreenShare';\nimport { EndCall } from '../../CallComposite/components/buttons/EndCall';\nimport { MoreButton } from '../MoreButton';\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallControlBarButton, onFetchCustomButtonPropsTrampoline } from './CustomButton';\nimport { DesktopMoreButton } from './DesktopMoreButton';\nimport { isDisabled, _isSafari } from '../../CallComposite/utils';\nimport { HiddenFocusStartPoint } from '../HiddenFocusStartPoint';\nimport { CallingCaptionsSettingsModal } from '../CallingCaptionsSettingsModal';\nimport { RaiseHand } from '../../CallComposite/components/buttons/RaiseHand';\nimport { Reaction } from '../../CallComposite/components/buttons/Reaction';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { capabilitySelector } from '../../CallComposite/selectors/capabilitySelector';\nimport { DtmfDialpadButton } from './DtmfDialerButton';\nimport { ExitSpotlightButton } from '../ExitSpotlightButton';\nimport { useLocale } from '../../localization';\nimport { isBoolean } from '../utils';\nimport { getEnvironmentInfo } from '../../CallComposite/selectors/baseSelectors';\nimport { getIsTeamsCall } from '../../CallComposite/selectors/baseSelectors';\nimport { callStatusSelector } from '../../CallComposite/selectors/callStatusSelector';\nimport { MeetingConferencePhoneInfoModal } from \"../../../../../react-components/src\";\nconst inferCommonCallControlOptions = (mobileView, commonCallControlOptions) => {\n if (commonCallControlOptions === false) {\n return false;\n }\n const options = commonCallControlOptions === true || commonCallControlOptions === undefined ? {} : commonCallControlOptions;\n if (mobileView) {\n // Set to compressed mode when composite is optimized for mobile\n options.displayType = 'compact';\n // Set options to always not show screen share button for mobile\n options.screenShareButton = false;\n }\n return options;\n};\n/**\n * @private\n */\nexport const CommonCallControlBar = forwardRef((props, commonCallControlBarRef) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n const theme = useTheme();\n const rtl = theme.rtl;\n // Create an imperatively callable focus function to allow the parent component to focus the control bar any time.\n const [hiddenFocusStartElementKey, setHiddenFocusStartElementKey] = useState(0);\n useImperativeHandle(commonCallControlBarRef, () => ({\n focus: () => {\n // To move focus to the hidden element, we increment the key to force a re-mount of the HiddenFocusStartPoint component\n // which relies on focusOnMount to move focus to the next interact-able element.\n setHiddenFocusStartElementKey(prevKey => prevKey + 1);\n }\n }));\n const controlBarContainerRef = useRef(null);\n const sidepaneControlsRef = useRef(null);\n const controlBarSizeRef = useRef(null);\n const [controlBarButtonsWidth, setControlBarButtonsWidth] = useState(0);\n const [panelsButtonsWidth, setPanelsButtonsWidth] = useState(0);\n const [controlBarContainerWidth, setControlBarContainerWidth] = useState(0);\n const [totalButtonsWidth, setTotalButtonsWidth] = useState(0);\n const [isOutOfSpace, setIsOutOfSpace] = useState(false);\n const callWithChatStrings = useCallWithChatCompositeStrings();\n const options = inferCommonCallControlOptions(props.mobileView, props.callControls);\n const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = useState(false);\n // If the hangup capability is not present, we default to true\n const isHangUpForEveryoneAllowed = (_a = useSelector(state => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.hangUpForEveryOne.isPresent; })) !== null && _a !== void 0 ? _a : true;\n const isTeams = useSelector(getIsTeamsCall);\n const handleResize = useCallback(() => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n // on load set inital width\n useEffect(() => {\n setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);\n setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);\n setControlBarContainerWidth(controlBarSizeRef.current ? controlBarSizeRef.current.offsetWidth : 0);\n }, []);\n // get the current width of control bar buttons and panel control buttons when browser size change\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n /* when size change, reset total buttons width and compare with the control bar container width\n if the total width of those buttons exceed container width, do not center the control bar buttons based on parent container width\n Instead let them take up the remaining white space on the left */\n useEffect(() => {\n // white space on the left when control bar buttons are centered based on container width + control bar buttons width + panel control buttons width\n setTotalButtonsWidth((controlBarContainerWidth - controlBarButtonsWidth) / 2 + controlBarButtonsWidth + panelsButtonsWidth);\n }, [controlBarButtonsWidth, panelsButtonsWidth, controlBarContainerWidth]);\n useEffect(() => {\n setIsOutOfSpace(totalButtonsWidth > controlBarContainerWidth);\n }, [totalButtonsWidth, controlBarContainerWidth]);\n const openCaptionsSettingsModal = useCallback(() => {\n setShowCaptionsSettingsModal(true);\n }, []);\n const onDismissCaptionsSettings = useCallback(() => {\n setShowCaptionsSettingsModal(false);\n }, []);\n const peopleButtonStrings = useMemo(() => ({\n label: callWithChatStrings.peopleButtonLabel,\n selectedLabel: callWithChatStrings.selectedPeopleButtonLabel,\n tooltipOpenAriaLabel: callWithChatStrings.peopleButtonTooltipOpenAriaLabel,\n tooltipCloseAriaLabel: callWithChatStrings.peopleButtonTooltipCloseAriaLabel,\n tooltipOffContent: callWithChatStrings.peopleButtonTooltipOpen,\n tooltipOnContent: callWithChatStrings.peopleButtonTooltipClose\n }), [callWithChatStrings]);\n const moreButtonStrings = useMemo(() => ({\n label: callWithChatStrings.moreDrawerButtonLabel,\n tooltipContent: callWithChatStrings.moreDrawerButtonTooltip\n }), [callWithChatStrings]);\n const callStrings = useLocale().strings.call;\n const exitSpotlightButtonStrings = useMemo(() => ({\n label: callStrings.exitSpotlightButtonLabel,\n tooltipContent: callStrings.exitSpotlightButtonTooltip\n }), [callStrings]);\n const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = useState(false);\n const startDeepNoiseSuppression = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n yield props.callAdapter.startNoiseSuppressionEffect();\n }), [props.callAdapter]);\n const environmentInfo = useSelector(getEnvironmentInfo);\n const isSafari = _isSafari(environmentInfo);\n useEffect(() => {\n if (props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && props.callAdapter.getState().deepNoiseSuppressionOnByDefault) {\n startDeepNoiseSuppression();\n setDeepNoiseSuppressionOn(true);\n }\n }, [props.callAdapter, startDeepNoiseSuppression]);\n const showNoiseSuppressionButton = props.callAdapter.getState().onResolveDeepNoiseSuppressionDependency && !props.callAdapter.getState().hideDeepNoiseSuppressionButton && !isSafari ? true : false;\n const onClickNoiseSuppression = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n if (isDeepNoiseSuppressionOn) {\n yield props.callAdapter.stopNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(false);\n }\n else {\n yield props.callAdapter.startNoiseSuppressionEffect();\n setDeepNoiseSuppressionOn(true);\n }\n }), [props.callAdapter, isDeepNoiseSuppressionOn]);\n const centerContainerStyles = useMemo(() => {\n const styles = !props.mobileView ? desktopControlBarStyles : {};\n return mergeStyleSets(styles, {\n root: {\n // Enforce a background color on control bar to ensure it matches the composite background color.\n background: theme.semanticColors.bodyBackground\n }\n });\n }, [props.mobileView, theme.semanticColors.bodyBackground]);\n const screenShareButtonStyles = useMemo(() => !props.mobileView ? getDesktopScreenShareButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const commonButtonStyles = useMemo(() => !props.mobileView ? getDesktopCommonButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const endCallButtonStyles = useMemo(() => !props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined, [props.mobileView, theme]);\n const controlBarWrapperDesktopStyles = useMemo(\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n () => !props.mobileView && !isOutOfSpace ? rtl ? wrapperDesktopRtlStyles : wrapperDesktopStyles : {}, [props.mobileView, rtl, isOutOfSpace]);\n // only center control bar buttons based on parent container if there are enough space on the screen and not mobile\n const controlBarDesktopContainerStyles = useMemo(() => !props.mobileView && !isOutOfSpace ? {\n position: 'relative',\n minHeight: '4.5rem',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n paddingLeft: '1rem'\n } : {}, [props.mobileView, isOutOfSpace]);\n const customButtons = useMemo(() => generateCustomCallControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options === null || options === void 0 ? void 0 : options.displayType : undefined), [options]);\n const capabilitiesSelector = useSelector(capabilitySelector);\n const callState = useSelector(callStatusSelector);\n const isReactionAllowed = callState.callStatus !== 'Connected' || !(capabilitiesSelector === null || capabilitiesSelector === void 0 ? void 0 : capabilitiesSelector.capabilities) || capabilitiesSelector.capabilities.useReactions.isPresent;\n // when options is false then we want to hide the whole control bar.\n if (options === false) {\n return React.createElement(React.Fragment, null);\n }\n const sideButtonsPresent = isEnabled(options.peopleButton) || isEnabled(options.chatButton) || customButtons['secondary'] !== undefined;\n const screenShareButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.screenShareButton);\n const microphoneButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.microphoneButton);\n const cameraButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.cameraButton);\n const showExitSpotlightButton = (options === null || options === void 0 ? void 0 : options.exitSpotlightButton) !== false;\n const showCaptionsButton = props.isCaptionsSupported && isEnabled(options.captionsButton);\n const showTeamsMeetingPhoneCallButton = isEnabled(options === null || options === void 0 ? void 0 : options.teamsMeetingPhoneCallButton);\n const showDesktopMoreButton = isEnabled(options === null || options === void 0 ? void 0 : options.moreButton) && (false || isEnabled(options === null || options === void 0 ? void 0 : options.holdButton) || showCaptionsButton || props.onUserSetGalleryLayout);\n const role = (_b = props.callAdapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;\n const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n const reactionResources = props.callAdapter.getState().reactions;\n return React.createElement(\"div\", { ref: controlBarSizeRef },\n React.createElement(CallAdapterProvider, { adapter: props.callAdapter },\n showCaptionsSettingsModal && React.createElement(CallingCaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions }),\n props.teamsMeetingConferenceModalPresent && React.createElement(MeetingConferencePhoneInfoModal, { conferencePhoneInfoList: (_e = (_d = (_c = props.callAdapter.getState().call) === null || _c === void 0 ? void 0 : _c.meetingConference) === null || _d === void 0 ? void 0 : _d.conferencePhones) !== null && _e !== void 0 ? _e : [], showModal: props.teamsMeetingConferenceModalPresent, onDismissMeetingPhoneInfoSettings: props.onToggleTeamsMeetingConferenceModal })),\n React.createElement(Stack, { horizontal: true, reversed: !props.mobileView && !isOutOfSpace, horizontalAlign: \"space-between\", className: mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles) },\n React.createElement(Stack.Item, { grow: true, className: mergeStyles(controlBarWrapperDesktopStyles) },\n React.createElement(CallAdapterProvider, { adapter: props.callAdapter },\n React.createElement(Stack, { horizontalAlign: \"center\" },\n React.createElement(HiddenFocusStartPoint, { key: hiddenFocusStartElementKey }),\n React.createElement(Stack.Item, null,\n React.createElement(\"div\", { ref: controlBarContainerRef },\n React.createElement(ControlBar, { layout: props.displayVertical ? 'vertical' : 'horizontal', styles: centerContainerStyles },\n microphoneButtonIsEnabled && React.createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView, disabled: props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton), disableTooltip: props.mobileView, onClickNoiseSuppression: onClickNoiseSuppression, isDeepNoiseSuppressionOn: isDeepNoiseSuppressionOn, showNoiseSuppressionButton: showNoiseSuppressionButton }),\n cameraButtonIsEnabled && React.createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView, disabled: props.disableButtonsForHoldScreen || isDisabled(options.cameraButton), onClickVideoEffects: props.onClickVideoEffects, componentRef: props.cameraButtonRef, disableTooltip: props.mobileView }),\n !props.mobileView && isReactionAllowed && isEnabled(options.reactionButton) && reactionResources && React.createElement(Reaction, { displayType: options.displayType, styles: commonButtonStyles, disabled: props.disableButtonsForHoldScreen, reactionResource: reactionResources }),\n !props.mobileView && isEnabled(options.raiseHandButton) && !hideRaiseHandButtonInRoomsCall && React.createElement(RaiseHand, { displayType: options.displayType, styles: commonButtonStyles, disabled: props.disableButtonsForHoldScreen || isDisabled(options.microphoneButton) }),\n showDtmfDialerButton(options) && props.onSetDialpadPage !== undefined && React.createElement(DtmfDialpadButton, { styles: commonButtonStyles, displayType: options.displayType, onClick: () => {\n if (props.onSetDialpadPage !== undefined) {\n props.onSetDialpadPage();\n }\n } }),\n showExitSpotlightButton && props.onStopLocalSpotlight && React.createElement(ExitSpotlightButton, { displayType: options.displayType, onClick: props.onStopLocalSpotlight, styles: commonButtonStyles, strings: exitSpotlightButtonStrings }),\n screenShareButtonIsEnabled && React.createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles, disabled: props.disableButtonsForHoldScreen || isDisabled(options.screenShareButton) }), (_f = customButtons['primary']) === null || _f === void 0 ? void 0 :\n _f.slice(0, props.mobileView ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return React.createElement(CustomButton, { key: `primary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact', disableTooltip: props.mobileView });\n }),\n props.mobileView && React.createElement(MoreButton, { \"data-ui-id\": \"common-call-composite-more-button\", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage, disableTooltip: props.mobileView }),\n !props.mobileView && showDesktopMoreButton && React.createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles, onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls, isCaptionsSupported: showCaptionsButton, onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage, teamsMeetingPhoneCallEnable: showTeamsMeetingPhoneCallButton, onMeetingPhoneInfoClick: props.onToggleTeamsMeetingConferenceModal }),\n React.createElement(EndCall, { displayType: \"compact\", mobileView: props.mobileView, styles: endCallButtonStyles, enableEndCallMenu: !isBoolean(props.callControls) && !isBoolean((_g = props.callControls) === null || _g === void 0 ? void 0 : _g.endCallButton) && !props.mobileView && isHangUpForEveryoneAllowed && !isTeams &&\n // Temporary disable it for Teams call, since capability does not give the right value\n ((_j = (_h = props.callControls) === null || _h === void 0 ? void 0 : _h.endCallButton) === null || _j === void 0 ? void 0 : _j.hangUpForEveryone) === 'endCallOptions' &&\n // Only show the end call menu when the call is connected, user should not be able to end the call for everyone\n // when they are not actively in the call to communicate they will.\n callState.callStatus === 'Connected', disableEndCallModal: !isBoolean(props.callControls) && !isBoolean((_k = props.callControls) === null || _k === void 0 ? void 0 : _k.endCallButton) && ((_m = (_l = props.callControls) === null || _l === void 0 ? void 0 : _l.endCallButton) === null || _m === void 0 ? void 0 : _m.disableEndCallModal) }))))))),\n !props.mobileView && sideButtonsPresent && React.createElement(Stack.Item, null,\n React.createElement(\"div\", { ref: sidepaneControlsRef },\n React.createElement(Stack, { horizontal: true, className: !props.mobileView ? mergeStyles(desktopButtonContainerStyle) : undefined },\n isEnabled(options === null || options === void 0 ? void 0 : options.peopleButton) && React.createElement(PeopleButton, { checked: props.peopleButtonChecked, ariaLabel: peopleButtonStrings.label, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, \"data-ui-id\": \"common-call-composite-people-button\", disabled: props.disableButtonsForLobbyPage || props.disableButtonsForHoldScreen || isDisabled(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef }), (_o = customButtons['secondary']) === null || _o === void 0 ? void 0 :\n _o.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {\n return React.createElement(CustomButton, { key: `secondary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact' });\n }))))));\n});\nconst desktopButtonContainerStyle = {\n padding: '0.75rem',\n columnGap: '0.5rem'\n};\nconst desktopControlBarStyles = {\n root: desktopButtonContainerStyle\n};\n{\n /*\n Styling here to ensure the control bar buttons stay in the center of the parent component (control Container) regardless of its siblings\n Need to add 'reversed' to parent container because the styling here reverse the position of the two stack items\n */\n}\nconst wrapperDesktopStyles = {\n position: 'absolute',\n left: '50%',\n transform: 'translate(-50%, 0)'\n};\nconst wrapperDesktopRtlStyles = {\n position: 'absolute',\n right: '50%',\n transform: 'translate(-50%, 0)'\n};\n/** @private */\nexport const getDesktopCommonButtonStyles = (theme) => ({\n root: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderRadius: theme.effects.roundedCorner4,\n minHeight: '2.5rem',\n maxWidth: '12rem' // allot extra space than the regular ControlBarButton. This is to give extra room to have the icon beside the text.\n },\n flexContainer: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n textContainer: {\n // Override the default so that label doesn't introduce a new block.\n display: 'inline',\n // Ensure width is set to permit child to show ellipsis when there is a label that is too long\n maxWidth: '100%'\n },\n label: {\n fontSize: theme.fonts.medium.fontSize,\n // Ensure there is enough space between the icon and text to allow for the unread messages badge in the chat button\n marginLeft: '0.625rem',\n // Ensure letters that go above and below the standard text line like 'g', 'y', 'j' are not clipped\n lineHeight: '1.5rem',\n // Do not allow very long button texts to ruin the control bar experience, instead ensure long text is truncated and shows ellipsis\n display: 'block',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n splitButtonMenuButton: {\n border: `solid 1px ${theme.palette.neutralQuaternaryAlt}`,\n borderTopRightRadius: theme.effects.roundedCorner4,\n borderBottomRightRadius: theme.effects.roundedCorner4,\n borderTopLeftRadius: '0',\n borderBottomLeftRadius: '0'\n },\n splitButtonMenuButtonChecked: {\n // Default colors the menu half similarly for :hover and when button is checked.\n // To align with how the left-half is styled, override the checked style.\n background: 'none'\n }\n});\nconst getDesktopScreenShareButtonStyles = (theme) => {\n const overrideStyles = {\n border: 'none',\n background: theme.palette.themePrimary,\n color: theme.palette.white,\n '* > svg': {\n fill: theme.palette.white\n },\n '@media (forced-colors: active)': {\n border: '1px solid',\n borderColor: theme.palette.black\n }\n };\n const overrides = {\n rootChecked: overrideStyles,\n rootCheckedHovered: overrideStyles\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst getDesktopEndCallButtonStyles = (theme) => {\n const overrides = {\n root: {\n // Suppress border around the dark-red button.\n border: 'none'\n },\n rootFocused: {\n '@media (forced-colors: active)': {\n background: 'highlight',\n color: 'highlightText',\n borderColor: theme.palette.black,\n borderRadius: 'unset',\n outline: `3px solid ${theme.palette.black}`\n }\n },\n icon: {\n '@media (forced-colors: active)': {\n ':focused': {\n color: theme.palette.white\n }\n }\n }\n };\n return concatStyleSets(getDesktopCommonButtonStyles(theme), overrides);\n};\nconst isEnabled = (option) => option !== false;\nconst showDtmfDialerButton = (options) => {\n if (options.moreButton === false && options.dtmfDialerButton !== false) {\n return true;\n }\n else {\n return false;\n }\n};\n//# sourceMappingURL=CommonCallControlBar.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n// eslint-disable-next-line no-restricted-imports\nimport { Icon, mergeStyleSets } from '@fluentui/react';\nimport { ControlBarButton } from \"../../../../../react-components/src\";\nimport React from 'react';\n/**\n * Max number of Custom Buttons in primary and secondary ControlBar\n * Does not include existing buttons in the controlBar.\n *\n * @private\n */\nexport const CUSTOM_BUTTON_OPTIONS = {\n MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS: 3,\n MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS: 1,\n MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS: 2\n};\n/** @private */\nexport const generateCustomCallControlBarButton = (onFetchCustomButtonProps, displayType) => {\n const allButtonProps = onFetchCustomButtonProps === null || onFetchCustomButtonProps === void 0 ? void 0 : onFetchCustomButtonProps.map(callback => callback({\n displayType\n }));\n return {\n primary: generateCustomControlBarButtons('primary', allButtonProps),\n secondary: generateCustomControlBarButtons('secondary', allButtonProps),\n overflow: generateCustomControlBarButtons('overflow', allButtonProps)\n };\n};\n/** @private */\nconst generateCustomControlBarButtons = (placement, customButtons) => customButtons ? customButtons.filter(buttonProps => buttonProps.placement === placement).map((buttonProps, i) => internalProps => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n // onRenderButton is a custom prop that can be passed to override the default rendering of the button\n // This is useful for custom buttons that need to render more than just an icon and label and is used\n // for CallWithChat button notification badge. However, onRenderButton is not a public prop and is\n // not documented in the API. This is a temporary solution and will need to be revisited.\n if ('onRenderButton' in buttonProps) {\n return buttonProps['onRenderButton'](internalProps);\n }\n return React.createElement(ControlBarButton, { ariaDescription: (_b = (_a = buttonProps.strings) === null || _a === void 0 ? void 0 : _a.ariaDescription) !== null && _b !== void 0 ? _b : internalProps.ariaDescription, ariaLabel: (_f = (_d = (_c = buttonProps.strings) === null || _c === void 0 ? void 0 : _c.ariaLabel) !== null && _d !== void 0 ? _d : (_e = buttonProps.strings) === null || _e === void 0 ? void 0 : _e.tooltipContent) !== null && _f !== void 0 ? _f : internalProps.ariaLabel, disabled: (_g = buttonProps.disabled) !== null && _g !== void 0 ? _g : internalProps.disabled, id: (_h = buttonProps.id) !== null && _h !== void 0 ? _h : internalProps.id, key: `${buttonProps.placement}_${i}`, onClick: (_j = buttonProps.onItemClick) !== null && _j !== void 0 ? _j : internalProps.onClick, onRenderIcon: () => { var _a, _b, _c; return React.createElement(Icon, { iconName: (_c = (_a = buttonProps.iconName) !== null && _a !== void 0 ? _a : (_b = internalProps.iconProps) === null || _b === void 0 ? void 0 : _b.iconName) !== null && _c !== void 0 ? _c : 'DefaultCustomButton' }); }, showLabel: (_k = buttonProps.showLabel) !== null && _k !== void 0 ? _k : internalProps.showLabel, styles: mergeStyleSets(internalProps.styles), strings: buttonProps.strings });\n}) : [];\n/** @private */\nconst generateCustomDrawerButtons = (placement, customButtons) => customButtons ? customButtons.filter(buttonProps => buttonProps.placement === placement).map((buttonProps, i) => {\n var _a, _b;\n return (Object.assign(Object.assign({}, buttonProps), { disabled: buttonProps.disabled, iconProps: {\n iconName: (_a = buttonProps.iconName) !== null && _a !== void 0 ? _a : 'DefaultCustomButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }, id: buttonProps.id, itemKey: `${buttonProps.placement}_${i}`, onItemClick: buttonProps.onItemClick, text: (_b = buttonProps.strings) === null || _b === void 0 ? void 0 : _b.label }));\n}) : [];\n/** @private */\nexport const generateCustomCallDrawerButtons = (onFetchCustomButtonProps, displayType) => {\n const customButtons = onFetchCustomButtonProps === null || onFetchCustomButtonProps === void 0 ? void 0 : onFetchCustomButtonProps.map(callback => callback({\n displayType\n }));\n return {\n primary: generateCustomDrawerButtons('primary', customButtons),\n secondary: generateCustomDrawerButtons('secondary', customButtons),\n overflow: generateCustomDrawerButtons('overflow', customButtons)\n };\n};\n/** @private */\nexport const generateCustomCallDesktopOverflowButtons = (onFetchCustomButtonProps, displayType) => {\n const customButtons = onFetchCustomButtonProps === null || onFetchCustomButtonProps === void 0 ? void 0 : onFetchCustomButtonProps.map(callback => callback({\n displayType\n }));\n return {\n primary: generateCustomDrawerButtons('primary', customButtons).map(drawerMenuItemToContextualMenuItem),\n secondary: generateCustomDrawerButtons('secondary', customButtons).map(drawerMenuItemToContextualMenuItem),\n overflow: generateCustomDrawerButtons('overflow', customButtons).map(drawerMenuItemToContextualMenuItem)\n };\n};\n/** @private */\nexport const drawerMenuItemToContextualMenuItem = (item) => (Object.assign(Object.assign({}, item), { key: item.itemKey, onClick: item.onItemClick ? ev => {\n var _a;\n (_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, ev);\n } : undefined, subMenuProps: item.subMenuProps ? {\n items: item.subMenuProps.map(drawerMenuItemToContextualMenuItem)\n } : undefined }));\n/** @private */\nexport const onFetchCustomButtonPropsTrampoline = (options) => {\n let response = undefined;\n response = options === null || options === void 0 ? void 0 : options.onFetchCustomButtonProps;\n return response;\n};\n//# sourceMappingURL=CustomButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _pxToRem } from \"../../../../../acs-ui-common/src\";\n/**\n * @private\n */\nexport const captionSettingsDrawerStyles = (theme) => ({\n root: {\n overflow: 'auto'\n },\n drawerSurfaceStyles: {\n drawerContentContainer: {\n root: {\n span: {\n fontWeight: 400,\n fontSize: _pxToRem(14),\n lineHeight: _pxToRem(22),\n color: theme.palette.neutralDark\n }\n }\n }\n }\n});\n//# sourceMappingURL=captionSettingsDrawer.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { useMemo, useCallback } from 'react';\nimport { useTheme } from \"../../../../../react-components/src\";\nimport { _DrawerMenu as DrawerMenu } from \"../../../../../react-components/src\";\nimport { captionSettingsDrawerStyles } from './captionSettingsDrawer.styles';\nimport { _getKeys } from \"../../../../../acs-ui-common/src\";\n/** @private */\nexport const CaptionLanguageSettingsDrawer = (props) => {\n var _a;\n const theme = useTheme();\n const onDrawerItemClick = useCallback((languageCode) => {\n props.selectLanguage(languageCode);\n }, [props]);\n const drawerItems = useMemo(() => {\n var _a;\n return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map(languageCode => ({\n itemKey: languageCode,\n text: props.supportedLanguageStrings ? props.supportedLanguageStrings[languageCode] : languageCode,\n onItemClick: () => onDrawerItemClick(languageCode),\n secondaryIconProps: props.currentLanguage === languageCode ? {\n iconName: 'Accept'\n } : undefined\n }));\n }, [props.currentLanguage, props.supportedLanguageStrings, onDrawerItemClick]);\n const sortedDrawerItems = useMemo(() => {\n const copy = [...drawerItems];\n return copy.sort((a, b) => a.text && b.text && a.text > b.text ? 1 : -1);\n }, [drawerItems]);\n return React.createElement(DrawerMenu, { heading: (_a = props.strings) === null || _a === void 0 ? void 0 : _a.menuTitle, items: sortedDrawerItems !== null && sortedDrawerItems !== void 0 ? sortedDrawerItems : [], onLightDismiss: () => {\n props.setCurrentLanguage(props.currentLanguage);\n props.onLightDismiss();\n }, styles: captionSettingsDrawerStyles(theme) });\n};\n//# sourceMappingURL=CaptionLanguageSettingsDrawer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const themedToggleButtonStyle = (theme, checked) => {\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//# sourceMappingURL=MoreDrawer.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { useMemo, useCallback } from 'react';\nimport { useTheme } from \"../../../../../react-components/src\";\nimport { _DrawerMenu as DrawerMenu } from \"../../../../../react-components/src\";\nimport { captionSettingsDrawerStyles } from './captionSettingsDrawer.styles';\nimport { _getKeys } from \"../../../../../acs-ui-common/src\";\n/** @private */\nexport const SpokenLanguageSettingsDrawer = (props) => {\n var _a;\n const theme = useTheme();\n const onDrawerItemClick = useCallback((languageCode) => {\n props.selectLanguage(languageCode);\n }, [props]);\n const drawerItems = useMemo(() => {\n var _a;\n return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map(languageCode => ({\n itemKey: languageCode,\n text: props.supportedLanguageStrings ? props.supportedLanguageStrings[languageCode] : languageCode,\n onItemClick: () => onDrawerItemClick(languageCode),\n secondaryIconProps: props.currentLanguage === languageCode ? {\n iconName: 'Accept'\n } : undefined\n }));\n }, [props.currentLanguage, props.supportedLanguageStrings, onDrawerItemClick]);\n const sortedDrawerItems = useMemo(() => {\n const copy = [...drawerItems];\n return copy.sort((a, b) => a.text && b.text && a.text > b.text ? 1 : -1);\n }, [drawerItems]);\n return React.createElement(DrawerMenu, { heading: (_a = props.strings) === null || _a === void 0 ? void 0 : _a.menuTitle, items: sortedDrawerItems !== null && sortedDrawerItems !== void 0 ? sortedDrawerItems : [], onLightDismiss: () => {\n props.setCurrentLanguage(props.currentLanguage);\n props.onLightDismiss();\n }, styles: captionSettingsDrawerStyles(theme) });\n};\n//# sourceMappingURL=SpokenLanguageSettingsDrawer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React, { useCallback } from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport { _DrawerMenu as DrawerMenu, CaptionsSettingsModal } from \"../../../../../react-components/src\";\nimport { _ReactionDrawerMenuItem } from \"../../../../../react-components/src\";\nimport { StartCaptionsButton } from \"../../../../../react-components/src\";\nimport { HoldButton } from \"../../../../../react-components/src\";\nimport { RaiseHandButton } from \"../../../../../react-components/src\";\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallDrawerButtons, onFetchCustomButtonPropsTrampoline } from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\nimport { _spokenLanguageToCaptionLanguage } from \"../../../../../react-components/src\";\nimport { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\nimport { getRemoteParticipantsConnectedSelector } from '../../CallComposite/selectors/mediaGallerySelector';\nconst inferCallWithChatControlOptions = (callWithChatControls) => {\n if (callWithChatControls === false) {\n return false;\n }\n const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n return options;\n};\n/** @private */\nexport const MoreDrawer = (props) => {\n var _a, _b, _c, _d, _e, _f;\n const theme = useTheme();\n const callAdapter = useAdapter();\n const drawerMenuItems = [];\n const { speakers, onSelectSpeaker, onLightDismiss } = props;\n const localeStrings = useLocale();\n const holdButtonProps = usePropsFor(HoldButton);\n const callees = useSelector(getTargetCallees);\n const participants = useSelector(getRemoteParticipantsConnectedSelector);\n const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);\n const [dtmfDialerChecked, setDtmfDialerChecked] = useState((_a = props.dtmfDialerPresent) !== null && _a !== void 0 ? _a : false);\n const raiseHandButtonProps = usePropsFor(RaiseHandButton);\n const onSpeakerItemClick = useCallback((_ev, itemKey) => {\n const selected = speakers === null || speakers === void 0 ? void 0 : 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);\n }\n onLightDismiss();\n }, [speakers, onSelectSpeaker, onLightDismiss]);\n const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n const showCaptionsButton = props.isCaptionsSupported && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.captionsButton);\n if (props.reactionResources !== undefined) {\n drawerMenuItems.push({\n itemKey: 'reactions',\n onRendererContent: () => React.createElement(_ReactionDrawerMenuItem, { onReactionClick: (reaction) => __awaiter(void 0, void 0, void 0, function* () {\n var _g;\n (_g = props.onReactionClick) === null || _g === void 0 ? void 0 : _g.call(props, reaction);\n onLightDismiss();\n }), reactionResources: props.reactionResources })\n });\n }\n if (props.speakers && props.speakers.length > 0) {\n drawerMenuItems.push({\n itemKey: 'speakers',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.speakerMenuTitle,\n iconProps: {\n iconName: 'MoreDrawerSpeakers'\n },\n subMenuProps: props.speakers.map(speaker => ({\n itemKey: speaker.id,\n iconProps: {\n iconName: isDeviceSelected(speaker, props.selectedSpeaker) ? 'MoreDrawerSelectedSpeaker' : 'MoreDrawerSpeakers'\n },\n text: speaker.name,\n onItemClick: onSpeakerItemClick,\n secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? {\n iconName: 'Accept'\n } : undefined\n })),\n secondaryText: (_b = props.selectedSpeaker) === null || _b === void 0 ? void 0 : _b.name\n });\n }\n const { microphones, onSelectMicrophone } = props;\n const onMicrophoneItemClick = useCallback((_ev, itemKey) => {\n const selected = microphones === null || microphones === void 0 ? void 0 : 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);\n }\n onLightDismiss();\n }, [microphones, onSelectMicrophone, onLightDismiss]);\n if (props.microphones && props.microphones.length > 0) {\n // Set props as Microphone if speakers can be enumerated else set as Audio Device\n const speakersAvailable = props.speakers && props.speakers.length > 0;\n const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n drawerMenuItems.push({\n itemKey: itemKey,\n disabled: props.disableButtonsForHoldScreen,\n text: text,\n iconProps: {\n iconName: iconName\n },\n subMenuProps: props.microphones.map(mic => ({\n itemKey: mic.id,\n iconProps: {\n iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n },\n text: mic.name,\n onItemClick: onMicrophoneItemClick,\n secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? {\n iconName: 'Accept'\n } : undefined,\n disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n })),\n secondaryText: (_c = props.selectedMicrophone) === null || _c === void 0 ? void 0 : _c.name\n });\n }\n const dtmfDialerScreenOption = {\n itemKey: 'dtmfDialerScreenKey',\n text: !dtmfDialerChecked ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n onItemClick: () => {\n if (props.onSetDialpadPage) {\n props.onSetDialpadPage();\n }\n setDtmfDialerChecked(!dtmfDialerChecked);\n onLightDismiss();\n },\n iconProps: {\n iconName: 'DtmfDialpadButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n };\n /**\n * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n */\n if (props.onSetDialpadPage && allowDtmfDialer && drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions.dtmfDialerButton)) {\n drawerMenuItems.push(dtmfDialerScreenOption);\n }\n const galleryLayoutOptions = {\n itemKey: 'galleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen,\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: [{\n itemKey: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? {\n iconName: 'Accept'\n } : undefined\n }, {\n itemKey: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n onItemClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n onLightDismiss();\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? {\n iconName: 'Accept'\n } : undefined\n }]\n };\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.galleryControlsButton)) {\n drawerMenuItems.push(galleryLayoutOptions);\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton)) {\n drawerMenuItems.push({\n itemKey: 'people',\n id: 'call-composite-drawer-people-button',\n text: props.strings.peopleButtonLabel,\n iconProps: {\n iconName: 'MoreDrawerPeople'\n },\n onItemClick: props.onPeopleButtonClicked,\n disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n });\n }\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.holdButton)) {\n drawerMenuItems.push({\n itemKey: 'holdButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onItemClick: () => {\n holdButtonProps.onToggleHold();\n onLightDismiss();\n },\n iconProps: {\n iconName: 'HoldCallContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const role = (_d = callAdapter.getState().call) === null || _d === void 0 ? void 0 : _d.role;\n const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.raiseHandButton) && !hideRaiseHandButtonInRoomsCall) {\n const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n drawerMenuItems.push({\n itemKey: 'raiseHandButtonKey',\n disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n text: raiseHandButtonProps.checked ? localeStrings.component.strings.raiseHandButton.onLabel : localeStrings.component.strings.raiseHandButton.offLabel,\n onItemClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n onLightDismiss();\n },\n iconProps: {\n iconName: raiseHandIcon,\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());\n const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());\n if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.teamsMeetingPhoneCallButton) && isTeamsMeeting && teamsMeetingCoordinates) {\n drawerMenuItems.push({\n itemKey: 'phoneCallInfoKey',\n disabled: isDisabled(drawerSelectionOptions.teamsMeetingPhoneCallButton),\n text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n onItemClick: () => {\n var _a;\n (_a = props.onClickMeetingPhoneInfo) === null || _a === void 0 ? void 0 : _a.call(props);\n onLightDismiss();\n },\n iconProps: {\n iconName: 'PhoneNumberButton',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n //Captions drawer menu\n const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n //Captions drawer menu\n const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n const captionSettingsProp = usePropsFor(CaptionsSettingsModal);\n const startCaptionsButtonProps = usePropsFor(StartCaptionsButton);\n const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState(false);\n const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState(false);\n const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState((_e = captionSettingsProp.currentSpokenLanguage) !== null && _e !== void 0 ? _e : 'en-us');\n const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState((_f = captionSettingsProp.currentCaptionLanguage) !== null && _f !== void 0 ? _f : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);\n const onToggleChange = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n if (!captionSettingsProp.isCaptionsFeatureActive) {\n yield startCaptionsButtonProps.onStartCaptions({\n spokenLanguage: currentSpokenLanguage\n });\n }\n else {\n startCaptionsButtonProps.onStopCaptions();\n }\n }), [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonProps, currentSpokenLanguage]);\n if (showCaptionsButton) {\n const captionsDrawerItems = [];\n const spokenLanguageString = supportedSpokenLanguageStrings ? supportedSpokenLanguageStrings[currentSpokenLanguage] : currentSpokenLanguage;\n drawerMenuItems.push({\n itemKey: 'captions',\n id: 'common-call-composite-captions-button',\n disabled: props.disableButtonsForHoldScreen,\n text: props.strings.captionsMenuTitle,\n iconProps: {\n iconName: 'CaptionsIcon'\n },\n subMenuProps: captionsDrawerItems\n });\n captionsDrawerItems.push({\n itemKey: 'ToggleCaptionsKey',\n text: captionSettingsProp.isCaptionsFeatureActive ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n iconProps: {\n iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n onItemClick: onToggleChange,\n disabled: props.disableButtonsForHoldScreen,\n secondaryComponent: React.createElement(Stack, { verticalFill: true, verticalAlign: \"center\" },\n React.createElement(Toggle, { id: \"common-call-composite-captions-toggle-button\", checked: captionSettingsProp.isCaptionsFeatureActive, styles: themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive), onChange: onToggleChange }))\n });\n captionsDrawerItems.push({\n itemKey: 'ChangeSpokenLanguage',\n text: props.strings.spokenLanguageMenuTitle,\n id: 'common-call-composite-captions-spoken-settings-button',\n secondaryText: spokenLanguageString,\n iconProps: {\n iconName: 'ChangeSpokenLanguageIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsSpokenLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n if (props.useTeamsCaptions) {\n const captionLanguageString = supportedCaptionLanguageStrings ? supportedCaptionLanguageStrings[currentCaptionLanguage] : currentCaptionLanguage;\n captionsDrawerItems.push({\n itemKey: 'ChangeCaptionLanguage',\n text: props.strings.captionLanguageMenuTitle,\n id: 'common-call-composite-captions-subtitle-settings-button',\n secondaryText: captionLanguageString,\n iconProps: {\n iconName: 'ChangeCaptionLanguageIcon',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n onItemClick: () => {\n setIsCaptionLanguageDrawerOpen(true);\n },\n secondaryIconProps: {\n iconName: 'ChevronRight',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n }\n });\n }\n }\n const customDrawerButtons = useMemo(() => generateCustomCallDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.displayType : undefined), [drawerSelectionOptions]);\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach(element => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['secondary'].forEach(element => {\n drawerMenuItems.push(element);\n });\n customDrawerButtons['overflow'].forEach(element => {\n drawerMenuItems.push(element);\n });\n return React.createElement(React.Fragment, null,\n isSpokenLanguageDrawerOpen && showCaptionsButton && React.createElement(SpokenLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentSpokenLanguage, setCurrentLanguage: captionSettingsProp.onSetSpokenLanguage, currentLanguage: currentSpokenLanguage, strings: {\n menuTitle: props.strings.spokenLanguageMenuTitle\n }, supportedLanguageStrings: supportedSpokenLanguageStrings }),\n isCaptionLanguageDrawerOpen && showCaptionsButton && React.createElement(CaptionLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentCaptionLanguage, setCurrentLanguage: captionSettingsProp.onSetCaptionLanguage, currentLanguage: currentCaptionLanguage, strings: {\n menuTitle: props.strings.captionLanguageMenuTitle\n }, supportedLanguageStrings: supportedCaptionLanguageStrings }),\n !isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && React.createElement(DrawerMenu, { items: drawerMenuItems, onLightDismiss: props.onLightDismiss }));\n};\nconst isDeviceSelected = (speaker, selectedSpeaker) => !!selectedSpeaker && speaker.id === selectedSpeaker.id;\nconst isEnabled = (option) => option !== false;\n//# sourceMappingURL=MoreDrawer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useMemo } from 'react';\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\nimport { MoreDrawer } from './MoreDrawer';\nimport { moreDrawerSelector } from '../../CallWithChatComposite/selectors/moreDrawerSelector';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/** @private */\nexport const PreparedMoreDrawer = (props) => {\n const strings = useCallWithChatCompositeStrings();\n const moreDrawerStrings = useMemo(() => ({\n peopleButtonLabel: strings.peopleButtonLabel,\n audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,\n microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,\n speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle,\n captionsMenuTitle: strings.moreDrawerCaptionsMenuTitle,\n spokenLanguageMenuTitle: strings.moreDrawerSpokenLanguageMenuTitle,\n captionLanguageMenuTitle: strings.moreDrawerCaptionLanguageMenuTitle,\n galleryOptionsMenuTitle: strings.moreDrawerGalleryOptionsMenuTitle\n }), [strings]);\n const deviceProps = useSelector(moreDrawerSelector);\n const callHandlers = useHandlers(MoreDrawer);\n return React.createElement(MoreDrawer, Object.assign({}, props, deviceProps, callHandlers, { strings: moreDrawerStrings }));\n};\n//# sourceMappingURL=PreparedMoreDrawer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n// eslint-disable-next-line no-restricted-imports\nimport { Stack, Text, useTheme, Icon, Link } from '@fluentui/react';\nimport React from 'react';\nimport { formatPhoneNumberInfo, _formatPhoneNumber, formatPhoneNumberLink } from \"../../../../react-components/src\";\nimport { phoneInfoTextStyle, phoneInfoIcon, phoneInfoInstructionLine, phoneInfoStep, phoneInfoIconStyle, phoneInfoLabelStyle, phoneInfoContainerTokens, phoneInfoContainerStyle } from './styles/TeamsMeetingConferenceInfo.style';\nimport { useLocale } from '../localization';\n/**\n * @private\n */\nexport const MeetingPhoneInfoPaneContent = (props) => {\n const { conferencePhoneInfoList } = props;\n const theme = useTheme();\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n if (props.mobileView) {\n return React.createElement(Stack, { verticalFill: true, styles: phoneInfoContainerStyle, tokens: phoneInfoContainerTokens, \"data-ui-id\": \"phone-info-pane-content\" },\n (conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && React.createElement(Stack, { horizontal: true },\n React.createElement(Text, { className: phoneInfoTextStyle }, localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable)),\n conferencePhoneInfoList && conferencePhoneInfoList[0] && React.createElement(Stack, null,\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", className: phoneInfoInstructionLine },\n React.createElement(Stack.Item, null,\n React.createElement(Stack, { horizontal: true, className: phoneInfoStep },\n React.createElement(Stack.Item, { className: phoneInfoIcon(theme) },\n React.createElement(Stack, { verticalAlign: \"center\", horizontalAlign: \"center\" },\n React.createElement(Icon, { iconName: \"JoinByPhoneDialStepIcon\", className: phoneInfoIconStyle(theme) }))),\n React.createElement(Stack.Item, null,\n React.createElement(Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),\n React.createElement(Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => React.createElement(Stack.Item, { key: index },\n React.createElement(Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, _formatPhoneNumber(phoneNumber.phoneNumber, true)),\n React.createElement(Text, { className: phoneInfoTextStyle },\n ' ',\n phoneNumber.isTollFree ? localeStrings.meetingConferencePhoneInfoModalTollFree : localeStrings.meetingConferencePhoneInfoModalToll),\n React.createElement(\"br\", null),\n React.createElement(Text, { className: phoneInfoTextStyle },\n \" \",\n formatPhoneNumberInfo(phoneNumber, localeStrings)))))),\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", verticalAlign: \"center\", className: phoneInfoInstructionLine },\n React.createElement(Stack.Item, null,\n React.createElement(Stack, { horizontal: true },\n React.createElement(Stack.Item, { className: phoneInfoIcon(theme) },\n React.createElement(Icon, { iconName: \"JoinByPhoneConferenceIdIcon\", className: phoneInfoIconStyle(theme) })),\n React.createElement(Stack.Item, null,\n React.createElement(Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalMeetingId)))),\n React.createElement(Text, { className: phoneInfoTextStyle },\n conferencePhoneInfoList[0].conferenceId,\n \"#\")),\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", verticalAlign: \"center\", className: phoneInfoInstructionLine },\n React.createElement(Stack, { horizontal: true },\n React.createElement(Stack.Item, { className: phoneInfoIcon(theme) },\n React.createElement(Icon, { iconName: \"JoinByPhoneWaitToBeAdmittedIcon\", className: phoneInfoIconStyle(theme) })),\n React.createElement(Stack.Item, null,\n React.createElement(Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalWait))))));\n }\n return React.createElement(Stack, { verticalFill: true, styles: phoneInfoContainerStyle, tokens: phoneInfoContainerTokens, \"data-ui-id\": \"phone-info-pane-content\" });\n};\n//# sourceMappingURL=MeetingPhoneInfoPaneContent.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets, ContextualMenu, Stack } from '@fluentui/react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { LocalAndRemotePIP } from '../CallComposite/components/LocalAndRemotePIP';\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { localAndRemotePIPSelector } from '../CallComposite/selectors/localAndRemotePIPSelector';\nimport { _ModalClone } from \"../../../../react-components/src\";\nimport { _RemoteVideoTile } from \"../../../../react-components/src\";\nimport { hiddenStyle, modalStyle, PIPContainerStyle } from './styles/ModalLocalAndRemotePIP.styles';\nimport { useLocale } from '../localization';\nimport { getRole } from '../CallComposite/selectors/baseSelectors';\n/**\n * Drag options for Modal in {@link ModalLocalAndRemotePIP} component\n */\nconst DRAG_OPTIONS = {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n keepInBounds: true\n};\n/**\n * A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id\n * specified by `modalLayerHostId` prop\n * @private\n */\nexport const ModalLocalAndRemotePIP = (props) => {\n var _a;\n const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;\n const role = useSelector(getRole);\n const locale = useLocale();\n const pictureInPictureProps = useSelector(localAndRemotePIPSelector);\n const [touchStartTouches, setTouchStartTouches] = useState(null);\n const onTouchEnd = useCallback((event) => {\n var _a;\n if (touchStartTouches && touchStartTouches[0] && touchStartTouches.length === 1 && event.changedTouches[0] && event.changedTouches.length === 1) {\n const touchStartTouch = touchStartTouches[0];\n const touchEndTouch = event.changedTouches[0];\n if (Math.abs(touchStartTouch.clientX - touchEndTouch.clientX) < 10 && Math.abs(touchStartTouch.clientY - touchEndTouch.clientY) < 10) {\n (_a = props.onDismissSidePane) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n }\n }, [props, touchStartTouches]);\n const onTouchStart = useCallback((event) => {\n setTouchStartTouches(event.touches);\n }, []);\n const onKeyDown = useCallback((event) => {\n var _a;\n if (event.key === 'Enter' || event.key === ' ') {\n (_a = props.onDismissSidePane) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n }, [props]);\n const pictureInPictureHandlers = useHandlers(LocalAndRemotePIP);\n const remoteParticipant = pictureInPictureProps.remoteParticipant;\n const localAndRemotePIP = useMemo(() => {\n var _a, _b, _c, _d;\n if (role === 'Consumer' && (remoteParticipant === null || remoteParticipant === void 0 ? void 0 : remoteParticipant.userId)) {\n return React.createElement(Stack, { tabIndex: 0, \"aria-label\": (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.dismissModalAriaLabel) !== null && _b !== void 0 ? _b : '', onKeyDown: onKeyDown },\n React.createElement(_RemoteVideoTile, Object.assign({ strings: locale.component.strings.videoGallery }, remoteParticipant, { remoteParticipant: remoteParticipant })));\n }\n return React.createElement(Stack, { tabIndex: 0, \"aria-label\": (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.dismissModalAriaLabel) !== null && _d !== void 0 ? _d : '', onKeyDown: onKeyDown },\n React.createElement(LocalAndRemotePIP, Object.assign({}, pictureInPictureProps, pictureInPictureHandlers, { remoteParticipant: remoteParticipant })));\n }, [role, onKeyDown, pictureInPictureProps, props, pictureInPictureHandlers, locale.component.strings.videoGallery, remoteParticipant]);\n if (role === 'Consumer' && !remoteParticipant) {\n return null;\n }\n const modalStylesThemed = concatStyleSets(modalStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.modal);\n return React.createElement(Stack, { styles: rootStyles },\n React.createElement(Stack, { onTouchStart: onTouchStart, onTouchEnd: onTouchEnd },\n React.createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS, styles: modalStylesThemed, layerProps: {\n hostId: props.modalLayerHostId\n }, minDragPosition: props.minDragPosition, maxDragPosition: props.maxDragPosition }, \n // Only render LocalAndRemotePIP when this component is NOT hidden because VideoGallery needs to have\n // possession of the dominant remote participant video stream\n !props.hidden && localAndRemotePIP)));\n};\n//# sourceMappingURL=ModalLocalAndRemotePIP.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { ControlBarButton } from \"../../../../react-components/src\";\nimport { MoreHorizontal20Filled } from '@fluentui/react-icons';\nconst icon = () => React.createElement(MoreHorizontal20Filled, { key: 'chatOnIconKey', primaryFill: \"currentColor\" });\n/**\n * @private\n */\nexport const MoreButton = (props) => {\n 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'] }));\n};\n//# sourceMappingURL=MoreButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useMemo } from 'react';\nimport { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles, headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList } from \"../../../../react-components/src\";\nimport { FocusZone, Stack, Text, TooltipHost, TooltipOverflowMode, getId, useTheme } from '@fluentui/react';\nimport { DefaultButton } from '@fluentui/react';\nimport { AvatarPersona } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from \"../../../../acs-ui-common/src\";\n/**\n * @private\n */\nexport const ParticipantContainer = (props) => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return React.createElement(Stack, { className: participantListWrapperClassName },\n React.createElement(ParticipantListWithHeading, Object.assign({}, props)));\n};\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props) => {\n const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps, headingMoreButtonAriaLabel, onClickHeadingMoreButton, headingMoreButtonMenuProps, pinnedParticipants } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n const tooltipId = getId('text-tooltip');\n const subheadingStyleThemed = useMemo(() => ({\n root: {\n h2: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize,\n fontWeight: 'normal'\n }\n }\n }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);\n return React.createElement(Stack, { className: participantListStack },\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", verticalAlign: \"center\" },\n React.createElement(Stack.Item, { grow: true, styles: subheadingStyleThemed, \"aria-label\": title, id: subheadingUniqueId },\n React.createElement(\"h2\", null, paneTitleTrampoline(title !== null && title !== void 0 ? title : ''))),\n (onClickHeadingMoreButton || (headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0) && React.createElement(Stack.Item, null,\n React.createElement(DefaultButton, { autoFocus: true, \"data-ui-id\": \"people-pane-header-more-button\", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: {\n iconName: 'PeoplePaneMoreButton'\n }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null }))),\n React.createElement(FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },\n React.createElement(ParticipantList, Object.assign({}, participantListProps, { pinnedParticipants: pinnedParticipants, styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => React.createElement(React.Fragment, null,\n React.createElement(AvatarPersona, Object.assign({ \"data-ui-id\": \"chat-composite-participant-custom-avatar\", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text), dataProvider: onFetchAvatarPersonaData, allowActiveBorder: true })),\n (options === null || options === void 0 ? void 0 : options.text) && React.createElement(\"div\", { style: displayNameStyles },\n React.createElement(TooltipHost, { content: options === null || options === void 0 ? void 0 : options.text, id: tooltipId, overflowMode: TooltipOverflowMode.Parent },\n React.createElement(Text, { nowrap: false, \"aria-labelledby\": tooltipId }, options === null || options === void 0 ? void 0 : options.text)))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile, participantAriaLabelledBy: subheadingUniqueId }))));\n};\nconst paneTitleTrampoline = (paneTitle, totalParticipantCount) => {\n const participantCountString = totalParticipantCount ? {\n numberOfPeople: `(${totalParticipantCount})`\n } : {\n numberOfPeople: ' '\n };\n return _formatString(paneTitle, participantCountString);\n};\n//# sourceMappingURL=ParticipantContainer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const peoplePaneContainerTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const peoplePaneContainerStyle = {\n root: {\n position: 'relative',\n maxHeight: '100%',\n overflow: 'hidden'\n }\n};\n/**\n * @private\n */\nexport const participantListContainerStyles = {\n root: {\n overflowY: 'scroll'\n }\n};\n/**\n * @private\n */\nexport const copyLinkButtonContainerStyles = {\n root: {\n width: '100%',\n padding: '0.5rem 1rem'\n }\n};\n/**\n * @private\n */\nexport const copyLinkButtonStackStyles = {\n root: {\n marginLeft: '0.5rem',\n marginRight: '0.5rem'\n }\n};\n/**\n * @private\n */\nexport const copyLinkButtonStyles = {\n root: {\n height: '2.5rem',\n width: '100%'\n },\n textContainer: {\n display: 'contents'\n }\n};\n/**\n * @private\n */\nexport const linkIconStyles = {\n marginRight: '0.5rem'\n};\n/**\n * @private\n */\nexport const localAndRemotePIPStyles = {\n root: {\n marginRight: '1rem'\n }\n};\n/**\n * @private\n */\nexport const themedCopyLinkButtonStyles = (mobileView, theme) => ({\n root: {\n minHeight: mobileView ? '3rem' : '2.5rem',\n borderRadius: mobileView ? theme.effects.roundedCorner6 : theme.effects.roundedCorner4\n }\n});\n//# sourceMappingURL=PeoplePaneContent.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Convert IContextualMenuItem to _DrawerMenuItemProps\n * @param contextualMenu - IContextualMenuItem to convert\n * @param onDrawerMenuItemClick - callback to call when converted DrawerMenuItem is clicked\n * @returns DrawerMenuItem\n * @private\n */\nexport const convertContextualMenuItemToDrawerMenuItem = (contextualMenu, onDrawerMenuItemClick) => {\n return {\n itemKey: contextualMenu.key,\n onItemClick: () => {\n var _a;\n (_a = contextualMenu.onClick) === null || _a === void 0 ? void 0 : _a.call(contextualMenu);\n onDrawerMenuItemClick();\n },\n iconProps: contextualMenu.iconProps,\n text: contextualMenu.text,\n disabled: contextualMenu.disabled\n };\n};\n//# sourceMappingURL=ConvertContextualMenuItemToDrawerMenuItem.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const themedCopyLinkButtonStyles = (theme, mobileView) => ({\n root: {\n minHeight: mobileView ? '3rem' : '2.5rem',\n borderRadius: mobileView ? theme.effects.roundedCorner6 : theme.effects.roundedCorner4,\n width: '100%'\n },\n textContainer: {\n display: 'contents'\n }\n});\n/**\n * @private\n */\nexport const themedMenuStyle = (theme) => ({\n root: {\n borderRadius: theme.effects.roundedCorner6\n }\n});\n/**\n * @private\n */\nexport const iconStyles = {\n // overwrite default line height which results in icons having different size\n lineHeight: '0',\n width: '1.125rem'\n};\n//# sourceMappingURL=AddPeopleDropdown.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport { Dialpad } from \"../../../../react-components/src\";\nimport { _DrawerSurface } from \"../../../../react-components/src\";\nimport { Modal, Stack, useTheme, Text, IconButton } from '@fluentui/react';\nimport { PrimaryButton } from '@fluentui/react';\nimport { themeddialpadModalStyle } from './CallingDialpad.styles';\nimport { themedCallButtonStyle, themedDialpadStyle } from './CallingDialpad.styles';\nimport { CallWithChatCompositeIcon } from './icons';\nimport { drawerContainerStyles } from '../CallComposite/styles/CallComposite.styles';\n/** @private */\nexport const CallingDialpad = (props) => {\n const { strings, isMobile, showDialpad, onDismissDialpad, onAddParticipant, alternateCallerId } = props;\n const [textFieldInput, setTextFieldInput] = useState('');\n const theme = useTheme();\n const onDismissTriggered = () => {\n setTextFieldInput('');\n onDismissDialpad();\n };\n const onClickCall = () => {\n if (onAddParticipant) {\n /**\n * Format the phone number in dialpad textfield to make sure the phone number is in E.164 format.\n * We assume the input number always include countrycode\n */\n const phoneNumber = {\n phoneNumber: '+' + textFieldInput.replace(/\\D/g, '').replaceAll(' ', '')\n };\n onAddParticipant(phoneNumber, {\n alternateCallerId: {\n phoneNumber: alternateCallerId\n }\n });\n onDismissTriggered();\n }\n };\n const dialpadModalStyle = useMemo(() => themeddialpadModalStyle(theme), [theme]);\n const dialpadStyle = useMemo(() => themedDialpadStyle(isMobile, theme), [theme, isMobile]);\n const callButtonStyle = useMemo(() => themedCallButtonStyle(theme), [theme]);\n const dialpadComponent = () => {\n return React.createElement(React.Fragment, null,\n React.createElement(Dialpad, { styles: dialpadStyle, onChange: setTextFieldInput, longPressTrigger: isMobile ? 'touch' : 'mouseAndTouch' }),\n React.createElement(PrimaryButton, { text: strings.dialpadStartCallButtonLabel, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"DialpadStartCall\" }), onClick: onClickCall, styles: callButtonStyle, disabled: textFieldInput === '' }));\n return React.createElement(React.Fragment, null);\n };\n if (isMobile) {\n return React.createElement(Stack, { \"data-ui-id\": \"call-with-chat-composite-dialpad\" }, showDialpad && React.createElement(Stack, { styles: drawerContainerStyles() },\n React.createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered, disableMaxHeight: true },\n React.createElement(Stack, { style: {\n padding: '1rem'\n } }, dialpadComponent()))));\n }\n return React.createElement(React.Fragment, null, React.createElement(Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModalStyle, \"data-ui-id\": \"call-with-chat-composite-dialpad\" },\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", verticalAlign: \"center\" },\n React.createElement(Text, null, strings.dialpadModalTitle),\n React.createElement(IconButton, { iconProps: {\n iconName: 'Cancel'\n }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: {\n color: theme.palette.black\n } })),\n React.createElement(Stack, { style: {\n overflow: 'hidden'\n } }, dialpadComponent())));\n};\n//# sourceMappingURL=CallingDialpad.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const themeddialpadModalStyle = (theme) => ({\n main: {\n borderRadius: theme.effects.roundedCorner6,\n padding: '1rem'\n }\n});\n/**\n * @private\n */\nexport const themedDialpadStyle = (isMobile, theme) => ({\n root: {\n padding: 0,\n marginLeft: 0,\n marginRight: 0,\n maxWidth: '100%'\n },\n textField: {\n root: {\n borderBottom: `1px solid ${theme.palette.neutralTertiaryAlt}`\n },\n field: {\n backgroundColor: theme.palette.white,\n fontSize: theme.fonts.large.fontSize,\n padding: '0 0.5rem',\n textAlign: isMobile ? 'center' : 'left',\n ':active': {\n padding: '0 0.5rem'\n }\n }\n },\n deleteIcon: {\n root: {\n backgroundColor: theme.palette.white\n }\n },\n digit: {\n color: theme.palette.themeDarkAlt\n }\n});\n/**\n * @private\n */\nexport const themedCallButtonStyle = (theme) => ({\n root: {\n fontWeight: theme.fonts.medium.fontWeight,\n fontSize: theme.fonts.medium.fontSize,\n width: '100%',\n height: '2.5rem',\n borderRadius: 3,\n padding: '0.625rem'\n },\n textContainer: {\n display: 'contents'\n }\n});\n//# sourceMappingURL=CallingDialpad.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Callout, DirectionalHint, mergeStyles, Stack, Text } from '@fluentui/react';\n// eslint-disable-next-line no-restricted-imports\nimport { FontIcon } from '@fluentui/react';\nimport React from 'react';\n/** @private */\nexport const CalloutWithIcon = (props) => {\n return React.createElement(Callout, { styles: calloutStyle, target: `#${props.targetId}`, directionalHint: DirectionalHint.topCenter, beakWidth: BEAK_WIDTH_PX, gapSpace: GAP_SPACE_PX, doNotLayer: props.doNotLayer },\n React.createElement(Stack, { horizontal: true, styles: calloutRootStackStyle, tokens: {\n childrenGap: '0.375rem'\n } },\n React.createElement(FontIcon, { iconName: \"Checkmark\", className: iconClass }),\n React.createElement(Text, null, props.text)));\n};\nconst calloutStyle = {\n root: {\n padding: '0.375rem 0.75rem 0.375rem 0.5rem',\n borderRadius: '0.25rem'\n },\n beakCurtain: {\n borderRadius: '0.25rem'\n },\n container: {\n zIndex: 0\n }\n};\nconst calloutRootStackStyle = {\n root: {\n display: 'flex',\n alignItems: 'center'\n }\n};\nconst BEAK_WIDTH_PX = 8;\nconst GAP_SPACE_PX = 2;\nconst iconClass = mergeStyles({\n fontSize: 18\n});\n//# sourceMappingURL=CalloutWithIcon.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { DefaultButton, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport { _DrawerMenu, Announcer } from \"../../../../react-components/src\";\nimport copy from 'copy-to-clipboard';\nimport { useMemo, useState } from 'react';\nimport { CallWithChatCompositeIcon } from './icons';\nimport { iconStyles, themedCopyLinkButtonStyles, themedMenuStyle } from './AddPeopleDropdown.styles';\nimport { CallingDialpad } from './CallingDialpad';\nimport { _preventDismissOnEvent as preventDismissOnEvent } from \"../../../../acs-ui-common/src\";\nimport { copyLinkButtonContainerStyles, copyLinkButtonStackStyles } from './styles/PeoplePaneContent.styles';\nimport { drawerContainerStyles } from '../CallComposite/styles/CallComposite.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { useId } from '@fluentui/react-hooks';\nimport { CalloutWithIcon } from './CalloutWithIcon';\n/** @private */\nexport const AddPeopleDropdown = (props) => {\n var _a, _b;\n const theme = useTheme();\n const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId, onCopyInviteLink, inviteLinkCopiedRecently } = props;\n const [showDialpad, setShowDialpad] = useState(false);\n const [announcerStrings, setAnnouncerStrings] = useState();\n const menuStyleThemed = useMemo(() => themedMenuStyle(theme), [theme]);\n const copyLinkButtonStylesThemed = useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);\n const defaultMenuProps = useMemo(() => {\n const menuProps = {\n styles: menuStyleThemed,\n items: [],\n useTargetWidth: true,\n calloutProps: {\n preventDismissOnEvent\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMenuOpened(contextualMenu) {\n setAnnouncerStrings(undefined);\n }\n };\n if (inviteLink) {\n menuProps.items.push({\n key: 'InviteLinkKey',\n text: strings.copyInviteLinkButtonLabel,\n itemProps: {\n styles: copyLinkButtonStylesThemed\n },\n iconProps: {\n iconName: 'Link',\n style: iconStyles\n },\n onClick: () => {\n setAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n copy(inviteLink);\n onCopyInviteLink === null || onCopyInviteLink === void 0 ? void 0 : onCopyInviteLink();\n }\n });\n }\n // only show the dialpad option when alternateCallerId is set\n if (alternateCallerId) {\n menuProps.items.push({\n key: 'DialpadKey',\n text: strings.openDialpadButtonLabel,\n itemProps: {\n styles: copyLinkButtonStylesThemed\n },\n iconProps: {\n iconName: 'PeoplePaneOpenDialpad',\n style: iconStyles\n },\n onClick: () => setShowDialpad(true),\n 'data-ui-id': 'call-dial-phone-number-button'\n });\n }\n return menuProps;\n }, [menuStyleThemed, inviteLink, alternateCallerId, strings.copyInviteLinkButtonLabel, strings.copyInviteLinkActionedAriaLabel, strings.openDialpadButtonLabel, copyLinkButtonStylesThemed, onCopyInviteLink]);\n const onDismissDialpad = () => {\n setShowDialpad(false);\n };\n const [addPeopleDrawerMenuItems, setAddPeopleDrawerMenuItems] = useState([]);\n const setDrawerMenuItemsForAddPeople = useMemo(() => {\n return () => {\n const drawerMenuItems = defaultMenuProps.items.map((contextualMenu) => convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setAddPeopleDrawerMenuItems([])));\n setAddPeopleDrawerMenuItems(drawerMenuItems);\n };\n }, [defaultMenuProps, setAddPeopleDrawerMenuItems]);\n const calloutButtonId = useId('callout-button');\n if (mobileView) {\n return React.createElement(Stack, null,\n React.createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),\n defaultMenuProps.items.length > 0 && React.createElement(Stack.Item, { styles: copyLinkButtonContainerStyles },\n React.createElement(PrimaryButton, { autoFocus: true, id: calloutButtonId, onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"PeoplePaneAddPerson\" }), text: strings.peoplePaneAddPeopleButtonLabel, \"data-ui-id\": \"call-add-people-button\" }),\n inviteLinkCopiedRecently && React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: (_a = strings.copyInviteLinkButtonActionedLabel) !== null && _a !== void 0 ? _a : '', doNotLayer: true })),\n addPeopleDrawerMenuItems.length > 0 && React.createElement(Stack, { styles: drawerContainerStyles(), \"data-ui-id\": \"call-add-people-dropdown\" },\n React.createElement(_DrawerMenu, { disableMaxHeight: true, onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems })),\n alternateCallerId && React.createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }));\n }\n return React.createElement(React.Fragment, null, React.createElement(Stack, null,\n React.createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),\n alternateCallerId && React.createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }),\n defaultMenuProps.items.length > 0 && React.createElement(Stack, { styles: copyLinkButtonStackStyles },\n React.createElement(DefaultButton, { id: calloutButtonId, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"PeoplePaneAddPerson\" }), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, \"data-ui-id\": \"call-add-people-button\" }),\n inviteLinkCopiedRecently && React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: (_b = strings.copyInviteLinkButtonActionedLabel) !== null && _b !== void 0 ? _b : '' }))));\n};\n//# sourceMappingURL=AddPeopleDropdown.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets, DefaultButton, PrimaryButton, Stack, useTheme } from '@fluentui/react';\nimport copy from 'copy-to-clipboard';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { CallWithChatCompositeIcon } from './icons';\nimport { peoplePaneContainerTokens } from './styles/ParticipantContainer.styles';\nimport { copyLinkButtonContainerStyles, copyLinkButtonStackStyles, copyLinkButtonStyles, linkIconStyles, themedCopyLinkButtonStyles } from './styles/PeoplePaneContent.styles';\nimport { AddPeopleDropdown } from './AddPeopleDropdown';\nimport { Announcer } from \"../../../../react-components/src\";\nimport { useId } from '@fluentui/react-hooks';\nimport { CalloutWithIcon } from './CalloutWithIcon';\n/** @private */\nexport const AddPeopleButton = (props) => {\n const { inviteLink, mobileView, strings, participantList } = props;\n const theme = useTheme();\n const [copyInviteLinkAnnouncerStrings, setCopyInviteLinkAnnouncerStrings] = useState('');\n const copyLinkButtonStylesThemed = useMemo(() => concatStyleSets(copyLinkButtonStyles, themedCopyLinkButtonStyles(mobileView, theme)), [mobileView, theme]);\n /**\n * sets the announcement string for when the link is copied.\n */\n const toggleAnnouncerString = useCallback(() => {\n setCopyInviteLinkAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);\n /**\n * Clears the announcer string after the user clicks the\n * copyInviteLink button allowing it to be re-announced.\n */\n setTimeout(() => {\n setCopyInviteLinkAnnouncerStrings('');\n }, 3000);\n }, [strings.copyInviteLinkActionedAriaLabel]);\n const dateInviteLinkCopied = useRef(undefined);\n const [inviteLinkCopiedRecently, setInviteLinkCopiedRecently] = useState(false);\n const onCopyInviteLink = useCallback(() => {\n setInviteLinkCopiedRecently(true);\n dateInviteLinkCopied.current = Date.now();\n setTimeout(() => {\n if (dateInviteLinkCopied.current && Date.now() - dateInviteLinkCopied.current >= 2000) {\n setInviteLinkCopiedRecently(false);\n }\n }, 2000);\n }, [setInviteLinkCopiedRecently, dateInviteLinkCopied]);\n const calloutButtonId = useId('callout-button');\n if (mobileView) {\n return React.createElement(AddPeopleDropdown, { strings: Object.assign({}, strings), mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId, onCopyInviteLink: onCopyInviteLink, inviteLinkCopiedRecently: inviteLinkCopiedRecently });\n }\n else {\n return React.createElement(Stack, { tokens: peoplePaneContainerTokens, \"data-ui-id\": \"people-pane-content\", verticalFill: true },\n React.createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId, onCopyInviteLink: onCopyInviteLink, inviteLinkCopiedRecently: inviteLinkCopiedRecently }),\n React.createElement(Stack.Item, { grow: true, styles: {\n root: {\n overflowY: 'hidden'\n }\n } }, participantList));\n }\n if (mobileView) {\n return React.createElement(Stack, null, inviteLink && React.createElement(Stack.Item, { styles: copyLinkButtonContainerStyles },\n React.createElement(Announcer, { announcementString: copyInviteLinkAnnouncerStrings, ariaLive: 'polite' }),\n React.createElement(PrimaryButton, { id: calloutButtonId, onClick: () => {\n copy(inviteLink !== null && inviteLink !== void 0 ? inviteLink : '');\n toggleAnnouncerString();\n onCopyInviteLink();\n }, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"Link\", style: linkIconStyles }), text: strings.copyInviteLinkButtonLabel }),\n inviteLinkCopiedRecently && React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel, doNotLayer: true })));\n }\n else {\n return React.createElement(Stack, { tokens: peoplePaneContainerTokens, \"data-ui-id\": \"people-pane-content\", verticalFill: true },\n inviteLink && React.createElement(Stack, { styles: copyLinkButtonStackStyles },\n React.createElement(Announcer, { announcementString: copyInviteLinkAnnouncerStrings, ariaLive: 'polite' }),\n React.createElement(DefaultButton, { id: calloutButtonId, text: strings.copyInviteLinkButtonLabel, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"Link\", style: linkIconStyles }), onClick: () => {\n copy(inviteLink !== null && inviteLink !== void 0 ? inviteLink : '');\n toggleAnnouncerString();\n onCopyInviteLink();\n }, styles: copyLinkButtonStylesThemed }),\n inviteLinkCopiedRecently && React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: strings.copyInviteLinkButtonActionedLabel })),\n React.createElement(Stack.Item, { grow: true, styles: {\n root: {\n overflowY: 'hidden'\n }\n } }, participantList));\n }\n};\n//# sourceMappingURL=AddPeopleButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Stack } from '@fluentui/react';\nimport { ParticipantList } from \"../../../../react-components/src\";\nimport React, { useCallback, useMemo } from 'react';\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\nimport { ParticipantListWithHeading } from '../common/ParticipantContainer';\nimport { peoplePaneContainerTokens } from '../common/styles/ParticipantContainer.styles';\nimport { participantListContainerStyles, peoplePaneContainerStyle } from './styles/PeoplePaneContent.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { AddPeopleButton } from './AddPeopleButton';\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { useLocale } from '../localization';\n/**\n * @private\n */\nexport const PeoplePaneContent = (props) => {\n const { inviteLink, onFetchParticipantMenuItems, setDrawerMenuItems, setParticipantActioned, participantListHeadingMoreButtonProps } = props;\n const adapter = useAdapter();\n const localeStrings = useLocale();\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const getStrings = () => {\n return localeStrings.strings.call;\n return localeStrings.strings.callWithChat;\n };\n const strings = getStrings();\n const removeParticipantFromCall = useCallback((participantId) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.removeParticipant(participantId);\n }), [adapter]);\n const addParticipantToCall = useCallback((participant, options) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.addParticipant(participant, options);\n }), [adapter]);\n const participantListDefaultProps = usePropsFor(ParticipantList);\n const removeButtonAllowed = canRemoveParticipants(props.role);\n const setDrawerMenuItemsForParticipant = useMemo(() => {\n return (participant) => {\n if (participant) {\n setParticipantActioned === null || setParticipantActioned === void 0 ? void 0 : setParticipantActioned(participant.userId);\n let contextualMenuItems = createDefaultContextualMenuItems(participant, strings, removeButtonAllowed && participant.isRemovable ? participantListDefaultProps.onRemoveParticipant : undefined, participantListDefaultProps.myUserId);\n if (onFetchParticipantMenuItems) {\n contextualMenuItems = onFetchParticipantMenuItems(participant.userId, participantListDefaultProps.myUserId, contextualMenuItems);\n }\n const drawerMenuItems = contextualMenuItems.map((contextualMenu) => convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([])));\n setDrawerMenuItems(drawerMenuItems);\n }\n };\n }, [strings, participantListDefaultProps.onRemoveParticipant, participantListDefaultProps.myUserId, removeButtonAllowed, onFetchParticipantMenuItems, setDrawerMenuItems, setParticipantActioned]);\n const setDrawerMenuItemsForParticipantListHeadingMoreButton = useMemo(() => {\n const drawerMenuItems = participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items.map((contextualMenu) => convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([])));\n return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;\n }, [participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items, setDrawerMenuItems]);\n const participantListProps = useMemo(() => {\n const onRemoveAParticipant = (participantId) => __awaiter(void 0, void 0, void 0, function* () { return removeParticipantFromCall(participantId); });\n return Object.assign(Object.assign({}, participantListDefaultProps), { \n // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked\n onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant, \n // We want the drawer menu items to appear when participants in ParticipantList are clicked\n onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined });\n }, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, removeParticipantFromCall]);\n const participantList = React.createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : onFetchParticipantMenuItems, title: strings.peoplePaneSubTitle, headingMoreButtonAriaLabel: localeStrings.strings.call.peoplePaneMoreButtonAriaLabel, onClickHeadingMoreButton: props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined, headingMoreButtonMenuProps: props.participantListHeadingMoreButtonProps, pinnedParticipants: props.pinnedParticipants });\n if (props.mobileView) {\n return React.createElement(Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens, \"data-ui-id\": \"people-pane-content\" },\n React.createElement(Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),\n React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: props.alternateCallerId }));\n }\n return React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: props.alternateCallerId });\n};\n/**\n * Create default contextual menu items for particant\n * @param participant - participant to create contextual menu items for\n * @param strings - localized strings for menu item text\n * @param onRemoveParticipant - callback to remove participant\n * @param localParticipantUserId - Local participant user id\n * @returns - IContextualMenuItem[]\n */\nconst createDefaultContextualMenuItems = (participant, strings, onRemoveParticipant, localParticipantUserId) => {\n const menuItems = [];\n if (onRemoveParticipant && (participant === null || participant === void 0 ? void 0 : participant.userId) !== localParticipantUserId) {\n menuItems.push({\n key: 'remove',\n text: strings.removeMenuLabel,\n onClick: () => {\n if (participant === null || participant === void 0 ? void 0 : participant.userId) {\n onRemoveParticipant === null || onRemoveParticipant === void 0 ? void 0 : onRemoveParticipant(participant === null || participant === void 0 ? void 0 : participant.userId);\n }\n },\n iconProps: {\n iconName: 'ContextMenuRemoveParticipant',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n 'data-ui-id': 'participant-list-remove-participant-button'\n });\n }\n return menuItems;\n};\nconst canRemoveParticipants = (role) => {\n // TODO: We should be using the removeParticipant capability here but there is an SDK bug for Rooms where a\n // Presenter's removeParticipant capability is {isPresent: false, reason: 'CapabilityNotApplicableForTheCallType'}.\n // But a Presenter in Rooms should be able to remove participants according to the following documentation\n // https://learn.microsoft.com/en-us/azure/communication-services/concepts/rooms/room-concept#predefined-participant-roles-and-permissions\n const canRemove = role === 'Presenter' || role === 'Unknown' || role === undefined;\n return canRemove;\n};\n//# sourceMappingURL=PeoplePaneContent.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CommandBarButton, DefaultButton, Stack, concatStyleSets } from '@fluentui/react';\nimport { useTheme } from \"../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { sidePaneHeaderContainerStyles, sidePaneHeaderStyles } from '../common/styles/ParticipantContainer.styles';\nimport { mobilePaneBackButtonStyles, mobilePaneButtonStyles, mobilePaneControlBarStyle, mobilePaneHiddenIconStyles } from './styles/Pane.styles';\nimport { CallWithChatCompositeIcon } from './icons';\n/**\n * @private\n */\nexport const SidePaneHeader = (props) => {\n const theme = useTheme();\n const sidePaneCloseButtonStyles = useMemo(() => ({\n root: {\n minWidth: '1.5rem',\n padding: '0.5rem 0.25rem',\n marginRight: '0.25rem',\n backgroundColor: theme.semanticColors.bodyBackground,\n '@media (forced-colors: active)': {\n border: `0.1rem solid ${theme.palette.neutralSecondary}`,\n borderRadius: theme.effects.roundedCorner4\n }\n },\n icon: {\n color: theme.palette.neutralSecondary\n },\n iconHovered: {\n color: theme.palette.neutralSecondary\n },\n iconPressed: {\n color: theme.palette.neutralSecondary\n }\n }), [theme.palette.neutralSecondary, theme.semanticColors.bodyBackground, theme.effects.roundedCorner4]);\n if (props.mobileView) {\n return React.createElement(SidePaneMobileHeader, Object.assign({}, props));\n }\n return React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", styles: sidePaneHeaderContainerStyles, verticalAlign: \"center\" },\n React.createElement(Stack.Item, { role: \"heading\", styles: sidePaneHeaderStyles, \"aria-label\": props.headingText, \"aria-level\": 2 }, props.headingText),\n React.createElement(Stack.Item, null,\n React.createElement(CommandBarButton, { ariaLabel: props.dismissSidePaneButtonAriaLabel, styles: sidePaneCloseButtonStyles, iconProps: {\n iconName: 'cancel'\n }, onClick: props.onClose, autoFocus: true })));\n};\nconst SidePaneMobileHeader = (props) => {\n const { headingText, dismissSidePaneButtonAriaLabel, dismissSidePaneButtonAriaDescription, onClose } = props;\n const theme = useTheme();\n const mobilePaneButtonStylesThemed = useMemo(() => {\n return concatStyleSets(mobilePaneButtonStyles, {\n root: {\n width: '100%'\n },\n label: {\n fontSize: theme.fonts.medium.fontSize,\n fontWeight: theme.fonts.medium.fontWeight\n }\n });\n }, [theme]);\n return React.createElement(Stack, { horizontal: true, grow: true, styles: mobilePaneControlBarStyle },\n React.createElement(DefaultButton, { ariaLabel: dismissSidePaneButtonAriaLabel, ariaDescription: dismissSidePaneButtonAriaDescription, onClick: onClose, styles: mobilePaneBackButtonStyles, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"ChevronLeft\" }), autoFocus: true }),\n React.createElement(Stack.Item, { grow: true },\n React.createElement(DefaultButton, { checked: true, styles: mobilePaneButtonStylesThemed }, headingText)),\n React.createElement(DefaultButton, { styles: mobilePaneHiddenIconStyles, ariaHidden: true, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"ChevronLeft\" }) }));\n};\n//# sourceMappingURL=SidePaneHeader.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { _StarSurvey } from \"../../../../react-components/src\";\nimport { useLocale } from '../localization';\n/** @private */\nexport const StarSurvey = (props) => {\n const { onStarRatingSelected } = props;\n const strings = useLocale().strings.call;\n const StarSurveyStrings = {\n starSurveyHelperText: strings.starSurveyHelperText,\n starSurveyOneStarText: strings.starSurveyOneStarText,\n starSurveyTwoStarText: strings.starSurveyTwoStarText,\n starSurveyThreeStarText: strings.starSurveyThreeStarText,\n starSurveyFourStarText: strings.starSurveyFourStarText,\n starSurveyFiveStarText: strings.starSurveyFiveStarText,\n starRatingAriaLabel: strings.starRatingAriaLabel\n };\n return React.createElement(_StarSurvey, { strings: StarSurveyStrings, onStarRatingSelected: onStarRatingSelected });\n};\n//# sourceMappingURL=StarSurvey.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { _TagsSurvey } from \"../../../../react-components/src\";\nimport { useLocale } from '../localization';\n/** @private */\nexport const TagsSurvey = (props) => {\n const strings = useLocale().strings.call;\n const tagsSurveyStrings = {\n tagsSurveyQuestion: strings.tagsSurveyQuestion,\n tagsSurveyHelperText: strings.tagsSurveyHelperText,\n tagsSurveyTextFieldDefaultText: strings.tagsSurveyTextFieldDefaultText\n };\n return React.createElement(_TagsSurvey, { callIssuesToTag: strings.surveyIssues, categoryHeadings: strings.surveyIssuesHeadingStrings, onConfirm: props.onConfirm, strings: tagsSurveyStrings, showFreeFormTextField: props.showFreeFormTextField });\n};\n//# sourceMappingURL=TagsSurvey.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { StarSurvey } from './StarSurvey';\nimport { TagsSurvey } from './TagsSurvey';\nimport { useState } from 'react';\nimport { Stack } from '@fluentui/react';\n/**\n * @private\n */\nexport const SurveyContent = (props) => {\n const [showTagsSurvey, setShowTagsSurvey] = useState(false);\n const onStarRatingSelected = (ratings) => {\n if (ratings < 5) {\n setShowTagsSurvey(true);\n props.setShowSubmitFeedbackButton(true);\n }\n else {\n props.setShowSubmitFeedbackButton(true);\n }\n props.setRatings(ratings);\n };\n const onIssuesSelected = (selectedTags, improvementSuggestions) => {\n props.setIssuesSelected(selectedTags);\n props.setShowSubmitFeedbackButton(true);\n if (improvementSuggestions && props.setImprovementSuggestions) {\n props.setImprovementSuggestions(improvementSuggestions);\n }\n };\n return React.createElement(Stack, { \"data-ui-id\": \"call-composite-survey\" },\n React.createElement(StarSurvey, { onStarRatingSelected: onStarRatingSelected }),\n showTagsSurvey && React.createElement(TagsSurvey, { onConfirm: onIssuesSelected, showFreeFormTextField: !(props.setImprovementSuggestions === undefined) }));\n};\n//# sourceMappingURL=SurveyContent.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nimport { _pxToRem } from \"../../../../../acs-ui-common/src\";\n/**\n * @private\n */\nexport const questionTextStyle = (theme) => mergeStyles({\n fontWeight: 600,\n fontSize: _pxToRem(20),\n lineHeight: _pxToRem(20),\n color: theme.palette.neutralPrimary\n});\n/**\n * @private\n */\nexport const surveyContainerStyle = (isMobile) => mergeStyles(isMobile ? {\n width: '20rem',\n position: 'absolute',\n top: '10%',\n left: '50%',\n transform: 'translateX(-50%)'\n} : {\n width: '24rem',\n position: 'absolute',\n top: '20%',\n left: '50%',\n transform: 'translateX(-50%)'\n});\n//# sourceMappingURL=Survey.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React from 'react';\nimport { useState } from 'react';\nimport { useLocale } from '../localization';\nimport { Text, PrimaryButton, Stack, useTheme, DefaultButton } from '@fluentui/react';\nimport { SurveyContent } from './SurveyContent';\nimport { NoticePage } from '../CallComposite/pages/NoticePage';\nimport { ThankYouForFeedbackPage } from '../CallComposite/pages/ThankYouForFeedbackPage';\nimport { questionTextStyle, surveyContainerStyle } from './styles/Survey.styles';\n/** @private */\nexport const Survey = (props) => {\n const { onSubmitSurvey, onSurveySubmittedCustom, onSurveyClosed, iconName, title, moreDetails, disableStartCallButton, isMobile } = props;\n const strings = useLocale().strings.call;\n const [ratings, setRatings] = useState(0);\n const [issuesSelected, setIssuesSelected] = useState();\n const [showSubmitFeedbackButton, setShowSubmitFeedbackButton] = useState(false);\n const [improvementSuggestions, setImprovementSuggestions] = useState({});\n const [showDefaultAfterSubmitScreen, setShowDefaultAfterSubmitScreen] = useState(false);\n const [showDefaultAfterDismissedScreen, setShowDefaultAfterDismissedScreen] = useState(false);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(false);\n const theme = useTheme();\n return React.createElement(React.Fragment, null,\n showDefaultAfterSubmitScreen && React.createElement(ThankYouForFeedbackPage, { iconName: iconName }),\n showDefaultAfterDismissedScreen && React.createElement(NoticePage, { iconName: iconName, title: title, moreDetails: moreDetails, dataUiId: 'left-call-page', disableStartCallButton: disableStartCallButton }),\n !showDefaultAfterSubmitScreen && !showDefaultAfterDismissedScreen && React.createElement(Stack, { verticalAlign: \"center\", className: surveyContainerStyle(!!isMobile) },\n React.createElement(Text, { className: questionTextStyle(theme) }, strings.surveyTitle),\n React.createElement(SurveyContent, { setShowSubmitFeedbackButton: (showButton) => {\n setShowSubmitFeedbackButton(showButton);\n }, setRatings: (rating) => {\n setRatings(rating);\n }, setIssuesSelected: (issuesSelected) => {\n setIssuesSelected(issuesSelected);\n }, setImprovementSuggestions: onSurveySubmittedCustom ? (improvementSuggestions) => {\n setImprovementSuggestions(improvementSuggestions);\n } : undefined }),\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"end\" },\n React.createElement(DefaultButton, { style: {\n marginTop: '1rem',\n marginRight: '0.5rem'\n }, onClick: () => {\n if (onSurveyClosed) {\n onSurveyClosed('skipped');\n }\n else {\n setShowDefaultAfterDismissedScreen(true);\n }\n } }, strings.surveySkipButtonLabel),\n showSubmitFeedbackButton && React.createElement(PrimaryButton, { disabled: submitButtonDisabled, style: {\n marginTop: '1rem',\n marginLeft: '0.5rem'\n }, onClick: () => __awaiter(void 0, void 0, void 0, function* () {\n const surveyResults = {\n overallRating: {\n score: ratings\n }\n };\n if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.overallRating) {\n surveyResults.overallRating = {\n score: ratings,\n issues: issuesSelected.overallRating.issues\n };\n }\n if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.audioRating) {\n surveyResults.audioRating = {\n score: ratings,\n issues: issuesSelected.audioRating.issues\n };\n }\n if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.screenshareRating) {\n surveyResults.screenshareRating = {\n score: ratings,\n issues: issuesSelected.screenshareRating.issues\n };\n }\n if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.videoRating) {\n surveyResults.videoRating = {\n score: ratings,\n issues: issuesSelected.videoRating.issues\n };\n }\n if (onSubmitSurvey) {\n // disable submit button while waiting for the survey to submit\n setSubmitButtonDisabled(true);\n // submitting survey results to calling\n onSubmitSurvey(surveyResults).then(res => {\n var _a, _b;\n // if contoso provided callback to handle their own survey data, send over the submitted survey results\n if (onSurveySubmittedCustom) {\n onSurveySubmittedCustom((_a = res === null || res === void 0 ? void 0 : res.callId) !== null && _a !== void 0 ? _a : '', (_b = res === null || res === void 0 ? void 0 : res.id) !== null && _b !== void 0 ? _b : '', surveyResults, improvementSuggestions).then(() => setSubmitButtonDisabled(false));\n }\n else {\n // if callback is not provided, enable the submit button after survey is submitted\n setSubmitButtonDisabled(false);\n }\n // redirect to new screen\n if (onSurveyClosed) {\n // redirect to new screen according to contoso's callback set up\n onSurveyClosed('sent');\n }\n else {\n // if call back not provided, redirect to default screen\n setShowDefaultAfterSubmitScreen(true);\n }\n }).catch(e => {\n // if there is an error submitting the survey, log the error in the console\n console.log('error when submitting survey: ' + e);\n // if contoso provided redirect callback, pass contoso the error so they can redirect to a corresponding error screen\n if (onSurveyClosed) {\n onSurveyClosed('error', e);\n }\n });\n }\n }) }, strings.surveyConfirmButtonLabel))));\n};\n//# sourceMappingURL=Survey.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets, DefaultButton, FocusZone, FocusZoneDirection, mergeStyles, Stack } from '@fluentui/react';\nimport { useTheme } from \"../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { CallWithChatCompositeIcon } from '../common/icons';\nimport { availableSpaceStyles, mobilePaneBackButtonStyles, mobilePaneButtonStyles, mobilePaneControlBarStyle, mobilePaneHiddenIconStyles } from './styles/Pane.styles';\nimport { useLocale } from '../localization';\n/**\n * Legacy header to be removed when we make a breaking change.\n * @private\n */\nexport const PeopleAndChatHeader = (props) => {\n const { onClose, onChatButtonClicked, onPeopleButtonClicked, activeTab } = props;\n const theme = useTheme();\n const strings = useLocale().strings.call;\n const haveMultipleTabs = onChatButtonClicked && onPeopleButtonClicked;\n const mobilePaneButtonStylesThemed = useMemo(() => {\n return concatStyleSets(mobilePaneButtonStyles, {\n root: {\n width: '100%'\n },\n label: {\n fontSize: theme.fonts.medium.fontSize,\n fontWeight: theme.fonts.medium.fontWeight\n }\n }, haveMultipleTabs ? {\n rootChecked: {\n borderBottom: `0.125rem solid ${theme.palette.themePrimary}`\n }\n } : {});\n }, [theme, haveMultipleTabs]);\n return React.createElement(Stack, { horizontal: true, grow: true, styles: mobilePaneControlBarStyle },\n React.createElement(DefaultButton, { ariaLabel: strings.returnToCallButtonAriaLabel, ariaDescription: strings.returnToCallButtonAriaDescription, onClick: onClose, styles: mobilePaneBackButtonStyles, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"ChevronLeft\" }), autoFocus: true }),\n React.createElement(Stack.Item, { grow: true, role: \"tablist\" },\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal, className: mergeStyles(availableSpaceStyles.root) },\n React.createElement(Stack, { horizontal: true, styles: availableSpaceStyles },\n React.createElement(Stack.Item, { grow: true }, onChatButtonClicked && React.createElement(DefaultButton, { onClick: onChatButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'chat', \"aria-selected\": activeTab === 'chat', role: 'tab', disabled: props.disableChatButton }, strings.chatButtonLabel)),\n React.createElement(Stack.Item, { grow: true }, onPeopleButtonClicked && React.createElement(DefaultButton, { onClick: onPeopleButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'people', \"aria-selected\": activeTab === 'people', role: 'tab', disabled: props.disablePeopleButton }, strings.peopleButtonLabel))))), /* Hidden icon to take the same space as the actual back button on the left. */\n React.createElement(DefaultButton, { styles: mobilePaneHiddenIconStyles, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: \"ChevronLeft\" }) }));\n};\n//# sourceMappingURL=TabHeader.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';\nimport { useLocale } from '../localization';\nimport { _VideoBackgroundEffectsPicker } from \"../../../../react-components/src\";\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\nimport { useSelector } from '../CallComposite/hooks/useSelector';\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPaneContent = (props) => {\n var _a;\n const { onDismissError, activeVideoEffectError, activeVideoEffectChange } = props;\n const locale = useLocale();\n const adapter = useAdapter();\n const strings = locale.strings.call;\n const activeVideoEffects = (_a = useSelector(localVideoSelector).activeVideoEffects) === null || _a === void 0 ? void 0 : _a.activeEffects;\n const selectableVideoEffects = useMemo(() => {\n const videoEffects = [{\n itemKey: 'none',\n iconProps: {\n iconName: 'RemoveVideoBackgroundEffect'\n },\n title: strings.removeBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.removeBackgroundTooltip\n }\n }, {\n itemKey: 'blur',\n iconProps: {\n iconName: 'BlurVideoBackground'\n },\n title: strings.blurBackgroundEffectButtonLabel,\n tooltipProps: {\n content: strings.blurBackgroundTooltip\n }\n }];\n if (props.backgroundImages) {\n props.backgroundImages.forEach((img) => {\n var _a;\n videoEffects.push({\n itemKey: img.key,\n backgroundProps: {\n url: img.url\n },\n tooltipProps: {\n content: (_a = img.tooltipText) !== null && _a !== void 0 ? _a : ''\n }\n });\n });\n }\n return videoEffects;\n }, [strings.removeBackgroundEffectButtonLabel, strings.removeBackgroundTooltip, strings.blurBackgroundEffectButtonLabel, strings.blurBackgroundTooltip, props.backgroundImages]);\n const onEffectChange = useCallback((effectKey) => __awaiter(void 0, void 0, void 0, function* () {\n if (effectKey === 'blur') {\n const blurEffect = {\n effectName: effectKey\n };\n activeVideoEffectChange({\n type: 'blur',\n timestamp: new Date(Date.now())\n });\n yield adapter.startVideoBackgroundEffect(blurEffect);\n adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n }\n else if (effectKey === 'none') {\n const noneEffect = {\n effectName: effectKey\n };\n yield adapter.stopVideoBackgroundEffects();\n adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n }\n else {\n const backgroundImg = selectableVideoEffects.find(effect => {\n return effect.itemKey === effectKey;\n });\n if (backgroundImg && backgroundImg.backgroundProps) {\n const replaceEffect = {\n effectName: 'replacement',\n key: effectKey,\n backgroundImageUrl: backgroundImg.backgroundProps.url\n };\n activeVideoEffectChange({\n type: 'replacement',\n timestamp: new Date(Date.now())\n });\n yield adapter.startVideoBackgroundEffect(replaceEffect);\n adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n }\n }\n }), [adapter, activeVideoEffectChange, selectableVideoEffects]);\n if (activeVideoEffectError && activeVideoEffects && activeVideoEffects.length === 0) {\n const noneEffect = {\n effectName: 'none'\n };\n adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n }\n return VideoEffectsPaneTrampoline(onDismissError, props.updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange);\n};\nconst VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange) => {\n const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n const showWarning = !isCameraOn && selectedEffect !== 'none';\n const locale = useLocale();\n return React.createElement(Stack, { tokens: {\n childrenGap: '0.75rem'\n }, className: mergeStyles({\n paddingLeft: '0.5rem'\n }) },\n activeVideoEffectError && isCameraOn && React.createElement(MessageBar, { messageBarType: MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError), role: \"alert\", \"aria-live\": \"assertive\" }, locale.strings.call.unableToStartVideoEffect),\n showWarning && React.createElement(MessageBar, { messageBarType: MessageBarType.warning, role: \"alert\", \"aria-live\": \"assertive\" }, locale.strings.call.cameraOffBackgroundEffectWarningText),\n React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle }));\n return React.createElement(React.Fragment, null);\n};\nconst backgroundPickerStyles = {\n label: {\n fontSize: '0.75rem',\n lineHeight: '0.5rem',\n fontWeight: '400'\n }\n};\n//# sourceMappingURL=VideoEffectsPane.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CallEnd20Filled, CallMissed20Filled, CameraSwitch24Regular, Chat20Filled, Chat20Regular, Info20Filled, MicOff20Filled, Mic20Filled, Mic20Regular, People20Regular, PersonDelete20Filled, Speaker220Filled, Speaker220Regular, Video20Filled, VideoOff20Filled, WifiWarning20Filled, Circle20Regular } from '@fluentui/react-icons';\nimport { PersonCall20Regular, Clock20Filled } from '@fluentui/react-icons';\nimport { MoreHorizontal20Filled, VideoPersonStarOff20Filled } from '@fluentui/react-icons';\nimport { MicProhibited20Filled, VideoProhibited20Filled } from '@fluentui/react-icons';\nimport { Grid20Regular } from '@fluentui/react-icons';\nimport { PersonAdd20Regular, Call20Regular } from '@fluentui/react-icons';\nimport { Dialpad20Regular } from '@fluentui/react-icons';\nimport { DEFAULT_COMPONENT_ICONS } from \"../../../../react-components/src\";\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { FontIcon, Spinner, SpinnerSize } from '@fluentui/react';\nimport { VideoBackgroundEffect20Regular, VideoPerson20Filled } from '@fluentui/react-icons';\nimport { PersonSquare20Regular, WindowHeaderHorizontal20Regular, TableSimple20Regular, BoardSplit20Regular, ContentView20Regular, Table20Regular } from '@fluentui/react-icons';\nconst SpinnerIcon = () => React.createElement(Spinner, { size: SpinnerSize.large });\n/**\n * The default set of icons used by the composites directly (i.e. not via the components defined in this library).\n *\n * @public\n */\nexport const COMPOSITE_ONLY_ICONS = {\n ChevronLeft: undefined,\n Link: undefined,\n LobbyScreenConnectingToCall: React.createElement(SpinnerIcon, null),\n LobbyScreenWaitingToBeAdmitted: React.createElement(SpinnerIcon, null),\n LocalDeviceSettingsCamera: React.createElement(Video20Filled, null),\n LocalDeviceSettingsMic: React.createElement(Mic20Filled, null),\n LocalDeviceSettingsSpeaker: React.createElement(Speaker220Filled, null),\n LocalPreviewPlaceholder: React.createElement(VideoOff20Filled, null),\n LocalCameraSwitch: React.createElement(CameraSwitch24Regular, null),\n ControlBarChatButtonActive: React.createElement(Chat20Filled, null),\n ControlBarChatButtonInactive: React.createElement(Chat20Regular, null),\n ControlButtonCameraProhibited: React.createElement(VideoProhibited20Filled, null),\n ControlButtonMicProhibited: React.createElement(MicProhibited20Filled, null),\n ControlButtonExitSpotlight: React.createElement(VideoPersonStarOff20Filled, null),\n ControlBarPeopleButton: React.createElement(People20Regular, null),\n MoreDrawerMicrophones: React.createElement(Mic20Regular, null),\n MoreDrawerPeople: React.createElement(People20Regular, null),\n MoreDrawerSpeakers: React.createElement(Speaker220Regular, null),\n MoreDrawerSelectedMicrophone: React.createElement(Mic20Filled, null),\n MoreDrawerSelectedSpeaker: React.createElement(Speaker220Filled, null),\n Muted: React.createElement(MicOff20Filled, null),\n NetworkReconnectIcon: React.createElement(CallMissed20Filled, null),\n NoticePageAccessDeniedTeamsMeeting: React.createElement(PersonDelete20Filled, null),\n NoticePageJoinCallFailedDueToNoNetwork: React.createElement(WifiWarning20Filled, null),\n NoticePageLeftCall: React.createElement(CallEnd20Filled, null),\n NoticePageRemovedFromCall: React.createElement(Info20Filled, null),\n NoticePageNotInvitedToRoom: React.createElement(Info20Filled, null),\n NoticePageRoomNotFound: React.createElement(Info20Filled, null),\n NoticePageRoomNotValid: React.createElement(Info20Filled, null),\n NoticePageCallRejected: React.createElement(Info20Filled, null),\n NoticePageCallTimeout: React.createElement(Info20Filled, null),\n PeoplePaneAddPerson: React.createElement(PersonAdd20Regular, null),\n PeoplePaneOpenDialpad: React.createElement(Dialpad20Regular, null),\n DialpadStartCall: React.createElement(Call20Regular, null),\n NoticePageInviteToRoomRemoved: React.createElement(Info20Filled, null),\n BlurVideoBackground: React.createElement(VideoBackgroundEffect20Regular, null),\n RemoveVideoBackgroundEffect: React.createElement(VideoPerson20Filled, null),\n GalleryOptions: React.createElement(Grid20Regular, null),\n OverflowGalleryTop: React.createElement(WindowHeaderHorizontal20Regular, null),\n SpeakerGalleryLayout: React.createElement(PersonSquare20Regular, null),\n DefaultGalleryLayout: React.createElement(TableSimple20Regular, null),\n FloatingLocalVideoGalleryLayout: React.createElement(BoardSplit20Regular, null),\n FocusedContentGalleryLayout: React.createElement(ContentView20Regular, null),\n LargeGalleryLayout: React.createElement(Table20Regular, null),\n DefaultCustomButton: React.createElement(Circle20Regular, null),\n DtmfDialpadButton: React.createElement(Dialpad20Regular, null),\n PhoneNumberButton: React.createElement(PersonCall20Regular, null),\n JoinByPhoneDialStepIcon: React.createElement(PersonCall20Regular, null),\n JoinByPhoneConferenceIdIcon: React.createElement(Dialpad20Regular, null),\n JoinByPhoneWaitToBeAdmittedIcon: React.createElement(Clock20Filled, null),\n PeoplePaneMoreButton: React.createElement(MoreHorizontal20Filled, null),\n StopAllSpotlightMenuButton: React.createElement(VideoPersonStarOff20Filled, null)\n};\n/**\n * The default set of icons that are available to used in the Composites.\n *\n * @public\n */\nexport const DEFAULT_COMPOSITE_ICONS = Object.assign(Object.assign({}, DEFAULT_COMPONENT_ICONS), COMPOSITE_ONLY_ICONS);\n/**\n * Icon wrapper to use when including customizable icons inside the ChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const ChatCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));\n/**\n * Icon wrapper to use when including customizable icons inside the CallComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));\n/**\n * Icon wrapper to use when including customizable icons inside the CallWithChatComposite.\n * This wrapper ensures the icon name is being type-checked helping ensure no typos\n * and ensure that icon is customizable through the composite API.\n *\n * @private\n */\nexport const CallWithChatCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));\n//# sourceMappingURL=icons.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * This minimum width is to make sure the side pane does not overlap with the composite when the screen is narrow.\n *\n * @private\n */\nexport const compositeMinWidthRem = 30;\n//# sourceMappingURL=Composite.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets } from '@fluentui/react';\nimport { _pxToRem } from \"../../../../../acs-ui-common/src\";\n/**\n * Default Modal PIP related pixel measurements used for ModalLocalAndremotePIP and common/utils.\n *\n * @private\n */\nexport const MODAL_PIP_DEFAULT_PX = {\n rightPositionPx: 16,\n bottomPositionPx: 64,\n widthPx: 88,\n heightPx: 128\n};\n/**\n * @private\n */\nexport const getPipStyles = (theme) => ({\n modal: {\n main: Object.assign(Object.assign({ borderRadius: theme.effects.roundedCorner4, boxShadow: theme.effects.elevation8, \n // Above the message thread / people pane.\n zIndex: 2 }, (theme.rtl ? {\n left: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx)\n } : {\n right: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx)\n })), { bottom: _pxToRem(MODAL_PIP_DEFAULT_PX.bottomPositionPx) })\n }\n});\n/**\n * @private\n */\nexport const PIPContainerStyle = {\n root: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n ':focus-within': {\n outline: '1px solid #00000000'\n }\n }\n};\n/**\n * @private\n */\nexport const hiddenStyle = concatStyleSets(PIPContainerStyle, {\n root: {\n display: 'none'\n }\n});\n/**\n * @private\n */\nexport const modalStyle = {\n main: {\n minWidth: 'min-content',\n minHeight: 'min-content',\n position: 'absolute',\n overflow: 'hidden',\n // pointer events for root Modal div set to auto to make LocalAndRemotePIP interactive\n pointerEvents: 'auto',\n touchAction: 'none'\n },\n root: {\n width: '100%',\n height: '100%',\n // pointer events for root Modal div set to none to make descendants interactive\n pointerEvents: 'none',\n ':focus-within': {\n outline: '3px solid #00000000',\n outlineOffset: '-3px'\n }\n }\n};\n/**\n * Styles for layer host to bound the modal wrapping PiPiP in the mobile pane.\n * @private\n */\nexport const modalLayerHostStyle = {\n display: 'flex',\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n zIndex: '100000',\n // pointer events for layerHost set to none to make descendants interactive\n pointerEvents: 'none'\n};\n//# sourceMappingURL=ModalLocalAndRemotePIP.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets, mergeStyles } from '@fluentui/react';\nimport { CHAT_CONTAINER_MIN_WIDTH_REM } from '../constants';\nconst SIDE_PANE_PADDING_LR_REM = 0.25;\n/**\n * @private\n */\nexport const mobilePaneStyle = {\n root: {\n width: '100%',\n height: '100%'\n }\n};\n/**\n * @private\n */\nexport const hiddenMobilePaneStyle = concatStyleSets(mobilePaneStyle, {\n root: {\n display: 'none'\n }\n});\n/**\n * @private\n */\nexport const mobilePaneControlBarStyle = {\n root: {\n height: '3rem'\n }\n};\n/**\n * @private\n */\nexport const mobilePaneBackButtonStyles = {\n root: {\n border: 'none',\n minWidth: '2.5rem',\n maxWidth: '2.875rem',\n height: '100%',\n background: 'none',\n padding: '0 1rem'\n },\n rootChecked: {\n background: 'none'\n },\n rootCheckedHovered: {\n background: 'none'\n }\n};\n/**\n * @private\n */\nexport const mobilePaneHiddenIconStyles = concatStyleSets(mobilePaneBackButtonStyles, {\n root: {\n visibility: 'hidden'\n }\n});\n/**\n * @private\n */\nexport const mobilePaneButtonStyles = {\n root: {\n border: 'none',\n borderBottom: '0.125rem solid transparent',\n width: '8rem',\n height: '100%',\n background: 'none',\n padding: '0'\n },\n rootChecked: {\n background: 'none'\n },\n rootCheckedHovered: {\n background: 'none'\n },\n flexContainer: {\n flexFlow: 'column',\n display: 'contents'\n },\n label: {\n fontSize: '1rem',\n fontWeight: 100,\n lineHeight: '2rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n labelChecked: {\n fontWeight: 600\n }\n};\n/**\n * @private\n */\nexport const hiddenStyles = {\n root: {\n display: 'none'\n }\n};\n/**\n * @private\n */\nexport const sidePaneStyles = (maxWidth, minWidth) => ({\n root: {\n height: 'auto',\n width: '100%',\n padding: `0.5rem ${SIDE_PANE_PADDING_LR_REM}rem`,\n maxWidth: maxWidth !== null && maxWidth !== void 0 ? maxWidth : '21.5rem',\n minWidth: minWidth !== null && minWidth !== void 0 ? minWidth : `${CHAT_CONTAINER_MIN_WIDTH_REM + SIDE_PANE_PADDING_LR_REM * 2}rem`\n }\n});\n/**\n * @private\n */\nexport const availableSpaceStyles = {\n root: {\n width: '100%',\n height: '100%'\n }\n};\n/**\n * @private\n */\nexport const sidePaneTokens = {\n childrenGap: '0.5rem'\n};\n/** @private */\nexport const paneHighContrastStyles = (theme) => mergeStyles({\n '@media (forced-colors: active)': {\n border: `0.125rem solid ${theme.palette.black}`,\n borderRadius: theme.effects.roundedCorner4,\n margin: '0.5rem 0.25rem 0.5rem 0rem'\n }\n});\n//# sourceMappingURL=Pane.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];\n/**\n * @private\n */\nexport const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';\n/**\n * @remarks\n * This value is publicly documented in the ChatComposite API documentation.\n * Changing this value will require updating the API documentation.\n */\nexport const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;\n/**\n * @private\n */\nexport const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';\n//# sourceMappingURL=constants.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nimport { CHAT_CONTAINER_ZINDEX } from '../../ChatComposite/styles/Chat.styles';\n/**\n * @private\n */\nexport const sidePaneContainerStyles = {\n root: {\n height: '100%',\n padding: '0.5rem 0.25rem',\n width: '21.5rem'\n }\n};\n/**\n * @private\n */\nexport const sidePaneContainerHiddenStyles = {\n root: Object.assign(Object.assign({}, sidePaneContainerStyles), { display: 'none' })\n};\n/**\n * @private\n */\nexport const sidePaneContainerTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const sidePaneHeaderStyles = {\n root: {\n lineHeight: '1.5rem',\n fontSize: '1.125rem',\n padding: '0.75rem 0.75rem 0.75rem 0.25rem',\n fontWeight: '600'\n }\n};\n/**\n * @private\n */\nexport const sidePaneHeaderContainerStyles = {\n root: {\n margin: '0 0.25rem'\n }\n};\n/**\n * @private\n */\nexport const paneBodyContainer = {\n root: {\n flexDirection: 'column',\n display: 'flex'\n }\n};\n/**\n * @private\n */\nexport const scrollableContainer = {\n root: {\n flexBasis: '0',\n flexGrow: '1',\n overflowY: 'auto'\n }\n};\n/**\n * @private\n */\nexport const scrollableContainerContents = {\n root: {\n flexGrow: '1',\n flexBasis: '0',\n maxWidth: '100%',\n // Create a new stacking context so that `pipStyles` can set zIndex above the container.\n position: 'relative'\n }\n};\n/**\n * @private\n */\nexport const containerContextStyles = {\n root: {\n position: 'absolute',\n height: '100%',\n width: '100%'\n }\n};\n/**\n * @private\n */\nexport const peopleSubheadingStyle = {\n root: {\n fontSize: '0.75rem'\n }\n};\n/**\n * @private\n */\nexport const peoplePaneContainerTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const participantListWrapper = (theme) => mergeStyles({\n width: '20rem',\n maxWidth: '50%',\n height: '100%',\n position: 'absolute',\n right: '0',\n boxShadow: theme.effects.elevation16,\n background: theme.semanticColors.bodyBackground,\n // zIndex to set the participant pane above the chat container\n zIndex: CHAT_CONTAINER_ZINDEX + 1\n});\n/**\n * @private\n */\nexport const participantListContainerPadding = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const participantListStack = mergeStyles({\n height: '100%'\n});\n/**\n * @private\n */\nexport const participantListContainerStyle = mergeStyles({\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden'\n});\n/**\n * @private\n */\nexport const participantListStyle = {\n root: {\n padding: '0rem'\n },\n participantItemStyles: {\n root: {\n padding: '0.5rem'\n }\n }\n};\n/**\n * @private\n */\nexport const participantListMobileStyle = {\n root: {\n padding: '0rem'\n },\n participantItemStyles: {\n root: {\n padding: '0.5rem 1rem'\n }\n }\n};\n/**\n * @private\n */\nexport const displayNameStyles = {\n padding: '0.5rem',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n};\n/**\n * @private\n */\nexport const headingMoreButtonStyles = (theme) => {\n return {\n root: {\n height: '100%',\n minWidth: '1.5rem',\n padding: '0.5rem 0.25rem',\n marginRight: '0.25rem',\n border: 'none',\n background: 'none'\n },\n rootHovered: {\n background: 'none'\n },\n rootPressed: {\n background: 'none'\n },\n rootFocused: {\n background: 'none'\n },\n icon: {\n color: theme.palette.neutralSecondary,\n display: 'flex',\n alignItems: 'center'\n }\n };\n};\n//# sourceMappingURL=ParticipantContainer.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles, FontWeights } from '@fluentui/react';\nimport { _pxToRem } from \"../../../../../acs-ui-common/src\";\n/**\n * @private\n */\nexport const phoneInfoContainerTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const phoneInfoContainerStyle = {\n root: {\n position: 'relative',\n maxHeight: '100%',\n overflow: 'hidden'\n }\n};\n/**\n * @private\n */\nexport const themedPhoneInfoModalStyle = (theme) => ({\n main: {\n borderRadius: theme.effects.roundedCorner6,\n padding: _pxToRem(24),\n width: _pxToRem(600),\n height: 'fit-content',\n overflow: 'hidden'\n }\n});\n/**\n * @private\n */\nexport const titleClassName = mergeStyles({\n fontWeight: 600,\n fontSize: _pxToRem(20),\n lineHeight: _pxToRem(28)\n});\n/**\n * @private\n */\nexport const titleContainerClassName = mergeStyles({\n paddingBottom: _pxToRem(20)\n});\n/**\n * @private\n */\nexport const phoneInfoLabelStyle = mergeStyles({\n fontSize: _pxToRem(14),\n lineHeight: _pxToRem(40)\n});\n/**\n * @private\n */\nexport const phoneInfoTextStyle = mergeStyles({\n fontSize: _pxToRem(14),\n lineHeight: _pxToRem(40),\n fontWeight: FontWeights.semibold\n});\n/**\n * @private\n */\nexport const phoneInfoIcon = (theme) => {\n return mergeStyles({\n background: `${theme.palette.themeLighter}`,\n height: _pxToRem(36),\n width: _pxToRem(36),\n marginRight: _pxToRem(12),\n borderRadius: _pxToRem(18)\n });\n};\n/**\n * @private\n */\nexport const phoneInfoInstructionLine = mergeStyles({\n padding: '0.5rem 1rem'\n});\n/**\n * @private\n */\nexport const phoneInfoStep = mergeStyles({\n minWidth: _pxToRem(150),\n textAlign: 'right'\n});\n/**\n * @private\n */\nexport const phoneInfoIconStyle = (theme) => {\n return mergeStyles({\n padding: _pxToRem(8),\n color: `${theme.palette.themePrimary}`,\n zIndex: 2\n });\n};\n/**\n * @private\n */\nexport const infoConnectionLinkStyle = (theme) => {\n return mergeStyles({\n background: `${theme.palette.themeLighter}`,\n width: _pxToRem(2),\n position: 'relative',\n left: _pxToRem(19),\n top: _pxToRem(20),\n zIndex: 1\n });\n};\n//# sourceMappingURL=TeamsMeetingConferenceInfo.style.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _useContainerHeight, _useContainerWidth } from \"../../../../react-components/src\";\nimport { useMemo, useRef } from 'react';\nimport { MODAL_PIP_DEFAULT_PX } from './styles/ModalLocalAndRemotePIP.styles';\n/**\n * @private\n */\nexport const isBoolean = (value) => {\n return value !== null && typeof value === 'boolean';\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, rtl) => {\n const modalHostRef = useRef(document.getElementById(modalLayerHostId));\n const modalHostWidth = _useContainerWidth(modalHostRef);\n const modalHostHeight = _useContainerHeight(modalHostRef);\n const minDragPosition = useMemo(() => modalHostWidth === undefined || modalHostHeight === undefined ? undefined : {\n x: rtl ? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx : MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,\n y: -1 * modalHostHeight + MODAL_PIP_DEFAULT_PX.heightPx + MODAL_PIP_DEFAULT_PX.bottomPositionPx\n }, [modalHostHeight, modalHostWidth, rtl]);\n const maxDragPosition = useMemo(() => modalHostWidth === undefined ? undefined : {\n x: rtl ? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx : MODAL_PIP_DEFAULT_PX.rightPositionPx,\n y: MODAL_PIP_DEFAULT_PX.bottomPositionPx\n }, [modalHostWidth, rtl]);\n return {\n minDragPosition: minDragPosition,\n maxDragPosition: maxDragPosition\n };\n};\n/**\n * @private\n */\nexport const defaultSpokenLanguage = 'en-us';\n//# sourceMappingURL=utils.js.map"],"names":["ACSAudioProvider","props","audioContext","children","stateAudioContext","setStateAudioContext","useState","undefined","useEffect","useAudio","ACSAudioContext","Provider","value","createContext","useContext","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","AvatarPersona","_a","_b","_c","_d","_e","_f","_g","_h","userId","dataProvider","text","imageUrl","imageInitials","initialsColor","initialsTextColor","showOverflowTooltip","data","setData","newData","avatarDeepDifferenceCheck","activePersona","allowActiveBorder","border","borderColor","borderRadius","padding","boxSizing","margin","styles","Object","assign","className","showUnknownPersonaCoin","currentData","globalLayerHostStyle","position","zIndex","inset","visibility","BaseProvider","fluentTheme","rtl","locale","globalLayerHostId","useId","useBase","iconsToRegister","entries","forEach","key","icons","compositeAudioContext","AudioContext","CompositeElement","FluentThemeProvider","formFactor","name","content","Customizer","scopedSettings","Layer","hostId","WithBackgroundColor","LayerHost","id","localizedElement","LocalizationProvider","BaseContext","theme","useTheme","background","semanticColors","bodyBackground","height","width","Stack","CaptionsBannerMoreButton","localeStrings","startCaptionsButtonProps","usePropsFor","StartCaptionsButton","moreButtonStrings","useMemo","label","strings","call","captionsBannerMoreButtonCallingLabel","tooltipOffContent","captionsBannerMoreButtonTooltip","moreButtonContextualMenuItems","startCaptions","useCallback","onStartCaptions","spokenLanguage","currentSpokenLanguage","stopCaptions","onStopCaptions","returnFocusRef","current","focus","push","checked","startCaptionsButtonTooltipOnContent","startCaptionsButtonTooltipOffContent","onClick","onCaptionsSettingsClick","iconProps","iconName","root","lineHeight","itemProps","captionsSettingsLabel","disabled","MoreButton","menuIconProps","hidden","menuProps","items","calloutProps","preventDismissOnEvent","CallingCaptionsBanner","captionsBannerProps","CaptionsBanner","isCaptionsSettingsOpen","setIsCaptionsSettingsOpen","containerClassName","captionsOptions","floatingChildClassName","right","top","captionsBannerStrings","captionsBannerSpinnerText","onRenderAvatar","options","onFetchAvatarPersonaData","innerWidth","window","windowWidth","setWindowWidth","handleResize","addEventListener","removeEventListener","desktopViewBannerWidth","CallingCaptionsSettingsModal","showCaptionsSettingsModal","onDismissCaptionsSettings","changeCaptionLanguage","useTeamsCaptions","horizontalAlign","style","isMobile","isCaptionsOn","CaptionsSettingsModalProps","modalStrings","captionsSettingsModalTitle","captionsSettingsSpokenLanguageDropdownLabel","captionsSettingsCaptionLanguageDropdownLabel","captionsSettingsSpokenLanguageDropdownInfoText","captionsSettingsCaptionLanguageDropdownInfoText","captionsSettingsConfirmButtonLabel","captionsSettingsCancelButtonLabel","captionsSettingsModalAriaLabel","captionsSettingsCloseModalButtonAriaLabel","spokenLanguageStrings","captionLanguageStrings","showModal","containerDivStyles","icon","PeopleButton","onRenderOnIcon","onRenderOffIcon","rootChecked","palette","neutralLight","ControlBarButton","labelKey","DesktopMoreButton","holdButtonProps","HoldButton","focusedContentOn","setFocusedContentOn","previousLayout","setPreviousLayout","userSetGalleryLayout","callees","useSelector","allowDtmfDialer","isTeamsMeeting","teamsMeetingCoordinates","dtmfDialerChecked","setDtmfDialerChecked","dtmfDialerPresent","moreButtonCallingLabel","callWithChat","moreDrawerButtonTooltip","menuSubIconStyleSet","callControls","holdButton","component","onToggleHold","disableButtonsForHoldScreen","isCaptionsSupported","captionsContextualMenuItems","liveCaptionsLabel","subMenuProps","submenuIconProps","dtmfDialerScreenOption","dtmfDialerMoreButtonLabelOff","dtmfDialerMoreButtonLabelOn","onSetDialpadPage","dtmfDialerButton","joinByPhoneOption","phoneCallMoreButtonLabel","onMeetingPhoneInfoClick","teamsMeetingPhoneCallEnable","onUserSetOverflowGalleryPositionChange","galleryOptions","moreButtonGalleryControlLabel","moreButtonGalleryFloatingLocalLayoutLabel","canCheck","isChecked","onUserSetGalleryLayout","moreButtonGallerySpeakerLayoutLabel","moreButtonGalleryFocusedContentLayoutLabel","galleryControlsButton","customDrawerButtons","displayType","slice","element","shouldFocusOnContainer","HiddenFocusStartPoint","isMounted","setIsMounted","isUnfocused","setIsUnfocused","DefaultButton","autoFocus","onBlur","ariaHidden","invisibleHiddenFocusStartPoint","hiddenFocusStartPointStyles","tabIndex","minHeight","minWidth","maxHeight","maxWidth","opacity","outline","display","DtmfDialpadButton","dialpadButtonStrings","dtmfDialerButtonLabel","tooltipOnContent","dtmfDialerButtonTooltipOn","dtmfDialerButtonTooltipOff","showLabel","ExitSpotlightButton","onRenderIcon","CommonCallControlBar","forwardRef","commonCallControlBarRef","_j","_k","_l","_m","_o","hiddenFocusStartElementKey","setHiddenFocusStartElementKey","useImperativeHandle","prevKey","controlBarContainerRef","useRef","sidepaneControlsRef","controlBarSizeRef","controlBarButtonsWidth","setControlBarButtonsWidth","panelsButtonsWidth","setPanelsButtonsWidth","controlBarContainerWidth","setControlBarContainerWidth","totalButtonsWidth","setTotalButtonsWidth","isOutOfSpace","setIsOutOfSpace","callWithChatStrings","useCallWithChatCompositeStrings","mobileView","commonCallControlOptions","screenShareButton","inferCommonCallControlOptions","setShowCaptionsSettingsModal","isHangUpForEveryoneAllowed","state","capabilitiesFeature","capabilities","hangUpForEveryOne","isPresent","isTeams","offsetWidth","openCaptionsSettingsModal","peopleButtonStrings","peopleButtonLabel","selectedLabel","selectedPeopleButtonLabel","tooltipOpenAriaLabel","peopleButtonTooltipOpenAriaLabel","tooltipCloseAriaLabel","peopleButtonTooltipCloseAriaLabel","peopleButtonTooltipOpen","peopleButtonTooltipClose","moreDrawerButtonLabel","tooltipContent","callStrings","exitSpotlightButtonStrings","exitSpotlightButtonLabel","exitSpotlightButtonTooltip","isDeepNoiseSuppressionOn","setDeepNoiseSuppressionOn","startDeepNoiseSuppression","callAdapter","startNoiseSuppressionEffect","environmentInfo","isSafari","getState","onResolveDeepNoiseSuppressionDependency","deepNoiseSuppressionOnByDefault","showNoiseSuppressionButton","hideDeepNoiseSuppressionButton","onClickNoiseSuppression","stopNoiseSuppressionEffect","centerContainerStyles","desktopControlBarStyles","screenShareButtonStyles","getDesktopScreenShareButtonStyles","commonButtonStyles","getDesktopCommonButtonStyles","endCallButtonStyles","getDesktopEndCallButtonStyles","controlBarWrapperDesktopStyles","wrapperDesktopRtlStyles","wrapperDesktopStyles","controlBarDesktopContainerStyles","alignItems","paddingLeft","customButtons","capabilitiesSelector","capabilitySelector","callState","callStatusSelector","isReactionAllowed","callStatus","useReactions","sideButtonsPresent","isEnabled","peopleButton","chatButton","screenShareButtonIsEnabled","microphoneButtonIsEnabled","microphoneButton","cameraButtonIsEnabled","cameraButton","showExitSpotlightButton","exitSpotlightButton","showCaptionsButton","captionsButton","showTeamsMeetingPhoneCallButton","teamsMeetingPhoneCallButton","showDesktopMoreButton","moreButton","role","hideRaiseHandButtonInRoomsCall","isRoomsCall","includes","reactionResources","reactions","ref","CallAdapterProvider","adapter","teamsMeetingConferenceModalPresent","MeetingConferencePhoneInfo","conferencePhoneInfoList","meetingConference","conferencePhones","onDismissMeetingPhoneInfoSettings","onToggleTeamsMeetingConferenceModal","horizontal","reversed","grow","ControlBar","layout","displayVertical","Microphone","splitButtonsForDeviceSelection","disableTooltip","Camera","onClickVideoEffects","componentRef","cameraButtonRef","reactionButton","Reaction","reactionResource","raiseHandButton","RaiseHand","showDtmfDialerButton","onStopLocalSpotlight","ScreenShare","option","map","CustomButton","i","onMoreButtonClicked","disableButtonsForLobbyPage","onClickShowDialpad","EndCall","enableEndCallMenu","endCallButton","hangUpForEveryone","disableEndCallModal","desktopButtonContainerStyle","peopleButtonChecked","ariaLabel","onPeopleButtonClicked","peopleButtonRef","columnGap","left","transform","neutralQuaternaryAlt","effects","roundedCorner4","flexContainer","flexFlow","textContainer","fontSize","fonts","medium","marginLeft","textOverflow","whiteSpace","overflow","splitButtonMenuButton","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","splitButtonMenuButtonChecked","overrideStyles","themePrimary","color","white","fill","black","overrides","rootCheckedHovered","rootFocused","CUSTOM_BUTTON_OPTIONS","MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS","MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS","MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS","generateCustomCallControlBarButton","onFetchCustomButtonProps","allButtonProps","callback","primary","generateCustomControlBarButtons","secondary","placement","filter","buttonProps","internalProps","ariaDescription","onItemClick","generateCustomDrawerButtons","itemKey","generateCustomCallDrawerButtons","generateCustomCallDesktopOverflowButtons","drawerMenuItemToContextualMenuItem","item","ev","onFetchCustomButtonPropsTrampoline","response","captionSettingsDrawerStyles","drawerSurfaceStyles","drawerContentContainer","span","fontWeight","neutralDark","CaptionLanguageSettingsDrawer","onDrawerItemClick","languageCode","selectLanguage","drawerItems","supportedLanguageStrings","secondaryIconProps","currentLanguage","sortedDrawerItems","sort","a","b","DrawerMenu","heading","menuTitle","onLightDismiss","setCurrentLanguage","themedToggleButtonStyle","pill","backgroundColor","thumb","SpokenLanguageSettingsDrawer","MoreDrawer","drawerMenuItems","speakers","onSelectSpeaker","participants","dtmfDialerOptions","raiseHandButtonProps","RaiseHandButton","onSpeakerItemClick","_ev","selected","find","speaker","drawerSelectionOptions","callWithChatControls","onRendererContent","onReactionClick","reaction","length","speakerMenuTitle","isDeviceSelected","selectedSpeaker","secondaryText","microphones","onSelectMicrophone","onMicrophoneItemClick","mic","speakersAvailable","microphoneMenuTitle","audioDeviceMenuTitle","selectedIconName","selectedMicrophone","galleryLayoutOptions","raiseHandIcon","onLabel","offLabel","onToggleRaiseHand","onClickMeetingPhoneInfo","supportedSpokenLanguageStrings","supportedCaptionLanguageStrings","captionSettingsProp","CaptionsSettingsModal","isSpokenLanguageDrawerOpen","setIsSpokenLanguageDrawerOpen","isCaptionLanguageDrawerOpen","setIsCaptionLanguageDrawerOpen","setCurrentSpokenLanguage","currentCaptionLanguage","setCurrentCaptionLanguage","onToggleChange","isCaptionsFeatureActive","captionsDrawerItems","spokenLanguageString","captionsMenuTitle","secondaryComponent","verticalFill","verticalAlign","Toggle","onChange","spokenLanguageMenuTitle","captionLanguageString","captionLanguageMenuTitle","onSetSpokenLanguage","onSetCaptionLanguage","PreparedMoreDrawer","moreDrawerStrings","moreDrawerAudioDeviceMenuTitle","moreDrawerMicrophoneMenuTitle","moreDrawerSpeakerMenuTitle","moreDrawerCaptionsMenuTitle","moreDrawerSpokenLanguageMenuTitle","moreDrawerCaptionLanguageMenuTitle","galleryOptionsMenuTitle","moreDrawerGalleryOptionsMenuTitle","deviceProps","callHandlers","MeetingPhoneInfoPaneContent","meetingConferencePhoneInfo","tokens","meetingConferencePhoneInfoModalNoPhoneAvailable","meetingConferencePhoneInfoModalDialIn","phoneNumber","index","href","isTollFree","meetingConferencePhoneInfoModalTollFree","meetingConferencePhoneInfoModalToll","meetingConferencePhoneInfoModalMeetingId","conferenceId","meetingConferencePhoneInfoModalWait","DRAG_OPTIONS","moveMenuItemText","closeMenuItemText","menu","keepInBounds","ModalLocalAndRemotePIP","rootStyles","pictureInPictureProps","touchStartTouches","setTouchStartTouches","onTouchEnd","event","changedTouches","touchStartTouch","touchEndTouch","Math","abs","clientX","clientY","onDismissSidePane","onTouchStart","touches","onKeyDown","pictureInPictureHandlers","remoteParticipant","localAndRemotePIP","dismissModalAriaLabel","videoGallery","modalStylesThemed","modal","isOpen","isModeless","dragOptions","layerProps","modalLayerHostId","minDragPosition","maxDragPosition","primaryFill","ParticipantListWithHeading","onFetchParticipantMenuItems","title","participantListProps","headingMoreButtonAriaLabel","onClickHeadingMoreButton","headingMoreButtonMenuProps","pinnedParticipants","subheadingUniqueId","tooltipId","getId","subheadingStyleThemed","h2","neutralSecondary","smallPlus","paneTitleTrampoline","onRenderMenuIcon","FocusZone","shouldFocusOnMount","ParticipantList","hidePersonaDetails","TooltipHost","overflowMode","Text","nowrap","showParticipantOverflowTooltip","participantAriaLabelledBy","paneTitle","totalParticipantCount","participantCountString","numberOfPeople","peoplePaneContainerStyle","participantListContainerStyles","overflowY","copyLinkButtonContainerStyles","copyLinkButtonStackStyles","marginRight","copyLinkButtonStyles","convertContextualMenuItemToDrawerMenuItem","contextualMenu","onDrawerMenuItemClick","iconStyles","CallingDialpad","showDialpad","onDismissDialpad","onAddParticipant","alternateCallerId","textFieldInput","setTextFieldInput","onDismissTriggered","onClickCall","replace","replaceAll","dialpadModalStyle","main","roundedCorner6","themeddialpadModalStyle","dialpadStyle","textField","borderBottom","neutralTertiaryAlt","field","large","textAlign","deleteIcon","digit","themeDarkAlt","themedDialpadStyle","callButtonStyle","themedCallButtonStyle","dialpadComponent","Dialpad","longPressTrigger","PrimaryButton","dialpadStartCallButtonLabel","disableMaxHeight","Modal","titleAriaId","dialpadModalAriaLabel","onDismiss","isBlocking","dialpadModalTitle","IconButton","dialpadCloseModalButtonAriaLabel","CalloutWithIcon","Callout","calloutStyle","target","targetId","directionalHint","DirectionalHint","beakWidth","BEAK_WIDTH_PX","gapSpace","GAP_SPACE_PX","doNotLayer","calloutRootStackStyle","childrenGap","FontIcon","iconClass","beakCurtain","container","AddPeopleDropdown","inviteLink","onCopyInviteLink","inviteLinkCopiedRecently","setShowDialpad","announcerStrings","setAnnouncerStrings","menuStyleThemed","themedMenuStyle","copyLinkButtonStylesThemed","defaultMenuProps","useTargetWidth","onMenuOpened","copyInviteLinkButtonLabel","copyInviteLinkActionedAriaLabel","openDialpadButtonLabel","addPeopleDrawerMenuItems","setAddPeopleDrawerMenuItems","setDrawerMenuItemsForAddPeople","calloutButtonId","Announcer","ariaLive","announcementString","peoplePaneAddPeopleButtonLabel","copyInviteLinkButtonActionedLabel","AddPeopleButton","participantList","copyInviteLinkAnnouncerStrings","setCopyInviteLinkAnnouncerStrings","dateInviteLinkCopied","themedCopyLinkButtonStyles","setTimeout","setInviteLinkCopiedRecently","Date","now","PeoplePaneContent","setDrawerMenuItems","setParticipantActioned","participantListHeadingMoreButtonProps","removeParticipantFromCall","participantId","removeParticipant","addParticipantToCall","participant","addParticipant","participantListDefaultProps","removeButtonAllowed","canRemoveParticipants","setDrawerMenuItemsForParticipant","contextualMenuItems","createDefaultContextualMenuItems","isRemovable","onRemoveParticipant","myUserId","setDrawerMenuItemsForParticipantListHeadingMoreButton","onParticipantClick","peoplePaneSubTitle","peoplePaneMoreButtonAriaLabel","localParticipantUserId","menuItems","removeMenuLabel","SidePaneHeader","sidePaneCloseButtonStyles","iconHovered","iconPressed","SidePaneMobileHeader","headingText","dismissSidePaneButtonAriaLabel","onClose","dismissSidePaneButtonAriaDescription","mobilePaneButtonStylesThemed","onStarRatingSelected","StarSurveyStrings","starSurveyHelperText","starSurveyOneStarText","starSurveyTwoStarText","starSurveyThreeStarText","starSurveyFourStarText","starSurveyFiveStarText","starRatingAriaLabel","tagsSurveyStrings","tagsSurveyQuestion","tagsSurveyHelperText","tagsSurveyTextFieldDefaultText","callIssuesToTag","surveyIssues","categoryHeadings","surveyIssuesHeadingStrings","onConfirm","showFreeFormTextField","SurveyContent","showTagsSurvey","setShowTagsSurvey","ratings","setShowSubmitFeedbackButton","setRatings","selectedTags","improvementSuggestions","setIssuesSelected","setImprovementSuggestions","questionTextStyle","neutralPrimary","surveyContainerStyle","Survey","onSubmitSurvey","onSurveySubmittedCustom","onSurveyClosed","moreDetails","disableStartCallButton","issuesSelected","showSubmitFeedbackButton","showDefaultAfterSubmitScreen","setShowDefaultAfterSubmitScreen","showDefaultAfterDismissedScreen","setShowDefaultAfterDismissedScreen","submitButtonDisabled","setSubmitButtonDisabled","ThankYouForFeedbackPage","NoticePage","dataUiId","surveyTitle","showButton","rating","marginTop","surveySkipButtonLabel","surveyResults","overallRating","score","issues","audioRating","screenshareRating","videoRating","res","callId","catch","console","log","surveyConfirmButtonLabel","PeopleAndChatHeader","onChatButtonClicked","activeTab","haveMultipleTabs","returnToCallButtonAriaLabel","returnToCallButtonAriaDescription","direction","disableChatButton","chatButtonLabel","disablePeopleButton","VideoEffectsPaneContent","onDismissError","activeVideoEffectError","activeVideoEffectChange","activeVideoEffects","activeEffects","selectableVideoEffects","videoEffects","removeBackgroundEffectButtonLabel","tooltipProps","removeBackgroundTooltip","blurBackgroundEffectButtonLabel","blurBackgroundTooltip","backgroundImages","img","backgroundProps","url","tooltipText","onEffectChange","effectKey","blurEffect","effectName","type","timestamp","startVideoBackgroundEffect","updateSelectedVideoBackgroundEffect","noneEffect","stopVideoBackgroundEffects","backgroundImg","effect","replaceEffect","backgroundImageUrl","VideoEffectsPaneTrampoline","updateFocusHandle","selectedEffect","isCameraOn","isAvailable","showWarning","messageBarType","unableToStartVideoEffect","cameraOffBackgroundEffectWarningText","videoEffectsPaneBackgroundSelectionTitle","backgroundPickerStyles","selectedEffectKey","SpinnerIcon","size","COMPOSITE_ONLY_ICONS","ChevronLeft","Link","LobbyScreenConnectingToCall","LobbyScreenWaitingToBeAdmitted","LocalDeviceSettingsCamera","LocalDeviceSettingsMic","LocalDeviceSettingsSpeaker","LocalPreviewPlaceholder","LocalCameraSwitch","ControlBarChatButtonActive","ControlBarChatButtonInactive","ControlButtonCameraProhibited","ControlButtonMicProhibited","ControlButtonExitSpotlight","ControlBarPeopleButton","MoreDrawerMicrophones","MoreDrawerPeople","MoreDrawerSpeakers","MoreDrawerSelectedMicrophone","MoreDrawerSelectedSpeaker","Muted","NetworkReconnectIcon","NoticePageAccessDeniedTeamsMeeting","NoticePageJoinCallFailedDueToNoNetwork","NoticePageLeftCall","NoticePageRemovedFromCall","NoticePageNotInvitedToRoom","NoticePageRoomNotFound","NoticePageRoomNotValid","NoticePageCallRejected","NoticePageCallTimeout","PeoplePaneAddPerson","PeoplePaneOpenDialpad","DialpadStartCall","NoticePageInviteToRoomRemoved","BlurVideoBackground","RemoveVideoBackgroundEffect","GalleryOptions","OverflowGalleryTop","SpeakerGalleryLayout","DefaultGalleryLayout","FloatingLocalVideoGalleryLayout","FocusedContentGalleryLayout","LargeGalleryLayout","DefaultCustomButton","PhoneNumberButton","JoinByPhoneDialStepIcon","JoinByPhoneConferenceIdIcon","JoinByPhoneWaitToBeAdmittedIcon","PeoplePaneMoreButton","StopAllSpotlightMenuButton","DEFAULT_COMPOSITE_ICONS","CallCompositeIcon","CallWithChatCompositeIcon","compositeMinWidthRem","MODAL_PIP_DEFAULT_PX","rightPositionPx","bottomPositionPx","widthPx","heightPx","getPipStyles","boxShadow","elevation8","bottom","PIPContainerStyle","pointerEvents","hiddenStyle","modalStyle","touchAction","outlineOffset","modalLayerHostStyle","mobilePaneControlBarStyle","mobilePaneBackButtonStyles","mobilePaneHiddenIconStyles","mobilePaneButtonStyles","labelChecked","hiddenStyles","sidePaneStyles","availableSpaceStyles","sidePaneTokens","paneHighContrastStyles","sidePaneHeaderStyles","sidePaneHeaderContainerStyles","paneBodyContainer","flexDirection","scrollableContainer","flexBasis","flexGrow","scrollableContainerContents","containerContextStyles","peoplePaneContainerTokens","participantListStack","participantListContainerStyle","overflowX","participantListStyle","participantItemStyles","participantListMobileStyle","displayNameStyles","headingMoreButtonStyles","rootHovered","rootPressed","phoneInfoContainerTokens","phoneInfoContainerStyle","titleClassName","titleContainerClassName","paddingBottom","phoneInfoLabelStyle","phoneInfoTextStyle","phoneInfoIcon","themeLighter","phoneInfoInstructionLine","phoneInfoStep","phoneInfoIconStyle","infoConnectionLinkStyle","isBoolean","useMinMaxDragPosition","modalHostRef","document","getElementById","modalHostWidth","modalHostHeight","x","y"],"sourceRoot":""}