@azure/communication-react 1.19.0-alpha-202409100015 → 1.19.0-alpha-202409121837

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/communication-react.d.ts +5 -74
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-eCfb0qTc.js → ChatMessageComponentAsRichTextEditBox-Dw0YGI6f.js} +8 -9
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-eCfb0qTc.js.map → ChatMessageComponentAsRichTextEditBox-Dw0YGI6f.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CrqNnQ4h.js → RichTextSendBoxWrapper-D_zW9xcg.js} +8 -9
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CrqNnQ4h.js.map → RichTextSendBoxWrapper-D_zW9xcg.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DSX_hUlh.js → index-B9oks9nv.js} +27312 -27473
  7. package/dist/dist-cjs/communication-react/index-B9oks9nv.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +7 -12
  9. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -1
  13. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +2 -4
  15. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  17. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -3
  18. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  19. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +0 -3
  20. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  21. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -1
  22. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  23. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  24. package/dist/dist-esm/communication-react/src/api-summary.d.ts +13 -0
  25. package/dist/dist-esm/communication-react/src/api-summary.js +16 -0
  26. package/dist/dist-esm/communication-react/src/api-summary.js.map +1 -0
  27. package/dist/dist-esm/communication-react/src/index.d.ts +0 -2
  28. package/dist/dist-esm/communication-react/src/index.js +0 -2
  29. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  30. package/dist/dist-esm/communication-react/src/javascript-loaders.d.ts +3 -0
  31. package/dist/dist-esm/communication-react/src/javascript-loaders.js +5 -0
  32. package/dist/dist-esm/communication-react/src/javascript-loaders.js.map +1 -0
  33. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +3 -0
  34. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +13 -7
  35. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +5 -1
  37. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +0 -10
  40. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +1 -1
  43. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/VideoTile.js +2 -1
  45. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/index.js +0 -2
  47. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +9 -1
  49. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +20 -0
  50. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts +2 -2
  52. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +3 -2
  53. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  54. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -1
  55. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +23 -18
  56. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  57. package/dist/dist-esm/react-components/src/components/utils.js +0 -1
  58. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +3 -0
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -0
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +3 -0
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +15 -26
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  68. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +9 -1
  69. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +3 -0
  71. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +10 -6
  72. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +2 -15
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js +0 -7
  76. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js.map +1 -1
  77. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +5 -5
  78. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  79. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +3 -4
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -1
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +2 -1
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +4 -0
  88. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  89. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +5 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +3 -0
  92. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +9 -4
  93. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +10 -9
  95. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  96. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +0 -5
  97. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  98. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +0 -4
  99. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  101. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +0 -6
  102. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/common/icons.js +0 -5
  104. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  106. package/package.json +16 -2
  107. package/dist/dist-cjs/communication-react/index-DSX_hUlh.js.map +0 -1
@@ -33,7 +33,7 @@ const remoteVideoViewOptions = {
33
33
  */
34
34
  export const MediaGallery = (props) => {
35
35
  var _a, _b, _c;
36
- const { pinnedParticipants = [], setPinnedParticipants, setIsPromptOpen, setPromptProps, hideSpotlightButtons, videoTilesOptions } = props;
36
+ const { pinnedParticipants = [], setPinnedParticipants, setIsPromptOpen, setPromptProps, hideSpotlightButtons, videoTilesOptions, captionsOptions } = props;
37
37
  const videoGalleryProps = usePropsFor(VideoGallery);
38
38
  const cameraSwitcherCameras = useSelector(localVideoCameraCycleButtonSelector);
39
39
  const cameraSwitcherCallback = useHandlers(LocalVideoCameraCycleButton);
@@ -78,6 +78,9 @@ export const MediaGallery = (props) => {
78
78
  const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight } = videoGalleryProps;
79
79
  const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps);
80
80
  const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps);
81
+ const galleryStyles = useMemo(() => {
82
+ return Object.assign(Object.assign({}, VideoGalleryStyles), ((captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full' ? { root: { postion: 'absolute' } } : {}));
83
+ }, [captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height]);
81
84
  const onPinParticipant = useMemo(() => {
82
85
  return setPinnedParticipants
83
86
  ? (userId) => {
@@ -99,7 +102,7 @@ export const MediaGallery = (props) => {
99
102
  return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;
100
103
  return layoutBasedOnTilePosition;
101
104
  };
102
- return (React.createElement(VideoGallery, Object.assign({}, videoGalleryProps, { videoTilesOptions: videoTilesOptions, localVideoViewOptions: localVideoViewOptions, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: layoutBasedOnUserSelection(), showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar, remoteVideoTileMenu: remoteVideoTileMenuOptions, overflowGalleryPosition: overflowGalleryPosition, localVideoTileSize: props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')
105
+ return (React.createElement(VideoGallery, Object.assign({}, videoGalleryProps, { videoTilesOptions: videoTilesOptions, localVideoViewOptions: localVideoViewOptions, remoteVideoViewOptions: remoteVideoViewOptions, styles: galleryStyles, layout: layoutBasedOnUserSelection(), showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar, remoteVideoTileMenu: remoteVideoTileMenuOptions, overflowGalleryPosition: overflowGalleryPosition, localVideoTileSize: props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')
103
106
  ? 'hidden'
104
107
  : props.isMobile && containerAspectRatio < 1
105
108
  ? '9:16'
@@ -110,8 +113,11 @@ export const MediaGallery = (props) => {
110
113
  : undefined })));
111
114
  }, [
112
115
  videoGalleryProps,
116
+ videoTilesOptions,
117
+ galleryStyles,
113
118
  props.isMobile,
114
119
  props.localVideoTileOptions,
120
+ props.userSetGalleryLayout,
115
121
  cameraSwitcherProps,
116
122
  onRenderAvatar,
117
123
  remoteVideoTileMenuOptions,
@@ -119,18 +125,16 @@ export const MediaGallery = (props) => {
119
125
  userRole,
120
126
  isRoomsCall,
121
127
  containerAspectRatio,
122
- props.userSetGalleryLayout,
123
128
  pinnedParticipants,
124
129
  onPinParticipant,
125
130
  onUnpinParticipant,
126
- layoutBasedOnTilePosition,
127
131
  reactionResources,
132
+ hideSpotlightButtons,
128
133
  onStartLocalSpotlightWithPrompt,
129
134
  onStopLocalSpotlightWithPrompt,
130
135
  onStartRemoteSpotlightWithPrompt,
131
136
  onStopRemoteSpotlightWithPrompt,
132
- hideSpotlightButtons,
133
- videoTilesOptions
137
+ layoutBasedOnTilePosition
134
138
  ]);
135
139
  return (React.createElement("div", { ref: containerRef, style: mediaGalleryContainerStyles },
136
140
  React.createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
@@ -1 +1 @@
1
- {"version":3,"file":"MediaGallery.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/MediaGallery.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { CSSProperties, useCallback, useMemo } from 'react';\nimport { useRef } from 'react';\nimport {\n VideoGallery,\n VideoStreamOptions,\n CustomAvatarOptions,\n Announcer,\n VideoTileContextualMenuProps,\n VideoTileDrawerMenuProps\n} from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _useContainerWidth, _useContainerHeight } from '@internal/react-components';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { AvatarPersona, AvatarPersonaDataCallback } 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 '@internal/react-components';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useParticipantChangedAnnouncement } from '../utils/MediaGalleryUtils';\nimport { RemoteVideoTileMenuOptions } from '../CallComposite';\nimport { LocalVideoTileOptions } from '../CallComposite';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { PromptProps } from './Prompt';\nimport { useLocalSpotlightCallbacksWithPrompt, useRemoteSpotlightCallbacksWithPrompt } from '../utils/spotlightUtils';\nimport { VideoTilesOptions } from '@internal/react-components';\n\nconst VideoGalleryStyles = {\n root: {\n height: '100%',\n minHeight: '10rem', // space affordance to ensure media gallery is never collapsed\n minWidth: '6rem'\n }\n};\n\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n} as VideoStreamOptions;\n\nconst remoteVideoViewOptions = {\n scalingMode: 'Crop'\n} as VideoStreamOptions;\n\n/**\n * @private\n */\nexport interface MediaGalleryProps {\n isVideoStreamOn?: boolean;\n isMicrophoneChecked?: boolean;\n onStartLocalVideo: () => Promise<void>;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n isMobile?: boolean;\n drawerMenuHostId?: string;\n remoteVideoTileMenuOptions?: RemoteVideoTileMenuOptions;\n localVideoTileOptions?: boolean | LocalVideoTileOptions;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n userSetGalleryLayout: VideoGalleryLayout;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n setIsPromptOpen: (isOpen: boolean) => void;\n setPromptProps: (props: PromptProps) => void;\n hideSpotlightButtons?: boolean;\n videoTilesOptions?: VideoTilesOptions;\n}\n\n/**\n * @private\n */\nexport const MediaGallery = (props: MediaGalleryProps): JSX.Element => {\n const {\n pinnedParticipants = [],\n setPinnedParticipants,\n setIsPromptOpen,\n setPromptProps,\n hideSpotlightButtons,\n videoTilesOptions\n } = props;\n\n const videoGalleryProps = usePropsFor(VideoGallery);\n const cameraSwitcherCameras = useSelector(localVideoCameraCycleButtonSelector);\n const cameraSwitcherCallback = useHandlers(LocalVideoCameraCycleButton);\n const announcerString = useParticipantChangedAnnouncement();\n\n const adapter = useAdapter();\n const userRole = adapter.getState().call?.role;\n const isRoomsCall = adapter.getState().isRoomsCall;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n const containerAspectRatio = containerWidth && containerHeight ? containerWidth / containerHeight : 0;\n const reactionResources = adapter.getState().reactions;\n\n const layoutBasedOnTilePosition: VideoGalleryLayout = getVideoGalleryLayoutBasedOnLocalOptions(\n (props.localVideoTileOptions as LocalVideoTileOptions)?.position\n );\n const cameraSwitcherProps = useMemo(() => {\n return {\n ...cameraSwitcherCallback,\n ...cameraSwitcherCameras\n };\n }, [cameraSwitcherCallback, cameraSwitcherCameras]);\n\n const onRenderAvatar = useCallback(\n (userId?: string, options?: CustomAvatarOptions) => {\n return (\n <Stack className={mergeStyles({ position: 'absolute', height: '100%', width: '100%' })}>\n <Stack styles={{ root: { margin: 'auto', maxHeight: '100%' } }}>\n {options?.coinSize && (\n <AvatarPersona userId={userId} {...options} dataProvider={props.onFetchAvatarPersonaData} />\n )}\n </Stack>\n </Stack>\n );\n },\n [props.onFetchAvatarPersonaData]\n );\n\n const remoteVideoTileMenuOptions: false | VideoTileContextualMenuProps | VideoTileDrawerMenuProps = useMemo(() => {\n return props.remoteVideoTileMenuOptions?.isHidden\n ? false\n : props.isMobile\n ? { kind: 'drawer', hostId: props.drawerMenuHostId }\n : { kind: 'contextual' };\n }, [props.remoteVideoTileMenuOptions?.isHidden, props.isMobile, props.drawerMenuHostId]);\n\n const overflowGalleryPosition = useMemo(() => {\n /* @conditional-compile-remove(overflow-top-composite) */\n if (props.userSetOverflowGalleryPosition === 'horizontalTop') {\n return props.userSetOverflowGalleryPosition;\n }\n return containerWidth && containerHeight && containerWidth / containerHeight >= 16 / 9\n ? 'verticalRight'\n : 'horizontalBottom';\n }, [\n /* @conditional-compile-remove(overflow-top-composite) */ props.userSetOverflowGalleryPosition,\n containerWidth,\n containerHeight\n ]);\n\n const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight } =\n videoGalleryProps;\n\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const onPinParticipant = useMemo(() => {\n return setPinnedParticipants\n ? (userId: string) => {\n if (!pinnedParticipants.includes(userId)) {\n setPinnedParticipants(pinnedParticipants.concat(userId));\n }\n }\n : undefined;\n }, [setPinnedParticipants, pinnedParticipants]);\n\n const onUnpinParticipant = useMemo(() => {\n return setPinnedParticipants\n ? (userId: string) => {\n setPinnedParticipants(pinnedParticipants.filter((participantId) => participantId !== userId));\n }\n : undefined;\n }, [setPinnedParticipants, pinnedParticipants]);\n\n const VideoGalleryMemoized = useMemo(() => {\n const layoutBasedOnUserSelection = (): VideoGalleryLayout => {\n return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;\n return layoutBasedOnTilePosition;\n };\n\n return (\n <VideoGallery\n {...videoGalleryProps}\n videoTilesOptions={videoTilesOptions}\n localVideoViewOptions={localVideoViewOptions}\n remoteVideoViewOptions={remoteVideoViewOptions}\n styles={VideoGalleryStyles}\n layout={layoutBasedOnUserSelection()}\n showCameraSwitcherInLocalPreview={props.isMobile}\n localVideoCameraCycleButtonProps={cameraSwitcherProps}\n onRenderAvatar={onRenderAvatar}\n remoteVideoTileMenu={remoteVideoTileMenuOptions}\n overflowGalleryPosition={overflowGalleryPosition}\n localVideoTileSize={\n props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')\n ? 'hidden'\n : props.isMobile && containerAspectRatio < 1\n ? '9:16'\n : '16:9'\n }\n pinnedParticipants={pinnedParticipants}\n onPinParticipant={onPinParticipant}\n onUnpinParticipant={onUnpinParticipant}\n reactionResources={reactionResources}\n onStartLocalSpotlight={hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt}\n onStopLocalSpotlight={hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt}\n onStartRemoteSpotlight={hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt}\n onStopRemoteSpotlight={hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt}\n /* @conditional-compile-remove(soft-mute) */\n onMuteParticipant={\n ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(userRole ?? '')\n ? videoGalleryProps.onMuteParticipant\n : undefined\n }\n />\n );\n }, [\n videoGalleryProps,\n props.isMobile,\n props.localVideoTileOptions,\n cameraSwitcherProps,\n onRenderAvatar,\n remoteVideoTileMenuOptions,\n overflowGalleryPosition,\n userRole,\n isRoomsCall,\n containerAspectRatio,\n props.userSetGalleryLayout,\n pinnedParticipants,\n onPinParticipant,\n onUnpinParticipant,\n layoutBasedOnTilePosition,\n reactionResources,\n onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlightWithPrompt,\n hideSpotlightButtons,\n videoTilesOptions\n ]);\n\n return (\n <div ref={containerRef} style={mediaGalleryContainerStyles}>\n <Announcer announcementString={announcerString} ariaLive={'polite'} />\n {VideoGalleryMemoized}\n </div>\n );\n};\n\nconst mediaGalleryContainerStyles: CSSProperties = { width: '100%', height: '100%' };\n\nconst getVideoGalleryLayoutBasedOnLocalOptions = (localTileOptions?: string): VideoGalleryLayout => {\n return localTileOptions === 'grid' ? 'default' : 'floatingLocalVideo';\n};\n"]}
1
+ {"version":3,"file":"MediaGallery.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/MediaGallery.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { CSSProperties, useCallback, useMemo } from 'react';\nimport { useRef } from 'react';\nimport {\n VideoGallery,\n VideoStreamOptions,\n CustomAvatarOptions,\n Announcer,\n VideoTileContextualMenuProps,\n VideoTileDrawerMenuProps\n} from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _useContainerWidth, _useContainerHeight } from '@internal/react-components';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { AvatarPersona, AvatarPersonaDataCallback } 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 '@internal/react-components';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useParticipantChangedAnnouncement } from '../utils/MediaGalleryUtils';\nimport { RemoteVideoTileMenuOptions } from '../CallComposite';\nimport { LocalVideoTileOptions } from '../CallComposite';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { PromptProps } from './Prompt';\nimport { useLocalSpotlightCallbacksWithPrompt, useRemoteSpotlightCallbacksWithPrompt } from '../utils/spotlightUtils';\nimport { VideoTilesOptions } from '@internal/react-components';\n\nconst VideoGalleryStyles = {\n root: {\n height: '100%',\n minHeight: '10rem', // space affordance to ensure media gallery is never collapsed\n minWidth: '6rem'\n }\n};\n\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n} as VideoStreamOptions;\n\nconst remoteVideoViewOptions = {\n scalingMode: 'Crop'\n} as VideoStreamOptions;\n\n/**\n * @private\n */\nexport interface MediaGalleryProps {\n isVideoStreamOn?: boolean;\n isMicrophoneChecked?: boolean;\n onStartLocalVideo: () => Promise<void>;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n isMobile?: boolean;\n drawerMenuHostId?: string;\n remoteVideoTileMenuOptions?: RemoteVideoTileMenuOptions;\n localVideoTileOptions?: boolean | LocalVideoTileOptions;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n userSetGalleryLayout: VideoGalleryLayout;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n setIsPromptOpen: (isOpen: boolean) => void;\n setPromptProps: (props: PromptProps) => void;\n hideSpotlightButtons?: boolean;\n videoTilesOptions?: VideoTilesOptions;\n captionsOptions?: {\n height: 'full' | 'default';\n };\n}\n\n/**\n * @private\n */\nexport const MediaGallery = (props: MediaGalleryProps): JSX.Element => {\n const {\n pinnedParticipants = [],\n setPinnedParticipants,\n setIsPromptOpen,\n setPromptProps,\n hideSpotlightButtons,\n videoTilesOptions,\n captionsOptions\n } = props;\n\n const videoGalleryProps = usePropsFor(VideoGallery);\n const cameraSwitcherCameras = useSelector(localVideoCameraCycleButtonSelector);\n const cameraSwitcherCallback = useHandlers(LocalVideoCameraCycleButton);\n const announcerString = useParticipantChangedAnnouncement();\n\n const adapter = useAdapter();\n const userRole = adapter.getState().call?.role;\n const isRoomsCall = adapter.getState().isRoomsCall;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n const containerAspectRatio = containerWidth && containerHeight ? containerWidth / containerHeight : 0;\n const reactionResources = adapter.getState().reactions;\n\n const layoutBasedOnTilePosition: VideoGalleryLayout = getVideoGalleryLayoutBasedOnLocalOptions(\n (props.localVideoTileOptions as LocalVideoTileOptions)?.position\n );\n const cameraSwitcherProps = useMemo(() => {\n return {\n ...cameraSwitcherCallback,\n ...cameraSwitcherCameras\n };\n }, [cameraSwitcherCallback, cameraSwitcherCameras]);\n\n const onRenderAvatar = useCallback(\n (userId?: string, options?: CustomAvatarOptions) => {\n return (\n <Stack className={mergeStyles({ position: 'absolute', height: '100%', width: '100%' })}>\n <Stack styles={{ root: { margin: 'auto', maxHeight: '100%' } }}>\n {options?.coinSize && (\n <AvatarPersona userId={userId} {...options} dataProvider={props.onFetchAvatarPersonaData} />\n )}\n </Stack>\n </Stack>\n );\n },\n [props.onFetchAvatarPersonaData]\n );\n\n const remoteVideoTileMenuOptions: false | VideoTileContextualMenuProps | VideoTileDrawerMenuProps = useMemo(() => {\n return props.remoteVideoTileMenuOptions?.isHidden\n ? false\n : props.isMobile\n ? { kind: 'drawer', hostId: props.drawerMenuHostId }\n : { kind: 'contextual' };\n }, [props.remoteVideoTileMenuOptions?.isHidden, props.isMobile, props.drawerMenuHostId]);\n\n const overflowGalleryPosition = useMemo(() => {\n /* @conditional-compile-remove(overflow-top-composite) */\n if (props.userSetOverflowGalleryPosition === 'horizontalTop') {\n return props.userSetOverflowGalleryPosition;\n }\n return containerWidth && containerHeight && containerWidth / containerHeight >= 16 / 9\n ? 'verticalRight'\n : 'horizontalBottom';\n }, [\n /* @conditional-compile-remove(overflow-top-composite) */ props.userSetOverflowGalleryPosition,\n containerWidth,\n containerHeight\n ]);\n\n const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight } =\n videoGalleryProps;\n\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const galleryStyles = useMemo(() => {\n return { ...VideoGalleryStyles, ...(captionsOptions?.height === 'full' ? { root: { postion: 'absolute' } } : {}) };\n }, [captionsOptions?.height]);\n\n const onPinParticipant = useMemo(() => {\n return setPinnedParticipants\n ? (userId: string) => {\n if (!pinnedParticipants.includes(userId)) {\n setPinnedParticipants(pinnedParticipants.concat(userId));\n }\n }\n : undefined;\n }, [setPinnedParticipants, pinnedParticipants]);\n\n const onUnpinParticipant = useMemo(() => {\n return setPinnedParticipants\n ? (userId: string) => {\n setPinnedParticipants(pinnedParticipants.filter((participantId) => participantId !== userId));\n }\n : undefined;\n }, [setPinnedParticipants, pinnedParticipants]);\n\n const VideoGalleryMemoized = useMemo(() => {\n const layoutBasedOnUserSelection = (): VideoGalleryLayout => {\n return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;\n return layoutBasedOnTilePosition;\n };\n\n return (\n <VideoGallery\n {...videoGalleryProps}\n videoTilesOptions={videoTilesOptions}\n localVideoViewOptions={localVideoViewOptions}\n remoteVideoViewOptions={remoteVideoViewOptions}\n styles={galleryStyles}\n layout={layoutBasedOnUserSelection()}\n showCameraSwitcherInLocalPreview={props.isMobile}\n localVideoCameraCycleButtonProps={cameraSwitcherProps}\n onRenderAvatar={onRenderAvatar}\n remoteVideoTileMenu={remoteVideoTileMenuOptions}\n overflowGalleryPosition={overflowGalleryPosition}\n localVideoTileSize={\n props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')\n ? 'hidden'\n : props.isMobile && containerAspectRatio < 1\n ? '9:16'\n : '16:9'\n }\n pinnedParticipants={pinnedParticipants}\n onPinParticipant={onPinParticipant}\n onUnpinParticipant={onUnpinParticipant}\n reactionResources={reactionResources}\n onStartLocalSpotlight={hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt}\n onStopLocalSpotlight={hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt}\n onStartRemoteSpotlight={hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt}\n onStopRemoteSpotlight={hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt}\n /* @conditional-compile-remove(soft-mute) */\n onMuteParticipant={\n ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(userRole ?? '')\n ? videoGalleryProps.onMuteParticipant\n : undefined\n }\n />\n );\n }, [\n videoGalleryProps,\n videoTilesOptions,\n galleryStyles,\n props.isMobile,\n props.localVideoTileOptions,\n props.userSetGalleryLayout,\n cameraSwitcherProps,\n onRenderAvatar,\n remoteVideoTileMenuOptions,\n overflowGalleryPosition,\n userRole,\n isRoomsCall,\n containerAspectRatio,\n pinnedParticipants,\n onPinParticipant,\n onUnpinParticipant,\n reactionResources,\n hideSpotlightButtons,\n onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlightWithPrompt,\n layoutBasedOnTilePosition\n ]);\n\n return (\n <div ref={containerRef} style={mediaGalleryContainerStyles}>\n <Announcer announcementString={announcerString} ariaLive={'polite'} />\n {VideoGalleryMemoized}\n </div>\n );\n};\n\nconst mediaGalleryContainerStyles: CSSProperties = { width: '100%', height: '100%' };\n\nconst getVideoGalleryLayoutBasedOnLocalOptions = (localTileOptions?: string): VideoGalleryLayout => {\n return localTileOptions === 'grid' ? 'default' : 'floatingLocalVideo';\n};\n"]}
@@ -4,24 +4,17 @@ import React from 'react';
4
4
  import { useTheme } from "../../../../../react-components/src";
5
5
  import { ExpandedLocalVideoTile } from './ExpandedLocalVideoTile';
6
6
  import { mergeStyles, Stack, Text } from '@fluentui/react';
7
- /* @conditional-compile-remove(teams-meeting-conference) */
8
7
  // eslint-disable-next-line no-restricted-imports
9
8
  import { Icon } from '@fluentui/react';
10
9
  import { useLocale } from '../../localization';
11
10
  import { containerStyle, moreDetailsStyle, titleContainerStyle, titleStyle } from '../styles/NetworkReconnectTile.styles';
12
11
  import { useHandlers } from '../hooks/useHandlers';
13
12
  import { CallCompositeIcon } from '../../common/icons';
14
- /* @conditional-compile-remove(teams-meeting-conference) */
15
13
  import { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../selectors/baseSelectors';
16
- /* @conditional-compile-remove(teams-meeting-conference) */
17
14
  import { useSelector } from '../hooks/useSelector';
18
- /* @conditional-compile-remove(teams-meeting-conference) */
19
15
  import { phoneInfoTextStyle, phoneInfoIcon, phoneInfoInstructionLine, phoneInfoStep, phoneInfoIconStyle, phoneInfoLabelStyle, titleClassName, titleContainerClassName, infoConnectionLinkStyle } from '../../common/styles/TeamsMeetingConferenceInfo.style';
20
- /* @conditional-compile-remove(teams-meeting-conference) */
21
16
  import { formatPhoneNumberInfo, _formatPhoneNumber, formatPhoneNumberLink } from "../../../../../react-components/src";
22
- /* @conditional-compile-remove(teams-meeting-conference) */
23
17
  import { _pxToRem } from "../../../../../acs-ui-common/src";
24
- /* @conditional-compile-remove(teams-meeting-conference) */
25
18
  import { Link } from '@fluentui/react';
26
19
  /**
27
20
  * @private
@@ -32,23 +25,17 @@ export const NetworkReconnectTile = (props) => {
32
25
  const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
33
26
  const palette = useTheme().palette;
34
27
  const strings = useLocale().strings.call;
35
- /* @conditional-compile-remove(teams-meeting-conference) */
36
28
  const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;
37
- /* @conditional-compile-remove(teams-meeting-conference) */
38
29
  const theme = useTheme();
39
30
  const handlers = useHandlers(ExpandedLocalVideoTile);
40
- /* @conditional-compile-remove(teams-meeting-conference) */
41
31
  const isTeamsMeeting = useSelector(getIsTeamsMeeting);
42
- /* @conditional-compile-remove(teams-meeting-conference) */
43
32
  const meetingCoordinates = useSelector(getTeamsMeetingCoordinates);
44
33
  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 },
45
34
  React.createElement(Stack, { horizontal: true, className: mergeStyles(titleContainerStyle) },
46
35
  React.createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: mergeStyles(titleStyle(palette, isVideoReady)) }),
47
36
  React.createElement(Text, { className: mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectTitle)),
48
37
  React.createElement(Text, { className: mergeStyles(moreDetailsStyle(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails),
49
- /* @conditional-compile-remove(teams-meeting-conference) */ isTeamsMeeting &&
50
- meetingCoordinates &&
51
- meetingCoordinates.length > 0 && (React.createElement(Stack, null,
38
+ isTeamsMeeting && meetingCoordinates && meetingCoordinates.length > 0 && (React.createElement(Stack, null,
52
39
  React.createElement(Stack, { horizontal: true, horizontalAlign: "center", verticalAlign: "center", className: titleContainerClassName },
53
40
  React.createElement(Text, { className: titleClassName }, localeStrings.meetingConferencePhoneInfoModalTitle)),
54
41
  React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", className: phoneInfoInstructionLine },
@@ -70,7 +57,7 @@ export const NetworkReconnectTile = (props) => {
70
57
  : localeStrings.meetingConferencePhoneInfoModalToll),
71
58
  React.createElement("br", null),
72
59
  React.createElement(Text, { className: phoneInfoTextStyle },
73
- ' ',
60
+ " ",
74
61
  formatPhoneNumberInfo(phoneNumber, localeStrings))))))),
75
62
  React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInstructionLine },
76
63
  React.createElement(Stack.Item, null,
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkReconnectTile.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/NetworkReconnectTile.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport { VideoGalleryStream, useTheme } from '@internal/react-components';\nimport { ExpandedLocalVideoTile } from './ExpandedLocalVideoTile';\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\n/* @conditional-compile-remove(teams-meeting-conference) */\n// eslint-disable-next-line no-restricted-imports\nimport { Icon } from '@fluentui/react';\nimport { useLocale } from '../../localization';\nimport {\n containerStyle,\n moreDetailsStyle,\n titleContainerStyle,\n titleStyle\n} from '../styles/NetworkReconnectTile.styles';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { CallCompositeIcon } from '../../common/icons';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useSelector } from '../hooks/useSelector';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport {\n phoneInfoTextStyle,\n phoneInfoIcon,\n phoneInfoInstructionLine,\n phoneInfoStep,\n phoneInfoIconStyle,\n phoneInfoLabelStyle,\n titleClassName,\n titleContainerClassName,\n infoConnectionLinkStyle\n} from '../../common/styles/TeamsMeetingConferenceInfo.style';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { formatPhoneNumberInfo, _formatPhoneNumber, formatPhoneNumberLink } from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { Link } from '@fluentui/react';\n\n/**\n * @private\n */\nexport interface NetworkReconnectTileProps {\n localParticipantVideoStream: VideoGalleryStream;\n /* @conditional-compile-remove(teams-meeting-conference) */\n isMobile?: boolean;\n}\n\n/**\n * @private\n */\nexport const NetworkReconnectTile = (props: NetworkReconnectTileProps): JSX.Element => {\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = videoStream?.isAvailable ?? false;\n const palette = useTheme().palette;\n const strings = useLocale().strings.call;\n /* @conditional-compile-remove(teams-meeting-conference) */\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n /* @conditional-compile-remove(teams-meeting-conference) */\n const theme = useTheme();\n\n const handlers = useHandlers(ExpandedLocalVideoTile);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n /* @conditional-compile-remove(teams-meeting-conference) */\n const meetingCoordinates = useSelector(getTeamsMeetingCoordinates);\n\n return (\n <ExpandedLocalVideoTile\n localParticipantVideoStream={props.localParticipantVideoStream}\n overlayContent={\n <Stack\n verticalFill\n horizontalAlign=\"center\"\n verticalAlign=\"center\"\n className={mergeStyles(containerStyle)}\n aria-atomic\n >\n <Stack horizontal className={mergeStyles(titleContainerStyle)}>\n <CallCompositeIcon\n iconName=\"NetworkReconnectIcon\"\n className={mergeStyles(titleStyle(palette, isVideoReady))}\n />\n <Text className={mergeStyles(titleStyle(palette, isVideoReady))} aria-live={'assertive'}>\n {strings.networkReconnectTitle}\n </Text>\n </Stack>\n <Text className={mergeStyles(moreDetailsStyle(palette, isVideoReady))} aria-live={'assertive'}>\n {strings.networkReconnectMoreDetails}\n </Text>\n {\n /* @conditional-compile-remove(teams-meeting-conference) */ isTeamsMeeting &&\n meetingCoordinates &&\n meetingCoordinates.length > 0 && (\n <Stack>\n <Stack horizontal horizontalAlign=\"center\" verticalAlign=\"center\" className={titleContainerClassName}>\n <Text className={titleClassName}>{localeStrings.meetingConferencePhoneInfoModalTitle}</Text>\n </Stack>\n <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n <Stack className={infoConnectionLinkStyle(theme)}></Stack>\n <Stack.Item>\n <Stack horizontal className={phoneInfoStep}>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n <Icon iconName=\"JoinByPhoneDialStepIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack>\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalDialIn}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Stack.Item className={phoneInfoStep}>\n {meetingCoordinates.map((phoneNumber, index) => (\n <Stack.Item key={index}>\n <Text className={phoneInfoTextStyle}>\n {props.isMobile && (\n <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Link>\n )}\n {!props.isMobile && (\n <Text className={phoneInfoTextStyle}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Text>\n )}{' '}\n {phoneNumber.isTollFree\n ? localeStrings.meetingConferencePhoneInfoModalTollFree\n : localeStrings.meetingConferencePhoneInfoModalToll}\n </Text>\n <br />\n <Text className={phoneInfoTextStyle}>\n {' '}\n {formatPhoneNumberInfo(phoneNumber, localeStrings)}\n </Text>\n </Stack.Item>\n ))}\n </Stack.Item>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack.Item>\n <Stack horizontal>\n {!props.isMobile && <Stack className={infoConnectionLinkStyle(theme)}></Stack>}\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneConferenceIdIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Text className={phoneInfoTextStyle}>{meetingCoordinates[0].conferenceId}#</Text>\n </Stack>\n {!props.isMobile && (\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)} style={{ marginLeft: _pxToRem(2) }}>\n <Icon iconName=\"JoinByPhoneWaitToBeAdmittedIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalWait}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack>\n )}\n </Stack>\n )\n }\n </Stack>\n }\n {...handlers}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"NetworkReconnectTile.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/NetworkReconnectTile.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\nimport { VideoGalleryStream, useTheme } from '@internal/react-components';\nimport { ExpandedLocalVideoTile } from './ExpandedLocalVideoTile';\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\n// eslint-disable-next-line no-restricted-imports\nimport { Icon } from '@fluentui/react';\nimport { useLocale } from '../../localization';\nimport {\n containerStyle,\n moreDetailsStyle,\n titleContainerStyle,\n titleStyle\n} from '../styles/NetworkReconnectTile.styles';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../selectors/baseSelectors';\nimport { useSelector } from '../hooks/useSelector';\nimport {\n phoneInfoTextStyle,\n phoneInfoIcon,\n phoneInfoInstructionLine,\n phoneInfoStep,\n phoneInfoIconStyle,\n phoneInfoLabelStyle,\n titleClassName,\n titleContainerClassName,\n infoConnectionLinkStyle\n} from '../../common/styles/TeamsMeetingConferenceInfo.style';\nimport { formatPhoneNumberInfo, _formatPhoneNumber, formatPhoneNumberLink } from '@internal/react-components';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { Link } from '@fluentui/react';\n\n/**\n * @private\n */\nexport interface NetworkReconnectTileProps {\n localParticipantVideoStream: VideoGalleryStream;\n isMobile?: boolean;\n}\n\n/**\n * @private\n */\nexport const NetworkReconnectTile = (props: NetworkReconnectTileProps): JSX.Element => {\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = videoStream?.isAvailable ?? false;\n const palette = useTheme().palette;\n const strings = useLocale().strings.call;\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n const theme = useTheme();\n\n const handlers = useHandlers(ExpandedLocalVideoTile);\n\n const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n const meetingCoordinates = useSelector(getTeamsMeetingCoordinates);\n\n return (\n <ExpandedLocalVideoTile\n localParticipantVideoStream={props.localParticipantVideoStream}\n overlayContent={\n <Stack\n verticalFill\n horizontalAlign=\"center\"\n verticalAlign=\"center\"\n className={mergeStyles(containerStyle)}\n aria-atomic\n >\n <Stack horizontal className={mergeStyles(titleContainerStyle)}>\n <CallCompositeIcon\n iconName=\"NetworkReconnectIcon\"\n className={mergeStyles(titleStyle(palette, isVideoReady))}\n />\n <Text className={mergeStyles(titleStyle(palette, isVideoReady))} aria-live={'assertive'}>\n {strings.networkReconnectTitle}\n </Text>\n </Stack>\n <Text className={mergeStyles(moreDetailsStyle(palette, isVideoReady))} aria-live={'assertive'}>\n {strings.networkReconnectMoreDetails}\n </Text>\n {isTeamsMeeting && meetingCoordinates && meetingCoordinates.length > 0 && (\n <Stack>\n <Stack horizontal horizontalAlign=\"center\" verticalAlign=\"center\" className={titleContainerClassName}>\n <Text className={titleClassName}>{localeStrings.meetingConferencePhoneInfoModalTitle}</Text>\n </Stack>\n <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n <Stack className={infoConnectionLinkStyle(theme)}></Stack>\n <Stack.Item>\n <Stack horizontal className={phoneInfoStep}>\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n <Icon iconName=\"JoinByPhoneDialStepIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack>\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalDialIn}</Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Stack.Item className={phoneInfoStep}>\n {meetingCoordinates.map((phoneNumber, index) => (\n <Stack.Item key={index}>\n <Text className={phoneInfoTextStyle}>\n {props.isMobile && (\n <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Link>\n )}\n {!props.isMobile && (\n <Text className={phoneInfoTextStyle}>\n {_formatPhoneNumber(phoneNumber.phoneNumber, true)}\n </Text>\n )}{' '}\n {phoneNumber.isTollFree\n ? localeStrings.meetingConferencePhoneInfoModalTollFree\n : localeStrings.meetingConferencePhoneInfoModalToll}\n </Text>\n <br />\n <Text className={phoneInfoTextStyle}> {formatPhoneNumberInfo(phoneNumber, localeStrings)}</Text>\n </Stack.Item>\n ))}\n </Stack.Item>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack.Item>\n <Stack horizontal>\n {!props.isMobile && <Stack className={infoConnectionLinkStyle(theme)}></Stack>}\n <Stack.Item className={phoneInfoIcon(theme)}>\n <Icon iconName=\"JoinByPhoneConferenceIdIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>\n {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n </Text>\n </Stack.Item>\n </Stack>\n </Stack.Item>\n <Text className={phoneInfoTextStyle}>{meetingCoordinates[0].conferenceId}#</Text>\n </Stack>\n {!props.isMobile && (\n <Stack\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n className={phoneInfoInstructionLine}\n >\n <Stack horizontal>\n <Stack.Item className={phoneInfoIcon(theme)} style={{ marginLeft: _pxToRem(2) }}>\n <Icon iconName=\"JoinByPhoneWaitToBeAdmittedIcon\" className={phoneInfoIconStyle(theme)} />\n </Stack.Item>\n <Stack.Item>\n <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalWait}</Text>\n </Stack.Item>\n </Stack>\n </Stack>\n )}\n </Stack>\n )}\n </Stack>\n }\n {...handlers}\n />\n );\n};\n"]}
@@ -1,18 +1,11 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- /* @conditional-compile-remove(teams-meeting-conference) */
4
3
  import React, { useCallback, useEffect, useMemo } from 'react';
5
- /* @conditional-compile-remove(teams-meeting-conference) */
6
4
  import { useIsParticularSidePaneOpen } from './SidePaneProvider';
7
- /* @conditional-compile-remove(teams-meeting-conference) */
8
5
  import { SidePaneHeader } from '../../../common/SidePaneHeader';
9
- /* @conditional-compile-remove(teams-meeting-conference) */
10
6
  import { MeetingPhoneInfoPaneContent } from '../../../common/MeetingPhoneInfoPaneContent';
11
- /* @conditional-compile-remove(teams-meeting-conference) */
12
7
  import { useLocale } from '../../../localization';
13
- /* @conditional-compile-remove(teams-meeting-conference) */
14
8
  const SIDE_PANE_ID = 'Meeting Phone Info';
15
- /* @conditional-compile-remove(teams-meeting-conference) */
16
9
  /** @private */
17
10
  export const useMeetingPhoneInfoPane = (props) => {
18
11
  const { updateSidePaneRenderer, mobileView, conferencePhoneInfo } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"useMeetingPhoneInfo.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,2DAA2D;AAC3D,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,2DAA2D;AAC3D,OAAO,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACnF,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,2DAA2D;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,2DAA2D;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,2DAA2D;AAC3D,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,2DAA2D;AAC3D,eAAe;AACf,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAIvC,EAIC,EAAE;IACF,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAE1E,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC/E,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE7C,MAAM,cAAc,GAAG,WAAW,CAChC,GAAG,EAAE,CAAC,CACJ,oBAAC,cAAc,IACb,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,aAAa,CAAC,oCAAoC,EAC/D,8BAA8B,EAAE,WAAW,CAAC,0BAA0B,EACtE,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,GAC/B,CACH,EACD,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,CACpD,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAgB,EAAE;QACpD,OAAO,oBAAC,2BAA2B,IAAC,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,GAAI,CAAC;IAC/G,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAqB,OAAO,CAChD,GAAG,EAAE,CAAC,CAAC;QACL,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,eAAe;QAChC,EAAE,EAAE,YAAY;KACjB,CAAC,EACF,CAAC,eAAe,EAAE,cAAc,CAAC,CAClC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAEzD,kEAAkE;IAClE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvB,OAAO;QACL,wBAAwB,EAAE,QAAQ;QAClC,yBAAyB,EAAE,SAAS;QACpC,0BAA0B,EAAE,MAAM;KACnC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport React, { useCallback, useEffect, useMemo } from 'react';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { MeetingPhoneInfoPaneContent } from '../../../common/MeetingPhoneInfoPaneContent';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useLocale } from '../../../localization';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { ConferencePhoneInfo } from '@internal/react-components';\n\n/* @conditional-compile-remove(teams-meeting-conference) */\nconst SIDE_PANE_ID = 'Meeting Phone Info';\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/** @private */\nexport const useMeetingPhoneInfoPane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileView?: boolean;\n conferencePhoneInfo?: ConferencePhoneInfo[];\n}): {\n openMeetingPhoneInfoPane: () => void;\n closeMeetingPhoneInfoPane: () => void;\n isMeetingPhoneInfoPaneOpen: boolean;\n} => {\n const { updateSidePaneRenderer, mobileView, conferencePhoneInfo } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n }, [updateSidePaneRenderer]);\n\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n const callStrings = useLocale().strings.call;\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n headingText={localeStrings.meetingConferencePhoneInfoModalTitle}\n dismissSidePaneButtonAriaLabel={callStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n />\n ),\n [mobileView, closePane, localeStrings, callStrings]\n );\n\n const onRenderContent = useCallback((): JSX.Element => {\n return <MeetingPhoneInfoPaneContent mobileView={mobileView} conferencePhoneInfoList={conferencePhoneInfo} />;\n }, [mobileView, conferencePhoneInfo]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(SIDE_PANE_ID);\n\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\n return {\n openMeetingPhoneInfoPane: openPane,\n closeMeetingPhoneInfoPane: closePane,\n isMeetingPhoneInfoPaneOpen: isOpen\n };\n};\n"]}
1
+ {"version":3,"file":"useMeetingPhoneInfo.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,eAAe;AACf,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAIvC,EAIC,EAAE;IACF,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAE1E,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC/E,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE7C,MAAM,cAAc,GAAG,WAAW,CAChC,GAAG,EAAE,CAAC,CACJ,oBAAC,cAAc,IACb,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,aAAa,CAAC,oCAAoC,EAC/D,8BAA8B,EAAE,WAAW,CAAC,0BAA0B,EACtE,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,GAC/B,CACH,EACD,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,CACpD,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAgB,EAAE;QACpD,OAAO,oBAAC,2BAA2B,IAAC,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,GAAI,CAAC;IAC/G,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAqB,OAAO,CAChD,GAAG,EAAE,CAAC,CAAC;QACL,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,eAAe;QAChC,EAAE,EAAE,YAAY;KACjB,CAAC,EACF,CAAC,eAAe,EAAE,cAAc,CAAC,CAClC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAEzD,kEAAkE;IAClE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvB,OAAO;QACL,wBAAwB,EAAE,QAAQ;QAClC,yBAAyB,EAAE,SAAS;QACpC,0BAA0B,EAAE,MAAM;KACnC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { MeetingPhoneInfoPaneContent } from '../../../common/MeetingPhoneInfoPaneContent';\nimport { useLocale } from '../../../localization';\nimport { ConferencePhoneInfo } from '@internal/react-components';\n\nconst SIDE_PANE_ID = 'Meeting Phone Info';\n\n/** @private */\nexport const useMeetingPhoneInfoPane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileView?: boolean;\n conferencePhoneInfo?: ConferencePhoneInfo[];\n}): {\n openMeetingPhoneInfoPane: () => void;\n closeMeetingPhoneInfoPane: () => void;\n isMeetingPhoneInfoPaneOpen: boolean;\n} => {\n const { updateSidePaneRenderer, mobileView, conferencePhoneInfo } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n }, [updateSidePaneRenderer]);\n\n const localeStrings = useLocale().component.strings.meetingConferencePhoneInfo;\n const callStrings = useLocale().strings.call;\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n headingText={localeStrings.meetingConferencePhoneInfoModalTitle}\n dismissSidePaneButtonAriaLabel={callStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n />\n ),\n [mobileView, closePane, localeStrings, callStrings]\n );\n\n const onRenderContent = useCallback((): JSX.Element => {\n return <MeetingPhoneInfoPaneContent mobileView={mobileView} conferencePhoneInfoList={conferencePhoneInfo} />;\n }, [mobileView, conferencePhoneInfo]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(SIDE_PANE_ID);\n\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\n return {\n openMeetingPhoneInfoPane: openPane,\n closeMeetingPhoneInfoPane: closePane,\n isMeetingPhoneInfoPaneOpen: isOpen\n };\n};\n"]}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
10
  });
11
11
  };
12
- import { concatStyleSets } from '@fluentui/react';
12
+ import { concatStyleSets, Stack } from '@fluentui/react';
13
13
  import { EndCallButton } from "../../../../../../react-components/src";
14
14
  import React, { useMemo } from 'react';
15
15
  /* @conditional-compile-remove(end-call-options) */
@@ -99,15 +99,15 @@ export const EndCall = (props) => {
99
99
  ],
100
100
  styles: props.styles
101
101
  };
102
- return (React.createElement(React.Fragment, null,
103
- /* @conditional-compile-remove(end-call-options) */
104
- React.createElement(Prompt, Object.assign({}, dialogLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, cancelButtonLabel: localeStrings.call.hangUpCancelButtonLabel, onConfirm: () => onHangUpConfirm(props.enableEndCallMenu), isOpen: showHangUpConfirm, onCancel: toggleConfirm })),
102
+ return (React.createElement(Stack, null,
105
103
  React.createElement(EndCallButton, Object.assign({ "data-ui-id": "call-composite-hangup-button" }, hangUpButtonProps, {
106
104
  /* @conditional-compile-remove(end-call-options) */
107
105
  onHangUp: props.disableEndCallModal ? onHangUp : hangUpOverride, styles: styles, showLabel: !compactMode,
108
106
  /* @conditional-compile-remove(end-call-options) */
109
107
  enableEndCallMenu: (_a = props.enableEndCallMenu) !== null && _a !== void 0 ? _a : false,
110
108
  /* @conditional-compile-remove(breakout-rooms) */
111
- menuProps: enableBreakoutRoomMenu ? breakoutRoomMenuProps : undefined }))));
109
+ menuProps: enableBreakoutRoomMenu ? breakoutRoomMenuProps : undefined })),
110
+ /* @conditional-compile-remove(end-call-options) */
111
+ React.createElement(Prompt, Object.assign({}, dialogLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, cancelButtonLabel: localeStrings.call.hangUpCancelButtonLabel, onConfirm: () => onHangUpConfirm(props.enableEndCallMenu), isOpen: showHangUpConfirm, onCancel: toggleConfirm }))));
112
112
  };
113
113
  //# sourceMappingURL=EndCall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EndCall.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/buttons/EndCall.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets } from '@fluentui/react';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { IContextualMenuProps } from '@fluentui/react';\nimport { ControlBarButtonStyles, EndCallButton } from '@internal/react-components';\nimport React, { useMemo } from 'react';\n/* @conditional-compile-remove(end-call-options) */\nimport { useState, useCallback } from 'react';\nimport { CallControlDisplayType } from '../../../common/types/CommonCallControlOptions';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { groupCallLeaveButtonCompressedStyle, groupCallLeaveButtonStyle } from '../../styles/Buttons.styles';\n/* @conditional-compile-remove(end-call-options) */\nimport { Prompt } from '../Prompt';\n/* @conditional-compile-remove(end-call-options) */\nimport { useLocale } from '../../../localization';\n\n/** @private */\nexport const EndCall = (props: {\n displayType?: CallControlDisplayType;\n styles?: ControlBarButtonStyles;\n mobileView?: boolean;\n /* @conditional-compile-remove(end-call-options) */\n enableEndCallMenu?: boolean;\n disableEndCallModal?: boolean;\n /* @conditional-compile-remove(breakout-rooms) */\n returnFromBreakoutRoom?: () => Promise<void>;\n}): JSX.Element => {\n const compactMode = props.displayType === 'compact';\n const hangUpButtonProps = usePropsFor(EndCallButton);\n /* @conditional-compile-remove(end-call-options) */\n const localeStrings = useLocale().strings;\n\n /* @conditional-compile-remove(end-call-options) */\n const endCallDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.endCallConfirmButtonLabel,\n heading: localeStrings.call.endCallConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent\n }),\n [\n localeStrings.call.endCallConfirmButtonLabel,\n localeStrings.call.endCallConfirmDialogTitle,\n localeStrings.call.leaveConfirmDialogContent\n ]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const leaveDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.leaveConfirmButtonLabel,\n heading: localeStrings.call.leaveConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent\n }),\n [\n localeStrings.call.leaveConfirmButtonLabel,\n localeStrings.call.leaveConfirmDialogContent,\n localeStrings.call.leaveConfirmDialogTitle\n ]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const [dialogLabels, setDialogLabels] = useState(leaveDiaglogLabels);\n\n /* @conditional-compile-remove(end-call-options) */\n const { onHangUp } = hangUpButtonProps;\n\n /* @conditional-compile-remove(end-call-options) */\n const [showHangUpConfirm, setShowHangUpConfirm] = React.useState(false);\n\n /* @conditional-compile-remove(end-call-options) */\n const toggleConfirm = useCallback(() => {\n setShowHangUpConfirm(!showHangUpConfirm);\n }, [showHangUpConfirm]);\n\n /* @conditional-compile-remove(end-call-options) */\n const onHangUpConfirm = useCallback(\n (hangUpForEveryone?: boolean) => {\n onHangUp && onHangUp(hangUpForEveryone);\n toggleConfirm();\n },\n [onHangUp, toggleConfirm]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const hangUpOverride = useCallback(\n async (forEveryone?: boolean) => {\n if (\n props.mobileView ||\n forEveryone === false /* value being false(not undefined) because it comes from endCall option */\n ) {\n onHangUp();\n return;\n }\n setDialogLabels(forEveryone ? endCallDiaglogLabels : leaveDiaglogLabels);\n toggleConfirm();\n },\n [endCallDiaglogLabels, leaveDiaglogLabels, onHangUp, props.mobileView, toggleConfirm]\n );\n\n const styles = useMemo(\n () =>\n concatStyleSets(\n compactMode ? groupCallLeaveButtonCompressedStyle : groupCallLeaveButtonStyle,\n props.styles ?? {}\n ),\n [compactMode, props.styles]\n );\n\n /* @conditional-compile-remove(breakout-rooms) */\n const enableBreakoutRoomMenu = !!props.returnFromBreakoutRoom;\n /* @conditional-compile-remove(breakout-rooms) */\n const breakoutRoomMenuProps: IContextualMenuProps = {\n items: [\n {\n key: 'returnToMainMeeting',\n text: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n title: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n onClick: () => {\n props.returnFromBreakoutRoom?.();\n }\n },\n {\n key: 'leaveRoomAndMainMeeting',\n text: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n title: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n onClick: () => onHangUp()\n }\n ],\n styles: props.styles\n };\n\n return (\n <>\n {\n /* @conditional-compile-remove(end-call-options) */\n <Prompt\n {...dialogLabels}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n cancelButtonLabel={localeStrings.call.hangUpCancelButtonLabel}\n onConfirm={() => onHangUpConfirm(props.enableEndCallMenu)} // if enableEndCallMenu is true, that means the dialog is triggered by hangUpForEveryone button\n isOpen={showHangUpConfirm}\n onCancel={toggleConfirm}\n />\n }\n <EndCallButton\n data-ui-id=\"call-composite-hangup-button\"\n {...hangUpButtonProps}\n /* @conditional-compile-remove(end-call-options) */\n onHangUp={props.disableEndCallModal ? onHangUp : hangUpOverride}\n styles={styles}\n showLabel={!compactMode}\n /* @conditional-compile-remove(end-call-options) */\n enableEndCallMenu={props.enableEndCallMenu ?? false}\n /* @conditional-compile-remove(breakout-rooms) */\n menuProps={enableBreakoutRoomMenu ? breakoutRoomMenuProps : undefined}\n />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"EndCall.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/buttons/EndCall.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAA0B,aAAa,EAAE,+CAAmC;AACnF,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,mDAAmD;AACnD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,mDAAmD;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,mDAAmD;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KASvB,EAAe,EAAE;;IAChB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC;IACpD,MAAM,iBAAiB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACrD,mDAAmD;IACnD,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAE1C,mDAAmD;IACnD,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC;QACL,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAChE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QACrD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;KACnD,CAAC,EACF;QACE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,yBAAyB;KAC7C,CACF,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QAC9D,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QACnD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;KACnD,CAAC,EACF;QACE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QAC1C,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,uBAAuB;KAC3C,CACF,CAAC;IAEF,mDAAmD;IACnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAErE,mDAAmD;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;IAEvC,mDAAmD;IACnD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExE,mDAAmD;IACnD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,mDAAmD;IACnD,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,iBAA2B,EAAE,EAAE;QAC9B,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACxC,aAAa,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;IAEF,mDAAmD;IACnD,MAAM,cAAc,GAAG,WAAW,CAChC,CAAO,WAAqB,EAAE,EAAE;QAC9B,IACE,KAAK,CAAC,UAAU;YAChB,WAAW,KAAK,KAAK,CAAC,2EAA2E,EACjG,CAAC;YACD,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACzE,aAAa,EAAE,CAAC;IAClB,CAAC,CAAA,EACD,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CACtF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE;;QACH,OAAA,eAAe,CACb,WAAW,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,yBAAyB,EAC7E,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CACnB,CAAA;KAAA,EACH,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAC5B,CAAC;IAEF,iDAAiD;IACjD,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAC9D,iDAAiD;IACjD,MAAM,qBAAqB,GAAyB;QAClD,KAAK,EAAE;YACL;gBACE,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,iCAAiC;gBAC1D,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,iCAAiC;gBAC3D,OAAO,EAAE,GAAG,EAAE;;oBACZ,MAAA,KAAK,CAAC,sBAAsB,qDAAI,CAAC;gBACnC,CAAC;aACF;YACD;gBACE,GAAG,EAAE,yBAAyB;gBAC9B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,sCAAsC;gBAC/D,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,sCAAsC;gBAChE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC1B;SACF;QACD,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IAEF,OAAO,CACL,oBAAC,KAAK;QACJ,oBAAC,aAAa,gCACD,8BAA8B,IACrC,iBAAiB;YACrB,mDAAmD;YACnD,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAC/D,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,WAAW;YACvB,mDAAmD;YACnD,iBAAiB,EAAE,MAAA,KAAK,CAAC,iBAAiB,mCAAI,KAAK;YACnD,iDAAiD;YACjD,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,IACrE;QAEA,mDAAmD;QACnD,oBAAC,MAAM,oBACD,YAAY,IAChB,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAC5D,iBAAiB,EAAE,aAAa,CAAC,IAAI,CAAC,uBAAuB,EAC7D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,EACzD,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,aAAa,IACvB,CAEE,CACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { IContextualMenuProps } from '@fluentui/react';\nimport { ControlBarButtonStyles, EndCallButton } from '@internal/react-components';\nimport React, { useMemo } from 'react';\n/* @conditional-compile-remove(end-call-options) */\nimport { useState, useCallback } from 'react';\nimport { CallControlDisplayType } from '../../../common/types/CommonCallControlOptions';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { groupCallLeaveButtonCompressedStyle, groupCallLeaveButtonStyle } from '../../styles/Buttons.styles';\n/* @conditional-compile-remove(end-call-options) */\nimport { Prompt } from '../Prompt';\n/* @conditional-compile-remove(end-call-options) */\nimport { useLocale } from '../../../localization';\n\n/** @private */\nexport const EndCall = (props: {\n displayType?: CallControlDisplayType;\n styles?: ControlBarButtonStyles;\n mobileView?: boolean;\n /* @conditional-compile-remove(end-call-options) */\n enableEndCallMenu?: boolean;\n disableEndCallModal?: boolean;\n /* @conditional-compile-remove(breakout-rooms) */\n returnFromBreakoutRoom?: () => Promise<void>;\n}): JSX.Element => {\n const compactMode = props.displayType === 'compact';\n const hangUpButtonProps = usePropsFor(EndCallButton);\n /* @conditional-compile-remove(end-call-options) */\n const localeStrings = useLocale().strings;\n\n /* @conditional-compile-remove(end-call-options) */\n const endCallDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.endCallConfirmButtonLabel,\n heading: localeStrings.call.endCallConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent\n }),\n [\n localeStrings.call.endCallConfirmButtonLabel,\n localeStrings.call.endCallConfirmDialogTitle,\n localeStrings.call.leaveConfirmDialogContent\n ]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const leaveDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.leaveConfirmButtonLabel,\n heading: localeStrings.call.leaveConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent\n }),\n [\n localeStrings.call.leaveConfirmButtonLabel,\n localeStrings.call.leaveConfirmDialogContent,\n localeStrings.call.leaveConfirmDialogTitle\n ]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const [dialogLabels, setDialogLabels] = useState(leaveDiaglogLabels);\n\n /* @conditional-compile-remove(end-call-options) */\n const { onHangUp } = hangUpButtonProps;\n\n /* @conditional-compile-remove(end-call-options) */\n const [showHangUpConfirm, setShowHangUpConfirm] = React.useState(false);\n\n /* @conditional-compile-remove(end-call-options) */\n const toggleConfirm = useCallback(() => {\n setShowHangUpConfirm(!showHangUpConfirm);\n }, [showHangUpConfirm]);\n\n /* @conditional-compile-remove(end-call-options) */\n const onHangUpConfirm = useCallback(\n (hangUpForEveryone?: boolean) => {\n onHangUp && onHangUp(hangUpForEveryone);\n toggleConfirm();\n },\n [onHangUp, toggleConfirm]\n );\n\n /* @conditional-compile-remove(end-call-options) */\n const hangUpOverride = useCallback(\n async (forEveryone?: boolean) => {\n if (\n props.mobileView ||\n forEveryone === false /* value being false(not undefined) because it comes from endCall option */\n ) {\n onHangUp();\n return;\n }\n setDialogLabels(forEveryone ? endCallDiaglogLabels : leaveDiaglogLabels);\n toggleConfirm();\n },\n [endCallDiaglogLabels, leaveDiaglogLabels, onHangUp, props.mobileView, toggleConfirm]\n );\n\n const styles = useMemo(\n () =>\n concatStyleSets(\n compactMode ? groupCallLeaveButtonCompressedStyle : groupCallLeaveButtonStyle,\n props.styles ?? {}\n ),\n [compactMode, props.styles]\n );\n\n /* @conditional-compile-remove(breakout-rooms) */\n const enableBreakoutRoomMenu = !!props.returnFromBreakoutRoom;\n /* @conditional-compile-remove(breakout-rooms) */\n const breakoutRoomMenuProps: IContextualMenuProps = {\n items: [\n {\n key: 'returnToMainMeeting',\n text: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n title: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n onClick: () => {\n props.returnFromBreakoutRoom?.();\n }\n },\n {\n key: 'leaveRoomAndMainMeeting',\n text: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n title: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n onClick: () => onHangUp()\n }\n ],\n styles: props.styles\n };\n\n return (\n <Stack>\n <EndCallButton\n data-ui-id=\"call-composite-hangup-button\"\n {...hangUpButtonProps}\n /* @conditional-compile-remove(end-call-options) */\n onHangUp={props.disableEndCallModal ? onHangUp : hangUpOverride}\n styles={styles}\n showLabel={!compactMode}\n /* @conditional-compile-remove(end-call-options) */\n enableEndCallMenu={props.enableEndCallMenu ?? false}\n /* @conditional-compile-remove(breakout-rooms) */\n menuProps={enableBreakoutRoomMenu ? breakoutRoomMenuProps : undefined}\n />\n {\n /* @conditional-compile-remove(end-call-options) */\n <Prompt\n {...dialogLabels}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n cancelButtonLabel={localeStrings.call.hangUpCancelButtonLabel}\n onConfirm={() => onHangUpConfirm(props.enableEndCallMenu)} // if enableEndCallMenu is true, that means the dialog is triggered by hangUpForEveryone button\n isOpen={showHangUpConfirm}\n onCancel={toggleConfirm}\n />\n }\n </Stack>\n );\n};\n"]}
@@ -57,7 +57,7 @@ export const CallPage = (props) => {
57
57
  return (React.createElement(DtmfDialpadPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, compositeAudioContext: compositeAudioContext }));
58
58
  }
59
59
  else {
60
- return (React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, localVideoTileOptions: options === null || options === void 0 ? void 0 : options.localVideoTile, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, userSetGalleryLayout: galleryLayout, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, videoTilesOptions: options === null || options === void 0 ? void 0 : options.videoTilesOptions })));
60
+ return (React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, localVideoTileOptions: options === null || options === void 0 ? void 0 : options.localVideoTile, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, userSetGalleryLayout: galleryLayout, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, videoTilesOptions: options === null || options === void 0 ? void 0 : options.videoTilesOptions, captionsOptions: options === null || options === void 0 ? void 0 : options.captionsBanner })));
61
61
  }
62
62
  };
63
63
  return (React.createElement(React.Fragment, null,
@@ -66,10 +66,9 @@ export const CallPage = (props) => {
66
66
  onFetchParticipantMenuItems: onFetchParticipantMenuItems,
67
67
  options: callControlOptions,
68
68
  increaseFlyoutItemSize: mobileView
69
- }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps, {
70
- /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile: mobileView })))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, latestNotifications: latestNotifications, onDismissError: props.onDismissError, onDismissNotification: onDismissNotification, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants,
69
+ }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps, { isMobile: mobileView })))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, latestNotifications: latestNotifications, onDismissError: props.onDismissError, onDismissNotification: onDismissNotification, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants,
71
70
  /* @conditional-compile-remove(call-readiness) */
72
- doNotShowCameraAccessNotifications: ((_d = (_c = props.options) === null || _c === void 0 ? void 0 : _c.deviceChecks) === null || _d === void 0 ? void 0 : _d.camera) === 'doNotPrompt' }),
71
+ doNotShowCameraAccessNotifications: ((_d = (_c = props.options) === null || _c === void 0 ? void 0 : _c.deviceChecks) === null || _d === void 0 ? void 0 : _d.camera) === 'doNotPrompt', captionsOptions: options === null || options === void 0 ? void 0 : options.captionsBanner }),
73
72
  React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
74
73
  };
75
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { ActiveErrorMessage, ErrorBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n\nimport { ActiveNotification } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React, { useMemo } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\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 { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\nimport { DtmfDialpadPage } from './DtmfDialpadPage';\nimport { showDtmfDialer } from '../utils/MediaGalleryUtils';\nimport { getTargetCallees } from '../selectors/baseSelectors';\nimport { Prompt, PromptProps } from '../components/Prompt';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[] | ActiveNotification[];\n latestNotifications: ActiveNotification[];\n onDismissError: (error: ActiveErrorMessage | ActiveNotification) => void;\n onDismissNotification: (notification: ActiveNotification) => void;\n galleryLayout: VideoGalleryLayout;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n onCloseChatPane?: () => void;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n compositeAudioContext?: AudioContext;\n disableAutoShowDtmfDialer?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n galleryLayout = 'floatingLocalVideo',\n onUserSetGalleryLayoutChange,\n userSetOverflowGalleryPosition = 'Responsive',\n onSetUserSetOverflowGalleryPosition,\n onCloseChatPane,\n pinnedParticipants = [],\n setPinnedParticipants,\n compositeAudioContext,\n disableAutoShowDtmfDialer = false,\n latestNotifications,\n onDismissNotification\n } = props;\n\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 remoteParticipantsConnected = useSelector(getRemoteParticipantsConnectedSelector);\n const callees = useSelector(getTargetCallees);\n const renderDtmfDialerFromStart = showDtmfDialer(callees, remoteParticipantsConnected);\n const [dtmfDialerPresent, setDtmfDialerPresent] = useState<boolean>(\n renderDtmfDialerFromStart && disableAutoShowDtmfDialer\n );\n\n const strings = useLocale().strings.call;\n\n const pinnedParticipantsChecked = useMemo(\n () =>\n pinnedParticipants.filter((pinnedParticipant) =>\n remoteParticipantsConnected.find(\n (remoteParticipant) => toFlatCommunicationIdentifier(remoteParticipant.identifier) === pinnedParticipant\n )\n ),\n [pinnedParticipants, remoteParticipantsConnected]\n );\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n const [isPromptOpen, setIsPromptOpen] = useState<boolean>(false);\n const [promptProps, setPromptProps] = useState<PromptProps>();\n\n const onRenderGalleryContentTrampoline = (): JSX.Element => {\n if (dtmfDialerPresent) {\n return (\n <DtmfDialpadPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors as ActiveErrorMessage[]}\n onDismissError={props.onDismissError}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n compositeAudioContext={compositeAudioContext}\n />\n );\n } else {\n return (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n localVideoTileOptions={options?.localVideoTile}\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n userSetGalleryLayout={galleryLayout}\n pinnedParticipants={pinnedParticipantsChecked}\n setPinnedParticipants={setPinnedParticipants}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n videoTilesOptions={options?.videoTilesOptions}\n />\n );\n }\n };\n\n return (\n <>\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n showErrorNotifications={options?.errorBar ?? true}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n onRenderGalleryContentTrampoline()\n ) : (\n <NetworkReconnectTile\n {...networkReconnectTileProps}\n /* /* @conditional-compile-remove(teams-meeting-conference) */ isMobile={mobileView}\n />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onCloseChatPane={onCloseChatPane}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n latestNotifications={latestNotifications}\n onDismissError={props.onDismissError}\n onDismissNotification={onDismissNotification}\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n userSetGalleryLayout={galleryLayout}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n pinnedParticipants={pinnedParticipantsChecked}\n setPinnedParticipants={setPinnedParticipants}\n /* @conditional-compile-remove(call-readiness) */\n doNotShowCameraAccessNotifications={props.options?.deviceChecks?.camera === 'doNotPrompt'}\n />\n {<Prompt isOpen={isPromptOpen} onDismiss={() => setIsPromptOpen(false)} {...promptProps} />}\n </>\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\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"]}
1
+ {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,sDAA6C;AACjE,OAAO,EAAsB,QAAQ,EAAgC,4CAAmC;AAIxG,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,sCAAsC,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,yCAAgC;AA8BxE;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,EACJ,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,OAAO,EACP,UAAU,EACV,aAAa,GAAG,oBAAoB,EACpC,4BAA4B,EAC5B,8BAA8B,GAAG,YAAY,EAC7C,mCAAmC,EACnC,eAAe,EACf,kBAAkB,GAAG,EAAE,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,GAAG,KAAK,EACjC,mBAAmB,EACnB,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,qFAAqF;IACrF,uFAAuF;IACvF,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,qBAAqB,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,sBAAsB,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACtE,MAAM,yBAAyB,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,2BAA2B,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,yBAAyB,GAAG,cAAc,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IACvF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,yBAAyB,IAAI,yBAAyB,CACvD,CAAC;IAEF,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,MAAM,yBAAyB,GAAG,OAAO,CACvC,GAAG,EAAE,CACH,kBAAkB,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC9C,2BAA2B,CAAC,IAAI,CAC9B,CAAC,iBAAiB,EAAE,EAAE,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,iBAAiB,CACzG,CACF,EACH,CAAC,kBAAkB,EAAE,2BAA2B,CAAC,CAClD,CAAC;IAEF,yDAAyD;IACzD,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;IAEnH,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAC;IAE9D,MAAM,gCAAgC,GAAG,GAAgB,EAAE;;QACzD,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CACL,oBAAC,eAAe,IACd,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,YAAY,EAAE,KAAK,CAAC,YAAoC,EACxD,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,uCAAuC,EAAE,KAAK,CAAC,uCAAuC,EACtF,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,EAChE,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CACL,oBAAC,YAAY,kBACX,QAAQ,EAAE,UAAU,IAChB,iBAAiB,EACjB,oBAAoB,IACxB,wBAAwB,EAAE,wBAAwB,EAClD,0BAA0B,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B,EAC/D,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAC9C,8BAA8B,EAAE,8BAA8B,EAC9D,oBAAoB,EAAE,aAAa,EACnC,kBAAkB,EAAE,yBAAyB,EAC7C,qBAAqB,EAAE,qBAAqB,EAC5C,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,oBAAoB,EAC9D,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,EAC7C,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,IACxC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,oBAAC,eAAe,IACd,EAAE,EAAE,gBAAgB,EACpB,qBAAqB,kCAAO,qBAAqB,KAAE,OAAO,KAC1D,aAAa,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa,EAC3D,sBAAsB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,IAAI,EACjD,sBAAsB,EAAE,sBAAsB,EAC9C,gBAAgB,EAAE;gBAChB,iBAAiB,EAAE,iBAAiB;gBACpC,2BAA2B,EAAE,2BAA2B;gBACxD,OAAO,EAAE,kBAAkB;gBAC3B,sBAAsB,EAAE,UAAU;aACnC,EACD,wBAAwB,EAAE,wBAAwB,EAClD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,sBAAsB,EAAE,GAAG,EAAE,CAC3B,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACtB,gBAAgB,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAClE,gCAAgC,EAAE,CACnC,CAAC,CAAC,CAAC,CACF,oBAAC,oBAAoB,oBAAK,yBAAyB,IAAE,QAAQ,EAAE,UAAU,IAAI,CAC9E,CACF,CAAC,CAAC,CAAC,CACF,yCAAK,CACN,EAEH,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,qBAAqB,EAAE,qBAAqB,EAC5C,sCAAsC,EAAE,mCAAmC,EAC3E,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,aAAa,EACnC,uCAAuC,EAAE,KAAK,CAAC,uCAAuC,EACtF,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,EAChE,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,oBAAoB,EAC9D,kBAAkB,EAAE,yBAAyB,EAC7C,qBAAqB,EAAE,qBAAqB;YAC5C,iDAAiD;YACjD,kCAAkC,EAAE,CAAA,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,0CAAE,MAAM,MAAK,aAAa,EACzF,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,GACxC;QACD,oBAAC,MAAM,kBAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAM,WAAW,EAAI,CAC1F,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA8C,EAAW,EAAE;IAC1F,oFAAoF;IACpF,4EAA4E;IAC5E,uEAAuE;IACvE,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,iBAAiB,CAAC,IAAI,CAAC;AACtG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { ActiveErrorMessage, ErrorBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n\nimport { ActiveNotification } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React, { useMemo } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\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 { getRemoteParticipantsConnectedSelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\nimport { DtmfDialpadPage } from './DtmfDialpadPage';\nimport { showDtmfDialer } from '../utils/MediaGalleryUtils';\nimport { getTargetCallees } from '../selectors/baseSelectors';\nimport { Prompt, PromptProps } from '../components/Prompt';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[] | ActiveNotification[];\n latestNotifications: ActiveNotification[];\n onDismissError: (error: ActiveErrorMessage | ActiveNotification) => void;\n onDismissNotification: (notification: ActiveNotification) => void;\n galleryLayout: VideoGalleryLayout;\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n onCloseChatPane?: () => void;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n compositeAudioContext?: AudioContext;\n disableAutoShowDtmfDialer?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n galleryLayout = 'floatingLocalVideo',\n onUserSetGalleryLayoutChange,\n userSetOverflowGalleryPosition = 'Responsive',\n onSetUserSetOverflowGalleryPosition,\n onCloseChatPane,\n pinnedParticipants = [],\n setPinnedParticipants,\n compositeAudioContext,\n disableAutoShowDtmfDialer = false,\n latestNotifications,\n onDismissNotification\n } = props;\n\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 remoteParticipantsConnected = useSelector(getRemoteParticipantsConnectedSelector);\n const callees = useSelector(getTargetCallees);\n const renderDtmfDialerFromStart = showDtmfDialer(callees, remoteParticipantsConnected);\n const [dtmfDialerPresent, setDtmfDialerPresent] = useState<boolean>(\n renderDtmfDialerFromStart && disableAutoShowDtmfDialer\n );\n\n const strings = useLocale().strings.call;\n\n const pinnedParticipantsChecked = useMemo(\n () =>\n pinnedParticipants.filter((pinnedParticipant) =>\n remoteParticipantsConnected.find(\n (remoteParticipant) => toFlatCommunicationIdentifier(remoteParticipant.identifier) === pinnedParticipant\n )\n ),\n [pinnedParticipants, remoteParticipantsConnected]\n );\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n const [isPromptOpen, setIsPromptOpen] = useState<boolean>(false);\n const [promptProps, setPromptProps] = useState<PromptProps>();\n\n const onRenderGalleryContentTrampoline = (): JSX.Element => {\n if (dtmfDialerPresent) {\n return (\n <DtmfDialpadPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors as ActiveErrorMessage[]}\n onDismissError={props.onDismissError}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n compositeAudioContext={compositeAudioContext}\n />\n );\n } else {\n return (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n localVideoTileOptions={options?.localVideoTile}\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n userSetGalleryLayout={galleryLayout}\n pinnedParticipants={pinnedParticipantsChecked}\n setPinnedParticipants={setPinnedParticipants}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n videoTilesOptions={options?.videoTilesOptions}\n captionsOptions={options?.captionsBanner}\n />\n );\n }\n };\n\n return (\n <>\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n showErrorNotifications={options?.errorBar ?? true}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n onRenderGalleryContentTrampoline()\n ) : (\n <NetworkReconnectTile {...networkReconnectTileProps} isMobile={mobileView} />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onCloseChatPane={onCloseChatPane}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n latestNotifications={latestNotifications}\n onDismissError={props.onDismissError}\n onDismissNotification={onDismissNotification}\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n userSetGalleryLayout={galleryLayout}\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n onSetDialpadPage={() => setDtmfDialerPresent(!dtmfDialerPresent)}\n dtmfDialerPresent={dtmfDialerPresent}\n setIsPromptOpen={setIsPromptOpen}\n setPromptProps={setPromptProps}\n hideSpotlightButtons={options?.spotlight?.hideSpotlightButtons}\n pinnedParticipants={pinnedParticipantsChecked}\n setPinnedParticipants={setPinnedParticipants}\n /* @conditional-compile-remove(call-readiness) */\n doNotShowCameraAccessNotifications={props.options?.deviceChecks?.camera === 'doNotPrompt'}\n captionsOptions={options?.captionsBanner}\n />\n {<Prompt isOpen={isPromptOpen} onDismiss={() => setIsPromptOpen(false)} {...promptProps} />}\n </>\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\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"]}
@@ -138,7 +138,6 @@ export const getIsTeamsCall = (state) => state.isTeamsCall;
138
138
  * @private
139
139
  */
140
140
  export const getIsTeamsMeeting = (state) => state.isTeamsMeeting;
141
- /* @conditional-compile-remove(teams-meeting-conference) */
142
141
  /**
143
142
  * @private
144
143
  */