@azure/communication-react 1.18.0-alpha-202406150014 → 1.18.0-alpha-202406191739
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.
- package/dist/communication-react.d.ts +54 -28
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-XMNUmuTx.js → ChatMessageComponentAsRichTextEditBox-HBSSHZ2s.js} +2 -2
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-XMNUmuTx.js.map → ChatMessageComponentAsRichTextEditBox-HBSSHZ2s.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BLmR8ku0.js → RichTextSendBoxWrapper-DDN8Weyb.js} +2 -2
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BLmR8ku0.js.map → RichTextSendBoxWrapper-DDN8Weyb.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{index-CzkriUUT.js → index-CAm6Qb1t.js} +638 -197
 - package/dist/dist-cjs/communication-react/index-CAm6Qb1t.js.map +1 -0
 - package/dist/dist-cjs/communication-react/index.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.d.ts +22 -0
 - package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.js +146 -0
 - package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.js.map +1 -0
 - package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +1 -0
 - package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +7 -1
 - package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/index.d.ts +2 -0
 - package/dist/dist-esm/calling-component-bindings/src/index.js +2 -0
 - package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
 - package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -1
 - package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +5 -4
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.d.ts +1 -0
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js +3 -3
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +1 -10
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.d.ts +4 -0
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js +18 -21
 - package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ErrorBar.js +1 -1
 - package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/Notifications.d.ts +23 -28
 - package/dist/dist-esm/react-components/src/components/Notifications.js +17 -7
 - package/dist/dist-esm/react-components/src/components/Notifications.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -2
 - package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +2 -2
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +16 -29
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +10 -4
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/SendBox.js +9 -3
 - package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +1 -1
 - package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +1 -0
 - package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +3 -3
 - package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +2 -0
 - package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +10 -0
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.d.ts +4 -0
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js +8 -0
 - package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +24 -13
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts +4 -0
 - package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +9 -0
 - package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils.d.ts +32 -1
 - package/dist/dist-esm/react-components/src/components/utils.js +84 -0
 - package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -23
 - package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +168 -1
 - package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +170 -3
 - package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.d.ts +1 -0
 - package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +4 -4
 - package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
 - package/dist/dist-esm/react-components/src/theming/themes.js +13 -12
 - package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
 - package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -1
 - package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +24 -5
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +20 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +8 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +4 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +33 -5
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +68 -4
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +3 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +3 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +5 -3
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +4 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +4 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +4 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -0
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -0
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -0
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -0
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +6 -0
 - package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +26 -6
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +5 -4
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +1 -0
 - package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +3 -2
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +40 -2
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +7 -1
 - package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +7 -1
 - package/dist/tsdoc-metadata.json +1 -1
 - package/package.json +10 -10
 - package/dist/dist-cjs/communication-react/index-CzkriUUT.js.map +0 -1
 
| 
         @@ -9,12 +9,16 @@ import { useLocale } from '../../../localization'; 
     | 
|
| 
       9 
9 
     | 
    
         
             
            import { getRemoteParticipants } from '../../selectors/baseSelectors';
         
     | 
| 
       10 
10 
     | 
    
         
             
            /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
       11 
11 
     | 
    
         
             
            import { useSelector } from '../../hooks/useSelector';
         
     | 
| 
      
 12 
     | 
    
         
            +
            /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 13 
     | 
    
         
            +
            import { Prompt } from '../Prompt';
         
     | 
| 
       12 
14 
     | 
    
         
             
            const PEOPLE_SIDE_PANE_ID = 'people';
         
     | 
| 
       13 
15 
     | 
    
         
             
            /** @private */
         
     | 
| 
       14 
16 
     | 
    
         
             
            export const usePeoplePane = (props) => {
         
     | 
| 
       15 
17 
     | 
    
         
             
                const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight, 
         
     | 
| 
       16 
18 
     | 
    
         
             
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
       17 
     | 
    
         
            -
                onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem  
     | 
| 
      
 19 
     | 
    
         
            +
                onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem, 
         
     | 
| 
      
 20 
     | 
    
         
            +
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 21 
     | 
    
         
            +
                onMuteAllRemoteParticipants } = props;
         
     | 
| 
       18 
22 
     | 
    
         
             
                const closePane = useCallback(() => {
         
     | 
| 
       19 
23 
     | 
    
         
             
                    var _a;
         
     | 
| 
       20 
24 
     | 
    
         
             
                    updateSidePaneRenderer(undefined);
         
     | 
| 
         @@ -23,6 +27,25 @@ export const usePeoplePane = (props) => { 
     | 
|
| 
       23 
27 
     | 
    
         
             
                const localeStrings = useLocale().strings.call;
         
     | 
| 
       24 
28 
     | 
    
         
             
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
       25 
29 
     | 
    
         
             
                const remoteParticipants = useSelector(getRemoteParticipants);
         
     | 
| 
      
 30 
     | 
    
         
            +
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 31 
     | 
    
         
            +
                const [showMuteAllPrompt, setShowMuteAllPrompt] = React.useState(false);
         
     | 
| 
      
 32 
     | 
    
         
            +
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 33 
     | 
    
         
            +
                const muteAllPromptLabels = useMemo(() => ({
         
     | 
| 
      
 34 
     | 
    
         
            +
                    confirmButtonLabel: localeStrings.muteAllConfirmButtonLabel,
         
     | 
| 
      
 35 
     | 
    
         
            +
                    heading: localeStrings.muteAllDialogTitle,
         
     | 
| 
      
 36 
     | 
    
         
            +
                    text: localeStrings.muteAllDialogContent,
         
     | 
| 
      
 37 
     | 
    
         
            +
                    cancelButtonLabel: localeStrings.muteAllCancelButtonLabel
         
     | 
| 
      
 38 
     | 
    
         
            +
                }), [
         
     | 
| 
      
 39 
     | 
    
         
            +
                    localeStrings.muteAllConfirmButtonLabel,
         
     | 
| 
      
 40 
     | 
    
         
            +
                    localeStrings.muteAllDialogTitle,
         
     | 
| 
      
 41 
     | 
    
         
            +
                    localeStrings.muteAllDialogContent,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    localeStrings.muteAllCancelButtonLabel
         
     | 
| 
      
 43 
     | 
    
         
            +
                ]);
         
     | 
| 
      
 44 
     | 
    
         
            +
                /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 45 
     | 
    
         
            +
                const onMuteAllPromptConfirm = useCallback(() => {
         
     | 
| 
      
 46 
     | 
    
         
            +
                    onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();
         
     | 
| 
      
 47 
     | 
    
         
            +
                    setShowMuteAllPrompt(false);
         
     | 
| 
      
 48 
     | 
    
         
            +
                }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
         
     | 
| 
       26 
49 
     | 
    
         
             
                const sidePaneHeaderMenuProps = useMemo(() => {
         
     | 
| 
       27 
50 
     | 
    
         
             
                    const menuItems = [];
         
     | 
| 
       28 
51 
     | 
    
         
             
                    if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
         
     | 
| 
         @@ -36,10 +59,44 @@ export const usePeoplePane = (props) => { 
     | 
|
| 
       36 
59 
     | 
    
         
             
                            ariaLabel: localeStrings.stopAllSpotlightMenuLabel
         
     | 
| 
       37 
60 
     | 
    
         
             
                        });
         
     | 
| 
       38 
61 
     | 
    
         
             
                    }
         
     | 
| 
      
 62 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 63 
     | 
    
         
            +
                    if (onMuteAllRemoteParticipants && remoteParticipants) {
         
     | 
| 
      
 64 
     | 
    
         
            +
                        let isAllMuted = true;
         
     | 
| 
      
 65 
     | 
    
         
            +
                        if (remoteParticipants) {
         
     | 
| 
      
 66 
     | 
    
         
            +
                            for (const participant of Object.values(remoteParticipants)) {
         
     | 
| 
      
 67 
     | 
    
         
            +
                                if (!participant.isMuted) {
         
     | 
| 
      
 68 
     | 
    
         
            +
                                    isAllMuted = false;
         
     | 
| 
      
 69 
     | 
    
         
            +
                                    break;
         
     | 
| 
      
 70 
     | 
    
         
            +
                                }
         
     | 
| 
      
 71 
     | 
    
         
            +
                            }
         
     | 
| 
      
 72 
     | 
    
         
            +
                        }
         
     | 
| 
      
 73 
     | 
    
         
            +
                        menuItems.push({
         
     | 
| 
      
 74 
     | 
    
         
            +
                            key: 'muteAllRemoteParticipants',
         
     | 
| 
      
 75 
     | 
    
         
            +
                            text: localeStrings.muteAllMenuLabel,
         
     | 
| 
      
 76 
     | 
    
         
            +
                            iconProps: {
         
     | 
| 
      
 77 
     | 
    
         
            +
                                iconName: 'ContextualMenuMicMutedIcon',
         
     | 
| 
      
 78 
     | 
    
         
            +
                                styles: { root: { lineHeight: 0 } }
         
     | 
| 
      
 79 
     | 
    
         
            +
                            },
         
     | 
| 
      
 80 
     | 
    
         
            +
                            onClick: () => {
         
     | 
| 
      
 81 
     | 
    
         
            +
                                setShowMuteAllPrompt(true);
         
     | 
| 
      
 82 
     | 
    
         
            +
                            },
         
     | 
| 
      
 83 
     | 
    
         
            +
                            'data-ui-id': 'participant-item-mute-all-remote-participants',
         
     | 
| 
      
 84 
     | 
    
         
            +
                            ariaLabel: localeStrings.muteAllMenuLabel,
         
     | 
| 
      
 85 
     | 
    
         
            +
                            disabled: isAllMuted
         
     | 
| 
      
 86 
     | 
    
         
            +
                        });
         
     | 
| 
      
 87 
     | 
    
         
            +
                    }
         
     | 
| 
       39 
88 
     | 
    
         
             
                    return {
         
     | 
| 
       40 
89 
     | 
    
         
             
                        items: menuItems
         
     | 
| 
       41 
90 
     | 
    
         
             
                    };
         
     | 
| 
       42 
     | 
    
         
            -
                }, [ 
     | 
| 
      
 91 
     | 
    
         
            +
                }, [
         
     | 
| 
      
 92 
     | 
    
         
            +
                    onStopAllSpotlight,
         
     | 
| 
      
 93 
     | 
    
         
            +
                    spotlightedParticipantUserIds,
         
     | 
| 
      
 94 
     | 
    
         
            +
                    localeStrings.stopAllSpotlightMenuLabel,
         
     | 
| 
      
 95 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,
         
     | 
| 
      
 96 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,
         
     | 
| 
      
 97 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ remoteParticipants,
         
     | 
| 
      
 98 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt
         
     | 
| 
      
 99 
     | 
    
         
            +
                ]);
         
     | 
| 
       43 
100 
     | 
    
         
             
                const onRenderHeader = useCallback(() => (React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false })), [mobileView, closePane, localeStrings]);
         
     | 
| 
       44 
101 
     | 
    
         
             
                const onFetchParticipantMenuItemsForCallComposite = useCallback((participantId, myUserId, defaultMenuItems) => {
         
     | 
| 
       45 
102 
     | 
    
         
             
                    var _a;
         
     | 
| 
         @@ -187,7 +244,10 @@ export const usePeoplePane = (props) => { 
     | 
|
| 
       187 
244 
     | 
    
         
             
                    localeStrings.pinParticipantMenuItemAriaLabel
         
     | 
| 
       188 
245 
     | 
    
         
             
                ]);
         
     | 
| 
       189 
246 
     | 
    
         
             
                const onRenderContent = useCallback(() => {
         
     | 
| 
       190 
     | 
    
         
            -
                    return (React.createElement( 
     | 
| 
      
 247 
     | 
    
         
            +
                    return (React.createElement(React.Fragment, null,
         
     | 
| 
      
 248 
     | 
    
         
            +
                        /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 249 
     | 
    
         
            +
                        React.createElement(Prompt, Object.assign({}, muteAllPromptLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onMuteAllPromptConfirm(), isOpen: showMuteAllPrompt, onCancel: () => setShowMuteAllPrompt(false) })),
         
     | 
| 
      
 250 
     | 
    
         
            +
                        React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants })));
         
     | 
| 
       191 
251 
     | 
    
         
             
                }, [
         
     | 
| 
       192 
252 
     | 
    
         
             
                    inviteLink,
         
     | 
| 
       193 
253 
     | 
    
         
             
                    mobileView,
         
     | 
| 
         @@ -196,7 +256,11 @@ export const usePeoplePane = (props) => { 
     | 
|
| 
       196 
256 
     | 
    
         
             
                    setDrawerMenuItems,
         
     | 
| 
       197 
257 
     | 
    
         
             
                    setParticipantActioned,
         
     | 
| 
       198 
258 
     | 
    
         
             
                    sidePaneHeaderMenuProps,
         
     | 
| 
       199 
     | 
    
         
            -
                    pinnedParticipants
         
     | 
| 
      
 259 
     | 
    
         
            +
                    pinnedParticipants,
         
     | 
| 
      
 260 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ showMuteAllPrompt,
         
     | 
| 
      
 261 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
         
     | 
| 
      
 262 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ muteAllPromptLabels,
         
     | 
| 
      
 263 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */ onMuteAllPromptConfirm
         
     | 
| 
       200 
264 
     | 
    
         
             
                ]);
         
     | 
| 
       201 
265 
     | 
    
         
             
                const sidePaneRenderer = useMemo(() => ({
         
     | 
| 
       202 
266 
     | 
    
         
             
                    headerRenderer: onRenderHeader,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton } from '@fluentui/react';\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\n/* @conditional-compile-remove(soft-mute) */\nimport { getRemoteParticipants } from '../../selectors/baseSelectors';\n/* @conditional-compile-remove(soft-mute) */\nimport { useSelector } from '../../hooks/useSelector';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n  setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n  inviteLink?: string;\n  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n  mobileView?: boolean;\n  peopleButtonRef?: RefObject<IButton>;\n  setParticipantActioned?: (userId: string) => void;\n  spotlightedParticipantUserIds?: string[];\n  onStartLocalSpotlight?: () => Promise<void>;\n  onStopLocalSpotlight?: () => Promise<void>;\n  onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n  onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n  onStopAllSpotlight?: () => Promise<void>;\n  maxParticipantsToSpotlight?: number;\n  /* @conditional-compile-remove(soft-mute) */\n  onMuteParticipant?: (userId: string) => Promise<void>;\n  /* @conditional-compile-remove(soft-mute) */\n  mutedParticipantUserIds?: string[];\n  pinnedParticipants?: string[];\n  onPinParticipant?: (userId: string) => void;\n  onUnpinParticipant?: (userId: string) => void;\n  disablePinMenuItem?: boolean;\n}): {\n  openPeoplePane: () => void;\n  closePeoplePane: () => void;\n  isPeoplePaneOpen: boolean;\n} => {\n  const {\n    updateSidePaneRenderer,\n    inviteLink,\n    onFetchAvatarPersonaData,\n    onFetchParticipantMenuItems,\n    setDrawerMenuItems,\n    mobileView,\n    peopleButtonRef,\n    setParticipantActioned,\n    spotlightedParticipantUserIds,\n    onStartLocalSpotlight,\n    onStopLocalSpotlight,\n    onStartRemoteSpotlight,\n    onStopRemoteSpotlight,\n    onStopAllSpotlight,\n    maxParticipantsToSpotlight,\n    /* @conditional-compile-remove(soft-mute) */\n    onMuteParticipant,\n    pinnedParticipants,\n    onPinParticipant,\n    onUnpinParticipant,\n    disablePinMenuItem\n  } = props;\n\n  const closePane = useCallback(() => {\n    updateSidePaneRenderer(undefined);\n    peopleButtonRef?.current?.focus();\n  }, [peopleButtonRef, updateSidePaneRenderer]);\n\n  const localeStrings = useLocale().strings.call;\n  /* @conditional-compile-remove(soft-mute) */\n  const remoteParticipants = useSelector(getRemoteParticipants);\n\n  const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n    const menuItems: IContextualMenuItem[] = [];\n    if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n      menuItems.push({\n        key: 'stopAllSpotlightKey',\n        text: localeStrings.stopAllSpotlightMenuLabel,\n        iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n        onClick: () => {\n          onStopAllSpotlight();\n        },\n        ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n      });\n    }\n    return {\n      items: menuItems\n    };\n  }, [onStopAllSpotlight, spotlightedParticipantUserIds, localeStrings.stopAllSpotlightMenuLabel]);\n\n  const onRenderHeader = useCallback(\n    () => (\n      <SidePaneHeader\n        onClose={closePane}\n        headingText={localeStrings.peoplePaneTitle}\n        dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n        mobileView={mobileView ?? false}\n      />\n    ),\n    [mobileView, closePane, localeStrings]\n  );\n\n  const onFetchParticipantMenuItemsForCallComposite = useCallback(\n    (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n      let isPinned = pinnedParticipants?.includes(participantId);\n      const _defaultMenuItems: IContextualMenuItem[] = defaultMenuItems ?? [];\n      const isSpotlighted = spotlightedParticipantUserIds?.includes(participantId);\n      const isMe = myUserId === participantId;\n      isPinned = isSpotlighted ? false : isPinned;\n      if (isSpotlighted) {\n        const stopSpotlightMenuText = isMe\n          ? localeStrings.stopSpotlightOnSelfMenuLabel\n          : localeStrings.stopSpotlightMenuLabel;\n        const onStopSpotlight = isMe\n          ? onStopLocalSpotlight\n          : onStopRemoteSpotlight\n          ? () => {\n              onStopRemoteSpotlight([participantId]);\n            }\n          : undefined;\n        if (onStopSpotlight && stopSpotlightMenuText) {\n          _defaultMenuItems.push({\n            key: 'stop-spotlight',\n            text: stopSpotlightMenuText,\n            onClick: onStopSpotlight,\n            iconProps: {\n              iconName: 'StopSpotlightContextualMenuItem',\n              styles: { root: { lineHeight: 0 } }\n            },\n            ariaLabel: stopSpotlightMenuText\n          });\n        }\n      } else {\n        const startSpotlightMenuText =\n          spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n            ? localeStrings.addSpotlightMenuLabel\n            : localeStrings.startSpotlightMenuLabel;\n        const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n          ? spotlightedParticipantUserIds\n            ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n            : false\n          : false;\n        const onStartSpotlight = isMe\n          ? onStartLocalSpotlight\n          : onStartRemoteSpotlight\n          ? () => {\n              onStartRemoteSpotlight([participantId]);\n            }\n          : undefined;\n        if (onStartSpotlight && startSpotlightMenuText) {\n          _defaultMenuItems.push({\n            key: 'start-spotlight',\n            text: startSpotlightMenuText,\n            onClick: onStartSpotlight,\n            iconProps: {\n              iconName: 'StartSpotlightContextualMenuItem',\n              styles: { root: { lineHeight: 0 } }\n            },\n            ariaLabel: startSpotlightMenuText,\n            disabled: maxSpotlightedParticipantsReached,\n            title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n          });\n        }\n      }\n      /* @conditional-compile-remove(soft-mute) */\n      if (onMuteParticipant && !isMe) {\n        const isMuted = remoteParticipants && remoteParticipants[participantId]?.isMuted;\n        _defaultMenuItems.push({\n          key: 'mute',\n          text: 'Mute',\n          iconProps: {\n            iconName: 'ContextualMenuMicMutedIcon',\n            styles: { root: { lineHeight: 0 } }\n          },\n          onClick: () => {\n            onMuteParticipant(participantId);\n          },\n          'data-ui-id': 'participant-item-mute-participant',\n          ariaLabel: 'Mute',\n          disabled: isMuted\n        });\n      }\n\n      if (!isMe && isPinned !== undefined) {\n        if (isPinned && onUnpinParticipant && localeStrings?.unpinParticipantMenuLabel) {\n          _defaultMenuItems.push({\n            key: 'unpin',\n            text: localeStrings?.unpinParticipantMenuLabel,\n            iconProps: {\n              iconName: 'UnpinParticipant',\n              styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n            },\n            onClick: () => {\n              onUnpinParticipant?.(participantId);\n            },\n            'data-ui-id': 'participant-item-unpin-participant-button',\n            ariaLabel: localeStrings.unpinParticipantMenuItemAriaLabel\n          });\n        }\n        if (!isPinned && onPinParticipant && localeStrings?.pinParticipantMenuLabel) {\n          _defaultMenuItems.push({\n            key: 'pin',\n            text: disablePinMenuItem\n              ? localeStrings.pinParticipantLimitReachedMenuLabel\n              : localeStrings.pinParticipantMenuLabel,\n            iconProps: {\n              iconName: 'PinParticipant',\n              styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n            },\n            onClick: () => {\n              onPinParticipant(participantId);\n            },\n            'data-ui-id': 'participant-item-pin-participant-button',\n            disabled: disablePinMenuItem || isSpotlighted,\n            ariaLabel: localeStrings.pinParticipantMenuItemAriaLabel\n          });\n        }\n      }\n      return onFetchParticipantMenuItems\n        ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n        : _defaultMenuItems;\n    },\n    [\n      spotlightedParticipantUserIds,\n      onStartLocalSpotlight,\n      onStopLocalSpotlight,\n      onStartRemoteSpotlight,\n      onStopRemoteSpotlight,\n      onFetchParticipantMenuItems,\n      /* @conditional-compile-remove(soft-mute) */\n      onMuteParticipant,\n      /* @conditional-compile-remove(soft-mute) */\n      remoteParticipants,\n      localeStrings.stopSpotlightMenuLabel,\n      localeStrings.stopSpotlightOnSelfMenuLabel,\n      localeStrings.addSpotlightMenuLabel,\n      localeStrings.startSpotlightMenuLabel,\n      localeStrings.spotlightLimitReachedMenuTitle,\n      maxParticipantsToSpotlight,\n      pinnedParticipants,\n      onPinParticipant,\n      onUnpinParticipant,\n      disablePinMenuItem,\n      localeStrings.pinParticipantMenuLabel,\n      localeStrings.pinParticipantLimitReachedMenuLabel,\n      localeStrings.unpinParticipantMenuLabel,\n      localeStrings.unpinParticipantMenuItemAriaLabel,\n      localeStrings.pinParticipantMenuItemAriaLabel\n    ]\n  );\n\n  const onRenderContent = useCallback((): JSX.Element => {\n    return (\n      <PeoplePaneContent\n        inviteLink={inviteLink}\n        onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n        onFetchParticipantMenuItems={onFetchParticipantMenuItemsForCallComposite}\n        setDrawerMenuItems={setDrawerMenuItems}\n        mobileView={mobileView}\n        setParticipantActioned={setParticipantActioned}\n        participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n        pinnedParticipants={pinnedParticipants}\n      />\n    );\n  }, [\n    inviteLink,\n    mobileView,\n    onFetchAvatarPersonaData,\n    onFetchParticipantMenuItemsForCallComposite,\n    setDrawerMenuItems,\n    setParticipantActioned,\n    sidePaneHeaderMenuProps,\n    pinnedParticipants\n  ]);\n\n  const sidePaneRenderer: SidePaneRenderer = useMemo(\n    () => ({\n      headerRenderer: onRenderHeader,\n      contentRenderer: onRenderContent,\n      id: PEOPLE_SIDE_PANE_ID\n    }),\n    [onRenderContent, onRenderHeader]\n  );\n\n  const openPane = useCallback(() => {\n    updateSidePaneRenderer(sidePaneRenderer);\n  }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n  const isOpen = useIsParticularSidePaneOpen(PEOPLE_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 { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton } from '@fluentui/react';\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\n/* @conditional-compile-remove(soft-mute) */\nimport { getRemoteParticipants } from '../../selectors/baseSelectors';\n/* @conditional-compile-remove(soft-mute) */\nimport { useSelector } from '../../hooks/useSelector';\n/* @conditional-compile-remove(soft-mute) */\nimport { Prompt } from '../Prompt';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n  setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n  inviteLink?: string;\n  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n  mobileView?: boolean;\n  peopleButtonRef?: RefObject<IButton>;\n  setParticipantActioned?: (userId: string) => void;\n  spotlightedParticipantUserIds?: string[];\n  onStartLocalSpotlight?: () => Promise<void>;\n  onStopLocalSpotlight?: () => Promise<void>;\n  onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n  onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n  onStopAllSpotlight?: () => Promise<void>;\n  maxParticipantsToSpotlight?: number;\n  /* @conditional-compile-remove(soft-mute) */\n  onMuteParticipant?: (userId: string) => Promise<void>;\n  /* @conditional-compile-remove(soft-mute) */\n  onMuteAllRemoteParticipants?: () => Promise<void>;\n  pinnedParticipants?: string[];\n  onPinParticipant?: (userId: string) => void;\n  onUnpinParticipant?: (userId: string) => void;\n  disablePinMenuItem?: boolean;\n}): {\n  openPeoplePane: () => void;\n  closePeoplePane: () => void;\n  isPeoplePaneOpen: boolean;\n} => {\n  const {\n    updateSidePaneRenderer,\n    inviteLink,\n    onFetchAvatarPersonaData,\n    onFetchParticipantMenuItems,\n    setDrawerMenuItems,\n    mobileView,\n    peopleButtonRef,\n    setParticipantActioned,\n    spotlightedParticipantUserIds,\n    onStartLocalSpotlight,\n    onStopLocalSpotlight,\n    onStartRemoteSpotlight,\n    onStopRemoteSpotlight,\n    onStopAllSpotlight,\n    maxParticipantsToSpotlight,\n    /* @conditional-compile-remove(soft-mute) */\n    onMuteParticipant,\n    pinnedParticipants,\n    onPinParticipant,\n    onUnpinParticipant,\n    disablePinMenuItem,\n    /* @conditional-compile-remove(soft-mute) */\n    onMuteAllRemoteParticipants\n  } = props;\n\n  const closePane = useCallback(() => {\n    updateSidePaneRenderer(undefined);\n    peopleButtonRef?.current?.focus();\n  }, [peopleButtonRef, updateSidePaneRenderer]);\n\n  const localeStrings = useLocale().strings.call;\n  /* @conditional-compile-remove(soft-mute) */\n  const remoteParticipants = useSelector(getRemoteParticipants);\n  /* @conditional-compile-remove(soft-mute) */\n  const [showMuteAllPrompt, setShowMuteAllPrompt] = React.useState(false);\n  /* @conditional-compile-remove(soft-mute) */\n  const muteAllPromptLabels = useMemo(\n    () => ({\n      confirmButtonLabel: localeStrings.muteAllConfirmButtonLabel,\n      heading: localeStrings.muteAllDialogTitle,\n      text: localeStrings.muteAllDialogContent,\n      cancelButtonLabel: localeStrings.muteAllCancelButtonLabel\n    }),\n    [\n      localeStrings.muteAllConfirmButtonLabel,\n      localeStrings.muteAllDialogTitle,\n      localeStrings.muteAllDialogContent,\n      localeStrings.muteAllCancelButtonLabel\n    ]\n  );\n\n  /* @conditional-compile-remove(soft-mute) */\n  const onMuteAllPromptConfirm = useCallback(() => {\n    onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();\n    setShowMuteAllPrompt(false);\n  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);\n\n  const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n    const menuItems: IContextualMenuItem[] = [];\n    if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n      menuItems.push({\n        key: 'stopAllSpotlightKey',\n        text: localeStrings.stopAllSpotlightMenuLabel,\n        iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n        onClick: () => {\n          onStopAllSpotlight();\n        },\n        ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n      });\n    }\n    /* @conditional-compile-remove(soft-mute) */\n    if (onMuteAllRemoteParticipants && remoteParticipants) {\n      let isAllMuted = true;\n      if (remoteParticipants) {\n        for (const participant of Object.values(remoteParticipants)) {\n          if (!participant.isMuted) {\n            isAllMuted = false;\n            break;\n          }\n        }\n      }\n      menuItems.push({\n        key: 'muteAllRemoteParticipants',\n        text: localeStrings.muteAllMenuLabel,\n        iconProps: {\n          iconName: 'ContextualMenuMicMutedIcon',\n          styles: { root: { lineHeight: 0 } }\n        },\n        onClick: () => {\n          setShowMuteAllPrompt(true);\n        },\n        'data-ui-id': 'participant-item-mute-all-remote-participants',\n        ariaLabel: localeStrings.muteAllMenuLabel,\n        disabled: isAllMuted\n      });\n    }\n    return {\n      items: menuItems\n    };\n  }, [\n    onStopAllSpotlight,\n    spotlightedParticipantUserIds,\n    localeStrings.stopAllSpotlightMenuLabel,\n    /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,\n    /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,\n    /* @conditional-compile-remove(soft-mute) */ remoteParticipants,\n    /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt\n  ]);\n\n  const onRenderHeader = useCallback(\n    () => (\n      <SidePaneHeader\n        onClose={closePane}\n        headingText={localeStrings.peoplePaneTitle}\n        dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n        mobileView={mobileView ?? false}\n      />\n    ),\n    [mobileView, closePane, localeStrings]\n  );\n\n  const onFetchParticipantMenuItemsForCallComposite = useCallback(\n    (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n      let isPinned = pinnedParticipants?.includes(participantId);\n      const _defaultMenuItems: IContextualMenuItem[] = defaultMenuItems ?? [];\n      const isSpotlighted = spotlightedParticipantUserIds?.includes(participantId);\n      const isMe = myUserId === participantId;\n      isPinned = isSpotlighted ? false : isPinned;\n      if (isSpotlighted) {\n        const stopSpotlightMenuText = isMe\n          ? localeStrings.stopSpotlightOnSelfMenuLabel\n          : localeStrings.stopSpotlightMenuLabel;\n        const onStopSpotlight = isMe\n          ? onStopLocalSpotlight\n          : onStopRemoteSpotlight\n          ? () => {\n              onStopRemoteSpotlight([participantId]);\n            }\n          : undefined;\n        if (onStopSpotlight && stopSpotlightMenuText) {\n          _defaultMenuItems.push({\n            key: 'stop-spotlight',\n            text: stopSpotlightMenuText,\n            onClick: onStopSpotlight,\n            iconProps: {\n              iconName: 'StopSpotlightContextualMenuItem',\n              styles: { root: { lineHeight: 0 } }\n            },\n            ariaLabel: stopSpotlightMenuText\n          });\n        }\n      } else {\n        const startSpotlightMenuText =\n          spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n            ? localeStrings.addSpotlightMenuLabel\n            : localeStrings.startSpotlightMenuLabel;\n        const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n          ? spotlightedParticipantUserIds\n            ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n            : false\n          : false;\n        const onStartSpotlight = isMe\n          ? onStartLocalSpotlight\n          : onStartRemoteSpotlight\n          ? () => {\n              onStartRemoteSpotlight([participantId]);\n            }\n          : undefined;\n        if (onStartSpotlight && startSpotlightMenuText) {\n          _defaultMenuItems.push({\n            key: 'start-spotlight',\n            text: startSpotlightMenuText,\n            onClick: onStartSpotlight,\n            iconProps: {\n              iconName: 'StartSpotlightContextualMenuItem',\n              styles: { root: { lineHeight: 0 } }\n            },\n            ariaLabel: startSpotlightMenuText,\n            disabled: maxSpotlightedParticipantsReached,\n            title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n          });\n        }\n      }\n      /* @conditional-compile-remove(soft-mute) */\n      if (onMuteParticipant && !isMe) {\n        const isMuted = remoteParticipants && remoteParticipants[participantId]?.isMuted;\n        _defaultMenuItems.push({\n          key: 'mute',\n          text: 'Mute',\n          iconProps: {\n            iconName: 'ContextualMenuMicMutedIcon',\n            styles: { root: { lineHeight: 0 } }\n          },\n          onClick: () => {\n            onMuteParticipant(participantId);\n          },\n          'data-ui-id': 'participant-item-mute-participant',\n          ariaLabel: 'Mute',\n          disabled: isMuted\n        });\n      }\n\n      if (!isMe && isPinned !== undefined) {\n        if (isPinned && onUnpinParticipant && localeStrings?.unpinParticipantMenuLabel) {\n          _defaultMenuItems.push({\n            key: 'unpin',\n            text: localeStrings?.unpinParticipantMenuLabel,\n            iconProps: {\n              iconName: 'UnpinParticipant',\n              styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n            },\n            onClick: () => {\n              onUnpinParticipant?.(participantId);\n            },\n            'data-ui-id': 'participant-item-unpin-participant-button',\n            ariaLabel: localeStrings.unpinParticipantMenuItemAriaLabel\n          });\n        }\n        if (!isPinned && onPinParticipant && localeStrings?.pinParticipantMenuLabel) {\n          _defaultMenuItems.push({\n            key: 'pin',\n            text: disablePinMenuItem\n              ? localeStrings.pinParticipantLimitReachedMenuLabel\n              : localeStrings.pinParticipantMenuLabel,\n            iconProps: {\n              iconName: 'PinParticipant',\n              styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n            },\n            onClick: () => {\n              onPinParticipant(participantId);\n            },\n            'data-ui-id': 'participant-item-pin-participant-button',\n            disabled: disablePinMenuItem || isSpotlighted,\n            ariaLabel: localeStrings.pinParticipantMenuItemAriaLabel\n          });\n        }\n      }\n      return onFetchParticipantMenuItems\n        ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n        : _defaultMenuItems;\n    },\n    [\n      spotlightedParticipantUserIds,\n      onStartLocalSpotlight,\n      onStopLocalSpotlight,\n      onStartRemoteSpotlight,\n      onStopRemoteSpotlight,\n      onFetchParticipantMenuItems,\n      /* @conditional-compile-remove(soft-mute) */\n      onMuteParticipant,\n      /* @conditional-compile-remove(soft-mute) */\n      remoteParticipants,\n      localeStrings.stopSpotlightMenuLabel,\n      localeStrings.stopSpotlightOnSelfMenuLabel,\n      localeStrings.addSpotlightMenuLabel,\n      localeStrings.startSpotlightMenuLabel,\n      localeStrings.spotlightLimitReachedMenuTitle,\n      maxParticipantsToSpotlight,\n      pinnedParticipants,\n      onPinParticipant,\n      onUnpinParticipant,\n      disablePinMenuItem,\n      localeStrings.pinParticipantMenuLabel,\n      localeStrings.pinParticipantLimitReachedMenuLabel,\n      localeStrings.unpinParticipantMenuLabel,\n      localeStrings.unpinParticipantMenuItemAriaLabel,\n      localeStrings.pinParticipantMenuItemAriaLabel\n    ]\n  );\n\n  const onRenderContent = useCallback((): JSX.Element => {\n    return (\n      <>\n        {\n          /* @conditional-compile-remove(soft-mute) */\n          <Prompt\n            {...muteAllPromptLabels}\n            styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n            onConfirm={() => onMuteAllPromptConfirm()}\n            isOpen={showMuteAllPrompt}\n            onCancel={() => setShowMuteAllPrompt(false)}\n          />\n        }\n        <PeoplePaneContent\n          inviteLink={inviteLink}\n          onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n          onFetchParticipantMenuItems={onFetchParticipantMenuItemsForCallComposite}\n          setDrawerMenuItems={setDrawerMenuItems}\n          mobileView={mobileView}\n          setParticipantActioned={setParticipantActioned}\n          participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n          pinnedParticipants={pinnedParticipants}\n        />\n      </>\n    );\n  }, [\n    inviteLink,\n    mobileView,\n    onFetchAvatarPersonaData,\n    onFetchParticipantMenuItemsForCallComposite,\n    setDrawerMenuItems,\n    setParticipantActioned,\n    sidePaneHeaderMenuProps,\n    pinnedParticipants,\n    /* @conditional-compile-remove(soft-mute) */ showMuteAllPrompt,\n    /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,\n    /* @conditional-compile-remove(soft-mute) */ muteAllPromptLabels,\n    /* @conditional-compile-remove(soft-mute) */ onMuteAllPromptConfirm\n  ]);\n\n  const sidePaneRenderer: SidePaneRenderer = useMemo(\n    () => ({\n      headerRenderer: onRenderHeader,\n      contentRenderer: onRenderContent,\n      id: PEOPLE_SIDE_PANE_ID\n    }),\n    [onRenderContent, onRenderHeader]\n  );\n\n  const openPane = useCallback(() => {\n    updateSidePaneRenderer(sidePaneRenderer);\n  }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n  const isOpen = useIsParticularSidePaneOpen(PEOPLE_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 { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
         
     | 
| 
         @@ -2,12 +2,13 @@ import React from 'react'; 
     | 
|
| 
       2 
2 
     | 
    
         
             
            import { SidePaneRenderer } from './SidePaneProvider';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { ActiveErrorMessage } from "../../../../../../react-components/src";
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { IButton } from '@fluentui/react';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { ActiveNotification } from "../../../../../../react-components/src";
         
     | 
| 
       5 
6 
     | 
    
         
             
            /** @private */
         
     | 
| 
       6 
7 
     | 
    
         
             
            export declare const VIDEO_EFFECTS_SIDE_PANE_ID = "videoeffects";
         
     | 
| 
       7 
8 
     | 
    
         
             
            /** @private */
         
     | 
| 
       8 
     | 
    
         
            -
            export declare const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM =  
     | 
| 
      
 9 
     | 
    
         
            +
            export declare const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 22;
         
     | 
| 
       9 
10 
     | 
    
         
             
            /** @private */
         
     | 
| 
       10 
     | 
    
         
            -
            export declare const useVideoEffectsPane: (updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void, mobileView: boolean, latestErrors: ActiveErrorMessage[], onDismissError: (error: ActiveErrorMessage) => void, cameraButtonRef?: React.RefObject<IButton>) => {
         
     | 
| 
      
 11 
     | 
    
         
            +
            export declare const useVideoEffectsPane: (updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void, mobileView: boolean, latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[], onDismissError: (error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification) => void, cameraButtonRef?: React.RefObject<IButton>) => {
         
     | 
| 
       11 
12 
     | 
    
         
             
                openVideoEffectsPane: () => void;
         
     | 
| 
       12 
13 
     | 
    
         
             
                closeVideoEffectsPane: () => void;
         
     | 
| 
       13 
14 
     | 
    
         
             
                toggleVideoEffectsPane: () => void;
         
     | 
| 
         @@ -8,7 +8,7 @@ import { VideoEffectsPaneContent } from '../../../common/VideoEffectsPane'; 
     | 
|
| 
       8 
8 
     | 
    
         
             
            /** @private */
         
     | 
| 
       9 
9 
     | 
    
         
             
            export const VIDEO_EFFECTS_SIDE_PANE_ID = 'videoeffects';
         
     | 
| 
       10 
10 
     | 
    
         
             
            /** @private */
         
     | 
| 
       11 
     | 
    
         
            -
            export const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM =  
     | 
| 
      
 11 
     | 
    
         
            +
            export const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 22;
         
     | 
| 
       12 
12 
     | 
    
         
             
            /** @private */
         
     | 
| 
       13 
13 
     | 
    
         
             
            export const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestErrors, onDismissError, cameraButtonRef) => {
         
     | 
| 
       14 
14 
     | 
    
         
             
                const closePane = useCallback(() => {
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"useVideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC; 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"useVideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createRef, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\n\nimport { useLocale } from '../../../localization';\nimport { VideoEffectsPaneContent } from '../../../common/VideoEffectsPane';\nimport { ActiveErrorMessage } from '@internal/react-components';\nimport { IButton } from '@fluentui/react';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\n\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_ID = 'videoeffects';\n\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 22;\n\n/** @private */\nexport const useVideoEffectsPane = (\n  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void,\n  mobileView: boolean,\n  latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[],\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => void,\n  cameraButtonRef?: React.RefObject<IButton>\n): {\n  openVideoEffectsPane: () => void;\n  closeVideoEffectsPane: () => void;\n  toggleVideoEffectsPane: () => void;\n  isVideoEffectsPaneOpen: boolean;\n} => {\n  const closePane = useCallback(() => {\n    updateSidePaneRenderer(undefined);\n    cameraButtonRef?.current?.focus();\n  }, [cameraButtonRef, updateSidePaneRenderer]);\n\n  const locale = useLocale();\n\n  const onRenderHeader = useCallback(() => {\n    return (\n      <SidePaneHeader\n        onClose={closePane}\n        headingText={locale.strings.call.videoEffectsPaneTitle}\n        dismissSidePaneButtonAriaLabel={\n          locale.strings.call.dismissSidePaneButtonLabel ??\n          locale.strings.callWithChat.dismissSidePaneButtonLabel ??\n          'Close'\n        }\n        mobileView={mobileView}\n      />\n    );\n  }, [closePane, locale.strings, mobileView]);\n\n  const latestVideoEffectError = latestErrors.find((error) => error.type === 'unableToStartVideoEffect');\n  const updateFocusHandle = useMemo(() => createRef<{ focus: () => void }>(), []);\n\n  const onRenderContent = useCallback((): JSX.Element => {\n    return (\n      <VideoEffectsPaneContent\n        onDismissError={onDismissError}\n        activeVideoEffectError={latestVideoEffectError}\n        activeVideoEffectChange={() => {\n          // Clear any existing video effects error when the user clicks on a new video effect\n\n          latestVideoEffectError && onDismissError?.(latestVideoEffectError);\n        }}\n        updateFocusHandle={updateFocusHandle}\n      />\n    );\n  }, [latestVideoEffectError, onDismissError, updateFocusHandle]);\n\n  const sidePaneRenderer: SidePaneRenderer = useMemo(\n    () => ({\n      headerRenderer: onRenderHeader,\n      contentRenderer: onRenderContent,\n      id: VIDEO_EFFECTS_SIDE_PANE_ID\n    }),\n    [onRenderContent, onRenderHeader]\n  );\n\n  const openPane = useCallback(() => {\n    updateSidePaneRenderer(sidePaneRenderer);\n\n    // Run in a setTimeout as it must be called only once the imperative handle is available\n    setTimeout(() => updateFocusHandle.current?.focus(), 0);\n  }, [sidePaneRenderer, updateSidePaneRenderer, updateFocusHandle]);\n\n  const isOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_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  const togglePane = useCallback(() => {\n    if (isOpen) {\n      closePane();\n    } else {\n      openPane();\n    }\n  }, [closePane, isOpen, openPane]);\n\n  return {\n    openVideoEffectsPane: openPane,\n    closeVideoEffectsPane: closePane,\n    toggleVideoEffectsPane: togglePane,\n    isVideoEffectsPaneOpen: isOpen\n  };\n};\n\n/**\n * Active video effect with timestamp.\n *\n * @private\n */\nexport interface ActiveVideoEffect {\n  /**\n   * Type of video effect that is active.\n   */\n  type: 'blur' | 'replacement';\n  /**\n   * The latest timestamp when this effect was activated.\n   *\n   */\n  timestamp: Date;\n}\n"]}
         
     | 
| 
         @@ -188,6 +188,10 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => { 
     | 
|
| 
       188 
188 
     | 
    
         
             
                    /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
       189 
189 
     | 
    
         
             
                    onMuteParticipant: (userId) => __awaiter(void 0, void 0, void 0, function* () {
         
     | 
| 
       190 
190 
     | 
    
         
             
                        yield adapter.muteParticipant(userId);
         
     | 
| 
      
 191 
     | 
    
         
            +
                    }),
         
     | 
| 
      
 192 
     | 
    
         
            +
                    /* @conditional-compile-remove(soft-mute) */
         
     | 
| 
      
 193 
     | 
    
         
            +
                    onMuteAllRemoteParticipants: () => __awaiter(void 0, void 0, void 0, function* () {
         
     | 
| 
      
 194 
     | 
    
         
            +
                        yield adapter.muteAllRemoteParticipants();
         
     | 
| 
       191 
195 
     | 
    
         
             
                    })
         
     | 
| 
       192 
196 
     | 
    
         
             
                };
         
     | 
| 
       193 
197 
     | 
    
         
             
            });
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/hooks/useHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommonCallingHandlers } from '@internal/calling-component-bindings';\nimport { _ComponentCallingHandlers } from '@internal/calling-component-bindings';\nimport { CommonProperties, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ReactElement } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CommonCallAdapter } from '..';\n\nimport { VideoBackgroundBlurEffect, VideoBackgroundReplacementEffect } from '..';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { isCameraOn } from '../utils';\nimport { DtmfTone } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { Reaction } from '@azure/communication-calling';\n\nimport type {\n  BackgroundReplacementConfig,\n  BackgroundBlurConfig,\n  ParticipantCapabilities\n} from '@azure/communication-calling';\nimport { CallSurvey, CallSurveyResponse } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport {\n  CommunicationIdentifier,\n  CommunicationUserIdentifier,\n  PhoneNumberIdentifier\n} from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const useHandlers = <PropsT>(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  _component: (props: PropsT) => ReactElement | null\n): Pick<CommonCallingHandlers, CommonProperties<CommonCallingHandlers, PropsT>> &\n  Partial<_ComponentCallingHandlers> => {\n  const adapter = useAdapter();\n  const capabilities = adapter.getState().call?.capabilitiesFeature?.capabilities;\n  return createCompositeHandlers(adapter, capabilities);\n};\n\nconst createCompositeHandlers = memoizeOne(\n  (\n    adapter: CommonCallAdapter,\n    capabilities?: ParticipantCapabilities\n  ): CommonCallingHandlers & Partial<_ComponentCallingHandlers> => {\n    return {\n      onCreateLocalStreamView: async (options) => {\n        return await adapter.createStreamView(undefined, options);\n      },\n      onCreateRemoteStreamView: async (userId, options) => {\n        return await adapter.createStreamView(userId, options);\n      },\n      onHangUp: async (forEveryone?: boolean) => {\n        await adapter.leaveCall(forEveryone);\n      },\n      /* @conditional-compile-remove(PSTN-calls) */\n      onToggleHold: async () => {\n        return adapter.getState().call?.state === 'LocalHold' ? await adapter.resumeCall() : await adapter.holdCall();\n      },\n      /* @conditional-compile-remove(PSTN-calls) */\n      onAddParticipant: async (\n        participant: Partial<CommunicationUserIdentifier & PhoneNumberIdentifier>,\n        options?: AddPhoneNumberOptions\n      ) => {\n        if ('communicationUserId' in participant) {\n          return await adapter.addParticipant(participant as CommunicationUserIdentifier);\n        } else if ('phoneNumber' in participant) {\n          return await adapter.addParticipant(participant as PhoneNumberIdentifier, options);\n        }\n      },\n      onSendDtmfTone: async (dtmfTone: DtmfTone) => {\n        await adapter.sendDtmfTone(dtmfTone);\n      },\n      onRemoveParticipant: async (\n        userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n      ) => {\n        if (typeof userId === 'string') {\n          await adapter.removeParticipant(userId);\n        } else {\n          /* @conditional-compile-remove(PSTN-calls) */\n          await adapter.removeParticipant(_toCommunicationIdentifier(userId));\n        }\n      },\n      onRaiseHand: async () => {\n        await adapter.raiseHand();\n      },\n      onLowerHand: async () => {\n        await adapter.lowerHand();\n      },\n      onToggleRaiseHand: async () => {\n        adapter.getState().call?.raiseHand.localParticipantRaisedHand\n          ? await adapter.lowerHand()\n          : await adapter.raiseHand();\n      },\n      onReactionClick: async (reaction: Reaction) => {\n        await adapter.onReactionClick(reaction);\n      },\n      onSelectCamera: async (deviceInfo, options) => {\n        await adapter.setCamera(deviceInfo, options);\n      },\n      onSelectMicrophone: async (deviceInfo) => {\n        await adapter.setMicrophone(deviceInfo);\n      },\n      onSelectSpeaker: async (deviceInfo) => {\n        await adapter.setSpeaker(deviceInfo);\n      },\n      onStartCall: (participants, options?) => {\n        const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));\n        return adapter.startCall(rawIds, options);\n      },\n      onStartScreenShare: async () => {\n        await adapter.startScreenShare();\n      },\n      onStopScreenShare: async () => {\n        await adapter.stopScreenShare();\n      },\n      onToggleCamera: async (options) => {\n        isCameraOn(adapter.getState()) ? await adapter.stopCamera() : await adapter.startCamera(options);\n      },\n      onToggleMicrophone: async () => {\n        return adapter.getState().call?.isMuted ? await adapter.unmute() : await adapter.mute();\n      },\n      onToggleScreenShare: async () => {\n        return adapter.getState().call?.isScreenSharingOn\n          ? await adapter.stopScreenShare()\n          : await adapter.startScreenShare();\n      },\n      onStartLocalVideo: async () => {\n        if (adapter.getState().call) {\n          return adapter.startCamera();\n        }\n      },\n      onDisposeLocalStreamView: async () => {\n        return adapter.disposeLocalVideoStreamView();\n      },\n      onDisposeRemoteStreamView: async (userId) => {\n        return adapter.disposeStreamView(userId);\n      },\n      onDisposeRemoteScreenShareStreamView: async (userId) => {\n        return adapter.disposeScreenShareStreamView(userId);\n      },\n      onDisposeRemoteVideoStreamView: async (userId) => {\n        return adapter.disposeRemoteVideoStreamView(userId);\n      },\n      /* @conditional-compile-remove(call-readiness) */\n      askDevicePermission: async (constrain) => {\n        return adapter.askDevicePermission(constrain);\n      },\n\n      onRemoveVideoBackgroundEffects: async () => {\n        return await adapter.stopVideoBackgroundEffects();\n      },\n\n      onBlurVideoBackground: async (backgroundBlurConfig?: BackgroundBlurConfig) => {\n        const blurConfig: VideoBackgroundBlurEffect = {\n          effectName: 'blur',\n          ...backgroundBlurConfig\n        };\n        return await adapter.startVideoBackgroundEffect(blurConfig);\n      },\n\n      onReplaceVideoBackground: async (backgroundReplacementConfig: BackgroundReplacementConfig) => {\n        const replacementConfig: VideoBackgroundReplacementEffect = {\n          effectName: 'replacement',\n          ...backgroundReplacementConfig\n        };\n        return await adapter.startVideoBackgroundEffect(replacementConfig);\n      },\n      onStartCaptions: async (options) => {\n        await adapter.startCaptions(options);\n      },\n      onStopCaptions: async () => {\n        await adapter.stopCaptions();\n      },\n      onSetSpokenLanguage: async (language) => {\n        await adapter.setSpokenLanguage(language);\n      },\n      onSetCaptionLanguage: async (language) => {\n        await adapter.setCaptionLanguage(language);\n      },\n      onSubmitSurvey: async (survey: CallSurvey): Promise<CallSurveyResponse | undefined> => {\n        return await adapter.submitSurvey(survey);\n      },\n      onStartSpotlight: async (userIds?: string[]): Promise<void> => {\n        await adapter.startSpotlight(userIds);\n      },\n      onStopSpotlight: async (userIds?: string[]): Promise<void> => {\n        await adapter.stopSpotlight(userIds);\n      },\n      onStopAllSpotlight: async (): Promise<void> => {\n        await adapter.stopAllSpotlight();\n      },\n      onStartLocalSpotlight: capabilities?.spotlightParticipant.isPresent\n        ? async (): Promise<void> => {\n            await adapter.startSpotlight();\n          }\n        : undefined,\n      onStopLocalSpotlight: async (): Promise<void> => {\n        await adapter.stopSpotlight();\n      },\n      onStartRemoteSpotlight: capabilities?.spotlightParticipant.isPresent\n        ? async (userIds?: string[]): Promise<void> => {\n            await adapter.startSpotlight(userIds);\n          }\n        : undefined,\n      onStopRemoteSpotlight: capabilities?.removeParticipantsSpotlight.isPresent\n        ? async (userIds?: string[]): Promise<void> => {\n            await adapter.stopSpotlight(userIds);\n          }\n        : undefined,\n      /* @conditional-compile-remove(soft-mute) */\n      onMuteParticipant: async (userId: string): Promise<void> => {\n        await adapter.muteParticipant(userId);\n      }\n    };\n  }\n);\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/hooks/useHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommonCallingHandlers } from '@internal/calling-component-bindings';\nimport { _ComponentCallingHandlers } from '@internal/calling-component-bindings';\nimport { CommonProperties, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ReactElement } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CommonCallAdapter } from '..';\n\nimport { VideoBackgroundBlurEffect, VideoBackgroundReplacementEffect } from '..';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { isCameraOn } from '../utils';\nimport { DtmfTone } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { Reaction } from '@azure/communication-calling';\n\nimport type {\n  BackgroundReplacementConfig,\n  BackgroundBlurConfig,\n  ParticipantCapabilities\n} from '@azure/communication-calling';\nimport { CallSurvey, CallSurveyResponse } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport {\n  CommunicationIdentifier,\n  CommunicationUserIdentifier,\n  PhoneNumberIdentifier\n} from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type\nexport const useHandlers = <PropsT>(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  _component: (props: PropsT) => ReactElement | null\n): Pick<CommonCallingHandlers, CommonProperties<CommonCallingHandlers, PropsT>> &\n  Partial<_ComponentCallingHandlers> => {\n  const adapter = useAdapter();\n  const capabilities = adapter.getState().call?.capabilitiesFeature?.capabilities;\n  return createCompositeHandlers(adapter, capabilities);\n};\n\nconst createCompositeHandlers = memoizeOne(\n  (\n    adapter: CommonCallAdapter,\n    capabilities?: ParticipantCapabilities\n  ): CommonCallingHandlers & Partial<_ComponentCallingHandlers> => {\n    return {\n      onCreateLocalStreamView: async (options) => {\n        return await adapter.createStreamView(undefined, options);\n      },\n      onCreateRemoteStreamView: async (userId, options) => {\n        return await adapter.createStreamView(userId, options);\n      },\n      onHangUp: async (forEveryone?: boolean) => {\n        await adapter.leaveCall(forEveryone);\n      },\n      /* @conditional-compile-remove(PSTN-calls) */\n      onToggleHold: async () => {\n        return adapter.getState().call?.state === 'LocalHold' ? await adapter.resumeCall() : await adapter.holdCall();\n      },\n      /* @conditional-compile-remove(PSTN-calls) */\n      onAddParticipant: async (\n        participant: Partial<CommunicationUserIdentifier & PhoneNumberIdentifier>,\n        options?: AddPhoneNumberOptions\n      ) => {\n        if ('communicationUserId' in participant) {\n          return await adapter.addParticipant(participant as CommunicationUserIdentifier);\n        } else if ('phoneNumber' in participant) {\n          return await adapter.addParticipant(participant as PhoneNumberIdentifier, options);\n        }\n      },\n      onSendDtmfTone: async (dtmfTone: DtmfTone) => {\n        await adapter.sendDtmfTone(dtmfTone);\n      },\n      onRemoveParticipant: async (\n        userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n      ) => {\n        if (typeof userId === 'string') {\n          await adapter.removeParticipant(userId);\n        } else {\n          /* @conditional-compile-remove(PSTN-calls) */\n          await adapter.removeParticipant(_toCommunicationIdentifier(userId));\n        }\n      },\n      onRaiseHand: async () => {\n        await adapter.raiseHand();\n      },\n      onLowerHand: async () => {\n        await adapter.lowerHand();\n      },\n      onToggleRaiseHand: async () => {\n        adapter.getState().call?.raiseHand.localParticipantRaisedHand\n          ? await adapter.lowerHand()\n          : await adapter.raiseHand();\n      },\n      onReactionClick: async (reaction: Reaction) => {\n        await adapter.onReactionClick(reaction);\n      },\n      onSelectCamera: async (deviceInfo, options) => {\n        await adapter.setCamera(deviceInfo, options);\n      },\n      onSelectMicrophone: async (deviceInfo) => {\n        await adapter.setMicrophone(deviceInfo);\n      },\n      onSelectSpeaker: async (deviceInfo) => {\n        await adapter.setSpeaker(deviceInfo);\n      },\n      onStartCall: (participants, options?) => {\n        const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));\n        return adapter.startCall(rawIds, options);\n      },\n      onStartScreenShare: async () => {\n        await adapter.startScreenShare();\n      },\n      onStopScreenShare: async () => {\n        await adapter.stopScreenShare();\n      },\n      onToggleCamera: async (options) => {\n        isCameraOn(adapter.getState()) ? await adapter.stopCamera() : await adapter.startCamera(options);\n      },\n      onToggleMicrophone: async () => {\n        return adapter.getState().call?.isMuted ? await adapter.unmute() : await adapter.mute();\n      },\n      onToggleScreenShare: async () => {\n        return adapter.getState().call?.isScreenSharingOn\n          ? await adapter.stopScreenShare()\n          : await adapter.startScreenShare();\n      },\n      onStartLocalVideo: async () => {\n        if (adapter.getState().call) {\n          return adapter.startCamera();\n        }\n      },\n      onDisposeLocalStreamView: async () => {\n        return adapter.disposeLocalVideoStreamView();\n      },\n      onDisposeRemoteStreamView: async (userId) => {\n        return adapter.disposeStreamView(userId);\n      },\n      onDisposeRemoteScreenShareStreamView: async (userId) => {\n        return adapter.disposeScreenShareStreamView(userId);\n      },\n      onDisposeRemoteVideoStreamView: async (userId) => {\n        return adapter.disposeRemoteVideoStreamView(userId);\n      },\n      /* @conditional-compile-remove(call-readiness) */\n      askDevicePermission: async (constrain) => {\n        return adapter.askDevicePermission(constrain);\n      },\n\n      onRemoveVideoBackgroundEffects: async () => {\n        return await adapter.stopVideoBackgroundEffects();\n      },\n\n      onBlurVideoBackground: async (backgroundBlurConfig?: BackgroundBlurConfig) => {\n        const blurConfig: VideoBackgroundBlurEffect = {\n          effectName: 'blur',\n          ...backgroundBlurConfig\n        };\n        return await adapter.startVideoBackgroundEffect(blurConfig);\n      },\n\n      onReplaceVideoBackground: async (backgroundReplacementConfig: BackgroundReplacementConfig) => {\n        const replacementConfig: VideoBackgroundReplacementEffect = {\n          effectName: 'replacement',\n          ...backgroundReplacementConfig\n        };\n        return await adapter.startVideoBackgroundEffect(replacementConfig);\n      },\n      onStartCaptions: async (options) => {\n        await adapter.startCaptions(options);\n      },\n      onStopCaptions: async () => {\n        await adapter.stopCaptions();\n      },\n      onSetSpokenLanguage: async (language) => {\n        await adapter.setSpokenLanguage(language);\n      },\n      onSetCaptionLanguage: async (language) => {\n        await adapter.setCaptionLanguage(language);\n      },\n      onSubmitSurvey: async (survey: CallSurvey): Promise<CallSurveyResponse | undefined> => {\n        return await adapter.submitSurvey(survey);\n      },\n      onStartSpotlight: async (userIds?: string[]): Promise<void> => {\n        await adapter.startSpotlight(userIds);\n      },\n      onStopSpotlight: async (userIds?: string[]): Promise<void> => {\n        await adapter.stopSpotlight(userIds);\n      },\n      onStopAllSpotlight: async (): Promise<void> => {\n        await adapter.stopAllSpotlight();\n      },\n      onStartLocalSpotlight: capabilities?.spotlightParticipant.isPresent\n        ? async (): Promise<void> => {\n            await adapter.startSpotlight();\n          }\n        : undefined,\n      onStopLocalSpotlight: async (): Promise<void> => {\n        await adapter.stopSpotlight();\n      },\n      onStartRemoteSpotlight: capabilities?.spotlightParticipant.isPresent\n        ? async (userIds?: string[]): Promise<void> => {\n            await adapter.startSpotlight(userIds);\n          }\n        : undefined,\n      onStopRemoteSpotlight: capabilities?.removeParticipantsSpotlight.isPresent\n        ? async (userIds?: string[]): Promise<void> => {\n            await adapter.stopSpotlight(userIds);\n          }\n        : undefined,\n      /* @conditional-compile-remove(soft-mute) */\n      onMuteParticipant: async (userId: string): Promise<void> => {\n        await adapter.muteParticipant(userId);\n      },\n      /* @conditional-compile-remove(soft-mute) */\n      onMuteAllRemoteParticipants: async (): Promise<void> => {\n        await adapter.muteAllRemoteParticipants();\n      }\n    };\n  }\n);\n"]}
         
     | 
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /// <reference types="react" />
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { DiagnosticQuality } from '@azure/communication-calling';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { ActiveErrorMessage, ParticipantMenuItemsCallback } from "../../../../../react-components/src";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { ActiveNotification } from "../../../../../react-components/src";
         
     | 
| 
       4 
5 
     | 
    
         
             
            import { VideoGalleryLayout } from "../../../../../react-components/src";
         
     | 
| 
       5 
6 
     | 
    
         
             
            import { AvatarPersonaDataCallback } from '../../common/AvatarPersona';
         
     | 
| 
       6 
7 
     | 
    
         
             
            import { CallCompositeOptions } from '../CallComposite';
         
     | 
| 
         @@ -19,8 +20,8 @@ export interface CallPageProps { 
     | 
|
| 
       19 
20 
     | 
    
         
             
                updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;
         
     | 
| 
       20 
21 
     | 
    
         
             
                mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;
         
     | 
| 
       21 
22 
     | 
    
         
             
                options?: CallCompositeOptions;
         
     | 
| 
       22 
     | 
    
         
            -
                latestErrors: ActiveErrorMessage[];
         
     | 
| 
       23 
     | 
    
         
            -
                onDismissError: (error: ActiveErrorMessage) => void;
         
     | 
| 
      
 23 
     | 
    
         
            +
                latestErrors: ActiveErrorMessage[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];
         
     | 
| 
      
 24 
     | 
    
         
            +
                onDismissError: (error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification) => void;
         
     | 
| 
       24 
25 
     | 
    
         
             
                galleryLayout: VideoGalleryLayout;
         
     | 
| 
       25 
26 
     | 
    
         
             
                capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;
         
     | 
| 
       26 
27 
     | 
    
         
             
                onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;
         
     | 
| 
         @@ -28,7 +28,7 @@ import { Prompt } from '../components/Prompt'; 
     | 
|
| 
       28 
28 
     | 
    
         
             
             * @private
         
     | 
| 
       29 
29 
     | 
    
         
             
             */
         
     | 
| 
       30 
30 
     | 
    
         
             
            export const CallPage = (props) => {
         
     | 
| 
       31 
     | 
    
         
            -
                var _a;
         
     | 
| 
      
 31 
     | 
    
         
            +
                var _a, _b;
         
     | 
| 
       32 
32 
     | 
    
         
             
                const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false } = props;
         
     | 
| 
       33 
33 
     | 
    
         
             
                // To use useProps to get these states, we need to create another file wrapping Call,
         
     | 
| 
       34 
34 
     | 
    
         
             
                // It seems unnecessary in this case, so we get the updated states using this approach.
         
     | 
| 
         @@ -59,12 +59,14 @@ export const CallPage = (props) => { 
     | 
|
| 
       59 
59 
     | 
    
         
             
                    }
         
     | 
| 
       60 
60 
     | 
    
         
             
                };
         
     | 
| 
       61 
61 
     | 
    
         
             
                return (React.createElement(React.Fragment, null,
         
     | 
| 
       62 
     | 
    
         
            -
                    React.createElement(CallArrangement, { id: drawerMenuHostId, complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && errorBarProps,  
     | 
| 
      
 62 
     | 
    
         
            +
                    React.createElement(CallArrangement, { id: drawerMenuHostId, complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && errorBarProps, 
         
     | 
| 
      
 63 
     | 
    
         
            +
                        /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 64 
     | 
    
         
            +
                        showErrorNotifications: (_a = options === null || options === void 0 ? void 0 : options.errorBar) !== null && _a !== void 0 ? _a : true, mutedNotificationProps: mutedNotificationProps, callControlProps: {
         
     | 
| 
       63 
65 
     | 
    
         
             
                            callInvitationURL: callInvitationURL,
         
     | 
| 
       64 
66 
     | 
    
         
             
                            onFetchParticipantMenuItems: onFetchParticipantMenuItems,
         
     | 
| 
       65 
67 
     | 
    
         
             
                            options: callControlOptions,
         
     | 
| 
       66 
68 
     | 
    
         
             
                            increaseFlyoutItemSize: mobileView
         
     | 
| 
       67 
     | 
    
         
            -
                        }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: ( 
     | 
| 
      
 69 
     | 
    
         
            +
                        }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, 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: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
         
     | 
| 
       68 
70 
     | 
    
         
             
                    React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
         
     | 
| 
       69 
71 
     | 
    
         
             
            };
         
     | 
| 
       70 
72 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -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';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React 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';\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[];\n  onDismissError: (error: ActiveErrorMessage) => 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  } = 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\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  // 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}\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={pinnedParticipants}\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        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} />\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        onDismissError={props.onDismissError}\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={pinnedParticipants}\n        setPinnedParticipants={setPinnedParticipants}\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":"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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/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React 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';\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[] | /* @conditional-compile-remove(notifications) */ ActiveNotification[];\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => 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  } = 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  // 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}\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={pinnedParticipants}\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        /* @conditional-compile-remove(notifications) */\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} />\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        onDismissError={props.onDismissError}\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={pinnedParticipants}\n        setPinnedParticipants={setPinnedParticipants}\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"]}
         
     | 
| 
         @@ -11,7 +11,7 @@ import { disableCallControls, reduceCallControlsForMobile } from '../utils'; 
     | 
|
| 
       11 
11 
     | 
    
         
             
             * @beta
         
     | 
| 
       12 
12 
     | 
    
         
             
             */
         
     | 
| 
       13 
13 
     | 
    
         
             
            export const HoldPage = (props) => {
         
     | 
| 
       14 
     | 
    
         
            -
                var _a, _b, _c;
         
     | 
| 
      
 14 
     | 
    
         
            +
                var _a, _b, _c, _d, _e;
         
     | 
| 
       15 
15 
     | 
    
         
             
                const errorBarProps = usePropsFor(ErrorBar);
         
     | 
| 
       16 
16 
     | 
    
         
             
                const strings = useLocale().strings.call;
         
     | 
| 
       17 
17 
     | 
    
         
             
                let callControlOptions = props.mobileView
         
     | 
| 
         @@ -26,7 +26,9 @@ export const HoldPage = (props) => { 
     | 
|
| 
       26 
26 
     | 
    
         
             
                    /* @conditional-compile-remove(one-to-n-calling) */
         
     | 
| 
       27 
27 
     | 
    
         
             
                    'holdButton'
         
     | 
| 
       28 
28 
     | 
    
         
             
                ]);
         
     | 
| 
       29 
     | 
    
         
            -
                return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && errorBarProps,  
     | 
| 
      
 29 
     | 
    
         
            +
                return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && errorBarProps, 
         
     | 
| 
      
 30 
     | 
    
         
            +
                    /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 31 
     | 
    
         
            +
                    showErrorNotifications: (_e = (_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== null && _e !== void 0 ? _e : true, callControlProps: {
         
     | 
| 
       30 
32 
     | 
    
         
             
                        options: callControlOptions,
         
     | 
| 
       31 
33 
     | 
    
         
             
                        increaseFlyoutItemSize: props.mobileView
         
     | 
| 
       32 
34 
     | 
    
         
             
                    }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React.createElement(HoldPane, null), dataUiId: 'hold-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"HoldPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/HoldPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAsB,QAAQ,EAAE,4CAAmC;AAC1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAqB5E;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;QACvC,CAAC,CAAC,2BAA2B,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;QAC1D,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;IAEhC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;QAC3D,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,6CAA6C;QAC7C,mDAAmD;QACnD,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IACd,qBAAqB,EAAE,EAAE,OAAO,EAAE,EAClC,aAAa,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"HoldPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/HoldPage.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAsB,QAAQ,EAAE,4CAAmC;AAC1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAqB5E;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAe,EAAE;;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;QACvC,CAAC,CAAC,2BAA2B,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;QAC1D,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAAC;IAEhC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;QAC3D,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,6CAA6C;QAC7C,mDAAmD;QACnD,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IACd,qBAAqB,EAAE,EAAE,OAAO,EAAE,EAClC,aAAa,EAAE,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,IAAI,aAAa;QACjE,gDAAgD;QAChD,sBAAsB,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,QAAQ,mCAAI,IAAI,EACvD,gBAAgB,EAAE;YAChB,OAAO,EAAE,kBAAkB;YAC3B,sBAAsB,EAAE,KAAK,CAAC,UAAU;SACzC,EACD,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,sBAAsB,EAAE,GAAG,EAAE,CAAC,oBAAC,QAAQ,OAAG,EAC1C,QAAQ,EAAE,WAAW,EACrB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ActiveErrorMessage, ErrorBar } from '@internal/react-components';\nimport React from 'react';\nimport { CallCompositeOptions } from '../../../index-public';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { HoldPane } from '../components/HoldPane';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { disableCallControls, reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @beta\n */\nexport interface HoldPageProps {\n  mobileView: boolean;\n  options?: CallCompositeOptions;\n  modalLayerHostId: string;\n  updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n  mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n  latestErrors: ActiveErrorMessage[];\n  onDismissError: (error: ActiveErrorMessage) => void;\n\n  capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n}\n\n/**\n * @beta\n */\nexport const HoldPage = (props: HoldPageProps): JSX.Element => {\n  const errorBarProps = usePropsFor(ErrorBar);\n  const strings = useLocale().strings.call;\n\n  let callControlOptions = props.mobileView\n    ? reduceCallControlsForMobile(props.options?.callControls)\n    : props.options?.callControls;\n\n  callControlOptions = disableCallControls(callControlOptions, [\n    'cameraButton',\n    'microphoneButton',\n    'devicesButton',\n    'screenShareButton',\n    /* @conditional-compile-remove(PSTN-calls) */\n    /* @conditional-compile-remove(one-to-n-calling) */\n    'holdButton'\n  ]);\n\n  return (\n    <CallArrangement\n      complianceBannerProps={{ strings }}\n      errorBarProps={props.options?.errorBar !== false && errorBarProps}\n      /* @conditional-compile-remove(notifications) */\n      showErrorNotifications={props.options?.errorBar ?? true}\n      callControlProps={{\n        options: callControlOptions,\n        increaseFlyoutItemSize: props.mobileView\n      }}\n      mobileView={props.mobileView}\n      modalLayerHostId={props.modalLayerHostId}\n      onRenderGalleryContent={() => <HoldPane />}\n      dataUiId={'hold-page'}\n      updateSidePaneRenderer={props.updateSidePaneRenderer}\n      mobileChatTabHeader={props.mobileChatTabHeader}\n      latestErrors={props.latestErrors}\n      onDismissError={props.onDismissError}\n    />\n  );\n};\n"]}
         
     | 
| 
         @@ -16,7 +16,7 @@ import { isPhoneNumberIdentifier } from '@azure/communication-common'; 
     | 
|
| 
       16 
16 
     | 
    
         
             
             * @private
         
     | 
| 
       17 
17 
     | 
    
         
             
             */
         
     | 
| 
       18 
18 
     | 
    
         
             
            export const LobbyPage = (props) => {
         
     | 
| 
       19 
     | 
    
         
            -
                var _a, _b, _c, _d;
         
     | 
| 
      
 19 
     | 
    
         
            +
                var _a, _b, _c, _d, _e, _f;
         
     | 
| 
       20 
20 
     | 
    
         
             
                const errorBarProps = usePropsFor(ErrorBar);
         
     | 
| 
       21 
21 
     | 
    
         
             
                const lobbyProps = useSelector(lobbySelector);
         
     | 
| 
       22 
22 
     | 
    
         
             
                const strings = useLocale().strings.call;
         
     | 
| 
         @@ -28,7 +28,9 @@ export const LobbyPage = (props) => { 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    ? reduceCallControlsForMobile((_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls)
         
     | 
| 
       29 
29 
     | 
    
         
             
                    : (_c = props.options) === null || _c === void 0 ? void 0 : _c.callControls;
         
     | 
| 
       30 
30 
     | 
    
         
             
                callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);
         
     | 
| 
       31 
     | 
    
         
            -
                return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== false && errorBarProps,  
     | 
| 
      
 31 
     | 
    
         
            +
                return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== false && errorBarProps, 
         
     | 
| 
      
 32 
     | 
    
         
            +
                    /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 33 
     | 
    
         
            +
                    showErrorNotifications: (_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.errorBar) !== null && _f !== void 0 ? _f : true, callControlProps: {
         
     | 
| 
       32 
34 
     | 
    
         
             
                        options: callControlOptions,
         
     | 
| 
       33 
35 
     | 
    
         
             
                        increaseFlyoutItemSize: props.mobileView
         
     | 
| 
       34 
36 
     | 
    
         
             
                    }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => (React.createElement(LobbyTile, Object.assign({}, lobbyProps, { showLocalVideoCameraCycleButton: props.mobileView, overlayProps: overlayProps(strings, inLobby, Object.values(participants)) }))), dataUiId: 'lobby-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
         
     |