@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
 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAEL,WAAW,IAAI,UAAU,EAK1B,4CAAmC;AACpC,OAAO,EAAE,uBAAuB,EAAE,4CAAmC;AAGrE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,4CAAmC;AAE1F,6CAA6C,CAAC,mDAAmD;AACjG,OAAO,EAAE,UAAU,EAAE,4CAAmC;AACxD,OAAO,EAAE,eAAe,EAAwB,4CAAmC;AAEnF,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,kCAAkC,EACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAgC,sDAA6C;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,4CAAmC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,2DAA2D;AAC3D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAgH9E,MAAM,+BAA+B,GAAG,CACtC,oBAAyD,EACvB,EAAE;IACpC,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAChH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAe,EAAE;;IAChE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,eAAe,GAA0B,EAAE,CAAC;IAElD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE5D,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC;IAClC,6CAA6C,CAAC,mDAAmD;IACjG,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,MAAA,KAAK,CAAC,iBAAiB,mCAAI,KAAK,CAAC,CAAC;IAEtG,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAyB,CAAC;IAElF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CACE,GAAiF,EACjF,OAA2B,EAC3B,EAAE;QACF,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACrE,IAAI,QAAQ,EAAE,CAAC;YACb,8EAA8E;YAC9E,0CAA0C;YAC1C,eAAe,CAAC,QAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,EACD,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAC5C,CAAC;IAEF,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEnF,MAAM,kBAAkB,GACtB,KAAK,CAAC,mBAAmB;QACzB,qDAAqD,CAAC,sBAAsB,KAAK,KAAK;QACtF,qDAAqD,CAAC,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAEzG,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,WAAW;YACpB,iBAAiB,EAAE,GAAG,EAAE,CAAC,CACvB,oBAAC,uBAAuB,IACtB,eAAe,EAAE,CAAO,QAAQ,EAAE,EAAE;;oBAClC,MAAA,KAAK,CAAC,eAAe,sDAAG,QAAQ,CAAC,CAAC;oBAClC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAA,EACD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAC1C,CACH;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;YACpC,SAAS,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE;YAC7C,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,CAAC,EAAE;gBACnB,SAAS,EAAE;oBACT,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC;wBACxD,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,oBAAoB;iBACzB;gBACD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,kBAAkB;gBAC/B,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aAC1G,CAAC,CAAC;YACH,aAAa,EAAE,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAClD,MAAM,qBAAqB,GAAG,WAAW,CACvC,CACE,GAAiF,EACjF,OAA2B,EAC3B,EAAE;QACF,MAAM,QAAQ,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACb,8EAA8E;YAC9E,0CAA0C;YAC1C,kBAAkB,CAAC,QAA2B,CAAC,CAAC;QAClD,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,EACD,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAClD,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,iFAAiF;QACjF,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QACnE,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACxG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACpF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAE1G,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACjC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,EAAE,GAAG,CAAC,EAAE;gBACf,SAAS,EAAE;oBACT,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ;iBACxF;gBACD,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,qBAAqB;gBAClC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBACxG,QAAQ,EAAE,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7G,CAAC,CAAC;YACH,aAAa,EAAE,MAAA,KAAK,CAAC,kBAAkB,0CAAE,IAAI;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,sBAAsB,GAAG;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,CAAC,iBAAiB;YACtB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B;YACxD,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B;QAC3D,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,CAAC;YACD,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACzC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;SACpC;KACF,CAAC;IACF;;OAEG;IACH,IAAI,KAAK,CAAC,gBAAgB,IAAI,eAAe,EAAE,CAAC;QAC9C,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,oBAAoB,GAAG;QAC3B,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE;YACT,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;SACpC;QACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B;QAC3C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B;QAC9D,YAAY,EAAE;YACZ;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC;gBAC1E,WAAW,EAAE,GAAG,EAAE;oBAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;oBACnF,cAAc,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE;oBACT,QAAQ,EAAE,iCAAiC;oBAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC;gBACD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aAC7G;YACD;gBACE,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C;gBAC3E,WAAW,EAAE,GAAG,EAAE;oBAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;oBAC/E,cAAc,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE;oBACT,QAAQ,EAAE,6BAA6B;oBACvC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC;gBACD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACzG;SACF;KACF,CAAC;IAEF,2DAA2D;IAC3D,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC;QACpE,WAAW,EAAE,GAAG,EAAE;YAChB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACxE,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;SACpC;QACD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;KAClG,CAAC;IAEF,2DAA2D;IAC3D,MAAA,oBAAoB,CAAC,YAAY,0CAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvD,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE3C,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,YAAY,CAAC,EAAE,CAAC;QACxF,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,QAAQ;YACjB,EAAE,EAAE,qCAAqC;YACzC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;YACrC,SAAS,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;YAC3C,WAAW,EAAE,KAAK,CAAC,qBAAqB;YACxC,QAAQ,EAAE,UAAU,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,2BAA2B;SAC/F,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C,CAAC,mDAAmD;IACjG,IAAI,sBAAsB,KAAK,KAAK,IAAI,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU,CAAC,EAAE,CAAC;QACtF,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,CAAC,UAAU,CAAC;YAC5F,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB;YAClE,WAAW,EAAE,GAAG,EAAE;gBAChB,eAAe,CAAC,YAAY,EAAE,CAAC;gBAC/B,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;SAC3F,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAA,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,0CAAE,IAAI,CAAC;IAC/C,MAAM,8BAA8B,GAClC,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvF,IACE,sBAAsB,KAAK,KAAK;QAChC,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,CAAC;QAClD,CAAC,8BAA8B,EAC/B,CAAC;QACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACnH,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,CAAC,eAAe,CAAC;YACjG,IAAI,EAAE,oBAAoB,CAAC,OAAO;gBAChC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO;gBACzD,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ;YAC5D,WAAW,EAAE,GAAG,EAAE;gBAChB,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;oBAC3C,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,CAAC;gBACD,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,2DAA2D;IAC3D,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnF,2DAA2D;IAC3D,IACE,sBAAsB,KAAK,KAAK;QAChC,SAAS,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,2BAA2B,CAAC;QAC9D,cAAc;QACd,uBAAuB,EACvB,CAAC;QACD,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,UAAU,CAAC,sBAAsB,CAAC,2BAA2B,CAAC;YACxE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB;YACzD,WAAW,EAAE,GAAG,EAAE;;gBAChB,MAAA,KAAK,CAAC,uBAAuB,qDAAI,CAAC;gBAClC,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IACtB,MAAM,8BAA8B,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAEtF,sBAAsB;IACtB,MAAM,+BAA+B,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAExF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAEzE,MAAM,2BAA2B,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEtE,MAAM,uBAAuB,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAEpE,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7F,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE/F,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAChE,MAAA,mBAAmB,CAAC,qBAAqB,mCAAI,OAAO,CACrD,CAAC;IAEF,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAClE,MAAA,mBAAmB,CAAC,sBAAsB,mCAAI,gCAAgC,CAAC,qBAAqB,CAAC,CACtG,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAAC,GAAS,EAAE;QAC5C,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;YACjD,MAAM,2BAA2B,CAAC,eAAe,CAAC;gBAChD,cAAc,EAAE,qBAAqB;aACtC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,2BAA2B,CAAC,cAAc,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC,CAAA,EAAE,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEtG,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,mBAAmB,GAA0B,EAAE,CAAC;QAEtD,MAAM,oBAAoB,GAAG,8BAA8B;YACzD,CAAC,CAAC,8BAA8B,CAAC,qBAAqB,CAAC;YACvD,CAAC,CAAC,qBAAqB,CAAC;QAE1B,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,UAAU;YACnB,EAAE,EAAE,uCAAuC;YAC3C,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;YACrC,SAAS,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;YACvC,YAAY,EAAE,mBAAmB;SAClC,CAAC,CAAC;QAEH,mBAAmB,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE,mBAAmB,CAAC,uBAAuB;gBAC/C,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC;gBAChE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC;YACnE,SAAS,EAAE;gBACT,QAAQ,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc;gBAC1F,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;YACD,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,kBAAkB,EAAE,CAClB,oBAAC,KAAK,IAAC,YAAY,QAAC,aAAa,EAAC,QAAQ;gBACxC,oBAAC,MAAM,IACL,EAAE,EAAC,8CAA8C,EACjD,OAAO,EAAE,mBAAmB,CAAC,uBAAuB,EACpD,MAAM,EAAE,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,EACnF,QAAQ,EAAE,cAAc,GACxB,CACI,CACT;SACF,CAAC,CAAC;QAEH,mBAAmB,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,sBAAsB;YAC/B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB;YAC3C,EAAE,EAAE,uDAAuD;YAC3D,aAAa,EAAE,oBAAoB;YACnC,SAAS,EAAE;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;YACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,mBAAmB,CAAC,uBAAuB;YAC3F,WAAW,EAAE,GAAG,EAAE;gBAChB,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,kBAAkB,EAAE;gBAClB,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,qBAAqB,GAAG,+BAA+B;gBAC3D,CAAC,CAAC,+BAA+B,CAAC,sBAAsB,CAAC;gBACzD,CAAC,CAAC,sBAAsB,CAAC;YAE3B,mBAAmB,CAAC,IAAI,CAAC;gBACvB,OAAO,EAAE,uBAAuB;gBAChC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,wBAAwB;gBAC5C,EAAE,EAAE,yDAAyD;gBAC7D,aAAa,EAAE,qBAAqB;gBACpC,SAAS,EAAE;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC;gBACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,mBAAmB,CAAC,uBAAuB;gBAC3F,WAAW,EAAE,GAAG,EAAE;oBAChB,8BAA8B,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;gBACD,kBAAkB,EAAE;oBAClB,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CACH,+BAA+B,CAC7B,kCAAkC,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,EACzG,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CACnF,EACH,CAAC,sBAAsB,CAAC,CACzB,CAAC;IAEF,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAChH,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,mBAAmB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,CACL;QACG,0BAA0B,IAAI,kBAAkB,IAAI,CACnD,oBAAC,4BAA4B,IAC3B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,cAAc,EAAE,wBAAwB,EACxC,kBAAkB,EAAE,uBAAuB,CAAC,mBAAmB,EAC/D,eAAe,EAAE,qBAAqB,EACtC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAC7D,wBAAwB,EAAE,8BAA8B,GACxD,CACH;QACA,2BAA2B,IAAI,kBAAkB,IAAI,CACpD,oBAAC,6BAA6B,IAC5B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,cAAc,EAAE,yBAAyB,EACzC,kBAAkB,EAAE,uBAAuB,CAAC,oBAAoB,EAChE,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAC9D,wBAAwB,EAAE,+BAA+B,GACzD,CACH;QACA,CAAC,0BAA0B,IAAI,CAAC,2BAA2B,IAAI,CAC9D,oBAAC,UAAU,IAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAI,CAC7E,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,eAA+B,EAAW,EAAE,CAC5F,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;AAEzD,MAAM,SAAS,GAAG,CAAC,MAAe,EAAW,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback } from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport {\n  OptionsDevice,\n  _DrawerMenu as DrawerMenu,\n  _DrawerMenuItemProps as DrawerMenuItemProps,\n  _DrawerMenuStyles,\n  SpokenLanguageStrings,\n  CaptionLanguageStrings\n} from '@internal/react-components';\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _StartCaptionsButton, _CaptionsSettingsModal } from '@internal/react-components';\n\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport {\n  CUSTOM_BUTTON_OPTIONS,\n  generateCustomCallDrawerButtons,\n  onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _captionSettingsSelector, _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\nimport { _spokenLanguageToCaptionLanguage } from '@internal/react-components';\nimport { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\n\n/** @private */\nexport interface MoreDrawerStrings {\n  /**\n   * Label for people drawerMenuItem.\n   */\n  peopleButtonLabel: string;\n  /**\n   * Label for audio device drawerMenuItem.\n   *\n   * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated\n   *\n   */\n  audioDeviceMenuTitle?: string;\n  /**\n   * Label for microphone drawerMenuItem.\n   *\n   * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used\n   *\n   */\n  microphoneMenuTitle: string;\n  /**\n   * Label for speaker drawerMenuItem.\n   *\n   * @remarks Only displayed when speakers can be enumerated\n   *\n   */\n  speakerMenuTitle: string;\n  /**\n   * Label for captions drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call\n   */\n  captionsMenuTitle: string;\n  /**\n   * Label for spokenLanguage drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call, disabled until captions is on\n   */\n  spokenLanguageMenuTitle: string;\n\n  /**\n   * Label for captionLanguage drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call, disabled until captions is on\n   */\n  captionLanguageMenuTitle: string;\n\n  /**\n   * Label for gallery options drawerMenuItem\n   */\n  galleryOptionsMenuTitle: string;\n}\n\n/** @private */\nexport interface MoreDrawerDevicesMenuProps {\n  /**\n   * Available microphones for selection\n   */\n  microphones?: OptionsDevice[];\n  /**\n   * Available speakers for selection\n   */\n  speakers?: OptionsDevice[];\n  /**\n   * Microphone that is shown as currently selected\n   */\n  selectedMicrophone?: OptionsDevice;\n  /**\n   * Speaker that is shown as currently selected\n   */\n  selectedSpeaker?: OptionsDevice;\n  /**\n   * Speaker when a speaker is selected\n   */\n  onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n  /**\n   * Callback when a microphone is selected\n   */\n  onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n  userSetGalleryLayout?: VideoGalleryLayout;\n  /**\n   * Callback for when the gallery layout is changed\n   */\n  onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n  /**\n   * Callback to hide and show the dialpad in the more drawer\n   */\n  onSetDialpadPage?: () => void;\n  /**\n   * Whether the dialpad is present in the call\n   */\n  dtmfDialerPresent?: boolean;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n  onLightDismiss: () => void;\n  onPeopleButtonClicked: () => void;\n  callControls?: boolean | CommonCallControlOptions;\n  onClickShowDialpad?: () => void;\n  isCaptionsSupported?: boolean;\n  strings: MoreDrawerStrings;\n  disableButtonsForHoldScreen?: boolean;\n  useTeamsCaptions?: boolean;\n  reactionResources?: ReactionResources;\n  onReactionClick?: (reaction: string) => Promise<void>;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  onClickMeetingPhoneInfo?: () => void;\n}\n\nconst inferCallWithChatControlOptions = (\n  callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n  if (callWithChatControls === false) {\n    return false;\n  }\n  const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n  return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n  const theme = useTheme();\n  const callAdapter = useAdapter();\n  const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n  const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n  const localeStrings = useLocale();\n  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  const holdButtonProps = usePropsFor(HoldButton);\n\n  const callees = useSelector(getTargetCallees);\n  const allowDtmfDialer = showDtmfDialer(callees);\n  const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n  const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n  const onSpeakerItemClick = useCallback(\n    (\n      _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n      itemKey: string | undefined\n    ) => {\n      const selected = speakers?.find((speaker) => speaker.id === itemKey);\n      if (selected) {\n        // This is unsafe - we're only passing in part of the argument to the handler.\n        // But this is a known issue in our state.\n        onSelectSpeaker(selected as AudioDeviceInfo);\n      }\n      onLightDismiss();\n    },\n    [speakers, onSelectSpeaker, onLightDismiss]\n  );\n\n  const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n  const showCaptionsButton =\n    props.isCaptionsSupported &&\n    /* @conditional-compile-remove(acs-close-captions) */ drawerSelectionOptions !== false &&\n    /* @conditional-compile-remove(acs-close-captions) */ isEnabled(drawerSelectionOptions.captionsButton);\n\n  if (props.reactionResources !== undefined) {\n    drawerMenuItems.push({\n      itemKey: 'reactions',\n      onRendererContent: () => (\n        <_ReactionDrawerMenuItem\n          onReactionClick={async (reaction) => {\n            props.onReactionClick?.(reaction);\n            onLightDismiss();\n          }}\n          reactionResources={props.reactionResources}\n        />\n      )\n    });\n  }\n\n  if (props.speakers && props.speakers.length > 0) {\n    drawerMenuItems.push({\n      itemKey: 'speakers',\n      disabled: props.disableButtonsForHoldScreen,\n      text: props.strings.speakerMenuTitle,\n      iconProps: { iconName: 'MoreDrawerSpeakers' },\n      subMenuProps: props.speakers.map((speaker) => ({\n        itemKey: speaker.id,\n        iconProps: {\n          iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n            ? 'MoreDrawerSelectedSpeaker'\n            : 'MoreDrawerSpeakers'\n        },\n        text: speaker.name,\n        onItemClick: onSpeakerItemClick,\n        secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n      })),\n      secondaryText: props.selectedSpeaker?.name\n    });\n  }\n\n  const { microphones, onSelectMicrophone } = props;\n  const onMicrophoneItemClick = useCallback(\n    (\n      _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n      itemKey: string | undefined\n    ) => {\n      const selected = microphones?.find((mic) => mic.id === itemKey);\n      if (selected) {\n        // This is unsafe - we're only passing in part of the argument to the handler.\n        // But this is a known issue in our state.\n        onSelectMicrophone(selected as AudioDeviceInfo);\n      }\n      onLightDismiss();\n    },\n    [microphones, onSelectMicrophone, onLightDismiss]\n  );\n\n  if (props.microphones && props.microphones.length > 0) {\n    // Set props as Microphone if speakers can be enumerated else set as Audio Device\n    const speakersAvailable = props.speakers && props.speakers.length > 0;\n    const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n    const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n    const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n    const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n    drawerMenuItems.push({\n      itemKey: itemKey,\n      disabled: props.disableButtonsForHoldScreen,\n      text: text,\n      iconProps: { iconName: iconName },\n      subMenuProps: props.microphones.map((mic) => ({\n        itemKey: mic.id,\n        iconProps: {\n          iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n        },\n        text: mic.name,\n        onItemClick: onMicrophoneItemClick,\n        secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n        disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n      })),\n      secondaryText: props.selectedMicrophone?.name\n    });\n  }\n\n  const dtmfDialerScreenOption = {\n    itemKey: 'dtmfDialerScreenKey',\n    text: !dtmfDialerChecked\n      ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n      : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n    onItemClick: () => {\n      if (props.onSetDialpadPage) {\n        props.onSetDialpadPage();\n      }\n      setDtmfDialerChecked(!dtmfDialerChecked);\n      onLightDismiss();\n    },\n    iconProps: {\n      iconName: 'DtmfDialpadButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n   */\n  if (props.onSetDialpadPage && allowDtmfDialer) {\n    drawerMenuItems.push(dtmfDialerScreenOption);\n  }\n\n  const galleryLayoutOptions = {\n    itemKey: 'galleryPositionKey',\n    iconProps: {\n      iconName: 'GalleryOptions',\n      styles: { root: { lineHeight: 0 } }\n    },\n    disabled: props.disableButtonsForHoldScreen,\n    text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n    subMenuProps: [\n      {\n        itemKey: 'dynamicSelectionKey',\n        text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n        onItemClick: () => {\n          props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n          onLightDismiss();\n        },\n        iconProps: {\n          iconName: 'FloatingLocalVideoGalleryLayout',\n          styles: { root: { lineHeight: 0 } }\n        },\n        secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? { iconName: 'Accept' } : undefined\n      },\n      {\n        itemKey: 'focusedContentSelectionKey',\n        text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n        onItemClick: () => {\n          props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n          onLightDismiss();\n        },\n        iconProps: {\n          iconName: 'FocusedContentGalleryLayout',\n          styles: { root: { lineHeight: 0 } }\n        },\n        secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? { iconName: 'Accept' } : undefined\n      }\n    ]\n  };\n\n  /* @conditional-compile-remove(gallery-layout-composite) */\n  const galleryOption = {\n    itemKey: 'defaultSelectionKey',\n    text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n    onItemClick: () => {\n      props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n      onLightDismiss();\n    },\n    iconProps: {\n      iconName: 'DefaultGalleryLayout',\n      styles: { root: { lineHeight: 0 } }\n    },\n    secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined\n  };\n\n  /* @conditional-compile-remove(gallery-layout-composite) */\n  galleryLayoutOptions.subMenuProps?.push(galleryOption);\n\n  drawerMenuItems.push(galleryLayoutOptions);\n\n  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n    drawerMenuItems.push({\n      itemKey: 'people',\n      id: 'call-composite-drawer-people-button',\n      text: props.strings.peopleButtonLabel,\n      iconProps: { iconName: 'MoreDrawerPeople' },\n      onItemClick: props.onPeopleButtonClicked,\n      disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n    });\n  }\n\n  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n    drawerMenuItems.push({\n      itemKey: 'holdButtonKey',\n      disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n      text: localeStrings.component.strings.holdButton.tooltipOffContent,\n      onItemClick: () => {\n        holdButtonProps.onToggleHold();\n        onLightDismiss();\n      },\n      iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n    });\n  }\n\n  const role = callAdapter.getState().call?.role;\n  const hideRaiseHandButtonInRoomsCall =\n    callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n\n  if (\n    drawerSelectionOptions !== false &&\n    isEnabled(drawerSelectionOptions?.raiseHandButton) &&\n    !hideRaiseHandButtonInRoomsCall\n  ) {\n    const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n    drawerMenuItems.push({\n      itemKey: 'raiseHandButtonKey',\n      disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n      text: raiseHandButtonProps.checked\n        ? localeStrings.component.strings.raiseHandButton.onLabel\n        : localeStrings.component.strings.raiseHandButton.offLabel,\n      onItemClick: () => {\n        if (raiseHandButtonProps.onToggleRaiseHand) {\n          raiseHandButtonProps.onToggleRaiseHand();\n        }\n        onLightDismiss();\n      },\n      iconProps: {\n        iconName: raiseHandIcon,\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n  }\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  if (\n    drawerSelectionOptions !== false &&\n    isEnabled(drawerSelectionOptions?.teamsMeetingPhoneCallButton) &&\n    isTeamsMeeting &&\n    teamsMeetingCoordinates\n  ) {\n    drawerMenuItems.push({\n      itemKey: 'phoneCallInfoKey',\n      disabled: isDisabled(drawerSelectionOptions.teamsMeetingPhoneCallButton),\n      text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n      onItemClick: () => {\n        props.onClickMeetingPhoneInfo?.();\n        onLightDismiss();\n      },\n      iconProps: {\n        iconName: 'PhoneNumberButton',\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n  }\n\n  //Captions drawer menu\n  const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n  //Captions drawer menu\n  const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n\n  const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);\n\n  const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n\n  const captionSettingsHandlers = useHandlers(_CaptionsSettingsModal);\n\n  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n\n  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n  const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(\n    captionSettingsProp.currentSpokenLanguage ?? 'en-us'\n  );\n\n  const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(\n    captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]\n  );\n\n  const onToggleChange = useCallback(async () => {\n    if (!captionSettingsProp.isCaptionsFeatureActive) {\n      await startCaptionsButtonHandlers.onStartCaptions({\n        spokenLanguage: currentSpokenLanguage\n      });\n    } else {\n      startCaptionsButtonHandlers.onStopCaptions();\n    }\n  }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);\n\n  if (showCaptionsButton) {\n    const captionsDrawerItems: DrawerMenuItemProps[] = [];\n\n    const spokenLanguageString = supportedSpokenLanguageStrings\n      ? supportedSpokenLanguageStrings[currentSpokenLanguage]\n      : currentSpokenLanguage;\n\n    drawerMenuItems.push({\n      itemKey: 'captions',\n      id: 'common-call-composite-captions-button',\n      disabled: props.disableButtonsForHoldScreen,\n      text: props.strings.captionsMenuTitle,\n      iconProps: { iconName: 'CaptionsIcon' },\n      subMenuProps: captionsDrawerItems\n    });\n\n    captionsDrawerItems.push({\n      itemKey: 'ToggleCaptionsKey',\n      text: captionSettingsProp.isCaptionsFeatureActive\n        ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n        : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n      iconProps: {\n        iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      onItemClick: onToggleChange,\n      disabled: props.disableButtonsForHoldScreen,\n      secondaryComponent: (\n        <Stack verticalFill verticalAlign=\"center\">\n          <Toggle\n            id=\"common-call-composite-captions-toggle-button\"\n            checked={captionSettingsProp.isCaptionsFeatureActive}\n            styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)}\n            onChange={onToggleChange}\n          />\n        </Stack>\n      )\n    });\n\n    captionsDrawerItems.push({\n      itemKey: 'ChangeSpokenLanguage',\n      text: props.strings.spokenLanguageMenuTitle,\n      id: 'common-call-composite-captions-spoken-settings-button',\n      secondaryText: spokenLanguageString,\n      iconProps: {\n        iconName: 'ChangeSpokenLanguageIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n      onItemClick: () => {\n        setIsSpokenLanguageDrawerOpen(true);\n      },\n      secondaryIconProps: {\n        iconName: 'ChevronRight',\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n\n    if (props.useTeamsCaptions) {\n      const captionLanguageString = supportedCaptionLanguageStrings\n        ? supportedCaptionLanguageStrings[currentCaptionLanguage]\n        : currentCaptionLanguage;\n\n      captionsDrawerItems.push({\n        itemKey: 'ChangeCaptionLanguage',\n        text: props.strings.captionLanguageMenuTitle,\n        id: 'common-call-composite-captions-subtitle-settings-button',\n        secondaryText: captionLanguageString,\n        iconProps: {\n          iconName: 'ChangeCaptionLanguageIcon',\n          styles: { root: { lineHeight: 0 } }\n        },\n        disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n        onItemClick: () => {\n          setIsCaptionLanguageDrawerOpen(true);\n        },\n        secondaryIconProps: {\n          iconName: 'ChevronRight',\n          styles: { root: { lineHeight: 0 } }\n        }\n      });\n    }\n  }\n\n  const customDrawerButtons = useMemo(\n    () =>\n      generateCustomCallDrawerButtons(\n        onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n        drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n      ),\n    [drawerSelectionOptions]\n  );\n\n  customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n  customDrawerButtons['secondary'].forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n  customDrawerButtons['overflow'].forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n\n  return (\n    <>\n      {isSpokenLanguageDrawerOpen && showCaptionsButton && (\n        <SpokenLanguageSettingsDrawer\n          onLightDismiss={props.onLightDismiss}\n          selectLanguage={setCurrentSpokenLanguage}\n          setCurrentLanguage={captionSettingsHandlers.onSetSpokenLanguage}\n          currentLanguage={currentSpokenLanguage}\n          strings={{ menuTitle: props.strings.spokenLanguageMenuTitle }}\n          supportedLanguageStrings={supportedSpokenLanguageStrings}\n        />\n      )}\n      {isCaptionLanguageDrawerOpen && showCaptionsButton && (\n        <CaptionLanguageSettingsDrawer\n          onLightDismiss={props.onLightDismiss}\n          selectLanguage={setCurrentCaptionLanguage}\n          setCurrentLanguage={captionSettingsHandlers.onSetCaptionLanguage}\n          currentLanguage={currentCaptionLanguage}\n          strings={{ menuTitle: props.strings.captionLanguageMenuTitle }}\n          supportedLanguageStrings={supportedCaptionLanguageStrings}\n        />\n      )}\n      {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && (\n        <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />\n      )}\n    </>\n  );\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n  !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"MoreDrawer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/Drawer/MoreDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useCallback } from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport {\n  OptionsDevice,\n  _DrawerMenu as DrawerMenu,\n  _DrawerMenuItemProps as DrawerMenuItemProps,\n  _DrawerMenuStyles,\n  SpokenLanguageStrings,\n  CaptionLanguageStrings\n} from '@internal/react-components';\nimport { _ReactionDrawerMenuItem } from '@internal/react-components';\nimport { ReactionResources } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _StartCaptionsButton, _CaptionsSettingsModal } from '@internal/react-components';\n\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport { RaiseHandButton, RaiseHandButtonProps } from '@internal/react-components';\nimport { AudioDeviceInfo } from '@azure/communication-calling';\nimport {\n  CUSTOM_BUTTON_OPTIONS,\n  generateCustomCallDrawerButtons,\n  onFetchCustomButtonPropsTrampoline\n} from '../ControlBar/CustomButton';\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { useLocale } from '../../localization';\nimport { isDisabled } from '../../CallComposite/utils';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport { Stack, Toggle, useTheme } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _captionSettingsSelector, _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { CaptionLanguageSettingsDrawer } from './CaptionLanguageSettingsDrawer';\nimport { themedToggleButtonStyle } from './MoreDrawer.styles';\nimport { _spokenLanguageToCaptionLanguage } from '@internal/react-components';\nimport { useAdapter } from '../../CallComposite/adapter/CallAdapterProvider';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { SpokenLanguageSettingsDrawer } from './SpokenLanguageSettingsDrawer';\n\n/** @private */\nexport interface MoreDrawerStrings {\n  /**\n   * Label for people drawerMenuItem.\n   */\n  peopleButtonLabel: string;\n  /**\n   * Label for audio device drawerMenuItem.\n   *\n   * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated\n   *\n   */\n  audioDeviceMenuTitle?: string;\n  /**\n   * Label for microphone drawerMenuItem.\n   *\n   * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used\n   *\n   */\n  microphoneMenuTitle: string;\n  /**\n   * Label for speaker drawerMenuItem.\n   *\n   * @remarks Only displayed when speakers can be enumerated\n   *\n   */\n  speakerMenuTitle: string;\n  /**\n   * Label for captions drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call\n   */\n  captionsMenuTitle: string;\n  /**\n   * Label for spokenLanguage drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call, disabled until captions is on\n   */\n  spokenLanguageMenuTitle: string;\n\n  /**\n   * Label for captionLanguage drawerMenuItem\n   *\n   * @remarks Only displayed when in Teams call, disabled until captions is on\n   */\n  captionLanguageMenuTitle: string;\n\n  /**\n   * Label for gallery options drawerMenuItem\n   */\n  galleryOptionsMenuTitle: string;\n}\n\n/** @private */\nexport interface MoreDrawerDevicesMenuProps {\n  /**\n   * Available microphones for selection\n   */\n  microphones?: OptionsDevice[];\n  /**\n   * Available speakers for selection\n   */\n  speakers?: OptionsDevice[];\n  /**\n   * Microphone that is shown as currently selected\n   */\n  selectedMicrophone?: OptionsDevice;\n  /**\n   * Speaker that is shown as currently selected\n   */\n  selectedSpeaker?: OptionsDevice;\n  /**\n   * Speaker when a speaker is selected\n   */\n  onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n  /**\n   * Callback when a microphone is selected\n   */\n  onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n  userSetGalleryLayout?: VideoGalleryLayout;\n  /**\n   * Callback for when the gallery layout is changed\n   */\n  onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n  /**\n   * Callback to hide and show the dialpad in the more drawer\n   */\n  onSetDialpadPage?: () => void;\n  /**\n   * Whether the dialpad is present in the call\n   */\n  dtmfDialerPresent?: boolean;\n}\n\n/** @private */\nexport interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {\n  onLightDismiss: () => void;\n  onPeopleButtonClicked: () => void;\n  callControls?: boolean | CommonCallControlOptions;\n  onClickShowDialpad?: () => void;\n  isCaptionsSupported?: boolean;\n  strings: MoreDrawerStrings;\n  disableButtonsForHoldScreen?: boolean;\n  useTeamsCaptions?: boolean;\n  reactionResources?: ReactionResources;\n  onReactionClick?: (reaction: string) => Promise<void>;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  onClickMeetingPhoneInfo?: () => void;\n  /* @conditional-compile-remove(soft-mute) */\n  onMuteAllRemoteParticipants?: () => void;\n}\n\nconst inferCallWithChatControlOptions = (\n  callWithChatControls?: boolean | CommonCallControlOptions\n): CommonCallControlOptions | false => {\n  if (callWithChatControls === false) {\n    return false;\n  }\n  const options = callWithChatControls === true || callWithChatControls === undefined ? {} : callWithChatControls;\n  return options;\n};\n\n/** @private */\nexport const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {\n  const theme = useTheme();\n  const callAdapter = useAdapter();\n  const drawerMenuItems: DrawerMenuItemProps[] = [];\n\n  const { speakers, onSelectSpeaker, onLightDismiss } = props;\n\n  const localeStrings = useLocale();\n  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  const holdButtonProps = usePropsFor(HoldButton);\n\n  const callees = useSelector(getTargetCallees);\n  const allowDtmfDialer = showDtmfDialer(callees);\n  const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n  const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;\n\n  const onSpeakerItemClick = useCallback(\n    (\n      _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n      itemKey: string | undefined\n    ) => {\n      const selected = speakers?.find((speaker) => speaker.id === itemKey);\n      if (selected) {\n        // This is unsafe - we're only passing in part of the argument to the handler.\n        // But this is a known issue in our state.\n        onSelectSpeaker(selected as AudioDeviceInfo);\n      }\n      onLightDismiss();\n    },\n    [speakers, onSelectSpeaker, onLightDismiss]\n  );\n\n  const drawerSelectionOptions = inferCallWithChatControlOptions(props.callControls);\n\n  const showCaptionsButton =\n    props.isCaptionsSupported &&\n    /* @conditional-compile-remove(acs-close-captions) */ drawerSelectionOptions !== false &&\n    /* @conditional-compile-remove(acs-close-captions) */ isEnabled(drawerSelectionOptions.captionsButton);\n\n  if (props.reactionResources !== undefined) {\n    drawerMenuItems.push({\n      itemKey: 'reactions',\n      onRendererContent: () => (\n        <_ReactionDrawerMenuItem\n          onReactionClick={async (reaction) => {\n            props.onReactionClick?.(reaction);\n            onLightDismiss();\n          }}\n          reactionResources={props.reactionResources}\n        />\n      )\n    });\n  }\n\n  if (props.speakers && props.speakers.length > 0) {\n    drawerMenuItems.push({\n      itemKey: 'speakers',\n      disabled: props.disableButtonsForHoldScreen,\n      text: props.strings.speakerMenuTitle,\n      iconProps: { iconName: 'MoreDrawerSpeakers' },\n      subMenuProps: props.speakers.map((speaker) => ({\n        itemKey: speaker.id,\n        iconProps: {\n          iconName: isDeviceSelected(speaker, props.selectedSpeaker)\n            ? 'MoreDrawerSelectedSpeaker'\n            : 'MoreDrawerSpeakers'\n        },\n        text: speaker.name,\n        onItemClick: onSpeakerItemClick,\n        secondaryIconProps: isDeviceSelected(speaker, props.selectedSpeaker) ? { iconName: 'Accept' } : undefined\n      })),\n      secondaryText: props.selectedSpeaker?.name\n    });\n  }\n\n  const { microphones, onSelectMicrophone } = props;\n  const onMicrophoneItemClick = useCallback(\n    (\n      _ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | undefined,\n      itemKey: string | undefined\n    ) => {\n      const selected = microphones?.find((mic) => mic.id === itemKey);\n      if (selected) {\n        // This is unsafe - we're only passing in part of the argument to the handler.\n        // But this is a known issue in our state.\n        onSelectMicrophone(selected as AudioDeviceInfo);\n      }\n      onLightDismiss();\n    },\n    [microphones, onSelectMicrophone, onLightDismiss]\n  );\n\n  if (props.microphones && props.microphones.length > 0) {\n    // Set props as Microphone if speakers can be enumerated else set as Audio Device\n    const speakersAvailable = props.speakers && props.speakers.length > 0;\n    const itemKey = speakersAvailable ? 'microphones' : 'audioDevices';\n    const text = speakersAvailable ? props.strings.microphoneMenuTitle : props.strings.audioDeviceMenuTitle;\n    const iconName = speakersAvailable ? 'MoreDrawerMicrophones' : 'MoreDrawerSpeakers';\n    const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';\n\n    drawerMenuItems.push({\n      itemKey: itemKey,\n      disabled: props.disableButtonsForHoldScreen,\n      text: text,\n      iconProps: { iconName: iconName },\n      subMenuProps: props.microphones.map((mic) => ({\n        itemKey: mic.id,\n        iconProps: {\n          iconName: isDeviceSelected(mic, props.selectedMicrophone) ? selectedIconName : iconName\n        },\n        text: mic.name,\n        onItemClick: onMicrophoneItemClick,\n        secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,\n        disabled: drawerSelectionOptions !== false ? isDisabled(drawerSelectionOptions.microphoneButton) : undefined\n      })),\n      secondaryText: props.selectedMicrophone?.name\n    });\n  }\n\n  const dtmfDialerScreenOption = {\n    itemKey: 'dtmfDialerScreenKey',\n    text: !dtmfDialerChecked\n      ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n      : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n    onItemClick: () => {\n      if (props.onSetDialpadPage) {\n        props.onSetDialpadPage();\n      }\n      setDtmfDialerChecked(!dtmfDialerChecked);\n      onLightDismiss();\n    },\n    iconProps: {\n      iconName: 'DtmfDialpadButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n   */\n  if (props.onSetDialpadPage && allowDtmfDialer) {\n    drawerMenuItems.push(dtmfDialerScreenOption);\n  }\n\n  const galleryLayoutOptions = {\n    itemKey: 'galleryPositionKey',\n    iconProps: {\n      iconName: 'GalleryOptions',\n      styles: { root: { lineHeight: 0 } }\n    },\n    disabled: props.disableButtonsForHoldScreen,\n    text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n    subMenuProps: [\n      {\n        itemKey: 'dynamicSelectionKey',\n        text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n        onItemClick: () => {\n          props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n          onLightDismiss();\n        },\n        iconProps: {\n          iconName: 'FloatingLocalVideoGalleryLayout',\n          styles: { root: { lineHeight: 0 } }\n        },\n        secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? { iconName: 'Accept' } : undefined\n      },\n      {\n        itemKey: 'focusedContentSelectionKey',\n        text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n        onItemClick: () => {\n          props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n          onLightDismiss();\n        },\n        iconProps: {\n          iconName: 'FocusedContentGalleryLayout',\n          styles: { root: { lineHeight: 0 } }\n        },\n        secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? { iconName: 'Accept' } : undefined\n      }\n    ]\n  };\n\n  /* @conditional-compile-remove(gallery-layout-composite) */\n  const galleryOption = {\n    itemKey: 'defaultSelectionKey',\n    text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n    onItemClick: () => {\n      props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n      onLightDismiss();\n    },\n    iconProps: {\n      iconName: 'DefaultGalleryLayout',\n      styles: { root: { lineHeight: 0 } }\n    },\n    secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined\n  };\n\n  /* @conditional-compile-remove(gallery-layout-composite) */\n  galleryLayoutOptions.subMenuProps?.push(galleryOption);\n\n  drawerMenuItems.push(galleryLayoutOptions);\n\n  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.peopleButton)) {\n    drawerMenuItems.push({\n      itemKey: 'people',\n      id: 'call-composite-drawer-people-button',\n      text: props.strings.peopleButtonLabel,\n      iconProps: { iconName: 'MoreDrawerPeople' },\n      onItemClick: props.onPeopleButtonClicked,\n      disabled: isDisabled(drawerSelectionOptions.peopleButton) || props.disableButtonsForHoldScreen\n    });\n  }\n\n  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions?.holdButton)) {\n    drawerMenuItems.push({\n      itemKey: 'holdButtonKey',\n      disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.holdButton),\n      text: localeStrings.component.strings.holdButton.tooltipOffContent,\n      onItemClick: () => {\n        holdButtonProps.onToggleHold();\n        onLightDismiss();\n      },\n      iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }\n    });\n  }\n\n  const role = callAdapter.getState().call?.role;\n  const hideRaiseHandButtonInRoomsCall =\n    callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);\n\n  if (\n    drawerSelectionOptions !== false &&\n    isEnabled(drawerSelectionOptions?.raiseHandButton) &&\n    !hideRaiseHandButtonInRoomsCall\n  ) {\n    const raiseHandIcon = raiseHandButtonProps.checked ? 'LowerHandContextualMenuItem' : 'RaiseHandContextualMenuItem';\n    drawerMenuItems.push({\n      itemKey: 'raiseHandButtonKey',\n      disabled: props.disableButtonsForHoldScreen || isDisabled(drawerSelectionOptions.raiseHandButton),\n      text: raiseHandButtonProps.checked\n        ? localeStrings.component.strings.raiseHandButton.onLabel\n        : localeStrings.component.strings.raiseHandButton.offLabel,\n      onItemClick: () => {\n        if (raiseHandButtonProps.onToggleRaiseHand) {\n          raiseHandButtonProps.onToggleRaiseHand();\n        }\n        onLightDismiss();\n      },\n      iconProps: {\n        iconName: raiseHandIcon,\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n  }\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  if (\n    drawerSelectionOptions !== false &&\n    isEnabled(drawerSelectionOptions?.teamsMeetingPhoneCallButton) &&\n    isTeamsMeeting &&\n    teamsMeetingCoordinates\n  ) {\n    drawerMenuItems.push({\n      itemKey: 'phoneCallInfoKey',\n      disabled: isDisabled(drawerSelectionOptions.teamsMeetingPhoneCallButton),\n      text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n      onItemClick: () => {\n        props.onClickMeetingPhoneInfo?.();\n        onLightDismiss();\n      },\n      iconProps: {\n        iconName: 'PhoneNumberButton',\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n  }\n\n  //Captions drawer menu\n  const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;\n\n  //Captions drawer menu\n  const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;\n\n  const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);\n\n  const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n\n  const captionSettingsHandlers = useHandlers(_CaptionsSettingsModal);\n\n  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = useState<boolean>(false);\n\n  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = useState<boolean>(false);\n\n  const [currentSpokenLanguage, setCurrentSpokenLanguage] = useState<keyof SpokenLanguageStrings>(\n    captionSettingsProp.currentSpokenLanguage ?? 'en-us'\n  );\n\n  const [currentCaptionLanguage, setCurrentCaptionLanguage] = useState<keyof CaptionLanguageStrings>(\n    captionSettingsProp.currentCaptionLanguage ?? _spokenLanguageToCaptionLanguage[currentSpokenLanguage]\n  );\n\n  const onToggleChange = useCallback(async () => {\n    if (!captionSettingsProp.isCaptionsFeatureActive) {\n      await startCaptionsButtonHandlers.onStartCaptions({\n        spokenLanguage: currentSpokenLanguage\n      });\n    } else {\n      startCaptionsButtonHandlers.onStopCaptions();\n    }\n  }, [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);\n\n  if (showCaptionsButton) {\n    const captionsDrawerItems: DrawerMenuItemProps[] = [];\n\n    const spokenLanguageString = supportedSpokenLanguageStrings\n      ? supportedSpokenLanguageStrings[currentSpokenLanguage]\n      : currentSpokenLanguage;\n\n    drawerMenuItems.push({\n      itemKey: 'captions',\n      id: 'common-call-composite-captions-button',\n      disabled: props.disableButtonsForHoldScreen,\n      text: props.strings.captionsMenuTitle,\n      iconProps: { iconName: 'CaptionsIcon' },\n      subMenuProps: captionsDrawerItems\n    });\n\n    captionsDrawerItems.push({\n      itemKey: 'ToggleCaptionsKey',\n      text: captionSettingsProp.isCaptionsFeatureActive\n        ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n        : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n      iconProps: {\n        iconName: captionSettingsProp.isCaptionsFeatureActive ? 'CaptionsOffIcon' : 'CaptionsIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      onItemClick: onToggleChange,\n      disabled: props.disableButtonsForHoldScreen,\n      secondaryComponent: (\n        <Stack verticalFill verticalAlign=\"center\">\n          <Toggle\n            id=\"common-call-composite-captions-toggle-button\"\n            checked={captionSettingsProp.isCaptionsFeatureActive}\n            styles={themedToggleButtonStyle(theme, captionSettingsProp.isCaptionsFeatureActive)}\n            onChange={onToggleChange}\n          />\n        </Stack>\n      )\n    });\n\n    captionsDrawerItems.push({\n      itemKey: 'ChangeSpokenLanguage',\n      text: props.strings.spokenLanguageMenuTitle,\n      id: 'common-call-composite-captions-spoken-settings-button',\n      secondaryText: spokenLanguageString,\n      iconProps: {\n        iconName: 'ChangeSpokenLanguageIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n      onItemClick: () => {\n        setIsSpokenLanguageDrawerOpen(true);\n      },\n      secondaryIconProps: {\n        iconName: 'ChevronRight',\n        styles: { root: { lineHeight: 0 } }\n      }\n    });\n\n    if (props.useTeamsCaptions) {\n      const captionLanguageString = supportedCaptionLanguageStrings\n        ? supportedCaptionLanguageStrings[currentCaptionLanguage]\n        : currentCaptionLanguage;\n\n      captionsDrawerItems.push({\n        itemKey: 'ChangeCaptionLanguage',\n        text: props.strings.captionLanguageMenuTitle,\n        id: 'common-call-composite-captions-subtitle-settings-button',\n        secondaryText: captionLanguageString,\n        iconProps: {\n          iconName: 'ChangeCaptionLanguageIcon',\n          styles: { root: { lineHeight: 0 } }\n        },\n        disabled: props.disableButtonsForHoldScreen || !captionSettingsProp.isCaptionsFeatureActive,\n        onItemClick: () => {\n          setIsCaptionLanguageDrawerOpen(true);\n        },\n        secondaryIconProps: {\n          iconName: 'ChevronRight',\n          styles: { root: { lineHeight: 0 } }\n        }\n      });\n    }\n  }\n\n  const customDrawerButtons = useMemo(\n    () =>\n      generateCustomCallDrawerButtons(\n        onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined),\n        drawerSelectionOptions !== false ? drawerSelectionOptions?.displayType : undefined\n      ),\n    [drawerSelectionOptions]\n  );\n\n  customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n  customDrawerButtons['secondary'].forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n  customDrawerButtons['overflow'].forEach((element) => {\n    drawerMenuItems.push(element);\n  });\n\n  return (\n    <>\n      {isSpokenLanguageDrawerOpen && showCaptionsButton && (\n        <SpokenLanguageSettingsDrawer\n          onLightDismiss={props.onLightDismiss}\n          selectLanguage={setCurrentSpokenLanguage}\n          setCurrentLanguage={captionSettingsHandlers.onSetSpokenLanguage}\n          currentLanguage={currentSpokenLanguage}\n          strings={{ menuTitle: props.strings.spokenLanguageMenuTitle }}\n          supportedLanguageStrings={supportedSpokenLanguageStrings}\n        />\n      )}\n      {isCaptionLanguageDrawerOpen && showCaptionsButton && (\n        <CaptionLanguageSettingsDrawer\n          onLightDismiss={props.onLightDismiss}\n          selectLanguage={setCurrentCaptionLanguage}\n          setCurrentLanguage={captionSettingsHandlers.onSetCaptionLanguage}\n          currentLanguage={currentCaptionLanguage}\n          strings={{ menuTitle: props.strings.captionLanguageMenuTitle }}\n          supportedLanguageStrings={supportedCaptionLanguageStrings}\n        />\n      )}\n      {!isSpokenLanguageDrawerOpen && !isCaptionLanguageDrawerOpen && (\n        <DrawerMenu items={drawerMenuItems} onLightDismiss={props.onLightDismiss} />\n      )}\n    </>\n  );\n};\n\nconst isDeviceSelected = (speaker: OptionsDevice, selectedSpeaker?: OptionsDevice): boolean =>\n  !!selectedSpeaker && speaker.id === selectedSpeaker.id;\n\nconst isEnabled = (option: unknown): boolean => option !== false;\n"]}
         
     | 
| 
         @@ -1,14 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import React from 'react';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { ActiveErrorMessage } from "../../../../react-components/src";
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { ActiveNotification } from "../../../../react-components/src";
         
     | 
| 
       4 
5 
     | 
    
         
             
            /**
         
     | 
| 
       5 
6 
     | 
    
         
             
             * Pane that is used to show video effects button
         
     | 
| 
       6 
7 
     | 
    
         
             
             * @private
         
     | 
| 
       7 
8 
     | 
    
         
             
             */
         
     | 
| 
       8 
9 
     | 
    
         
             
            /** @beta */
         
     | 
| 
       9 
10 
     | 
    
         
             
            export declare const VideoEffectsPaneContent: (props: {
         
     | 
| 
       10 
     | 
    
         
            -
                activeVideoEffectError?: ActiveErrorMessage;
         
     | 
| 
       11 
     | 
    
         
            -
                onDismissError: (error: ActiveErrorMessage) => void;
         
     | 
| 
      
 11 
     | 
    
         
            +
                activeVideoEffectError?: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification;
         
     | 
| 
      
 12 
     | 
    
         
            +
                onDismissError: (error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification) => void;
         
     | 
| 
       12 
13 
     | 
    
         
             
                activeVideoEffectChange: (effect: ActiveVideoEffect) => void;
         
     | 
| 
       13 
14 
     | 
    
         
             
                updateFocusHandle: React.RefObject<{
         
     | 
| 
       14 
15 
     | 
    
         
             
                    focus: () => void;
         
     | 
| 
         @@ -10,6 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge 
     | 
|
| 
       10 
10 
     | 
    
         
             
                });
         
     | 
| 
       11 
11 
     | 
    
         
             
            };
         
     | 
| 
       12 
12 
     | 
    
         
             
            import React from 'react';
         
     | 
| 
      
 13 
     | 
    
         
            +
            /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 14 
     | 
    
         
            +
            import { useState } from 'react';
         
     | 
| 
       13 
15 
     | 
    
         
             
            import { useCallback, useMemo } from 'react';
         
     | 
| 
       14 
16 
     | 
    
         
             
            import { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';
         
     | 
| 
       15 
17 
     | 
    
         
             
            import { useLocale } from '../localization';
         
     | 
| 
         @@ -18,6 +20,8 @@ import { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/ 
     | 
|
| 
       18 
20 
     | 
    
         
             
            import { useSelector } from '../CallComposite/hooks/useSelector';
         
     | 
| 
       19 
21 
     | 
    
         
             
            import { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';
         
     | 
| 
       20 
22 
     | 
    
         
             
            import { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';
         
     | 
| 
      
 23 
     | 
    
         
            +
            /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 24 
     | 
    
         
            +
            import { NotificationBar } from "../../../../react-components/src";
         
     | 
| 
       21 
25 
     | 
    
         
             
            /**
         
     | 
| 
       22 
26 
     | 
    
         
             
             * Pane that is used to show video effects button
         
     | 
| 
       23 
27 
     | 
    
         
             
             * @private
         
     | 
| 
         @@ -117,13 +121,47 @@ export const VideoEffectsPaneContent = (props) => { 
     | 
|
| 
       117 
121 
     | 
    
         
             
                return VideoEffectsPaneTrampoline(onDismissError, props.updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange);
         
     | 
| 
       118 
122 
     | 
    
         
             
            };
         
     | 
| 
       119 
123 
     | 
    
         
             
            const VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange) => {
         
     | 
| 
      
 124 
     | 
    
         
            +
                var _a, _b;
         
     | 
| 
       120 
125 
     | 
    
         
             
                const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);
         
     | 
| 
       121 
126 
     | 
    
         
             
                const isCameraOn = useSelector(localVideoSelector).isAvailable;
         
     | 
| 
       122 
127 
     | 
    
         
             
                const showWarning = !isCameraOn && selectedEffect !== 'none';
         
     | 
| 
       123 
128 
     | 
    
         
             
                const locale = useLocale();
         
     | 
| 
      
 129 
     | 
    
         
            +
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 130 
     | 
    
         
            +
                const videoEffectErrorStrings = {
         
     | 
| 
      
 131 
     | 
    
         
            +
                    title: (_a = locale.strings.call.unableToStartVideoEffect) !== null && _a !== void 0 ? _a : '',
         
     | 
| 
      
 132 
     | 
    
         
            +
                    closeButtonAriaLabel: locale.strings.call.close
         
     | 
| 
      
 133 
     | 
    
         
            +
                };
         
     | 
| 
      
 134 
     | 
    
         
            +
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 135 
     | 
    
         
            +
                const warningStrings = {
         
     | 
| 
      
 136 
     | 
    
         
            +
                    title: (_b = locale.strings.call.cameraOffBackgroundEffectWarningText) !== null && _b !== void 0 ? _b : '',
         
     | 
| 
      
 137 
     | 
    
         
            +
                    closeButtonAriaLabel: locale.strings.call.close
         
     | 
| 
      
 138 
     | 
    
         
            +
                };
         
     | 
| 
      
 139 
     | 
    
         
            +
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 140 
     | 
    
         
            +
                const [errorNotificationDismissed, setErrorNotificationDismissed] = useState(false);
         
     | 
| 
      
 141 
     | 
    
         
            +
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 142 
     | 
    
         
            +
                const [warningNotificationDismissed, setWarningNotificationDismissed] = useState(false);
         
     | 
| 
      
 143 
     | 
    
         
            +
                const videoEffectErrorTrampoline = () => {
         
     | 
| 
      
 144 
     | 
    
         
            +
                    /* @conditional-compile-remove(notifications) */
         
     | 
| 
      
 145 
     | 
    
         
            +
                    return (React.createElement(React.Fragment, null,
         
     | 
| 
      
 146 
     | 
    
         
            +
                        activeVideoEffectError && isCameraOn && !errorNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
         
     | 
| 
      
 147 
     | 
    
         
            +
                                if (activeVideoEffectError) {
         
     | 
| 
      
 148 
     | 
    
         
            +
                                    onDismissError(activeVideoEffectError);
         
     | 
| 
      
 149 
     | 
    
         
            +
                                }
         
     | 
| 
      
 150 
     | 
    
         
            +
                                setErrorNotificationDismissed(true);
         
     | 
| 
      
 151 
     | 
    
         
            +
                            }, notificationBarStrings: videoEffectErrorStrings })),
         
     | 
| 
      
 152 
     | 
    
         
            +
                        showWarning && !warningNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
         
     | 
| 
      
 153 
     | 
    
         
            +
                                setWarningNotificationDismissed(true);
         
     | 
| 
      
 154 
     | 
    
         
            +
                            }, notificationBarStrings: warningStrings }))));
         
     | 
| 
      
 155 
     | 
    
         
            +
                    return (React.createElement(React.Fragment, null,
         
     | 
| 
      
 156 
     | 
    
         
            +
                        activeVideoEffectError && isCameraOn && (React.createElement(MessageBar, { messageBarType: MessageBarType.error, onDismiss: () => {
         
     | 
| 
      
 157 
     | 
    
         
            +
                                if (activeVideoEffectError) {
         
     | 
| 
      
 158 
     | 
    
         
            +
                                    onDismissError(activeVideoEffectError);
         
     | 
| 
      
 159 
     | 
    
         
            +
                                }
         
     | 
| 
      
 160 
     | 
    
         
            +
                            } }, locale.strings.call.unableToStartVideoEffect)),
         
     | 
| 
      
 161 
     | 
    
         
            +
                        showWarning && (React.createElement(MessageBar, { messageBarType: MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText))));
         
     | 
| 
      
 162 
     | 
    
         
            +
                };
         
     | 
| 
       124 
163 
     | 
    
         
             
                return (React.createElement(Stack, { tokens: { childrenGap: '0.75rem' }, className: mergeStyles({ paddingLeft: '0.5rem' }) },
         
     | 
| 
       125 
     | 
    
         
            -
                     
     | 
| 
       126 
     | 
    
         
            -
                    showWarning && (React.createElement(MessageBar, { messageBarType: MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText)),
         
     | 
| 
      
 164 
     | 
    
         
            +
                    videoEffectErrorTrampoline(),
         
     | 
| 
       127 
165 
     | 
    
         
             
                    React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle })));
         
     | 
| 
       128 
166 
     | 
    
         
             
                return React.createElement(React.Fragment, null);
         
     | 
| 
       129 
167 
     | 
    
         
             
            };
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';\n\nimport { useLocale } from '../localization';\nimport { ActiveErrorMessage, _VideoEffectsItemProps } from '@internal/react-components';\n\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n\nimport {\n  VideoBackgroundImage,\n  VideoBackgroundBlurEffect,\n  VideoBackgroundNoEffect,\n  VideoBackgroundReplacementEffect\n} from '../CallComposite';\n\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\n\nimport { useSelector } from '../CallComposite/hooks/useSelector';\n\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\n\nimport { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';\nimport { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPaneContent = (props: {\n  activeVideoEffectError?: ActiveErrorMessage;\n  onDismissError: (error: ActiveErrorMessage) => void;\n  activeVideoEffectChange: (effect: ActiveVideoEffect) => void;\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>;\n}): JSX.Element => {\n  const {\n    onDismissError,\n    activeVideoEffectError,\n\n    activeVideoEffectChange\n  } = props;\n\n  const locale = useLocale();\n\n  const adapter = useAdapter();\n\n  const strings = locale.strings.call;\n\n  const activeVideoEffects = useSelector(localVideoSelector).activeVideoEffects?.activeEffects;\n\n  const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n    const videoEffects: _VideoEffectsItemProps[] = [\n      {\n        itemKey: 'none',\n        iconProps: {\n          iconName: 'RemoveVideoBackgroundEffect'\n        },\n        title: strings.removeBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.removeBackgroundTooltip\n        }\n      },\n      {\n        itemKey: 'blur',\n        iconProps: {\n          iconName: 'BlurVideoBackground'\n        },\n        title: strings.blurBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.blurBackgroundTooltip\n        }\n      }\n    ];\n    const videoEffectImages = adapter.getState().videoBackgroundImages;\n\n    if (videoEffectImages) {\n      videoEffectImages.forEach((img: VideoBackgroundImage) => {\n        videoEffects.push({\n          itemKey: img.key,\n          backgroundProps: {\n            url: img.url\n          },\n          tooltipProps: {\n            content: img.tooltipText ?? ''\n          }\n        });\n      });\n    }\n    return videoEffects;\n  }, [strings, adapter]);\n\n  const onEffectChange = useCallback(\n    async (effectKey: string) => {\n      if (effectKey === 'blur') {\n        const blurEffect: VideoBackgroundBlurEffect = {\n          effectName: effectKey\n        };\n        activeVideoEffectChange({\n          type: 'blur',\n          timestamp: new Date(Date.now())\n        });\n        await adapter.startVideoBackgroundEffect(blurEffect);\n        adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n      } else if (effectKey === 'none') {\n        const noneEffect: VideoBackgroundNoEffect = {\n          effectName: effectKey\n        };\n        await adapter.stopVideoBackgroundEffects();\n        adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n      } else {\n        const backgroundImg = selectableVideoEffects.find((effect) => {\n          return effect.itemKey === effectKey;\n        });\n        if (backgroundImg && backgroundImg.backgroundProps) {\n          const replaceEffect: VideoBackgroundReplacementEffect = {\n            effectName: 'replacement',\n            key: effectKey,\n            backgroundImageUrl: backgroundImg.backgroundProps.url\n          };\n          activeVideoEffectChange({\n            type: 'replacement',\n            timestamp: new Date(Date.now())\n          });\n          await adapter.startVideoBackgroundEffect(replaceEffect);\n          adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n        }\n      }\n    },\n    [adapter, activeVideoEffectChange, selectableVideoEffects]\n  );\n\n  if (activeVideoEffectError && activeVideoEffects && activeVideoEffects.length === 0) {\n    const noneEffect: VideoBackgroundNoEffect = {\n      effectName: 'none'\n    };\n    adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n  }\n\n  return VideoEffectsPaneTrampoline(\n    onDismissError,\n    props.updateFocusHandle,\n    activeVideoEffectError,\n    selectableVideoEffects,\n    onEffectChange\n  );\n};\n\nconst VideoEffectsPaneTrampoline = (\n  onDismissError: (error: ActiveErrorMessage) => void,\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>,\n  activeVideoEffectError?: ActiveErrorMessage,\n  selectableVideoEffects?: _VideoEffectsItemProps[],\n  onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n  const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n\n  const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n  const showWarning = !isCameraOn && selectedEffect !== 'none';\n\n  const locale = useLocale();\n\n  return (\n    <Stack tokens={{ childrenGap: '0.75rem' }} className={mergeStyles({ paddingLeft: '0.5rem' })}>\n      {activeVideoEffectError && isCameraOn && (\n        <MessageBar messageBarType={MessageBarType.error} onDismiss={() => onDismissError(activeVideoEffectError)}>\n          {locale.strings.call.unableToStartVideoEffect}\n        </MessageBar>\n      )}\n      {showWarning && (\n        <MessageBar messageBarType={MessageBarType.warning}>\n          {locale.strings.call.cameraOffBackgroundEffectWarningText}\n        </MessageBar>\n      )}\n      <_VideoBackgroundEffectsPicker\n        label={locale.strings.call.videoEffectsPaneBackgroundSelectionTitle}\n        styles={backgroundPickerStyles}\n        options={selectableVideoEffects ?? []}\n        onChange={onEffectChange}\n        selectedEffectKey={selectedEffect}\n        componentRef={updateFocusHandle}\n      />\n    </Stack>\n  );\n  return <></>;\n};\n\nconst backgroundPickerStyles = {\n  label: {\n    fontSize: '0.75rem',\n    lineHeight: '0.5rem',\n    fontWeight: '400'\n  }\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n\n/* @conditional-compile-remove(notifications) */\nimport { useState } from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';\n\nimport { useLocale } from '../localization';\nimport { ActiveErrorMessage, _VideoEffectsItemProps } from '@internal/react-components';\n\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n\nimport {\n  VideoBackgroundImage,\n  VideoBackgroundBlurEffect,\n  VideoBackgroundNoEffect,\n  VideoBackgroundReplacementEffect\n} from '../CallComposite';\n\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\n\nimport { useSelector } from '../CallComposite/hooks/useSelector';\n\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\n\nimport { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';\nimport { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification, NotificationBar, NotificationBarStrings } from '@internal/react-components';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPaneContent = (props: {\n  activeVideoEffectError?: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification;\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => void;\n  activeVideoEffectChange: (effect: ActiveVideoEffect) => void;\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>;\n}): JSX.Element => {\n  const { onDismissError, activeVideoEffectError, activeVideoEffectChange } = props;\n\n  const locale = useLocale();\n\n  const adapter = useAdapter();\n\n  const strings = locale.strings.call;\n\n  const activeVideoEffects = useSelector(localVideoSelector).activeVideoEffects?.activeEffects;\n\n  const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n    const videoEffects: _VideoEffectsItemProps[] = [\n      {\n        itemKey: 'none',\n        iconProps: {\n          iconName: 'RemoveVideoBackgroundEffect'\n        },\n        title: strings.removeBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.removeBackgroundTooltip\n        }\n      },\n      {\n        itemKey: 'blur',\n        iconProps: {\n          iconName: 'BlurVideoBackground'\n        },\n        title: strings.blurBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.blurBackgroundTooltip\n        }\n      }\n    ];\n    const videoEffectImages = adapter.getState().videoBackgroundImages;\n\n    if (videoEffectImages) {\n      videoEffectImages.forEach((img: VideoBackgroundImage) => {\n        videoEffects.push({\n          itemKey: img.key,\n          backgroundProps: {\n            url: img.url\n          },\n          tooltipProps: {\n            content: img.tooltipText ?? ''\n          }\n        });\n      });\n    }\n    return videoEffects;\n  }, [strings, adapter]);\n\n  const onEffectChange = useCallback(\n    async (effectKey: string) => {\n      if (effectKey === 'blur') {\n        const blurEffect: VideoBackgroundBlurEffect = {\n          effectName: effectKey\n        };\n        activeVideoEffectChange({\n          type: 'blur',\n          timestamp: new Date(Date.now())\n        });\n        await adapter.startVideoBackgroundEffect(blurEffect);\n        adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n      } else if (effectKey === 'none') {\n        const noneEffect: VideoBackgroundNoEffect = {\n          effectName: effectKey\n        };\n        await adapter.stopVideoBackgroundEffects();\n        adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n      } else {\n        const backgroundImg = selectableVideoEffects.find((effect) => {\n          return effect.itemKey === effectKey;\n        });\n        if (backgroundImg && backgroundImg.backgroundProps) {\n          const replaceEffect: VideoBackgroundReplacementEffect = {\n            effectName: 'replacement',\n            key: effectKey,\n            backgroundImageUrl: backgroundImg.backgroundProps.url\n          };\n          activeVideoEffectChange({\n            type: 'replacement',\n            timestamp: new Date(Date.now())\n          });\n          await adapter.startVideoBackgroundEffect(replaceEffect);\n          adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n        }\n      }\n    },\n    [adapter, activeVideoEffectChange, selectableVideoEffects]\n  );\n\n  if (activeVideoEffectError && activeVideoEffects && activeVideoEffects.length === 0) {\n    const noneEffect: VideoBackgroundNoEffect = {\n      effectName: 'none'\n    };\n    adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n  }\n\n  return VideoEffectsPaneTrampoline(\n    onDismissError,\n    props.updateFocusHandle,\n    activeVideoEffectError,\n    selectableVideoEffects,\n    onEffectChange\n  );\n};\n\nconst VideoEffectsPaneTrampoline = (\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => void,\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>,\n  activeVideoEffectError?: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification,\n  selectableVideoEffects?: _VideoEffectsItemProps[],\n  onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n  const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n\n  const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n  const showWarning = !isCameraOn && selectedEffect !== 'none';\n\n  const locale = useLocale();\n  /* @conditional-compile-remove(notifications) */\n  const videoEffectErrorStrings: NotificationBarStrings = {\n    title: locale.strings.call.unableToStartVideoEffect ?? '',\n    closeButtonAriaLabel: locale.strings.call.close\n  };\n  /* @conditional-compile-remove(notifications) */\n  const warningStrings: NotificationBarStrings = {\n    title: locale.strings.call.cameraOffBackgroundEffectWarningText ?? '',\n    closeButtonAriaLabel: locale.strings.call.close\n  };\n\n  /* @conditional-compile-remove(notifications) */\n  const [errorNotificationDismissed, setErrorNotificationDismissed] = useState(false);\n  /* @conditional-compile-remove(notifications) */\n  const [warningNotificationDismissed, setWarningNotificationDismissed] = useState(false);\n\n  const videoEffectErrorTrampoline = (): JSX.Element => {\n    /* @conditional-compile-remove(notifications) */\n    return (\n      <>\n        {activeVideoEffectError && isCameraOn && !errorNotificationDismissed && (\n          <NotificationBar\n            onDismiss={() => {\n              if (activeVideoEffectError) {\n                onDismissError(activeVideoEffectError);\n              }\n              setErrorNotificationDismissed(true);\n            }}\n            notificationBarStrings={videoEffectErrorStrings}\n          />\n        )}\n        {showWarning && !warningNotificationDismissed && (\n          <NotificationBar\n            onDismiss={() => {\n              setWarningNotificationDismissed(true);\n            }}\n            notificationBarStrings={warningStrings}\n          />\n        )}\n      </>\n    );\n\n    return (\n      <>\n        {activeVideoEffectError && isCameraOn && (\n          <MessageBar\n            messageBarType={MessageBarType.error}\n            onDismiss={() => {\n              if (activeVideoEffectError) {\n                onDismissError(activeVideoEffectError);\n              }\n            }}\n          >\n            {locale.strings.call.unableToStartVideoEffect}\n          </MessageBar>\n        )}\n        {showWarning && (\n          <MessageBar messageBarType={MessageBarType.warning}>\n            {locale.strings.call.cameraOffBackgroundEffectWarningText}\n          </MessageBar>\n        )}\n      </>\n    );\n  };\n\n  return (\n    <Stack tokens={{ childrenGap: '0.75rem' }} className={mergeStyles({ paddingLeft: '0.5rem' })}>\n      {videoEffectErrorTrampoline()}\n      <_VideoBackgroundEffectsPicker\n        label={locale.strings.call.videoEffectsPaneBackgroundSelectionTitle}\n        styles={backgroundPickerStyles}\n        options={selectableVideoEffects ?? []}\n        onChange={onEffectChange}\n        selectedEffectKey={selectedEffect}\n        componentRef={updateFocusHandle}\n      />\n    </Stack>\n  );\n  return <></>;\n};\n\nconst backgroundPickerStyles = {\n  label: {\n    fontSize: '0.75rem',\n    lineHeight: '0.5rem',\n    fontWeight: '400'\n  }\n};\n"]}
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "إخفاء لوحة الطلب",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "عرض لوحة الطلب",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "إخفاء لوحة الطلب",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "مكالمة هاتفية",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "العربية - الإمارات العربية المتحدة",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "العربية - السعودية",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "هل تريد بالتأكيد مغادرة المكالمة؟",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "هل تريد إنهاء المكالمة؟",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "ستنهي المكالمة لدى الجميع.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "معرف اجتماع أو رمز مرور غير صالح"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "معرف اجتماع أو رمز مرور غير صالح",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "في هذه الدردشة",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Skrýt číselník",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Zobrazit číselník",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Skrýt číselník",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Telefonní hovor",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Arabština - Spojené arabské emiráty",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Arabština - Saúdská Arábie",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Opravdu chcete hovor opustit?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "Chcete hovor ukončit?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "Hovor ukončíte pro všechny.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "Neplatné ID schůzky nebo heslo"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "Neplatné ID schůzky nebo heslo",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Připnout pro mě",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Připnout (dosáhlo se limitu)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Odepnout",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Připnout",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Odepnout"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "V tomto chatu",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Wähltastatur ausblenden",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Wähltastatur anzeigen",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Wähltastatur ausblenden",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Telefonanruf",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Arabisch – Vereinigte Arabische Emirate",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Arabisch – Saudi-Arabien",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Möchten Sie den Anruf wirklich verlassen?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "Gespräch beenden?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "Sie beenden das Gespräch für alle.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "Ungültige Besprechungs-ID oder -Kennung"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "Ungültige Besprechungs-ID oder -Kennung",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Für mich anheften",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Anheften (Limit erreicht)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Lösen",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Anheften",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Lösen"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "In diesem Chat",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Hide dialpad",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Show dialpad",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Hide dialpad",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Phone Call",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Arabic - U.A.E.",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Arabic - Saudi Arabia",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Are you sure you want to leave the call?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "End the call?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "You'll end the call for everyone.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "Invalid meeting ID or passcode"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "Invalid meeting ID or passcode",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "In this chat",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json
    CHANGED
    
    | 
         @@ -342,7 +342,12 @@ 
     | 
|
| 
       342 
342 
     | 
    
         
             
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
       343 
343 
     | 
    
         
             
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
       344 
344 
     | 
    
         
             
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
       345 
     | 
    
         
            -
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin",
         
     | 
| 
      
 346 
     | 
    
         
            +
                    "muteAllMenuLabel": "Mute all",
         
     | 
| 
      
 347 
     | 
    
         
            +
                    "muteAllDialogTitle": "Mute everyone?",
         
     | 
| 
      
 348 
     | 
    
         
            +
                    "muteAllDialogContent": "This will mute everyone in the meeting but you.",
         
     | 
| 
      
 349 
     | 
    
         
            +
                    "muteAllConfirmButtonLabel": "Mute all",
         
     | 
| 
      
 350 
     | 
    
         
            +
                    "muteAllCancelButtonLabel": "Cancel"
         
     | 
| 
       346 
351 
     | 
    
         
             
                },
         
     | 
| 
       347 
352 
     | 
    
         
             
                "chat": {
         
     | 
| 
       348 
353 
     | 
    
         
             
                    "chatListHeader": "In this chat",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Ocultar teclado de marcado",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Mostrar teclado de marcado",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Ocultar teclado de marcado",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Llamada telefónica",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Árabe - Emiratos Árabes Unidos",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Árabe - Arabia Saudí",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "¿Está seguro de que desea abandonar la llamada?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "¿Finalizar la llamada?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "Finalizará la llamada para todos los usuarios.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "Id. de reunión o código de acceso no válidos"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "Id. de reunión o código de acceso no válidos",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Anclar para mí",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (límite alcanzado)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Desanclar",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Anclar",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Desanclar"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "En este chat",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Piilota valintapaneeli",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Näytä valintapaneeli",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Piilota valintapaneeli",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Puhelu",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "arabia – Arabiemiirikunnat",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "arabia – Saudi-Arabia",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Haluatko varmasti poistua puhelusta?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "Lopetetaanko puhelu?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "Puhelu lopetetaan kaikkien osallistujien osalta.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "Virheellinen kokoustunnus tai tunnuskoodi"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "Virheellinen kokoustunnus tai tunnuskoodi",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "Tässä keskustelussa",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Masquez le pavé de numérotation",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Afficher le pavé numérique",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Masquez le pavé de numérotation",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Appel téléphonique",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Arabe – E.A.U.",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Arabe – Arabie saoudite",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Voulez-vous vraiment quitter l’appel ?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "Mettre fin à l'appel ?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "Vous mettrez fin à l'appel pour tout le monde.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "ID ou code secret de réunion non valide"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "ID ou code secret de réunion non valide",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "Dans cette conversation",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "הסתר לוח חיוג",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "הצג לוח חיוג",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "הסתר לוח חיוג",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "שיחת טלפון",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "ערבית - איחוד האמירויות",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "ערבית - ערב הסעודית",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "האם אתה בטוח שברצונך לעזוב את השיחה?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "לסיים את השיחה?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "פעולה זאת תסיים את השיחה עבור כל המשתתפים.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "מזהה פגישה או קוד סיסמה לא חוקיים"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "מזהה פגישה או קוד סיסמה לא חוקיים",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "בצ'אט זה",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "Nascondi tastierino",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "Mostra tastiera",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "Nascondi tastierino",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "Chiamata telefonica",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "Arabo - Emirati Arabi Uniti",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "Arabo - Arabia Saudita",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "Vuoi abbandonare la chiamata?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "Vuoi terminare la chiamata?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "La chiamata terminerà per tutti gli utenti.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "ID riunione o passcode non valido"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "ID riunione o passcode non valido",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "In questa chat",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "ダイヤル パッドを非表示",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "ダイヤルパッドを表示",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "ダイヤル パッドを非表示",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "電話での通話",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "アラビア語 - U.A.E.",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "アラビア語 - サウジアラビア",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "通話から退出してよろしいですか?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "通話を終了しますか?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "全員に対する通話が終了されます。",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "無効なミーティング ID またはパスコード"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "無効なミーティング ID またはパスコード",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "自分用にピン留め",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "ピン留め (上限に達しました)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "ピン留めを外す",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "ピン留めします",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "ピン留めを外す"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "このチャット内",
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json
    CHANGED
    
    | 
         @@ -135,6 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "dtmfDialerButtonTooltipOff": "다이얼패드 숨기기",
         
     | 
| 
       136 
136 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOn": "다이얼패드 표시",
         
     | 
| 
       137 
137 
     | 
    
         
             
                    "dtmfDialerMoreButtonLabelOff": "다이얼패드 숨기기",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    "phoneCallMoreButtonLabel": "전화 통화",
         
     | 
| 
       138 
139 
     | 
    
         
             
                    "spokenLanguageStrings": {
         
     | 
| 
       139 
140 
     | 
    
         
             
                        "ar-ae": "아랍어 - 아랍에미리트",
         
     | 
| 
       140 
141 
     | 
    
         
             
                        "ar-sa": "아라비아어 - 사우디 아라비아",
         
     | 
| 
         @@ -336,7 +337,12 @@ 
     | 
|
| 
       336 
337 
     | 
    
         
             
                    "leaveConfirmDialogContent": "통화에서 나가시겠습니까?",
         
     | 
| 
       337 
338 
     | 
    
         
             
                    "endCallConfirmDialogTitle": "통화를 종료하시겠습니까?",
         
     | 
| 
       338 
339 
     | 
    
         
             
                    "endCallConfirmDialogContent": "모든 사용자의 통화가 종료됩니다.",
         
     | 
| 
       339 
     | 
    
         
            -
                    "invalidMeetingIdentifier": "유효하지 않은 모임 ID 또는 암호"
         
     | 
| 
      
 340 
     | 
    
         
            +
                    "invalidMeetingIdentifier": "유효하지 않은 모임 ID 또는 암호",
         
     | 
| 
      
 341 
     | 
    
         
            +
                    "pinParticipantMenuLabel": "Pin for me",
         
     | 
| 
      
 342 
     | 
    
         
            +
                    "pinParticipantLimitReachedMenuLabel": "Pin (limit reached)",
         
     | 
| 
      
 343 
     | 
    
         
            +
                    "unpinParticipantMenuLabel": "Unpin",
         
     | 
| 
      
 344 
     | 
    
         
            +
                    "pinParticipantMenuItemAriaLabel": "Pin",
         
     | 
| 
      
 345 
     | 
    
         
            +
                    "unpinParticipantMenuItemAriaLabel": "Unpin"
         
     | 
| 
       340 
346 
     | 
    
         
             
                },
         
     | 
| 
       341 
347 
     | 
    
         
             
                "chat": {
         
     | 
| 
       342 
348 
     | 
    
         
             
                    "chatListHeader": "채팅 참가자",
         
     |