{"version":3,"file":"static/js/43_5df03f4254f155423aa3.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.10.0_6x3ev4d3227te4dl7uene6lmqi/node_modules/@azure/communication-react/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DevicesButton } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { concatButtonBaseStyles, devicesButtonWithIncreasedTouchTargets } from '../../styles/Buttons.styles';\n/** @private */\nexport const Devices = (props) => {\n const devicesButtonProps = usePropsFor(DevicesButton);\n const augmentedDeviceButtonProps = useMemo(() => (Object.assign({}, devicesButtonProps)), [devicesButtonProps]);\n const styles = useMemo(() => { var _a; return concatButtonBaseStyles(props.increaseFlyoutItemSize ? devicesButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.increaseFlyoutItemSize, props.styles]);\n return React.createElement(DevicesButton\n /* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */ , Object.assign({ \n /* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */ persistMenu: true }, augmentedDeviceButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, \"data-ui-id\": \"calling-composite-devices-button\", disabled: props.disabled }));\n};\n//# sourceMappingURL=Devices.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ParticipantsButton } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { concatButtonBaseStyles, participantButtonWithIncreasedTouchTargets } from '../../styles/Buttons.styles';\n/** @private */\nexport const Participants = (props) => {\n const participantsButtonProps = usePropsFor(ParticipantsButton);\n const participantsButtonStyles = useMemo(() => { var _a; return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.increaseFlyoutItemSize, props.styles]);\n return React.createElement(ParticipantsButton, Object.assign({ \"data-ui-id\": \"call-composite-participants-button\" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled(props.option) || props.disabled, styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile }));\n};\nconst isDisabled = (option) => {\n if (option === undefined || option === true || option === false) {\n return false;\n }\n return option.disabled;\n};\n//# sourceMappingURL=Participants.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { memoizeFunction, Stack, useTheme } from '@fluentui/react';\nimport { ControlBar, DevicesButton } from \"../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { Camera } from './buttons/Camera';\nimport { Devices } from './buttons/Devices';\nimport { EndCall } from './buttons/EndCall';\nimport { Microphone } from './buttons/Microphone';\nimport { Participants } from './buttons/Participants';\nimport { ScreenShare } from './buttons/ScreenShare';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n/* @conditional-compile-remove(raise-hand) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { MoreButton } from '../../common/MoreButton';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(raise-hand) */\nimport { usePropsFor } from '../hooks/usePropsFor';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(raise-hand) */\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\nimport { isDisabled } from '../utils';\nimport { callControlsContainerStyles } from '../styles/CallPage.styles';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHand } from './buttons/RaiseHand';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaiseHandButton } from \"../../../../../react-components/src\";\nimport { _generateDefaultDeviceMenuProps } from \"../../../../../react-components/src\";\nimport { CUSTOM_BUTTON_OPTIONS, generateCustomCallControlBarButton, generateCustomCallDesktopOverflowButtons, onFetchCustomButtonPropsTrampoline } from '../../common/ControlBar/CustomButton';\n// Enforce a background color on control bar to ensure it matches the composite background color.\nconst controlBarStyles = memoizeFunction((background) => ({\n root: {\n background: background\n }\n}));\n/**\n * @private\n */\nexport const CallControls = (props) => {\n var _a;\n const options = useMemo(() => typeof props.options === 'boolean' ? {} : props.options, [props.options]);\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n /* @conditional-compile-remove(raise-hand) */\n const localeStrings = useLocale();\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n /* @conditional-compile-remove(raise-hand) */\n const moreButtonStrings = useMemo(() => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }), [localeStrings]);\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonProps = usePropsFor(RaiseHandButton);\n const devicesButtonProps = usePropsFor(DevicesButton);\n let numberOfButtons = 0;\n const screenShareButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.screenShareButton);\n if (screenShareButtonIsEnabled) {\n numberOfButtons++;\n }\n const microphoneButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.microphoneButton);\n if (microphoneButtonIsEnabled) {\n numberOfButtons++;\n }\n const cameraButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.cameraButton);\n if (cameraButtonIsEnabled) {\n numberOfButtons++;\n }\n if (isEnabled(options === null || options === void 0 ? void 0 : options.endCallButton)) {\n numberOfButtons++;\n }\n const showParticipantsButtonInControlBar = isEnabled(options === null || options === void 0 ? void 0 : options.participantsButton);\n if (showParticipantsButtonInControlBar) {\n numberOfButtons++;\n }\n const moreButtonContextualMenuItems = () => {\n const items = [];\n if (props.isMobile && props.onPeopleButtonClicked && isEnabled(options === null || options === void 0 ? void 0 : options.participantsButton)) {\n items.push({\n key: 'peopleButtonKey',\n text: localeStrings.component.strings.participantsButton.label,\n onClick: () => {\n if (props.onPeopleButtonClicked) {\n props.onPeopleButtonClicked();\n }\n },\n iconProps: {\n iconName: 'ControlButtonParticipantsContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton),\n ['data-ui-id']: 'call-composite-more-menu-people-button'\n });\n }\n return items;\n };\n const customDrawerButtons = useMemo(() => generateCustomCallDesktopOverflowButtons(onFetchCustomButtonPropsTrampoline(typeof options === 'object' ? options : undefined), typeof options === 'object' ? options.displayType : undefined), [options]);\n const moreButtonMenuItems = moreButtonContextualMenuItems();\n let showMoreButton = isEnabled(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonMenuItems.length > 0;\n if (showMoreButton) {\n numberOfButtons++;\n }\n const customButtons = useMemo(() => generateCustomCallControlBarButton(onFetchCustomButtonPropsTrampoline(options), options === null || options === void 0 ? void 0 : options.displayType), [options]);\n numberOfButtons += React.Children.count(customButtons['primary']) + React.Children.count(customButtons['secondary']);\n let showDevicesButtonInControlBar = isEnabled(options === null || options === void 0 ? void 0 : options.devicesButton);\n if (showDevicesButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {\n numberOfButtons++;\n }\n else {\n showDevicesButtonInControlBar = false;\n showMoreButton = isEnabled(options === null || options === void 0 ? void 0 : options.moreButton);\n }\n /* @conditional-compile-remove(raise-hand) */\n const raiseHandButtonIsEnabled = isEnabled(options === null || options === void 0 ? void 0 : options.raiseHandButton);\n /* @conditional-compile-remove(raise-hand) */\n let showRaiseHandButtonInControlBar = raiseHandButtonIsEnabled;\n /* @conditional-compile-remove(raise-hand) */\n if (showRaiseHandButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {\n numberOfButtons++;\n }\n else {\n // If more button is not present but enabled then replace previous button (devices button) with more button\n if (!showMoreButton && isEnabled(options === null || options === void 0 ? void 0 : options.moreButton)) {\n showMoreButton = true;\n showDevicesButtonInControlBar = false;\n }\n showRaiseHandButtonInControlBar = false;\n }\n if (!showDevicesButtonInControlBar) {\n const devicesButtonMenu = _generateDefaultDeviceMenuProps(devicesButtonProps, localeStrings.component.strings.devicesButton);\n moreButtonMenuItems.push({\n key: 'devicesButtonKey',\n text: localeStrings.component.strings.devicesButton.label,\n iconProps: {\n iconName: 'ControlButtonOptions',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n subMenuProps: devicesButtonMenu,\n ['data-ui-id']: 'call-composite-more-menu-devices-button'\n });\n }\n /* @conditional-compile-remove(raise-hand) */\n if (!showRaiseHandButtonInControlBar) {\n moreButtonMenuItems.push({\n key: 'raiseHandButtonKey',\n text: raiseHandButtonProps.checked ? localeStrings.component.strings.raiseHandButton.onLabel : localeStrings.component.strings.raiseHandButton.offLabel,\n onClick: () => {\n if (raiseHandButtonProps.onToggleRaiseHand) {\n raiseHandButtonProps.onToggleRaiseHand();\n }\n },\n iconProps: {\n iconName: 'RaiseHandContextualMenuItem',\n styles: {\n root: {\n lineHeight: 0\n }\n }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: isDisabled(options === null || options === void 0 ? void 0 : options.raiseHandButton),\n ['data-ui-id']: 'call-composite-more-menu-raise-hand-button'\n });\n }\n // Custom Buttons in More Button Menu should always be the last items pushed into the moreButtonMenuItems array\n if (customDrawerButtons['primary']) {\n customDrawerButtons['primary'].slice(props.isMobile ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach(element => {\n moreButtonMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n }\n if (customDrawerButtons['secondary']) {\n customDrawerButtons['secondary'].forEach(element => {\n moreButtonMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n }\n if (customDrawerButtons['overflow']) {\n customDrawerButtons['overflow'].forEach(element => {\n moreButtonMenuItems.push(Object.assign({ itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n } }, element));\n });\n }\n const theme = useTheme();\n // when props.options is false then we want to hide the whole control bar.\n if (props.options === false) {\n return React.createElement(React.Fragment, null);\n }\n return React.createElement(Stack, { horizontalAlign: \"center\", className: callControlsContainerStyles },\n React.createElement(Stack.Item, null,\n React.createElement(ControlBar, { layout: props.displayVertical ? 'vertical' : 'horizontal', styles: controlBarStyles(theme.semanticColors.bodyBackground) },\n microphoneButtonIsEnabled && React.createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.microphoneButton) }),\n cameraButtonIsEnabled && React.createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.cameraButton) }),\n showRaiseHandButtonInControlBar && React.createElement(RaiseHand, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),\n screenShareButtonIsEnabled && React.createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.screenShareButton) }),\n showParticipantsButtonInControlBar && React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) }),\n showDevicesButtonInControlBar && React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) }), (_a = customButtons['primary']) === null || _a === void 0 ? void 0 :\n _a.slice(0, props.isMobile ? 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}`, \n // styles={commonButtonStyles}\n showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', disableTooltip: props.isMobile });\n }),\n showMoreButton && React.createElement(MoreButton, { disableTooltip: props.isMobile, \"data-ui-id\": \"common-call-composite-more-button\", strings: moreButtonStrings, menuIconProps: {\n hidden: true\n }, menuProps: {\n items: moreButtonMenuItems\n }, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact' }),\n isEnabled(options === null || options === void 0 ? void 0 : options.endCallButton) && React.createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType }))));\n};\nconst isEnabled = (option) => option !== false;\n/** @private */\nexport const isRoomsCallTrampoline = (adapter) => {\n return false;\n};\n//# sourceMappingURL=CallControls.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { AnimationStyles, mergeStyles, Stack, Text, useTheme } from '@fluentui/react';\nimport React from 'react';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { useLocale } from '../../localization';\n/**\n * Notify the user that they're muted.\n */\nexport function MutedNotification(props) {\n const locale = useLocale();\n const theme = useTheme();\n return React.createElement(Stack, { horizontal: true, horizontalAlign: \"center\", className: mergeStyles(props.speakingWhileMuted === true ? isSpeakingAndMutedAnimationStyles : isNotSpeakingAndMutedAnimationStyles) },\n React.createElement(Stack, { horizontal: true, className: mergeStyles(stackStyle(theme)) },\n React.createElement(CallCompositeIcon, { iconName: \"Muted\", className: mergeStyles(iconStyle(theme)) }),\n React.createElement(Text, { className: mergeStyles(textStyle(theme)), \"aria-live\": 'polite' }, locale.strings.call.mutedMessage)));\n}\nconst stackStyle = (theme) => {\n return {\n background: theme.palette.black,\n gap: `1rem`,\n padding: `1rem`,\n borderRadius: theme.effects.roundedCorner4,\n width: 'fit-content',\n opacity: 0.8\n };\n};\nconst iconStyle = (theme) => {\n return {\n color: theme.palette.white,\n maxHeight: '1.25rem'\n };\n};\nconst textStyle = (theme) => {\n return {\n color: theme.palette.white,\n fontSize: `1rem`\n };\n};\nconst isSpeakingAndMutedAnimationStyles = Object.assign({}, AnimationStyles.fadeIn100);\nconst isNotSpeakingAndMutedAnimationStyles = Object.assign(Object.assign({}, AnimationStyles.fadeOut200), { display: 'none' });\n//# sourceMappingURL=MutedNotification.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nconst PEOPLE_SIDE_PANE_ID = 'people';\n/** @private */\nexport const usePeoplePane = (props) => {\n const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef } = props;\n const closePane = useCallback(() => {\n var _a;\n updateSidePaneRenderer(undefined);\n (_a = peopleButtonRef === null || peopleButtonRef === void 0 ? void 0 : peopleButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, [peopleButtonRef, updateSidePaneRenderer]);\n const localeStrings = useLocale().strings.call;\n const onRenderHeader = useCallback(() => React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false }), [mobileView, closePane, localeStrings]);\n const onRenderContent = useCallback(() => {\n return React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView });\n }, [inviteLink, mobileView, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems]);\n const sidePaneRenderer = useMemo(() => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: PEOPLE_SIDE_PANE_ID\n }), [onRenderContent, onRenderHeader]);\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n const isOpen = useIsParticularSidePaneOpen(PEOPLE_SIDE_PANE_ID);\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n return {\n openPeoplePane: openPane,\n closePeoplePane: closePane,\n isPeoplePaneOpen: isOpen\n };\n};\n//# sourceMappingURL=usePeoplePane.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(capabilities) */\nimport React from 'react';\n/* @conditional-compile-remove(capabilities) */\nimport { MessageBar, MessageBarType, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(capabilities) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(capabilities) */\n/**\n * Notification bar for capabilities changed\n * @private\n */\nexport const CapabilitiesChangedNotificationBar = (props) => {\n const locale = useLocale();\n return React.createElement(Stack, { \"data-ui-id\": \"capabilities-changed-notification-bar-stack\" }, props.capabilitiesChangedNotifications.map(notification => {\n const message = getCapabilityChangedNotificationString(notification, locale.strings.call.capabilityChangedNotification);\n if (!message) {\n return null;\n }\n const iconProps = getCustomMessageBarIconProps(notification);\n return React.createElement(MessageBar, { key: notification.capabilityName, styles: messageBarStyles, messageBarType: MessageBarType.warning, dismissIconProps: {\n iconName: 'ErrorBarClear'\n }, onDismiss: () => props.onDismissNotification(notification), messageBarIconProps: iconProps }, message);\n }));\n};\n/* @conditional-compile-remove(capabilities) */\nconst getCapabilityChangedNotificationString = (notification, strings) => {\n var _a, _b, _c, _d, _e, _f;\n switch (notification.capabilityName) {\n case 'turnVideoOn':\n if (notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged') {\n return notification.isPresent ? (_a = strings === null || strings === void 0 ? void 0 : strings.turnVideoOn) === null || _a === void 0 ? void 0 : _a.grantedDueToMeetingOption : (_b = strings === null || strings === void 0 ? void 0 : strings.turnVideoOn) === null || _b === void 0 ? void 0 : _b.lostDueToMeetingOption;\n }\n break;\n case 'unmuteMic':\n if (notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged') {\n return notification.isPresent ? (_c = strings === null || strings === void 0 ? void 0 : strings.unmuteMic) === null || _c === void 0 ? void 0 : _c.grantedDueToMeetingOption : (_d = strings === null || strings === void 0 ? void 0 : strings.unmuteMic) === null || _d === void 0 ? void 0 : _d.lostDueToMeetingOption;\n }\n break;\n case 'shareScreen':\n if (notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Presenter') {\n return (_e = strings === null || strings === void 0 ? void 0 : strings.shareScreen) === null || _e === void 0 ? void 0 : _e.grantedDueToRoleChangeToPresenter;\n }\n if (!notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Attendee') {\n return (_f = strings === null || strings === void 0 ? void 0 : strings.shareScreen) === null || _f === void 0 ? void 0 : _f.lostDueToRoleChangeToAttendee;\n }\n break;\n }\n return undefined;\n};\n/* @conditional-compile-remove(capabilities) */\nconst getCustomMessageBarIconProps = (notification) => {\n let iconName = undefined;\n switch (notification.capabilityName) {\n case 'turnVideoOn':\n if (notification.isPresent) {\n iconName = 'ControlButtonCameraOn';\n }\n else {\n iconName = 'ControlButtonCameraProhibited';\n }\n break;\n case 'unmuteMic':\n if (notification.isPresent) {\n iconName = 'ControlButtonMicOn';\n }\n else {\n iconName = 'ControlButtonMicProhibited';\n }\n break;\n default:\n return undefined;\n }\n return {\n iconName,\n styles: {\n root: {\n '> *': {\n height: '1rem',\n width: '1rem'\n }\n }\n }\n };\n};\n/* @conditional-compile-remove(capabilities) */\nconst messageBarStyles = {\n innerText: {\n alignSelf: 'center'\n },\n icon: {\n height: 0\n },\n content: {\n lineHeight: 'inherit'\n },\n dismissal: {\n height: 0,\n paddingTop: '0.8rem'\n }\n};\n//# sourceMappingURL=CapabilitiesChangedNotificationBar.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { _isInLobbyOrConnecting } from \"../../../../../calling-component-bindings/src\";\nimport { _ComplianceBanner, _DrawerMenu, _useContainerHeight, _useContainerWidth, ErrorBar, useTheme } from \"../../../../../react-components/src\";\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsBanner } from '../../common/CaptionsBanner';\nimport { containerDivStyles } from '../../common/ContainerRectProps';\nimport { compositeMinWidthRem } from '../../common/styles/Composite.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { CallControls } from '../components/CallControls';\nimport { CommonCallControlBar } from '../../common/ControlBar/CommonCallControlBar';\nimport { callArrangementContainerStyles, notificationsContainerStyles, containerStyleDesktop, containerStyleMobile, mediaGalleryContainerStyles, galleryParentContainerStyles, bannerNotificationStyles, CONTROL_BAR_Z_INDEX, DRAWER_Z_INDEX } from '../styles/CallPage.styles';\nimport { MutedNotification } from './MutedNotification';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\n/* @conditional-compile-remove(close-captions) */\nimport { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useVideoEffectsPane, VIDEO_EFFECTS_SIDE_PANE_ID, VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM } from './SidePane/useVideoEffectsPane';\nimport { isDisabled } from '../utils';\nimport { useIsSidePaneOpen } from './SidePane/SidePaneProvider';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useIsParticularSidePaneOpen } from './SidePane/SidePaneProvider';\nimport { ModalLocalAndRemotePIP } from '../../common/ModalLocalAndRemotePIP';\nimport { getPipStyles } from '../../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useMinMaxDragPosition } from '../../common/utils';\n/* @conditional-compile-remove(video-background-effects) */\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n/* @conditional-compile-remove(capabilities) */\nimport { CapabilitiesChangedNotificationBar } from './CapabilitiesChangedNotificationBar';\nimport { useLocale } from '../../localization';\n/**\n * @private\n */\nexport const CallArrangement = (props) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const containerClassName = useMemo(() => {\n return props.mobileView ? containerStyleMobile : containerStyleDesktop;\n }, [props.mobileView]);\n const theme = useTheme();\n const callGalleryStyles = useMemo(() => galleryParentContainerStyles(theme.palette.neutralLighterAlt), [theme.palette.neutralLighterAlt]);\n const peopleButtonRef = useRef(null);\n const cameraButtonRef = useRef(null);\n const containerRef = useRef(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n const isInLobby = _isInLobbyOrConnecting(useSelector(callStatusSelector).callStatus);\n const { updateSidePaneRenderer } = props;\n const adapter = useAdapter();\n const [drawerMenuItems, setDrawerMenuItems] = useState([]);\n const peoplePaneProps = useMemo(() => {\n var _a;\n return ({\n updateSidePaneRenderer,\n setDrawerMenuItems,\n inviteLink: props.callControlProps.callInvitationURL,\n onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems,\n mobileView: props.mobileView,\n peopleButtonRef\n });\n }, [updateSidePaneRenderer, props.callControlProps.callInvitationURL, (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems, props.mobileView, peopleButtonRef]);\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(peoplePaneProps);\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n }\n else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n const isSidePaneOpen = useIsSidePaneOpen();\n const [renderGallery, setRenderGallery] = useState(!isSidePaneOpen && props.mobileView);\n useEffect(() => {\n if (isSidePaneOpen && props.mobileView) {\n setRenderGallery(false);\n }\n else {\n setRenderGallery(true);\n }\n }, [props.mobileView, isSidePaneOpen]);\n const locale = useLocale();\n const modalStrings = {\n dismissModalAriaLabel: locale.strings.call.dismissModalAriaLabel\n };\n const isMobileWithActivePane = props.mobileView && isSidePaneOpen;\n const callCompositeContainerCSS = useMemo(() => {\n return {\n display: isMobileWithActivePane ? 'none' : 'flex',\n minWidth: props.mobileView ? 'unset' : `${compositeMinWidthRem}rem`,\n width: '100%',\n height: '100%',\n position: 'relative'\n };\n }, [isMobileWithActivePane, props.mobileView]);\n /* @conditional-compile-remove(video-background-effects) */\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n /* @conditional-compile-remove(video-background-effects) */\n const { openVideoEffectsPane } = useVideoEffectsPane(props.updateSidePaneRenderer, props.mobileView, props.latestErrors, props.onDismissError, cameraButtonRef);\n const [showDrawer, setShowDrawer] = useState(false);\n const onMoreButtonClicked = useCallback(() => {\n setShowDrawer(true);\n }, []);\n const closeDrawer = useCallback(() => {\n setShowDrawer(false);\n }, []);\n const onMoreDrawerPeopleClicked = useCallback(() => {\n setShowDrawer(false);\n togglePeoplePane();\n }, [togglePeoplePane]);\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n let canUnmute = true;\n let filteredLatestErrors = props.errorBarProps !== false ? props.latestErrors : [];\n /* @conditional-compile-remove(video-background-effects) */\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n /* @conditional-compile-remove(video-background-effects) */\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n /* @conditional-compile-remove(video-background-effects) */\n if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter(e => e.type !== 'unableToStartVideoEffect');\n }\n /* @conditional-compile-remove(close-captions) */\n const isTeamsCall = useSelector(getIsTeamsCall);\n /* @conditional-compile-remove(close-captions) */\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n /* @conditional-compile-remove(close-captions) */\n const isCaptionsOn = useSelector(getCaptionsStatus);\n const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);\n const pipStyles = useMemo(() => getPipStyles(theme), [theme]);\n const verticalControlBar = props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;\n /* @conditional-compile-remove(capabilities) */\n // Filter out shareScreen capability notifications if on mobile\n const filteredCapabilitesChangedNotifications = props.mobileView ? (_b = props.capabilitiesChangedNotificationBarProps) === null || _b === void 0 ? void 0 : _b.capabilitiesChangedNotifications.filter(notification => notification.capabilityName !== 'shareScreen') : (_c = props.capabilitiesChangedNotificationBarProps) === null || _c === void 0 ? void 0 : _c.capabilitiesChangedNotifications;\n return React.createElement(\"div\", { ref: containerRef, className: mergeStyles(containerDivStyles), id: props.id },\n React.createElement(Stack, { verticalFill: true, horizontalAlign: \"stretch\", className: containerClassName, \"data-ui-id\": props.dataUiId },\n React.createElement(Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },\n ((_d = props.callControlProps) === null || _d === void 0 ? void 0 : _d.options) !== false && !isMobileWithActivePane && React.createElement(Stack, { verticalAlign: 'center', className: mergeStyles({\n zIndex: CONTROL_BAR_Z_INDEX,\n padding: verticalControlBar ? '0.25rem' : 'unset'\n }) }, isLegacyCallControlEnabled((_e = props.callControlProps) === null || _e === void 0 ? void 0 : _e.options) ? React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, displayVertical: verticalControlBar })) : React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, \n /* @conditional-compile-remove(close-captions) */ isCaptionsSupported: isTeamsCall && hasJoinedCall, \n /* @conditional-compile-remove(close-captions) */ isCaptionsOn: isCaptionsOn, \n /* @conditional-compile-remove(video-background-effects) */ onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, \n /* @conditional-compile-remove(gallery-layouts) */ onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, \n /* @conditional-compile-remove(gallery-layouts) */ onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, \n /* @conditional-compile-remove(gallery-layouts) */ userSetGalleryLayout: props.userSetGalleryLayout, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef }))),\n ((_f = props.callControlProps) === null || _f === void 0 ? void 0 : _f.options) !== false && showDrawer && React.createElement(Stack, { styles: drawerContainerStylesValue },\n React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked, isCaptionsSupported: isTeamsCall && hasJoinedCall, \n /* @conditional-compile-remove(gallery-layouts) */ onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, \n /* @conditional-compile-remove(gallery-layouts) */ userSetGalleryLayout: props.userSetGalleryLayout })),\n React.createElement(Stack, { horizontal: true, grow: true },\n React.createElement(Stack.Item, { style: callCompositeContainerCSS },\n React.createElement(Stack.Item, { styles: callGalleryStyles, grow: true },\n React.createElement(Stack, { verticalFill: true, styles: mediaGalleryContainerStyles },\n React.createElement(Stack.Item, { styles: notificationsContainerStyles },\n React.createElement(Stack, { styles: bannerNotificationStyles },\n React.createElement(_ComplianceBanner, Object.assign({}, props.complianceBannerProps))),\n props.errorBarProps !== false && React.createElement(Stack, { styles: bannerNotificationStyles },\n React.createElement(ErrorBar, Object.assign({}, props.errorBarProps, { onDismissError: props.onDismissError, activeErrorMessages: filteredLatestErrors }))),\n props.capabilitiesChangedNotificationBarProps && props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && React.createElement(Stack, { styles: bannerNotificationStyles },\n React.createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] }))),\n canUnmute && !!props.mutedNotificationProps && React.createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps))),\n renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent(),\n true && React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })))),\n React.createElement(SidePane, { mobileView: props.mobileView, \n /* @conditional-compile-remove(video-background-effects) */ maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options) ? undefined : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' && isDisabled((_g = props.callControlProps.options) === null || _g === void 0 ? void 0 : _g.participantsButton), onChatButtonClicked: (_h = props.mobileChatTabHeader) === null || _h === void 0 ? void 0 : _h.onClick, disableChatButton: (_j = props.mobileChatTabHeader) === null || _j === void 0 ? void 0 : _j.disabled }),\n props.mobileView && React.createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, strings: modalStrings, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition, onDismissSidePane: () => {\n closePeoplePane();\n if (props.onCloseChatPane) {\n props.onCloseChatPane();\n }\n } }),\n drawerMenuItems.length > 0 && React.createElement(Stack, { styles: drawerContainerStyles() },\n React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems }))))));\n};\nconst isLegacyCallControlEnabled = (options) => {\n return !!options && options !== true && (options === null || options === void 0 ? void 0 : options.legacyControlBarExperience) === true;\n};\nconst shouldShowPeopleTabHeaderButton = (callControls) => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.participantsButton !== false && callControls.peopleButton !== false;\n};\n//# sourceMappingURL=CallArrangement.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n// By default, absolute positioned elements are overlayed over static ones.\n// So we need to explicitly layer the background and contents.\nconst OVERLAY_BACKGROUND_ZINDEX = 0;\nconst OVERLAY_CONTENT_ZINDEX = OVERLAY_BACKGROUND_ZINDEX + 1;\n/**\n * @private\n */\nexport const containerStyles = {\n root: {\n height: '100%',\n width: '100%',\n position: 'relative'\n }\n};\n/**\n * @private\n */\nexport const overlayBackgroundStyles = (palette, isVideoReady) => {\n return {\n position: 'absolute',\n height: '100%',\n width: '100%',\n background: isVideoReady ? 'black' : palette.neutralLighterAlt,\n opacity: isVideoReady ? 0.6 : 1,\n zIndex: OVERLAY_BACKGROUND_ZINDEX\n };\n};\n/**\n * @private\n */\nexport const overlayContentStyles = {\n height: '100%',\n width: '100%',\n zIndex: OVERLAY_CONTENT_ZINDEX\n};\n/**\n * @private\n */\nexport const videoTileStyles = {\n root: {\n height: '100%',\n width: '100%'\n }\n};\n//# sourceMappingURL=ExpandedLocalVideoTile.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useEffect } from 'react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { StreamMedia, VideoTile, useTheme } from \"../../../../../react-components/src\";\nimport { containerStyles, overlayBackgroundStyles, overlayContentStyles, videoTileStyles } from '../styles/ExpandedLocalVideoTile.styles';\nconst onRenderEmptyPlaceholder = () => React.createElement(React.Fragment, null);\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n};\n/**\n * @private\n */\nexport const ExpandedLocalVideoTile = (props) => {\n var _a;\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;\n const renderElement = videoStream === null || videoStream === void 0 ? void 0 : videoStream.renderElement;\n const palette = useTheme().palette;\n useEffect(() => {\n if (videoStream && isVideoReady) {\n props.onCreateLocalStreamView && props.onCreateLocalStreamView(localVideoViewOptions).catch(err => console.log('Can not render video', err));\n }\n }, [isVideoReady, videoStream, props, renderElement]);\n return React.createElement(Stack, { horizontalAlign: \"center\", verticalAlign: \"center\", styles: containerStyles, grow: true },\n React.createElement(VideoTile, { styles: videoTileStyles, renderElement: renderElement ? React.createElement(StreamMedia, { videoStreamElement: renderElement }) : undefined, onRenderPlaceholder: onRenderEmptyPlaceholder }, props.overlayContent && React.createElement(React.Fragment, null,\n React.createElement(Stack, { className: mergeStyles(overlayBackgroundStyles(palette, isVideoReady)) }),\n React.createElement(Stack, { horizontalAlign: \"center\", verticalAlign: \"center\", className: mergeStyles(overlayContentStyles) }, props.overlayContent))));\n};\n//# sourceMappingURL=ExpandedLocalVideoTile.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useMemo } from 'react';\nimport { _LocalVideoTile, _RemoteVideoTile, _PictureInPictureInPicture } from \"../../../../../react-components/src\";\nimport { useLocale } from '../../localization';\n/**\n * @private\n */\nexport const LocalAndRemotePIP = (props) => {\n var _a, _b;\n const { localParticipant, dominantRemoteParticipant, onCreateLocalStreamView, onDisposeLocalStreamView, onCreateRemoteStreamView, onDisposeRemoteStreamView } = props;\n const localVideoTileProps = useMemo(() => {\n var _a, _b;\n return ({\n onCreateLocalStreamView,\n onDisposeLocalStreamView,\n localVideoViewOptions,\n displayName: localParticipant.displayName,\n showLabel: false,\n showMuteIndicator: false,\n showCameraSwitcherInLocalPreview: false,\n isAvailable: (_a = localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable,\n renderElement: (_b = localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand: localParticipant.raisedHand\n });\n }, [localParticipant.displayName, (_a = localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, (_b = localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, onCreateLocalStreamView, onDisposeLocalStreamView,\n localParticipant.raisedHand]);\n const remoteVideoTileProps = useMemo(() => {\n var _a, _b, _c;\n return !dominantRemoteParticipant ? undefined : {\n remoteParticipant: dominantRemoteParticipant,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView,\n remoteVideoViewOptions,\n displayName: dominantRemoteParticipant === null || dominantRemoteParticipant === void 0 ? void 0 : dominantRemoteParticipant.displayName,\n showLabel: false,\n showMuteIndicator: false,\n isAvailable: (_a = dominantRemoteParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable,\n isReceiving: (_b = dominantRemoteParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.isReceiving,\n renderElement: (_c = dominantRemoteParticipant.videoStream) === null || _c === void 0 ? void 0 : _c.renderElement,\n userId: dominantRemoteParticipant.userId,\n key: dominantRemoteParticipant.userId\n };\n }, [dominantRemoteParticipant, onCreateRemoteStreamView, onDisposeRemoteStreamView]);\n const locale = useLocale();\n const ariaLabel = locale.strings.callWithChat.pictureInPictureTileAriaLabel;\n const strings = useMemo(() => ({\n rootAriaLabel: ariaLabel\n }), [ariaLabel]);\n // If there are no remote participants, show the local participant as the primary tile\n const primaryTileProps = useMemo(() => ({\n children: remoteVideoTileProps ? React.createElement(_RemoteVideoTile, Object.assign({}, remoteVideoTileProps)) : React.createElement(_LocalVideoTile, Object.assign({}, localVideoTileProps)),\n // TODO: when the calling SDK provides height/width stream information - update this to reflect the stream orientation.\n orientation: 'portrait'\n }), [localVideoTileProps, remoteVideoTileProps]);\n // If we are showing the local participant as the primary tile, show nothing for the secondary tile\n const secondaryTileProps = useMemo(() => remoteVideoTileProps ? {\n children: React.createElement(_LocalVideoTile, Object.assign({}, localVideoTileProps, { personaMinSize: 20 })),\n // TODO: when the calling SDK provides height/width stream information - update this to reflect the stream orientation.\n orientation: 'portrait'\n } : undefined, [localVideoTileProps, remoteVideoTileProps]);\n return React.createElement(_PictureInPictureInPicture, { onClick: props.onClick, strings: strings, primaryTile: primaryTileProps, secondaryTile: secondaryTileProps });\n};\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n};\nconst remoteVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: false\n};\n//# sourceMappingURL=LocalAndRemotePIP.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useCallback, useMemo } from 'react';\nimport { Stack } from '@fluentui/react';\nimport { containerContextStyles, paneBodyContainer, scrollableContainer, scrollableContainerContents } from '../../../common/styles/ParticipantContainer.styles';\nimport { availableSpaceStyles, sidePaneStyles, sidePaneTokens } from '../../../common/styles/Pane.styles';\nimport { useSidePaneContext } from './SidePaneProvider';\nimport { PeopleAndChatHeader } from '../../../common/TabHeader';\nimport { hiddenStyles } from '../../../common/styles/Pane.styles';\n/** @private */\nexport const SidePane = (props) => {\n var _a;\n const { sidePaneRenderer, overrideSidePane } = useSidePaneContext();\n const renderingHiddenOverrideContent = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.renderer.contentRenderer) && overrideSidePane.persistRenderingWhenClosed && !overrideSidePane.isActive;\n const renderingOnlyHiddenContent = renderingHiddenOverrideContent && !sidePaneRenderer;\n const maxWidthStyles = useMemo(() => sidePaneStyles(props.maxWidth), [props.maxWidth]);\n const paneStyles = renderingOnlyHiddenContent ? hiddenStyles : props.mobileView ? availableSpaceStyles : maxWidthStyles;\n const Header = (_a = ((overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? overrideSidePane.renderer.headerRenderer : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.headerRenderer)) !== null && _a !== void 0 ? _a : EmptyElement;\n /**\n * Legacy code to support old behavior of showing chat and people tab headers on mobile side pane.\n * To be removed in breaking change.\n */\n const overrideSidePaneId = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? overrideSidePane.renderer.id : undefined;\n const { updateSidePaneRenderer } = props;\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n }, [updateSidePaneRenderer]);\n const LegacyHeader = useMemo(() => {\n var _a;\n return React.createElement(PeopleAndChatHeader, { onClose: overrideSidePaneId === 'chat' ? (_a = props.onChatButtonClicked) !== null && _a !== void 0 ? _a : noop : closePane, activeTab: (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people' ? 'people' : 'chat', \n // legacy arguments to be removed in breaking change:\n disablePeopleButton: props.disablePeopleButton, disableChatButton: props.disableChatButton, onPeopleButtonClicked: (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people' ? noop : props.onPeopleButtonClicked, onChatButtonClicked: overrideSidePaneId === 'chat' ? noop : props.onChatButtonClicked });\n }, [overrideSidePaneId, props.onChatButtonClicked, props.onPeopleButtonClicked, props.disablePeopleButton, props.disableChatButton, sidePaneRenderer, closePane]);\n const HeaderToRender = props.mobileView && (overrideSidePaneId === 'chat' || (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? LegacyHeader : Header();\n const ContentRender = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? undefined : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.contentRenderer;\n const OverrideContentRender = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed) ? overrideSidePane.renderer.contentRenderer : undefined;\n if (!ContentRender && !OverrideContentRender) {\n return React.createElement(EmptyElement, null);\n }\n return React.createElement(Stack, { verticalFill: true, grow: true, styles: paneStyles, \"data-ui-id\": \"SidePane\", tokens: props.mobileView ? {} : sidePaneTokens },\n HeaderToRender,\n React.createElement(Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },\n React.createElement(Stack, { verticalFill: true, styles: scrollableContainer },\n ContentRender && React.createElement(Stack.Item, { verticalFill: true, styles: scrollableContainerContents },\n React.createElement(Stack, { styles: containerContextStyles },\n React.createElement(ContentRender, null))),\n OverrideContentRender && React.createElement(Stack.Item, { verticalFill: true, styles: !(overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) && (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed) ? hiddenStyles : scrollableContainerContents },\n React.createElement(Stack, { styles: containerContextStyles },\n React.createElement(OverrideContentRender, null))))));\n};\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => { };\nconst EmptyElement = () => React.createElement(React.Fragment, null);\n//# sourceMappingURL=SidePane.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { createContext, useContext } from 'react';\n/**\n * Context for side pane interaction\n *\n * @private\n */\nexport const SidePaneContext = createContext({});\n/**\n * Provider to provide localized strings for this library's composites.\n *\n * @private\n */\nexport const SidePaneProvider = (props) => {\n return React.createElement(SidePaneContext.Provider, { value: props }, props.children);\n};\n/** @private */\nexport const useSidePaneContext = () => useContext(SidePaneContext);\n/** @private */\nexport const useIsSidePaneOpen = () => {\n const { sidePaneRenderer, overrideSidePane } = useSidePaneContext();\n return !!(sidePaneRenderer || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive));\n};\n/** @private */\nexport const useIsParticularSidePaneOpen = (sidePaneId) => {\n const isSidePaneOpen = useIsSidePaneOpen();\n const { sidePaneRenderer } = useSidePaneContext();\n return isSidePaneOpen && (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === sidePaneId;\n};\n//# sourceMappingURL=SidePaneProvider.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useLocale } from '../../../localization';\nimport { VideoEffectsPaneContent } from '../../../common/VideoEffectsPane';\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_ID = 'videoeffects';\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 17.5;\n/** @private */\nexport const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestErrors, onDismissError, cameraButtonRef) => {\n const closePane = useCallback(() => {\n var _a;\n updateSidePaneRenderer(undefined);\n (_a = cameraButtonRef === null || cameraButtonRef === void 0 ? void 0 : cameraButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, [cameraButtonRef, updateSidePaneRenderer]);\n /* @conditional-compile-remove(video-background-effects) */\n const locale = useLocale();\n const onRenderHeader = useCallback(() => {\n var _a, _b;\n return React.createElement(SidePaneHeader, { onClose: closePane, \n /* @conditional-compile-remove(video-background-effects) */ headingText: locale.strings.call.videoEffectsPaneTitle, \n /* @conditional-compile-remove(video-background-effects) */ dismissSidePaneButtonAriaLabel: (_b = (_a = locale.strings.call.dismissSidePaneButtonLabel) !== null && _a !== void 0 ? _a : locale.strings.callWithChat.dismissSidePaneButtonLabel) !== null && _b !== void 0 ? _b : 'Close', mobileView: mobileView });\n }, [closePane, /* @conditional-compile-remove(video-background-effects) */ locale.strings, mobileView]);\n /* @conditional-compile-remove(video-background-effects) */\n const latestVideoEffectError = latestErrors.find(error => error.type === 'unableToStartVideoEffect');\n const onRenderContent = useCallback(() => {\n return React.createElement(VideoEffectsPaneContent, { onDismissError: onDismissError, \n /* @conditional-compile-remove(video-background-effects) */ activeVideoEffectError: latestVideoEffectError, activeVideoEffectChange: () => {\n // Clear any existing video effects error when the user clicks on a new video effect\n /* @conditional-compile-remove(video-background-effects) */\n latestVideoEffectError && (onDismissError === null || onDismissError === void 0 ? void 0 : onDismissError(latestVideoEffectError));\n } });\n }, [\n latestVideoEffectError, onDismissError\n ]);\n const sidePaneRenderer = useMemo(() => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: VIDEO_EFFECTS_SIDE_PANE_ID\n }), [onRenderContent, onRenderHeader]);\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n const isOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n const togglePane = useCallback(() => {\n if (isOpen) {\n closePane();\n }\n else {\n openPane();\n }\n }, [closePane, isOpen, openPane]);\n return {\n openVideoEffectsPane: openPane,\n closeVideoEffectsPane: closePane,\n toggleVideoEffectsPane: togglePane,\n isVideoEffectsPaneOpen: isOpen\n };\n};\n//# sourceMappingURL=useVideoEffectsPane.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\n/**\n * @private\n */\nexport const videoCameraIconStyle = mergeStyles({\n marginRight: '0.375rem',\n fontSize: '1.375rem'\n});\n/**\n * @private\n */\nexport const buttonStyle = mergeStyles({\n fontWeight: 600,\n fontSize: '0.875rem',\n // 14px\n height: '2.75rem',\n width: '100%'\n});\n/**\n * @private\n */\nexport const buttonWithIconStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n//# sourceMappingURL=StartCallButton.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { PrimaryButton, mergeStyles } from '@fluentui/react';\nimport React from 'react';\nimport { buttonStyle, buttonWithIconStyles, videoCameraIconStyle } from '../styles/StartCallButton.styles';\nimport { Video20Filled } from '@fluentui/react-icons';\nimport { useLocale } from '../../localization';\n/**\n * @private\n */\nexport const StartCallButton = (props) => {\n const { rejoinCall } = props;\n const locale = useLocale();\n return React.createElement(PrimaryButton, Object.assign({}, props, { \"data-ui-id\": \"call-composite-start-call-button\", className: mergeStyles(buttonStyle, props.className), styles: buttonWithIconStyles, text: rejoinCall ? locale.strings.call.rejoinCallButtonLabel : locale.strings.call.startCallButtonLabel, onRenderIcon: props.hideIcon ? undefined : () => React.createElement(Video20Filled, { className: videoCameraIconStyle }) }));\n};\n//# sourceMappingURL=StartCallButton.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CameraButton } from \"../../../../../../react-components/src\";\n/* @conditional-compile-remove(capabilities) */\nimport { _HighContrastAwareIcon } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { concatButtonBaseStyles } from '../../styles/Buttons.styles';\n/* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(capabilities) */\nimport { useAdapter } from '../../adapter/CallAdapterProvider';\n/**\n * @private\n */\nexport const Camera = (props) => {\n var _a, _b;\n const cameraButtonProps = usePropsFor(CameraButton);\n const styles = useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);\n /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(capabilities) */\n const adapter = useAdapter();\n /* @conditional-compile-remove(capabilities) */\n const turnVideoOnCapability = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.turnVideoOn;\n return React.createElement(CameraButton, Object.assign({ \"data-ui-id\": \"call-composite-camera-button\" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disableTooltip: props.disableTooltip, disabled: cameraButtonProps.disabled || props.disabled, \n /* @conditional-compile-remove(capabilities) */ onRenderOffIcon: turnVideoOnCapability && !turnVideoOnCapability.isPresent ? () => React.createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonCameraProhibited' }) : undefined, \n /* @conditional-compile-remove(video-background-effects) */ onClickVideoEffects: props.onClickVideoEffects, componentRef: props.componentRef }));\n};\n//# sourceMappingURL=Camera.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets } from '@fluentui/react';\nimport { EndCallButton } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { groupCallLeaveButtonCompressedStyle, groupCallLeaveButtonStyle } from '../../styles/Buttons.styles';\n/** @private */\nexport const EndCall = (props) => {\n const compactMode = props.displayType === 'compact';\n const hangUpButtonProps = usePropsFor(EndCallButton);\n const styles = useMemo(() => { var _a; return concatStyleSets(compactMode ? groupCallLeaveButtonCompressedStyle : groupCallLeaveButtonStyle, (_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [compactMode, props.styles]);\n return React.createElement(EndCallButton, Object.assign({ \"data-ui-id\": \"call-composite-hangup-button\" }, hangUpButtonProps, { styles: styles, showLabel: !compactMode }));\n};\n//# sourceMappingURL=EndCall.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _isInLobbyOrConnecting } from \"../../../../../../calling-component-bindings/src\";\nimport { MicrophoneButton } from \"../../../../../../react-components/src\";\n/* @conditional-compile-remove(capabilities) */\nimport { _HighContrastAwareIcon } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { useLocale } from '../../../localization';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { useSelector } from '../../hooks/useSelector';\nimport { getCallStatus, getLocalMicrophoneEnabled } from '../../selectors/baseSelectors';\nimport { concatButtonBaseStyles } from '../../styles/Buttons.styles';\n/* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(capabilities) */\nimport { useAdapter } from '../../adapter/CallAdapterProvider';\n/**\n * @private\n */\nexport const Microphone = (props) => {\n var _a, _b;\n const microphoneButtonProps = usePropsFor(MicrophoneButton);\n const callStatus = useSelector(getCallStatus);\n const isLocalMicrophoneEnabled = useSelector(getLocalMicrophoneEnabled);\n const strings = useLocale().strings.call;\n /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(capabilities) */\n const adapter = useAdapter();\n /* @conditional-compile-remove(capabilities) */\n const unmuteMicCapability = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.unmuteMic;\n /**\n * When call is in Lobby, microphone button should be disabled.\n * This is due to to headless limitation where a call can not be muted/unmuted in lobby.\n */\n if (_isInLobbyOrConnecting(callStatus)) {\n microphoneButtonProps.disabled = true;\n // Lobby page should show the microphone status that was set on the local preview/configuration\n // page until the user successfully joins the call.\n microphoneButtonProps.checked = isLocalMicrophoneEnabled;\n }\n const microphoneButtonStrings = _isInLobbyOrConnecting(callStatus) ? {\n strings: {\n tooltipOffContent: strings.microphoneToggleInLobbyNotAllowed,\n tooltipOnContent: strings.microphoneToggleInLobbyNotAllowed\n }\n } : {};\n const styles = useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);\n // tab focus on MicrophoneButton on page load\n return React.createElement(MicrophoneButton, Object.assign({ \"data-ui-id\": \"call-composite-microphone-button\" }, microphoneButtonProps, { showLabel: props.displayType !== 'compact', disableTooltip: props.disableTooltip, styles: styles }, microphoneButtonStrings, { enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: microphoneButtonProps.disabled || props.disabled, \n /* @conditional-compile-remove(capabilities) */ onRenderOffIcon: unmuteMicCapability && !unmuteMicCapability.isPresent ? () => React.createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonMicProhibited' }) : undefined }));\n};\n//# sourceMappingURL=Microphone.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { RaiseHandButton } from \"../../../../../../react-components/src\";\n/* @conditional-compile-remove(raise-hand) */\nimport React, { useMemo } from 'react';\n/* @conditional-compile-remove(raise-hand) */\nimport { usePropsFor } from '../../hooks/usePropsFor';\n/* @conditional-compile-remove(raise-hand) */\nimport { concatButtonBaseStyles } from '../../styles/Buttons.styles';\n/* @conditional-compile-remove(raise-hand) */\nimport { useSelector } from '../../hooks/useSelector';\n/* @conditional-compile-remove(raise-hand) */\nimport { getCallStatus } from '../../selectors/baseSelectors';\n/* @conditional-compile-remove(raise-hand) */\nimport { _isInLobbyOrConnecting } from \"../../../../../../calling-component-bindings/src\";\n/* @conditional-compile-remove(raise-hand) */\n/** @private */\nexport const RaiseHand = (props) => {\n const raiseHandButtonProps = usePropsFor(RaiseHandButton);\n const callStatus = useSelector(getCallStatus);\n const styles = useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);\n let raiseHandButtonDisabled = isDisabled(props.option);\n if (_isInLobbyOrConnecting(callStatus)) {\n raiseHandButtonDisabled = true;\n }\n return React.createElement(RaiseHandButton, Object.assign({ \"data-ui-id\": \"call-composite-raisehand-button\" }, raiseHandButtonProps, { showLabel: props.displayType !== 'compact', disabled: raiseHandButtonDisabled || props.disabled, styles: styles }));\n};\n/* @conditional-compile-remove(raise-hand) */\nconst isDisabled = (option) => {\n if (option === undefined || option === true || option === false) {\n return false;\n }\n return option.disabled;\n};\n//# sourceMappingURL=RaiseHand.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ScreenShareButton } from \"../../../../../../react-components/src\";\nimport React, { useMemo } from 'react';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { concatButtonBaseStyles } from '../../styles/Buttons.styles';\n/** @private */\nexport const ScreenShare = (props) => {\n const screenShareButtonProps = usePropsFor(ScreenShareButton);\n const styles = useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);\n const screenShareButtonDisabled = () => {\n var _a;\n /* @conditional-compile-remove(capabilities) */ /* @conditional-compile-remove(PSTN-calls) */\n return (_a = screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) !== null && _a !== void 0 ? _a : isDisabled(props.option);\n return isDisabled(props.option);\n };\n return React.createElement(ScreenShareButton, Object.assign({ \"data-ui-id\": \"call-composite-screenshare-button\" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() || props.disabled, styles: styles }));\n};\nconst isDisabled = (option) => {\n if (option === undefined || option === true || option === false) {\n return false;\n }\n return option.disabled;\n};\n//# sourceMappingURL=ScreenShare.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState, useEffect, useRef, useMemo } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\n/**\n * @private\n */\nexport const useAdaptedSelector = (selector, selectorProps) => {\n return useSelectorWithAdaptation(selector, adaptCompositeState, selectorProps);\n};\n/**\n * @private\n */\nexport const useSelectorWithAdaptation = (selector, adaptState, selectorProps) => {\n var _a;\n const adapter = useAdapter();\n // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the\n // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n });\n const callId = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.id;\n const callConfigProps = useMemo(() => ({\n callId\n }), [callId]);\n const [props, setProps] = useState(selector(adaptState(adapter.getState()), selectorProps !== null && selectorProps !== void 0 ? selectorProps : callConfigProps));\n const propRef = useRef(props);\n propRef.current = props;\n useEffect(() => {\n const onStateChange = (state) => {\n if (!mounted.current) {\n return;\n }\n const newProps = selector(adaptState(state), selectorProps !== null && selectorProps !== void 0 ? selectorProps : callConfigProps);\n if (propRef.current !== newProps) {\n setProps(newProps);\n }\n };\n adapter.onStateChange(onStateChange);\n return () => {\n adapter.offStateChange(onStateChange);\n };\n }, [adaptState, adapter, selector, selectorProps, callConfigProps]);\n return props;\n};\nconst memoizeState = memoizeOne((userId, deviceManager, calls, latestErrors, displayName, alternateCallerId, environmentInfo) => ({\n userId,\n incomingCalls: {},\n incomingCallsEnded: {},\n callsEnded: {},\n deviceManager,\n callAgent: {\n displayName\n },\n calls,\n latestErrors\n}));\nconst memoizeCalls = memoizeOne((call) => call ? {\n [call.id]: call\n} : {});\nconst adaptCompositeState = (compositeState) => {\n return memoizeState(compositeState.userId, compositeState.devices, memoizeCalls(compositeState.call), (\n // This is an unsafe type expansion.\n // compositeState.latestErrors can contain properties that are not valid in CallErrors.\n //\n // But there is no way to check for valid property names at runtime:\n // - The set of valid property names is built from types in the @azure/communication-calling.\n // Thus we don't have a literal array of allowed strings at runtime.\n // - Due to minification / uglification, the property names from the objects at runtime can't be used\n // to compare against permissible values inferred from the types.\n //\n // This is not a huge problem -- it simply means that our adapted selector will include some extra operations\n // that are unknown to the UI component and data binding libraries. Generic handling of the errors (e.g.,\n // just displaying them in some UI surface) will continue to work for these operations. Handling of\n // specific operations (e.g., acting on errors related to permission issues) will ignore these operations.\n compositeState.latestErrors), compositeState.displayName);\n};\n//# sourceMappingURL=useAdaptedSelector.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 { toFlatCommunicationIdentifier } from \"../../../../../acs-ui-common/src\";\nimport memoizeOne from 'memoize-one';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { isCameraOn } from '../utils';\n/**\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const useHandlers = (_component) => {\n return createCompositeHandlers(useAdapter());\n};\nconst createCompositeHandlers = memoizeOne((adapter) => ({\n onCreateLocalStreamView: (options) => __awaiter(void 0, void 0, void 0, function* () {\n return yield adapter.createStreamView(undefined, options);\n }),\n onCreateRemoteStreamView: (userId, options) => __awaiter(void 0, void 0, void 0, function* () {\n return yield adapter.createStreamView(userId, options);\n }),\n onHangUp: (forEveryone) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.leaveCall(forEveryone);\n }),\n onRemoveParticipant: (userId) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.removeParticipant(userId);\n }),\n /* @conditional-compile-remove(raise-hand) */\n onRaiseHand: () => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.raiseHand();\n }),\n /* @conditional-compile-remove(raise-hand) */\n onLowerHand: () => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.lowerHand();\n }),\n /* @conditional-compile-remove(raise-hand) */\n onToggleRaiseHand: () => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.raiseHand.localParticipantRaisedHand) ? yield adapter.lowerHand() : yield adapter.raiseHand();\n }),\n onSelectCamera: (deviceInfo, options) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.setCamera(deviceInfo, options);\n }),\n onSelectMicrophone: (deviceInfo) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.setMicrophone(deviceInfo);\n }),\n onSelectSpeaker: (deviceInfo) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.setSpeaker(deviceInfo);\n }),\n onStartCall: (participants, options) => {\n const rawIds = participants.map(participant => toFlatCommunicationIdentifier(participant));\n return adapter.startCall(rawIds, options);\n },\n onStartScreenShare: () => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.startScreenShare();\n }),\n onStopScreenShare: () => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.stopScreenShare();\n }),\n onToggleCamera: (options) => __awaiter(void 0, void 0, void 0, function* () {\n isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);\n }),\n onToggleMicrophone: () => __awaiter(void 0, void 0, void 0, function* () {\n var _b;\n return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();\n }),\n onToggleScreenShare: () => __awaiter(void 0, void 0, void 0, function* () {\n var _c;\n return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn) ? yield adapter.stopScreenShare() : yield adapter.startScreenShare();\n }),\n onStartLocalVideo: () => __awaiter(void 0, void 0, void 0, function* () {\n if (adapter.getState().call) {\n return adapter.startCamera();\n }\n }),\n onDisposeLocalStreamView: () => __awaiter(void 0, void 0, void 0, function* () {\n return adapter.disposeLocalVideoStreamView();\n }),\n onDisposeRemoteStreamView: (userId) => __awaiter(void 0, void 0, void 0, function* () {\n return adapter.disposeStreamView(userId);\n }),\n onDisposeRemoteScreenShareStreamView: (userId) => __awaiter(void 0, void 0, void 0, function* () {\n return adapter.disposeScreenShareStreamView(userId);\n }),\n onDisposeRemoteVideoStreamView: (userId) => __awaiter(void 0, void 0, void 0, function* () {\n return adapter.disposeRemoteVideoStreamView(userId);\n }),\n /* @conditional-compile-remove(video-background-effects) */\n onRemoveVideoBackgroundEffects: () => __awaiter(void 0, void 0, void 0, function* () {\n return yield adapter.stopVideoBackgroundEffects();\n }),\n /* @conditional-compile-remove(video-background-effects) */\n onBlurVideoBackground: (backgroundBlurConfig) => __awaiter(void 0, void 0, void 0, function* () {\n const blurConfig = Object.assign({ effectName: 'blur' }, backgroundBlurConfig);\n return yield adapter.startVideoBackgroundEffect(blurConfig);\n }),\n /* @conditional-compile-remove(video-background-effects) */\n onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter(void 0, void 0, void 0, function* () {\n const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);\n return yield adapter.startVideoBackgroundEffect(replacementConfig);\n }),\n /* @conditional-compile-remove(close-captions) */\n onStartCaptions: (options) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.startCaptions(options);\n }),\n /* @conditional-compile-remove(close-captions) */\n onStopCaptions: () => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.stopCaptions();\n }),\n /* @conditional-compile-remove(close-captions) */\n onSetSpokenLanguage: (language) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.setSpokenLanguage(language);\n }),\n /* @conditional-compile-remove(close-captions) */\n onSetCaptionLanguage: (language) => __awaiter(void 0, void 0, void 0, function* () {\n yield adapter.setCaptionLanguage(language);\n })\n}));\n//# sourceMappingURL=useHandlers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getCallingSelector } from \"../../../../../calling-component-bindings/src\";\nimport { useAdaptedSelector } from './useAdaptedSelector';\nimport { useHandlers } from './useHandlers';\n/**\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const usePropsFor = (component) => {\n const selector = getCallingSelector(component);\n if (!selector) {\n throw new Error(\"Can't find the selector for component, please check supported component list\");\n }\n return Object.assign(Object.assign({}, useAdaptedSelector(selector)), useHandlers(component));\n};\n//# sourceMappingURL=usePropsFor.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { useSelectorWithAdaptation } from './useAdaptedSelector';\n/**\n * @private\n */\nexport const useSelector = (selector, selectorProps) => {\n // use selector with no adaptation\n return useSelectorWithAdaptation(selector, state => state, selectorProps);\n};\n//# sourceMappingURL=useSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createSelector } from 'reselect';\nimport { getDeviceManager } from './baseSelectors';\n/**\n * Provides data attributes to {@link LocalVideoCameraCycleButton} component.\n * @public\n */\nexport const localVideoCameraCycleButtonSelector = createSelector([getDeviceManager], deviceManager => {\n return {\n cameras: deviceManager.cameras,\n selectedCamera: deviceManager.selectedCamera\n };\n});\n//# sourceMappingURL=LocalVideoTileSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getLocalVideoStreams, getRemoteParticipants } from './baseSelectors';\n/**\n * @private\n */\nexport const mediaGallerySelector = reselect.createSelector([getLocalVideoStreams], localVideoStreams => {\n var _a, _b;\n return {\n isVideoStreamOn: !!((_b = (_a = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find(stream => stream.mediaStreamType === 'Video')) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.target)\n };\n});\n/**\n * Custom selector for this hook to retrieve all the participants that are currently\n * connected to the call.\n */\nexport const getRemoteParticipantsConnectedSelector = reselect.createSelector([getRemoteParticipants], remoteParticipants => {\n const participants = Object.values(remoteParticipants !== null && remoteParticipants !== void 0 ? remoteParticipants : {});\n return participants.filter(p => p.state === 'Connected');\n});\n//# sourceMappingURL=mediaGallerySelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { toFlatCommunicationIdentifier, _formatString } from \"../../../../../acs-ui-common/src\";\nimport { useMemo, useRef, useState } from 'react';\nimport { useLocale } from '../../localization';\nimport { useSelector } from '../hooks/useSelector';\nimport { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\n/**\n * sets the announcement string whenever a Participant comes or goes from a call to be\n * used by the system narrator.\n *\n * @returns string to be used by the narrator and Announcer component\n *\n * @internal\n */\nexport const useParticipantChangedAnnouncement = () => {\n const locale = useLocale().strings.call;\n const strings = useMemo(() => {\n return {\n participantJoinedNoticeString: locale.participantJoinedNoticeString,\n twoParticipantJoinedNoticeString: locale.twoParticipantJoinedNoticeString,\n threeParticipantJoinedNoticeString: locale.threeParticipantJoinedNoticeString,\n participantLeftNoticeString: locale.participantLeftNoticeString,\n twoParticipantLeftNoticeString: locale.twoParticipantLeftNoticeString,\n threeParticipantLeftNoticeString: locale.threeParticipantLeftNoticeString,\n unnamedParticipantString: locale.unnamedParticipantString,\n manyParticipantsJoined: locale.manyParticipantsJoined,\n manyParticipantsLeft: locale.manyParticipantsLeft,\n manyUnnamedParticipantsJoined: locale.manyUnnamedParticipantsJoined,\n manyUnnamedParticipantsLeft: locale.manyUnnamedParticipantsLeft\n };\n }, [locale]);\n const [announcerString, setAnnouncerString] = useState('');\n const currentParticipants = useSelector(getRemoteParticipantsConnectedSelector);\n /**\n * We want to use a useRef here since we want to not fire this hook based on the previous participants\n * this allows this value to be used in the hook without being in the dependency array.\n *\n * Note: By definition if this hook is used in another component it is not pure anymore.\n */\n const previousParticipants = useRef(currentParticipants);\n const resetAnnoucement = (string) => {\n setAnnouncerString(string);\n };\n useMemo(() => {\n const currentIds = currentParticipants.map(p => toFlatCommunicationIdentifier(p.identifier));\n const previousIds = previousParticipants.current.map(p => toFlatCommunicationIdentifier(p.identifier));\n const whoJoined = currentParticipants.filter(p => !previousIds.includes(toFlatCommunicationIdentifier(p.identifier)));\n const whoLeft = previousParticipants.current.filter(p => !currentIds.includes(toFlatCommunicationIdentifier(p.identifier)));\n if (whoJoined.length > 0) {\n resetAnnoucement(createAnnouncementString('joined', whoJoined, strings));\n }\n if (whoLeft.length > 0) {\n resetAnnoucement(createAnnouncementString('left', whoLeft, strings));\n }\n // Update cached value at the end.\n previousParticipants.current = currentParticipants;\n }, [currentParticipants, strings]);\n return announcerString;\n};\n/**\n * Generates the announcement string for when a participant joins or leaves a call.\n */\nexport const createAnnouncementString = (direction, participants, strings) => {\n var _a, _b, _c;\n /**\n * If there are no participants return empty string.\n */\n if (participants.length === 0) {\n return '';\n }\n /**\n * Filter participants into two arrays to put all the unnamed participants at the back of the\n * names being announced.\n */\n const unnamedParticipants = participants.filter(p => !p.displayName);\n const namedParicipants = participants.filter(p => p.displayName);\n const sortedParticipants = namedParicipants.concat(unnamedParticipants);\n /**\n * if there are only unnamed participants present in the array announce a special unnamed participants\n * only string.\n */\n if (sortedParticipants.filter(p => p.displayName).length === 0 && sortedParticipants.length > 1) {\n return _formatString(direction === 'joined' ? strings.manyUnnamedParticipantsJoined : strings.manyUnnamedParticipantsLeft, {\n numOfParticipants: (sortedParticipants.length - 1).toString()\n });\n }\n const participantNames = sortedParticipants.map(p => { var _a; return (_a = p.displayName) !== null && _a !== void 0 ? _a : strings.unnamedParticipantString; });\n switch (sortedParticipants.length) {\n case 1:\n return _formatString(direction === 'joined' ? strings.participantJoinedNoticeString : strings.participantLeftNoticeString, {\n displayName: participantNames[0]\n });\n case 2:\n return _formatString(direction === 'joined' ? strings.twoParticipantJoinedNoticeString : strings.twoParticipantLeftNoticeString, {\n displayName1: participantNames[0],\n displayName2: participantNames[1]\n });\n case 3:\n return _formatString(direction === 'joined' ? strings.threeParticipantJoinedNoticeString : strings.threeParticipantLeftNoticeString, {\n displayName1: participantNames[0],\n displayName2: participantNames[1],\n displayName3: participantNames[2]\n });\n }\n /**\n * If we have more than 3 participants joining we need to do something more to announce them\n * appropriately.\n *\n * We don't want to announce every name when more than 3 participants join at once so\n * we parse out the first 3 names we have and announce those with the number of others.\n */\n const numberOfExtraParticipants = sortedParticipants.length - 3;\n return _formatString(direction === 'joined' ? strings.manyParticipantsJoined : strings.manyParticipantsLeft, {\n displayName1: (_a = sortedParticipants[0].displayName) !== null && _a !== void 0 ? _a : strings.unnamedParticipantString,\n displayName2: (_b = sortedParticipants[1].displayName) !== null && _b !== void 0 ? _b : strings.unnamedParticipantString,\n displayName3: (_c = sortedParticipants[2].displayName) !== null && _c !== void 0 ? _c : strings.unnamedParticipantString,\n numOfParticipants: numberOfExtraParticipants.toString()\n });\n};\n//# sourceMappingURL=MediaGalleryUtils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React, { useCallback, useMemo } from 'react';\n/* @conditional-compile-remove(vertical-gallery) */ /* @conditional-compile-remove(rooms) */\nimport { useRef } from 'react';\nimport { VideoGallery, Announcer } from \"../../../../../react-components/src\";\n/* @conditional-compile-remove(vertical-gallery) */ /* @conditional-compile-remove(rooms) */\nimport { _useContainerWidth, _useContainerHeight } from \"../../../../../react-components/src\";\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { AvatarPersona } from '../../common/AvatarPersona';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { useSelector } from '../hooks/useSelector';\nimport { localVideoCameraCycleButtonSelector } from '../selectors/LocalVideoTileSelector';\nimport { LocalVideoCameraCycleButton } from \"../../../../../react-components/src\";\nimport { useParticipantChangedAnnouncement } from '../utils/MediaGalleryUtils';\nconst VideoGalleryStyles = {\n root: {\n height: '100%',\n minHeight: '10rem',\n // space affordance to ensure media gallery is never collapsed\n minWidth: '6rem'\n }\n};\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n};\nconst remoteVideoViewOptions = {\n scalingMode: 'Crop'\n};\n/**\n * @private\n */\nexport const MediaGallery = (props) => {\n var _a;\n const videoGalleryProps = usePropsFor(VideoGallery);\n const cameraSwitcherCameras = useSelector(localVideoCameraCycleButtonSelector);\n const cameraSwitcherCallback = useHandlers(LocalVideoCameraCycleButton);\n const announcerString = useParticipantChangedAnnouncement();\n /* @conditional-compile-remove(vertical-gallery) */\n /* @conditional-compile-remove(rooms) */\n const containerRef = useRef(null);\n /* @conditional-compile-remove(vertical-gallery) */ /* @conditional-compile-remove(rooms) */\n const containerWidth = _useContainerWidth(containerRef);\n /* @conditional-compile-remove(vertical-gallery) */ /* @conditional-compile-remove(rooms) */\n const containerHeight = _useContainerHeight(containerRef);\n /* @conditional-compile-remove(click-to-call) */ /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(vertical-gallery) */\n const containerAspectRatio = containerWidth && containerHeight ? containerWidth / containerHeight : 0;\n const layoutBasedOnTilePosition = localVideoTileLayoutTrampoline();\n const cameraSwitcherProps = useMemo(() => {\n return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);\n }, [cameraSwitcherCallback, cameraSwitcherCameras]);\n const onRenderAvatar = useCallback((userId, options) => {\n return React.createElement(Stack, { className: mergeStyles({\n position: 'absolute',\n height: '100%',\n width: '100%'\n }) },\n React.createElement(Stack, { styles: {\n root: {\n margin: 'auto',\n maxHeight: '100%'\n }\n } }, (options === null || options === void 0 ? void 0 : options.coinSize) && React.createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }))));\n }, [props.onFetchAvatarPersonaData]);\n /* @conditional-compile-remove(pinned-participants) */\n const remoteVideoTileMenuOptions = useMemo(() => {\n var _a;\n return ((_a = props.remoteVideoTileMenuOptions) === null || _a === void 0 ? void 0 : _a.isHidden) ? false : props.isMobile ? {\n kind: 'drawer',\n hostId: props.drawerMenuHostId\n } : {\n kind: 'contextual'\n };\n }, [(_a = props.remoteVideoTileMenuOptions) === null || _a === void 0 ? void 0 : _a.isHidden, props.isMobile, props.drawerMenuHostId]);\n /* @conditional-compile-remove(vertical-gallery) */\n const overflowGalleryPosition = useMemo(() => {\n /* @conditional-compile-remove(gallery-layouts) */\n if (props.userSetOverflowGalleryPosition === 'horizontalTop') {\n return props.userSetOverflowGalleryPosition;\n }\n return containerWidth && containerHeight && containerWidth / containerHeight >= 16 / 9 ? 'verticalRight' : 'horizontalBottom';\n }, [/* @conditional-compile-remove(gallery-layouts) */ props.userSetOverflowGalleryPosition, containerWidth, containerHeight]);\n const VideoGalleryMemoized = useMemo(() => {\n const layoutBasedOnUserSelection = () => {\n /* @conditional-compile-remove(gallery-layouts) */\n return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;\n return layoutBasedOnTilePosition;\n };\n return React.createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: layoutBasedOnUserSelection(), showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar, \n /* @conditional-compile-remove(pinned-participants) */ remoteVideoTileMenu: remoteVideoTileMenuOptions, \n /* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition: overflowGalleryPosition }));\n }, [videoGalleryProps, props.isMobile, cameraSwitcherProps, onRenderAvatar,\n remoteVideoTileMenuOptions,\n overflowGalleryPosition,\n containerAspectRatio,\n props.userSetGalleryLayout, layoutBasedOnTilePosition]);\n return React.createElement(\"div\", { ref: containerRef, style: mediaGalleryContainerStyles },\n React.createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),\n VideoGalleryMemoized);\n};\nconst mediaGalleryContainerStyles = {\n width: '100%',\n height: '100%'\n};\nconst localVideoTileLayoutTrampoline = (localTileOptions) => {\n return 'floatingLocalVideo';\n};\n//# sourceMappingURL=MediaGallery.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { FontWeights } from '@fluentui/react';\n/**\n * @private\n */\nexport const containerStyle = {\n // Ensure some space around the text on a narrow viewport.\n margin: '1rem',\n gap: `1.5rem`\n};\n/**\n * @private\n */\nexport const titleContainerStyle = {\n gap: `1rem`\n};\n/**\n * @private\n */\nexport const titleStyle = (palette, isVideoReady) => ({\n fontSize: '1.25rem',\n fontWeight: FontWeights.semibold,\n color: isVideoReady ? 'white' : palette.neutralPrimary,\n textAlign: 'center'\n});\n/**\n * @private\n */\nexport const moreDetailsStyle = (palette, isVideoReady) => ({\n fontSize: '1rem',\n color: isVideoReady ? 'white' : palette.neutralPrimary,\n textAlign: 'center'\n});\n//# sourceMappingURL=NetworkReconnectTile.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { useTheme } from \"../../../../../react-components/src\";\nimport { ExpandedLocalVideoTile } from './ExpandedLocalVideoTile';\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\nimport { useLocale } from '../../localization';\nimport { containerStyle, moreDetailsStyle, titleContainerStyle, titleStyle } from '../styles/NetworkReconnectTile.styles';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { CallCompositeIcon } from '../../common/icons';\n/**\n * @private\n */\nexport const NetworkReconnectTile = (props) => {\n var _a;\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;\n const palette = useTheme().palette;\n const strings = useLocale().strings.call;\n const handlers = useHandlers(ExpandedLocalVideoTile);\n return React.createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React.createElement(Stack, { verticalFill: true, horizontalAlign: \"center\", verticalAlign: \"center\", className: mergeStyles(containerStyle), \"aria-atomic\": true },\n React.createElement(Stack, { horizontal: true, className: mergeStyles(titleContainerStyle) },\n React.createElement(CallCompositeIcon, { iconName: \"NetworkReconnectIcon\", className: mergeStyles(titleStyle(palette, isVideoReady)) }),\n React.createElement(Text, { className: mergeStyles(titleStyle(palette, isVideoReady)), \"aria-live\": 'assertive' }, strings.networkReconnectTitle)),\n React.createElement(Text, { className: mergeStyles(moreDetailsStyle(palette, isVideoReady)), \"aria-live\": 'assertive' }, strings.networkReconnectMoreDetails)) }, handlers));\n};\n//# sourceMappingURL=NetworkReconnectTile.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getIsRecordingActive, getIsTranscriptionActive } from './baseSelectors';\n/**\n * @private\n */\nexport const complianceBannerSelector = reselect.createSelector([getIsTranscriptionActive, getIsRecordingActive], (isTranscriptionActive, isRecordingActive) => {\n return {\n callTranscribeState: isTranscriptionActive,\n callRecordState: isRecordingActive\n };\n});\n//# sourceMappingURL=complianceBannerSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getUserFacingDiagnostics } from './baseSelectors';\n/**\n * @private\n */\nexport const mutedNotificationSelector = reselect.createSelector([getUserFacingDiagnostics], diagnostics => {\n var _a;\n return {\n speakingWhileMuted: !!((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.speakingWhileMicrophoneIsMuted) === null || _a === void 0 ? void 0 : _a.value)\n };\n});\n//# sourceMappingURL=mutedNotificationSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getUserFacingDiagnostics } from './baseSelectors';\nimport { lobbySelector } from './lobbySelector';\n/**\n * @private\n */\nexport const networkReconnectTileSelector = reselect.createSelector([getUserFacingDiagnostics, lobbySelector], (diagnostics, lobbyProps) => {\n var _a;\n return {\n networkReconnectValue: (_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReconnect) === null || _a === void 0 ? void 0 : _a.value,\n localParticipantVideoStream: lobbyProps.localParticipantVideoStream\n };\n});\n//# sourceMappingURL=networkReconnectTileSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from \"../../../../../calling-component-bindings/src\";\nimport { ErrorBar } from \"../../../../../react-components/src\";\nimport React from 'react';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { MediaGallery } from '../components/MediaGallery';\nimport { NetworkReconnectTile } from '../components/NetworkReconnectTile';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { complianceBannerSelector } from '../selectors/complianceBannerSelector';\nimport { mediaGallerySelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\n/**\n * @private\n */\nexport const CallPage = (props) => {\n const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, \n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout = 'floatingLocalVideo', \n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange, \n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition = 'Responsive', \n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition, onCloseChatPane } = props;\n // To use useProps to get these states, we need to create another file wrapping Call,\n // It seems unnecessary in this case, so we get the updated states using this approach.\n const { callStatus } = useSelector(callStatusSelector);\n const mediaGalleryProps = useSelector(mediaGallerySelector);\n const mediaGalleryHandlers = useHandlers(MediaGallery);\n const complianceBannerProps = useSelector(complianceBannerSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const mutedNotificationProps = useSelector(mutedNotificationSelector);\n const networkReconnectTileProps = useSelector(networkReconnectTileSelector);\n const strings = useLocale().strings.call;\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options === null || options === void 0 ? void 0 : options.callControls) : options === null || options === void 0 ? void 0 : options.callControls;\n const drawerMenuHostId = useId('drawerMenuHost');\n return React.createElement(CallArrangement, { id: drawerMenuHostId, complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && errorBarProps, mutedNotificationProps: mutedNotificationProps, callControlProps: {\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }, \n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, \n /* @conditional-compile-remove(pinned-participants) */ remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, \n /* @conditional-compile-remove(gallery-layouts) */ userSetGalleryLayout: galleryLayout })) : React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)) : React.createElement(React.Fragment, null), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, \n /* @conditional-compile-remove(gallery-layouts) */ onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, \n /* @conditional-compile-remove(gallery-layouts) */ onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, \n /* @conditional-compile-remove(gallery-layouts) */ userSetGalleryLayout: galleryLayout, \n /* @conditional-compile-remove(capabilities) */ capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps });\n};\n/**\n * @private\n */\nexport const isNetworkHealthy = (value) => {\n // We know that the value is actually of type DiagnosticQuality for this diagnostic.\n // We ignore any boolen values, considering the network to still be healthy.\n // Thus, only DiagnosticQuality.Poor or .Bad indicate network problems.\n return value === true || value === false || value === undefined || value === DiagnosticQuality.Good;\n};\n//# sourceMappingURL=CallPage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nconst DROPDOWN_HEIGHT_REM = 2.25;\n/**\n * @private\n */\nexport const mainStackTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const soundStackTokens = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const dropDownStyles = (theme) => ({\n caretDownWrapper: {\n height: `${DROPDOWN_HEIGHT_REM}rem`,\n lineHeight: `${DROPDOWN_HEIGHT_REM}rem`\n },\n dropdownItem: {\n fontSize: '0.875rem',\n height: `${DROPDOWN_HEIGHT_REM}rem`,\n background: theme.palette.white\n },\n dropdown: {\n height: `${DROPDOWN_HEIGHT_REM}rem`,\n width: '100%',\n svg: {\n verticalAlign: 'top'\n }\n },\n title: {\n fontSize: '0.875rem',\n height: `${DROPDOWN_HEIGHT_REM}rem`,\n lineHeight: '2rem',\n borderRadius: '0.25rem',\n border: `1px solid ${theme.palette.neutralQuaternaryAlt}`\n },\n label: {\n fontWeight: 600,\n fontSize: '0.875rem',\n // Add z-index to ensure labels are rendered above the configuration section background\n zIndex: 1\n },\n errorMessage: {\n fontSize: '0.875rem'\n }\n});\n/**\n * @private\n */\nexport const dropDownTitleIconStyles = mergeStyles({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minWidth: '0',\n maxWidth: '100%',\n overflowWrap: 'break-word',\n margin: '.063rem'\n});\n/**\n * @private\n */\nexport const optionIconStyles = mergeStyles({\n marginRight: '8px',\n verticalAlign: 'text-top'\n});\n//# sourceMappingURL=LocalDeviceSettings.styles.js.map","/**\n * @private\n */\nexport const ConfigurationPageCameraDropdown = (props) => {\n return props.cameraGrantedDropdown;\n};\n//# sourceMappingURL=ConfigurationPageCameraDropdown.js.map","/**\n * @private\n */\nexport const ConfigurationPageMicDropdown = (props) => {\n return props.micGrantedDropdown;\n};\n//# sourceMappingURL=ConfigurationPageMicDropdown.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles, AnimationStyles } from '@fluentui/react';\nimport { _pxToRem } from \"../../../../../acs-ui-common/src\";\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM = 11;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM = 20.625;\n/** @private */\nexport const CONFIGURATION_PAGE_SECTION_HEIGHT_REM = 13.625;\n/**\n * @private\n */\nexport const configurationStackTokensDesktop = {\n childrenGap: '1rem'\n};\n/**\n * @private\n */\nexport const configurationStackTokensMobile = {\n childrenGap: '1.5rem'\n};\n/** @private */\nexport const configurationContainerStyle = (desktop, backgroundImageUrl) => ({\n root: {\n height: '100%',\n width: '100%',\n padding: '2rem 1rem 2rem 1rem',\n minWidth: desktop ? '25rem' // sum of min-width from children + ChildrenGap * (nb of children - 1) + padding * 2 = (11 + 11) + (2 * 1) + 0.5 * 2\n : '16rem',\n // from LocalPreview: ControlBar width + 0.5 * 2 for spacing + padding * 2 = 14 + 0.5 * 2 + 0.5 * 2\n minHeight: desktop ? '22rem' // max height of SelectionContainer + padding * 2 = 21 + 0.5 * 2\n : '13rem',\n '::before': !backgroundImageUrl ? undefined : Object.assign({ content: '\"\"', position: 'absolute', top: 0, left: 0, zIndex: 0, width: '100%', height: '100%', backgroundImage: `url(${backgroundImageUrl})`, backgroundSize: 'cover', backgroundPosition: 'center' }, AnimationStyles.fadeIn500)\n }\n});\n/**\n * @private\n */\nexport const configurationSectionStyle = {\n root: {\n width: '100%',\n minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`,\n maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem`\n }\n};\n/**\n * @private\n */\nexport const selectionContainerStyle = (theme) => mergeStyles({\n width: '100%',\n height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`,\n padding: '1rem',\n borderRadius: theme.effects.roundedCorner6,\n border: `0.0625rem solid ${theme.palette.neutralLight}`,\n boxShadow: theme.effects.elevation4,\n // Style the background of the container to have partial transparency.\n // Using `before:` pseudo-element to avoid having to wrap the content in an extra div.\n // Ideally rgba would be used but we cannot garauntee the format of theme.palette.white\n // to parse it correctly.\n position: 'relative',\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 0,\n background: theme.palette.white,\n opacity: 0.9,\n borderRadius: theme.effects.roundedCorner4\n }\n});\n/**\n * @private\n */\nexport const titleContainerStyleDesktop = mergeStyles({\n fontSize: '1.25rem',\n lineHeight: '1.75rem',\n fontWeight: 600\n});\n/**\n * @private\n */\nexport const titleContainerStyleMobile = mergeStyles({\n fontSize: '1.0625rem',\n lineHeight: '1.375rem',\n fontWeight: 600,\n textAlign: 'center'\n});\n/**\n * @private\n */\nexport const callDetailsContainerStyles = {\n root: {\n textAlign: 'center',\n maxWidth: _pxToRem(700),\n alignSelf: 'center'\n }\n};\nconst callDetailsStyle = {\n fontSize: '0.9375',\n lineHeight: '1.25rem',\n marginTop: '0.25rem'\n};\n/**\n * @private\n */\nexport const callDetailsStyleDesktop = mergeStyles(Object.assign({}, callDetailsStyle));\n/**\n * @private\n */\nexport const callDetailsStyleMobile = mergeStyles(Object.assign(Object.assign({}, callDetailsStyle), { textAlign: 'center' }));\n/**\n * @private\n */\nexport const startCallButtonContainerStyleDesktop = {\n root: {\n paddingTop: '1.125rem'\n }\n};\n/**\n * @private\n */\nexport const startCallButtonContainerStyleMobile = {\n root: {\n textAlign: 'center'\n }\n};\n/**\n * @private\n */\nexport const startCallButtonStyleMobile = mergeStyles({\n width: '100%',\n maxWidth: 'unset',\n borderRadius: '0.25rem'\n});\n/**\n * @private\n */\nexport const startCallButtonStyleDesktop = mergeStyles({\n borderRadius: '0.25rem',\n width: 'auto',\n height: '2.25rem'\n});\n/** @private */\nexport const cameraAndVideoEffectsContainerStyleDesktop = {\n root: {\n alignItems: 'center'\n }\n};\n/**\n * @private\n */\nexport const effectsButtonStyles = (theme) => {\n return {\n root: {\n background: 'transparent',\n border: 'none',\n color: theme.palette.themePrimary,\n // Top and bottom padding needs to be 5px to match the label padding\n padding: '5px 0.25rem',\n ':hover, :focus': {\n color: theme.palette.themePrimary\n },\n svg: {\n height: '1rem',\n width: '1rem'\n }\n },\n rootChecked: {\n color: theme.palette.themePrimary\n },\n rootHovered: {\n color: theme.palette.themePrimary\n },\n rootPressed: {\n color: theme.palette.themePrimary\n },\n rootFocused: {\n color: theme.palette.themePrimary\n }\n };\n};\n/** @private */\nexport const fillWidth = mergeStyles({\n width: '100%',\n position: 'relative'\n});\n/** @private */\nexport const panelStyles = {\n content: {\n display: 'flex',\n flexBasis: '100%',\n paddingLeft: '0rem',\n // remove default padding\n paddingRight: '0rem' // remove default padding\n },\n commands: {\n paddingTop: '0rem' // remove default padding\n },\n scrollableContent: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n }\n};\n/** @private */\nexport const panelFocusProps = {\n forceFocusInsideTrap: false\n};\n/**\n * @private\n */\nexport const logoStyles = (shape) => ({\n root: {\n overflow: 'initial',\n // prevent the image being clipped\n display: 'flex',\n justifyContent: 'center',\n marginBottom: '1rem'\n },\n image: {\n borderRadius: shape === 'circle' ? '100%' : undefined,\n height: '3rem',\n width: '3rem'\n }\n});\n//# sourceMappingURL=CallConfiguration.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Dropdown, Label, mergeStyles, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(video-background-effects) */\nimport { DefaultButton } from '@fluentui/react';\nimport { useTheme } from \"../../../../../react-components/src\";\nimport React from 'react';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { useLocale } from '../../localization';\nimport { dropDownStyles, dropDownTitleIconStyles, mainStackTokens, optionIconStyles, soundStackTokens } from '../styles/LocalDeviceSettings.styles';\n/* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(rooms) */ /* @conditional-compile-remove(video-background-effects) */\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { ConfigurationPageCameraDropdown } from './ConfigurationPageCameraDropdown';\nimport { ConfigurationPageMicDropdown } from './ConfigurationPageMicDropdown';\nimport { cameraAndVideoEffectsContainerStyleDesktop } from '../styles/CallConfiguration.styles';\n/* @conditional-compile-remove(video-background-effects) */\nimport { effectsButtonStyles } from '../styles/CallConfiguration.styles';\nconst getDropDownList = (list) => {\n // Remove duplicates\n const noDuplicates = new Map();\n for (const item of list) {\n noDuplicates.set(item.id, item);\n }\n const dropdownList = [];\n for (const item of noDuplicates.values()) {\n dropdownList.push({\n key: item.id,\n text: item.name === '' ? item.deviceType : item.name\n });\n }\n return dropdownList;\n};\nconst getOptionIcon = (type) => {\n if (type === 'Camera') {\n return React.createElement(CallCompositeIcon, { iconName: \"LocalDeviceSettingsCamera\", className: optionIconStyles });\n }\n else if (type === 'Microphone') {\n return React.createElement(CallCompositeIcon, { iconName: \"LocalDeviceSettingsMic\", className: optionIconStyles });\n }\n else if (type === 'Speaker') {\n return React.createElement(CallCompositeIcon, { iconName: \"LocalDeviceSettingsSpeaker\", className: optionIconStyles });\n }\n else {\n return undefined;\n }\n};\nconst onRenderTitle = (iconType, props) => {\n const icon = props && getOptionIcon(iconType);\n return props ? React.createElement(\"div\", { className: dropDownTitleIconStyles },\n icon,\n React.createElement(\"span\", null, props[0].text)) : React.createElement(React.Fragment, null);\n};\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n};\n/**\n * @private\n */\nexport const LocalDeviceSettings = (props) => {\n var _a;\n const theme = useTheme();\n const locale = useLocale();\n /* @conditional-compile-remove(call-readiness) */ /* @conditional-compile-remove(video-background-effects) */ /* @conditional-compile-remove(rooms) */\n const adapter = useAdapter();\n /* @conditional-compile-remove(video-background-effects) */\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n const defaultPlaceHolder = locale.strings.call.defaultPlaceHolder;\n const cameraLabel = locale.strings.call.cameraLabel;\n const soundLabel = locale.strings.call.soundLabel;\n const noSpeakersLabel = locale.strings.call.noSpeakersLabel;\n const noCameraLabel = locale.strings.call.noCamerasLabel;\n const noMicLabel = locale.strings.call.noMicrophonesLabel;\n const cameraPermissionGranted = props.cameraPermissionGranted;\n const micPermissionGranted = props.microphonePermissionGranted;\n let roleCanUseCamera = true;\n let roleCanUseMic = true; // TODO: speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its\n // actually granting access to query both microphone and speaker. However the browser popup asks you explicity for\n // 'microphone'. This needs investigation on how we want to handle this and maybe needs follow up with SDK team.\n const hasCameras = props.cameras.length > 0;\n const hasMicrophones = props.microphones.length > 0;\n const hasSpeakers = props.speakers.length > 0;\n const cameraGrantedDropdown = React.createElement(Dropdown, { \"data-ui-id\": \"call-composite-local-camera-settings\", \"aria-labelledby\": 'call-composite-local-camera-settings-label', placeholder: hasCameras ? defaultPlaceHolder : noCameraLabel, options: cameraPermissionGranted ? getDropDownList(props.cameras) : [{\n key: 'deniedOrUnknown',\n text: ''\n }], styles: dropDownStyles(theme), disabled: !cameraPermissionGranted || !hasCameras, errorMessage: props.cameraPermissionGranted === undefined || props.cameraPermissionGranted ? undefined : locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted ? props.selectedCamera ? props.selectedCamera.id : props.cameras ? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id : '' : 'deniedOrUnknown', onChange: (event, option, index) => {\n props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);\n }, onRenderTitle: (props) => onRenderTitle('Camera', props) });\n const micGrantedDropdown = React.createElement(React.Fragment, null, roleCanUseMic && React.createElement(Dropdown, { \"aria-labelledby\": 'call-composite-local-sound-settings-label', placeholder: hasMicrophones ? defaultPlaceHolder : noMicLabel, styles: dropDownStyles(theme), disabled: !micPermissionGranted || !hasMicrophones, errorMessage: props.microphonePermissionGranted === undefined || props.microphonePermissionGranted ? undefined : locale.strings.call.microphonePermissionDenied, options: micPermissionGranted ? getDropDownList(props.microphones) : [{\n key: 'deniedOrUnknown',\n text: ''\n }], defaultSelectedKey: micPermissionGranted ? props.selectedMicrophone ? props.selectedMicrophone.id : defaultDeviceId(props.microphones) : 'deniedOrUnknown', onChange: (event, option, index) => {\n props.onSelectMicrophone(props.microphones[index !== null && index !== void 0 ? index : 0]);\n }, onRenderTitle: (props) => onRenderTitle('Microphone', props) }));\n return React.createElement(Stack, { \"data-ui-id\": \"call-composite-device-settings\", tokens: mainStackTokens },\n roleCanUseCamera && React.createElement(Stack, null,\n React.createElement(Stack, { horizontal: true, horizontalAlign: \"space-between\", styles: cameraAndVideoEffectsContainerStyleDesktop },\n React.createElement(Label, { id: 'call-composite-local-camera-settings-label', className: mergeStyles(dropDownStyles(theme).label), disabled: !cameraPermissionGranted }, cameraLabel),\n onResolveVideoEffectDependency && React.createElement(DefaultButton, { iconProps: {\n iconName: 'ConfigurationScreenVideoEffectsButton'\n }, styles: effectsButtonStyles(theme), onClick: props.onClickVideoEffects, \"data-ui-id\": 'call-config-video-effects-button' }, locale.strings.call.configurationPageVideoEffectsButtonLabel)),\n React.createElement(ConfigurationPageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false })),\n React.createElement(Stack, null,\n React.createElement(Label, { id: 'call-composite-local-sound-settings-label', className: mergeStyles(dropDownStyles(theme).label), disabled: !micPermissionGranted }, soundLabel),\n React.createElement(Stack, { \"data-ui-id\": \"call-composite-sound-settings\", tokens: soundStackTokens },\n React.createElement(ConfigurationPageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false }),\n React.createElement(Dropdown, { \"aria-labelledby\": 'call-composite-local-sound-settings-label', placeholder: hasSpeakers ? defaultPlaceHolder : noSpeakersLabel, styles: dropDownStyles(theme), disabled: props.speakers.length === 0, options: getDropDownList(props.speakers), defaultSelectedKey: props.selectedSpeaker ? props.selectedSpeaker.id : defaultDeviceId(props.speakers), onChange: (event, option, index) => {\n props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);\n }, onRenderTitle: (props) => onRenderTitle('Speaker', props) }))));\n};\nconst defaultDeviceId = (devices) => {\n if (devices.length === 0) {\n return '';\n }\n const defaultDevice = devices.find(device => device.isSystemDefault);\n if (defaultDevice) {\n return defaultDevice.id;\n }\n return devices[0].id;\n};\n//# sourceMappingURL=LocalDeviceSettings.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getDeviceManager } from './baseSelectors';\n/**\n * @private\n */\nexport const devicePermissionSelector = reselect.createSelector([getDeviceManager], deviceManager => {\n return {\n video: deviceManager.deviceAccess ? deviceManager.deviceAccess.video : undefined,\n audio: deviceManager.deviceAccess ? deviceManager.deviceAccess.audio : undefined\n };\n});\n//# sourceMappingURL=devicePermissionSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getDeviceManager } from './baseSelectors';\n/**\n * @private\n */\nexport const localPreviewSelector = reselect.createSelector([getDeviceManager], deviceManager => {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n const view = deviceManager.cameras.length > 0 &&\n // This ensures that the video stream is reset if camera devices are removed.\n deviceManager.unparentedViews.length > 0 && deviceManager.unparentedViews[0].view;\n return {\n videoStreamElement: view ? view.target : null\n };\n});\n//# sourceMappingURL=localPreviewSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nimport { CONFIGURATION_PAGE_SECTION_HEIGHT_REM, CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM, CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM } from './CallConfiguration.styles';\nconst localPreviewContainerStyle = {\n borderRadius: '.25rem'\n};\n/**\n * @private\n */\nexport const localPreviewContainerStyleDesktop = mergeStyles(Object.assign(Object.assign({}, localPreviewContainerStyle), { width: '100%', height: `${CONFIGURATION_PAGE_SECTION_HEIGHT_REM}rem`, minWidth: `${CONFIGURATION_PAGE_SECTION_MIN_WIDTH_REM}rem`, maxWidth: `${CONFIGURATION_PAGE_SECTION_MAX_WIDTH_REM}rem` }));\n/**\n * @private\n */\nexport const localPreviewContainerStyleMobile = mergeStyles(Object.assign(Object.assign({}, localPreviewContainerStyle), { width: '100%', height: '100%' }));\n/**\n * @private\n */\nexport const cameraOffLabelStyle = mergeStyles({\n fontSize: '0.75rem' // 12px\n});\n/**\n * @private\n */\nexport const localPreviewTileStyle = {\n root: {\n borderRadius: '.25rem',\n '@media (forced-colors: active)': {\n borderColor: '#FFFFFF',\n border: '1px solid'\n }\n }\n};\n/**\n * @private\n */\nexport const localPreviewButtonStyle = {\n root: {\n '@media (forced-colors: active)': {\n ':focus': {\n border: '1px solid !important' // we need bang important to override fluents colours\n },\n ':focus::after': {\n border: 'unset !important',\n // we need bang important to override fluents colours\n outline: 'unset !important'\n }\n }\n }\n};\n//# sourceMappingURL=LocalPreview.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 { mergeStyles, Stack, Text } from '@fluentui/react';\nimport { CameraButton, ControlBar, MicrophoneButton, DevicesButton, StreamMedia, useTheme, VideoTile } from \"../../../../../react-components/src\";\nimport React, { useCallback } from 'react';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { useLocale } from '../../localization';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { getLocalMicrophoneEnabled } from '../selectors/baseSelectors';\nimport { devicePermissionSelector } from '../selectors/devicePermissionSelector';\nimport { localPreviewSelector } from '../selectors/localPreviewSelector';\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\nimport { cameraOffLabelStyle, localPreviewButtonStyle, localPreviewContainerStyleDesktop, localPreviewContainerStyleMobile, localPreviewTileStyle } from '../styles/LocalPreview.styles';\n/**\n * @private\n */\nexport const LocalPreview = (props) => {\n const locale = useLocale();\n const cameraButtonProps = usePropsFor(CameraButton);\n const localPreviewProps = useSelector(localPreviewSelector);\n const devicesButtonProps = usePropsFor(DevicesButton);\n const { audio: microphonePermissionGranted, video: cameraPermissionGranted } = useSelector(devicePermissionSelector);\n const isLocalMicrophoneEnabled = useSelector(getLocalMicrophoneEnabled);\n const adapter = useAdapter();\n const onToggleMic = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n isLocalMicrophoneEnabled ? adapter.mute() : adapter.unmute();\n }), [adapter, isLocalMicrophoneEnabled]);\n const hasNoDevices = devicesButtonProps.cameras.length === 0 && devicesButtonProps.microphones.length === 0 && devicesButtonProps.speakers.length === 0;\n const hasCameras = devicesButtonProps.cameras.length > 0;\n const hasMicrophones = devicesButtonProps.microphones.length > 0;\n const theme = useTheme();\n const onRenderPlaceholder = useCallback(() => {\n return React.createElement(Stack, { className: mergeStyles({\n width: '100%',\n height: '100%'\n }), verticalAlign: \"center\", tokens: {\n childrenGap: '0.25rem'\n } },\n React.createElement(Stack.Item, { align: \"center\" },\n React.createElement(CallCompositeIcon, { iconName: \"LocalPreviewPlaceholder\", className: mergeStyles(cameraOffLabelStyle, {\n color: theme.palette.neutralTertiary\n }) })),\n React.createElement(Stack.Item, { align: \"center\" },\n React.createElement(Text, { className: mergeStyles(cameraOffLabelStyle, {\n color: theme.palette.neutralSecondary\n }) }, locale.strings.call.cameraTurnedOff)));\n }, [theme, locale.strings.call.cameraTurnedOff]);\n const devicesButtonStyles = props.mobileView ? {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n } : undefined;\n return React.createElement(Stack, { \"data-ui-id\": \"call-composite-local-preview\", className: props.mobileView ? localPreviewContainerStyleMobile : localPreviewContainerStyleDesktop },\n React.createElement(VideoTile, { styles: localPreviewTileStyle, renderElement: (localPreviewProps === null || localPreviewProps === void 0 ? void 0 : localPreviewProps.videoStreamElement) ? React.createElement(StreamMedia, { videoStreamElement: localPreviewProps.videoStreamElement }) : undefined, onRenderPlaceholder: onRenderPlaceholder },\n React.createElement(ControlBar, { layout: \"floatingBottom\" },\n React.createElement(MicrophoneButton, { \"data-ui-id\": \"call-composite-local-device-settings-microphone-button\", checked: isLocalMicrophoneEnabled, onToggleMicrophone: onToggleMic, disabled: !microphonePermissionGranted || !hasMicrophones, showLabel: true, \n // disable tooltip as it obscures list of devices on mobile\n strings: props.mobileView ? {\n tooltipOnContent: '',\n tooltipOffContent: '',\n tooltipDisabledContent: ''\n } : {}, styles: localPreviewButtonStyle }),\n React.createElement(CameraButton, Object.assign({ \"data-ui-id\": \"call-composite-local-device-settings-camera-button\" }, cameraButtonProps, { showLabel: true, disabled: !cameraPermissionGranted || !hasCameras, \n // disable tooltip as it obscures list of devices on mobile\n strings: props.mobileView ? {\n tooltipOnContent: '',\n tooltipOffContent: '',\n tooltipDisabledContent: '',\n tooltipVideoLoadingContent: ''\n } : {}, styles: localPreviewButtonStyle })),\n props.showDevicesButton && React.createElement(DevicesButton, Object.assign({ \"data-ui-id\": \"call-composite-local-device-settings-options-button\" }, devicesButtonProps, { \n // disable button whilst all other buttons are disabled\n disabled: !microphonePermissionGranted || !cameraPermissionGranted || hasNoDevices, showLabel: true, \n // disable tooltip as it obscures list of devices on mobile\n strings: props.mobileView ? {\n tooltipContent: ''\n } : {}, styles: devicesButtonStyles })))));\n};\n//# sourceMappingURL=LocalPreview.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { ErrorBar } from \"../../../../../react-components/src\";\n/**\n * @private\n */\nexport const ConfigurationPageErrorBar = (props) => {\n const { errorBarProps } = props;\n return React.createElement(ErrorBar, Object.assign({}, errorBarProps, { onDismissError: props.onDismissError }));\n};\n//# sourceMappingURL=ConfigurationPageErrorBar.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, useMemo } from 'react';\nimport { useAdaptedSelector } from '../hooks/useAdaptedSelector';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { LocalDeviceSettings } from '../components/LocalDeviceSettings';\nimport { StartCallButton } from '../components/StartCallButton';\nimport { devicePermissionSelector } from '../selectors/devicePermissionSelector';\nimport { useSelector } from '../hooks/useSelector';\nimport { DevicesButton, ErrorBar, useTheme } from \"../../../../../react-components/src\";\nimport { getCallingSelector } from \"../../../../../calling-component-bindings/src\";\nimport { Image, Panel, PanelType, Stack } from '@fluentui/react';\nimport { callDetailsContainerStyles, configurationSectionStyle, fillWidth, logoStyles, panelFocusProps, panelStyles, startCallButtonStyleDesktop } from '../styles/CallConfiguration.styles';\nimport { LocalPreview } from '../components/LocalPreview';\nimport { callDetailsStyleDesktop, callDetailsStyleMobile, configurationStackTokensDesktop, configurationStackTokensMobile, configurationContainerStyle, selectionContainerStyle, startCallButtonContainerStyleDesktop, startCallButtonContainerStyleMobile, startCallButtonStyleMobile, titleContainerStyleDesktop, titleContainerStyleMobile } from '../styles/CallConfiguration.styles';\nimport { useLocale } from '../../localization';\nimport { bannerNotificationStyles } from '../styles/CallPage.styles';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { ConfigurationPageErrorBar } from '../components/ConfigurationPageErrorBar';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM, useVideoEffectsPane } from '../components/SidePane/useVideoEffectsPane';\nimport { SidePane } from '../components/SidePane/SidePane';\n/* @conditional-compile-remove(video-background-effects) */\nimport { useIsParticularSidePaneOpen } from '../components/SidePane/SidePaneProvider';\n/* @conditional-compile-remove(video-background-effects) */\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n/**\n * @private\n */\nexport const ConfigurationPage = (props) => {\n var _a;\n const { startCallHandler, mobileView, modalLayerHostId } = props;\n const theme = useTheme();\n const options = useAdaptedSelector(getCallingSelector(DevicesButton));\n const localDeviceSettingsHandlers = useHandlers(LocalDeviceSettings);\n const { video: cameraPermissionGranted, audio: microphonePermissionGranted } = useSelector(devicePermissionSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const adapter = useAdapter();\n const deviceState = adapter.getState().devices;\n let disableStartCallButton = !microphonePermissionGranted || ((_a = deviceState.microphones) === null || _a === void 0 ? void 0 : _a.length) === 0;\n /* @conditional-compile-remove(video-background-effects) */\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n let filteredLatestErrors = props.latestErrors;\n /* @conditional-compile-remove(video-background-effects) */\n if ((useIsParticularSidePaneOpen('videoeffects') || !isCameraOn) && errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter(e => e.type !== 'unableToStartVideoEffect');\n }\n const locale = useLocale();\n const title = React.createElement(Stack.Item, { className: mobileView ? titleContainerStyleMobile : titleContainerStyleDesktop, role: \"heading\", \"aria-level\": 1 }, locale.strings.call.configurationPageTitle);\n const callDescription = locale.strings.call.configurationPageCallDetails && React.createElement(Stack.Item, { className: mobileView ? callDetailsStyleMobile : callDetailsStyleDesktop }, locale.strings.call.configurationPageCallDetails);\n let mobileWithPreview = mobileView; // When permission API is not available, we want to show screen saying checking for access (disappears on its own)\n // then based on permission setting, we show permission denied or nothing\n /* @conditional-compile-remove(video-background-effects) */\n const { toggleVideoEffectsPane, closeVideoEffectsPane, isVideoEffectsPaneOpen } = useVideoEffectsPane(props.updateSidePaneRenderer, mobileView, props.latestErrors, props.onDismissError);\n const startCall = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {\n /* @conditional-compile-remove(video-background-effects) */\n closeVideoEffectsPane();\n startCallHandler();\n }), [startCallHandler, /* @conditional-compile-remove(video-background-effects) */ closeVideoEffectsPane]);\n const panelLayerProps = useMemo(() => ({\n hostId: modalLayerHostId\n }), [modalLayerHostId]);\n const filteredErrorBarProps = useMemo(() => (Object.assign(Object.assign({}, errorBarProps), { activeErrorMessages: filteredLatestErrors })), [errorBarProps, filteredLatestErrors]);\n const containerStyles = useMemo(() => configurationContainerStyle(!mobileView), [mobileView]);\n return React.createElement(Stack, { styles: containerStyles },\n React.createElement(Stack, { styles: bannerNotificationStyles },\n React.createElement(ConfigurationPageErrorBar, { errorBarProps: filteredErrorBarProps, onDismissError: props.onDismissError })),\n React.createElement(Stack, { verticalFill: true, grow: true, horizontal: true, className: fillWidth },\n React.createElement(Stack, { className: fillWidth, verticalAlign: \"center\", verticalFill: mobileWithPreview, tokens: mobileWithPreview ? configurationStackTokensMobile : configurationStackTokensDesktop },\n React.createElement(Stack.Item, { styles: callDetailsContainerStyles },\n React.createElement(Logo, null),\n title,\n callDescription),\n React.createElement(Stack, { horizontal: !mobileWithPreview, horizontalAlign: mobileWithPreview ? 'stretch' : 'center', verticalFill: mobileWithPreview, tokens: configurationStackTokensMobile },\n localPreviewTrampoline(mobileWithPreview),\n React.createElement(Stack, { styles: mobileView ? undefined : configurationSectionStyle },\n !mobileWithPreview && React.createElement(Stack, { className: mobileView ? undefined : selectionContainerStyle(theme) },\n React.createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { cameraPermissionGranted: cameraPermissionGrantedTrampoline(cameraPermissionGranted), microphonePermissionGranted: micPermissionGrantedTrampoline(microphonePermissionGranted), onClickVideoEffects: toggleVideoEffectsPane }))),\n React.createElement(Stack, { styles: mobileWithPreview ? startCallButtonContainerStyleMobile : startCallButtonContainerStyleDesktop, horizontalAlign: mobileWithPreview ? 'stretch' : 'end' },\n React.createElement(StartCallButton, { className: mobileWithPreview ? startCallButtonStyleMobile : startCallButtonStyleDesktop, onClick: startCall, disabled: disableStartCallButton, hideIcon: true }))))),\n React.createElement(Panel\n /* @conditional-compile-remove(video-background-effects) */ , { \n /* @conditional-compile-remove(video-background-effects) */ isOpen: isVideoEffectsPaneOpen, hasCloseButton: false, isBlocking: false, isHiddenOnDismiss: false, styles: panelStyles, focusTrapZoneProps: panelFocusProps, layerProps: panelLayerProps, type: PanelType.custom, \n /* @conditional-compile-remove(video-background-effects) */ customWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` },\n React.createElement(SidePane, { mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer }))));\n};\nconst localPreviewTrampoline = (mobileView, doNotShow) => {\n return React.createElement(LocalPreview, { mobileView: mobileView, showDevicesButton: mobileView });\n};\nconst cameraPermissionGrantedTrampoline = (cameraPermissionGranted, videoState) => {\n return cameraPermissionGranted;\n};\nconst micPermissionGrantedTrampoline = (microphonePermissionGranted, audioState) => {\n return microphonePermissionGranted;\n};\nconst Logo = (props) => {\n var _a;\n if (!props.logo) {\n return React.createElement(React.Fragment, null);\n }\n return React.createElement(Image, { styles: logoStyles((_a = props.logo.shape) !== null && _a !== void 0 ? _a : 'circle'), src: props.logo.url, alt: props.logo.alt });\n};\n//# sourceMappingURL=ConfigurationPage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const overlayContainerStyle = {\n // Ensure some space around the text on a narrow viewport.\n margin: '1rem'\n};\n/**\n * @private\n */\nexport const titleStyle = (palette, isVideoReady) => {\n return {\n fontSize: '1rem',\n color: isVideoReady ? 'white' : palette.blue,\n textAlign: 'center'\n };\n};\n/**\n * @private\n */\nexport const videoTileStyles = {\n root: {\n height: '100%',\n width: '100%'\n }\n};\n/**\n * @private\n */\nexport const moreDetailsStyle = (palette, isVideoReady) => ({\n fontSize: '0.75rem',\n color: isVideoReady ? 'white' : palette.blue,\n textAlign: 'center'\n});\n//# sourceMappingURL=LobbyTile.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\nimport { useTheme } from \"../../../../../react-components/src\";\nimport { moreDetailsStyle, overlayContainerStyle, titleStyle } from '../styles/LobbyTile.styles';\nimport { ExpandedLocalVideoTile } from './ExpandedLocalVideoTile';\nimport { useHandlers } from '../hooks/useHandlers';\n/**\n * @private\n */\nexport const LobbyTile = (props) => {\n var _a;\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;\n const palette = useTheme().palette;\n const handlers = useHandlers(ExpandedLocalVideoTile);\n return React.createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: props.overlayProps ? React.createElement(Stack, { verticalFill: true, horizontalAlign: \"center\", verticalAlign: \"center\", className: mergeStyles(overlayContainerStyle), \"aria-atomic\": true },\n React.createElement(Stack.Item, { className: mergeStyles(titleStyle(palette, isVideoReady)) }, props.overlayProps.overlayIcon),\n React.createElement(Text, { className: mergeStyles(titleStyle(palette, isVideoReady)), \"aria-live\": \"assertive\", \"data-ui-id\": \"lobbyScreenTitle\" }, props.overlayProps.title),\n props.overlayProps.moreDetails && React.createElement(Text, { className: mergeStyles(moreDetailsStyle(palette, isVideoReady)), \"aria-live\": \"assertive\" }, props.overlayProps.moreDetails)) : undefined }, handlers));\n};\n//# sourceMappingURL=LobbyTile.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { ErrorBar } from \"../../../../../react-components/src\";\nimport { useSelector } from '../hooks/useSelector';\nimport { lobbySelector } from '../selectors/lobbySelector';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { LobbyTile } from '../components/LobbyTile';\nimport { getCallStatus, getRemoteParticipants } from '../selectors/baseSelectors';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { useLocale } from '../../localization';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n/**\n * @private\n */\nexport const LobbyPage = (props) => {\n var _a, _b, _c, _d;\n const errorBarProps = usePropsFor(ErrorBar);\n const lobbyProps = useSelector(lobbySelector);\n const strings = useLocale().strings.call;\n const callState = useSelector(getCallStatus);\n const inLobby = callState === 'InLobby';\n const participants = (_a = useSelector(getRemoteParticipants)) !== null && _a !== void 0 ? _a : {};\n // Reduce the controls shown when mobile view is enabled.\n let callControlOptions = props.mobileView ? reduceCallControlsForMobile((_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls) : (_c = props.options) === null || _c === void 0 ? void 0 : _c.callControls;\n callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);\n return React.createElement(CallArrangement, { complianceBannerProps: {\n strings\n }, errorBarProps: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== false && errorBarProps, callControlProps: {\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React.createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby, Object.values(participants)) })), dataUiId: 'lobby-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError });\n};\nconst overlayProps = (strings, inLobby, remoteParticipants) => {\n /**\n * Only grab the first participant because there will only be one in this situation.\n * when starting a call with multiple people the call goes to the connected state and composite goes directly to\n * videoGallery.\n *\n * We also need to check the participant state since in a group call the remote participants array will populate just before\n * the user joins. In this situation we also check the participant states. in a groupCall the state of the participants\n * will be 'Idle'.\n */\n const outboundCallParticipant = remoteParticipants[0] && ['Ringing', 'Connecting'].includes(remoteParticipants[0].state) && remoteParticipants.length === 1 ? remoteParticipants[0] : undefined;\n return inLobby ? overlayPropsWaitingToBeAdmitted(strings) : outboundCallParticipant ? overlayPropsOutboundCall(strings, outboundCallParticipant) : overlayPropsConnectingToCall(strings);\n};\nconst overlayPropsConnectingToCall = (strings) => ({\n title: strings.lobbyScreenConnectingToCallTitle,\n moreDetails: strings.lobbyScreenConnectingToCallMoreDetails,\n overlayIcon: React.createElement(CallCompositeIcon, { iconName: \"LobbyScreenConnectingToCall\" })\n});\nconst overlayPropsWaitingToBeAdmitted = (strings) => ({\n title: strings.lobbyScreenWaitingToBeAdmittedTitle,\n moreDetails: strings.lobbyScreenWaitingToBeAdmittedMoreDetails,\n overlayIcon: React.createElement(CallCompositeIcon, { iconName: \"LobbyScreenWaitingToBeAdmitted\" })\n});\nconst overlayPropsOutboundCall = (strings, participant) => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n title: participant.identifier.phoneNumber,\n moreDetails: outboundCallStringsTrampoline(strings)\n };\n }\n else {\n return {\n title: outboundCallStringsTrampoline(strings)\n };\n }\n};\nconst outboundCallStringsTrampoline = (strings) => {\n return '';\n};\n//# sourceMappingURL=LobbyPage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @private\n */\nexport const containerStyle = {\n maxWidth: '22.5rem',\n // Ensure some space around the text on a narrow viewport.\n margin: '1rem'\n};\n/**\n * @private\n */\nexport const containerItemGap = {\n childrenGap: '0.5rem'\n};\n/**\n * @private\n */\nexport const rejoinCallButtonContainerStyles = {\n root: {\n paddingTop: '1.125rem',\n borderRadius: '0.25rem'\n }\n};\n/**\n * @private\n */\nexport const titleStyles = {\n fontSize: '1.25rem',\n fontWeight: 600\n};\n/**\n * @private\n */\nexport const moreDetailsStyles = {\n fontSize: '1rem'\n};\n//# sourceMappingURL=NoticePage.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport React from 'react';\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\nimport { containerStyle, moreDetailsStyles, containerItemGap, titleStyles, rejoinCallButtonContainerStyles } from '../styles/NoticePage.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { StartCallButton } from '../components/StartCallButton';\nimport { CallCompositeIcon } from '../../common/icons';\n/**\n * Generic page with a title and more details text for serving up a notice to the user.\n *\n * @private\n */\nexport function NoticePage(props) {\n const adapter = useAdapter();\n return React.createElement(Stack, { className: mergeStyles(props.pageStyle), verticalFill: true, verticalAlign: \"center\", horizontalAlign: \"center\", \"data-ui-id\": props.dataUiId, \"aria-atomic\": true },\n React.createElement(Stack, { className: mergeStyles(containerStyle), tokens: containerItemGap },\n props.iconName && React.createElement(CallCompositeIcon, { iconName: props.iconName }),\n React.createElement(Text, { className: mergeStyles(titleStyles), \"aria-live\": \"assertive\" }, props.title),\n React.createElement(Text, { className: mergeStyles(moreDetailsStyles), \"aria-live\": \"assertive\" }, props.moreDetails),\n !props.disableStartCallButton && React.createElement(Stack, { styles: rejoinCallButtonContainerStyles },\n React.createElement(StartCallButton, { onClick: () => adapter.joinCall(), disabled: false, rejoinCall: true, autoFocus: true }))));\n}\n//# sourceMappingURL=NoticePage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(video-background-effects) */\nimport * as reselect from 'reselect';\n/* @conditional-compile-remove(video-background-effects) */\nimport { getSelectedVideoEffect } from './baseSelectors';\n/* @conditional-compile-remove(video-background-effects) */\n/**\n * @private\n */\nexport const activeVideoBackgroundEffectSelector = reselect.createSelector([getSelectedVideoEffect], (selectedVideoBackgroundEffect) => {\n if (selectedVideoBackgroundEffect && (selectedVideoBackgroundEffect.effectName === 'blur' || selectedVideoBackgroundEffect.effectName === 'none')) {\n return selectedVideoBackgroundEffect.effectName;\n }\n else if (selectedVideoBackgroundEffect && selectedVideoBackgroundEffect.effectName === 'replacement') {\n return selectedVideoBackgroundEffect === null || selectedVideoBackgroundEffect === void 0 ? void 0 : selectedVideoBackgroundEffect.key;\n }\n return 'none';\n});\n//# sourceMappingURL=activeVideoBackgroundEffectSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _isPreviewOn } from \"../../../../../calling-component-bindings/src\";\n/**\n * @private\n */\nexport const getDisplayName = (state) => state.displayName;\n/**\n * @private\n */\nexport const getCallId = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.id; };\n/**\n * @private\n */\nexport const getEndedCall = (state) => state.endedCall;\n/**\n * @private\n */\nexport const getCallStatus = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : 'None'; };\n/**\n * @private\n */\nexport const getDeviceManager = (state) => state.devices;\n/**\n * @private\n */\nexport const getIsScreenShareOn = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.isScreenSharingOn) !== null && _b !== void 0 ? _b : false; };\n/* @conditional-compile-remove(raise-hand) */\n/**\n * @private\n */\nexport const getLocalParticipantRaisedHand = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.raiseHand.localParticipantRaisedHand; };\n/**\n * @private\n */\nexport const getIsPreviewCameraOn = (state) => _isPreviewOn(state.devices);\n/**\n * @private\n */\nexport const getMicrophones = (state) => state.devices.microphones;\n/**\n * @private\n */\nexport const getCameras = (state) => state.devices.cameras;\n/* @conditional-compile-remove(capabilities) */\n/**\n * @private\n */\nexport const getRole = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.role; };\n/**\n * @private\n */\nexport const getPage = (state) => state.page;\n/**\n * @private\n */\nexport const getLocalMicrophoneEnabled = (state) => state.isLocalPreviewMicrophoneEnabled;\n/**\n * @private\n */\nexport const getLocalVideoStreams = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.localVideoStreams; };\n/**\n * @private\n */\nexport const getIsTranscriptionActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.transcription.isTranscriptionActive); };\n/**\n * @private\n */\nexport const getIsRecordingActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.recording.isRecordingActive); };\n/**\n * @private\n */\nexport const getUserFacingDiagnostics = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.diagnostics; };\n/**\n * @private\n */\nexport const getDominantSpeakerInfo = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.dominantSpeakers; };\n/**\n * @private\n */\nexport const getRemoteParticipants = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants; };\n/* @conditional-compile-remove(video-background-effects) */\n/**\n * @private\n */\nexport const getSelectedVideoEffect = (state) => state.selectedVideoBackgroundEffect;\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptions = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.captions;\n};\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptionsStatus = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;\n};\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentCaptionLanguage = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.currentCaptionLanguage;\n};\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentSpokenLanguage = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.currentSpokenLanguage;\n};\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedCaptionLanguages = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.supportedCaptionLanguages;\n};\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedSpokenLanguages = (state) => {\n var _a;\n return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.supportedSpokenLanguages;\n};\n/* @conditional-compile-remove(close-captions) */\n/**\n * @private\n */\nexport const getIsTeamsCall = (state) => state.isTeamsCall;\n/**\n * @private\n */\nexport const getLatestErrors = (state) => state.latestErrors;\n/* @conditional-compile-remove(capabilities) */\n/**\n * @private\n */\nexport const getLatestCapabilitiesChangedInfo = (state) => {\n var _a, _b;\n return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.latestCapabilitiesChangeInfo;\n};\n//# sourceMappingURL=baseSelectors.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getCallStatus, getIsScreenShareOn } from './baseSelectors';\nimport { createSelector } from 'reselect';\n/**\n * @private\n */\nexport const callStatusSelector = createSelector([getCallStatus, getIsScreenShareOn], (callStatus, isScreenShareOn) => {\n return {\n callStatus,\n isScreenShareOn\n };\n});\n//# sourceMappingURL=callStatusSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(capabilities) */\nimport * as reselect from 'reselect';\n/* @conditional-compile-remove(capabilities) */\nimport { getLatestCapabilitiesChangedInfo, getRole } from './baseSelectors';\n/* @conditional-compile-remove(capabilities) */\n/**\n * @private\n */\nexport const capabilitiesChangedInfoAndRoleSelector = reselect.createSelector([getLatestCapabilitiesChangedInfo, getRole], (capabilitiesChangeInfo, participantRole) => {\n return {\n capabilitiesChangeInfo,\n participantRole\n };\n});\n//# sourceMappingURL=capabilitiesChangedInfoAndRoleSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getCameras, getMicrophones } from './baseSelectors';\nimport { createSelector } from 'reselect';\n/**\n * @private\n */\nexport const deviceCountSelector = createSelector([getCameras, getMicrophones], (cameras, microphones) => {\n return {\n camerasCount: cameras.length,\n microphonesCount: microphones.length\n };\n});\n//# sourceMappingURL=deviceCountSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { localVideoSelector } from './localVideoStreamSelector';\n/**\n * @private\n */\nexport const lobbySelector = reselect.createSelector([localVideoSelector], localVideoStreamInfo => {\n return {\n localParticipantVideoStream: localVideoStreamInfo\n };\n});\n//# sourceMappingURL=lobbySelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _dominantSpeakersWithFlatId, _videoGalleryRemoteParticipantsMemo } from \"../../../../../calling-component-bindings/src\";\nimport * as reselect from 'reselect';\nimport { getDominantSpeakerInfo, getRemoteParticipants } from './baseSelectors';\n/**\n * Get the most dominant remote participant, if no dominant speaker IDs exist, this uses\n * one of the remote participants with no bias towards which one.\n *\n * @private\n */\nexport const dominantRemoteParticipantSelector = reselect.createSelector([getRemoteParticipants, getDominantSpeakerInfo], (remoteParticipants, dominantSpeakerInfo) => {\n const dominantSpeakers = _dominantSpeakersWithFlatId(dominantSpeakerInfo);\n const dominantRemoteParticipant = remoteParticipants && Object.keys(remoteParticipants).length > 0 ? findDominantRemoteParticipant(remoteParticipants, dominantSpeakers !== null && dominantSpeakers !== void 0 ? dominantSpeakers : []) : undefined;\n return dominantRemoteParticipant ? _videoGalleryRemoteParticipantsMemo(updateUserDisplayNamesTrampoline(Object.values(dominantRemoteParticipant)))[0] : undefined;\n});\nconst findDominantRemoteParticipant = (remoteParticipants, dominantSpeakerIds) => {\n let dominantRemoteParticipantId = dominantSpeakerIds[0];\n // Fallback to using the first remote participant if there are no dominant speaker IDs\n // or if the dominant speaker is no longer available in the list of remoteParticipantIds\n const remoteParticipantIds = Object.keys(remoteParticipants);\n if (!dominantRemoteParticipantId || !remoteParticipantIds.includes(dominantRemoteParticipantId)) {\n dominantRemoteParticipantId = remoteParticipantIds[0];\n }\n return {\n dominantRemoteParticipantId: remoteParticipants[dominantRemoteParticipantId]\n };\n};\nconst updateUserDisplayNamesTrampoline = (remoteParticipants) => {\n return remoteParticipants;\n};\n//# sourceMappingURL=dominantRemoteParticipantSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { localVideoSelector } from './localVideoStreamSelector';\nimport { dominantRemoteParticipantSelector } from './dominantRemoteParticipantSelector';\nimport { getDisplayName } from './baseSelectors';\n/* @conditional-compile-remove(raise-hand) */\nimport { getLocalParticipantRaisedHand } from './baseSelectors';\n/**\n * Picture in picture in picture needs to display the most-dominant remote speaker, as well as the local participant video.\n * @private\n */\nexport const localAndRemotePIPSelector = reselect.createSelector([getDisplayName, dominantRemoteParticipantSelector, localVideoSelector, /* @conditional-compile-remove(raise-hand) */ getLocalParticipantRaisedHand], (displayName, dominantRemoteParticipant, localVideoStreamInfo, /* @conditional-compile-remove(raise-hand) */ raisedHand) => {\n return {\n localParticipant: {\n displayName,\n videoStream: localVideoStreamInfo,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand: raisedHand\n },\n dominantRemoteParticipant\n };\n});\n//# sourceMappingURL=localAndRemotePIPSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { _isInCall, _isPreviewOn } from \"../../../../../calling-component-bindings/src\";\nimport * as reselect from 'reselect';\nimport { getDeviceManager, getLocalVideoStreams } from './baseSelectors';\nimport { callStatusSelector } from './callStatusSelector';\n/**\n * @private\n */\nexport const localVideoSelector = reselect.createSelector([callStatusSelector, getDeviceManager, getLocalVideoStreams], (callStatus, deviceManager, localVideoStreams) => {\n var _a, _b;\n let localVideoStream;\n if (_isInCall(callStatus.callStatus)) {\n localVideoStream = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find(i => i.mediaStreamType === 'Video');\n }\n else if (_isPreviewOn(deviceManager)) {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n localVideoStream = deviceManager.unparentedViews[0];\n }\n return {\n isAvailable: !!localVideoStream,\n isMirrored: (_a = localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.view) === null || _a === void 0 ? void 0 : _a.isMirrored,\n renderElement: (_b = localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.view) === null || _b === void 0 ? void 0 : _b.target,\n /* @conditional-compile-remove(video-background-effects) */\n activeVideoEffects: localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.videoEffects\n };\n});\n//# sourceMappingURL=localVideoStreamSelector.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { concatStyleSets } from '@fluentui/react';\nconst MINIMUM_TOUCH_TARGET_HEIGHT_REM = 3;\n/** @private */\nexport const controlBarContainerStyles = {\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem',\n // @TODO: this should be exposed through a custom CallComposite Theme API that extends the fluent theme with semantic values\n boxShadow: `\n 0px 6.400000095367432px 14.399999618530273px 0px #00000021;\n 0px 1.2000000476837158px 3.5999999046325684px 0px #0000001A;\n `\n};\n/**\n * @private\n */\nexport const groupCallLeaveButtonStyle = {\n root: {\n border: '0.125rem',\n borderRadius: 2,\n height: '2.1875rem',\n width: '6.5625rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n/**\n * @private\n */\nexport const groupCallLeaveButtonCompressedStyle = {\n root: {\n border: '0',\n borderRadius: '0.5rem'\n },\n flexContainer: {\n flexFlow: 'row'\n }\n};\n/**\n * Styles that can be applied to ensure flyout items have the minimum touch target size.\n *\n * @private\n */\nexport const buttonFlyoutIncreasedSizeStyles = {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset',\n overflow: 'hidden'\n },\n linkContent: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n lineHeight: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`,\n maxHeight: 'unset'\n },\n icon: {\n maxHeight: 'unset',\n textAlign: 'center'\n },\n checkmarkIcon: {\n lineHeight: '2rem'\n }\n};\n/**\n * @private\n */\nexport const participantButtonWithIncreasedTouchTargets = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles,\n participantListStyles: {\n participantItemStyles: {\n root: {\n height: `${MINIMUM_TOUCH_TARGET_HEIGHT_REM}rem`\n },\n participantSubMenuItemsStyles: buttonFlyoutIncreasedSizeStyles\n }\n }\n }\n};\n/**\n * @private\n */\nexport const devicesButtonWithIncreasedTouchTargets = {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n};\n/**\n * @private\n */\nexport const controlButtonBaseStyle = {\n label: {\n minWidth: '2.25rem'\n }\n};\n/**\n * @private\n */\nexport const concatButtonBaseStyles = (...styles) => {\n let result = controlButtonBaseStyle;\n styles.forEach(style => {\n result = concatStyleSets(result, style);\n });\n return result;\n};\n//# sourceMappingURL=Buttons.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nconst DEFAULT_Z_INDEX = 1;\nconst mainScreenContainerStyle = {\n height: '100%',\n width: '100%'\n};\n/**\n * @private\n */\nexport const mainScreenContainerStyleDesktop = mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '30rem', \n // max of min-width of composite pages (Call page)\n minHeight: '22rem' // max height of min-height of composite pages (Configuration page)\n }));\n/**\n * @private\n */\nexport const mainScreenContainerStyleMobile = mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '17.5rem', \n // max of min-width of composite pages (Call page)\n minHeight: '13rem' // max height of min-height of composite pages (Configuration page & Call page)\n }));\n/**\n * @private\n * Drawer styles to be used to house the _DrawerComponent on top of other content on the screen.\n * @param zIndex: this defaults to DEFAULT_Z_INDEX if unset\n */\nexport const drawerContainerStyles = (zIndex = DEFAULT_Z_INDEX) => ({\n root: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n // Any zIndex > 0 will work because this is the only absolutely\n // positioned element in the container.\n zIndex: zIndex\n }\n});\n/**\n * @private\n * Page container style for leaving page\n */\nexport const leavingPageStyle = (palette) => ({\n background: palette.neutralLighterAlt\n});\n//# sourceMappingURL=CallComposite.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/** @private */\nexport const controlBarContainerStyles = {\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem'\n};\n//# sourceMappingURL=CallControls.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles } from '@fluentui/react';\nimport { controlBarContainerStyles } from './CallControls.styles';\nconst VIDEO_GALLERY_Z_INDEX = 1;\n// The control bar must be in a higher z-band than the video gallery so the drop shadow appears on top of the video gallery\n/** @private */\nexport const CONTROL_BAR_Z_INDEX = VIDEO_GALLERY_Z_INDEX + 1;\n// The notification container should be in the highest z-band to ensure it shows on top of all other content.\nconst NOTIFICATION_CONTAINER_Z_INDEX = Math.max(CONTROL_BAR_Z_INDEX, VIDEO_GALLERY_Z_INDEX) + 1;\n/** @private */\nexport const DRAWER_Z_INDEX = NOTIFICATION_CONTAINER_Z_INDEX + 1;\n/**\n * @private\n */\nexport const callControlsContainerStyles = mergeStyles(controlBarContainerStyles, {\n zIndex: CONTROL_BAR_Z_INDEX\n});\nconst containerStyle = {\n width: '100%',\n position: 'relative',\n minHeight: '13rem' // linked to minimum space allocated to media gallery\n};\n/**\n * @private\n */\nexport const containerStyleDesktop = mergeStyles(Object.assign(Object.assign({}, containerStyle), { minWidth: '30rem' }));\n/**\n * @private\n */\nexport const containerStyleMobile = mergeStyles(Object.assign(Object.assign({}, containerStyle), { minWidth: '17.5rem' }));\n/**\n * @private\n */\nexport const galleryParentContainerStyles = (backgroundColor) => ({\n root: {\n zIndex: VIDEO_GALLERY_Z_INDEX,\n width: '100%',\n background: backgroundColor\n }\n});\n/**\n * @private\n */\nexport const mediaGalleryContainerStyles = {\n root: {\n height: '100%'\n }\n};\n/**\n * @private\n */\nexport const notificationsContainerStyles = {\n root: {\n width: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n padding: '1rem',\n zIndex: NOTIFICATION_CONTAINER_Z_INDEX,\n pointerEvents: 'none' // to allow the operation of controls underneath the notification container\n }\n};\n/**\n * @private\n */\nexport const bannerNotificationStyles = {\n root: {\n pointerEvents: 'auto' // to allow the dismissal or error and warning bars in the notification container\n }\n};\n/**\n * @private\n */\nexport const callArrangementContainerStyles = (verticalControlBar) => {\n return {\n root: {\n width: '100%',\n height: '100%',\n flexDirection: verticalControlBar ? 'unset' : 'column-reverse' // to allow first initial keyboard focus on ControlBar\n }\n };\n};\n/**\n * @private\n */\nexport const verticalControlBarStyles = {\n root: {\n margin: 'auto'\n }\n};\n//# sourceMappingURL=CallPage.styles.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(capabilities) */\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const useTrackedCapabilityChangedNotifications = (capabilitiesChangedAndRoleInfo) => {\n const [trackedCapabilityChangedNotifications, setTrackedCapabilityChangedNotifications] = useState({});\n // Initialize a share screen capability changed notification with 'RoleChanged' reason so that the initial\n // share screen capability changed info from the Calling SDK when joining Teams interop will be ignored because\n // being able to share screen is assumed by default. This is inline with what Teams is doing.\n const activeNotifications = useRef({\n shareScreen: {\n capabilityName: 'shareScreen',\n isPresent: true,\n changedReason: 'RoleChanged'\n }\n });\n useEffect(() => {\n activeNotifications.current = updateLatestCapabilityChangedNotificationMap(capabilitiesChangedAndRoleInfo, activeNotifications.current);\n setTrackedCapabilityChangedNotifications(prev => updateTrackedCapabilityChangedNotificationsWithActiveNotifications(prev, Object.values(activeNotifications.current)));\n }, [capabilitiesChangedAndRoleInfo]);\n const onDismissCapabilityChangedNotification = useCallback((notification) => {\n setTrackedCapabilityChangedNotifications(prev => trackCapabilityChangedNotificationAsDismissed(notification.capabilityName, prev));\n }, []);\n const latestCapabilityChangedNotifications = useMemo(() => filterLatestCapabilityChangedNotifications(Object.values(activeNotifications.current), trackedCapabilityChangedNotifications), [trackedCapabilityChangedNotifications]);\n return {\n capabilitiesChangedNotifications: latestCapabilityChangedNotifications,\n onDismissNotification: onDismissCapabilityChangedNotification\n };\n};\n/* @conditional-compile-remove(capabilities) */\n/**\n * Take the set of active notifications, and filter to only those that are newer than previously dismissed notifications or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestCapabilityChangedNotifications = (activeNotifications, trackedNotifications) => {\n const filteredNotifications = activeNotifications.filter(activeNotification => {\n const trackedNotification = trackedNotifications[activeNotification.capabilityName];\n return !trackedNotification || !trackedNotification.lastDismissedAt || trackedNotification.lastDismissedAt < trackedNotification.mostRecentlyActive;\n });\n return filteredNotifications;\n};\n/* @conditional-compile-remove(capabilities) */\n/**\n * Maintain a record of the most recently active notification for each capability name.\n *\n * @private\n */\nexport const updateTrackedCapabilityChangedNotificationsWithActiveNotifications = (existingTrackedNotifications, activeNotifications) => {\n var _a, _b;\n const trackedNotifications = {};\n // Only care about active notifications. If notifications are no longer active we do not track that they have been previously dismissed.\n for (const activeNotification of activeNotifications) {\n const existingTrackedNotification = existingTrackedNotifications[activeNotification.capabilityName];\n trackedNotifications[activeNotification.capabilityName] = {\n mostRecentlyActive: (_b = (_a = activeNotification.timestamp) !== null && _a !== void 0 ? _a : existingTrackedNotification === null || existingTrackedNotification === void 0 ? void 0 : existingTrackedNotification.mostRecentlyActive) !== null && _b !== void 0 ? _b : new Date(Date.now()),\n lastDismissedAt: existingTrackedNotification === null || existingTrackedNotification === void 0 ? void 0 : existingTrackedNotification.lastDismissedAt\n };\n }\n return trackedNotifications;\n};\n/* @conditional-compile-remove(capabilities) */\n/**\n * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.\n *\n * @private\n */\nexport const trackCapabilityChangedNotificationAsDismissed = (capabilityName, trackedNotifications) => {\n const now = new Date(Date.now());\n const existingNotification = trackedNotifications[capabilityName];\n return Object.assign(Object.assign({}, trackedNotifications), { [capabilityName]: Object.assign(Object.assign({}, (existingNotification || {})), { lastDismissedAt: now }) });\n};\n/* @conditional-compile-remove(capabilities) */\nconst updateLatestCapabilityChangedNotificationMap = (capabilitiesChangedInfoAndRole, activeNotifications) => {\n if (!capabilitiesChangedInfoAndRole.capabilitiesChangeInfo) {\n return activeNotifications;\n }\n for (const [capabilityName, newCapabilityValue] of Object.entries(capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.newValue)) {\n // If the active notification for a capability has the same `isPresent` value and the same reason as the new\n // capability value from the SDK then we will not create a new notification to avoid redundancy\n if (activeNotifications[capabilityName] && newCapabilityValue.isPresent === activeNotifications[capabilityName].isPresent && capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason === activeNotifications[capabilityName].changedReason) {\n continue;\n }\n const newCapabilityChangeNotification = {\n capabilityName: capabilityName,\n isPresent: newCapabilityValue.isPresent,\n changedReason: capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason,\n role: capabilitiesChangedInfoAndRole.participantRole,\n timestamp: new Date(Date.now())\n };\n activeNotifications[capabilityName] = newCapabilityChangeNotification;\n }\n return activeNotifications;\n};\n//# sourceMappingURL=TrackCapabilityChangedNotifications.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Take the set of active errors, and filter to only those that are newer than previously dismissed errors or have never been dismissed.\n *\n * @private\n */\nexport const filterLatestErrors = (activeErrors, trackedErrors) => {\n const filteredErrors = activeErrors.filter(activeError => {\n const trackedError = trackedErrors[activeError.type];\n return !trackedError || !trackedError.lastDismissedAt || trackedError.lastDismissedAt < trackedError.mostRecentlyActive;\n });\n return filteredErrors;\n};\n/**\n * Maintain a record of the most recently active error for each error type.\n *\n * @private\n */\nexport const updateTrackedErrorsWithActiveErrors = (existingTrackedErrors, activeErrors) => {\n var _a, _b;\n const trackedErrors = {};\n // Only care about active errors. If errors are no longer active we do not track that they have been previously dismissed.\n for (const activeError of activeErrors) {\n const existingTrackedError = existingTrackedErrors[activeError.type];\n trackedErrors[activeError.type] = {\n mostRecentlyActive: (_b = (_a = activeError.timestamp) !== null && _a !== void 0 ? _a : existingTrackedError === null || existingTrackedError === void 0 ? void 0 : existingTrackedError.mostRecentlyActive) !== null && _b !== void 0 ? _b : new Date(Date.now()),\n lastDismissedAt: existingTrackedError === null || existingTrackedError === void 0 ? void 0 : existingTrackedError.lastDismissedAt\n };\n }\n return trackedErrors;\n};\n/**\n * Create a record for when the error was most recently dismissed for tracking dismissed errors.\n *\n * @private\n */\nexport const trackErrorAsDismissed = (errorType, trackedErrors) => {\n const now = new Date(Date.now());\n const existingError = trackedErrors[errorType];\n return Object.assign(Object.assign({}, trackedErrors), { [errorType]: Object.assign(Object.assign({}, (existingError || {})), { lastDismissedAt: now }) });\n};\n//# sourceMappingURL=TrackErrors.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { END_CALL_PAGES } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from \"../../../../../calling-component-bindings/src\";\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\nconst ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;\nconst REMOTE_PSTN_USER_HUNG_UP = 560000;\nconst REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];\n/**\n * @private\n */\nexport const isCameraOn = (state) => {\n if (state.call) {\n const stream = state.call.localVideoStreams.find(stream => stream.mediaStreamType === 'Video');\n return !!stream;\n }\n else {\n if (state.devices.selectedCamera) {\n const previewOn = _isPreviewOn(state.devices);\n return previewOn;\n }\n }\n return false;\n};\n/**\n * Reduce the set of call controls visible on mobile.\n * For example do not show screenshare button.\n *\n * @private\n */\nexport const reduceCallControlsForMobile = (callControlOptions) => {\n if (callControlOptions === false) {\n return false;\n }\n // Ensure call controls a valid object.\n const reduceCallControlOptions = callControlOptions === true ? {} : callControlOptions || {};\n // Set to compressed mode when composite is optimized for mobile\n reduceCallControlOptions.displayType = 'compact';\n // Do not show screen share button when composite is optimized for mobile unless the developer\n // has explicitly opted in.\n if (reduceCallControlOptions.screenShareButton !== true) {\n reduceCallControlOptions.screenShareButton = false;\n }\n return reduceCallControlOptions;\n};\nvar CallEndReasons;\n(function (CallEndReasons) {\n CallEndReasons[CallEndReasons[\"LEFT_CALL\"] = 0] = \"LEFT_CALL\";\n CallEndReasons[CallEndReasons[\"ACCESS_DENIED\"] = 1] = \"ACCESS_DENIED\";\n CallEndReasons[CallEndReasons[\"REMOVED_FROM_CALL\"] = 2] = \"REMOVED_FROM_CALL\";\n CallEndReasons[CallEndReasons[\"ROOM_NOT_FOUND\"] = 3] = \"ROOM_NOT_FOUND\";\n CallEndReasons[CallEndReasons[\"DENIED_PERMISSION_TO_ROOM\"] = 4] = \"DENIED_PERMISSION_TO_ROOM\";\n})(CallEndReasons || (CallEndReasons = {}));\nconst getCallEndReason = (call) => {\n var _a, _b, _c;\n const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));\n /**\n * Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.\n * The code and subcode is the same as when a user is removed from a teams interop call.\n * Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.\n * If yes, the caller was kicked out of the call, but we need to show them that they left the call.\n * Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.\n */\n if (remoteParticipantsEndedArray.length === 1 && isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) && ((_a = call.callEndReason) === null || _a === void 0 ? void 0 : _a.subCode) !== REMOTE_PSTN_USER_HUNG_UP) {\n return CallEndReasons.LEFT_CALL;\n }\n if (((_b = call.callEndReason) === null || _b === void 0 ? void 0 : _b.subCode) && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {\n return CallEndReasons.ACCESS_DENIED;\n }\n if (((_c = call.callEndReason) === null || _c === void 0 ? void 0 : _c.subCode) && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {\n return CallEndReasons.REMOVED_FROM_CALL;\n }\n if (call.callEndReason) {\n // No error codes match, assume the user simply left the call regularly\n return CallEndReasons.LEFT_CALL;\n }\n throw new Error('No matching call end reason');\n};\n/**\n * Get the current call composite page based on the current call composite state\n *\n * @param Call - The current call state\n * @param previousCall - The state of the most recent previous call that has ended.\n *\n * @remarks - The previousCall state is needed to determine if the call has ended.\n * When the call ends a new call object is created, and so we must lookback at the\n * previous call state to understand how the call has ended. If there is no previous\n * call we know that this is a fresh call and can display the configuration page.\n *\n * @private\n */\nexport const getCallCompositePage = (call, previousCall, unsupportedBrowserInfo, transferCall) => {\n if (call) {\n // Must check for ongoing call *before* looking at any previous calls.\n // If the composite completes one call and joins another, the previous calls\n // will be populated, but not relevant for determining the page.\n // `_isInLobbyOrConnecting` needs to be checked first because `_isInCall` also returns true when call is in lobby.\n if (_isInLobbyOrConnecting(call === null || call === void 0 ? void 0 : call.state)) {\n return 'lobby';\n // `LocalHold` needs to be checked before `isInCall` since it is also a state that's considered in call.\n }\n else if ((call === null || call === void 0 ? void 0 : call.state) === 'LocalHold') {\n return 'call';\n }\n else if ((call === null || call === void 0 ? void 0 : call.state) === 'Disconnecting') {\n return 'leaving';\n }\n else if (_isInCall(call === null || call === void 0 ? void 0 : call.state)) {\n return 'call';\n }\n else {\n // When the call object has been constructed after clicking , but before 'connecting' has been\n // set on the call object, we continue to show the configuration screen.\n // The call object does not correctly reflect local device state until `call.state` moves to `connecting`.\n // Moving to the 'lobby' page too soon leads to components that depend on the `call` object to show incorrect\n // transitional state.\n return 'configuration';\n }\n }\n if (previousCall) {\n const reason = getCallEndReason(previousCall);\n switch (reason) {\n case CallEndReasons.ACCESS_DENIED:\n return 'accessDeniedTeamsMeeting';\n case CallEndReasons.REMOVED_FROM_CALL:\n return 'removedFromCall';\n case CallEndReasons.LEFT_CALL:\n if (previousCall.diagnostics.network.latest.noNetwork) {\n return 'joinCallFailedDueToNoNetwork';\n }\n return 'leftCall';\n }\n }\n // No call state - show starting page (configuration)\n return 'configuration';\n};\n/** @private */\nexport const IsCallEndedPage = (page) => END_CALL_PAGES.includes(page);\n/**\n * Creates a new call control options object and sets the correct values for disabling\n * the buttons provided in the `disabledControls` array.\n * Returns a new object without changing the original object.\n * @param callControlOptions options for the call control component that need to be modified.\n * @param disabledControls An array of controls to disable.\n * @returns a copy of callControlOptions with disabledControls disabled\n * @private\n */\nexport const disableCallControls = (callControlOptions, disabledControls) => {\n var _a;\n if (callControlOptions === false) {\n return false;\n }\n // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.\n let newOptions = (_a = (callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions)) !== null && _a !== void 0 ? _a : {};\n if (newOptions === true || newOptions === undefined) {\n newOptions = disabledControls.reduce((acc, key) => {\n acc[key] = {\n disabled: true\n };\n return acc;\n }, {});\n }\n else {\n disabledControls.forEach(key => {\n if (newOptions[key] !== false) {\n newOptions[key] = {\n disabled: true\n };\n }\n });\n }\n return newOptions;\n};\n/**\n * Check if a disabled object is provided for a button and returns if the button is disabled.\n * A button is only disabled if is explicitly set to disabled.\n *\n * @param option\n * @returns whether a button is disabled\n * @private\n */\nexport const isDisabled = (option) => {\n if (option === undefined || typeof option === 'boolean') {\n return false;\n }\n return option.disabled;\n};\n/**\n * Check if we are using safari browser\n * @private\n */\nexport const _isSafari = (environmentInfo) => {\n return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);\n};\n/**\n * @private\n * This is the util function to create a participant modifier for remote participantList\n * It memoize previous original participant items and only update the changed participant\n * It takes in one modifier function to generate one single participant object, it returns undefined if the object keeps unmodified\n */\nexport const createParticipantModifier = (createModifiedParticipant) => {\n let previousParticipantState = undefined;\n let modifiedParticipants = {};\n const memoizedParticipants = {};\n return (state) => {\n var _a, _b, _c, _d;\n // if root state is the same, we don't need to update the participants\n if (((_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants) !== previousParticipantState) {\n modifiedParticipants = {};\n const originalParticipants = (_b = state.call) === null || _b === void 0 ? void 0 : _b.remoteParticipants;\n for (const key in originalParticipants) {\n const modifiedParticipant = createModifiedParticipant(key, originalParticipants[key]);\n if (modifiedParticipant === undefined) {\n modifiedParticipants[key] = originalParticipants[key];\n continue;\n }\n // Generate the new item if original cached item has been changed\n if (((_c = memoizedParticipants[key]) === null || _c === void 0 ? void 0 : _c.originalRef) !== originalParticipants[key]) {\n memoizedParticipants[key] = {\n newParticipant: modifiedParticipant,\n originalRef: originalParticipants[key]\n };\n }\n // the modified participant is always coming from the memoized cache, whether is was refreshed\n // from the previous closure or not\n modifiedParticipants[key] = memoizedParticipants[key].newParticipant;\n }\n previousParticipantState = (_d = state.call) === null || _d === void 0 ? void 0 : _d.remoteParticipants;\n }\n return Object.assign(Object.assign({}, state), { call: state.call ? Object.assign(Object.assign({}, state.call), { remoteParticipants: modifiedParticipants }) : undefined });\n };\n};\n/* @conditional-compile-remove(video-background-effects) */\n/** @private */\nexport const getBackgroundEffectFromSelectedEffect = (selectedEffect, VideoBackgroundEffectsDependency) => (selectedEffect === null || selectedEffect === void 0 ? void 0 : selectedEffect.effectName) === 'blur' ? VideoBackgroundEffectsDependency.createBackgroundBlurEffect() : (selectedEffect === null || selectedEffect === void 0 ? void 0 : selectedEffect.effectName) === 'replacement' ? VideoBackgroundEffectsDependency.createBackgroundReplacementEffect({\n backgroundImageUrl: selectedEffect.backgroundImageUrl\n}) : undefined;\n/**\n * @remarks this logic should mimic the onToggleCamera in the common call handlers.\n * @private\n */\nexport const getSelectedCameraFromAdapterState = (state) => state.devices.selectedCamera || state.devices.cameras[0];\n//# sourceMappingURL=Utils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { useLocale } from '../../localization/LocalizationProvider';\n/**\n * The hook to bypass limitation of conditional build for CallWithChatComposite\n * Remove this and use useLocale() instead when merge CallWithChatComposite from beta\n *\n * @private\n */\nexport const useCallWithChatCompositeStrings = () => {\n const locale = useLocale();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return locale.strings.callWithChat;\n};\n//# sourceMappingURL=useCallWithChatCompositeStrings.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as reselect from 'reselect';\nimport { getDeviceManager } from '../../CallComposite/selectors/baseSelectors';\n/**\n * @private\n */\nexport const moreDrawerSelector = reselect.createSelector([getDeviceManager], deviceManager => {\n return {\n microphones: deviceManager.microphones,\n speakers: deviceManager.speakers,\n selectedMicrophone: deviceManager.selectedMicrophone,\n selectedSpeaker: deviceManager.selectedSpeaker\n };\n});\n//# sourceMappingURL=moreDrawerSelector.js.map"],"names":["Devices","props","devicesButtonProps","usePropsFor","DevicesButton","D","augmentedDeviceButtonProps","useMemo","Object","assign","styles","_a","increaseFlyoutItemSize","persistMenu","showLabel","displayType","disabled","Participants","participantsButtonProps","ParticipantsButton","participantsButtonStyles","callInvitationURL","onFetchParticipantMenuItems","isDisabled","option","showParticipantOverflowTooltip","isMobile","undefined","controlBarStyles","memoize","background","root","CallControls","options","localeStrings","moreButtonStrings","label","strings","call","moreButtonCallingLabel","tooltipOffContent","callWithChat","moreDrawerButtonTooltip","raiseHandButtonProps","RaiseHandButton","numberOfButtons","screenShareButtonIsEnabled","isEnabled","screenShareButton","microphoneButtonIsEnabled","microphoneButton","cameraButtonIsEnabled","cameraButton","endCallButton","showParticipantsButtonInControlBar","participantsButton","customDrawerButtons","moreButtonMenuItems","items","onPeopleButtonClicked","push","key","text","component","onClick","iconProps","iconName","lineHeight","itemProps","moreButtonContextualMenuItems","showMoreButton","moreButton","length","customButtons","showDevicesButtonInControlBar","devicesButton","showRaiseHandButtonInControlBar","raiseHandButton","devicesButtonMenu","subMenuProps","checked","onLabel","offLabel","onToggleRaiseHand","slice","forEach","element","theme","useTheme","Stack","horizontalAlign","className","ControlBar","layout","displayVertical","semanticColors","bodyBackground","Microphone","Camera","RaiseHand","ScreenShare","map","CustomButton","i","disableTooltip","MoreButton","menuIconProps","hidden","menuProps","EndCall","MutedNotification","locale","horizontal","speakingWhileMuted","isSpeakingAndMutedAnimationStyles","isNotSpeakingAndMutedAnimationStyles","stackStyle","iconStyle","Text","textStyle","mutedMessage","palette","black","gap","padding","borderRadius","effects","roundedCorner4","width","opacity","color","white","maxHeight","fontSize","display","PEOPLE_SIDE_PANE_ID","CapabilitiesChangedNotificationBar","capabilitiesChangedNotifications","notification","message","getCapabilityChangedNotificationString","capabilityChangedNotification","getCustomMessageBarIconProps","MessageBar","capabilityName","messageBarStyles","messageBarType","dismissIconProps","onDismiss","onDismissNotification","messageBarIconProps","_b","_c","_d","_e","_f","changedReason","isPresent","turnVideoOn","grantedDueToMeetingOption","lostDueToMeetingOption","unmuteMic","role","shareScreen","grantedDueToRoleChangeToPresenter","lostDueToRoleChangeToAttendee","height","innerText","alignSelf","icon","content","dismissal","paddingTop","CallArrangement","_g","_h","_j","containerClassName","mobileView","callGalleryStyles","neutralLighterAlt","peopleButtonRef","useRef","cameraButtonRef","containerRef","containerWidth","containerHeight","isInLobby","useSelector","callStatusSelector","callStatus","updateSidePaneRenderer","adapter","drawerMenuItems","setDrawerMenuItems","useState","peoplePaneProps","inviteLink","callControlProps","isPeoplePaneOpen","openPeoplePane","closePeoplePane","onFetchAvatarPersonaData","closePane","useCallback","current","focus","onRenderHeader","SidePaneHeader","onClose","headingText","peoplePaneTitle","dismissSidePaneButtonAriaLabel","dismissSidePaneButtonLabel","onRenderContent","PeoplePaneContent","sidePaneRenderer","headerRenderer","contentRenderer","id","openPane","isOpen","useEffect","usePeoplePane","togglePeoplePane","isSidePaneOpen","renderGallery","setRenderGallery","modalStrings","dismissModalAriaLabel","isMobileWithActivePane","callCompositeContainerCSS","minWidth","position","onResolveVideoEffectDependency","getState","openVideoEffectsPane","useVideoEffectsPane","latestErrors","onDismissError","showDrawer","setShowDrawer","onMoreButtonClicked","closeDrawer","onMoreDrawerPeopleClicked","drawerContainerStylesValue","filteredLatestErrors","errorBarProps","isCameraOn","isAvailable","isVideoPaneOpen","filter","e","type","isTeamsCall","hasJoinedCall","isCaptionsOn","minMaxDragPosition","modalLayerHostId","pipStyles","verticalControlBar","filteredCapabilitesChangedNotifications","capabilitiesChangedNotificationBarProps","ref","verticalFill","dataUiId","reversed","grow","verticalAlign","zIndex","isLegacyCallControlEnabled","CommonCallControlBar","callControls","callAdapter","disableButtonsForLobbyPage","peopleButtonChecked","isCaptionsSupported","onClickVideoEffects","onUserSetOverflowGalleryPositionChange","onUserSetGalleryLayout","onUserSetGalleryLayoutChange","userSetGalleryLayout","PreparedMoreDrawer","onLightDismiss","style","complianceBannerProps","ErrorBar","activeErrorMessages","mutedNotificationProps","onRenderGalleryContent","CaptionsBanner","SidePane","maxWidth","shouldShowPeopleTabHeaderButton","disablePeopleButton","onChatButtonClicked","mobileChatTabHeader","disableChatButton","ModalLocalAndRemotePIP","minDragPosition","maxDragPosition","onDismissSidePane","onCloseChatPane","legacyControlBarExperience","peopleButton","containerStyles","overlayBackgroundStyles","isVideoReady","overlayContentStyles","OVERLAY_BACKGROUND_ZINDEX","videoTileStyles","onRenderEmptyPlaceholder","localVideoViewOptions","scalingMode","isMirrored","ExpandedLocalVideoTile","videoStream","localParticipantVideoStream","renderElement","onCreateLocalStreamView","catch","err","console","log","VideoTile","StreamMedia","videoStreamElement","onRenderPlaceholder","overlayContent","LocalAndRemotePIP","localParticipant","dominantRemoteParticipant","onDisposeLocalStreamView","onCreateRemoteStreamView","onDisposeRemoteStreamView","localVideoTileProps","displayName","showMuteIndicator","showCameraSwitcherInLocalPreview","raisedHand","remoteVideoTileProps","remoteParticipant","remoteVideoViewOptions","isReceiving","userId","ariaLabel","pictureInPictureTileAriaLabel","rootAriaLabel","primaryTileProps","children","orientation","secondaryTileProps","personaMinSize","primaryTile","secondaryTile","overrideSidePane","renderingOnlyHiddenContent","renderer","persistRenderingWhenClosed","isActive","maxWidthStyles","paneStyles","Header","EmptyElement","overrideSidePaneId","LegacyHeader","noop","activeTab","HeaderToRender","ContentRender","OverrideContentRender","tokens","SidePaneContext","createContext","SidePaneProvider","Provider","value","useSidePaneContext","useContext","useIsSidePaneOpen","useIsParticularSidePaneOpen","sidePaneId","VIDEO_EFFECTS_SIDE_PANE_ID","VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM","videoEffectsPaneTitle","latestVideoEffectError","find","error","activeVideoEffectError","activeVideoEffectChange","togglePane","closeVideoEffectsPane","toggleVideoEffectsPane","isVideoEffectsPaneOpen","videoCameraIconStyle","marginRight","buttonStyle","fontWeight","buttonWithIconStyles","textContainer","StartCallButton","rejoinCall","PrimaryButton","rejoinCallButtonLabel","startCallButtonLabel","onRenderIcon","hideIcon","cameraButtonProps","turnVideoOnCapability","capabilitiesFeature","capabilities","enableDeviceSelectionMenu","splitButtonsForDeviceSelection","onRenderOffIcon","componentRef","compactMode","hangUpButtonProps","microphoneButtonProps","M","isLocalMicrophoneEnabled","unmuteMicCapability","microphoneButtonStrings","microphoneToggleInLobbyNotAllowed","tooltipOnContent","raiseHandButtonDisabled","screenShareButtonProps","useAdaptedSelector","selector","selectorProps","useSelectorWithAdaptation","adaptCompositeState","adaptState","mounted","callId","callConfigProps","setProps","propRef","onStateChange","state","newProps","offStateChange","memoizeState","deviceManager","calls","alternateCallerId","environmentInfo","incomingCalls","incomingCallsEnded","callsEnded","callAgent","memoizeCalls","compositeState","devices","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","apply","useHandlers","_component","createCompositeHandlers","createStreamView","onHangUp","forEveryone","leaveCall","onRemoveParticipant","removeParticipant","onRaiseHand","raiseHand","onLowerHand","lowerHand","localParticipantRaisedHand","onSelectCamera","deviceInfo","setCamera","onSelectMicrophone","setMicrophone","onSelectSpeaker","setSpeaker","onStartCall","participants","rawIds","participant","startCall","onStartScreenShare","startScreenShare","onStopScreenShare","stopScreenShare","onToggleCamera","stopCamera","startCamera","onToggleMicrophone","isMuted","unmute","mute","onToggleScreenShare","isScreenSharingOn","onStartLocalVideo","disposeLocalVideoStreamView","disposeStreamView","onDisposeRemoteScreenShareStreamView","disposeScreenShareStreamView","onDisposeRemoteVideoStreamView","disposeRemoteVideoStreamView","onRemoveVideoBackgroundEffects","stopVideoBackgroundEffects","onBlurVideoBackground","backgroundBlurConfig","blurConfig","effectName","startVideoBackgroundEffect","onReplaceVideoBackground","backgroundReplacementConfig","replacementConfig","onStartCaptions","startCaptions","onStopCaptions","stopCaptions","onSetSpokenLanguage","language","setSpokenLanguage","onSetCaptionLanguage","setCaptionLanguage","Error","localVideoCameraCycleButtonSelector","cameras","selectedCamera","mediaGallerySelector","localVideoStreams","isVideoStreamOn","stream","mediaStreamType","view","target","getRemoteParticipantsConnectedSelector","remoteParticipants","values","p","createAnnouncementString","direction","unnamedParticipants","sortedParticipants","concat","manyUnnamedParticipantsJoined","manyUnnamedParticipantsLeft","numOfParticipants","toString","participantNames","unnamedParticipantString","participantJoinedNoticeString","participantLeftNoticeString","twoParticipantJoinedNoticeString","twoParticipantLeftNoticeString","displayName1","displayName2","threeParticipantJoinedNoticeString","threeParticipantLeftNoticeString","displayName3","numberOfExtraParticipants","manyParticipantsJoined","manyParticipantsLeft","VideoGalleryStyles","minHeight","MediaGallery","videoGalleryProps","VideoGallery","cameraSwitcherCameras","cameraSwitcherCallback","announcerString","setAnnouncerString","currentParticipants","previousParticipants","resetAnnoucement","string","currentIds","identifier","previousIds","whoJoined","includes","whoLeft","useParticipantChangedAnnouncement","containerAspectRatio","layoutBasedOnTilePosition","localVideoTileLayoutTrampoline","cameraSwitcherProps","onRenderAvatar","margin","coinSize","AvatarPersona","dataProvider","remoteVideoTileMenuOptions","isHidden","kind","hostId","drawerMenuHostId","overflowGalleryPosition","userSetOverflowGalleryPosition","VideoGalleryMemoized","localVideoTileOptions","localVideoCameraCycleButtonProps","remoteVideoTileMenu","mediaGalleryContainerStyles","Announcer","announcementString","ariaLive","localTileOptions","containerStyle","titleContainerStyle","titleStyle","neutralPrimary","textAlign","moreDetailsStyle","NetworkReconnectTile","handlers","networkReconnectTitle","networkReconnectMoreDetails","complianceBannerSelector","isTranscriptionActive","isRecordingActive","callTranscribeState","callRecordState","mutedNotificationSelector","diagnostics","media","latest","speakingWhileMicrophoneIsMuted","networkReconnectTileSelector","lobbySelector","lobbyProps","networkReconnectValue","network","networkReconnect","CallPage","galleryLayout","onSetUserSetOverflowGalleryPosition","mediaGalleryProps","mediaGalleryHandlers","networkReconnectTileProps","callControlOptions","useId","errorBar","isNetworkHealthy","DiagnosticQuality","mainStackTokens","childrenGap","soundStackTokens","dropDownStyles","caretDownWrapper","dropdownItem","dropdown","svg","title","border","neutralQuaternaryAlt","errorMessage","dropDownTitleIconStyles","overflow","textOverflow","overflowWrap","optionIconStyles","ConfigurationPageCameraDropdown","cameraGrantedDropdown","ConfigurationPageMicDropdown","micGrantedDropdown","configurationStackTokensDesktop","configurationStackTokensMobile","configurationSectionStyle","selectionContainerStyle","roundedCorner6","neutralLight","boxShadow","elevation4","top","bottom","left","right","titleContainerStyleDesktop","titleContainerStyleMobile","callDetailsContainerStyles","callDetailsStyle","marginTop","callDetailsStyleDesktop","callDetailsStyleMobile","startCallButtonContainerStyleDesktop","startCallButtonContainerStyleMobile","startCallButtonStyleMobile","startCallButtonStyleDesktop","cameraAndVideoEffectsContainerStyleDesktop","alignItems","effectsButtonStyles","themePrimary","rootChecked","rootHovered","rootPressed","rootFocused","fillWidth","panelStyles","flexBasis","paddingLeft","paddingRight","commands","scrollableContent","flexDirection","panelFocusProps","forceFocusInsideTrap","getDropDownList","list","noDuplicates","Map","item","set","dropdownList","name","deviceType","onRenderTitle","iconType","LocalDeviceSettings","defaultPlaceHolder","cameraLabel","soundLabel","noSpeakersLabel","noCameraLabel","noCamerasLabel","noMicLabel","noMicrophonesLabel","cameraPermissionGranted","micPermissionGranted","microphonePermissionGranted","hasCameras","hasMicrophones","microphones","hasSpeakers","speakers","Dropdown","placeholder","cameraPermissionDenied","defaultSelectedKey","onChange","event","index","microphonePermissionDenied","selectedMicrophone","defaultDeviceId","Label","DefaultButton","configurationPageVideoEffectsButtonLabel","selectedSpeaker","defaultDevice","device","isSystemDefault","devicePermissionSelector","video","deviceAccess","audio","localPreviewSelector","unparentedViews","localPreviewContainerStyle","localPreviewContainerStyleDesktop","localPreviewContainerStyleMobile","cameraOffLabelStyle","localPreviewTileStyle","borderColor","localPreviewButtonStyle","outline","LocalPreview","CameraButton","localPreviewProps","onToggleMic","hasNoDevices","align","neutralTertiary","neutralSecondary","cameraTurnedOff","devicesButtonStyles","menuStyles","menuItemStyles","MicrophoneButton","tooltipDisabledContent","tooltipVideoLoadingContent","showDevicesButton","tooltipContent","ConfigurationPageErrorBar","ConfigurationPage","startCallHandler","localDeviceSettingsHandlers","deviceState","disableStartCallButton","configurationPageTitle","callDescription","configurationPageCallDetails","mobileWithPreview","panelLayerProps","filteredErrorBarProps","configurationContainerStyle","desktop","backgroundImageUrl","backgroundImage","backgroundSize","backgroundPosition","Logo","localPreviewTrampoline","cameraPermissionGrantedTrampoline","micPermissionGrantedTrampoline","Panel","hasCloseButton","isBlocking","isHiddenOnDismiss","focusTrapZoneProps","layerProps","customWidth","doNotShow","videoState","audioState","shape","logo","Image","justifyContent","marginBottom","image","src","url","alt","overlayContainerStyle","blue","LobbyTile","overlayProps","overlayIcon","moreDetails","LobbyPage","inLobby","outboundCallParticipant","overlayPropsWaitingToBeAdmitted","overlayPropsOutboundCall","overlayPropsConnectingToCall","lobbyScreenConnectingToCallTitle","lobbyScreenConnectingToCallMoreDetails","lobbyScreenWaitingToBeAdmittedTitle","lobbyScreenWaitingToBeAdmittedMoreDetails","phoneNumber","outboundCallStringsTrampoline","containerItemGap","rejoinCallButtonContainerStyles","titleStyles","moreDetailsStyles","NoticePage","pageStyle","joinCall","autoFocus","activeVideoBackgroundEffectSelector","selectedVideoBackgroundEffect","getDisplayName","getEndedCall","endedCall","getCallStatus","getDeviceManager","getIsScreenShareOn","getLocalParticipantRaisedHand","getMicrophones","getCameras","getRole","getPage","page","getLocalMicrophoneEnabled","isLocalPreviewMicrophoneEnabled","getLocalVideoStreams","getIsTranscriptionActive","transcription","getIsRecordingActive","recording","getUserFacingDiagnostics","getDominantSpeakerInfo","dominantSpeakers","getRemoteParticipants","getSelectedVideoEffect","getCaptionsStatus","captionsFeature","isCaptionsFeatureActive","getIsTeamsCall","getLatestCapabilitiesChangedInfo","latestCapabilitiesChangeInfo","isScreenShareOn","capabilitiesChangedInfoAndRoleSelector","capabilitiesChangeInfo","participantRole","deviceCountSelector","camerasCount","microphonesCount","localVideoStreamInfo","dominantRemoteParticipantSelector","dominantSpeakerInfo","keys","findDominantRemoteParticipant","updateUserDisplayNamesTrampoline","dominantSpeakerIds","dominantRemoteParticipantId","remoteParticipantIds","localAndRemotePIPSelector","localVideoSelector","localVideoStream","activeVideoEffects","videoEffects","groupCallLeaveButtonStyle","flexContainer","flexFlow","groupCallLeaveButtonCompressedStyle","buttonFlyoutIncreasedSizeStyles","linkContent","checkmarkIcon","participantButtonWithIncreasedTouchTargets","participantListStyles","participantItemStyles","participantSubMenuItemsStyles","devicesButtonWithIncreasedTouchTargets","controlButtonBaseStyle","concatButtonBaseStyles","mainScreenContainerStyle","mainScreenContainerStyleDesktop","mainScreenContainerStyleMobile","drawerContainerStyles","leavingPageStyle","controlBarContainerStyles","paddingBottom","CONTROL_BAR_Z_INDEX","VIDEO_GALLERY_Z_INDEX","NOTIFICATION_CONTAINER_Z_INDEX","Math","max","DRAWER_Z_INDEX","callControlsContainerStyles","containerStyleDesktop","containerStyleMobile","galleryParentContainerStyles","backgroundColor","notificationsContainerStyles","pointerEvents","bannerNotificationStyles","callArrangementContainerStyles","useTrackedCapabilityChangedNotifications","capabilitiesChangedAndRoleInfo","trackedCapabilityChangedNotifications","setTrackedCapabilityChangedNotifications","activeNotifications","updateLatestCapabilityChangedNotificationMap","prev","updateTrackedCapabilityChangedNotificationsWithActiveNotifications","onDismissCapabilityChangedNotification","trackCapabilityChangedNotificationAsDismissed","filterLatestCapabilityChangedNotifications","trackedNotifications","activeNotification","trackedNotification","lastDismissedAt","mostRecentlyActive","existingTrackedNotifications","existingTrackedNotification","timestamp","Date","now","existingNotification","capabilitiesChangedInfoAndRole","newCapabilityValue","entries","newValue","reason","newCapabilityChangeNotification","filterLatestErrors","activeErrors","trackedErrors","activeError","trackedError","updateTrackedErrorsWithActiveErrors","existingTrackedErrors","existingTrackedError","trackErrorAsDismissed","errorType","existingError","REMOTE_PSTN_USER_HUNG_UP","REMOVED_FROM_CALL_SUB_CODES","reduceCallControlsForMobile","reduceCallControlOptions","CallEndReasons","getCallCompositePage","previousCall","unsupportedBrowserInfo","transferCall","remoteParticipantsEndedArray","Array","from","remoteParticipantsEnded","callEndReason","subCode","LEFT_CALL","ACCESS_DENIED","REMOVED_FROM_CALL","getCallEndReason","noNetwork","IsCallEndedPage","disableCallControls","disabledControls","newOptions","reduce","acc","createParticipantModifier","createModifiedParticipant","previousParticipantState","modifiedParticipants","memoizedParticipants","originalParticipants","modifiedParticipant","originalRef","newParticipant","getBackgroundEffectFromSelectedEffect","selectedEffect","VideoBackgroundEffectsDependency","createBackgroundBlurEffect","createBackgroundReplacementEffect","getSelectedCameraFromAdapterState","useCallWithChatCompositeStrings","moreDrawerSelector"],"sourceRoot":""}