@azure/communication-react 1.3.1-alpha-202205310013.0 → 1.3.2-alpha-202206290013.0
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/CHANGELOG.json +957 -0
- package/CHANGELOG.md +65 -1
- package/dist/communication-react.d.ts +405 -31
- package/dist/dist-cjs/communication-react/index.js +1655 -762
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.d.ts +2 -0
- package/dist/dist-esm/acs-ui-common/src/index.d.ts.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.js +1 -0
- package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/logEvent.d.ts +16 -0
- package/dist/dist-esm/acs-ui-common/src/logEvent.d.ts.map +1 -0
- package/dist/dist-esm/acs-ui-common/src/logEvent.js +11 -0
- package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -0
- package/dist/dist-esm/acs-ui-common/src/safeStringify.d.ts.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/safeStringify.js +17 -1
- package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +4 -0
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +9 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts +12 -0
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +14 -2
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +32 -13
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +2 -0
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +6 -2
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +4 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +22 -0
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/index.d.ts +4 -2
- package/dist/dist-esm/calling-component-bindings/src/index.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/index.js +4 -2
- package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +34 -36
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.d.ts +6 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.d.ts.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/{SelectorUtils.js → utils/SelectorUtils.js} +0 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/{callUtils.d.ts → utils/callUtils.d.ts} +7 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/{callUtils.js → utils/callUtils.js} +28 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +6 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +25 -0
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/{videoGalleryUtils.d.ts → utils/videoGalleryUtils.d.ts} +3 -5
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/{videoGalleryUtils.js → utils/videoGalleryUtils.js} +3 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -0
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +10 -3
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +17 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js +22 -5
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +6 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +19 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +2 -0
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +22 -0
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts.map +1 -0
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +49 -0
- package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -0
- package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +26 -0
- package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Logger.js +30 -0
- package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.d.ts +1 -0
- package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js +8 -0
- package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +13 -0
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +133 -25
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index.d.ts +2 -0
- package/dist/dist-esm/calling-stateful-client/src/index.d.ts.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +7 -1
- package/dist/dist-esm/communication-react/src/index.d.ts.map +1 -1
- package/dist/dist-esm/communication-react/src/index.js +4 -0
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +1 -0
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +16 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +33 -21
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +87 -30
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +16 -3
- package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ErrorBar.js +22 -1
- package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileCard.d.ts +5 -0
- package/dist/dist-esm/react-components/src/components/FileCard.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileCard.js +44 -14
- package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +13 -0
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +18 -1
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts +17 -0
- package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileUploadCards.js +19 -2
- package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HoldButton.d.ts +49 -0
- package/dist/dist-esm/react-components/src/components/HoldButton.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/HoldButton.js +25 -0
- package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +15 -4
- package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +15 -12
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +3 -3
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +14 -6
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +5 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js +3 -2
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.js +5 -7
- package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +4 -3
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -3
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBox.d.ts +12 -0
- package/dist/dist-esm/react-components/src/components/SendBox.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBox.js +10 -5
- package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +8 -5
- package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts +7 -0
- package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/StreamMedia.js +7 -4
- package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +4 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +2 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +18 -70
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.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.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +6 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts +7 -0
- package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/VoiceOverButton.js +32 -0
- package/dist/dist-esm/react-components/src/components/VoiceOverButton.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/index.d.ts +6 -2
- package/dist/dist-esm/react-components/src/components/index.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.js +4 -1
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.d.ts +13 -1
- package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +34 -0
- package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts +9 -0
- package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js +26 -0
- package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +22 -4
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +38 -7
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +37 -6
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +37 -6
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +6 -0
- package/dist/dist-esm/react-components/src/theming/icons.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.js +12 -2
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -0
- package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +12 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +52 -3
- 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 +42 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
- 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/CallControls.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +7 -18
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +3 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +2 -23
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts +2 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +9 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +39 -10
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +10 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +41 -13
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +7 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +20 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts +68 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js +70 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/SidePaneHeader.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/SidePaneHeader.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +4 -4
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +11 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +38 -2
- 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 +27 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +7 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +14 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +19 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +11 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +7 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +32 -8
- package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +8 -2
- package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +8 -4
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +10 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js +12 -0
- package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts +6 -2
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +20 -4
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +3 -2
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +10 -5
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +10 -5
- package/package.json +10 -10
- package/dist/dist-esm/calling-component-bindings/src/SelectorUtils.d.ts +0 -6
- package/dist/dist-esm/calling-component-bindings/src/SelectorUtils.d.ts.map +0 -1
- package/dist/dist-esm/calling-component-bindings/src/SelectorUtils.js.map +0 -1
- package/dist/dist-esm/calling-component-bindings/src/callUtils.d.ts.map +0 -1
- package/dist/dist-esm/calling-component-bindings/src/callUtils.js.map +0 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGalleryUtils.d.ts.map +0 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGalleryUtils.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/utils/useCancellableTask.d.ts +0 -74
- package/dist/dist-esm/react-components/src/components/utils/useCancellableTask.d.ts.map +0 -1
- package/dist/dist-esm/react-components/src/components/utils/useCancellableTask.js +0 -85
- package/dist/dist-esm/react-components/src/components/utils/useCancellableTask.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.d.ts +0 -21
- package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.d.ts.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.js +0 -59
- package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.js.map +0 -1
@@ -191,7 +191,7 @@ const fromFlatCommunicationIdentifier = (id) => {
|
|
191
191
|
// Copyright (c) Microsoft Corporation.
|
192
192
|
// Licensed under the MIT license.
|
193
193
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
194
|
-
var telemetryVersion = '1.3.
|
194
|
+
var telemetryVersion = '1.3.2-alpha-202206290013.0';
|
195
195
|
|
196
196
|
// Copyright (c) Microsoft Corporation.
|
197
197
|
/**
|
@@ -253,7 +253,7 @@ const _formatString = (str, vars) => {
|
|
253
253
|
*
|
254
254
|
* @internal
|
255
255
|
*/
|
256
|
-
const _safeJSONStringify = (value, replacer, space) => {
|
256
|
+
const _safeJSONStringify = (value, replacer = createSafeReplacer(), space) => {
|
257
257
|
try {
|
258
258
|
return JSON.stringify(value, replacer, space);
|
259
259
|
}
|
@@ -262,6 +262,22 @@ const _safeJSONStringify = (value, replacer, space) => {
|
|
262
262
|
return undefined;
|
263
263
|
}
|
264
264
|
};
|
265
|
+
// Log all visited refs to avoid circular ref
|
266
|
+
const createSafeReplacer = () => {
|
267
|
+
const visited = new Set();
|
268
|
+
return function replacer(key, value) {
|
269
|
+
if (typeof value !== 'object') {
|
270
|
+
return value;
|
271
|
+
}
|
272
|
+
if (visited.has(value)) {
|
273
|
+
return 'Visited-Ref';
|
274
|
+
}
|
275
|
+
else {
|
276
|
+
visited.add(value);
|
277
|
+
return value;
|
278
|
+
}
|
279
|
+
};
|
280
|
+
};
|
265
281
|
|
266
282
|
// Copyright (c) Microsoft Corporation.
|
267
283
|
// Licensed under the MIT license.
|
@@ -280,6 +296,15 @@ const _MAX_EVENT_LISTENERS = 50;
|
|
280
296
|
*/
|
281
297
|
const _pxToRem = (px) => `${px / 16}rem`;
|
282
298
|
|
299
|
+
// Copyright (c) Microsoft Corporation.
|
300
|
+
/**
|
301
|
+
* @internal
|
302
|
+
* This is a log function to log structural data for easier parse in telemetry
|
303
|
+
*/
|
304
|
+
const _logEvent = (logger, event) => {
|
305
|
+
logger[event.level](_safeJSONStringify(event));
|
306
|
+
};
|
307
|
+
|
283
308
|
/**
|
284
309
|
* @private
|
285
310
|
*/
|
@@ -295,7 +320,10 @@ const getDominantSpeakers = (state, props) => { var _a; return (_a = state.calls
|
|
295
320
|
/**
|
296
321
|
* @private
|
297
322
|
*/
|
298
|
-
const getRemoteParticipants$1 = (state, props) => {
|
323
|
+
const getRemoteParticipants$1 = (state, props) => {
|
324
|
+
var _a;
|
325
|
+
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.remoteParticipants;
|
326
|
+
};
|
299
327
|
/**
|
300
328
|
* @private
|
301
329
|
*/
|
@@ -328,6 +356,11 @@ const getLatestErrors$1 = (state) => state.latestErrors;
|
|
328
356
|
* @private
|
329
357
|
*/
|
330
358
|
const getDiagnostics = (state, props) => { var _a; return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.diagnostics; };
|
359
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
360
|
+
/**
|
361
|
+
* @private
|
362
|
+
*/
|
363
|
+
const getCallState = (state, props) => { var _a; return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.state; };
|
331
364
|
|
332
365
|
// Copyright (c) Microsoft Corporation.
|
333
366
|
// Licensed under the MIT license.
|
@@ -375,6 +408,32 @@ const disposeAllLocalPreviewViews = (callClient) => __awaiter$s(void 0, void 0,
|
|
375
408
|
yield callClient.disposeView(undefined, undefined, view);
|
376
409
|
}
|
377
410
|
});
|
411
|
+
/**
|
412
|
+
* Update the users displayNames based on the type of user they are
|
413
|
+
*
|
414
|
+
* @internal
|
415
|
+
*/
|
416
|
+
const _updateUserDisplayNames = (participants) => {
|
417
|
+
if (participants) {
|
418
|
+
return memoizedUpdateDisplayName((memoizedFn) => {
|
419
|
+
return Object.values(participants).map((p) => {
|
420
|
+
const pid = toFlatCommunicationIdentifier(p.identifier);
|
421
|
+
return memoizedFn(pid, p);
|
422
|
+
});
|
423
|
+
});
|
424
|
+
}
|
425
|
+
else {
|
426
|
+
return [];
|
427
|
+
}
|
428
|
+
};
|
429
|
+
const memoizedUpdateDisplayName = memoizeFnAll((participantId, participant) => {
|
430
|
+
if (communicationCommon.isPhoneNumberIdentifier(participant.identifier)) {
|
431
|
+
return Object.assign(Object.assign({}, participant), { displayName: participant.identifier.phoneNumber });
|
432
|
+
}
|
433
|
+
else {
|
434
|
+
return participant;
|
435
|
+
}
|
436
|
+
});
|
378
437
|
|
379
438
|
// Copyright (c) Microsoft Corporation.
|
380
439
|
/**
|
@@ -403,7 +462,7 @@ const cameraButtonSelector = reselect__namespace.createSelector([getLocalVideoSt
|
|
403
462
|
const localVideoFromCall = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');
|
404
463
|
const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.video : true;
|
405
464
|
return {
|
406
|
-
disabled: !deviceManager.selectedCamera || !permission,
|
465
|
+
disabled: !deviceManager.selectedCamera || !permission || !deviceManager.cameras.length,
|
407
466
|
checked: localVideoStreams !== undefined && localVideoStreams.length > 0 ? !!localVideoFromCall : previewOn,
|
408
467
|
cameras: deviceManager.cameras,
|
409
468
|
selectedCamera: deviceManager.selectedCamera
|
@@ -434,6 +493,16 @@ const devicesButtonSelector = reselect__namespace.createSelector([getDeviceManag
|
|
434
493
|
selectedCamera: deviceManager.selectedCamera
|
435
494
|
};
|
436
495
|
});
|
496
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
497
|
+
/**
|
498
|
+
* Selector for the {@link HoldButton} component.
|
499
|
+
* @public
|
500
|
+
*/
|
501
|
+
const holdButtonSelector = reselect__namespace.createSelector([getCallState], (callState) => {
|
502
|
+
return {
|
503
|
+
checked: callState === 'LocalHold'
|
504
|
+
};
|
505
|
+
});
|
437
506
|
|
438
507
|
// Copyright (c) Microsoft Corporation.
|
439
508
|
// Licensed under the MIT license.
|
@@ -660,6 +729,8 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
660
729
|
yield (call === null || call === void 0 ? void 0 : call.addParticipant(participant));
|
661
730
|
}
|
662
731
|
});
|
732
|
+
/* @conditional-compile-remove(dialpad) */
|
733
|
+
const onSendDtmfTone = (dtmfTone) => __awaiter$r(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
663
734
|
return {
|
664
735
|
onHangUp,
|
665
736
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -680,7 +751,9 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
680
751
|
onAddParticipant,
|
681
752
|
onStartLocalVideo,
|
682
753
|
onDisposeRemoteStreamView,
|
683
|
-
onDisposeLocalStreamView
|
754
|
+
onDisposeLocalStreamView,
|
755
|
+
/* @conditional-compile-remove(dialpad) */
|
756
|
+
onSendDtmfTone
|
684
757
|
};
|
685
758
|
});
|
686
759
|
/**
|
@@ -855,33 +928,33 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
855
928
|
wordBreak: 'break-word'
|
856
929
|
});
|
857
930
|
|
858
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d};
|
931
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter a number"};var HoldButton$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,HoldButton:HoldButton$e};
|
859
932
|
|
860
|
-
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"
|
933
|
+
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$c={placeholderText:"Enter a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,HoldButton:HoldButton$d};
|
861
934
|
|
862
|
-
var participantItem$b={isMeText:"(Sie)",menuTitle:"Weitere Optionen",removeButtonLabel:"Entfernen",sharingIconLabel:"Teilen",mutedIconLabel:"Stumm geschaltet"};var typingIndicator$b={singleUser:"{user} schreibt ...",multipleUsers:"{users} schreiben ...",multipleUsersAbbreviateOne:"{users} und 1 andere Person schreiben ...",multipleUsersAbbreviateMany:"{users} und {numOthers} andere schreiben ...",delimiter:", "};var sendBox$b={placeholderText:"Nachricht eingeben",textTooLong:"Ihre Nachrichtenlänge überschreitet den maximalen Grenzwert.",sendButtonAriaLabel:"Nachricht senden",fileUploadsPendingError:"Wird hochgeladen... Bitte warten."};var messageStatusIndicator$b={deliveredAriaLabel:"Nachricht gesendet",deliveredTooltipText:"Gesendet",seenAriaLabel:"Nachricht von anderen gesehen",seenTooltipText:"Gesehen",readByTooltipText:"Gelesen von {messageThreadReadCount} von {remoteParticipantsCount}",sendingAriaLabel:"Nachricht wird gesendet",sendingTooltipText:"Wird gesendet",failedToSendAriaLabel:"Nachricht konnte nicht gesendet werden",failedToSendTooltipText:"Fehler beim Senden"};var endCallButton$b={label:"Verlassen",tooltipContent:"Anruf verlassen"};var cameraButton$b={onLabel:"Deaktivieren",offLabel:"Aktivieren",tooltipDisabledContent:"Kamera ist deaktiviert",tooltipOnContent:"Kamera ausschalten",tooltipOffContent:"Kamera einschalten",tooltipVideoLoadingContent:"Video wird geladen",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera auswählen"};var microphoneButton$b={onLabel:"Stumm schalten",offLabel:"Stummschaltung aufheben",tooltipDisabledContent:"Mikrofon ist deaktiviert",tooltipOnContent:"Mikrofon stummschalten",tooltipOffContent:"Mikrofonstummschaltung aufheben",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon auswählen",speakerMenuTitle:"Lautsprecher",speakerMenuTooltip:"Lautsprecher auswählen"};var devicesButton$b={label:"Geräte",tooltipContent:"Geräte verwalten",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera auswählen",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon auswählen",speakerMenuTitle:"Lautsprecher",speakerMenuTooltip:"Lautsprecher auswählen"};var participantsButton$b={label:"Personen",tooltipContent:"Teilnehmer anzeigen",menuHeader:"In diesem Anruf",participantsListButtonLabel:"{numParticipants} Personen",muteAllButtonLabel:"Alle stumm schalten",copyInviteLinkButtonLabel:"Einladungslink kopieren"};var screenShareButton$b={onLabel:"Präsentation beenden",offLabel:"Präsentieren",tooltipDisabledContent:"Präsentieren ist deaktiviert",tooltipOnContent:"Ihr Bildschirm wird präsentiert",tooltipOffContent:"Präsentieren Sie Ihren Bildschirm"};var messageThread$b={yesterday:"Gestern",sunday:"Sonntag",monday:"Montag",tuesday:"Dienstag",wednesday:"Mittwoch",thursday:"Donnerstag",friday:"Freitag",saturday:"Samstag",participantJoined:"ist dem Chat beigetreten.",participantLeft:"hat den Chat verlassen.",editMessage:"Bearbeiten",removeMessage:"Löschen",editedTag:"Bearbeitet",liveAuthorIntro:"{author} sagt",editBoxTextLimit:"Ihre Nachricht überschreitet das Limit von {limitNumber} Zeichen.",editBoxPlaceholderText:"Bearbeiten Sie Ihre Nachricht",newMessagesIndicator:"Neue Nachrichten",noDisplayNameSub:"Kein Name",editBoxCancelButton:"Abbrechen",editBoxSubmitButton:"Übermitteln",messageReadCount:"Gelesen von {messageReadByCount} von {remoteParticipantsCount}"};var errorBar$b={unableToReachChatService:"Sie sind offline.",accessDenied:"Auf die Chatdienste kann nicht zugegriffen werden. Überprüfen Sie die angegebenen Benutzeranmeldeinformationen.",userNotInChatThread:"Sie sind nicht mehr in diesem Chatthread vertreten.",sendMessageNotInChatThread:"Fehler beim Senden der Nachricht, weil Sie sich nicht mehr in diesem Chatthread befinden.",sendMessageGeneric:"Fehler beim Senden der Nachricht",callingNetworkFailure:"Problematische Anrufverbindung – Sie scheinen offline zu sein",startVideoGeneric:"Video konnte nicht gestartet werden",stopVideoGeneric:"Video konnte nicht beendet werden",muteGeneric:"Mikrofon konnte nicht stummgeschaltet werden",unmuteGeneric:"Stummschaltung des Mikrofons konnte nicht beendet werden",speakingWhileMuted:"Ihr Mikrofon ist stummgeschaltet",startScreenShareGeneric:"Bildschirmfreigabe konnte nicht gestartet werden",stopScreenShareGeneric:"Bildschirmfreigabe konnte nicht beendet werden",callNetworkQualityLow:"Die Netzwerkqualität ist niedrig.",callNoSpeakerFound:"Keine Lautsprecher oder Kopfhörer gefunden. Schließen Sie ein Audiogerät an, um den Anruf zu hören.",callNoMicrophoneFound:"Es wurden keine Mikrofone gefunden. Schließen Sie ein Audioeingabegerät an.",callMicrophoneAccessDenied:"Auf das Mikrofon kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",callMicrophoneMutedBySystem:"Sie werden von Ihrem System stummgeschaltet.",callMacOsMicrophoneAccessDenied:"Auf das Mikrofon kann nicht zugegriffen werden. Erteilen Sie die Mikrofonberechtigung in Ihren macOS-Datenschutzeinstellungen.",callLocalVideoFreeze:"Die Netzwerkbandbreite ist schlecht. Ihr Video wird möglicherweise für andere Personen während des Anrufs angehalten angezeigt.",callCameraAccessDenied:"Auf die Kamera kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",callCameraAlreadyInUse:"Auf die Kamera kann nicht zugegriffen werden. Sie wird möglicherweise bereits von einer anderen Anwendung verwendet.",callMacOsCameraAccessDenied:"MacOS blockiert den Zugriff auf Ihre Kamera. Aktualisieren Sie Ihre Datenschutzeinstellungen, damit dieser Browser auf Ihre Kamera zugreifen kann.",callMacOsScreenShareAccessDenied:"MacOS blockiert die Bildschirmfreigabe. Aktualisieren Sie Ihre Datenschutzeinstellungen, damit dieser Browser Ihren Bildschirm aufzeichnen kann."};var videoGallery$b={screenIsBeingSharedMessage:"Sie teilen Ihren Bildschirm",screenShareLoadingMessage:"Der Bildschirm von {participant} wird geladen",localVideoLabel:"Sie",localVideoCameraSwitcherLabel:"
|
935
|
+
var participantItem$b={isMeText:"(Sie)",menuTitle:"Weitere Optionen",removeButtonLabel:"Entfernen",sharingIconLabel:"Teilen",mutedIconLabel:"Stumm geschaltet",displayNamePlaceholder:"Unbenannter Teilnehmer"};var typingIndicator$b={singleUser:"{user} schreibt ...",multipleUsers:"{users} schreiben ...",multipleUsersAbbreviateOne:"{users} und 1 andere Person schreiben ...",multipleUsersAbbreviateMany:"{users} und {numOthers} andere schreiben ...",delimiter:", "};var sendBox$b={placeholderText:"Nachricht eingeben",textTooLong:"Ihre Nachrichtenlänge überschreitet den maximalen Grenzwert.",sendButtonAriaLabel:"Nachricht senden",fileUploadsPendingError:"Wird hochgeladen... Bitte warten."};var messageStatusIndicator$b={deliveredAriaLabel:"Nachricht gesendet",deliveredTooltipText:"Gesendet",seenAriaLabel:"Nachricht von anderen gesehen",seenTooltipText:"Gesehen",readByTooltipText:"Gelesen von {messageThreadReadCount} von {remoteParticipantsCount}",sendingAriaLabel:"Nachricht wird gesendet",sendingTooltipText:"Wird gesendet",failedToSendAriaLabel:"Nachricht konnte nicht gesendet werden",failedToSendTooltipText:"Fehler beim Senden"};var endCallButton$b={label:"Verlassen",tooltipContent:"Anruf verlassen"};var cameraButton$b={onLabel:"Deaktivieren",offLabel:"Aktivieren",tooltipDisabledContent:"Kamera ist deaktiviert",tooltipOnContent:"Kamera ausschalten",tooltipOffContent:"Kamera einschalten",tooltipVideoLoadingContent:"Video wird geladen",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera auswählen",cameraButtonSplitRoleDescription:"Unterteilte Schaltfläche",onSplitButtonAriaLabel:"Kamera und Kameraoptionen deaktivieren",offSplitButtonAriaLabel:"Kamera und Kameraoptionen aktivieren",cameraActionTurnedOnAnnouncement:"Ihre Kamera wurde eingeschaltet.",cameraActionTurnedOffAnnouncement:"Ihre Kamera wurde ausgeschaltet."};var microphoneButton$b={onLabel:"Stumm schalten",offLabel:"Stummschaltung aufheben",tooltipDisabledContent:"Mikrofon ist deaktiviert",tooltipOnContent:"Mikrofon stummschalten",tooltipOffContent:"Mikrofonstummschaltung aufheben",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon auswählen",speakerMenuTitle:"Lautsprecher",speakerMenuTooltip:"Lautsprecher auswählen",microphoneButtonSplitRoleDescription:"Unterteilte Schaltfläche",onSplitButtonAriaLabel:"Mikrofon- und Audiooptionen stummschalten",offSplitButtonAriaLabel:"Stummschaltung von Mikrofon- und Audiooptionen aufheben",microphoneActionTurnedOnAnnouncement:"Ihr Mikrofon wurde eingeschaltet.",microphoneActionTurnedOffAnnouncement:"Ihr Mikrofon wurde ausgeschaltet."};var devicesButton$b={label:"Geräte",tooltipContent:"Geräte verwalten",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera auswählen",audioDeviceMenuTitle:"Audiogerät",audioDeviceMenuTooltip:"Audiogerät auswählen",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon auswählen",speakerMenuTitle:"Lautsprecher",speakerMenuTooltip:"Lautsprecher auswählen"};var participantsButton$b={label:"Personen",tooltipContent:"Teilnehmer anzeigen",menuHeader:"In diesem Anruf",participantsListButtonLabel:"{numParticipants} Personen",muteAllButtonLabel:"Alle stumm schalten",copyInviteLinkButtonLabel:"Einladungslink kopieren"};var screenShareButton$b={onLabel:"Präsentation beenden",offLabel:"Präsentieren",tooltipDisabledContent:"Präsentieren ist deaktiviert",tooltipOnContent:"Ihr Bildschirm wird präsentiert",tooltipOffContent:"Präsentieren Sie Ihren Bildschirm"};var messageThread$b={yesterday:"Gestern",sunday:"Sonntag",monday:"Montag",tuesday:"Dienstag",wednesday:"Mittwoch",thursday:"Donnerstag",friday:"Freitag",saturday:"Samstag",participantJoined:"ist dem Chat beigetreten.",participantLeft:"hat den Chat verlassen.",editMessage:"Bearbeiten",removeMessage:"Löschen",resendMessage:"Erneut senden",failToSendTag:"Fehler beim Senden",editedTag:"Bearbeitet",liveAuthorIntro:"{author} sagt",editBoxTextLimit:"Ihre Nachricht überschreitet das Limit von {limitNumber} Zeichen.",editBoxPlaceholderText:"Bearbeiten Sie Ihre Nachricht",newMessagesIndicator:"Neue Nachrichten",noDisplayNameSub:"Kein Name",editBoxCancelButton:"Abbrechen",editBoxSubmitButton:"Übermitteln",messageReadCount:"Gelesen von {messageReadByCount} von {remoteParticipantsCount}",actionMenuMoreOptions:"Weitere Optionen"};var errorBar$b={unableToReachChatService:"Sie sind offline.",accessDenied:"Auf die Chatdienste kann nicht zugegriffen werden. Überprüfen Sie die angegebenen Benutzeranmeldeinformationen.",userNotInChatThread:"Sie sind nicht mehr in diesem Chatthread vertreten.",sendMessageNotInChatThread:"Fehler beim Senden der Nachricht, weil Sie sich nicht mehr in diesem Chatthread befinden.",sendMessageGeneric:"Fehler beim Senden der Nachricht",callingNetworkFailure:"Problematische Anrufverbindung – Sie scheinen offline zu sein",startVideoGeneric:"Video konnte nicht gestartet werden",stopVideoGeneric:"Video konnte nicht beendet werden",muteGeneric:"Mikrofon konnte nicht stummgeschaltet werden",unmuteGeneric:"Stummschaltung des Mikrofons konnte nicht beendet werden",speakingWhileMuted:"Ihr Mikrofon ist stummgeschaltet",startScreenShareGeneric:"Bildschirmfreigabe konnte nicht gestartet werden",stopScreenShareGeneric:"Bildschirmfreigabe konnte nicht beendet werden",callNetworkQualityLow:"Die Netzwerkqualität ist niedrig.",callNoSpeakerFound:"Keine Lautsprecher oder Kopfhörer gefunden. Schließen Sie ein Audiogerät an, um den Anruf zu hören.",callNoMicrophoneFound:"Es wurden keine Mikrofone gefunden. Schließen Sie ein Audioeingabegerät an.",callMicrophoneAccessDenied:"Auf das Mikrofon kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",callMicrophoneMutedBySystem:"Sie werden von Ihrem System stummgeschaltet.",callMacOsMicrophoneAccessDenied:"Auf das Mikrofon kann nicht zugegriffen werden. Erteilen Sie die Mikrofonberechtigung in Ihren macOS-Datenschutzeinstellungen.",callLocalVideoFreeze:"Die Netzwerkbandbreite ist schlecht. Ihr Video wird möglicherweise für andere Personen während des Anrufs angehalten angezeigt.",callCameraAccessDenied:"Auf die Kamera kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",callCameraAlreadyInUse:"Auf die Kamera kann nicht zugegriffen werden. Sie wird möglicherweise bereits von einer anderen Anwendung verwendet.",callMacOsCameraAccessDenied:"MacOS blockiert den Zugriff auf Ihre Kamera. Aktualisieren Sie Ihre Datenschutzeinstellungen, damit dieser Browser auf Ihre Kamera zugreifen kann.",callMacOsScreenShareAccessDenied:"MacOS blockiert die Bildschirmfreigabe. Aktualisieren Sie Ihre Datenschutzeinstellungen, damit dieser Browser Ihren Bildschirm aufzeichnen kann.",dismissButtonAriaLabel:"Schließen",failedToJoinCallGeneric:"Fehler bei der Teilnahme am Anruf.",failedToJoinCallInvalidMeetingLink:"Teilnahme an Besprechung nicht möglich. Ungültiger Link."};var videoGallery$b={screenIsBeingSharedMessage:"Sie teilen Ihren Bildschirm",screenShareLoadingMessage:"Der Bildschirm von {participant} wird geladen",localVideoLabel:"Sie",localVideoCameraSwitcherLabel:"Kamera wechseln",localVideoMovementLabel:"Verschiebbare lokale Videokachel",localVideoSelectedDescription:"{cameraName} ausgewählt",displayNamePlaceholder:"Unbenannter Teilnehmer"};var dialpad$b={placeholderText:"Eine Nummer eingeben"};var HoldButton$c={onLabel:"Fortsetzen",offLabel:"Halten",toolTipOnContent:"Anruf fortsetzen",toolTipOffContent:"Anruf halten"};var de_DE$1 = {participantItem:participantItem$b,typingIndicator:typingIndicator$b,sendBox:sendBox$b,messageStatusIndicator:messageStatusIndicator$b,endCallButton:endCallButton$b,cameraButton:cameraButton$b,microphoneButton:microphoneButton$b,devicesButton:devicesButton$b,participantsButton:participantsButton$b,screenShareButton:screenShareButton$b,messageThread:messageThread$b,errorBar:errorBar$b,videoGallery:videoGallery$b,dialpad:dialpad$b,HoldButton:HoldButton$c};
|
863
936
|
|
864
|
-
var participantItem$a={isMeText:"(tú)",menuTitle:"Más opciones",removeButtonLabel:"Quitar",sharingIconLabel:"Compartiendo",mutedIconLabel:"Silenciado"};var typingIndicator$a={singleUser:"{user} está escribiendo...",multipleUsers:"{users} están escribiendo...",multipleUsersAbbreviateOne:"{users} y 1 usuario más están escribiendo...",multipleUsersAbbreviateMany:"{users} y {numOthers} usuarios más están escribiendo...",delimiter:", "};var sendBox$a={placeholderText:"Escribir un mensaje",textTooLong:"La longitud del mensaje supera el límite máximo.",sendButtonAriaLabel:"Enviar mensaje",fileUploadsPendingError:"Cargando... Espere."};var messageStatusIndicator$a={deliveredAriaLabel:"Mensaje enviado",deliveredTooltipText:"Enviado",seenAriaLabel:"Mensaje visto por otros usuarios",seenTooltipText:"Visto",readByTooltipText:"Leído por {messageThreadReadCount} de {remoteParticipantsCount}",sendingAriaLabel:"Envío de mensajes",sendingTooltipText:"Enviando",failedToSendAriaLabel:"Error al enviar el mensaje",failedToSendTooltipText:"Error al enviar"};var endCallButton$a={label:"Baja",tooltipContent:"Abandonar llamada"};var cameraButton$a={onLabel:"Desactivar",offLabel:"Activar",tooltipDisabledContent:"La cámara está deshabilitada",tooltipOnContent:"Desconectar la cámara",tooltipOffContent:"Activar la cámara",tooltipVideoLoadingContent:"El vídeo se está cargando",cameraMenuTitle:"Cámara",cameraMenuTooltip:"Elegir cámara"};var microphoneButton$a={onLabel:"Silenciar",offLabel:"Reactivar audio",tooltipDisabledContent:"
|
937
|
+
var participantItem$a={isMeText:"(tú)",menuTitle:"Más opciones",removeButtonLabel:"Quitar",sharingIconLabel:"Compartiendo",mutedIconLabel:"Silenciado",displayNamePlaceholder:"Participante sin nombre"};var typingIndicator$a={singleUser:"{user} está escribiendo...",multipleUsers:"{users} están escribiendo...",multipleUsersAbbreviateOne:"{users} y 1 usuario más están escribiendo...",multipleUsersAbbreviateMany:"{users} y {numOthers} usuarios más están escribiendo...",delimiter:", "};var sendBox$a={placeholderText:"Escribir un mensaje",textTooLong:"La longitud del mensaje supera el límite máximo.",sendButtonAriaLabel:"Enviar mensaje",fileUploadsPendingError:"Cargando... Espere."};var messageStatusIndicator$a={deliveredAriaLabel:"Mensaje enviado",deliveredTooltipText:"Enviado",seenAriaLabel:"Mensaje visto por otros usuarios",seenTooltipText:"Visto",readByTooltipText:"Leído por {messageThreadReadCount} de {remoteParticipantsCount}",sendingAriaLabel:"Envío de mensajes",sendingTooltipText:"Enviando",failedToSendAriaLabel:"Error al enviar el mensaje",failedToSendTooltipText:"Error al enviar"};var endCallButton$a={label:"Baja",tooltipContent:"Abandonar llamada"};var cameraButton$a={onLabel:"Desactivar",offLabel:"Activar",tooltipDisabledContent:"La cámara está deshabilitada",tooltipOnContent:"Desconectar la cámara",tooltipOffContent:"Activar la cámara",tooltipVideoLoadingContent:"El vídeo se está cargando",cameraMenuTitle:"Cámara",cameraMenuTooltip:"Elegir cámara",cameraButtonSplitRoleDescription:"Botón de expansión",onSplitButtonAriaLabel:"Desactivar la cámara y las opciones de cámara",offSplitButtonAriaLabel:"Activar la cámara y las opciones de cámara",cameraActionTurnedOnAnnouncement:"La cámara se ha activado",cameraActionTurnedOffAnnouncement:"La cámara se ha desactivado"};var microphoneButton$a={onLabel:"Silenciar",offLabel:"Reactivar audio",tooltipDisabledContent:"Micrófono deshabilitado",tooltipOnContent:"Silenciar micrófono",tooltipOffContent:"Reactivar micrófono",microphoneMenuTitle:"Micrófono",microphoneMenuTooltip:"Elegir micrófono",speakerMenuTitle:"Altavoz",speakerMenuTooltip:"Elegir altavoz",microphoneButtonSplitRoleDescription:"Botón de expansión",onSplitButtonAriaLabel:"Silenciar opciones de micrófono y audio",offSplitButtonAriaLabel:"Reactivar el micrófono y las opciones de audio",microphoneActionTurnedOnAnnouncement:"El micrófono se ha activado",microphoneActionTurnedOffAnnouncement:"El micrófono se ha desactivado"};var devicesButton$a={label:"Dispositivos",tooltipContent:"Administrar dispositivos",cameraMenuTitle:"Cámara",cameraMenuTooltip:"Elegir cámara",audioDeviceMenuTitle:"Dispositivo de audio",audioDeviceMenuTooltip:"Elegir dispositivo de audio",microphoneMenuTitle:"Micrófono",microphoneMenuTooltip:"Elegir micrófono",speakerMenuTitle:"Altavoz",speakerMenuTooltip:"Elegir altavoz"};var participantsButton$a={label:"Contactos",tooltipContent:"Mostrar participantes",menuHeader:"En esta llamada",participantsListButtonLabel:"{numParticipants} personas",muteAllButtonLabel:"Silenciar a todos",copyInviteLinkButtonLabel:"Copiar vínculo de invitación"};var screenShareButton$a={onLabel:"Dejar de presentar",offLabel:"Presentar",tooltipDisabledContent:"La presentación está deshabilitada",tooltipOnContent:"Presentando su pantalla",tooltipOffContent:"Presentar la pantalla"};var messageThread$a={yesterday:"Ayer",sunday:"Domingo",monday:"Lunes",tuesday:"Martes",wednesday:"Miércoles",thursday:"Jueves",friday:"Viernes",saturday:"Sábado",participantJoined:"se unió al chat.",participantLeft:"abandonó el chat.",editMessage:"Editar",removeMessage:"Eliminar",resendMessage:"Intente enviar de nuevo",failToSendTag:"Error al enviar",editedTag:"Editado",liveAuthorIntro:"{author} dice",editBoxTextLimit:"El mensaje supera el límite de {limitNumber} caracteres",editBoxPlaceholderText:"Editar el mensaje",newMessagesIndicator:"Mensajes nuevos",noDisplayNameSub:"Sin nombre",editBoxCancelButton:"Cancelar",editBoxSubmitButton:"Enviar",messageReadCount:"Leído por {messageReadByCount} de {remoteParticipantsCount}",actionMenuMoreOptions:"Más opciones"};var errorBar$a={unableToReachChatService:"Sin conexión",accessDenied:"No se puede acceder a los servicios de chat. Compruebe las credenciales de usuario proporcionadas.",userNotInChatThread:"Ya no está en este hilo de chat",sendMessageNotInChatThread:"No se pudo enviar el mensaje porque ya no está en este hilo de chat",sendMessageGeneric:"Error al enviar el mensaje",callingNetworkFailure:"Problema al conectar la llamada; parece que no hay conexión",startVideoGeneric:"No se pudo iniciar el vídeo",stopVideoGeneric:"No se pudo detener el vídeo",muteGeneric:"No se pudo silenciar el micrófono",unmuteGeneric:"No se pudo reactivar el micrófono",speakingWhileMuted:"El micrófono está desactivado",startScreenShareGeneric:"No se pudo iniciar la pantalla compartida",stopScreenShareGeneric:"No se pudo detener la pantalla compartida",callNetworkQualityLow:"La calidad de la red es baja.",callNoSpeakerFound:"No se encontraron altavoces ni auriculares. Conecta un dispositivo de audio para escuchar la llamada.",callNoMicrophoneFound:"No se encontraron micrófonos. Conecta un dispositivo de entrada de audio.",callMicrophoneAccessDenied:"No se puede acceder al micrófono. Haga clic en el bloqueo de la barra de direcciones para conceder permiso a esta página web.",callMicrophoneMutedBySystem:"Su sistema ha silenciado su audio.",callMacOsMicrophoneAccessDenied:"No se puede acceder al micrófono. Conceda permiso al micrófono en la configuración de privacidad de macOS.",callLocalVideoFreeze:"El ancho de banda de red es deficiente. Es posible que el vídeo aparezca pausado para otros usuarios en la llamada.",callCameraAccessDenied:"No se puede acceder a la cámara. Haga clic en el bloqueo de la barra de direcciones para conceder permiso a esta página web.",callCameraAlreadyInUse:"No se puede acceder a la cámara. Puede que ya la esté usando otra aplicación.",callMacOsCameraAccessDenied:"MacOS está bloqueando el acceso a la cámara. Actualiza la configuración de privacidad para permitir que este explorador acceda a la cámara.",callMacOsScreenShareAccessDenied:"MacOS está bloqueando el uso compartido de la pantalla. Actualice la configuración de privacidad para permitir que este explorador grabe la pantalla.",dismissButtonAriaLabel:"Cerrar",failedToJoinCallGeneric:"No se pudo unir a la llamada.",failedToJoinCallInvalidMeetingLink:"No se puede unir a la reunión. Vínculo no válido."};var videoGallery$a={screenIsBeingSharedMessage:"Está compartiendo su pantalla",screenShareLoadingMessage:"Cargando la pantalla de {participant}",localVideoLabel:"Tú",localVideoCameraSwitcherLabel:"Cambiar de cámara",localVideoMovementLabel:"Mosaico de vídeo local movible",localVideoSelectedDescription:"{cameraName} seleccionada",displayNamePlaceholder:"Participante sin nombre"};var dialpad$a={placeholderText:"Introducir un número"};var HoldButton$b={onLabel:"Reanudar",offLabel:"En espera",toolTipOnContent:"Reanudar llamada",toolTipOffContent:"Poner llamada en espera"};var es_ES$1 = {participantItem:participantItem$a,typingIndicator:typingIndicator$a,sendBox:sendBox$a,messageStatusIndicator:messageStatusIndicator$a,endCallButton:endCallButton$a,cameraButton:cameraButton$a,microphoneButton:microphoneButton$a,devicesButton:devicesButton$a,participantsButton:participantsButton$a,screenShareButton:screenShareButton$a,messageThread:messageThread$a,errorBar:errorBar$a,videoGallery:videoGallery$a,dialpad:dialpad$a,HoldButton:HoldButton$b};
|
865
938
|
|
866
|
-
var participantItem$9={isMeText:"(vous)",menuTitle:"Plus d’options",removeButtonLabel:"Supprimer",sharingIconLabel:"Partage",mutedIconLabel:"Muet activé"};var typingIndicator$9={singleUser:"{user} en train d’écrire...",multipleUsers:"{users} sont en train d'écrire...",multipleUsersAbbreviateOne:"{users} et 1 autre en train d'écrire...",multipleUsersAbbreviateMany:"{users} et {numOthers} autres en train d’écrire...",delimiter:", "};var sendBox$9={placeholderText:"Saisir un message",textTooLong:"La longueur de votre message dépasse la limite maximale.",sendButtonAriaLabel:"Envoyer un message",fileUploadsPendingError:"Chargement en cours... Veuillez patienter."};var messageStatusIndicator$9={deliveredAriaLabel:"Message envoyé",deliveredTooltipText:"Envoyé",seenAriaLabel:"Message vu par d’autres personnes",seenTooltipText:"Vu",readByTooltipText:"Lu par {messageThreadReadCount} participants sur {remoteParticipantsCount}",sendingAriaLabel:"Envoi du message",sendingTooltipText:"Envoi",failedToSendAriaLabel:"Échec d'envoi du message",failedToSendTooltipText:"Échec de l'envoi"};var endCallButton$9={label:"Quitter",tooltipContent:"Quitter l’appel"};var cameraButton$9={onLabel:"Désactiver",offLabel:"Activer",tooltipDisabledContent:"La caméra est désactivée.",tooltipOnContent:"Désactiver la caméra",tooltipOffContent:"Activer la caméra",tooltipVideoLoadingContent:"Chargement de la vidéo",cameraMenuTitle:"Caméra",cameraMenuTooltip:"Choisissez l'appareil photo"};var microphoneButton$9={onLabel:"Désactiver le son",offLabel:"Réactiver le son",tooltipDisabledContent:"Le microphone est désactivé.",tooltipOnContent:"Désactiver le micro",tooltipOffContent:"Activer le micro",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choisissez le micro",speakerMenuTitle:"Haut-parleur",speakerMenuTooltip:"Choisissez le haut-parleur"};var devicesButton$9={label:"Appareils",tooltipContent:"Gérer les appareils",cameraMenuTitle:"Appareil photo",cameraMenuTooltip:"Choisir une caméra",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choisir le micro",speakerMenuTitle:"Haut-parleur",speakerMenuTooltip:"Choisir une enceinte"};var participantsButton$9={label:"Personnes",tooltipContent:"Afficher les participants",menuHeader:"Pendant cet appel",participantsListButtonLabel:"{numParticipants} contacts",muteAllButtonLabel:"Désactiver tous les micros",copyInviteLinkButtonLabel:"Copier le lien d'invitation"};var screenShareButton$9={onLabel:"Arrêter la présentation",offLabel:"Présenter",tooltipDisabledContent:"La présentation est désactivée.",tooltipOnContent:"Présentation de votre écran",tooltipOffContent:"Présenter votre écran"};var messageThread$9={yesterday:"Hier",sunday:"Dimanche",monday:"Lundi",tuesday:"Mardi",wednesday:"Mercredi",thursday:"Jeudi",friday:"Vendredi",saturday:"Samedi",participantJoined:"a rejoint la conversation.",participantLeft:"a quitté le conversation.",editMessage:"Modifier",removeMessage:"Supprimer",editedTag:"Modifié",liveAuthorIntro:"{author} dit",editBoxTextLimit:"Votre message dépasse la limite de {limitNumber} caractères",editBoxPlaceholderText:"Modifier votre message",newMessagesIndicator:"Nouveaux messages",noDisplayNameSub:"Sans nom",editBoxCancelButton:"Annuler",editBoxSubmitButton:"Envoyer",messageReadCount:"Lu par {messageReadByCount} participants sur {remoteParticipantsCount}"};var errorBar$9={unableToReachChatService:"Vous êtes hors connexion",accessDenied:"Impossible d’accéder aux services de conversation. Vérifiez les informations d’identification de l’utilisateur fournies",userNotInChatThread:"Vous n’est plus dans ce thread de conversation",sendMessageNotInChatThread:"Échec de l’envoi du message car vous n’êtes plus dans ce thread de conversation",sendMessageGeneric:"Échec de l’envoi du message",callingNetworkFailure:"Perturbation de l’appel de connexion : vous semblez être hors connexion",startVideoGeneric:"Échec du démarrage de la vidéo",stopVideoGeneric:"Échec de l’arrêt de la vidéo",muteGeneric:"Échec de la désactivation du son du microphone",unmuteGeneric:"Échec de l’activation du son du microphone",speakingWhileMuted:"Votre micro est désactivé",startScreenShareGeneric:"Échec du démarrage du partage d’écran",stopScreenShareGeneric:"Échec de l’arrêt du partage d’écran",callNetworkQualityLow:"La qualité de réseau est faible.",callNoSpeakerFound:"Aucun haut-parleur ou casque n’a été trouvé. Connectez un périphérique audio pour entendre l’appel.",callNoMicrophoneFound:"Aucun micro n’a été trouvé. Connectez un périphérique d’entrée audio.",callMicrophoneAccessDenied:"Impossible d’accéder au microphone. Cliquez sur le verrou dans la barre d’adresses pour accorder l’autorisation à cette page Web.",callMicrophoneMutedBySystem:"Votre micro est désactivé par votre système.",callMacOsMicrophoneAccessDenied:"Impossible d’accéder au microphone. Accordez l’autorisation de microphone dans vos paramètres de confidentialité macOS.",callLocalVideoFreeze:"La bande passante réseau est médiocre. Votre vidéo peut apparaître suspendue pour les autres participants à l’appel.",callCameraAccessDenied:"Impossible d’accéder à la caméra. Cliquez sur le verrou dans la barre d’adresses pour accorder l’autorisation à cette page Web.",callCameraAlreadyInUse:"Impossible d’accéder à la caméra. Il est peut-être déjà utilisé par une autre application.",callMacOsCameraAccessDenied:"MacOS bloque l’accès à votre caméra. Mettez à jour vos paramètres de confidentialité pour autoriser ce navigateur à accéder à votre caméra.",callMacOsScreenShareAccessDenied:"MacOS bloque le partage d’écran. Mettez à jour vos paramètres de confidentialité pour permettre à ce navigateur d’enregistrer votre écran."};var videoGallery$9={screenIsBeingSharedMessage:"Vous partagez votre écran.",screenShareLoadingMessage:"Chargement de l’écran de {participant}",localVideoLabel:"Vous",localVideoCameraSwitcherLabel:"
|
939
|
+
var participantItem$9={isMeText:"(vous)",menuTitle:"Plus d’options",removeButtonLabel:"Supprimer",sharingIconLabel:"Partage",mutedIconLabel:"Muet activé",displayNamePlaceholder:"Participant non identifié"};var typingIndicator$9={singleUser:"{user} en train d’écrire...",multipleUsers:"{users} sont en train d'écrire...",multipleUsersAbbreviateOne:"{users} et 1 autre en train d'écrire...",multipleUsersAbbreviateMany:"{users} et {numOthers} autres en train d’écrire...",delimiter:", "};var sendBox$9={placeholderText:"Saisir un message",textTooLong:"La longueur de votre message dépasse la limite maximale.",sendButtonAriaLabel:"Envoyer un message",fileUploadsPendingError:"Chargement en cours... Veuillez patienter."};var messageStatusIndicator$9={deliveredAriaLabel:"Message envoyé",deliveredTooltipText:"Envoyé",seenAriaLabel:"Message vu par d’autres personnes",seenTooltipText:"Vu",readByTooltipText:"Lu par {messageThreadReadCount} participants sur {remoteParticipantsCount}",sendingAriaLabel:"Envoi du message",sendingTooltipText:"Envoi",failedToSendAriaLabel:"Échec d'envoi du message",failedToSendTooltipText:"Échec de l'envoi"};var endCallButton$9={label:"Quitter",tooltipContent:"Quitter l’appel"};var cameraButton$9={onLabel:"Désactiver",offLabel:"Activer",tooltipDisabledContent:"La caméra est désactivée.",tooltipOnContent:"Désactiver la caméra",tooltipOffContent:"Activer la caméra",tooltipVideoLoadingContent:"Chargement de la vidéo",cameraMenuTitle:"Caméra",cameraMenuTooltip:"Choisissez l'appareil photo",cameraButtonSplitRoleDescription:"Bouton partagé",onSplitButtonAriaLabel:"Désactiver les options d’appareil photo et d’appareil photo",offSplitButtonAriaLabel:"Activer les options d’appareil photo et d’appareil photo",cameraActionTurnedOnAnnouncement:"Votre caméra a été activée",cameraActionTurnedOffAnnouncement:"Votre caméra a été désactivée"};var microphoneButton$9={onLabel:"Désactiver le son",offLabel:"Réactiver le son",tooltipDisabledContent:"Le microphone est désactivé.",tooltipOnContent:"Désactiver le micro",tooltipOffContent:"Activer le micro",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choisissez le micro",speakerMenuTitle:"Haut-parleur",speakerMenuTooltip:"Choisissez le haut-parleur",microphoneButtonSplitRoleDescription:"Bouton partagé",onSplitButtonAriaLabel:"Désactiver le micro et les options audio",offSplitButtonAriaLabel:"Activer le son du microphone et des options audio",microphoneActionTurnedOnAnnouncement:"Votre micro a été activé",microphoneActionTurnedOffAnnouncement:"Votre micro a été désactivé"};var devicesButton$9={label:"Appareils",tooltipContent:"Gérer les appareils",cameraMenuTitle:"Appareil photo",cameraMenuTooltip:"Choisir une caméra",audioDeviceMenuTitle:"Périphérique audio",audioDeviceMenuTooltip:"Choisir un périphérique audio",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choisir le micro",speakerMenuTitle:"Haut-parleur",speakerMenuTooltip:"Choisir une enceinte"};var participantsButton$9={label:"Personnes",tooltipContent:"Afficher les participants",menuHeader:"Pendant cet appel",participantsListButtonLabel:"{numParticipants} contacts",muteAllButtonLabel:"Désactiver tous les micros",copyInviteLinkButtonLabel:"Copier le lien d'invitation"};var screenShareButton$9={onLabel:"Arrêter la présentation",offLabel:"Présenter",tooltipDisabledContent:"La présentation est désactivée.",tooltipOnContent:"Présentation de votre écran",tooltipOffContent:"Présenter votre écran"};var messageThread$9={yesterday:"Hier",sunday:"Dimanche",monday:"Lundi",tuesday:"Mardi",wednesday:"Mercredi",thursday:"Jeudi",friday:"Vendredi",saturday:"Samedi",participantJoined:"a rejoint la conversation.",participantLeft:"a quitté le conversation.",editMessage:"Modifier",removeMessage:"Supprimer",resendMessage:"Réessayer l'envoi",failToSendTag:"Échec de l'envoi",editedTag:"Modifié",liveAuthorIntro:"{author} dit",editBoxTextLimit:"Votre message dépasse la limite de {limitNumber} caractères",editBoxPlaceholderText:"Modifier votre message",newMessagesIndicator:"Nouveaux messages",noDisplayNameSub:"Sans nom",editBoxCancelButton:"Annuler",editBoxSubmitButton:"Envoyer",messageReadCount:"Lu par {messageReadByCount} participants sur {remoteParticipantsCount}",actionMenuMoreOptions:"Plus d’options"};var errorBar$9={unableToReachChatService:"Vous êtes hors connexion",accessDenied:"Impossible d’accéder aux services de conversation. Vérifiez les informations d’identification de l’utilisateur fournies",userNotInChatThread:"Vous n’est plus dans ce thread de conversation",sendMessageNotInChatThread:"Échec de l’envoi du message car vous n’êtes plus dans ce thread de conversation",sendMessageGeneric:"Échec de l’envoi du message",callingNetworkFailure:"Perturbation de l’appel de connexion : vous semblez être hors connexion",startVideoGeneric:"Échec du démarrage de la vidéo",stopVideoGeneric:"Échec de l’arrêt de la vidéo",muteGeneric:"Échec de la désactivation du son du microphone",unmuteGeneric:"Échec de l’activation du son du microphone",speakingWhileMuted:"Votre micro est désactivé",startScreenShareGeneric:"Échec du démarrage du partage d’écran",stopScreenShareGeneric:"Échec de l’arrêt du partage d’écran",callNetworkQualityLow:"La qualité de réseau est faible.",callNoSpeakerFound:"Aucun haut-parleur ou casque n’a été trouvé. Connectez un périphérique audio pour entendre l’appel.",callNoMicrophoneFound:"Aucun micro n’a été trouvé. Connectez un périphérique d’entrée audio.",callMicrophoneAccessDenied:"Impossible d’accéder au microphone. Cliquez sur le verrou dans la barre d’adresses pour accorder l’autorisation à cette page Web.",callMicrophoneMutedBySystem:"Votre micro est désactivé par votre système.",callMacOsMicrophoneAccessDenied:"Impossible d’accéder au microphone. Accordez l’autorisation de microphone dans vos paramètres de confidentialité macOS.",callLocalVideoFreeze:"La bande passante réseau est médiocre. Votre vidéo peut apparaître suspendue pour les autres participants à l’appel.",callCameraAccessDenied:"Impossible d’accéder à la caméra. Cliquez sur le verrou dans la barre d’adresses pour accorder l’autorisation à cette page Web.",callCameraAlreadyInUse:"Impossible d’accéder à la caméra. Il est peut-être déjà utilisé par une autre application.",callMacOsCameraAccessDenied:"MacOS bloque l’accès à votre caméra. Mettez à jour vos paramètres de confidentialité pour autoriser ce navigateur à accéder à votre caméra.",callMacOsScreenShareAccessDenied:"MacOS bloque le partage d’écran. Mettez à jour vos paramètres de confidentialité pour permettre à ce navigateur d’enregistrer votre écran.",dismissButtonAriaLabel:"Fermer",failedToJoinCallGeneric:"Nous n’avons pas pu rejoindre l’appel.",failedToJoinCallInvalidMeetingLink:"Impossible de rejoindre la réunion. Lien non valide."};var videoGallery$9={screenIsBeingSharedMessage:"Vous partagez votre écran.",screenShareLoadingMessage:"Chargement de l’écran de {participant}",localVideoLabel:"Vous",localVideoCameraSwitcherLabel:"Changer de caméra",localVideoMovementLabel:"Vignette de vidéo locale déplaçable",localVideoSelectedDescription:"{cameraName} sélectionnée",displayNamePlaceholder:"Participant non identifié"};var dialpad$9={placeholderText:"Entrer un numéro"};var HoldButton$a={onLabel:"Reprendre",offLabel:"Mettre en attente",toolTipOnContent:"Reprendre l’appel",toolTipOffContent:"Mettre l’appel en attente"};var fr_FR$1 = {participantItem:participantItem$9,typingIndicator:typingIndicator$9,sendBox:sendBox$9,messageStatusIndicator:messageStatusIndicator$9,endCallButton:endCallButton$9,cameraButton:cameraButton$9,microphoneButton:microphoneButton$9,devicesButton:devicesButton$9,participantsButton:participantsButton$9,screenShareButton:screenShareButton$9,messageThread:messageThread$9,errorBar:errorBar$9,videoGallery:videoGallery$9,dialpad:dialpad$9,HoldButton:HoldButton$a};
|
867
940
|
|
868
|
-
var participantItem$8={isMeText:"(tu)",menuTitle:"Altre opzioni",removeButtonLabel:"Rimuovi",sharingIconLabel:"Condivisione",mutedIconLabel:"Disattivato"};var typingIndicator$8={singleUser:"{user} sta scrivendo ...",multipleUsers:"{users} stanno scrivendo ...",multipleUsersAbbreviateOne:"{users} e 1 altro stanno scrivendo ...",multipleUsersAbbreviateMany:"{users} e {numOthers} altri stanno scrivendo ...",delimiter:", "};var sendBox$8={placeholderText:"Immetti un messaggio",textTooLong:"La lunghezza del messaggio supera il limite massimo.",sendButtonAriaLabel:"Invio messaggio",fileUploadsPendingError:"Caricamento in corso... Attendere."};var messageStatusIndicator$8={deliveredAriaLabel:"Il messaggio è stato inviato",deliveredTooltipText:"Inviato",seenAriaLabel:"Messaggio visualizzato da altri utenti",seenTooltipText:"Visualizzato",readByTooltipText:"Letto da {messageThreadReadCount} di {remoteParticipantsCount}",sendingAriaLabel:"Invio del messaggio",sendingTooltipText:"Invio in corso",failedToSendAriaLabel:"Invio messaggio non riuscito",failedToSendTooltipText:"Invio non riuscito"};var endCallButton$8={label:"Permesso",tooltipContent:"Abbandona chiamata"};var cameraButton$8={onLabel:"Disabilita",offLabel:"Abilita",tooltipDisabledContent:"La videocamera è disabilitata",tooltipOnContent:"Spegni la videocamera",tooltipOffContent:"Accendi la videocamera",tooltipVideoLoadingContent:"Il video è in corso di caricamento",cameraMenuTitle:"Fotocamera",cameraMenuTooltip:"Scegli la fotocamera"};var microphoneButton$8={onLabel:"Disattiva audio",offLabel:"Riattiva audio",tooltipDisabledContent:"Il microfono è disabilitato",tooltipOnContent:"Disattiva microfono",tooltipOffContent:"Riattiva microfono",microphoneMenuTitle:"Microfono",microphoneMenuTooltip:"Scegli il microfono",speakerMenuTitle:"Altoparlante",speakerMenuTooltip:"Scegli l’altoparlante"};var devicesButton$8={label:"Dispositivi",tooltipContent:"Gestisci dispositivi",cameraMenuTitle:"Fotocamera",cameraMenuTooltip:"Scegli la fotocamera",microphoneMenuTitle:"Microfono",microphoneMenuTooltip:"Scegli il microfono",speakerMenuTitle:"Altoparlante",speakerMenuTooltip:"Scegli l’altoparlante"};var participantsButton$8={label:"Persone",tooltipContent:"Mostra partecipanti",menuHeader:"In questa chiamata",participantsListButtonLabel:"{numParticipants} persone",muteAllButtonLabel:"Disattiva l'audio di tutti",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito"};var screenShareButton$8={onLabel:"Interrompi presentazione",offLabel:"Presentazione",tooltipDisabledContent:"La presentazione è disabilitata.",tooltipOnContent:"Presentazione dello schermo",tooltipOffContent:"Presenta lo schermo"};var messageThread$8={yesterday:"Ieri",sunday:"Domenica",monday:"Lunedì",tuesday:"Martedì",wednesday:"Mercoledì",thursday:"Giovedì",friday:"Venerdì",saturday:"Sabato",participantJoined:"si è unito alla chat.",participantLeft:"ha abbandonato la chat.",editMessage:"Modifica",removeMessage:"Elimina",editedTag:"Modificato",liveAuthorIntro:"{author} dice",editBoxTextLimit:"Il messaggio ha superato il limite di caratteri {limitNumber}",editBoxPlaceholderText:"Modifica il messaggio",newMessagesIndicator:"Nuovi messaggi",noDisplayNameSub:"Nessun nome",editBoxCancelButton:"Annulla",editBoxSubmitButton:"Invia",messageReadCount:"Letto da {messageReadByCount} di {remoteParticipantsCount}"};var errorBar$8={unableToReachChatService:"Sei offline",accessDenied:"Non è possibile accedere ai servizi di chat. Controllare le credenziali utente specificate",userNotInChatThread:"Non fai più parte di questo thread di chat",sendMessageNotInChatThread:"Non è stato possibile inviare il messaggio perché non sei più in questo thread di chat",sendMessageGeneric:"Impossibile inviare il messaggio",callingNetworkFailure:"Problema di connessione della chiamata: sembra che tu sia offline",startVideoGeneric:"Non è stato possibile avviare il video",stopVideoGeneric:"Non è stato possibile arrestare il video",muteGeneric:"Non è stato possibile disattivare l'audio del microfono",unmuteGeneric:"Non è stato possibile riattivare l'audio del microfono",speakingWhileMuted:"Il microfono è disattivato",startScreenShareGeneric:"Non è stato possibile avviare la condivisione dello schermo",stopScreenShareGeneric:"Non è stato possibile arrestare la condivisione dello schermo",callNetworkQualityLow:"La qualità della rete è bassa.",callNoSpeakerFound:"Non sono stati trovati altoparlanti o cuffie. Connetti un dispositivo audio per ascoltare la chiamata.",callNoMicrophoneFound:"Nessun microfono trovato. Connetti un dispositivo di input audio.",callMicrophoneAccessDenied:"Impossibile accedere al microfono. Fare clic sul blocco nella barra degli indirizzi per concedere l'autorizzazione a questa pagina Web.",callMicrophoneMutedBySystem:"Il sistema disattiva l'audio.",callMacOsMicrophoneAccessDenied:"Impossibile accedere al microfono. Concedi l'autorizzazione al microfono nelle impostazioni di privacy di macOS.",callLocalVideoFreeze:"Larghezza di banda di rete insufficiente. Il video potrebbe essere sospeso per gli altri partecipanti alla chiamata.",callCameraAccessDenied:"Non è possibile accedere alla fotocamera. Fare clic sul blocco nella barra degli indirizzi per concedere l'autorizzazione a questa pagina Web.",callCameraAlreadyInUse:"Non è possibile accedere alla fotocamera. Potrebbe essere già in uso da un'altra applicazione.",callMacOsCameraAccessDenied:"MacOS sta bloccando l'accesso alla fotocamera. Aggiorna le impostazioni di privacy per consentire a questo browser di accedere alla fotocamera.",callMacOsScreenShareAccessDenied:"MacOS sta bloccando la condivisione dello schermo. Aggiorna le impostazioni di privacy per consentire a questo browser di registrare lo schermo."};var videoGallery$8={screenIsBeingSharedMessage:"Stai condividendo lo schermo",screenShareLoadingMessage:"Caricamento dello schermo di {participant}",localVideoLabel:"Tu",localVideoCameraSwitcherLabel:"
|
941
|
+
var participantItem$8={isMeText:"(tu)",menuTitle:"Altre opzioni",removeButtonLabel:"Rimuovi",sharingIconLabel:"Condivisione",mutedIconLabel:"Disattivato",displayNamePlaceholder:"Partecipante senza nome"};var typingIndicator$8={singleUser:"{user} sta scrivendo ...",multipleUsers:"{users} stanno scrivendo ...",multipleUsersAbbreviateOne:"{users} e 1 altro stanno scrivendo ...",multipleUsersAbbreviateMany:"{users} e {numOthers} altri stanno scrivendo ...",delimiter:", "};var sendBox$8={placeholderText:"Immetti un messaggio",textTooLong:"La lunghezza del messaggio supera il limite massimo.",sendButtonAriaLabel:"Invio messaggio",fileUploadsPendingError:"Caricamento in corso... Attendere."};var messageStatusIndicator$8={deliveredAriaLabel:"Il messaggio è stato inviato",deliveredTooltipText:"Inviato",seenAriaLabel:"Messaggio visualizzato da altri utenti",seenTooltipText:"Visualizzato",readByTooltipText:"Letto da {messageThreadReadCount} di {remoteParticipantsCount}",sendingAriaLabel:"Invio del messaggio",sendingTooltipText:"Invio in corso",failedToSendAriaLabel:"Invio messaggio non riuscito",failedToSendTooltipText:"Invio non riuscito"};var endCallButton$8={label:"Permesso",tooltipContent:"Abbandona chiamata"};var cameraButton$8={onLabel:"Disabilita",offLabel:"Abilita",tooltipDisabledContent:"La videocamera è disabilitata",tooltipOnContent:"Spegni la videocamera",tooltipOffContent:"Accendi la videocamera",tooltipVideoLoadingContent:"Il video è in corso di caricamento",cameraMenuTitle:"Fotocamera",cameraMenuTooltip:"Scegli la fotocamera",cameraButtonSplitRoleDescription:"Pulsante di menu combinato",onSplitButtonAriaLabel:"Disattiva fotocamera e le opzioni della fotocamera",offSplitButtonAriaLabel:"Attiva fotocamera e le opzioni della fotocamera",cameraActionTurnedOnAnnouncement:"La videocamera è stata attivata",cameraActionTurnedOffAnnouncement:"La videocamera è stata disattivata"};var microphoneButton$8={onLabel:"Disattiva audio",offLabel:"Riattiva audio",tooltipDisabledContent:"Il microfono è disabilitato",tooltipOnContent:"Disattiva microfono",tooltipOffContent:"Riattiva microfono",microphoneMenuTitle:"Microfono",microphoneMenuTooltip:"Scegli il microfono",speakerMenuTitle:"Altoparlante",speakerMenuTooltip:"Scegli l’altoparlante",microphoneButtonSplitRoleDescription:"Pulsante di menu combinato",onSplitButtonAriaLabel:"Disattiva microfono e opzioni audio",offSplitButtonAriaLabel:"Attiva microfono e opzioni audio",microphoneActionTurnedOnAnnouncement:"Il microfono è stato attivato",microphoneActionTurnedOffAnnouncement:"Il microfono è stato disattivato"};var devicesButton$8={label:"Dispositivi",tooltipContent:"Gestisci dispositivi",cameraMenuTitle:"Fotocamera",cameraMenuTooltip:"Scegli la fotocamera",audioDeviceMenuTitle:"Dispositivo audio",audioDeviceMenuTooltip:"Scegli dispositivo audio",microphoneMenuTitle:"Microfono",microphoneMenuTooltip:"Scegli il microfono",speakerMenuTitle:"Altoparlante",speakerMenuTooltip:"Scegli l’altoparlante"};var participantsButton$8={label:"Persone",tooltipContent:"Mostra partecipanti",menuHeader:"In questa chiamata",participantsListButtonLabel:"{numParticipants} persone",muteAllButtonLabel:"Disattiva l'audio di tutti",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito"};var screenShareButton$8={onLabel:"Interrompi presentazione",offLabel:"Presentazione",tooltipDisabledContent:"La presentazione è disabilitata.",tooltipOnContent:"Presentazione dello schermo",tooltipOffContent:"Presenta lo schermo"};var messageThread$8={yesterday:"Ieri",sunday:"Domenica",monday:"Lunedì",tuesday:"Martedì",wednesday:"Mercoledì",thursday:"Giovedì",friday:"Venerdì",saturday:"Sabato",participantJoined:"si è unito alla chat.",participantLeft:"ha abbandonato la chat.",editMessage:"Modifica",removeMessage:"Elimina",resendMessage:"Riprova a inviare",failToSendTag:"Invio non riuscito",editedTag:"Modificato",liveAuthorIntro:"{author} dice",editBoxTextLimit:"Il messaggio ha superato il limite di caratteri {limitNumber}",editBoxPlaceholderText:"Modifica il messaggio",newMessagesIndicator:"Nuovi messaggi",noDisplayNameSub:"Nessun nome",editBoxCancelButton:"Annulla",editBoxSubmitButton:"Invia",messageReadCount:"Letto da {messageReadByCount} di {remoteParticipantsCount}",actionMenuMoreOptions:"Altre opzioni"};var errorBar$8={unableToReachChatService:"Sei offline",accessDenied:"Non è possibile accedere ai servizi di chat. Controllare le credenziali utente specificate",userNotInChatThread:"Non fai più parte di questo thread di chat",sendMessageNotInChatThread:"Non è stato possibile inviare il messaggio perché non sei più in questo thread di chat",sendMessageGeneric:"Impossibile inviare il messaggio",callingNetworkFailure:"Problema di connessione della chiamata: sembra che tu sia offline",startVideoGeneric:"Non è stato possibile avviare il video",stopVideoGeneric:"Non è stato possibile arrestare il video",muteGeneric:"Non è stato possibile disattivare l'audio del microfono",unmuteGeneric:"Non è stato possibile riattivare l'audio del microfono",speakingWhileMuted:"Il microfono è disattivato",startScreenShareGeneric:"Non è stato possibile avviare la condivisione dello schermo",stopScreenShareGeneric:"Non è stato possibile arrestare la condivisione dello schermo",callNetworkQualityLow:"La qualità della rete è bassa.",callNoSpeakerFound:"Non sono stati trovati altoparlanti o cuffie. Connetti un dispositivo audio per ascoltare la chiamata.",callNoMicrophoneFound:"Nessun microfono trovato. Connetti un dispositivo di input audio.",callMicrophoneAccessDenied:"Impossibile accedere al microfono. Fare clic sul blocco nella barra degli indirizzi per concedere l'autorizzazione a questa pagina Web.",callMicrophoneMutedBySystem:"Il sistema disattiva l'audio.",callMacOsMicrophoneAccessDenied:"Impossibile accedere al microfono. Concedi l'autorizzazione al microfono nelle impostazioni di privacy di macOS.",callLocalVideoFreeze:"Larghezza di banda di rete insufficiente. Il video potrebbe essere sospeso per gli altri partecipanti alla chiamata.",callCameraAccessDenied:"Non è possibile accedere alla fotocamera. Fare clic sul blocco nella barra degli indirizzi per concedere l'autorizzazione a questa pagina Web.",callCameraAlreadyInUse:"Non è possibile accedere alla fotocamera. Potrebbe essere già in uso da un'altra applicazione.",callMacOsCameraAccessDenied:"MacOS sta bloccando l'accesso alla fotocamera. Aggiorna le impostazioni di privacy per consentire a questo browser di accedere alla fotocamera.",callMacOsScreenShareAccessDenied:"MacOS sta bloccando la condivisione dello schermo. Aggiorna le impostazioni di privacy per consentire a questo browser di registrare lo schermo.",dismissButtonAriaLabel:"Chiudi",failedToJoinCallGeneric:"Non è stato possibile partecipare alla chiamata.",failedToJoinCallInvalidMeetingLink:"Impossibile partecipare alla riunione. Collegamento non valido."};var videoGallery$8={screenIsBeingSharedMessage:"Stai condividendo lo schermo",screenShareLoadingMessage:"Caricamento dello schermo di {participant}",localVideoLabel:"Tu",localVideoCameraSwitcherLabel:"Cambia videocamera",localVideoMovementLabel:"Riquadro video locale mobile",localVideoSelectedDescription:"{cameraName} selezionata",displayNamePlaceholder:"Partecipante senza nome"};var dialpad$8={placeholderText:"Inserisci un numero"};var HoldButton$9={onLabel:"Riprendi",offLabel:"Mantenere",toolTipOnContent:"Riprendi chiamata",toolTipOffContent:"Metti in attesa chiamata"};var it_IT$1 = {participantItem:participantItem$8,typingIndicator:typingIndicator$8,sendBox:sendBox$8,messageStatusIndicator:messageStatusIndicator$8,endCallButton:endCallButton$8,cameraButton:cameraButton$8,microphoneButton:microphoneButton$8,devicesButton:devicesButton$8,participantsButton:participantsButton$8,screenShareButton:screenShareButton$8,messageThread:messageThread$8,errorBar:errorBar$8,videoGallery:videoGallery$8,dialpad:dialpad$8,HoldButton:HoldButton$9};
|
869
942
|
|
870
|
-
var participantItem$7={isMeText:"(自分)",menuTitle:"その他のオプション",removeButtonLabel:"削除",sharingIconLabel:"共有",mutedIconLabel:"ミュート状態"};var typingIndicator$7={singleUser:"{user} さんが入力しています...",multipleUsers:"{users} さんが入力しています...",multipleUsersAbbreviateOne:"{users} さんとその他 1 人が入力しています...",multipleUsersAbbreviateMany:"{users} さんと他 {numOthers} 人が入力しています...",delimiter:","};var sendBox$7={placeholderText:"メッセージを入力",textTooLong:"メッセージの長さが上限を超えています。",sendButtonAriaLabel:"メッセージの送信",fileUploadsPendingError:"アップロード中です... お待ちください。"};var messageStatusIndicator$7={deliveredAriaLabel:"メッセージを送信しました",deliveredTooltipText:"送信しました",seenAriaLabel:"他のユーザーが表示したメッセージ",seenTooltipText:"既読",readByTooltipText:"{remoteParticipantsCount} の {messageThreadReadCount} による読み取り",sendingAriaLabel:"メッセージを送信しています",sendingTooltipText:"送信中",failedToSendAriaLabel:"メッセージの送信に失敗しました",failedToSendTooltipText:"送信できませんでした"};var endCallButton$7={label:"退出",tooltipContent:"通話から退席"};var cameraButton$7={onLabel:"オフにする",offLabel:"オンにする",tooltipDisabledContent:"カメラが無効になっています",tooltipOnContent:"カメラをオフ",tooltipOffContent:"カメラをオンにする",tooltipVideoLoadingContent:"ビデオの読み込み中です",cameraMenuTitle:"カメラ",cameraMenuTooltip:"カメラの選択"};var microphoneButton$7={onLabel:"ミュート",offLabel:"ミュート解除",tooltipDisabledContent:"マイクが無効になっています",tooltipOnContent:"マイクをミュートにする",tooltipOffContent:"マイクのミュートを解除する",microphoneMenuTitle:"マイク",microphoneMenuTooltip:"マイクの選択",speakerMenuTitle:"スピーカー",speakerMenuTooltip:"スピーカーの選択"};var devicesButton$7={label:"デバイス",tooltipContent:"デバイスの管理",cameraMenuTitle:"カメラ",cameraMenuTooltip:"カメラの選択",microphoneMenuTitle:"マイク",microphoneMenuTooltip:"マイクの選択",speakerMenuTitle:"スピーカー",speakerMenuTooltip:"スピーカーの選択"};var participantsButton$7={label:"ユーザー",tooltipContent:"参加者を表示する",menuHeader:"この通話で",participantsListButtonLabel:"{numParticipants} 人",muteAllButtonLabel:"全員をミュート",copyInviteLinkButtonLabel:"招待用のリンクをコピー"};var screenShareButton$7={onLabel:"プレゼンテーションの停止",offLabel:"提示",tooltipDisabledContent:"プレゼンテーションは無効です",tooltipOnContent:"画面の表示",tooltipOffContent:"画面のプレゼンテーション"};var messageThread$7={yesterday:"昨日",sunday:"日曜日",monday:"月曜日",tuesday:"火曜日",wednesday:"水曜日",thursday:"木曜日",friday:"金曜日",saturday:"土曜日",participantJoined:"チャットに参加しました。",participantLeft:"チャットから退出しました。",editMessage:"編集",removeMessage:"削除",editedTag:"編集済み",liveAuthorIntro:"{author} さんの発言",editBoxTextLimit:"メッセージが{limitNumber}文字の制限を超えています",editBoxPlaceholderText:"メッセージを編集する",newMessagesIndicator:"新しいメッセージ",noDisplayNameSub:"名前がありません",editBoxCancelButton:"取り消し",editBoxSubmitButton:"送信",messageReadCount:"{remoteParticipantsCount} の {messageReadByCount} による読み取り"};var errorBar$7={unableToReachChatService:"オフラインです",accessDenied:"チャット サービスにアクセスできません- 指定されたユーザー資格情報をご確認ください",userNotInChatThread:"このチャット スレッドにはもう参加していません",sendMessageNotInChatThread:"このチャット スレッドに参加していないため、メッセージを送信できませんでした",sendMessageGeneric:"メッセージを送信できませんでした。",callingNetworkFailure:"通話の接続中に問題が発生しました。オフラインのようです。",startVideoGeneric:"ビデオを開始できませんでした",stopVideoGeneric:"ビデオを停止できませんでした",muteGeneric:"マイクをミュートできませんでした",unmuteGeneric:"マイクのミュートを解除できませんでした",speakingWhileMuted:"マイクがミュートになっています",startScreenShareGeneric:"画面の共有を開始できませんでした",stopScreenShareGeneric:"画面の共有を停止できませんでした",callNetworkQualityLow:"ネットワークの品質が低くなっています。",callNoSpeakerFound:"スピーカーまたはヘッドフォンが見つかりません。音声デバイスを接続して通話を聞きます。",callNoMicrophoneFound:"マイクが見つかりません。オーディオ入力デバイスを接続します。",callMicrophoneAccessDenied:"マイクにアクセスできません。アドレス バーのロックをクリックして、この Web ページにアクセス許可を付与します。",callMicrophoneMutedBySystem:"システムによってミュートになっています。",callMacOsMicrophoneAccessDenied:"マイクにアクセスできません。macOS のプライバシー設定でマイクへのアクセス許可を付与します。",callLocalVideoFreeze:"ネットワーク帯域幅が不十分です。通話中に他のユーザーのビデオが一時停止している可能性があります。",callCameraAccessDenied:"カメラにアクセスできません。アドレス バーのロックをクリックして、この Web ページにアクセス許可を付与します。",callCameraAlreadyInUse:"カメラにアクセスできません。別のアプリケーションによって既に使用されている可能性があります。",callMacOsCameraAccessDenied:"MacOS がカメラへのアクセスをブロックしています。プライバシー設定を更新して、このブラウザーがカメラにアクセスできるようにします。",callMacOsScreenShareAccessDenied:"MacOS は画面の共有をブロックしています。プライバシー設定を更新して、このブラウザーで画面を録画できるようにします。"};var videoGallery$7={screenIsBeingSharedMessage:"画面を共有しています",screenShareLoadingMessage:"{participant} の画面を読み込んでいます",localVideoLabel:"自分",localVideoCameraSwitcherLabel:"
|
943
|
+
var participantItem$7={isMeText:"(自分)",menuTitle:"その他のオプション",removeButtonLabel:"削除",sharingIconLabel:"共有",mutedIconLabel:"ミュート状態",displayNamePlaceholder:"名前のない参加者"};var typingIndicator$7={singleUser:"{user} さんが入力しています...",multipleUsers:"{users} さんが入力しています...",multipleUsersAbbreviateOne:"{users} さんとその他 1 人が入力しています...",multipleUsersAbbreviateMany:"{users} さんと他 {numOthers} 人が入力しています...",delimiter:","};var sendBox$7={placeholderText:"メッセージを入力",textTooLong:"メッセージの長さが上限を超えています。",sendButtonAriaLabel:"メッセージの送信",fileUploadsPendingError:"アップロード中です... お待ちください。"};var messageStatusIndicator$7={deliveredAriaLabel:"メッセージを送信しました",deliveredTooltipText:"送信しました",seenAriaLabel:"他のユーザーが表示したメッセージ",seenTooltipText:"既読",readByTooltipText:"{remoteParticipantsCount} の {messageThreadReadCount} による読み取り",sendingAriaLabel:"メッセージを送信しています",sendingTooltipText:"送信中",failedToSendAriaLabel:"メッセージの送信に失敗しました",failedToSendTooltipText:"送信できませんでした"};var endCallButton$7={label:"退出",tooltipContent:"通話から退席"};var cameraButton$7={onLabel:"オフにする",offLabel:"オンにする",tooltipDisabledContent:"カメラが無効になっています",tooltipOnContent:"カメラをオフ",tooltipOffContent:"カメラをオンにする",tooltipVideoLoadingContent:"ビデオの読み込み中です",cameraMenuTitle:"カメラ",cameraMenuTooltip:"カメラの選択",cameraButtonSplitRoleDescription:"分割ボタン",onSplitButtonAriaLabel:"カメラとカメラ オプションをオフにする",offSplitButtonAriaLabel:"カメラとカメラ オプションをオンにする",cameraActionTurnedOnAnnouncement:"カメラがオンになっています",cameraActionTurnedOffAnnouncement:"カメラがオフになっています"};var microphoneButton$7={onLabel:"ミュート",offLabel:"ミュート解除",tooltipDisabledContent:"マイクが無効になっています",tooltipOnContent:"マイクをミュートにする",tooltipOffContent:"マイクのミュートを解除する",microphoneMenuTitle:"マイク",microphoneMenuTooltip:"マイクの選択",speakerMenuTitle:"スピーカー",speakerMenuTooltip:"スピーカーの選択",microphoneButtonSplitRoleDescription:"分割ボタン",onSplitButtonAriaLabel:"マイクとオーディオのオプションをミュートにする",offSplitButtonAriaLabel:"マイクとオーディオのオプションのミュートを解除する",microphoneActionTurnedOnAnnouncement:"マイクがオンになっています",microphoneActionTurnedOffAnnouncement:"マイクがオフになっています"};var devicesButton$7={label:"デバイス",tooltipContent:"デバイスの管理",cameraMenuTitle:"カメラ",cameraMenuTooltip:"カメラの選択",audioDeviceMenuTitle:"オーディオ デバイス",audioDeviceMenuTooltip:"オーディオ デバイスの選択",microphoneMenuTitle:"マイク",microphoneMenuTooltip:"マイクの選択",speakerMenuTitle:"スピーカー",speakerMenuTooltip:"スピーカーの選択"};var participantsButton$7={label:"ユーザー",tooltipContent:"参加者を表示する",menuHeader:"この通話で",participantsListButtonLabel:"{numParticipants} 人",muteAllButtonLabel:"全員をミュート",copyInviteLinkButtonLabel:"招待用のリンクをコピー"};var screenShareButton$7={onLabel:"プレゼンテーションの停止",offLabel:"提示",tooltipDisabledContent:"プレゼンテーションは無効です",tooltipOnContent:"画面の表示",tooltipOffContent:"画面のプレゼンテーション"};var messageThread$7={yesterday:"昨日",sunday:"日曜日",monday:"月曜日",tuesday:"火曜日",wednesday:"水曜日",thursday:"木曜日",friday:"金曜日",saturday:"土曜日",participantJoined:"チャットに参加しました。",participantLeft:"チャットから退出しました。",editMessage:"編集",removeMessage:"削除",resendMessage:"もう一度送信",failToSendTag:"送信できませんでした",editedTag:"編集済み",liveAuthorIntro:"{author} さんの発言",editBoxTextLimit:"メッセージが{limitNumber}文字の制限を超えています",editBoxPlaceholderText:"メッセージを編集する",newMessagesIndicator:"新しいメッセージ",noDisplayNameSub:"名前がありません",editBoxCancelButton:"取り消し",editBoxSubmitButton:"送信",messageReadCount:"{remoteParticipantsCount} の {messageReadByCount} による読み取り",actionMenuMoreOptions:"その他のオプション"};var errorBar$7={unableToReachChatService:"オフラインです",accessDenied:"チャット サービスにアクセスできません- 指定されたユーザー資格情報をご確認ください",userNotInChatThread:"このチャット スレッドにはもう参加していません",sendMessageNotInChatThread:"このチャット スレッドに参加していないため、メッセージを送信できませんでした",sendMessageGeneric:"メッセージを送信できませんでした。",callingNetworkFailure:"通話の接続中に問題が発生しました。オフラインのようです。",startVideoGeneric:"ビデオを開始できませんでした",stopVideoGeneric:"ビデオを停止できませんでした",muteGeneric:"マイクをミュートできませんでした",unmuteGeneric:"マイクのミュートを解除できませんでした",speakingWhileMuted:"マイクがミュートになっています",startScreenShareGeneric:"画面の共有を開始できませんでした",stopScreenShareGeneric:"画面の共有を停止できませんでした",callNetworkQualityLow:"ネットワークの品質が低くなっています。",callNoSpeakerFound:"スピーカーまたはヘッドフォンが見つかりません。音声デバイスを接続して通話を聞きます。",callNoMicrophoneFound:"マイクが見つかりません。オーディオ入力デバイスを接続します。",callMicrophoneAccessDenied:"マイクにアクセスできません。アドレス バーのロックをクリックして、この Web ページにアクセス許可を付与します。",callMicrophoneMutedBySystem:"システムによってミュートになっています。",callMacOsMicrophoneAccessDenied:"マイクにアクセスできません。macOS のプライバシー設定でマイクへのアクセス許可を付与します。",callLocalVideoFreeze:"ネットワーク帯域幅が不十分です。通話中に他のユーザーのビデオが一時停止している可能性があります。",callCameraAccessDenied:"カメラにアクセスできません。アドレス バーのロックをクリックして、この Web ページにアクセス許可を付与します。",callCameraAlreadyInUse:"カメラにアクセスできません。別のアプリケーションによって既に使用されている可能性があります。",callMacOsCameraAccessDenied:"MacOS がカメラへのアクセスをブロックしています。プライバシー設定を更新して、このブラウザーがカメラにアクセスできるようにします。",callMacOsScreenShareAccessDenied:"MacOS は画面の共有をブロックしています。プライバシー設定を更新して、このブラウザーで画面を録画できるようにします。",dismissButtonAriaLabel:"閉じる",failedToJoinCallGeneric:"通話に参加できませんでした",failedToJoinCallInvalidMeetingLink:"会議に参加できません。リンクが無効です。"};var videoGallery$7={screenIsBeingSharedMessage:"画面を共有しています",screenShareLoadingMessage:"{participant} の画面を読み込んでいます",localVideoLabel:"自分",localVideoCameraSwitcherLabel:"カメラを切り替え",localVideoMovementLabel:"移動可能なローカル ビデオ タイル",localVideoSelectedDescription:"{cameraName} が選択されました。",displayNamePlaceholder:"名前のない参加者"};var dialpad$7={placeholderText:"番号の入力"};var HoldButton$8={onLabel:"再開",offLabel:"保留",toolTipOnContent:"通話の再開",toolTipOffContent:"通話の保留"};var ja_JP$1 = {participantItem:participantItem$7,typingIndicator:typingIndicator$7,sendBox:sendBox$7,messageStatusIndicator:messageStatusIndicator$7,endCallButton:endCallButton$7,cameraButton:cameraButton$7,microphoneButton:microphoneButton$7,devicesButton:devicesButton$7,participantsButton:participantsButton$7,screenShareButton:screenShareButton$7,messageThread:messageThread$7,errorBar:errorBar$7,videoGallery:videoGallery$7,dialpad:dialpad$7,HoldButton:HoldButton$8};
|
871
944
|
|
872
|
-
var participantItem$6={isMeText:"(나)",menuTitle:"추가 옵션",removeButtonLabel:"제거",sharingIconLabel:"공유 중",mutedIconLabel:"음소거됨"};var typingIndicator$6={singleUser:"{user} 님이 입력 중...",multipleUsers:"{users} 님이 입력하는 중...",multipleUsersAbbreviateOne:"{users} 님 외 1명이 입력 중...",multipleUsersAbbreviateMany:"{users} 님 외 {numOthers} 님이 입력하는 중...",delimiter:"닫는 렌즈형 흰색 괄호"};var sendBox$6={placeholderText:"메시지를 입력하세요",textTooLong:"메시지 길이가 최대 제한을 초과했습니다.",sendButtonAriaLabel:"메시지 보내기",fileUploadsPendingError:"업로드 중... 잠시만 기다려 주세요."};var messageStatusIndicator$6={deliveredAriaLabel:"메시지를 보냄",deliveredTooltipText:"보냄",seenAriaLabel:"다른 사용자가 본 메시지",seenTooltipText:"표시됨",readByTooltipText:"{messageThreadReadCount}/{remoteParticipantsCount}명이 읽음",sendingAriaLabel:"메시지를 보내는 중",sendingTooltipText:"보내는 중",failedToSendAriaLabel:"메시지를 보내지 못함",failedToSendTooltipText:"보내기 실패"};var endCallButton$6={label:"휴가",tooltipContent:"통화 종료"};var cameraButton$6={onLabel:"끄기",offLabel:"켜기",tooltipDisabledContent:"카메라가 비활성화되었습니다",tooltipOnContent:"카메라 끄기",tooltipOffContent:"카메라 켜기",tooltipVideoLoadingContent:"비디오를 로드하는 중입니다.",cameraMenuTitle:"카메라",cameraMenuTooltip:"카메라 선택"};var microphoneButton$6={onLabel:"음소거",offLabel:"음소거 해제",tooltipDisabledContent:"마이크가 비활성화되었습니다",tooltipOnContent:"마이크 음소거",tooltipOffContent:"마이크 음소거 해제",microphoneMenuTitle:"마이크",microphoneMenuTooltip:"마이크 선택",speakerMenuTitle:"발언자",speakerMenuTooltip:"스피커 선택"};var devicesButton$6={label:"장치",tooltipContent:"장치 관리",cameraMenuTitle:"카메라",cameraMenuTooltip:"카메라 선택",microphoneMenuTitle:"마이크",microphoneMenuTooltip:"마이크 선택",speakerMenuTitle:"발언자",speakerMenuTooltip:"스피커 선택"};var participantsButton$6={label:"사용자",tooltipContent:"프레젠테이션 표시",menuHeader:"이 통화에서",participantsListButtonLabel:"{numParticipants}명",muteAllButtonLabel:"모두 음소거",copyInviteLinkButtonLabel:"초대 링크 복사"};var screenShareButton$6={onLabel:"프레젠테이션 중지",offLabel:"프레젠테이션",tooltipDisabledContent:"프레젠테이션 사용 안 함",tooltipOnContent:"화면을 프레젠테이션하는 중",tooltipOffContent:"화면 프레젠테이션"};var messageThread$6={yesterday:"어제",sunday:"일요일",monday:"월요일",tuesday:"화요일",wednesday:"수요일",thursday:"목요일",friday:"금요일",saturday:"토요일",participantJoined:"채팅에 참여했습니다.",participantLeft:"이 채팅을 나갔습니다.",editMessage:"편집",removeMessage:"삭제",editedTag:"편집됨",liveAuthorIntro:"{author} 님이 말합니다.",editBoxTextLimit:"메시지가 {limitNumber} 문자 제한을 초과했습니다.",editBoxPlaceholderText:"메시지 편집",newMessagesIndicator:"새 메시지",noDisplayNameSub:"이름 없음",editBoxCancelButton:"취소",editBoxSubmitButton:"제출",messageReadCount:"{messageReadByCount}/{remoteParticipantsCount}명이 읽음"};var errorBar$6={unableToReachChatService:"오프라인 상태입니다.",accessDenied:"채팅 서비스에 액세스할 수 없습니다. 제공된 사용자 자격 증명을 확인하세요.",userNotInChatThread:"이 채팅 스레드에 더 이상 없습니다.",sendMessageNotInChatThread:"이 채팅 스레드에 더 이상 존재하지 않으므로 메시지를 보내지 못했습니다.",sendMessageGeneric:"메시지를 보내지 못했습니다",callingNetworkFailure:"통화 연결 중 - 오프라인 상태인 것 같습니다.",startVideoGeneric:"비디오를 시작하지 못함",stopVideoGeneric:"비디오를 중지하지 못함",muteGeneric:"마이크를 음소거하지 못함",unmuteGeneric:"마이크 음소거를 해제하지 못함",speakingWhileMuted:"마이크가 음소거됨",startScreenShareGeneric:"화면 공유를 시작하지 못함",stopScreenShareGeneric:"화면 공유를 중지하지 못함",callNetworkQualityLow:"네트워크 품질이 낮습니다.",callNoSpeakerFound:"스피커 또는 헤드폰을 찾을 수 없습니다. 오디오 장치를 연결하여 통화를 들을 수 있습니다.",callNoMicrophoneFound:"마이크를 찾을 수 없습니다. 오디오 입력 장치를 연결합니다.",callMicrophoneAccessDenied:"마이크에 액세스할 수 없습니다. 주소 표시줄에서 잠금을 클릭하여 이 웹 페이지에 권한을 부여합니다.",callMicrophoneMutedBySystem:"시스템에 의해 음소거되었습니다.",callMacOsMicrophoneAccessDenied:"마이크에 액세스할 수 없습니다. macOS 개인 정보 설정에서 마이크 권한을 부여합니다.",callLocalVideoFreeze:"네트워크 대역폭이 불량합니다. 통화 중에 다른 사람에 대해 비디오가 일시 중지된 것 같습니다.",callCameraAccessDenied:"카메라에 액세스할 수 없습니다. 주소 표시줄에서 잠금을 클릭하여 이 웹 페이지에 권한을 부여합니다.",callCameraAlreadyInUse:"카메라에 액세스할 수 없습니다. 다른 응용 프로그램에서 이미 사용 중일 수 있습니다.",callMacOsCameraAccessDenied:"MacOS에서 카메라에 대한 액세스를 차단하고 있습니다. 이 브라우저에서 카메라에 액세스할 수 있도록 개인 정보 설정을 업데이트합니다.",callMacOsScreenShareAccessDenied:"MacOS에서 화면 공유를 차단하고 있습니다. 이 브라우저에서 화면을 녹화할 수 있도록 개인 정보 설정을 업데이트합니다."};var videoGallery$6={screenIsBeingSharedMessage:"화면을 공유 중입니다.",screenShareLoadingMessage:"{participant} 님의 화면 로드 중",localVideoLabel:"나",localVideoCameraSwitcherLabel:"카메라
|
945
|
+
var participantItem$6={isMeText:"(나)",menuTitle:"추가 옵션",removeButtonLabel:"제거",sharingIconLabel:"공유 중",mutedIconLabel:"음소거됨",displayNamePlaceholder:"명명되지 않은 참가자"};var typingIndicator$6={singleUser:"{user} 님이 입력 중...",multipleUsers:"{users} 님이 입력하는 중...",multipleUsersAbbreviateOne:"{users} 님 외 1명이 입력 중...",multipleUsersAbbreviateMany:"{users} 님 외 {numOthers} 님이 입력하는 중...",delimiter:"닫는 렌즈형 흰색 괄호"};var sendBox$6={placeholderText:"메시지를 입력하세요",textTooLong:"메시지 길이가 최대 제한을 초과했습니다.",sendButtonAriaLabel:"메시지 보내기",fileUploadsPendingError:"업로드 중... 잠시만 기다려 주세요."};var messageStatusIndicator$6={deliveredAriaLabel:"메시지를 보냄",deliveredTooltipText:"보냄",seenAriaLabel:"다른 사용자가 본 메시지",seenTooltipText:"표시됨",readByTooltipText:"{messageThreadReadCount}/{remoteParticipantsCount}명이 읽음",sendingAriaLabel:"메시지를 보내는 중",sendingTooltipText:"보내는 중",failedToSendAriaLabel:"메시지를 보내지 못함",failedToSendTooltipText:"보내기 실패"};var endCallButton$6={label:"휴가",tooltipContent:"통화 종료"};var cameraButton$6={onLabel:"끄기",offLabel:"켜기",tooltipDisabledContent:"카메라가 비활성화되었습니다",tooltipOnContent:"카메라 끄기",tooltipOffContent:"카메라 켜기",tooltipVideoLoadingContent:"비디오를 로드하는 중입니다.",cameraMenuTitle:"카메라",cameraMenuTooltip:"카메라 선택",cameraButtonSplitRoleDescription:"분할 단추",onSplitButtonAriaLabel:"카메라 사용 안 함 및 카메라 옵션",offSplitButtonAriaLabel:"카메라 사용 및 카메라 옵션",cameraActionTurnedOnAnnouncement:"카메라가 켜져 있습니다.",cameraActionTurnedOffAnnouncement:"카메라가 꺼져 있습니다."};var microphoneButton$6={onLabel:"음소거",offLabel:"음소거 해제",tooltipDisabledContent:"마이크가 비활성화되었습니다",tooltipOnContent:"마이크 음소거",tooltipOffContent:"마이크 음소거 해제",microphoneMenuTitle:"마이크",microphoneMenuTooltip:"마이크 선택",speakerMenuTitle:"발언자",speakerMenuTooltip:"스피커 선택",microphoneButtonSplitRoleDescription:"분할 단추",onSplitButtonAriaLabel:"마이크 및 오디오 음소거 옵션",offSplitButtonAriaLabel:"마이크 및 오디오 음소거 해제 옵션",microphoneActionTurnedOnAnnouncement:"마이크가 켜져 있습니다.",microphoneActionTurnedOffAnnouncement:"마이크가 꺼져 있습니다."};var devicesButton$6={label:"장치",tooltipContent:"장치 관리",cameraMenuTitle:"카메라",cameraMenuTooltip:"카메라 선택",audioDeviceMenuTitle:"오디오 장치",audioDeviceMenuTooltip:"오디오 장치 선택",microphoneMenuTitle:"마이크",microphoneMenuTooltip:"마이크 선택",speakerMenuTitle:"발언자",speakerMenuTooltip:"스피커 선택"};var participantsButton$6={label:"사용자",tooltipContent:"프레젠테이션 표시",menuHeader:"이 통화에서",participantsListButtonLabel:"{numParticipants}명",muteAllButtonLabel:"모두 음소거",copyInviteLinkButtonLabel:"초대 링크 복사"};var screenShareButton$6={onLabel:"프레젠테이션 중지",offLabel:"프레젠테이션",tooltipDisabledContent:"프레젠테이션 사용 안 함",tooltipOnContent:"화면을 프레젠테이션하는 중",tooltipOffContent:"화면 프레젠테이션"};var messageThread$6={yesterday:"어제",sunday:"일요일",monday:"월요일",tuesday:"화요일",wednesday:"수요일",thursday:"목요일",friday:"금요일",saturday:"토요일",participantJoined:"채팅에 참여했습니다.",participantLeft:"이 채팅을 나갔습니다.",editMessage:"편집",removeMessage:"삭제",resendMessage:"전송 다시 시도",failToSendTag:"보내기 실패",editedTag:"편집됨",liveAuthorIntro:"{author} 님이 말합니다.",editBoxTextLimit:"메시지가 {limitNumber} 문자 제한을 초과했습니다.",editBoxPlaceholderText:"메시지 편집",newMessagesIndicator:"새 메시지",noDisplayNameSub:"이름 없음",editBoxCancelButton:"취소",editBoxSubmitButton:"제출",messageReadCount:"{messageReadByCount}/{remoteParticipantsCount}명이 읽음",actionMenuMoreOptions:"추가 옵션"};var errorBar$6={unableToReachChatService:"오프라인 상태입니다.",accessDenied:"채팅 서비스에 액세스할 수 없습니다. 제공된 사용자 자격 증명을 확인하세요.",userNotInChatThread:"이 채팅 스레드에 더 이상 없습니다.",sendMessageNotInChatThread:"이 채팅 스레드에 더 이상 존재하지 않으므로 메시지를 보내지 못했습니다.",sendMessageGeneric:"메시지를 보내지 못했습니다",callingNetworkFailure:"통화 연결 중 - 오프라인 상태인 것 같습니다.",startVideoGeneric:"비디오를 시작하지 못함",stopVideoGeneric:"비디오를 중지하지 못함",muteGeneric:"마이크를 음소거하지 못함",unmuteGeneric:"마이크 음소거를 해제하지 못함",speakingWhileMuted:"마이크가 음소거됨",startScreenShareGeneric:"화면 공유를 시작하지 못함",stopScreenShareGeneric:"화면 공유를 중지하지 못함",callNetworkQualityLow:"네트워크 품질이 낮습니다.",callNoSpeakerFound:"스피커 또는 헤드폰을 찾을 수 없습니다. 오디오 장치를 연결하여 통화를 들을 수 있습니다.",callNoMicrophoneFound:"마이크를 찾을 수 없습니다. 오디오 입력 장치를 연결합니다.",callMicrophoneAccessDenied:"마이크에 액세스할 수 없습니다. 주소 표시줄에서 잠금을 클릭하여 이 웹 페이지에 권한을 부여합니다.",callMicrophoneMutedBySystem:"시스템에 의해 음소거되었습니다.",callMacOsMicrophoneAccessDenied:"마이크에 액세스할 수 없습니다. macOS 개인 정보 설정에서 마이크 권한을 부여합니다.",callLocalVideoFreeze:"네트워크 대역폭이 불량합니다. 통화 중에 다른 사람에 대해 비디오가 일시 중지된 것 같습니다.",callCameraAccessDenied:"카메라에 액세스할 수 없습니다. 주소 표시줄에서 잠금을 클릭하여 이 웹 페이지에 권한을 부여합니다.",callCameraAlreadyInUse:"카메라에 액세스할 수 없습니다. 다른 응용 프로그램에서 이미 사용 중일 수 있습니다.",callMacOsCameraAccessDenied:"MacOS에서 카메라에 대한 액세스를 차단하고 있습니다. 이 브라우저에서 카메라에 액세스할 수 있도록 개인 정보 설정을 업데이트합니다.",callMacOsScreenShareAccessDenied:"MacOS에서 화면 공유를 차단하고 있습니다. 이 브라우저에서 화면을 녹화할 수 있도록 개인 정보 설정을 업데이트합니다.",dismissButtonAriaLabel:"닫기",failedToJoinCallGeneric:"통화에 참가하지 못했습니다.",failedToJoinCallInvalidMeetingLink:"모임에 참가할 수 없습니다. 잘못된 링크입니다."};var videoGallery$6={screenIsBeingSharedMessage:"화면을 공유 중입니다.",screenShareLoadingMessage:"{participant} 님의 화면 로드 중",localVideoLabel:"나",localVideoCameraSwitcherLabel:"카메라 전환",localVideoMovementLabel:"이동 가능한 로컬 비디오 타일",localVideoSelectedDescription:"{cameraName} 선택함",displayNamePlaceholder:"명명되지 않은 참가자"};var dialpad$6={placeholderText:"번호 입력"};var HoldButton$7={onLabel:"계속",offLabel:"보류",toolTipOnContent:"통화 계속하기",toolTipOffContent:"통화 대기"};var ko_KR$1 = {participantItem:participantItem$6,typingIndicator:typingIndicator$6,sendBox:sendBox$6,messageStatusIndicator:messageStatusIndicator$6,endCallButton:endCallButton$6,cameraButton:cameraButton$6,microphoneButton:microphoneButton$6,devicesButton:devicesButton$6,participantsButton:participantsButton$6,screenShareButton:screenShareButton$6,messageThread:messageThread$6,errorBar:errorBar$6,videoGallery:videoGallery$6,dialpad:dialpad$6,HoldButton:HoldButton$7};
|
873
946
|
|
874
|
-
var participantItem$5={isMeText:"(jij)",menuTitle:"Meer opties",removeButtonLabel:"Verwijderen",sharingIconLabel:"Delen",mutedIconLabel:"Gedempt"};var typingIndicator$5={singleUser:"{user} typt ...",multipleUsers:"{users} typen ...",multipleUsersAbbreviateOne:"{users} en 1 andere persoon typen ...",multipleUsersAbbreviateMany:"{users} en {numOthers} anderen typen ...",delimiter:", "};var sendBox$5={placeholderText:"Een bericht invoeren",textTooLong:"De lengte van uw bericht overschrijdt de maximumlimiet.",sendButtonAriaLabel:"Bericht verzenden",fileUploadsPendingError:"Uploaden.... Een ogenblik geduld."};var messageStatusIndicator$5={deliveredAriaLabel:"Bericht verzonden",deliveredTooltipText:"Verzonden",seenAriaLabel:"Bericht gezien door anderen",seenTooltipText:"Gezien",readByTooltipText:"Gelezen door {messageThreadReadCount} van {remoteParticipantsCount}",sendingAriaLabel:"Bericht verzenden",sendingTooltipText:"Verzenden",failedToSendAriaLabel:"Het bericht is niet verzonden",failedToSendTooltipText:"Kan niet verzenden"};var endCallButton$5={label:"Verlaten",tooltipContent:"Gesprek verlaten"};var cameraButton$5={onLabel:"Uitschakelen",offLabel:"Inschakelen",tooltipDisabledContent:"Camera is uitgeschakeld",tooltipOnContent:"Camera uitschakelen",tooltipOffContent:"Camera inschakelen",tooltipVideoLoadingContent:"Video wordt geladen",cameraMenuTitle:"Camera",cameraMenuTooltip:"Camera kiezen"};var microphoneButton$5={onLabel:"Dempen",offLabel:"Dempen opheffen",tooltipDisabledContent:"Microfoon is uitgeschakeld",tooltipOnContent:"Microfoon uitschakelen",tooltipOffContent:"Microfoon inschakelen",microphoneMenuTitle:"Microfoon",microphoneMenuTooltip:"Microfoon kiezen",speakerMenuTitle:"Luidspreker",speakerMenuTooltip:"Luidspreker kiezen"};var devicesButton$5={label:"Apparaten",tooltipContent:"Apparaten beheren",cameraMenuTitle:"Camera",cameraMenuTooltip:"Camera kiezen",microphoneMenuTitle:"Microfoon",microphoneMenuTooltip:"Microfoon kiezen",speakerMenuTitle:"Spreker",speakerMenuTooltip:"Luidspreker kiezen"};var participantsButton$5={label:"Personen",tooltipContent:"Deelnemers weergeven",menuHeader:"In dit gesprek",participantsListButtonLabel:"{numParticipants} personen",muteAllButtonLabel:"Alles dempen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren"};var screenShareButton$5={onLabel:"Presenteren stoppen",offLabel:"Presenteren",tooltipDisabledContent:"Presenteren is uitgeschakeld",tooltipOnContent:"Uw scherm presenteren",tooltipOffContent:"Uw scherm presenteren"};var messageThread$5={yesterday:"Gisteren",sunday:"Zondag",monday:"Maandag",tuesday:"Dinsdag",wednesday:"Woensdag",thursday:"Donderdag",friday:"Vrijdag",saturday:"Zaterdag",participantJoined:"neemt nu deel aan de chat.",participantLeft:"heeft de chat verlaten.",editMessage:"Bewerken",removeMessage:"Verwijderen",editedTag:"Bewerkt",liveAuthorIntro:"{author} zegt",editBoxTextLimit:"Uw bericht heeft de limiet van {limitNumber} tekens overschreden",editBoxPlaceholderText:"Uw bericht bewerken",newMessagesIndicator:"Nieuwe berichten",noDisplayNameSub:"Geen naam",editBoxCancelButton:"Annuleren",editBoxSubmitButton:"Verzenden",messageReadCount:"Gelezen door {messageReadByCount} van {remoteParticipantsCount}"};var errorBar$5={unableToReachChatService:"U bent offline",accessDenied:"Kan geen toegang krijgen tot chatservices. Controleer de opgegeven gebruikersreferenties",userNotInChatThread:"U bent niet meer aanwezig in deze chatthread",sendMessageNotInChatThread:"Verzenden van bericht is mislukt omdat u zich niet meer in deze chatthread bevindt",sendMessageGeneric:"Kan bericht niet verzenden",callingNetworkFailure:"Er zijn problemen met het verbinden van een gesprek - Het lijkt erop dat u offline bent",startVideoGeneric:"Kan video niet starten",stopVideoGeneric:"Kan video niet stoppen",muteGeneric:"Kan microfoon niet dempen",unmuteGeneric:"Kan dempen van microfoon niet opheffen",speakingWhileMuted:"De microfoon is gedempt",startScreenShareGeneric:"Kan scherm delen niet starten",stopScreenShareGeneric:"Kan scherm delen niet stoppen",callNetworkQualityLow:"De netwerkkwaliteit is laag.",callNoSpeakerFound:"Geen luidsprekers of hoofdtelefoon gevonden. Sluit een audioapparaat aan om het gesprek te beluisteren.",callNoMicrophoneFound:"Geen microfoons gevonden. Sluit een audio-invoerapparaat aan.",callMicrophoneAccessDenied:"Kan geen toegang krijgen tot de microfoon. Klik op de vergrendeling in de adresbalk om toestemming te verlenen aan deze webpagina.",callMicrophoneMutedBySystem:"U bent gedempt door jouw systeem.",callMacOsMicrophoneAccessDenied:"Kan geen toegang krijgen tot de microfoon. Verleen microfoonmachtiging in de privacyinstellingen voor macOS.",callLocalVideoFreeze:"De netwerkbandbreedte is slecht. Je video wordt mogelijk onderbroken weergegeven voor anderen in het gesprek.",callCameraAccessDenied:"Kan geen toegang krijgen tot de camera. Klik op de vergrendeling in de adresbalk om toestemming te verlenen aan deze webpagina.",callCameraAlreadyInUse:"Kan geen toegang krijgen tot de camera. Het wordt mogelijk al gebruikt door een andere toepassing.",callMacOsCameraAccessDenied:"MacOS blokkeert de toegang tot jouw camera. Werk je privacyinstellingen bij, zodat deze browser toegang heeft tot jouw camera.",callMacOsScreenShareAccessDenied:"MacOS blokkeert scherm delen. Werk je privacyinstellingen bij, zodat deze browser jouw scherm kan opnemen."};var videoGallery$5={screenIsBeingSharedMessage:"U deelt uw scherm",screenShareLoadingMessage:"Scherm van {participant} laden",localVideoLabel:"U",localVideoCameraSwitcherLabel:"Camera wisselen"};var nl_NL$1 = {participantItem:participantItem$5,typingIndicator:typingIndicator$5,sendBox:sendBox$5,messageStatusIndicator:messageStatusIndicator$5,endCallButton:endCallButton$5,cameraButton:cameraButton$5,microphoneButton:microphoneButton$5,devicesButton:devicesButton$5,participantsButton:participantsButton$5,screenShareButton:screenShareButton$5,messageThread:messageThread$5,errorBar:errorBar$5,videoGallery:videoGallery$5};
|
947
|
+
var participantItem$5={isMeText:"(jij)",menuTitle:"Meer opties",removeButtonLabel:"Verwijderen",sharingIconLabel:"Delen",mutedIconLabel:"Gedempt",displayNamePlaceholder:"Naamloze deelnemer"};var typingIndicator$5={singleUser:"{user} typt ...",multipleUsers:"{users} typen ...",multipleUsersAbbreviateOne:"{users} en 1 andere persoon typen ...",multipleUsersAbbreviateMany:"{users} en {numOthers} anderen typen ...",delimiter:", "};var sendBox$5={placeholderText:"Een bericht invoeren",textTooLong:"De lengte van uw bericht overschrijdt de maximumlimiet.",sendButtonAriaLabel:"Bericht verzenden",fileUploadsPendingError:"Uploaden.... Een ogenblik geduld."};var messageStatusIndicator$5={deliveredAriaLabel:"Bericht verzonden",deliveredTooltipText:"Verzonden",seenAriaLabel:"Bericht gezien door anderen",seenTooltipText:"Gezien",readByTooltipText:"Gelezen door {messageThreadReadCount} van {remoteParticipantsCount}",sendingAriaLabel:"Bericht verzenden",sendingTooltipText:"Verzenden",failedToSendAriaLabel:"Het bericht is niet verzonden",failedToSendTooltipText:"Kan niet verzenden"};var endCallButton$5={label:"Verlaten",tooltipContent:"Gesprek verlaten"};var cameraButton$5={onLabel:"Uitschakelen",offLabel:"Inschakelen",tooltipDisabledContent:"Camera is uitgeschakeld",tooltipOnContent:"Camera uitschakelen",tooltipOffContent:"Camera inschakelen",tooltipVideoLoadingContent:"Video wordt geladen",cameraMenuTitle:"Camera",cameraMenuTooltip:"Camera kiezen",cameraButtonSplitRoleDescription:"Knop Splitsen",onSplitButtonAriaLabel:"Camera- en cameraopties uitschakelen",offSplitButtonAriaLabel:"Camera- en cameraopties inschakelen",cameraActionTurnedOnAnnouncement:"Uw camera is ingeschakeld",cameraActionTurnedOffAnnouncement:"Uw camera is uitgeschakeld"};var microphoneButton$5={onLabel:"Dempen",offLabel:"Dempen opheffen",tooltipDisabledContent:"Microfoon is uitgeschakeld",tooltipOnContent:"Microfoon uitschakelen",tooltipOffContent:"Microfoon inschakelen",microphoneMenuTitle:"Microfoon",microphoneMenuTooltip:"Microfoon kiezen",speakerMenuTitle:"Luidspreker",speakerMenuTooltip:"Luidspreker kiezen",microphoneButtonSplitRoleDescription:"Knop Splitsen",onSplitButtonAriaLabel:"Microfoon- en audioopties dempen",offSplitButtonAriaLabel:"Microfoon- en audioopties dempen opheffen",microphoneActionTurnedOnAnnouncement:"Uw microfoon is ingeschakeld",microphoneActionTurnedOffAnnouncement:"Uw microfoon is uitgeschakeld"};var devicesButton$5={label:"Apparaten",tooltipContent:"Apparaten beheren",cameraMenuTitle:"Camera",cameraMenuTooltip:"Camera kiezen",audioDeviceMenuTitle:"Audioapparaat",audioDeviceMenuTooltip:"Audioapparaat kiezen",microphoneMenuTitle:"Microfoon",microphoneMenuTooltip:"Microfoon kiezen",speakerMenuTitle:"Spreker",speakerMenuTooltip:"Luidspreker kiezen"};var participantsButton$5={label:"Personen",tooltipContent:"Deelnemers weergeven",menuHeader:"In dit gesprek",participantsListButtonLabel:"{numParticipants} personen",muteAllButtonLabel:"Alles dempen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren"};var screenShareButton$5={onLabel:"Presenteren stoppen",offLabel:"Presenteren",tooltipDisabledContent:"Presenteren is uitgeschakeld",tooltipOnContent:"Uw scherm presenteren",tooltipOffContent:"Uw scherm presenteren"};var messageThread$5={yesterday:"Gisteren",sunday:"Zondag",monday:"Maandag",tuesday:"Dinsdag",wednesday:"Woensdag",thursday:"Donderdag",friday:"Vrijdag",saturday:"Zaterdag",participantJoined:"neemt nu deel aan de chat.",participantLeft:"heeft de chat verlaten.",editMessage:"Bewerken",removeMessage:"Verwijderen",resendMessage:"Probeer opnieuw te verzenden",failToSendTag:"Verzenden mislukt",editedTag:"Bewerkt",liveAuthorIntro:"{author} zegt",editBoxTextLimit:"Uw bericht heeft de limiet van {limitNumber} tekens overschreden",editBoxPlaceholderText:"Uw bericht bewerken",newMessagesIndicator:"Nieuwe berichten",noDisplayNameSub:"Geen naam",editBoxCancelButton:"Annuleren",editBoxSubmitButton:"Verzenden",messageReadCount:"Gelezen door {messageReadByCount} van {remoteParticipantsCount}",actionMenuMoreOptions:"Meer opties"};var errorBar$5={unableToReachChatService:"U bent offline",accessDenied:"Kan geen toegang krijgen tot chatservices. Controleer de opgegeven gebruikersreferenties",userNotInChatThread:"U bent niet meer aanwezig in deze chatthread",sendMessageNotInChatThread:"Verzenden van bericht is mislukt omdat u zich niet meer in deze chatthread bevindt",sendMessageGeneric:"Kan bericht niet verzenden",callingNetworkFailure:"Er zijn problemen met het verbinden van een gesprek - Het lijkt erop dat u offline bent",startVideoGeneric:"Kan video niet starten",stopVideoGeneric:"Kan video niet stoppen",muteGeneric:"Kan microfoon niet dempen",unmuteGeneric:"Kan dempen van microfoon niet opheffen",speakingWhileMuted:"De microfoon is gedempt",startScreenShareGeneric:"Kan scherm delen niet starten",stopScreenShareGeneric:"Kan scherm delen niet stoppen",callNetworkQualityLow:"De netwerkkwaliteit is laag.",callNoSpeakerFound:"Geen luidsprekers of hoofdtelefoon gevonden. Sluit een audioapparaat aan om het gesprek te beluisteren.",callNoMicrophoneFound:"Geen microfoons gevonden. Sluit een audio-invoerapparaat aan.",callMicrophoneAccessDenied:"Kan geen toegang krijgen tot de microfoon. Klik op de vergrendeling in de adresbalk om toestemming te verlenen aan deze webpagina.",callMicrophoneMutedBySystem:"U bent gedempt door jouw systeem.",callMacOsMicrophoneAccessDenied:"Kan geen toegang krijgen tot de microfoon. Verleen microfoonmachtiging in de privacyinstellingen voor macOS.",callLocalVideoFreeze:"De netwerkbandbreedte is slecht. Je video wordt mogelijk onderbroken weergegeven voor anderen in het gesprek.",callCameraAccessDenied:"Kan geen toegang krijgen tot de camera. Klik op de vergrendeling in de adresbalk om toestemming te verlenen aan deze webpagina.",callCameraAlreadyInUse:"Kan geen toegang krijgen tot de camera. Het wordt mogelijk al gebruikt door een andere toepassing.",callMacOsCameraAccessDenied:"MacOS blokkeert de toegang tot jouw camera. Werk je privacyinstellingen bij, zodat deze browser toegang heeft tot jouw camera.",callMacOsScreenShareAccessDenied:"MacOS blokkeert scherm delen. Werk je privacyinstellingen bij, zodat deze browser jouw scherm kan opnemen.",dismissButtonAriaLabel:"Sluiten",failedToJoinCallGeneric:"Deelnemen aan gesprek mislukt.",failedToJoinCallInvalidMeetingLink:"Kan niet deelnemen aan vergadering. Ongeldige koppeling."};var videoGallery$5={screenIsBeingSharedMessage:"U deelt uw scherm",screenShareLoadingMessage:"Scherm van {participant} laden",localVideoLabel:"U",localVideoCameraSwitcherLabel:"Camera wisselen",localVideoMovementLabel:"Tegel voor verwisselbare lokale video",localVideoSelectedDescription:"{cameraName} geselecteerd",displayNamePlaceholder:"Naamloze deelnemer"};var dialpad$5={placeholderText:"Voer een nummer in"};var HoldButton$6={onLabel:"Hervatten",offLabel:"Pauze",toolTipOnContent:"Gesprek hervatten",toolTipOffContent:"Gesprek in wachtrij plaatsen"};var nl_NL$1 = {participantItem:participantItem$5,typingIndicator:typingIndicator$5,sendBox:sendBox$5,messageStatusIndicator:messageStatusIndicator$5,endCallButton:endCallButton$5,cameraButton:cameraButton$5,microphoneButton:microphoneButton$5,devicesButton:devicesButton$5,participantsButton:participantsButton$5,screenShareButton:screenShareButton$5,messageThread:messageThread$5,errorBar:errorBar$5,videoGallery:videoGallery$5,dialpad:dialpad$5,HoldButton:HoldButton$6};
|
875
948
|
|
876
|
-
var participantItem$4={isMeText:"(você)",menuTitle:"Mais opções",removeButtonLabel:"Remover",sharingIconLabel:"Compartilhamento",mutedIconLabel:"Silenciado"};var typingIndicator$4={singleUser:"{user} está digitando ...",multipleUsers:"{users} estão digitando ...",multipleUsersAbbreviateOne:"{users} e 1 outro estão digitando...",multipleUsersAbbreviateMany:"{users} e {numOthers} outros estão digitando ...",delimiter:", "};var sendBox$4={placeholderText:"Inserir uma mensagem",textTooLong:"O comprimento da mensagem está acima do limite máximo.",sendButtonAriaLabel:"Enviar mensagem",fileUploadsPendingError:"Carregando... Aguarde."};var messageStatusIndicator$4={deliveredAriaLabel:"Mensagem enviada",deliveredTooltipText:"Enviado",seenAriaLabel:"Mensagem vista por outras pessoas",seenTooltipText:"Visto",readByTooltipText:"Lido por {messageThreadReadCount} de {remoteParticipantsCount}",sendingAriaLabel:"Envio de mensagem",sendingTooltipText:"Enviando",failedToSendAriaLabel:"Falha ao enviar mensagem",failedToSendTooltipText:"Falha ao enviar"};var endCallButton$4={label:"Sair",tooltipContent:"Sair da Chamada"};var cameraButton$4={onLabel:"Desabilitar",offLabel:"Habilitar",tooltipDisabledContent:"A câmera está desabilitada",tooltipOnContent:"Desabilitar a câmera",tooltipOffContent:"Ligar a câmera",tooltipVideoLoadingContent:"O vídeo está carregando",cameraMenuTitle:"Câmera",cameraMenuTooltip:"Escolher Câmera"};var microphoneButton$4={onLabel:"Mudo",offLabel:"Desativar mudo",tooltipDisabledContent:"O microfone está desabilitado",tooltipOnContent:"Ativar mudo do microfone",tooltipOffContent:"Desativar mudo do microfone",microphoneMenuTitle:"Microfone",microphoneMenuTooltip:"Escolher Microfone",speakerMenuTitle:"Alto-falante",speakerMenuTooltip:"Escolher Alto-falante"};var devicesButton$4={label:"Dispositivos",tooltipContent:"Gerenciar dispositivos",cameraMenuTitle:"Câmera",cameraMenuTooltip:"Escolher Câmera",microphoneMenuTitle:"Microfone",microphoneMenuTooltip:"Escolher Microfone",speakerMenuTitle:"Alto-falante",speakerMenuTooltip:"Escolher Alto-falante"};var participantsButton$4={label:"Pessoas",tooltipContent:"Mostrar Participantes",menuHeader:"Nesta chamada",participantsListButtonLabel:"{numParticipants} pessoas",muteAllButtonLabel:"Silenciar todos",copyInviteLinkButtonLabel:"Copiar o link de convite"};var screenShareButton$4={onLabel:"Interromper apresentação",offLabel:"Apresentação",tooltipDisabledContent:"A apresentação está desabilitada.",tooltipOnContent:"Apresentando sua tela",tooltipOffContent:"Apresentar sua tela"};var messageThread$4={yesterday:"Ontem",sunday:"Domingo",monday:"Segunda",tuesday:"Terça-feira",wednesday:"Quarta-feira",thursday:"quinta-feira",friday:"Sexta-feira",saturday:"Sábado",participantJoined:"ingressou no chat.",participantLeft:"saiu do chat.",editMessage:"Editar",removeMessage:"Excluir",editedTag:"Editado",liveAuthorIntro:"{author} disse",editBoxTextLimit:"Sua mensagem está acima do limite de {limitNumber} caracteres",editBoxPlaceholderText:"Edite sua mensagem",newMessagesIndicator:"Novas mensagens",noDisplayNameSub:"Sem nome",editBoxCancelButton:"Cancelar",editBoxSubmitButton:"Enviar",messageReadCount:"Lido por {messageReadByCount} de {remoteParticipantsCount}"};var errorBar$4={unableToReachChatService:"Você está offline",accessDenied:"Não é possível acessar os serviços de chat - verifique as credenciais do usuário fornecidas",userNotInChatThread:"Você não está mais neste tópico de chat",sendMessageNotInChatThread:"Falha ao enviar mensagem porque você não está mais neste thread de chat",sendMessageGeneric:"Falha ao enviar mensagem",callingNetworkFailure:"Chamada de conexão desabilitar - parece que você está offline",startVideoGeneric:"Falha ao iniciar o vídeo",stopVideoGeneric:"Falha ao interromper o vídeo",muteGeneric:"Falha ao ativar mudo do microfone",unmuteGeneric:"Falha ao desativar mudo do microfone",speakingWhileMuted:"O microfone está com o mudo ativado",startScreenShareGeneric:"Falha ao iniciar o compartilhamento de tela",stopScreenShareGeneric:"Falha ao interromper o compartilhamento de tela",callNetworkQualityLow:"A qualidade da rede é baixa.",callNoSpeakerFound:"Nenhum alto-falante ou fone de ouvido encontrado. Conecte um dispositivo de áudio para ouvir a chamada.",callNoMicrophoneFound:"Nenhum microfone encontrado. Conecte um dispositivo de entrada de áudio.",callMicrophoneAccessDenied:"Não é possível acessar o microfone. Clique no bloqueio na barra de endereços para conceder permissão a esta página da Web.",callMicrophoneMutedBySystem:"Você está com as notificações desativada pelo sistema.",callMacOsMicrophoneAccessDenied:"Não é possível acessar o microfone. Conceda permissão ao microfone nas configurações de privacidade do macOS.",callLocalVideoFreeze:"A largura de banda da rede é ruim. Seu vídeo pode aparecer em pausa para outras pessoas na chamada.",callCameraAccessDenied:"Não é possível acessar a câmera. Clique no bloqueio na barra de endereços para conceder permissão a esta página da Web.",callCameraAlreadyInUse:"Não é possível acessar a câmera. Talvez ele já esteja em uso por outro aplicativo.",callMacOsCameraAccessDenied:"O MacOS está bloqueando o acesso à sua câmera. Atualize suas configurações de privacidade para permitir que este navegador acesse sua câmera.",callMacOsScreenShareAccessDenied:"O MacOS está bloqueando o compartilhamento de tela. Atualize suas configurações de privacidade para permitir que este navegador grave sua tela."};var videoGallery$4={screenIsBeingSharedMessage:"Você está compartilhando sua tela",screenShareLoadingMessage:"Carregando a tela do {participant}",localVideoLabel:"Você",localVideoCameraSwitcherLabel:"
|
949
|
+
var participantItem$4={isMeText:"(você)",menuTitle:"Mais opções",removeButtonLabel:"Remover",sharingIconLabel:"Compartilhamento",mutedIconLabel:"Silenciado",displayNamePlaceholder:"Participante Sem Nome"};var typingIndicator$4={singleUser:"{user} está digitando ...",multipleUsers:"{users} estão digitando ...",multipleUsersAbbreviateOne:"{users} e 1 outro estão digitando...",multipleUsersAbbreviateMany:"{users} e {numOthers} outros estão digitando ...",delimiter:", "};var sendBox$4={placeholderText:"Inserir uma mensagem",textTooLong:"O comprimento da mensagem está acima do limite máximo.",sendButtonAriaLabel:"Enviar mensagem",fileUploadsPendingError:"Carregando... Aguarde."};var messageStatusIndicator$4={deliveredAriaLabel:"Mensagem enviada",deliveredTooltipText:"Enviado",seenAriaLabel:"Mensagem vista por outras pessoas",seenTooltipText:"Visto",readByTooltipText:"Lido por {messageThreadReadCount} de {remoteParticipantsCount}",sendingAriaLabel:"Envio de mensagem",sendingTooltipText:"Enviando",failedToSendAriaLabel:"Falha ao enviar mensagem",failedToSendTooltipText:"Falha ao enviar"};var endCallButton$4={label:"Sair",tooltipContent:"Sair da Chamada"};var cameraButton$4={onLabel:"Desabilitar",offLabel:"Habilitar",tooltipDisabledContent:"A câmera está desabilitada",tooltipOnContent:"Desabilitar a câmera",tooltipOffContent:"Ligar a câmera",tooltipVideoLoadingContent:"O vídeo está carregando",cameraMenuTitle:"Câmera",cameraMenuTooltip:"Escolher Câmera",cameraButtonSplitRoleDescription:"Botão de divisão",onSplitButtonAriaLabel:"Desabilitar a câmera e as opções da câmera",offSplitButtonAriaLabel:"Habilitar a câmera e as opções da câmera",cameraActionTurnedOnAnnouncement:"A câmera foi ligada",cameraActionTurnedOffAnnouncement:"A câmera foi desligada"};var microphoneButton$4={onLabel:"Mudo",offLabel:"Desativar mudo",tooltipDisabledContent:"O microfone está desabilitado",tooltipOnContent:"Ativar mudo do microfone",tooltipOffContent:"Desativar mudo do microfone",microphoneMenuTitle:"Microfone",microphoneMenuTooltip:"Escolher Microfone",speakerMenuTitle:"Alto-falante",speakerMenuTooltip:"Escolher Alto-falante",microphoneButtonSplitRoleDescription:"Botão de divisão",onSplitButtonAriaLabel:"Ativar mudo das opções de microfone e áudio",offSplitButtonAriaLabel:"Desativar mudo do microfone e opções de áudio",microphoneActionTurnedOnAnnouncement:"O microfone foi ligado",microphoneActionTurnedOffAnnouncement:"O microfone foi desligado"};var devicesButton$4={label:"Dispositivos",tooltipContent:"Gerenciar dispositivos",cameraMenuTitle:"Câmera",cameraMenuTooltip:"Escolher Câmera",audioDeviceMenuTitle:"Dispositivo de Áudio",audioDeviceMenuTooltip:"Escolher o Dispositivo de Áudio",microphoneMenuTitle:"Microfone",microphoneMenuTooltip:"Escolher Microfone",speakerMenuTitle:"Alto-falante",speakerMenuTooltip:"Escolher Alto-falante"};var participantsButton$4={label:"Pessoas",tooltipContent:"Mostrar Participantes",menuHeader:"Nesta chamada",participantsListButtonLabel:"{numParticipants} pessoas",muteAllButtonLabel:"Silenciar todos",copyInviteLinkButtonLabel:"Copiar o link de convite"};var screenShareButton$4={onLabel:"Interromper apresentação",offLabel:"Apresentação",tooltipDisabledContent:"A apresentação está desabilitada.",tooltipOnContent:"Apresentando sua tela",tooltipOffContent:"Apresentar sua tela"};var messageThread$4={yesterday:"Ontem",sunday:"Domingo",monday:"Segunda",tuesday:"Terça-feira",wednesday:"Quarta-feira",thursday:"quinta-feira",friday:"Sexta-feira",saturday:"Sábado",participantJoined:"ingressou no chat.",participantLeft:"saiu do chat.",editMessage:"Editar",removeMessage:"Excluir",resendMessage:"Tente enviar novamente",failToSendTag:"Falha ao enviar",editedTag:"Editado",liveAuthorIntro:"{author} disse",editBoxTextLimit:"Sua mensagem está acima do limite de {limitNumber} caracteres",editBoxPlaceholderText:"Edite sua mensagem",newMessagesIndicator:"Novas mensagens",noDisplayNameSub:"Sem nome",editBoxCancelButton:"Cancelar",editBoxSubmitButton:"Enviar",messageReadCount:"Lido por {messageReadByCount} de {remoteParticipantsCount}",actionMenuMoreOptions:"Mais opções"};var errorBar$4={unableToReachChatService:"Você está offline",accessDenied:"Não é possível acessar os serviços de chat - verifique as credenciais do usuário fornecidas",userNotInChatThread:"Você não está mais neste tópico de chat",sendMessageNotInChatThread:"Falha ao enviar mensagem porque você não está mais neste thread de chat",sendMessageGeneric:"Falha ao enviar mensagem",callingNetworkFailure:"Chamada de conexão desabilitar - parece que você está offline",startVideoGeneric:"Falha ao iniciar o vídeo",stopVideoGeneric:"Falha ao interromper o vídeo",muteGeneric:"Falha ao ativar mudo do microfone",unmuteGeneric:"Falha ao desativar mudo do microfone",speakingWhileMuted:"O microfone está com o mudo ativado",startScreenShareGeneric:"Falha ao iniciar o compartilhamento de tela",stopScreenShareGeneric:"Falha ao interromper o compartilhamento de tela",callNetworkQualityLow:"A qualidade da rede é baixa.",callNoSpeakerFound:"Nenhum alto-falante ou fone de ouvido encontrado. Conecte um dispositivo de áudio para ouvir a chamada.",callNoMicrophoneFound:"Nenhum microfone encontrado. Conecte um dispositivo de entrada de áudio.",callMicrophoneAccessDenied:"Não é possível acessar o microfone. Clique no bloqueio na barra de endereços para conceder permissão a esta página da Web.",callMicrophoneMutedBySystem:"Você está com as notificações desativada pelo sistema.",callMacOsMicrophoneAccessDenied:"Não é possível acessar o microfone. Conceda permissão ao microfone nas configurações de privacidade do macOS.",callLocalVideoFreeze:"A largura de banda da rede é ruim. Seu vídeo pode aparecer em pausa para outras pessoas na chamada.",callCameraAccessDenied:"Não é possível acessar a câmera. Clique no bloqueio na barra de endereços para conceder permissão a esta página da Web.",callCameraAlreadyInUse:"Não é possível acessar a câmera. Talvez ele já esteja em uso por outro aplicativo.",callMacOsCameraAccessDenied:"O MacOS está bloqueando o acesso à sua câmera. Atualize suas configurações de privacidade para permitir que este navegador acesse sua câmera.",callMacOsScreenShareAccessDenied:"O MacOS está bloqueando o compartilhamento de tela. Atualize suas configurações de privacidade para permitir que este navegador grave sua tela.",dismissButtonAriaLabel:"Fechar",failedToJoinCallGeneric:"Ocorreu um erro ao ingressar na chamada.",failedToJoinCallInvalidMeetingLink:"Não é possível ingressar na Reunião. Link Inválido."};var videoGallery$4={screenIsBeingSharedMessage:"Você está compartilhando sua tela",screenShareLoadingMessage:"Carregando a tela do {participant}",localVideoLabel:"Você",localVideoCameraSwitcherLabel:"Alternar câmera",localVideoMovementLabel:"Bloco de Vídeo Local Removível",localVideoSelectedDescription:"{cameraName} selecionado",displayNamePlaceholder:"Participante Sem Nome"};var dialpad$4={placeholderText:"Digite um número"};var HoldButton$5={onLabel:"Retomar",offLabel:"Retenção",toolTipOnContent:"Retomar chamada",toolTipOffContent:"Manter chamada em espera"};var pt_BR$1 = {participantItem:participantItem$4,typingIndicator:typingIndicator$4,sendBox:sendBox$4,messageStatusIndicator:messageStatusIndicator$4,endCallButton:endCallButton$4,cameraButton:cameraButton$4,microphoneButton:microphoneButton$4,devicesButton:devicesButton$4,participantsButton:participantsButton$4,screenShareButton:screenShareButton$4,messageThread:messageThread$4,errorBar:errorBar$4,videoGallery:videoGallery$4,dialpad:dialpad$4,HoldButton:HoldButton$5};
|
877
950
|
|
878
|
-
var participantItem$3={isMeText:"(Вы)",menuTitle:"Дополнительные параметры",removeButtonLabel:"Удалить",sharingIconLabel:"Общий доступ",mutedIconLabel:"Микрофон отключен"};var typingIndicator$3={singleUser:"{user} вводит текст...",multipleUsers:"{users} вводят текст...",multipleUsersAbbreviateOne:"{users} и еще 1 вводят текст...",multipleUsersAbbreviateMany:"{users} и еще {numOthers} вводят текст...",delimiter:"; "};var sendBox$3={placeholderText:"Введите сообщение",textTooLong:"Длина сообщения превышает максимально допустимую.",sendButtonAriaLabel:"Отправить сообщение",fileUploadsPendingError:"Выполняется загрузка. Подождите..."};var messageStatusIndicator$3={deliveredAriaLabel:"Сообщение отправлено",deliveredTooltipText:"Отправлено",seenAriaLabel:"Сообщение просмотрено другими пользователями",seenTooltipText:"Просмотрено",readByTooltipText:"Прочитали: {messageThreadReadCount} из {remoteParticipantsCount}",sendingAriaLabel:"Отправка сообщения",sendingTooltipText:"Отправка",failedToSendAriaLabel:"Не удалось отправить сообщение",failedToSendTooltipText:"Не удалось отправить"};var endCallButton$3={label:"Выйти",tooltipContent:"Покинуть звонок"};var cameraButton$3={onLabel:"Отключить",offLabel:"Включить",tooltipDisabledContent:"Камера отключена",tooltipOnContent:"Выключить камеру",tooltipOffContent:"Включить камеру",tooltipVideoLoadingContent:"Видео загружается",cameraMenuTitle:"Камера",cameraMenuTooltip:"Выбор камеры"};var microphoneButton$3={onLabel:"Отключить звук",offLabel:"Включить звук",tooltipDisabledContent:"Микрофон отключен",tooltipOnContent:"Отключить микрофон",tooltipOffContent:"Включить микрофон",microphoneMenuTitle:"Микрофон",microphoneMenuTooltip:"Выбрать микрофон",speakerMenuTitle:"Динамик",speakerMenuTooltip:"Выбрать динамик"};var devicesButton$3={label:"Устройства",tooltipContent:"Управление устройствами",cameraMenuTitle:"Камера",cameraMenuTooltip:"Выбрать камеру",microphoneMenuTitle:"Микрофон",microphoneMenuTooltip:"Выбрать микрофон",speakerMenuTitle:"Динамик",speakerMenuTooltip:"Выбрать динамик"};var participantsButton$3={label:"Люди",tooltipContent:"Показать участников",menuHeader:"В этом звонке",participantsListButtonLabel:"Пользователей: {numParticipants}",muteAllButtonLabel:"Отключить все микрофоны",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением"};var screenShareButton$3={onLabel:"Остановить демонстрацию",offLabel:"Демонстрировать",tooltipDisabledContent:"Демонстрация отключена",tooltipOnContent:"Демонстрация экрана",tooltipOffContent:"Демонстрировать экран"};var messageThread$3={yesterday:"Вчера",sunday:"Воскресенье",monday:"Понедельник",tuesday:"Вторник",wednesday:"Среда",thursday:"Четверг",friday:"Пятница",saturday:"Суббота",participantJoined:"присоединился к чату.",participantLeft:"покинул чат.",editMessage:"Изменить",removeMessage:"Удалить",editedTag:"Изменено",liveAuthorIntro:"{author} говорит",editBoxTextLimit:"Превышено предельное число символов в {limitNumber} сообщении",editBoxPlaceholderText:"Отредактируйте сообщение",newMessagesIndicator:"Новые сообщения",noDisplayNameSub:"Без имени",editBoxCancelButton:"Отмена",editBoxSubmitButton:"Отправить",messageReadCount:"Прочитали: {messageReadByCount} из {remoteParticipantsCount}"};var errorBar$3={unableToReachChatService:"Вы не в сети",accessDenied:"Не удалось получить доступ к службам чата. Проверьте предоставленные учетные данные пользователя",userNotInChatThread:"Вы больше не находитесь в цепочке этого чата",sendMessageNotInChatThread:"Не удалось отправить сообщение, так как вы больше не находитесь в цепочке этого чата",sendMessageGeneric:"Не удалось отправить сообщение",callingNetworkFailure:"Тревожное подключение вызова — кажется, вы не в сети",startVideoGeneric:"Не удалось запустить видео",stopVideoGeneric:"Не удалось остановить видео",muteGeneric:"Не удалось отключить микрофон",unmuteGeneric:"Не удалось включить микрофон",speakingWhileMuted:"Микрофон отключен",startScreenShareGeneric:"Не удалось начать демонстрацию экрана",stopScreenShareGeneric:"Не удалось остановить демонстрацию экрана",callNetworkQualityLow:"Качество работы сети: низкое.",callNoSpeakerFound:"Динамики и наушники не найдены. Подключите звуковое устройство, чтобы услышать звонок.",callNoMicrophoneFound:"Микрофоны не найдены. Подключение звукового устройства ввода.",callMicrophoneAccessDenied:"Не удается получить доступ к микрофону. Щелкните блокировку в адресной строке, чтобы предоставить разрешение на эту веб-страницу.",callMicrophoneMutedBySystem:"Система отключила ваш микрофон.",callMacOsMicrophoneAccessDenied:"Не удается получить доступ к микрофону. Предоставьте разрешение на доступ к микрофону в параметрах конфиденциальности macOS.",callLocalVideoFreeze:"Низкая пропускная способность сети. Ваше видео может отображаться как приостановленное для других участников вызова.",callCameraAccessDenied:"Не удается получить доступ к камере. Щелкните блокировку в адресной строке, чтобы предоставить разрешение на эту веб-страницу.",callCameraAlreadyInUse:"Не удается получить доступ к камере. Возможно, оно уже используется другим приложением.",callMacOsCameraAccessDenied:"MacOS блокирует доступ к камере. Обновите параметры конфиденциальности, чтобы разрешить этому браузеру доступ к камере.",callMacOsScreenShareAccessDenied:"MacOS блокирует демонстрацию экрана. Обновите параметры конфиденциальности, чтобы разрешить этому браузеру записывать ваш экран."};var videoGallery$3={screenIsBeingSharedMessage:"Вы демонстрируете свой экран",screenShareLoadingMessage:"Загрузка экрана пользователя {participant}",localVideoLabel:"Вы",localVideoCameraSwitcherLabel:"
|
951
|
+
var participantItem$3={isMeText:"(Вы)",menuTitle:"Дополнительные параметры",removeButtonLabel:"Удалить",sharingIconLabel:"Общий доступ",mutedIconLabel:"Микрофон отключен",displayNamePlaceholder:"Участник без имени"};var typingIndicator$3={singleUser:"{user} вводит текст...",multipleUsers:"{users} вводят текст...",multipleUsersAbbreviateOne:"{users} и еще 1 вводят текст...",multipleUsersAbbreviateMany:"{users} и еще {numOthers} вводят текст...",delimiter:"; "};var sendBox$3={placeholderText:"Введите сообщение",textTooLong:"Длина сообщения превышает максимально допустимую.",sendButtonAriaLabel:"Отправить сообщение",fileUploadsPendingError:"Выполняется загрузка. Подождите..."};var messageStatusIndicator$3={deliveredAriaLabel:"Сообщение отправлено",deliveredTooltipText:"Отправлено",seenAriaLabel:"Сообщение просмотрено другими пользователями",seenTooltipText:"Просмотрено",readByTooltipText:"Прочитали: {messageThreadReadCount} из {remoteParticipantsCount}",sendingAriaLabel:"Отправка сообщения",sendingTooltipText:"Отправка",failedToSendAriaLabel:"Не удалось отправить сообщение",failedToSendTooltipText:"Не удалось отправить"};var endCallButton$3={label:"Выйти",tooltipContent:"Покинуть звонок"};var cameraButton$3={onLabel:"Отключить",offLabel:"Включить",tooltipDisabledContent:"Камера отключена",tooltipOnContent:"Выключить камеру",tooltipOffContent:"Включить камеру",tooltipVideoLoadingContent:"Видео загружается",cameraMenuTitle:"Камера",cameraMenuTooltip:"Выбор камеры",cameraButtonSplitRoleDescription:"Разворачивающаяся кнопка",onSplitButtonAriaLabel:"Отключить камеру и параметры камеры",offSplitButtonAriaLabel:"Включить камеру и параметры камеры",cameraActionTurnedOnAnnouncement:"Камера включена",cameraActionTurnedOffAnnouncement:"Камера отключена"};var microphoneButton$3={onLabel:"Отключить звук",offLabel:"Включить звук",tooltipDisabledContent:"Микрофон отключен",tooltipOnContent:"Отключить микрофон",tooltipOffContent:"Включить микрофон",microphoneMenuTitle:"Микрофон",microphoneMenuTooltip:"Выбрать микрофон",speakerMenuTitle:"Динамик",speakerMenuTooltip:"Выбрать динамик",microphoneButtonSplitRoleDescription:"Разворачивающаяся кнопка",onSplitButtonAriaLabel:"Отключить микрофон и параметры звука",offSplitButtonAriaLabel:"Включить микрофон и параметры звука",microphoneActionTurnedOnAnnouncement:"Ваш микрофон включен",microphoneActionTurnedOffAnnouncement:"Ваш микрофон отключен"};var devicesButton$3={label:"Устройства",tooltipContent:"Управление устройствами",cameraMenuTitle:"Камера",cameraMenuTooltip:"Выбрать камеру",audioDeviceMenuTitle:"Звуковое устройство",audioDeviceMenuTooltip:"Выберите звуковое устройство",microphoneMenuTitle:"Микрофон",microphoneMenuTooltip:"Выбрать микрофон",speakerMenuTitle:"Динамик",speakerMenuTooltip:"Выбрать динамик"};var participantsButton$3={label:"Люди",tooltipContent:"Показать участников",menuHeader:"В этом звонке",participantsListButtonLabel:"Пользователей: {numParticipants}",muteAllButtonLabel:"Отключить все микрофоны",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением"};var screenShareButton$3={onLabel:"Остановить демонстрацию",offLabel:"Демонстрировать",tooltipDisabledContent:"Демонстрация отключена",tooltipOnContent:"Демонстрация экрана",tooltipOffContent:"Демонстрировать экран"};var messageThread$3={yesterday:"Вчера",sunday:"Воскресенье",monday:"Понедельник",tuesday:"Вторник",wednesday:"Среда",thursday:"Четверг",friday:"Пятница",saturday:"Суббота",participantJoined:"присоединился к чату.",participantLeft:"покинул чат.",editMessage:"Изменить",removeMessage:"Удалить",resendMessage:"Отправьте еще раз",failToSendTag:"Не удалось отправить",editedTag:"Изменено",liveAuthorIntro:"{author} говорит",editBoxTextLimit:"Превышено предельное число символов в {limitNumber} сообщении",editBoxPlaceholderText:"Отредактируйте сообщение",newMessagesIndicator:"Новые сообщения",noDisplayNameSub:"Без имени",editBoxCancelButton:"Отмена",editBoxSubmitButton:"Отправить",messageReadCount:"Прочитали: {messageReadByCount} из {remoteParticipantsCount}",actionMenuMoreOptions:"Дополнительные параметры"};var errorBar$3={unableToReachChatService:"Вы не в сети",accessDenied:"Не удалось получить доступ к службам чата. Проверьте предоставленные учетные данные пользователя",userNotInChatThread:"Вы больше не находитесь в цепочке этого чата",sendMessageNotInChatThread:"Не удалось отправить сообщение, так как вы больше не находитесь в цепочке этого чата",sendMessageGeneric:"Не удалось отправить сообщение",callingNetworkFailure:"Тревожное подключение вызова — кажется, вы не в сети",startVideoGeneric:"Не удалось запустить видео",stopVideoGeneric:"Не удалось остановить видео",muteGeneric:"Не удалось отключить микрофон",unmuteGeneric:"Не удалось включить микрофон",speakingWhileMuted:"Микрофон отключен",startScreenShareGeneric:"Не удалось начать демонстрацию экрана",stopScreenShareGeneric:"Не удалось остановить демонстрацию экрана",callNetworkQualityLow:"Качество работы сети: низкое.",callNoSpeakerFound:"Динамики и наушники не найдены. Подключите звуковое устройство, чтобы услышать звонок.",callNoMicrophoneFound:"Микрофоны не найдены. Подключение звукового устройства ввода.",callMicrophoneAccessDenied:"Не удается получить доступ к микрофону. Щелкните блокировку в адресной строке, чтобы предоставить разрешение на эту веб-страницу.",callMicrophoneMutedBySystem:"Система отключила ваш микрофон.",callMacOsMicrophoneAccessDenied:"Не удается получить доступ к микрофону. Предоставьте разрешение на доступ к микрофону в параметрах конфиденциальности macOS.",callLocalVideoFreeze:"Низкая пропускная способность сети. Ваше видео может отображаться как приостановленное для других участников вызова.",callCameraAccessDenied:"Не удается получить доступ к камере. Щелкните блокировку в адресной строке, чтобы предоставить разрешение на эту веб-страницу.",callCameraAlreadyInUse:"Не удается получить доступ к камере. Возможно, оно уже используется другим приложением.",callMacOsCameraAccessDenied:"MacOS блокирует доступ к камере. Обновите параметры конфиденциальности, чтобы разрешить этому браузеру доступ к камере.",callMacOsScreenShareAccessDenied:"MacOS блокирует демонстрацию экрана. Обновите параметры конфиденциальности, чтобы разрешить этому браузеру записывать ваш экран.",dismissButtonAriaLabel:"Закрыть",failedToJoinCallGeneric:"Не удалось присоединиться к звонку.",failedToJoinCallInvalidMeetingLink:"Не удалось присоединиться к собранию. Недопустимая ссылка."};var videoGallery$3={screenIsBeingSharedMessage:"Вы демонстрируете свой экран",screenShareLoadingMessage:"Загрузка экрана пользователя {participant}",localVideoLabel:"Вы",localVideoCameraSwitcherLabel:"Переключить камеру",localVideoMovementLabel:"Перемещаемая локальная плитка видео",localVideoSelectedDescription:"Выбрана камера {cameraName}",displayNamePlaceholder:"Участник без имени"};var dialpad$3={placeholderText:"Введите номер"};var HoldButton$4={onLabel:"Возобновить",offLabel:"Удержать",toolTipOnContent:"Возобновить звонок",toolTipOffContent:"Поставить звонок на удержание"};var ru_RU$1 = {participantItem:participantItem$3,typingIndicator:typingIndicator$3,sendBox:sendBox$3,messageStatusIndicator:messageStatusIndicator$3,endCallButton:endCallButton$3,cameraButton:cameraButton$3,microphoneButton:microphoneButton$3,devicesButton:devicesButton$3,participantsButton:participantsButton$3,screenShareButton:screenShareButton$3,messageThread:messageThread$3,errorBar:errorBar$3,videoGallery:videoGallery$3,dialpad:dialpad$3,HoldButton:HoldButton$4};
|
879
952
|
|
880
|
-
var participantItem$2={isMeText:"(siz)",menuTitle:"Diğer Seçenekler",removeButtonLabel:"Kaldır",sharingIconLabel:"Paylaşım",mutedIconLabel:"Ses kapatıldı"};var typingIndicator$2={singleUser:"{user} yazıyor...",multipleUsers:"{users} yazıyor ...",multipleUsersAbbreviateOne:"{users} ve 1 kişi daha yazıyor...",multipleUsersAbbreviateMany:"{users} ve {numOthers} kişi daha yazıyor...",delimiter:", "};var sendBox$2={placeholderText:"Bir mesaj girin",textTooLong:"İletinizin uzunluğu üst sınırı aşıyor.",sendButtonAriaLabel:"İleti gönder",fileUploadsPendingError:"Karşıya yükleniyor... Lütfen bekleyin."};var messageStatusIndicator$2={deliveredAriaLabel:"İleti gönderildi",deliveredTooltipText:"Gönderilen",seenAriaLabel:"İleti başkaları tarafından görüldü",seenTooltipText:"Görüldü",readByTooltipText:"{messageThreadReadCount} / {remoteParticipantsCount} katılımcı tarafından okundu",sendingAriaLabel:"İleti gönderiliyor",sendingTooltipText:"Gönderiliyor",failedToSendAriaLabel:"İleti gönderilemedi",failedToSendTooltipText:"Gönderilemedi"};var endCallButton$2={label:"Ayrıl",tooltipContent:"Aramadan Ayrıl"};var cameraButton$2={onLabel:"Kapat",offLabel:"Aç",tooltipDisabledContent:"Kamera devre dışı",tooltipOnContent:"Kamerayı kapat",tooltipOffContent:"Kamerayı aç",tooltipVideoLoadingContent:"Video yükleniyor",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera Seç"};var microphoneButton$2={onLabel:"Sesi kapat",offLabel:"Sesi aç",tooltipDisabledContent:"Mikrofon devre dışı",tooltipOnContent:"Mikrofonun sesini kapat",tooltipOffContent:"Mikrofonun sesini aç",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon Seç",speakerMenuTitle:"Hoparlör",speakerMenuTooltip:"Hoparlör Seç"};var devicesButton$2={label:"Cihazlar",tooltipContent:"Cihazları yönet",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera Seç",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon Seç",speakerMenuTitle:"Hoparlör",speakerMenuTooltip:"Hoparlör Seç"};var participantsButton$2={label:"Kişiler",tooltipContent:"Katılımcıları Göster",menuHeader:"Bu aramada",participantsListButtonLabel:"{numParticipants} kişiler",muteAllButtonLabel:"Tümünün sesini kapat",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala"};var screenShareButton$2={onLabel:"Sunumu Durdur",offLabel:"Sun",tooltipDisabledContent:"Sunu devre dışı bırakıldı.",tooltipOnContent:"Ekranınızı sunuluyor",tooltipOffContent:"Ekranınızı sunun"};var messageThread$2={yesterday:"Dün",sunday:"Pazar",monday:"Pazartesi",tuesday:"Salı",wednesday:"Çarşamba",thursday:"Perşembe",friday:"Cuma",saturday:"Cumartesi",participantJoined:"sohbete katıldı.",participantLeft:"sohbetten ayrıldı.",editMessage:"Düzenle",removeMessage:"Sil",editedTag:"Düzenlendi",liveAuthorIntro:"{author} şöyle diyor:",editBoxTextLimit:"İletiniz en fazla {limitNumber} aşıyor",editBoxPlaceholderText:"İletinizi düzenleyin",newMessagesIndicator:"Yeni iletiler",noDisplayNameSub:"Ad yok",editBoxCancelButton:"İptal",editBoxSubmitButton:"Gönder",messageReadCount:"{messageReadByCount} / {remoteParticipantsCount} katılımcı tarafından okundu"};var errorBar$2={unableToReachChatService:"Çevrimdışısınız",accessDenied:"Sohbet hizmetlerine erişilemedi. Lütfen sağlanan kullanıcı kimlik bilgilerini denetleyin",userNotInChatThread:"Artık bu sohbet yazışması içinde değilsiniz",sendMessageNotInChatThread:"Artık bu sohbet yazışması içinde olmadığınız için ileti gönderilemedi",sendMessageGeneric:"İleti gönderilemedi",callingNetworkFailure:"Arama bağlanırken sorun oluştu; çevrimdışı görünüyorsunuz",startVideoGeneric:"Video başlatılamadı",stopVideoGeneric:"Video durdurulamadı",muteGeneric:"Mikrofonun sesi kapatılamadı",unmuteGeneric:"Mikrofonun sesi açılamadı",speakingWhileMuted:"Mikrofonunuzun sesi kapalı",startScreenShareGeneric:"Ekran paylaşımı başlatılamadı",stopScreenShareGeneric:"Ekran paylaşımı durdurulamadı",callNetworkQualityLow:"Ağ kalitesi düşük.",callNoSpeakerFound:"Hoparlör veya kulaklık bulunamadı. Aramayı dinlemek için bir ses aygıtı bağlayın.",callNoMicrophoneFound:"Mikrofon bulunamadı. Ses giriş cihazı bağlan.",callMicrophoneAccessDenied:"Mikrofona erişemiyor. Bu web sayfası için izin vermek için adres çubuğundaki kilidi tıklatın.",callMicrophoneMutedBySystem:"Sisteminiz tarafından sessize alındınız.",callMacOsMicrophoneAccessDenied:"Mikrofona erişilemiyor. macOS gizlilik ayarlarınızda mikrofon izni verin.",callLocalVideoFreeze:"Ağ bant genişliği düşük. Görüntülü aramada başkaları için duraklatılmış görünüyor olabilir.",callCameraAccessDenied:"Kameraya erişemiyor. Bu web sayfası için izin vermek için adres çubuğundaki kilidi tıklatın.",callCameraAlreadyInUse:"Kameraya erişemiyor. Başka bir uygulama tarafından zaten kullanılıyor olabilir.",callMacOsCameraAccessDenied:"MacOS kameranıza erişimi engelliyor. Bu tarayıcının kameranıza erişmesine izin vermek için gizlilik ayarlarınızı güncelleştirin.",callMacOsScreenShareAccessDenied:"MacOS ekran paylaşımını engelliyor. Bu tarayıcının ekranınızı kaydetmesini izin vermek için gizlilik ayarlarınızı güncelleştirin."};var videoGallery$2={screenIsBeingSharedMessage:"Ekranınızı paylaşıyorsunuz.",screenShareLoadingMessage:"{participant} adlı katılımcının ekranını yükleme",localVideoLabel:"Siz",localVideoCameraSwitcherLabel:"Kamerayı değiştir"};var tr_TR$1 = {participantItem:participantItem$2,typingIndicator:typingIndicator$2,sendBox:sendBox$2,messageStatusIndicator:messageStatusIndicator$2,endCallButton:endCallButton$2,cameraButton:cameraButton$2,microphoneButton:microphoneButton$2,devicesButton:devicesButton$2,participantsButton:participantsButton$2,screenShareButton:screenShareButton$2,messageThread:messageThread$2,errorBar:errorBar$2,videoGallery:videoGallery$2};
|
953
|
+
var participantItem$2={isMeText:"(siz)",menuTitle:"Diğer Seçenekler",removeButtonLabel:"Kaldır",sharingIconLabel:"Paylaşım",mutedIconLabel:"Ses kapatıldı",displayNamePlaceholder:"Adsız Katılımcı"};var typingIndicator$2={singleUser:"{user} yazıyor...",multipleUsers:"{users} yazıyor ...",multipleUsersAbbreviateOne:"{users} ve 1 kişi daha yazıyor...",multipleUsersAbbreviateMany:"{users} ve {numOthers} kişi daha yazıyor...",delimiter:", "};var sendBox$2={placeholderText:"Bir mesaj girin",textTooLong:"İletinizin uzunluğu üst sınırı aşıyor.",sendButtonAriaLabel:"İleti gönder",fileUploadsPendingError:"Karşıya yükleniyor... Lütfen bekleyin."};var messageStatusIndicator$2={deliveredAriaLabel:"İleti gönderildi",deliveredTooltipText:"Gönderilen",seenAriaLabel:"İleti başkaları tarafından görüldü",seenTooltipText:"Görüldü",readByTooltipText:"{messageThreadReadCount} / {remoteParticipantsCount} katılımcı tarafından okundu",sendingAriaLabel:"İleti gönderiliyor",sendingTooltipText:"Gönderiliyor",failedToSendAriaLabel:"İleti gönderilemedi",failedToSendTooltipText:"Gönderilemedi"};var endCallButton$2={label:"Ayrıl",tooltipContent:"Aramadan Ayrıl"};var cameraButton$2={onLabel:"Kapat",offLabel:"Aç",tooltipDisabledContent:"Kamera devre dışı",tooltipOnContent:"Kamerayı kapat",tooltipOffContent:"Kamerayı aç",tooltipVideoLoadingContent:"Video yükleniyor",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera Seç",cameraButtonSplitRoleDescription:"Bölünmüş düğme",onSplitButtonAriaLabel:"Kamerayı ve kamera seçeneklerini devre dışı bırak",offSplitButtonAriaLabel:"Kamerayı ve kamera seçeneklerini etkinleştir",cameraActionTurnedOnAnnouncement:"Kameranız açıldı",cameraActionTurnedOffAnnouncement:"Kameranız kapatıldı"};var microphoneButton$2={onLabel:"Sesi kapat",offLabel:"Sesi aç",tooltipDisabledContent:"Mikrofon devre dışı",tooltipOnContent:"Mikrofonun sesini kapat",tooltipOffContent:"Mikrofonun sesini aç",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon Seç",speakerMenuTitle:"Hoparlör",speakerMenuTooltip:"Hoparlör Seç",microphoneButtonSplitRoleDescription:"Bölünmüş düğme",onSplitButtonAriaLabel:"Mikrofonun ve ses seçeneklerinin sesini kapat",offSplitButtonAriaLabel:"Mikrofonun ve ses seçeneklerinin sesini aç",microphoneActionTurnedOnAnnouncement:"Mikrofonunuz açıldı",microphoneActionTurnedOffAnnouncement:"Mikrofonunuz kapatıldı"};var devicesButton$2={label:"Cihazlar",tooltipContent:"Cihazları yönet",cameraMenuTitle:"Kamera",cameraMenuTooltip:"Kamera Seç",audioDeviceMenuTitle:"Ses Cihazı",audioDeviceMenuTooltip:"Ses Cihazı Seç",microphoneMenuTitle:"Mikrofon",microphoneMenuTooltip:"Mikrofon Seç",speakerMenuTitle:"Hoparlör",speakerMenuTooltip:"Hoparlör Seç"};var participantsButton$2={label:"Kişiler",tooltipContent:"Katılımcıları Göster",menuHeader:"Bu aramada",participantsListButtonLabel:"{numParticipants} kişiler",muteAllButtonLabel:"Tümünün sesini kapat",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala"};var screenShareButton$2={onLabel:"Sunumu Durdur",offLabel:"Sun",tooltipDisabledContent:"Sunu devre dışı bırakıldı.",tooltipOnContent:"Ekranınızı sunuluyor",tooltipOffContent:"Ekranınızı sunun"};var messageThread$2={yesterday:"Dün",sunday:"Pazar",monday:"Pazartesi",tuesday:"Salı",wednesday:"Çarşamba",thursday:"Perşembe",friday:"Cuma",saturday:"Cumartesi",participantJoined:"sohbete katıldı.",participantLeft:"sohbetten ayrıldı.",editMessage:"Düzenle",removeMessage:"Sil",resendMessage:"Yeniden göndermeyi deneyin",failToSendTag:"Gönderilemedi",editedTag:"Düzenlendi",liveAuthorIntro:"{author} şöyle diyor:",editBoxTextLimit:"İletiniz en fazla {limitNumber} aşıyor",editBoxPlaceholderText:"İletinizi düzenleyin",newMessagesIndicator:"Yeni iletiler",noDisplayNameSub:"Ad yok",editBoxCancelButton:"İptal",editBoxSubmitButton:"Gönder",messageReadCount:"{messageReadByCount} / {remoteParticipantsCount} katılımcı tarafından okundu",actionMenuMoreOptions:"Diğer Seçenekler"};var errorBar$2={unableToReachChatService:"Çevrimdışısınız",accessDenied:"Sohbet hizmetlerine erişilemedi. Lütfen sağlanan kullanıcı kimlik bilgilerini denetleyin",userNotInChatThread:"Artık bu sohbet yazışması içinde değilsiniz",sendMessageNotInChatThread:"Artık bu sohbet yazışması içinde olmadığınız için ileti gönderilemedi",sendMessageGeneric:"İleti gönderilemedi",callingNetworkFailure:"Arama bağlanırken sorun oluştu; çevrimdışı görünüyorsunuz",startVideoGeneric:"Video başlatılamadı",stopVideoGeneric:"Video durdurulamadı",muteGeneric:"Mikrofonun sesi kapatılamadı",unmuteGeneric:"Mikrofonun sesi açılamadı",speakingWhileMuted:"Mikrofonunuzun sesi kapalı",startScreenShareGeneric:"Ekran paylaşımı başlatılamadı",stopScreenShareGeneric:"Ekran paylaşımı durdurulamadı",callNetworkQualityLow:"Ağ kalitesi düşük.",callNoSpeakerFound:"Hoparlör veya kulaklık bulunamadı. Aramayı dinlemek için bir ses aygıtı bağlayın.",callNoMicrophoneFound:"Mikrofon bulunamadı. Ses giriş cihazı bağlan.",callMicrophoneAccessDenied:"Mikrofona erişemiyor. Bu web sayfası için izin vermek için adres çubuğundaki kilidi tıklatın.",callMicrophoneMutedBySystem:"Sisteminiz tarafından sessize alındınız.",callMacOsMicrophoneAccessDenied:"Mikrofona erişilemiyor. macOS gizlilik ayarlarınızda mikrofon izni verin.",callLocalVideoFreeze:"Ağ bant genişliği düşük. Görüntülü aramada başkaları için duraklatılmış görünüyor olabilir.",callCameraAccessDenied:"Kameraya erişemiyor. Bu web sayfası için izin vermek için adres çubuğundaki kilidi tıklatın.",callCameraAlreadyInUse:"Kameraya erişemiyor. Başka bir uygulama tarafından zaten kullanılıyor olabilir.",callMacOsCameraAccessDenied:"MacOS kameranıza erişimi engelliyor. Bu tarayıcının kameranıza erişmesine izin vermek için gizlilik ayarlarınızı güncelleştirin.",callMacOsScreenShareAccessDenied:"MacOS ekran paylaşımını engelliyor. Bu tarayıcının ekranınızı kaydetmesini izin vermek için gizlilik ayarlarınızı güncelleştirin.",dismissButtonAriaLabel:"Kapat",failedToJoinCallGeneric:"Aramaya katılınamadı.",failedToJoinCallInvalidMeetingLink:"Toplantıya katılınamıyor. Geçersiz Bağlantı."};var videoGallery$2={screenIsBeingSharedMessage:"Ekranınızı paylaşıyorsunuz.",screenShareLoadingMessage:"{participant} adlı katılımcının ekranını yükleme",localVideoLabel:"Siz",localVideoCameraSwitcherLabel:"Kamerayı değiştir",localVideoMovementLabel:"Taşınabilir Yerel Video Kutucuğu",localVideoSelectedDescription:"{cameraName} seçildi",displayNamePlaceholder:"Adsız Katılımcı"};var dialpad$2={placeholderText:"Numara Girin"};var HoldButton$3={onLabel:"Devam et",offLabel:"Beklet",toolTipOnContent:"Görüşmeye devam etme",toolTipOffContent:"Aramayı bekletme"};var tr_TR$1 = {participantItem:participantItem$2,typingIndicator:typingIndicator$2,sendBox:sendBox$2,messageStatusIndicator:messageStatusIndicator$2,endCallButton:endCallButton$2,cameraButton:cameraButton$2,microphoneButton:microphoneButton$2,devicesButton:devicesButton$2,participantsButton:participantsButton$2,screenShareButton:screenShareButton$2,messageThread:messageThread$2,errorBar:errorBar$2,videoGallery:videoGallery$2,dialpad:dialpad$2,HoldButton:HoldButton$3};
|
881
954
|
|
882
|
-
var participantItem$1={isMeText:"(我)",menuTitle:"更多选项",removeButtonLabel:"删除",sharingIconLabel:"共享",mutedIconLabel:"已静音"};var typingIndicator$1={singleUser:"{user} 正在键入...",multipleUsers:"{users} 正在键入...",multipleUsersAbbreviateOne:"{users} 和另外 1 人正在键入...",multipleUsersAbbreviateMany:"{users} 和其他 {numOthers} 人正在键入...",delimiter:"、 "};var sendBox$1={placeholderText:"输入消息",textTooLong:"你的消息长度超过了最大限制。",sendButtonAriaLabel:"发送消息",fileUploadsPendingError:"正在上载...请稍候。"};var messageStatusIndicator$1={deliveredAriaLabel:"已发送消息",deliveredTooltipText:"已发送",seenAriaLabel:"其他人已查看消息",seenTooltipText:"已查看",readByTooltipText:"{messageThreadReadCount}/{remoteParticipantsCount} 人已读",sendingAriaLabel:"消息发送",sendingTooltipText:"正在发送",failedToSendAriaLabel:"消息发送失败",failedToSendTooltipText:"发送失败"};var endCallButton$1={label:"退出",tooltipContent:"离开会议"};var cameraButton$1={onLabel:"关闭",offLabel:"打开",tooltipDisabledContent:"已禁用照相机",tooltipOnContent:"关闭摄像头",tooltipOffContent:"打开摄像头",tooltipVideoLoadingContent:"正在加载视频",cameraMenuTitle:"相机",cameraMenuTooltip:"选择“相机”"};var microphoneButton$1={onLabel:"静音",offLabel:"取消静音",tooltipDisabledContent:"已禁用麦克风",tooltipOnContent:"将麦克风静音",tooltipOffContent:"取消麦克风静音",microphoneMenuTitle:"麦克风",microphoneMenuTooltip:"选择“麦克风”",speakerMenuTitle:"扬声器",speakerMenuTooltip:"选择“扬声器”"};var devicesButton$1={label:"设备",tooltipContent:"管理设备",cameraMenuTitle:"相机",cameraMenuTooltip:"选择“相机”",microphoneMenuTitle:"麦克风",microphoneMenuTooltip:"选择麦克风",speakerMenuTitle:"免提",speakerMenuTooltip:"选择扬声器"};var participantsButton$1={label:"人员",tooltipContent:"显示参与者",menuHeader:"在此通话中",participantsListButtonLabel:"{numParticipants} 人",muteAllButtonLabel:"全部静音",copyInviteLinkButtonLabel:"复制邀请链接"};var screenShareButton$1={onLabel:"停止演示",offLabel:"演示",tooltipDisabledContent:"已禁用演示。",tooltipOnContent:"演示屏幕",tooltipOffContent:"演示您的屏幕"};var messageThread$1={yesterday:"昨天",sunday:"星期日",monday:"星期一",tuesday:"星期二",wednesday:"星期三",thursday:"星期四",friday:"星期五",saturday:"星期六",participantJoined:"已加入聊天。",participantLeft:"已退出聊天。",editMessage:"编辑",removeMessage:"删除",editedTag:"已编辑",liveAuthorIntro:"{author} 说",editBoxTextLimit:"你的消息超过了{limitNumber}个字符的限制",editBoxPlaceholderText:"编辑消息",newMessagesIndicator:"新消息",noDisplayNameSub:"无名称",editBoxCancelButton:"取消",editBoxSubmitButton:"提交",messageReadCount:"{messageReadByCount}/{remoteParticipantsCount} 人已读"};var errorBar$1={unableToReachChatService:"你已脱机",accessDenied:"无法访问聊天服务 - 请检查提供的用户凭据",userNotInChatThread:"你不再处于此聊天会话中",sendMessageNotInChatThread:"无法发送消息,因为你不再在此聊天会话中",sendMessageGeneric:"未能发送消息",callingNetworkFailure:"正在连接呼叫 - 你似乎处于脱机状态",startVideoGeneric:"无法启动视频",stopVideoGeneric:"无法停止视频",muteGeneric:"无法静音麦克风",unmuteGeneric:"无法取消麦克风静音",speakingWhileMuted:"你的麦克风已静音",startScreenShareGeneric:"无法启动屏幕共享",stopScreenShareGeneric:"无法停止屏幕共享",callNetworkQualityLow:"网络质量低。",callNoSpeakerFound:"找不到扬声器或耳机。连接音频设备以收听呼叫。",callNoMicrophoneFound:"找不到麦克风。连接音频输入设备。",callMicrophoneAccessDenied:"无法访问麦克风。单击地址栏中的锁定以授予对此网页的权限。",callMicrophoneMutedBySystem:"系统已将你设为静音。",callMacOsMicrophoneAccessDenied:"无法访问麦克风。在 macOS 隐私设置中授予麦克风权限。",callLocalVideoFreeze:"网络带宽较差。你的视频可能会在通话中为其他人暂停。",callCameraAccessDenied:"无法访问照相机。单击地址栏中的锁定以授予对此网页的权限。",callCameraAlreadyInUse:"无法访问照相机。它可能已被其他应用程序使用。",callMacOsCameraAccessDenied:"MacOS 正在阻止访问你的相机。更新你的隐私设置以允许此浏览器访问你的相机。",callMacOsScreenShareAccessDenied:"MacOS 正在阻止屏幕共享。更新你的隐私设置以允许此浏览器录制你的屏幕。"};var videoGallery$1={screenIsBeingSharedMessage:"你正在共享你的屏幕",screenShareLoadingMessage:"正在加载 {participant} 的屏幕",localVideoLabel:"你",localVideoCameraSwitcherLabel:"
|
955
|
+
var participantItem$1={isMeText:"(我)",menuTitle:"更多选项",removeButtonLabel:"删除",sharingIconLabel:"共享",mutedIconLabel:"已静音",displayNamePlaceholder:"未命名的参与者"};var typingIndicator$1={singleUser:"{user} 正在键入...",multipleUsers:"{users} 正在键入...",multipleUsersAbbreviateOne:"{users} 和另外 1 人正在键入...",multipleUsersAbbreviateMany:"{users} 和其他 {numOthers} 人正在键入...",delimiter:"、 "};var sendBox$1={placeholderText:"输入消息",textTooLong:"你的消息长度超过了最大限制。",sendButtonAriaLabel:"发送消息",fileUploadsPendingError:"正在上载...请稍候。"};var messageStatusIndicator$1={deliveredAriaLabel:"已发送消息",deliveredTooltipText:"已发送",seenAriaLabel:"其他人已查看消息",seenTooltipText:"已查看",readByTooltipText:"{messageThreadReadCount}/{remoteParticipantsCount} 人已读",sendingAriaLabel:"消息发送",sendingTooltipText:"正在发送",failedToSendAriaLabel:"消息发送失败",failedToSendTooltipText:"发送失败"};var endCallButton$1={label:"退出",tooltipContent:"离开会议"};var cameraButton$1={onLabel:"关闭",offLabel:"打开",tooltipDisabledContent:"已禁用照相机",tooltipOnContent:"关闭摄像头",tooltipOffContent:"打开摄像头",tooltipVideoLoadingContent:"正在加载视频",cameraMenuTitle:"相机",cameraMenuTooltip:"选择“相机”",cameraButtonSplitRoleDescription:"拆分按钮",onSplitButtonAriaLabel:"关闭照相机和照相机选项",offSplitButtonAriaLabel:"打开照相机和照相机选项",cameraActionTurnedOnAnnouncement:"你的相机已打开",cameraActionTurnedOffAnnouncement:"你的相机已关闭"};var microphoneButton$1={onLabel:"静音",offLabel:"取消静音",tooltipDisabledContent:"已禁用麦克风",tooltipOnContent:"将麦克风静音",tooltipOffContent:"取消麦克风静音",microphoneMenuTitle:"麦克风",microphoneMenuTooltip:"选择“麦克风”",speakerMenuTitle:"扬声器",speakerMenuTooltip:"选择“扬声器”",microphoneButtonSplitRoleDescription:"拆分按钮",onSplitButtonAriaLabel:"将麦克风和音频选项静音",offSplitButtonAriaLabel:"取消麦克风和音频选项的静音",microphoneActionTurnedOnAnnouncement:"你的麦克风已打开",microphoneActionTurnedOffAnnouncement:"你的麦克风已关闭"};var devicesButton$1={label:"设备",tooltipContent:"管理设备",cameraMenuTitle:"相机",cameraMenuTooltip:"选择“相机”",audioDeviceMenuTitle:"音频设备",audioDeviceMenuTooltip:"选择音频设备",microphoneMenuTitle:"麦克风",microphoneMenuTooltip:"选择麦克风",speakerMenuTitle:"免提",speakerMenuTooltip:"选择扬声器"};var participantsButton$1={label:"人员",tooltipContent:"显示参与者",menuHeader:"在此通话中",participantsListButtonLabel:"{numParticipants} 人",muteAllButtonLabel:"全部静音",copyInviteLinkButtonLabel:"复制邀请链接"};var screenShareButton$1={onLabel:"停止演示",offLabel:"演示",tooltipDisabledContent:"已禁用演示。",tooltipOnContent:"演示屏幕",tooltipOffContent:"演示您的屏幕"};var messageThread$1={yesterday:"昨天",sunday:"星期日",monday:"星期一",tuesday:"星期二",wednesday:"星期三",thursday:"星期四",friday:"星期五",saturday:"星期六",participantJoined:"已加入聊天。",participantLeft:"已退出聊天。",editMessage:"编辑",removeMessage:"删除",resendMessage:"尝试再次发送",failToSendTag:"发送失败",editedTag:"已编辑",liveAuthorIntro:"{author} 说",editBoxTextLimit:"你的消息超过了{limitNumber}个字符的限制",editBoxPlaceholderText:"编辑消息",newMessagesIndicator:"新消息",noDisplayNameSub:"无名称",editBoxCancelButton:"取消",editBoxSubmitButton:"提交",messageReadCount:"{messageReadByCount}/{remoteParticipantsCount} 人已读",actionMenuMoreOptions:"更多选项"};var errorBar$1={unableToReachChatService:"你已脱机",accessDenied:"无法访问聊天服务 - 请检查提供的用户凭据",userNotInChatThread:"你不再处于此聊天会话中",sendMessageNotInChatThread:"无法发送消息,因为你不再在此聊天会话中",sendMessageGeneric:"未能发送消息",callingNetworkFailure:"正在连接呼叫 - 你似乎处于脱机状态",startVideoGeneric:"无法启动视频",stopVideoGeneric:"无法停止视频",muteGeneric:"无法静音麦克风",unmuteGeneric:"无法取消麦克风静音",speakingWhileMuted:"你的麦克风已静音",startScreenShareGeneric:"无法启动屏幕共享",stopScreenShareGeneric:"无法停止屏幕共享",callNetworkQualityLow:"网络质量低。",callNoSpeakerFound:"找不到扬声器或耳机。连接音频设备以收听呼叫。",callNoMicrophoneFound:"找不到麦克风。连接音频输入设备。",callMicrophoneAccessDenied:"无法访问麦克风。单击地址栏中的锁定以授予对此网页的权限。",callMicrophoneMutedBySystem:"系统已将你设为静音。",callMacOsMicrophoneAccessDenied:"无法访问麦克风。在 macOS 隐私设置中授予麦克风权限。",callLocalVideoFreeze:"网络带宽较差。你的视频可能会在通话中为其他人暂停。",callCameraAccessDenied:"无法访问照相机。单击地址栏中的锁定以授予对此网页的权限。",callCameraAlreadyInUse:"无法访问照相机。它可能已被其他应用程序使用。",callMacOsCameraAccessDenied:"MacOS 正在阻止访问你的相机。更新你的隐私设置以允许此浏览器访问你的相机。",callMacOsScreenShareAccessDenied:"MacOS 正在阻止屏幕共享。更新你的隐私设置以允许此浏览器录制你的屏幕。",dismissButtonAriaLabel:"关闭",failedToJoinCallGeneric:"未能加入通话。",failedToJoinCallInvalidMeetingLink:"无法加入会议。无效的链接。"};var videoGallery$1={screenIsBeingSharedMessage:"你正在共享你的屏幕",screenShareLoadingMessage:"正在加载 {participant} 的屏幕",localVideoLabel:"你",localVideoCameraSwitcherLabel:"切换相机",localVideoMovementLabel:"可移动本地视频磁贴",localVideoSelectedDescription:"已选择 {cameraName}",displayNamePlaceholder:"未命名的参与者"};var dialpad$1={placeholderText:"输入号码"};var HoldButton$2={onLabel:"恢复",offLabel:"支持",toolTipOnContent:"继续呼叫",toolTipOffContent:"保持呼叫"};var zh_CN$1 = {participantItem:participantItem$1,typingIndicator:typingIndicator$1,sendBox:sendBox$1,messageStatusIndicator:messageStatusIndicator$1,endCallButton:endCallButton$1,cameraButton:cameraButton$1,microphoneButton:microphoneButton$1,devicesButton:devicesButton$1,participantsButton:participantsButton$1,screenShareButton:screenShareButton$1,messageThread:messageThread$1,errorBar:errorBar$1,videoGallery:videoGallery$1,dialpad:dialpad$1,HoldButton:HoldButton$2};
|
883
956
|
|
884
|
-
var participantItem={isMeText:"(您)",menuTitle:"更多選項",removeButtonLabel:"移除",sharingIconLabel:"分享",mutedIconLabel:"已靜音"};var typingIndicator={singleUser:"{user} 正在輸入...",multipleUsers:"{users} 正在輸入...",multipleUsersAbbreviateOne:"{users} 和其他 1 人正在輸入...",multipleUsersAbbreviateMany:"{users} 和其他 {numOthers} 人正在輸入...",delimiter:", "};var sendBox={placeholderText:"輸入訊息",textTooLong:"您的訊息長度超過上限。",sendButtonAriaLabel:"傳送訊息",fileUploadsPendingError:"正在上傳... 請稍候。"};var messageStatusIndicator={deliveredAriaLabel:"訊息已傳送",deliveredTooltipText:"已傳送",seenAriaLabel:"其他人已看到訊息",seenTooltipText:"已讀",readByTooltipText:"讀取者為 {messageThreadReadCount} / {remoteParticipantsCount}",sendingAriaLabel:"正在傳送訊息",sendingTooltipText:"正在傳送",failedToSendAriaLabel:"無法傳送訊息",failedToSendTooltipText:"無法傳送"};var endCallButton={label:"離開",tooltipContent:"離開通話"};var cameraButton={onLabel:"關閉",offLabel:"開啟",tooltipDisabledContent:"相機已停用",tooltipOnContent:"關閉攝影機",tooltipOffContent:"開啟相機",tooltipVideoLoadingContent:"正在載入影片",cameraMenuTitle:"相機",cameraMenuTooltip:"選擇攝影機"};var microphoneButton={onLabel:"靜音",offLabel:"取消靜音",tooltipDisabledContent:"麥克風已停用",tooltipOnContent:"將麥克風設為靜音",tooltipOffContent:"取消麥克風靜音",microphoneMenuTitle:"麥克風",microphoneMenuTooltip:"選擇麥克風",speakerMenuTitle:"揚聲器",speakerMenuTooltip:"選擇揚聲器"};var devicesButton={label:"裝置",tooltipContent:"管理裝置",cameraMenuTitle:"攝影機",cameraMenuTooltip:"選擇攝影機",microphoneMenuTitle:"麥克風",microphoneMenuTooltip:"選擇麥克風",speakerMenuTitle:"演講者",speakerMenuTooltip:"選擇講者"};var participantsButton={label:"人員",tooltipContent:"顯示參與者",menuHeader:"在此通話中",participantsListButtonLabel:"{numParticipants} 人員",muteAllButtonLabel:"將所有人設為靜音",copyInviteLinkButtonLabel:"複製邀請連結"};var screenShareButton={onLabel:"停止簡報",offLabel:"存在",tooltipDisabledContent:"簡報已停用",tooltipOnContent:"展示您的螢幕",tooltipOffContent:"展示您的螢幕"};var messageThread={yesterday:"昨天",sunday:"星期日",monday:"星期一",tuesday:"星期二",wednesday:"星期三",thursday:"星期四",friday:"星期五",saturday:"星期六",participantJoined:"已加入聊天。",participantLeft:"已離開聊天。",editMessage:"編輯",removeMessage:"刪除",editedTag:"已編輯",liveAuthorIntro:"{author} 說",editBoxTextLimit:"您的訊息超過 {limitNumber} 個字元的限制",editBoxPlaceholderText:"編輯您的訊息",newMessagesIndicator:"新訊息",noDisplayNameSub:"沒有名稱",editBoxCancelButton:"取消",editBoxSubmitButton:"提交",messageReadCount:"讀取者為 {messageReadByCount} / {remoteParticipantsCount}"};var errorBar={unableToReachChatService:"您處於離線狀態",accessDenied:"無法存取聊天服務 - 請檢查提供的使用者認證",userNotInChatThread:"您已不在此聊天對話中",sendMessageNotInChatThread:"無法傳送訊息,因為您已不在此聊天對話中",sendMessageGeneric:"無法傳送訊息",callingNetworkFailure:"連線通話發生錯誤 - 您似乎已離線",startVideoGeneric:"無法啟動影片",stopVideoGeneric:"無法停止影片",muteGeneric:"無法將麥克風設為靜音",unmuteGeneric:"無法將麥克風取消靜音",speakingWhileMuted:"您的麥克風已設為靜音",startScreenShareGeneric:"無法開始螢幕畫面分享",stopScreenShareGeneric:"無法停止螢幕畫面分享",callNetworkQualityLow:"您的網路品質不佳。",callNoSpeakerFound:"找不到喇叭或耳機。請連接音訊裝置以聆聽通話。",callNoMicrophoneFound:"找不到麥克風。請連接音訊輸入裝置。",callMicrophoneAccessDenied:"無法存取麥克風。按一下網址列中的鎖定以授與此網頁的許可權。",callMicrophoneMutedBySystem:"系統已將您設為靜音。",callMacOsMicrophoneAccessDenied:"無法存取麥克風。請在您的 MacOS 隱私權設定中授與麥克風權限。",callLocalVideoFreeze:"網路頻寬不佳。通話中的其他人可能會暫停您的視訊。",callCameraAccessDenied:"無法存取相機。按一下網址列中的鎖定以授與此網頁的許可權。",callCameraAlreadyInUse:"無法存取相機。其他應用程式可能已在使用它。",callMacOsCameraAccessDenied:"MacOS 已封鎖您的相機存取權限。請更新您的隱私權設定,允許此瀏覽器存取您的相機。",callMacOsScreenShareAccessDenied:"MacOS 正在封鎖螢幕畫面分享。更新您的隱私權設定,以允許此瀏覽器錄製您的螢幕。"};var videoGallery={screenIsBeingSharedMessage:"您現在正在分享螢幕畫面。",screenShareLoadingMessage:"正在載入 {participant} 的螢幕畫面",localVideoLabel:"您",localVideoCameraSwitcherLabel:"
|
957
|
+
var participantItem={isMeText:"(您)",menuTitle:"更多選項",removeButtonLabel:"移除",sharingIconLabel:"分享",mutedIconLabel:"已靜音",displayNamePlaceholder:"未命名的參與者"};var typingIndicator={singleUser:"{user} 正在輸入...",multipleUsers:"{users} 正在輸入...",multipleUsersAbbreviateOne:"{users} 和其他 1 人正在輸入...",multipleUsersAbbreviateMany:"{users} 和其他 {numOthers} 人正在輸入...",delimiter:", "};var sendBox={placeholderText:"輸入訊息",textTooLong:"您的訊息長度超過上限。",sendButtonAriaLabel:"傳送訊息",fileUploadsPendingError:"正在上傳... 請稍候。"};var messageStatusIndicator={deliveredAriaLabel:"訊息已傳送",deliveredTooltipText:"已傳送",seenAriaLabel:"其他人已看到訊息",seenTooltipText:"已讀",readByTooltipText:"讀取者為 {messageThreadReadCount} / {remoteParticipantsCount}",sendingAriaLabel:"正在傳送訊息",sendingTooltipText:"正在傳送",failedToSendAriaLabel:"無法傳送訊息",failedToSendTooltipText:"無法傳送"};var endCallButton={label:"離開",tooltipContent:"離開通話"};var cameraButton={onLabel:"關閉",offLabel:"開啟",tooltipDisabledContent:"相機已停用",tooltipOnContent:"關閉攝影機",tooltipOffContent:"開啟相機",tooltipVideoLoadingContent:"正在載入影片",cameraMenuTitle:"相機",cameraMenuTooltip:"選擇攝影機",cameraButtonSplitRoleDescription:"[分割] 按鈕",onSplitButtonAriaLabel:"關閉相機和相機選項",offSplitButtonAriaLabel:"開啟相機和相機選項",cameraActionTurnedOnAnnouncement:"您的相機已開啟",cameraActionTurnedOffAnnouncement:"您的相機已關閉"};var microphoneButton={onLabel:"靜音",offLabel:"取消靜音",tooltipDisabledContent:"麥克風已停用",tooltipOnContent:"將麥克風設為靜音",tooltipOffContent:"取消麥克風靜音",microphoneMenuTitle:"麥克風",microphoneMenuTooltip:"選擇麥克風",speakerMenuTitle:"揚聲器",speakerMenuTooltip:"選擇揚聲器",microphoneButtonSplitRoleDescription:"[分割] 按鈕",onSplitButtonAriaLabel:"將麥克風和音訊選項設為靜音",offSplitButtonAriaLabel:"將麥克風和音訊選項取消靜音",microphoneActionTurnedOnAnnouncement:"您的麥克風已開啟",microphoneActionTurnedOffAnnouncement:"您的麥克風已關閉"};var devicesButton={label:"裝置",tooltipContent:"管理裝置",cameraMenuTitle:"攝影機",cameraMenuTooltip:"選擇攝影機",audioDeviceMenuTitle:"音訊裝置",audioDeviceMenuTooltip:"選擇音訊裝置",microphoneMenuTitle:"麥克風",microphoneMenuTooltip:"選擇麥克風",speakerMenuTitle:"演講者",speakerMenuTooltip:"選擇講者"};var participantsButton={label:"人員",tooltipContent:"顯示參與者",menuHeader:"在此通話中",participantsListButtonLabel:"{numParticipants} 人員",muteAllButtonLabel:"將所有人設為靜音",copyInviteLinkButtonLabel:"複製邀請連結"};var screenShareButton={onLabel:"停止簡報",offLabel:"存在",tooltipDisabledContent:"簡報已停用",tooltipOnContent:"展示您的螢幕",tooltipOffContent:"展示您的螢幕"};var messageThread={yesterday:"昨天",sunday:"星期日",monday:"星期一",tuesday:"星期二",wednesday:"星期三",thursday:"星期四",friday:"星期五",saturday:"星期六",participantJoined:"已加入聊天。",participantLeft:"已離開聊天。",editMessage:"編輯",removeMessage:"刪除",resendMessage:"請嘗試再次傳送",failToSendTag:"無法傳送",editedTag:"已編輯",liveAuthorIntro:"{author} 說",editBoxTextLimit:"您的訊息超過 {limitNumber} 個字元的限制",editBoxPlaceholderText:"編輯您的訊息",newMessagesIndicator:"新訊息",noDisplayNameSub:"沒有名稱",editBoxCancelButton:"取消",editBoxSubmitButton:"提交",messageReadCount:"讀取者為 {messageReadByCount} / {remoteParticipantsCount}",actionMenuMoreOptions:"更多選項"};var errorBar={unableToReachChatService:"您處於離線狀態",accessDenied:"無法存取聊天服務 - 請檢查提供的使用者認證",userNotInChatThread:"您已不在此聊天對話中",sendMessageNotInChatThread:"無法傳送訊息,因為您已不在此聊天對話中",sendMessageGeneric:"無法傳送訊息",callingNetworkFailure:"連線通話發生錯誤 - 您似乎已離線",startVideoGeneric:"無法啟動影片",stopVideoGeneric:"無法停止影片",muteGeneric:"無法將麥克風設為靜音",unmuteGeneric:"無法將麥克風取消靜音",speakingWhileMuted:"您的麥克風已設為靜音",startScreenShareGeneric:"無法開始螢幕畫面分享",stopScreenShareGeneric:"無法停止螢幕畫面分享",callNetworkQualityLow:"您的網路品質不佳。",callNoSpeakerFound:"找不到喇叭或耳機。請連接音訊裝置以聆聽通話。",callNoMicrophoneFound:"找不到麥克風。請連接音訊輸入裝置。",callMicrophoneAccessDenied:"無法存取麥克風。按一下網址列中的鎖定以授與此網頁的許可權。",callMicrophoneMutedBySystem:"系統已將您設為靜音。",callMacOsMicrophoneAccessDenied:"無法存取麥克風。請在您的 MacOS 隱私權設定中授與麥克風權限。",callLocalVideoFreeze:"網路頻寬不佳。通話中的其他人可能會暫停您的視訊。",callCameraAccessDenied:"無法存取相機。按一下網址列中的鎖定以授與此網頁的許可權。",callCameraAlreadyInUse:"無法存取相機。其他應用程式可能已在使用它。",callMacOsCameraAccessDenied:"MacOS 已封鎖您的相機存取權限。請更新您的隱私權設定,允許此瀏覽器存取您的相機。",callMacOsScreenShareAccessDenied:"MacOS 正在封鎖螢幕畫面分享。更新您的隱私權設定,以允許此瀏覽器錄製您的螢幕。",dismissButtonAriaLabel:"關閉",failedToJoinCallGeneric:"無法加入通話。",failedToJoinCallInvalidMeetingLink:"無法加入會議。連結無效。"};var videoGallery={screenIsBeingSharedMessage:"您現在正在分享螢幕畫面。",screenShareLoadingMessage:"正在載入 {participant} 的螢幕畫面",localVideoLabel:"您",localVideoCameraSwitcherLabel:"切換相機",localVideoMovementLabel:"可移動的本機影片磚",localVideoSelectedDescription:"已選取 {cameraName}",displayNamePlaceholder:"未命名的參與者"};var dialpad={placeholderText:"輸入號碼"};var HoldButton$1={onLabel:"繼續",offLabel:"保留",toolTipOnContent:"繼續通話",toolTipOffContent:"保留通話"};var zh_TW$1 = {participantItem:participantItem,typingIndicator:typingIndicator,sendBox:sendBox,messageStatusIndicator:messageStatusIndicator,endCallButton:endCallButton,cameraButton:cameraButton,microphoneButton:microphoneButton,devicesButton:devicesButton,participantsButton:participantsButton,screenShareButton:screenShareButton,messageThread:messageThread,errorBar:errorBar,videoGallery:videoGallery,dialpad:dialpad,HoldButton:HoldButton$1};
|
885
958
|
|
886
959
|
// Copyright (c) Microsoft Corporation.
|
887
960
|
const createComponentStrings = (localizedStrings) => {
|
@@ -1231,7 +1304,22 @@ const ErrorBar = (props) => {
|
|
1231
1304
|
// Without this behaviour, this `useEffect` block would cause a render loop.
|
1232
1305
|
React.useEffect(() => setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors)), [props.activeErrorMessages, dismissedErrors]);
|
1233
1306
|
const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors);
|
1234
|
-
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "error-bar-stack" }, toShow.map((error) => (React__default['default'].createElement(react.MessageBar, Object.assign({}, props, {
|
1307
|
+
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "error-bar-stack" }, toShow.map((error) => (React__default['default'].createElement(react.MessageBar, Object.assign({}, props, { styles: {
|
1308
|
+
innerText: {
|
1309
|
+
paddingTop: messageBarType(error.type) === 5 ? '0.15rem' : '0.1rem',
|
1310
|
+
lineHeight: 'none'
|
1311
|
+
},
|
1312
|
+
icon: {
|
1313
|
+
height: 0
|
1314
|
+
},
|
1315
|
+
content: {
|
1316
|
+
lineHeight: 'inherit'
|
1317
|
+
},
|
1318
|
+
dismissal: {
|
1319
|
+
height: 0,
|
1320
|
+
paddingTop: '0.8rem'
|
1321
|
+
}
|
1322
|
+
}, key: error.type, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), onDismiss: () => setDismissedErrors(dismissError(dismissedErrors, error)), dismissButtonAriaLabel: strings.dismissButtonAriaLabel, dismissIconProps: { iconName: 'ErrorBarClear' } }), strings[error.type])))));
|
1235
1323
|
};
|
1236
1324
|
// Always returns a new Array so that the state variable is updated, trigerring a render.
|
1237
1325
|
const dismissError = (dismissedErrors, toDismiss) => {
|
@@ -1298,10 +1386,13 @@ const messageBarType = (errorType) => {
|
|
1298
1386
|
case 'callNoMicrophoneFound':
|
1299
1387
|
case 'callMicrophoneAccessDenied':
|
1300
1388
|
case 'callMicrophoneMutedBySystem':
|
1389
|
+
case 'callMicrophoneUnmutedBySystem':
|
1301
1390
|
case 'callMacOsMicrophoneAccessDenied':
|
1302
1391
|
case 'callLocalVideoFreeze':
|
1303
1392
|
case 'callCameraAccessDenied':
|
1304
1393
|
case 'callCameraAlreadyInUse':
|
1394
|
+
case 'callVideoStoppedBySystem':
|
1395
|
+
case 'callVideoRecoveredBySystem':
|
1305
1396
|
case 'callMacOsCameraAccessDenied':
|
1306
1397
|
case 'callMacOsScreenShareAccessDenied':
|
1307
1398
|
return react.MessageBarType.warning;
|
@@ -1319,10 +1410,13 @@ const customIconName = {
|
|
1319
1410
|
callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',
|
1320
1411
|
callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',
|
1321
1412
|
callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',
|
1413
|
+
callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',
|
1322
1414
|
callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',
|
1323
1415
|
callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',
|
1324
1416
|
callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',
|
1325
1417
|
callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',
|
1418
|
+
callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',
|
1419
|
+
callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',
|
1326
1420
|
callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'
|
1327
1421
|
};
|
1328
1422
|
|
@@ -1791,9 +1885,13 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
1791
1885
|
ErrorBarCallMacOsMicrophoneAccessDenied: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
|
1792
1886
|
ErrorBarCallMicrophoneAccessDenied: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
|
1793
1887
|
ErrorBarCallMicrophoneMutedBySystem: React__default['default'].createElement(reactIcons.MicOff16Filled, null),
|
1888
|
+
ErrorBarCallMicrophoneUnmutedBySystem: React__default['default'].createElement(reactIcons.MicOn16Filled, null),
|
1794
1889
|
ErrorBarCallNetworkQualityLow: React__default['default'].createElement(WifiWarning16Filled, null),
|
1795
1890
|
ErrorBarCallNoMicrophoneFound: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
|
1796
1891
|
ErrorBarCallNoSpeakerFound: React__default['default'].createElement(reactIcons.SpeakerMute16Filled, null),
|
1892
|
+
ErrorBarClear: React__default['default'].createElement(reactIcons.Dismiss16Regular, null),
|
1893
|
+
ErrorBarCallVideoRecoveredBySystem: React__default['default'].createElement(reactIcons.Video16Filled, null),
|
1894
|
+
ErrorBarCallVideoStoppedBySystem: React__default['default'].createElement(reactIcons.VideoProhibited16Filled, null),
|
1797
1895
|
HorizontalGalleryLeftButton: React__default['default'].createElement(reactIcons.ChevronLeft20Regular, null),
|
1798
1896
|
HorizontalGalleryRightButton: React__default['default'].createElement(reactIcons.ChevronRight20Regular, null),
|
1799
1897
|
MessageDelivered: React__default['default'].createElement(reactIcons.CheckmarkCircle16Regular, null),
|
@@ -1810,6 +1908,10 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
1810
1908
|
ParticipantItemOptions: React__default['default'].createElement(reactIcons.MoreHorizontal20Regular, null),
|
1811
1909
|
ParticipantItemOptionsHovered: React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, null),
|
1812
1910
|
ParticipantItemScreenShareStart: React__default['default'].createElement(reactIcons.ShareScreenStart20Filled, null),
|
1911
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
1912
|
+
HoldCall: React__default['default'].createElement(reactIcons.Pause20Filled, null),
|
1913
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
1914
|
+
ResumeCall: React__default['default'].createElement(reactIcons.Play20Filled, null),
|
1813
1915
|
SendBoxSend: React__default['default'].createElement(reactIcons.Send20Regular, null),
|
1814
1916
|
SendBoxSendHovered: React__default['default'].createElement(reactIcons.Send20Filled, null),
|
1815
1917
|
VideoTileMicOff: React__default['default'].createElement(reactIcons.MicOff16Filled, null)
|
@@ -2001,6 +2103,81 @@ const InputBoxButton = (props) => {
|
|
2001
2103
|
}, onRenderIcon: () => onRenderIcon(isHover) })));
|
2002
2104
|
};
|
2003
2105
|
|
2106
|
+
// Copyright (c) Microsoft Corporation.
|
2107
|
+
/**
|
2108
|
+
* @private
|
2109
|
+
*/
|
2110
|
+
const buttonStyle$1 = react.mergeStyles({
|
2111
|
+
color: 'grey',
|
2112
|
+
margin: '0',
|
2113
|
+
padding: '0',
|
2114
|
+
width: '1.0625rem',
|
2115
|
+
height: '1.0625rem',
|
2116
|
+
border: 'none',
|
2117
|
+
minWidth: '0',
|
2118
|
+
'&:hover': {
|
2119
|
+
backgroundColor: 'transparent'
|
2120
|
+
}
|
2121
|
+
});
|
2122
|
+
/**
|
2123
|
+
* @private
|
2124
|
+
*/
|
2125
|
+
const iconWrapperStyle$1 = react.mergeStyles({
|
2126
|
+
position: 'absolute',
|
2127
|
+
pointerEvents: 'none'
|
2128
|
+
});
|
2129
|
+
|
2130
|
+
// Copyright (c) Microsoft Corporation.
|
2131
|
+
/**
|
2132
|
+
* @private
|
2133
|
+
*/
|
2134
|
+
const VoiceOverButton = (props) => {
|
2135
|
+
const { onRenderIcon, onClick, ariaLabel, className, id, tooltipContent } = props;
|
2136
|
+
const [isHover, setIsHover] = React.useState(false);
|
2137
|
+
const mergedButtonStyle = react.mergeStyles(buttonStyle$1, className);
|
2138
|
+
const theme = useTheme();
|
2139
|
+
const calloutStyle = { root: { padding: 0 }, calloutMain: { padding: '0.5rem' } };
|
2140
|
+
// Place callout with no gap between it and the button.
|
2141
|
+
const calloutProps = {
|
2142
|
+
gapSpace: 0,
|
2143
|
+
styles: calloutStyle,
|
2144
|
+
backgroundColor: isDarkThemed(theme) ? theme.palette.neutralLighter : ''
|
2145
|
+
};
|
2146
|
+
return (React__default['default'].createElement(react.TooltipHost, { hostClassName: inputButtonTooltipStyle, content: tooltipContent, calloutProps: Object.assign({}, calloutProps) },
|
2147
|
+
React__default['default'].createElement(react.DefaultButton, { className: mergedButtonStyle, ariaLabel: ariaLabel, onClick: onClick, id: id, onMouseEnter: () => {
|
2148
|
+
setIsHover(true);
|
2149
|
+
}, onMouseLeave: () => {
|
2150
|
+
setIsHover(false);
|
2151
|
+
} }),
|
2152
|
+
React__default['default'].createElement("div", { className: iconWrapperStyle$1 }, onRenderIcon(isHover))));
|
2153
|
+
};
|
2154
|
+
|
2155
|
+
// Copyright (c) Microsoft Corporation.
|
2156
|
+
/**
|
2157
|
+
* @private
|
2158
|
+
* Announcer component to maker aria announcements on actions
|
2159
|
+
*/
|
2160
|
+
const Announcer = (props) => {
|
2161
|
+
const { announcementString, ariaLive } = props;
|
2162
|
+
return React__default['default'].createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, styles: announcerStyles });
|
2163
|
+
};
|
2164
|
+
/**
|
2165
|
+
* Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.
|
2166
|
+
*/
|
2167
|
+
const announcerStyles = {
|
2168
|
+
root: {
|
2169
|
+
position: 'absolute',
|
2170
|
+
width: '1px',
|
2171
|
+
height: '1px',
|
2172
|
+
padding: 0,
|
2173
|
+
margin: '-1px',
|
2174
|
+
overflow: 'hidden',
|
2175
|
+
clip: 'rect(0,0,0,0)',
|
2176
|
+
whiteSpace: 'nowrap',
|
2177
|
+
border: 0
|
2178
|
+
}
|
2179
|
+
};
|
2180
|
+
|
2004
2181
|
// Copyright (c) Microsoft Corporation.
|
2005
2182
|
/**
|
2006
2183
|
* @private
|
@@ -2026,11 +2203,13 @@ const SendBoxErrorBar = (props) => {
|
|
2026
2203
|
};
|
2027
2204
|
}, [dismissAfterMs, onDismiss, error]);
|
2028
2205
|
if (errorMessage) {
|
2029
|
-
return (React__default['default'].createElement(
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2206
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
2207
|
+
React__default['default'].createElement(Announcer, { announcementString: errorMessage, ariaLive: 'polite' }),
|
2208
|
+
React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, styles: {
|
2209
|
+
iconContainer: {
|
2210
|
+
display: 'none'
|
2211
|
+
}
|
2212
|
+
} }, errorMessage)));
|
2034
2213
|
}
|
2035
2214
|
else {
|
2036
2215
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
@@ -2058,9 +2237,30 @@ const SendBoxErrors = (props) => {
|
|
2058
2237
|
* A component for displaying a file card with file icon and progress bar.
|
2059
2238
|
*/
|
2060
2239
|
const _FileCard = (props) => {
|
2240
|
+
var _a, _b, _c, _d;
|
2061
2241
|
const { fileName, fileExtension, progress, actionIcon } = props;
|
2062
2242
|
const theme = react.useTheme();
|
2243
|
+
/* @conditional-compile-remove(file-sharing) */
|
2244
|
+
const [announcerString, setAnnouncerString] = React.useState(undefined);
|
2245
|
+
/* @conditional-compile-remove(file-sharing) */
|
2246
|
+
const localeStrings = useLocale$1().strings.sendBox;
|
2247
|
+
/* @conditional-compile-remove(file-sharing) */
|
2248
|
+
const uploadStartedString = (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.uploading) !== null && _b !== void 0 ? _b : localeStrings.uploading;
|
2249
|
+
/* @conditional-compile-remove(file-sharing) */
|
2250
|
+
const uploadCompletedString = (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.uploadCompleted) !== null && _d !== void 0 ? _d : localeStrings.uploadCompleted;
|
2063
2251
|
const showProgressIndicator = progress !== undefined && progress > 0 && progress < 1;
|
2252
|
+
/* @conditional-compile-remove(file-sharing) */
|
2253
|
+
React.useEffect(() => {
|
2254
|
+
if (showProgressIndicator) {
|
2255
|
+
setAnnouncerString(`${uploadStartedString} ${fileName}`);
|
2256
|
+
}
|
2257
|
+
else if (progress === 1) {
|
2258
|
+
setAnnouncerString(`${fileName} ${uploadCompletedString}`);
|
2259
|
+
}
|
2260
|
+
else {
|
2261
|
+
setAnnouncerString(undefined);
|
2262
|
+
}
|
2263
|
+
}, [progress, showProgressIndicator, fileName, uploadStartedString, uploadCompletedString]);
|
2064
2264
|
const progressBarThicknessPx = 4;
|
2065
2265
|
const containerClassName = react.mergeStyles({
|
2066
2266
|
width: '12rem',
|
@@ -2099,20 +2299,23 @@ const _FileCard = (props) => {
|
|
2099
2299
|
height: _pxToRem(progressBarThicknessPx)
|
2100
2300
|
}
|
2101
2301
|
};
|
2102
|
-
return (React__default['default'].createElement(
|
2103
|
-
|
2104
|
-
|
2105
|
-
React__default['default'].createElement(react.Stack, {
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2111
|
-
|
2112
|
-
|
2113
|
-
|
2114
|
-
|
2115
|
-
|
2302
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
2303
|
+
/* @conditional-compile-remove(file-sharing) */
|
2304
|
+
React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
|
2305
|
+
React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
|
2306
|
+
props.actionHandler && props.actionHandler();
|
2307
|
+
} },
|
2308
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: fileInfoWrapperClassName },
|
2309
|
+
React__default['default'].createElement(react.Stack, null,
|
2310
|
+
React__default['default'].createElement(react.Icon, Object.assign({}, reactFileTypeIcons.getFileTypeIconProps({
|
2311
|
+
extension: fileExtension,
|
2312
|
+
size: 24,
|
2313
|
+
imageFileType: 'svg'
|
2314
|
+
})))),
|
2315
|
+
React__default['default'].createElement(react.Stack, { className: fileNameContainerClassName },
|
2316
|
+
React__default['default'].createElement(react.Text, { className: fileNameTextClassName }, fileName)),
|
2317
|
+
React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: actionIconClassName }, actionIcon && actionIcon)),
|
2318
|
+
showProgressIndicator && React__default['default'].createElement(react.ProgressIndicator, { percentComplete: progress, styles: progressIndicatorStyles }))));
|
2116
2319
|
};
|
2117
2320
|
|
2118
2321
|
// Copyright (c) Microsoft Corporation.
|
@@ -2176,17 +2379,29 @@ const actionIconStyle$1 = { height: '1rem' };
|
|
2176
2379
|
* @internal
|
2177
2380
|
*/
|
2178
2381
|
const _FileUploadCards = (props) => {
|
2382
|
+
var _a;
|
2179
2383
|
const files = props.activeFileUploads;
|
2384
|
+
/* @conditional-compile-remove(file-sharing) */
|
2385
|
+
const localeStrings = useLocale$1().strings.sendBox;
|
2386
|
+
const removeFileButtonString = React.useMemo(() => () => {
|
2387
|
+
var _a, _b;
|
2388
|
+
/* @conditional-compile-remove(file-sharing) */
|
2389
|
+
return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeFile) !== null && _b !== void 0 ? _b : localeStrings.removeFile;
|
2390
|
+
}, [
|
2391
|
+
(_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeFile,
|
2392
|
+
/* @conditional-compile-remove(file-sharing) */
|
2393
|
+
localeStrings.removeFile
|
2394
|
+
]);
|
2180
2395
|
if (!files || files.length === 0) {
|
2181
2396
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
2182
2397
|
}
|
2183
2398
|
return (React__default['default'].createElement(_FileCardGroup, null, files &&
|
2184
2399
|
files
|
2185
2400
|
.filter((file) => !file.error)
|
2186
|
-
.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.filename, progress: file.progress, key: file.id, fileExtension: extension(file.filename), actionIcon: React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
|
2401
|
+
.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.filename, progress: file.progress, key: file.id, fileExtension: extension(file.filename), actionIcon: React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: removeFileButtonString() },
|
2187
2402
|
React__default['default'].createElement(react.Icon, { iconName: "CancelFileUpload", style: actionIconStyle$1 })), actionHandler: () => {
|
2188
2403
|
props.onCancelFileUpload && props.onCancelFileUpload(file.id);
|
2189
|
-
} })))));
|
2404
|
+
}, strings: props.strings })))));
|
2190
2405
|
};
|
2191
2406
|
|
2192
2407
|
// Copyright (c) Microsoft Corporation.
|
@@ -2273,13 +2488,17 @@ const SendBox = (props) => {
|
|
2273
2488
|
}, [props.activeFileUploads, fileUploadsPendingError]);
|
2274
2489
|
/* @conditional-compile-remove(file-sharing) */
|
2275
2490
|
const onRenderFileUploads = React.useCallback(() => {
|
2276
|
-
var _a;
|
2491
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
2277
2492
|
if (!((_a = props.activeFileUploads) === null || _a === void 0 ? void 0 : _a.filter((upload) => !upload.error).length)) {
|
2278
2493
|
return null;
|
2279
2494
|
}
|
2280
2495
|
return props.onRenderFileUploads ? (props.onRenderFileUploads()) : (React__default['default'].createElement(react.Stack, { className: fileUploadCardsStyles },
|
2281
|
-
React__default['default'].createElement(_FileUploadCards, { activeFileUploads: props.activeFileUploads, onCancelFileUpload: props.onCancelFileUpload
|
2282
|
-
|
2496
|
+
React__default['default'].createElement(_FileUploadCards, { activeFileUploads: props.activeFileUploads, onCancelFileUpload: props.onCancelFileUpload, strings: {
|
2497
|
+
removeFile: (_c = (_b = props.strings) === null || _b === void 0 ? void 0 : _b.removeFile) !== null && _c !== void 0 ? _c : localeStrings.removeFile,
|
2498
|
+
uploading: (_e = (_d = props.strings) === null || _d === void 0 ? void 0 : _d.uploading) !== null && _e !== void 0 ? _e : localeStrings.uploading,
|
2499
|
+
uploadCompleted: (_g = (_f = props.strings) === null || _f === void 0 ? void 0 : _f.uploadCompleted) !== null && _g !== void 0 ? _g : localeStrings.uploadCompleted
|
2500
|
+
} })));
|
2501
|
+
}, [props, localeStrings]);
|
2283
2502
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(sendBoxWrapperStyles) },
|
2284
2503
|
/* @conditional-compile-remove(file-sharing) */
|
2285
2504
|
React__default['default'].createElement(SendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
|
@@ -2293,7 +2512,7 @@ const SendBox = (props) => {
|
|
2293
2512
|
}, onEnterKeyDown: () => {
|
2294
2513
|
sendMessageOnClick();
|
2295
2514
|
}, styles: mergedStyles, supportNewline: supportNewline, maxLength: MAXIMUM_LENGTH_OF_MESSAGE$1 },
|
2296
|
-
React__default['default'].createElement(
|
2515
|
+
React__default['default'].createElement(VoiceOverButton, { onRenderIcon: onRenderSendIcon, onClick: (e) => {
|
2297
2516
|
if (!textValueOverflow) {
|
2298
2517
|
sendMessageOnClick();
|
2299
2518
|
}
|
@@ -2369,13 +2588,17 @@ const MessageStatusIndicator = (props) => {
|
|
2369
2588
|
};
|
2370
2589
|
switch (status) {
|
2371
2590
|
case 'failed':
|
2372
|
-
return (React__default['default'].createElement(react.TooltipHost, { content: strings.failedToSendTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps) },
|
2591
|
+
return (React__default['default'].createElement(react.TooltipHost, { content: strings.failedToSendTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps), styles: hostStyles$1 },
|
2592
|
+
strings.failedToSendAriaLabel && (
|
2593
|
+
// live message is used here and in the following tooltips so that aria labels are announced on mobile
|
2594
|
+
React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.failedToSendAriaLabel, "aria-live": "polite" })),
|
2373
2595
|
React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.failedToSendAriaLabel, iconName: "MessageFailed", className: react.mergeStyles(MessageStatusIndicatorErrorIconStyle, { color: theme.palette.redDark }, styles === null || styles === void 0 ? void 0 : styles.root) })));
|
2374
2596
|
case 'sending':
|
2375
|
-
return (React__default['default'].createElement(react.TooltipHost, { content: strings.sendingTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps) },
|
2597
|
+
return (React__default['default'].createElement(react.TooltipHost, { content: strings.sendingTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps), styles: hostStyles$1 },
|
2598
|
+
strings.sendingAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.sendingAriaLabel, "aria-live": "polite" }),
|
2376
2599
|
React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.sendingAriaLabel, iconName: "MessageSending", className: react.mergeStyles(MessageStatusIndicatorIconStyle, { color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
|
2377
2600
|
case 'seen':
|
2378
|
-
return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), "data-ui-id": "chat-composite-message-tooltip", content:
|
2601
|
+
return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), "data-ui-id": "chat-composite-message-tooltip", styles: hostStyles$1, content:
|
2379
2602
|
// when it's just 1 to 1 texting, we don't need to know who has read the message, just show message as 'seen'
|
2380
2603
|
// when readcount is 0, we have a bug, show 'seen' to cover up as a fall back
|
2381
2604
|
// when participant count is 0, we have a bug, show 'seen' to cover up as a fall back
|
@@ -2394,14 +2617,20 @@ const MessageStatusIndicator = (props) => {
|
|
2394
2617
|
setIsTooltipToggled(!isTooltipToggled);
|
2395
2618
|
}
|
2396
2619
|
} },
|
2620
|
+
strings.seenAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.seenAriaLabel, "aria-live": "polite" }),
|
2397
2621
|
React__default['default'].createElement(react.Icon, { "data-ui-id": "chat-composite-message-status-icon", role: "status", "aria-label": strings.seenAriaLabel, iconName: "MessageSeen", className: react.mergeStyles({ color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
|
2398
2622
|
case 'delivered':
|
2399
|
-
return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), content: strings.deliveredTooltipText, "data-ui-id": "chat-composite-message-tooltip" },
|
2623
|
+
return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), content: strings.deliveredTooltipText, "data-ui-id": "chat-composite-message-tooltip", styles: hostStyles$1 },
|
2624
|
+
strings.deliveredAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.deliveredAriaLabel, "aria-live": "polite" }),
|
2400
2625
|
React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.deliveredAriaLabel, iconName: "MessageDelivered", className: react.mergeStyles(MessageStatusIndicatorIconStyle, { color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
|
2401
2626
|
default:
|
2402
2627
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
2403
2628
|
}
|
2404
2629
|
};
|
2630
|
+
// The TooltipHost root uses display: inline by default.
|
2631
|
+
// To prevent sizing issues or tooltip positioning issues, we override to inline-block.
|
2632
|
+
// For more details see "Icon Button with Tooltip" on https://developer.microsoft.com/en-us/fluentui#/controls/web/button
|
2633
|
+
const hostStyles$1 = { root: { display: 'inline-block' } };
|
2405
2634
|
|
2406
2635
|
// Copyright (c) Microsoft Corporation.
|
2407
2636
|
// Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI
|
@@ -2907,6 +3136,7 @@ const ChatMessageActionFlyout = (props) => {
|
|
2907
3136
|
hidePersonaDetails: true,
|
2908
3137
|
size: react.PersonaSize.size24,
|
2909
3138
|
text: person.displayName,
|
3139
|
+
showOverflowTooltip: false,
|
2910
3140
|
styles: {
|
2911
3141
|
root: {
|
2912
3142
|
margin: '0.25rem'
|
@@ -3143,8 +3373,20 @@ const actionIconStyle = { height: '1rem' };
|
|
3143
3373
|
* @internal
|
3144
3374
|
*/
|
3145
3375
|
const _FileDownloadCards = (props) => {
|
3376
|
+
var _a;
|
3146
3377
|
const { userId, fileMetadata } = props;
|
3147
3378
|
const [showSpinner, setShowSpinner] = React.useState(false);
|
3379
|
+
/* @conditional-compile-remove(file-sharing) */
|
3380
|
+
const localeStrings = useLocale$1().strings.messageThread;
|
3381
|
+
const downloadFileButtonString = React.useMemo(() => () => {
|
3382
|
+
var _a, _b;
|
3383
|
+
/* @conditional-compile-remove(file-sharing) */
|
3384
|
+
return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile) !== null && _b !== void 0 ? _b : localeStrings.downloadFile;
|
3385
|
+
}, [
|
3386
|
+
(_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile,
|
3387
|
+
/* @conditional-compile-remove(file-sharing) */
|
3388
|
+
localeStrings.downloadFile
|
3389
|
+
]);
|
3148
3390
|
const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$q(void 0, void 0, void 0, function* () {
|
3149
3391
|
if (!props.downloadHandler) {
|
3150
3392
|
window.open(file.url, '_blank', 'noopener,noreferrer');
|
@@ -3171,7 +3413,7 @@ const _FileDownloadCards = (props) => {
|
|
3171
3413
|
}
|
3172
3414
|
return (React__default['default'].createElement("div", { style: fileDownloadCardsStyle, "data-ui-id": "file-download-card-group" },
|
3173
3415
|
React__default['default'].createElement(_FileCardGroup, null, fileMetadata &&
|
3174
|
-
fileMetadata.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
|
3416
|
+
fileMetadata.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: downloadFileButtonString() },
|
3175
3417
|
React__default['default'].createElement(DownloadIconTrampoline, null))), actionHandler: () => fileDownloadHandler(userId, file) }))))));
|
3176
3418
|
};
|
3177
3419
|
/**
|
@@ -3200,6 +3442,7 @@ const generateCustomizedTimestamp = (props, createdOn, locale) => {
|
|
3200
3442
|
};
|
3201
3443
|
/** @private */
|
3202
3444
|
const MessageBubble = (props) => {
|
3445
|
+
var _a;
|
3203
3446
|
const ids = useIdentifiers();
|
3204
3447
|
const theme = useTheme();
|
3205
3448
|
const locale = useLocale$1();
|
@@ -3222,7 +3465,7 @@ const MessageBubble = (props) => {
|
|
3222
3465
|
const actionMenuProps = wasInteractionByTouch
|
3223
3466
|
? undefined
|
3224
3467
|
: chatMessageActionMenuProps({
|
3225
|
-
ariaLabel: strings.actionMenuMoreOptions,
|
3468
|
+
ariaLabel: (_a = strings.actionMenuMoreOptions) !== null && _a !== void 0 ? _a : '',
|
3226
3469
|
enabled: chatActionsEnabled,
|
3227
3470
|
menuButtonRef: messageActionButtonRef,
|
3228
3471
|
// Force show the action button while the flyout is open (otherwise this will dismiss when the pointer is hovered over the flyout)
|
@@ -3238,7 +3481,20 @@ const MessageBubble = (props) => {
|
|
3238
3481
|
// or not we need to set the target to undefined here to actually hide the action flyout
|
3239
3482
|
setChatMessageActionFlyoutTarget(undefined);
|
3240
3483
|
}, [setChatMessageActionFlyoutTarget]);
|
3241
|
-
const defaultOnRenderFileDownloads = React.useCallback(() =>
|
3484
|
+
const defaultOnRenderFileDownloads = React.useCallback(() => {
|
3485
|
+
var _a;
|
3486
|
+
return (React__default['default'].createElement(_FileDownloadCards, { userId: userId, fileMetadata: message['attachedFilesMetadata'] || [], downloadHandler: fileDownloadHandler,
|
3487
|
+
/* @conditional-compile-remove(file-sharing) */
|
3488
|
+
strings: { downloadFile: (_a = props.strings.downloadFile) !== null && _a !== void 0 ? _a : locale.strings.messageThread.downloadFile } }));
|
3489
|
+
}, [
|
3490
|
+
userId,
|
3491
|
+
message,
|
3492
|
+
/* @conditional-compile-remove(file-sharing) */
|
3493
|
+
props,
|
3494
|
+
/* @conditional-compile-remove(file-sharing) */
|
3495
|
+
locale,
|
3496
|
+
fileDownloadHandler
|
3497
|
+
]);
|
3242
3498
|
const chatMessage = (React__default['default'].createElement(React__default['default'].Fragment, null,
|
3243
3499
|
React__default['default'].createElement("div", { ref: messageRef },
|
3244
3500
|
React__default['default'].createElement(reactNorthstar.Chat.Message, { "data-ui-id": "chat-composite-message", className: react.mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: React__default['default'].createElement("div", null,
|
@@ -3311,7 +3567,7 @@ const ChatMessageComponent = (props) => {
|
|
3311
3567
|
else {
|
3312
3568
|
return (React__default['default'].createElement(ChatMessageComponentAsMessageBubble, Object.assign({}, props, { onRemoveClick: onRemoveClick, onEditClick: onEditClick, onResendClick: onResendClick, onRenderAvatar: props.onRenderAvatar,
|
3313
3569
|
/* @conditional-compile-remove(date-time-customization) */
|
3314
|
-
onDisplayDateTimeString: props.onDisplayDateTimeString })));
|
3570
|
+
onDisplayDateTimeString: props.onDisplayDateTimeString, strings: props.strings })));
|
3315
3571
|
}
|
3316
3572
|
};
|
3317
3573
|
|
@@ -3527,7 +3783,8 @@ const memoizeAllMessages = memoizeFnAll((_messageKey, message, showMessageDate,
|
|
3527
3783
|
const personaOptions = {
|
3528
3784
|
hidePersonaDetails: true,
|
3529
3785
|
size: react.PersonaSize.size32,
|
3530
|
-
text: message.senderDisplayName
|
3786
|
+
text: message.senderDisplayName,
|
3787
|
+
showOverflowTooltip: false
|
3531
3788
|
};
|
3532
3789
|
const chatItemMessageStyle = (message.mine ? styles === null || styles === void 0 ? void 0 : styles.myChatItemMessageContainer : styles === null || styles === void 0 ? void 0 : styles.chatItemMessageContainer) ||
|
3533
3790
|
defaultChatItemMessageContainer(shouldOverlapAvatarAndMessage);
|
@@ -3803,29 +4060,31 @@ const MessageThread = (props) => {
|
|
3803
4060
|
setMessageReadBy(getParticipantsWhoHaveReadMessage(message, readReceiptsBySenderIdRef.current));
|
3804
4061
|
}
|
3805
4062
|
}, []);
|
4063
|
+
const localeStrings = useLocale$1().strings.messageThread;
|
4064
|
+
const strings = React.useMemo(() => (Object.assign(Object.assign({}, localeStrings), props.strings)), [localeStrings, props.strings]);
|
3806
4065
|
// To rerender the defaultChatMessageRenderer if app running across days(every new day chat time stamp need to be regenerated)
|
3807
4066
|
const defaultChatMessageRenderer = React.useCallback((messageProps) => {
|
3808
4067
|
if (messageProps.message.messageType === 'chat') {
|
3809
|
-
return (React__default['default'].createElement(ChatMessageComponent, Object.assign({}, messageProps, { onRenderFileDownloads: onRenderFileDownloads,
|
4068
|
+
return (React__default['default'].createElement(ChatMessageComponent, Object.assign({}, messageProps, { onRenderFileDownloads: onRenderFileDownloads,
|
4069
|
+
/* @conditional-compile-remove(file-sharing) */
|
4070
|
+
strings: strings, message: messageProps.message, userId: props.userId, remoteParticipantsCount: participantCount ? participantCount - 1 : 0, inlineAcceptRejectEditButtons: !isNarrow, onRenderAvatar: onRenderAvatar, showMessageStatus: showMessageStatus, messageStatus: messageProps.message.status, onActionButtonClick: onActionButtonClickMemo,
|
3810
4071
|
/* @conditional-compile-remove(date-time-customization) */
|
3811
4072
|
onDisplayDateTimeString: onDisplayDateTimeString })));
|
3812
4073
|
}
|
3813
4074
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
3814
4075
|
}, [
|
3815
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
3816
|
-
new Date().toDateString(),
|
3817
|
-
isNarrow,
|
3818
|
-
participantCount,
|
3819
|
-
onRenderAvatar,
|
3820
|
-
onActionButtonClickMemo,
|
3821
4076
|
onRenderFileDownloads,
|
4077
|
+
/* @conditional-compile-remove(file-sharing) */
|
4078
|
+
strings,
|
3822
4079
|
props.userId,
|
4080
|
+
participantCount,
|
4081
|
+
isNarrow,
|
4082
|
+
onRenderAvatar,
|
3823
4083
|
showMessageStatus,
|
4084
|
+
onActionButtonClickMemo,
|
3824
4085
|
/* @conditional-compile-remove(date-time-customization) */
|
3825
4086
|
onDisplayDateTimeString
|
3826
4087
|
]);
|
3827
|
-
const localeStrings = useLocale$1().strings.messageThread;
|
3828
|
-
const strings = React.useMemo(() => (Object.assign(Object.assign({}, localeStrings), props.strings)), [localeStrings, props.strings]);
|
3829
4088
|
const defaultStatusRenderer = React.useCallback((message, status, participantCount, readCount) => {
|
3830
4089
|
const onToggleToolTip = (isToggled) => {
|
3831
4090
|
if (isToggled && readReceiptsBySenderIdRef.current) {
|
@@ -3901,8 +4160,8 @@ const MessageThread = (props) => {
|
|
3901
4160
|
}, [theme, styles === null || styles === void 0 ? void 0 : styles.chatContainer, messagesToDisplay]);
|
3902
4161
|
return (React__default['default'].createElement(reactNorthstar.Ref, { innerRef: chatThreadRef },
|
3903
4162
|
React__default['default'].createElement(react.Stack, { className: react.mergeStyles(messageThreadContainerStyle, styles === null || styles === void 0 ? void 0 : styles.root), grow: true },
|
3904
|
-
React__default['default'].createElement(
|
3905
|
-
|
4163
|
+
existsNewChatMessage && !disableJumpToNewMessageButton && (React__default['default'].createElement("div", { className: react.mergeStyles(newMessageButtonContainerStyle, styles === null || styles === void 0 ? void 0 : styles.newMessageButtonContainer) }, onRenderJumpToNewMessageButton ? (onRenderJumpToNewMessageButton({ text: strings.newMessagesIndicator, onClick: scrollToBottom })) : (React__default['default'].createElement(DefaultJumpToNewMessageButton, { text: strings.newMessagesIndicator, onClick: scrollToBottom })))),
|
4164
|
+
React__default['default'].createElement(reactNorthstar.Ref, { innerRef: chatScrollDivRef }, chatBody))));
|
3906
4165
|
};
|
3907
4166
|
const onRenderFileDownloadsTrampoline = (props) => {
|
3908
4167
|
/* @conditional-compile-remove(file-sharing) */
|
@@ -3926,6 +4185,40 @@ const linkStyles = (theme) => {
|
|
3926
4185
|
};
|
3927
4186
|
|
3928
4187
|
// Copyright (c) Microsoft Corporation.
|
4188
|
+
/**
|
4189
|
+
* @private
|
4190
|
+
*/
|
4191
|
+
const container = () => react.mergeStyles({
|
4192
|
+
position: 'relative',
|
4193
|
+
display: 'contents'
|
4194
|
+
});
|
4195
|
+
/**
|
4196
|
+
* @private
|
4197
|
+
*/
|
4198
|
+
const loadingSpinnerContainer = () => react.mergeStyles({
|
4199
|
+
// Position centrally on top of content. Parent must have position: relative.
|
4200
|
+
position: 'absolute',
|
4201
|
+
top: '50%',
|
4202
|
+
bottom: '0',
|
4203
|
+
left: '50%',
|
4204
|
+
right: '0',
|
4205
|
+
transform: 'translate(-50%, -50%)'
|
4206
|
+
});
|
4207
|
+
/**
|
4208
|
+
* @private
|
4209
|
+
*/
|
4210
|
+
const loadSpinnerStyles = {
|
4211
|
+
root: {
|
4212
|
+
height: '100%' // ensure height fills container
|
4213
|
+
},
|
4214
|
+
circle: {
|
4215
|
+
maxHeight: '5rem',
|
4216
|
+
height: '50%',
|
4217
|
+
width: 'unset',
|
4218
|
+
aspectRatio: '1 / 1',
|
4219
|
+
borderWidth: '0.25em'
|
4220
|
+
}
|
4221
|
+
};
|
3929
4222
|
/**
|
3930
4223
|
* @private
|
3931
4224
|
*/
|
@@ -3968,7 +4261,7 @@ const invertedVideoInPipStyle = (theme) => react.mergeStyles(mediaContainer(them
|
|
3968
4261
|
const StreamMedia = (props) => {
|
3969
4262
|
const containerEl = React.useRef(null);
|
3970
4263
|
const theme = useTheme();
|
3971
|
-
const { isMirrored, videoStreamElement, styles } = props;
|
4264
|
+
const { isMirrored, videoStreamElement, styles, loadingState = 'none' } = props;
|
3972
4265
|
const [pipEnabled, setPipEnabled] = React.useState(false);
|
3973
4266
|
React.useEffect(() => {
|
3974
4267
|
const container = containerEl.current;
|
@@ -3994,7 +4287,10 @@ const StreamMedia = (props) => {
|
|
3994
4287
|
setPipEnabled(false);
|
3995
4288
|
};
|
3996
4289
|
}, [videoStreamElement]);
|
3997
|
-
return (React__default['default'].createElement("div", { className:
|
4290
|
+
return (React__default['default'].createElement("div", { className: container() },
|
4291
|
+
React__default['default'].createElement("div", { className: react.mergeStyles(isMirrored && pipEnabled ? invertedVideoInPipStyle(theme) : mediaContainer(theme), styles === null || styles === void 0 ? void 0 : styles.root), ref: containerEl }),
|
4292
|
+
loadingState === 'loading' && (React__default['default'].createElement("div", { className: loadingSpinnerContainer() },
|
4293
|
+
React__default['default'].createElement(react.Spinner, { "data-ui-id": "stream-media-loading-spinner", styles: loadSpinnerStyles })))));
|
3998
4294
|
};
|
3999
4295
|
|
4000
4296
|
// Copyright (c) Microsoft Corporation.
|
@@ -4052,7 +4348,7 @@ const meContainerStyle = {
|
|
4052
4348
|
*/
|
4053
4349
|
const ParticipantItem = (props) => {
|
4054
4350
|
var _a, _b, _c, _d;
|
4055
|
-
const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick } = props;
|
4351
|
+
const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip } = props;
|
4056
4352
|
const [itemHovered, setItemHovered] = React.useState(false);
|
4057
4353
|
const [menuHidden, setMenuHidden] = React.useState(true);
|
4058
4354
|
const containerRef = React.useRef(null);
|
@@ -4065,7 +4361,8 @@ const ParticipantItem = (props) => {
|
|
4065
4361
|
text: displayName,
|
4066
4362
|
size: react.PersonaSize.size32,
|
4067
4363
|
presence: presence,
|
4068
|
-
initialsTextColor: 'white'
|
4364
|
+
initialsTextColor: 'white',
|
4365
|
+
showOverflowTooltip: showParticipantOverflowTooltip
|
4069
4366
|
};
|
4070
4367
|
const avatar = onRenderAvatar ? (onRenderAvatar(userId !== null && userId !== void 0 ? userId : '', avatarOptions)) : (React__default['default'].createElement(react.Persona, Object.assign({ className: react.mergeStyles({
|
4071
4368
|
// Prevents persona text from being vertically truncated if a global line height is less than 1.15.
|
@@ -4134,7 +4431,7 @@ const iconStyles$1 = react.mergeStyles({
|
|
4134
4431
|
});
|
4135
4432
|
|
4136
4433
|
// Copyright (c) Microsoft Corporation.
|
4137
|
-
const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick) => {
|
4434
|
+
const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick, showParticipantOverflowTooltip) => {
|
4138
4435
|
const callingParticipant = participant;
|
4139
4436
|
let presence = undefined;
|
4140
4437
|
if (callingParticipant) {
|
@@ -4151,10 +4448,8 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
|
|
4151
4448
|
callingParticipant.isScreenSharing && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$1, ariaLabel: strings.sharingIconLabel })),
|
4152
4449
|
callingParticipant.isMuted && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$1, ariaLabel: strings.mutedIconLabel }))))
|
4153
4450
|
: () => null;
|
4154
|
-
|
4155
|
-
|
4156
|
-
}
|
4157
|
-
return null;
|
4451
|
+
const displayName = !participant.displayName ? strings.displayNamePlaceholder : participant.displayName;
|
4452
|
+
return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
|
4158
4453
|
};
|
4159
4454
|
const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
|
4160
4455
|
if (!excludeMe || !myUserId) {
|
@@ -4177,7 +4472,7 @@ const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
|
|
4177
4472
|
*/
|
4178
4473
|
const ParticipantList = (props) => {
|
4179
4474
|
var _a, _b;
|
4180
|
-
const { excludeMe = false, myUserId, participants, onRemoveParticipant, onRenderAvatar, onRenderParticipant, onFetchParticipantMenuItems } = props;
|
4475
|
+
const { excludeMe = false, myUserId, participants, onRemoveParticipant, onRenderAvatar, onRenderParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
|
4181
4476
|
const ids = useIdentifiers();
|
4182
4477
|
const strings = useLocale$1().strings.participantItem;
|
4183
4478
|
const displayedParticipants = React.useMemo(() => {
|
@@ -4206,7 +4501,7 @@ const ParticipantList = (props) => {
|
|
4206
4501
|
const participantItemStyles = react.merge(participantListItemStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.participantItemStyles);
|
4207
4502
|
return (React__default['default'].createElement(react.Stack, { "data-ui-id": ids.participantList, className: react.mergeStyles(participantListStyle$1, (_b = props.styles) === null || _b === void 0 ? void 0 : _b.root) }, displayedParticipants.map((participant) => onRenderParticipant
|
4208
4503
|
? onRenderParticipant(participant)
|
4209
|
-
: onRenderParticipantDefault(participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick))));
|
4504
|
+
: onRenderParticipantDefault(participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick, showParticipantOverflowTooltip))));
|
4210
4505
|
};
|
4211
4506
|
|
4212
4507
|
/**
|
@@ -4261,162 +4556,32 @@ const participantsById = (participants) => {
|
|
4261
4556
|
|
4262
4557
|
// Copyright (c) Microsoft Corporation.
|
4263
4558
|
/**
|
4264
|
-
*
|
4265
|
-
*
|
4559
|
+
* Helper hook to maintain the video stream lifecycle. This calls onCreateStreamView and onDisposeStreamView
|
4560
|
+
* appropriately based on react lifecycle events and prop changes.
|
4266
4561
|
*
|
4267
|
-
*
|
4268
|
-
* asynchronously that may need to be later cancelled.
|
4562
|
+
* @remarks
|
4269
4563
|
*
|
4270
|
-
*
|
4271
|
-
* cancellation at appropriate points and return early when cancelled.
|
4272
|
-
* - There can be only one task in progress at any time. Triggering a second
|
4273
|
-
* task cancels the previously triggered task, if it exists.
|
4564
|
+
* Notes on handling changes to scaling mode:
|
4274
4565
|
*
|
4275
|
-
*
|
4276
|
-
*
|
4277
|
-
*
|
4278
|
-
*
|
4279
|
-
* useEffect(() => {
|
4280
|
-
* // Some asynchronous task that needs to be triggered (but not waited upon).
|
4281
|
-
* triggerFunc(async (cancellable: Cancellable) => {
|
4282
|
-
* // Task cancellation is cooperative. The following blocking call is not
|
4283
|
-
* // cancellable (it does not take the cancellable argument at all). So
|
4284
|
-
* // any cancellation will only take effect once this call is await'ed.
|
4285
|
-
* const costlyBlockingCallReturn = await costlyBlockingCall(someArg);
|
4286
|
-
*
|
4287
|
-
* // Cooperative cancellation.
|
4288
|
-
* if (cancellable.cancelled) {
|
4289
|
-
* return;
|
4290
|
-
* }
|
4566
|
+
* Ideally we have access to the original StreamRenderView and can call view.updateScalingMode() and do not need to recreate the stream view.
|
4567
|
+
* However, to support backwards compat we cannot guarantee this. If we don't have access to the original StreamRenderView we need to dispose
|
4568
|
+
* the old view and create a new one.
|
4291
4569
|
*
|
4292
|
-
*
|
4293
|
-
*
|
4294
|
-
*
|
4295
|
-
*
|
4296
|
-
*
|
4297
|
-
* // There can be many reasons to cancel the task.
|
4298
|
-
* // In this example, the task is canceled before the useEffect runs again.
|
4299
|
-
* // Strictly speaking this is unnecessary because triggering another task
|
4300
|
-
* // would automatically cancel previously triggered task.
|
4301
|
-
* return () => {
|
4302
|
-
* cancelFunc();
|
4303
|
-
* }
|
4304
|
-
* }, [someArg]);
|
4305
|
-
* ```
|
4306
|
-
*/
|
4307
|
-
const useCancellableTask = () => {
|
4308
|
-
// Memoize all internal objects and returned values so that
|
4309
|
-
// this hook returns referentially stable values on each render.
|
4310
|
-
const cancelMarker = React.useMemo(() => {
|
4311
|
-
return new CancelMarker();
|
4312
|
-
}, []);
|
4313
|
-
// Cancel any pending task when component unmounts.
|
4314
|
-
React.useEffect(() => {
|
4315
|
-
return cancelMarker.cancel;
|
4316
|
-
},
|
4317
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
4318
|
-
[]);
|
4319
|
-
const response = React.useMemo(() => {
|
4320
|
-
const trigger = (action) => {
|
4321
|
-
const cancellable = cancelMarker.reset();
|
4322
|
-
action(cancellable);
|
4323
|
-
};
|
4324
|
-
return [trigger, cancelMarker.cancel];
|
4325
|
-
}, [cancelMarker]);
|
4326
|
-
return response;
|
4327
|
-
};
|
4328
|
-
class CancelMarker {
|
4329
|
-
constructor() {
|
4330
|
-
this.cancellable = null;
|
4331
|
-
this.cancel = () => {
|
4332
|
-
if (this.cancellable) {
|
4333
|
-
this.cancellable.cancelled = true;
|
4334
|
-
this.cancellable = null;
|
4335
|
-
}
|
4336
|
-
};
|
4337
|
-
this.reset = () => {
|
4338
|
-
this.cancel();
|
4339
|
-
this.cancellable = { cancelled: false };
|
4340
|
-
return this.cancellable;
|
4341
|
-
};
|
4342
|
-
}
|
4343
|
-
}
|
4344
|
-
|
4345
|
-
// Copyright (c) Microsoft Corporation.
|
4346
|
-
// Licensed under the MIT license.
|
4347
|
-
var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4348
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4349
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4350
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
4351
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
4352
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
4353
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
4354
|
-
});
|
4355
|
-
};
|
4356
|
-
/**
|
4357
|
-
* Helper hook to maintain the video stream lifecycle. This calls onCreateStreamView and onDisposeStreamView
|
4358
|
-
* appropriately based on react lifecycle events and prop changes.
|
4359
|
-
* This also handles calls to view.update* appropriately such as view.updateScalingMode().
|
4570
|
+
* Supporting both of these scenarios became too complex and fragile. When we introduce a breaking change this should be update to ensure that
|
4571
|
+
* onCreateStreamView _must_ return a view object with updateScalingMode and update logic in this hook to call view.updateScalingMode instead
|
4572
|
+
* of recreating the stream.
|
4573
|
+
*
|
4574
|
+
* @private
|
4360
4575
|
*/
|
4361
4576
|
const useVideoStreamLifecycleMaintainer = (props) => {
|
4362
4577
|
const { isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode } = props;
|
4363
|
-
// HANDLING CHANGES TO VIDEO VIEW OPTIONS
|
4364
|
-
//
|
4365
|
-
// When VideoViewOptions change two things may happen:
|
4366
|
-
//
|
4367
|
-
// 1. Just the scaling mode has changed and we have access to the original StreamRenderView
|
4368
|
-
// - In this case we just need to call updateScalingMode on the view and do not need to recreate the stream view
|
4369
|
-
// 2. isMirrored has changed, or scalingMode change and we don't have access to the original StreamRenderView
|
4370
|
-
// - In this case we need to dispose the old view and create a new one
|
4371
|
-
//
|
4372
|
-
// For scenario 1, we hold onto a ref to the scalingMode that persists across renders. When VideoViewOptions.scalingMode
|
4373
|
-
// differs from the persistent ref, we know to call updateScalingMode. We then subsequently update the ref to the new value for
|
4374
|
-
// future renders.
|
4375
|
-
//
|
4376
|
-
// For scenario 2, we extract the VideoViewOptions.isMirrored to ensure any change to the isMirrored prop triggers the useEffect
|
4377
|
-
// that recreates the stream view. We must also here add an extra check for when the scaling mode changes and we do not have
|
4378
|
-
// access to the original StreamView (and hence cannot call updateScalingMode). When this happens we must also trigger the useEffect
|
4379
|
-
// that recreates the stream view.
|
4380
|
-
const [streamRendererResult, setStreamRendererResult] = React__default['default'].useState();
|
4381
|
-
const scalingModeRef = React.useRef(scalingMode);
|
4382
|
-
const hasScalingModeChanged = scalingModeRef.current !== scalingMode;
|
4383
|
-
const updatingScalingModeDirectly = hasScalingModeChanged && !!streamRendererResult;
|
4384
|
-
const [triggerRescale, cancelRescale] = useCancellableTask();
|
4385
|
-
const [triggerCreateStreamView, cancelCreateStreamView] = useCancellableTask();
|
4386
|
-
if (isStreamAvailable && renderElementExists && scalingMode && updatingScalingModeDirectly) {
|
4387
|
-
triggerRescale((cancellable) => __awaiter$n(void 0, void 0, void 0, function* () {
|
4388
|
-
streamRendererResult && (yield streamRendererResult.view.updateScalingMode(scalingMode));
|
4389
|
-
if (cancellable.cancelled) {
|
4390
|
-
return;
|
4391
|
-
}
|
4392
|
-
scalingModeRef.current = scalingMode;
|
4393
|
-
}));
|
4394
|
-
}
|
4395
|
-
// scalingModeForUseEffect will trigger the useEffect to recreate the stream view only if the scaling mode has changed and
|
4396
|
-
// we cannot call updateScalingMode on the view object directly. Otherwise it will be null to ensure the useEffect does not trigger
|
4397
|
-
// when scaling mode changes.
|
4398
|
-
const scalingModeForUseEffect = updatingScalingModeDirectly ? null : scalingMode;
|
4399
4578
|
React.useEffect(() => {
|
4400
4579
|
if (isStreamAvailable && !renderElementExists) {
|
4401
|
-
|
4402
|
-
const streamViewOptions = {
|
4403
|
-
isMirrored: isMirrored,
|
4404
|
-
scalingMode: scalingModeForUseEffect === null ? scalingModeRef.current : scalingModeForUseEffect
|
4405
|
-
};
|
4406
|
-
const streamRendererResult = yield (onCreateStreamView === null || onCreateStreamView === void 0 ? void 0 : onCreateStreamView(streamViewOptions));
|
4407
|
-
// Avoid race condition where onDisposeStreamView is called before onCreateStreamView
|
4408
|
-
// and setStreamRendererResult have completed
|
4409
|
-
if (cancellable.cancelled) {
|
4410
|
-
return;
|
4411
|
-
}
|
4412
|
-
streamRendererResult && setStreamRendererResult(streamRendererResult);
|
4413
|
-
}));
|
4580
|
+
onCreateStreamView === null || onCreateStreamView === void 0 ? void 0 : onCreateStreamView({ isMirrored, scalingMode });
|
4414
4581
|
}
|
4415
4582
|
// Always clean up element to make tile up to date and be able to dispose correctly
|
4416
4583
|
return () => {
|
4417
4584
|
if (renderElementExists) {
|
4418
|
-
cancelRescale();
|
4419
|
-
cancelCreateStreamView();
|
4420
4585
|
// TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share
|
4421
4586
|
if (!isScreenSharingOn) {
|
4422
4587
|
onDisposeStreamView === null || onDisposeStreamView === void 0 ? void 0 : onDisposeStreamView();
|
@@ -4424,30 +4589,25 @@ const useVideoStreamLifecycleMaintainer = (props) => {
|
|
4424
4589
|
}
|
4425
4590
|
};
|
4426
4591
|
}, [
|
4427
|
-
cancelCreateStreamView,
|
4428
|
-
cancelRescale,
|
4429
4592
|
isMirrored,
|
4430
4593
|
isScreenSharingOn,
|
4431
4594
|
isStreamAvailable,
|
4432
4595
|
onCreateStreamView,
|
4433
4596
|
onDisposeStreamView,
|
4434
4597
|
renderElementExists,
|
4435
|
-
|
4436
|
-
triggerCreateStreamView
|
4598
|
+
scalingMode
|
4437
4599
|
]);
|
4438
4600
|
// The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView
|
4439
4601
|
// Element disposed could happen during async time gap, which still cause leaks for unused renderElement.
|
4440
4602
|
// Need to do an entire cleanup when remoteTile gets disposed and make sure element gets correctly disposed
|
4441
4603
|
React.useEffect(() => {
|
4442
4604
|
return () => {
|
4443
|
-
cancelRescale();
|
4444
|
-
cancelCreateStreamView();
|
4445
4605
|
// TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share
|
4446
4606
|
if (!isScreenSharingOn) {
|
4447
4607
|
onDisposeStreamView === null || onDisposeStreamView === void 0 ? void 0 : onDisposeStreamView();
|
4448
4608
|
}
|
4449
4609
|
};
|
4450
|
-
}, [
|
4610
|
+
}, [isScreenSharingOn, onDisposeStreamView]);
|
4451
4611
|
};
|
4452
4612
|
/**
|
4453
4613
|
* Extension of {@link useVideoStreamLifecycleMaintainer} specifically for local video streams
|
@@ -4597,7 +4757,7 @@ const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
|
|
4597
4757
|
const DefaultPlaceholder = (props) => {
|
4598
4758
|
const { text, noVideoAvailableAriaLabel, coinSize, styles, hidePersonaDetails } = props;
|
4599
4759
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
4600
|
-
React__default['default'].createElement(react.Persona, { styles: styles, coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '' })));
|
4760
|
+
React__default['default'].createElement(react.Persona, { styles: styles, coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false })));
|
4601
4761
|
};
|
4602
4762
|
const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
|
4603
4763
|
/**
|
@@ -4663,11 +4823,13 @@ const VideoTile = (props) => {
|
|
4663
4823
|
* @internal
|
4664
4824
|
*/
|
4665
4825
|
const _RemoteVideoTile = React__default['default'].memo((props) => {
|
4666
|
-
const { isAvailable,
|
4826
|
+
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
4827
|
+
isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator } = props;
|
4667
4828
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
4668
4829
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
4669
4830
|
isScreenSharingOn,
|
4670
4831
|
isStreamAvailable: isAvailable,
|
4832
|
+
isStreamReceiving: isReceiving,
|
4671
4833
|
onCreateRemoteStreamView,
|
4672
4834
|
onDisposeRemoteStreamView,
|
4673
4835
|
remoteParticipantId: userId,
|
@@ -4675,6 +4837,7 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
4675
4837
|
scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode
|
4676
4838
|
}), [
|
4677
4839
|
isAvailable,
|
4840
|
+
isReceiving,
|
4678
4841
|
isScreenSharingOn,
|
4679
4842
|
onCreateRemoteStreamView,
|
4680
4843
|
onDisposeRemoteStreamView,
|
@@ -4692,8 +4855,8 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
4692
4855
|
// Returning `undefined` results in the placeholder with avatar being shown
|
4693
4856
|
return undefined;
|
4694
4857
|
}
|
4695
|
-
return React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement });
|
4696
|
-
}, [renderElement]);
|
4858
|
+
return React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? 'none' : 'loading' });
|
4859
|
+
}, [renderElement, isReceiving]);
|
4697
4860
|
return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize }));
|
4698
4861
|
});
|
4699
4862
|
|
@@ -5084,7 +5247,10 @@ const LocalScreenShare = React__default['default'].memo((props) => {
|
|
5084
5247
|
React__default['default'].createElement(react.Stack, { horizontal: true, verticalAlign: "center", className: screenSharingNotificationIconContainerStyle },
|
5085
5248
|
React__default['default'].createElement(react.Icon, { iconName: "ControlButtonScreenShareStart", className: screenSharingNotificationIconStyle(theme) })),
|
5086
5249
|
React__default['default'].createElement(react.Text, { className: screenSharingNotificationTextStyle, "aria-live": "polite" }, locale.strings.videoGallery.screenIsBeingSharedMessage))));
|
5087
|
-
|
5250
|
+
const displayName = !(localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.displayName)
|
5251
|
+
? locale.strings.videoGallery.displayNamePlaceholder
|
5252
|
+
: localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.displayName;
|
5253
|
+
return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.isMuted, onRenderPlaceholder: () => React__default['default'].createElement(React__default['default'].Fragment, null) }, localScreenSharingNotification));
|
5088
5254
|
});
|
5089
5255
|
|
5090
5256
|
// Copyright (c) Microsoft Corporation.
|
@@ -5103,7 +5269,7 @@ const loadingStyle = react.mergeStyles({
|
|
5103
5269
|
* https://reactjs.org/docs/react-api.html#reactmemo
|
5104
5270
|
*/
|
5105
5271
|
const RemoteScreenShare = React__default['default'].memo((props) => {
|
5106
|
-
const { userId, displayName, isMuted, renderElement, onCreateRemoteStreamView, onDisposeRemoteStreamView } = props;
|
5272
|
+
const { userId, displayName, isMuted, renderElement, onCreateRemoteStreamView, onDisposeRemoteStreamView, isReceiving } = props;
|
5107
5273
|
const locale = useLocale$1();
|
5108
5274
|
if (!renderElement) {
|
5109
5275
|
onCreateRemoteStreamView && onCreateRemoteStreamView(userId);
|
@@ -5119,7 +5285,7 @@ const RemoteScreenShare = React__default['default'].memo((props) => {
|
|
5119
5285
|
participant: displayName
|
5120
5286
|
})
|
5121
5287
|
: '';
|
5122
|
-
return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement }) : undefined, onRenderPlaceholder: () => React__default['default'].createElement(LoadingSpinner, { loadingMessage: loadingMessage }) }));
|
5288
|
+
return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? 'none' : 'loading' })) : undefined, onRenderPlaceholder: () => React__default['default'].createElement(LoadingSpinner, { loadingMessage: loadingMessage }) }));
|
5123
5289
|
});
|
5124
5290
|
const LoadingSpinner = (props) => {
|
5125
5291
|
return (React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: loadingStyle },
|
@@ -5897,7 +6063,7 @@ const modalMaxDragPosition = { x: localVideoTileOuterPaddingPX, y: localVideoTil
|
|
5897
6063
|
* @public
|
5898
6064
|
*/
|
5899
6065
|
const VideoGallery = (props) => {
|
5900
|
-
var _a, _b, _c;
|
6066
|
+
var _a, _b, _c, _d;
|
5901
6067
|
const { localParticipant, remoteParticipants = [], localVideoViewOptions, remoteVideoViewOptions, dominantSpeakers, onRenderLocalVideoTile, onRenderRemoteVideoTile, onCreateLocalStreamView, onDisposeLocalStreamView, onCreateRemoteStreamView, onDisposeRemoteStreamView, styles, layout, onRenderAvatar, showMuteIndicator, maxRemoteVideoStreams = DEFAULT_MAX_REMOTE_VIDEO_STREAMS, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps } = props;
|
5902
6068
|
const ids = useIdentifiers();
|
5903
6069
|
const theme = useTheme();
|
@@ -5948,8 +6114,9 @@ const VideoGallery = (props) => {
|
|
5948
6114
|
const localVideoTileStyles = react.concatStyleSets(shouldFloatLocalVideo ? floatingLocalVideoTileStyle : {}, {
|
5949
6115
|
root: { borderRadius: theme.effects.roundedCorner4 }
|
5950
6116
|
}, styles === null || styles === void 0 ? void 0 : styles.localVideo);
|
6117
|
+
const initialsName = !localParticipant.displayName ? strings.displayNamePlaceholder : localParticipant.displayName;
|
5951
6118
|
return (React__default['default'].createElement(react.Stack, { key: "local-video-tile-key", tabIndex: 0, "aria-label": strings.localVideoMovementLabel, role: 'dialog' },
|
5952
|
-
React__default['default'].createElement(_LocalVideoTile, { userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, displayName: isNarrow ? '' : strings.localVideoLabel, initialsName:
|
6119
|
+
React__default['default'].createElement(_LocalVideoTile, { userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, displayName: isNarrow ? '' : strings.localVideoLabel, initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: !(shouldFloatLocalVideo && isNarrow), showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles })));
|
5953
6120
|
}, [
|
5954
6121
|
isNarrow,
|
5955
6122
|
localParticipant,
|
@@ -5966,12 +6133,13 @@ const VideoGallery = (props) => {
|
|
5966
6133
|
strings.localVideoLabel,
|
5967
6134
|
strings.localVideoMovementLabel,
|
5968
6135
|
strings.localVideoSelectedDescription,
|
6136
|
+
strings.displayNamePlaceholder,
|
5969
6137
|
styles === null || styles === void 0 ? void 0 : styles.localVideo,
|
5970
6138
|
theme.effects.roundedCorner4
|
5971
6139
|
]);
|
5972
6140
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
5973
6141
|
const remoteVideoStream = participant.videoStream;
|
5974
|
-
return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator })));
|
6142
|
+
return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator })));
|
5975
6143
|
}, [onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, onRenderAvatar, showMuteIndicator]);
|
5976
6144
|
const videoTiles = onRenderRemoteVideoTile
|
5977
6145
|
? visibleVideoParticipants.current.map((participant) => onRenderRemoteVideoTile(participant))
|
@@ -6001,7 +6169,7 @@ const VideoGallery = (props) => {
|
|
6001
6169
|
gridTiles.push(localVideoTile);
|
6002
6170
|
}
|
6003
6171
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
6004
|
-
const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_c = screenShareParticipant.screenShareStream) === null || _c === void 0 ? void 0 : _c.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteStreamView })));
|
6172
|
+
const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_c = screenShareParticipant.screenShareStream) === null || _c === void 0 ? void 0 : _c.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteStreamView, isReceiving: (_d = screenShareParticipant.screenShareStream) === null || _d === void 0 ? void 0 : _d.isReceiving })));
|
6005
6173
|
const horizontalGalleryPresent = horizontalGalleryTiles && horizontalGalleryTiles.length > 0;
|
6006
6174
|
const layerHostId = reactHooks.useId('layerhost');
|
6007
6175
|
return (React__default['default'].createElement("div", { "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
@@ -6405,35 +6573,9 @@ const DevicesButton = (props) => {
|
|
6405
6573
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { menuProps: devicesButtonMenu, menuIconProps: { hidden: true }, onRenderIcon: onRenderIcon !== null && onRenderIcon !== void 0 ? onRenderIcon : onRenderOptionsIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'devicesButtonLabel' })));
|
6406
6574
|
};
|
6407
6575
|
|
6408
|
-
// Copyright (c) Microsoft Corporation.
|
6409
|
-
/**
|
6410
|
-
* @private
|
6411
|
-
* Announcer component to maker aria announcements on actions
|
6412
|
-
*/
|
6413
|
-
const Announcer = (props) => {
|
6414
|
-
const { announcementString, ariaLive } = props;
|
6415
|
-
return React__default['default'].createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, styles: announcerStyles });
|
6416
|
-
};
|
6417
|
-
/**
|
6418
|
-
* Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.
|
6419
|
-
*/
|
6420
|
-
const announcerStyles = {
|
6421
|
-
root: {
|
6422
|
-
position: 'absolute',
|
6423
|
-
width: '1px',
|
6424
|
-
height: '1px',
|
6425
|
-
padding: 0,
|
6426
|
-
margin: '-1px',
|
6427
|
-
overflow: 'hidden',
|
6428
|
-
clip: 'rect(0,0,0,0)',
|
6429
|
-
whiteSpace: 'nowrap',
|
6430
|
-
border: 0
|
6431
|
-
}
|
6432
|
-
};
|
6433
|
-
|
6434
6576
|
// Copyright (c) Microsoft Corporation.
|
6435
6577
|
// Licensed under the MIT license.
|
6436
|
-
var __awaiter$
|
6578
|
+
var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
6437
6579
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
6438
6580
|
return new (P || (P = Promise))(function (resolve, reject) {
|
6439
6581
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -6470,7 +6612,7 @@ const CameraButton = (props) => {
|
|
6470
6612
|
const toggleAnnouncerString = React.useCallback((isCameraOn) => {
|
6471
6613
|
setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
|
6472
6614
|
}, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
|
6473
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
6615
|
+
const onToggleClick = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
|
6474
6616
|
// Throttle click on camera, need to await onToggleCamera then allow another click
|
6475
6617
|
if (onToggleCamera) {
|
6476
6618
|
setWaitForCamera(true);
|
@@ -6602,7 +6744,7 @@ const lightThemeCallButtonStyles = {
|
|
6602
6744
|
|
6603
6745
|
// Copyright (c) Microsoft Corporation.
|
6604
6746
|
// Licensed under the MIT license.
|
6605
|
-
var __awaiter$
|
6747
|
+
var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
6606
6748
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
6607
6749
|
return new (P || (P = Promise))(function (resolve, reject) {
|
6608
6750
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -6619,23 +6761,31 @@ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
6619
6761
|
* @public
|
6620
6762
|
*/
|
6621
6763
|
const MicrophoneButton = (props) => {
|
6622
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
6764
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
6623
6765
|
const { onToggleMicrophone } = props;
|
6624
6766
|
const localeStrings = useLocale$1().strings.microphoneButton;
|
6625
6767
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
6626
6768
|
const [announcerString, setAnnouncerString] = React.useState(undefined);
|
6769
|
+
const isSplit = (_a = props.split) !== null && _a !== void 0 ? _a : props.enableDeviceSelectionMenu;
|
6770
|
+
// The button should be disabled when there are no mics. However if the button is a split button, if there are
|
6771
|
+
// no mics but there are speakers, then only the primary part of the button should be disabled to allow for
|
6772
|
+
// speaker change.
|
6773
|
+
const primaryDisabled = props.primaryDisabled || (isSplit && !((_b = props.microphones) === null || _b === void 0 ? void 0 : _b.length) ? true : undefined);
|
6774
|
+
const disabled = props.disabled ||
|
6775
|
+
(isSplit && !((_c = props.microphones) === null || _c === void 0 ? void 0 : _c.length) && !((_d = props.speakers) === null || _d === void 0 ? void 0 : _d.length)) ||
|
6776
|
+
(!isSplit && props.microphones && ((_e = props.microphones) === null || _e === void 0 ? void 0 : _e.length) === 0);
|
6627
6777
|
const onRenderMicOnIcon = () => {
|
6628
|
-
return React__default['default'].createElement(HighContrastAwareIcon, { disabled:
|
6778
|
+
return React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOn" });
|
6629
6779
|
};
|
6630
6780
|
const onRenderMicOffIcon = () => {
|
6631
|
-
return React__default['default'].createElement(HighContrastAwareIcon, { disabled:
|
6781
|
+
return React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOff" });
|
6632
6782
|
};
|
6633
6783
|
const isMicOn = props.checked;
|
6634
6784
|
const splitButtonAriaString = isMicOn ? strings.onSplitButtonAriaLabel : strings.offSplitButtonAriaLabel;
|
6635
6785
|
const toggleAnnouncerString = React.useCallback((isMicOn) => {
|
6636
6786
|
setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
|
6637
6787
|
}, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
|
6638
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
6788
|
+
const onToggleClick = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
|
6639
6789
|
if (onToggleMicrophone) {
|
6640
6790
|
try {
|
6641
6791
|
yield onToggleMicrophone();
|
@@ -6649,9 +6799,9 @@ const MicrophoneButton = (props) => {
|
|
6649
6799
|
}), [isMicOn, onToggleMicrophone, toggleAnnouncerString]);
|
6650
6800
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
6651
6801
|
React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
|
6652
|
-
React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { onClick: props.onToggleMicrophone ? onToggleClick : props.onClick, onRenderOnIcon: (
|
6653
|
-
? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (
|
6654
|
-
: undefined), menuIconProps: ((
|
6802
|
+
React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { onClick: props.onToggleMicrophone ? onToggleClick : props.onClick, onRenderOnIcon: (_f = props.onRenderOnIcon) !== null && _f !== void 0 ? _f : onRenderMicOnIcon, onRenderOffIcon: (_g = props.onRenderOffIcon) !== null && _g !== void 0 ? _g : onRenderMicOffIcon, strings: strings, labelKey: (_h = props.labelKey) !== null && _h !== void 0 ? _h : 'microphoneButtonLabel', menuProps: (_j = props.menuProps) !== null && _j !== void 0 ? _j : (props.enableDeviceSelectionMenu
|
6803
|
+
? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (_k = props.styles) === null || _k === void 0 ? void 0 : _k.menuStyles }), strings)
|
6804
|
+
: undefined), menuIconProps: ((_l = props.menuIconProps) !== null && _l !== void 0 ? _l : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_m = props.split) !== null && _m !== void 0 ? _m : props.enableDeviceSelectionMenu, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.microphoneButtonSplitRoleDescription : undefined, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined, disabled: disabled, primaryDisabled: primaryDisabled }))));
|
6655
6805
|
};
|
6656
6806
|
|
6657
6807
|
// Copyright (c) Microsoft Corporation.
|
@@ -6668,7 +6818,7 @@ const MicrophoneButton = (props) => {
|
|
6668
6818
|
*/
|
6669
6819
|
const ParticipantsButton = (props) => {
|
6670
6820
|
var _a, _b, _c, _d;
|
6671
|
-
const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems } = props;
|
6821
|
+
const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
|
6672
6822
|
const onRenderPeopleIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonParticipants" }));
|
6673
6823
|
const ids = useIdentifiers();
|
6674
6824
|
const onMuteAllCallback = React.useCallback(() => {
|
@@ -6678,7 +6828,7 @@ const ParticipantsButton = (props) => {
|
|
6678
6828
|
}, [onMuteAll]);
|
6679
6829
|
const defaultParticipantList = React.useCallback(() => {
|
6680
6830
|
var _a;
|
6681
|
-
return (React__default['default'].createElement(ParticipantList, { participants: participants, myUserId: myUserId, excludeMe: excludeMe, onRenderParticipant: onRenderParticipant, onRenderAvatar: onRenderAvatar, onRemoveParticipant: onRemoveParticipant, onFetchParticipantMenuItems: onFetchParticipantMenuItems, styles: react.merge(defaultParticipantListContainerStyle, (_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles) }));
|
6831
|
+
return (React__default['default'].createElement(ParticipantList, { participants: participants, myUserId: myUserId, excludeMe: excludeMe, onRenderParticipant: onRenderParticipant, onRenderAvatar: onRenderAvatar, onRemoveParticipant: onRemoveParticipant, onFetchParticipantMenuItems: onFetchParticipantMenuItems, styles: react.merge(defaultParticipantListContainerStyle, (_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
|
6682
6832
|
}, [
|
6683
6833
|
excludeMe,
|
6684
6834
|
myUserId,
|
@@ -6687,7 +6837,8 @@ const ParticipantsButton = (props) => {
|
|
6687
6837
|
onRenderParticipant,
|
6688
6838
|
participants,
|
6689
6839
|
(_a = styles === null || styles === void 0 ? void 0 : styles.menuStyles) === null || _a === void 0 ? void 0 : _a.participantListStyles,
|
6690
|
-
onFetchParticipantMenuItems
|
6840
|
+
onFetchParticipantMenuItems,
|
6841
|
+
showParticipantOverflowTooltip
|
6691
6842
|
]);
|
6692
6843
|
const onCopyCallback = React.useCallback(() => {
|
6693
6844
|
if (callInvitationURL) {
|
@@ -6986,10 +7137,10 @@ const DrawerContentContainer = (props) => {
|
|
6986
7137
|
const theme = react.useTheme();
|
6987
7138
|
const backgroundColor = theme.palette.white;
|
6988
7139
|
const borderRadius = theme.effects.roundedCorner4;
|
6989
|
-
const rootStyles = react.mergeStyles(containerStyles$
|
7140
|
+
const rootStyles = react.mergeStyles(containerStyles$2(backgroundColor, borderRadius), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root);
|
6990
7141
|
return React__default['default'].createElement(react.Stack, { className: rootStyles }, props.children);
|
6991
7142
|
};
|
6992
|
-
const containerStyles$
|
7143
|
+
const containerStyles$2 = (backgroundColor, borderRadius) => (Object.assign({ background: backgroundColor, borderTopRightRadius: borderRadius, borderTopLeftRadius: borderRadius }, react.AnimationStyles.slideUpIn10));
|
6993
7144
|
|
6994
7145
|
// Copyright (c) Microsoft Corporation.
|
6995
7146
|
/**
|
@@ -7318,6 +7469,262 @@ function determineStates(previous, current) {
|
|
7318
7469
|
}
|
7319
7470
|
}
|
7320
7471
|
|
7472
|
+
// Copyright (c) Microsoft Corporation.
|
7473
|
+
// Licensed under the MIT license.
|
7474
|
+
/**
|
7475
|
+
* @private
|
7476
|
+
*/
|
7477
|
+
const containerStyles$1 = (theme) => {
|
7478
|
+
return {
|
7479
|
+
maxWidth: '16rem',
|
7480
|
+
padding: '1.25rem',
|
7481
|
+
margin: '1.5rem',
|
7482
|
+
textAlign: 'center',
|
7483
|
+
background: `${theme.palette.white}`,
|
7484
|
+
borderRadius: '0.75rem'
|
7485
|
+
};
|
7486
|
+
};
|
7487
|
+
/**
|
7488
|
+
* @private
|
7489
|
+
*/
|
7490
|
+
const buttonStyles = (theme) => ({
|
7491
|
+
root: {
|
7492
|
+
background: 'none',
|
7493
|
+
border: 'none',
|
7494
|
+
borderRadius: 0,
|
7495
|
+
width: '100%',
|
7496
|
+
padding: '1.875rem',
|
7497
|
+
minWidth: 0,
|
7498
|
+
minHeight: 0
|
7499
|
+
}
|
7500
|
+
});
|
7501
|
+
/**
|
7502
|
+
* @private
|
7503
|
+
*/
|
7504
|
+
const primaryContentStyles = (theme) => {
|
7505
|
+
return {
|
7506
|
+
fontSize: '1.25rem',
|
7507
|
+
fontWeight: 600,
|
7508
|
+
color: `${theme.palette.neutralPrimary}`
|
7509
|
+
};
|
7510
|
+
};
|
7511
|
+
/**
|
7512
|
+
* @private
|
7513
|
+
*/
|
7514
|
+
const textFieldStyles = (theme) => ({
|
7515
|
+
field: {
|
7516
|
+
padding: 0,
|
7517
|
+
textAlign: 'center',
|
7518
|
+
fontSize: '0.875rem'
|
7519
|
+
},
|
7520
|
+
root: {
|
7521
|
+
backgroundColor: `${theme.palette.neutralLighter}`,
|
7522
|
+
borderRadius: '0.125rem',
|
7523
|
+
marginBottom: '0.625rem'
|
7524
|
+
},
|
7525
|
+
fieldGroup: {
|
7526
|
+
border: 'none',
|
7527
|
+
backgroundColor: `${theme.palette.neutralLighter}`
|
7528
|
+
},
|
7529
|
+
errorMessage: {
|
7530
|
+
color: theme.semanticColors.errorText
|
7531
|
+
}
|
7532
|
+
});
|
7533
|
+
/**
|
7534
|
+
* @private
|
7535
|
+
*/
|
7536
|
+
const secondaryContentStyles = (theme) => {
|
7537
|
+
return {
|
7538
|
+
fontSize: '0.625rem',
|
7539
|
+
color: `${theme.palette.neutralSecondary}`,
|
7540
|
+
fontWeight: 400,
|
7541
|
+
margin: '0.125rem',
|
7542
|
+
minHeight: '0.75rem'
|
7543
|
+
};
|
7544
|
+
};
|
7545
|
+
|
7546
|
+
// Copyright (c) Microsoft Corporation.
|
7547
|
+
// Licensed under the MIT license.
|
7548
|
+
/**
|
7549
|
+
* @private
|
7550
|
+
*/
|
7551
|
+
const formatPhoneNumber = (value) => {
|
7552
|
+
// if input value is falsy eg if the user deletes the input, then just return
|
7553
|
+
if (!value) {
|
7554
|
+
return value;
|
7555
|
+
}
|
7556
|
+
// clean the input for any non-digit values.
|
7557
|
+
let phoneNumber = value.replace(/[^\d*#+]/g, '');
|
7558
|
+
// if phone number starts with 1, format like 1 (xxx)xxx-xxxx.
|
7559
|
+
// if phone number starts with +, we format like +x (xxx)xxx-xxxx.
|
7560
|
+
// For now we are only supporting NA phone number formatting with country code +x
|
7561
|
+
// first we chop off the countrycode then we add it on when returning
|
7562
|
+
let countryCodeNA = '';
|
7563
|
+
if (phoneNumber[0] === '1') {
|
7564
|
+
countryCodeNA = '1 ';
|
7565
|
+
phoneNumber = phoneNumber.slice(1, phoneNumber.length);
|
7566
|
+
}
|
7567
|
+
else if (phoneNumber[0] === '+') {
|
7568
|
+
countryCodeNA = phoneNumber.slice(0, 2) + ' ';
|
7569
|
+
phoneNumber = phoneNumber.slice(2, phoneNumber.length);
|
7570
|
+
}
|
7571
|
+
// phoneNumberLength is used to know when to apply our formatting for the phone number
|
7572
|
+
const phoneNumberLength = phoneNumber.length;
|
7573
|
+
// we need to return the value with no formatting if its less then four digits
|
7574
|
+
// this is to avoid weird behavior that occurs if you format the area code too early
|
7575
|
+
// if phoneNumberLength is greater than 10 we don't do any formatting
|
7576
|
+
if (phoneNumberLength < 4 || phoneNumberLength > 10) {
|
7577
|
+
// no formatting in this case, remove ' ' behind countrycode
|
7578
|
+
return countryCodeNA.replace(' ', '') + phoneNumber;
|
7579
|
+
}
|
7580
|
+
// if phoneNumberLength is greater than 4 and less the 7 we start to return
|
7581
|
+
// the formatted number
|
7582
|
+
if (phoneNumberLength < 7) {
|
7583
|
+
return `${countryCodeNA}(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3)}`;
|
7584
|
+
}
|
7585
|
+
// finally, if the phoneNumberLength is greater then seven, we add the last
|
7586
|
+
// bit of formatting and return it.
|
7587
|
+
return `${countryCodeNA}(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6, phoneNumber.length)}`;
|
7588
|
+
};
|
7589
|
+
|
7590
|
+
// Copyright (c) Microsoft Corporation.
|
7591
|
+
/* @conditional-compile-remove(dialpad) */
|
7592
|
+
const DialpadButton = (props) => {
|
7593
|
+
var _a, _b, _c, _d;
|
7594
|
+
const theme = react.useTheme();
|
7595
|
+
return (React__default['default'].createElement(react.DefaultButton, { "data-test-id": `dialpad-button-${props.index}`, onClick: () => {
|
7596
|
+
props.onClick(props.primaryContent, props.index);
|
7597
|
+
}, styles: react.concatStyleSets(buttonStyles(), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.button) },
|
7598
|
+
React__default['default'].createElement(react.Stack, null,
|
7599
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(primaryContentStyles(theme), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.primaryContent) }, props.primaryContent),
|
7600
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(secondaryContentStyles(theme), (_c = props.styles) === null || _c === void 0 ? void 0 : _c.secondaryContent) }, (_d = props.secondaryContent) !== null && _d !== void 0 ? _d : ' '))));
|
7601
|
+
};
|
7602
|
+
/* @conditional-compile-remove(dialpad) */
|
7603
|
+
const dialPadButtonsDefault = [
|
7604
|
+
[
|
7605
|
+
{ primaryContent: '1' },
|
7606
|
+
{ primaryContent: '2', secondaryContent: 'ABC' },
|
7607
|
+
{ primaryContent: '3', secondaryContent: 'DEF' }
|
7608
|
+
],
|
7609
|
+
[
|
7610
|
+
{ primaryContent: '4', secondaryContent: 'GHI' },
|
7611
|
+
{ primaryContent: '5', secondaryContent: 'JKL' },
|
7612
|
+
{ primaryContent: '6', secondaryContent: 'MNO' }
|
7613
|
+
],
|
7614
|
+
[
|
7615
|
+
{ primaryContent: '7', secondaryContent: 'PQRS' },
|
7616
|
+
{ primaryContent: '8', secondaryContent: 'TUV' },
|
7617
|
+
{ primaryContent: '9', secondaryContent: 'WXYZ' }
|
7618
|
+
],
|
7619
|
+
[{ primaryContent: '*' }, { primaryContent: '0', secondaryContent: '+' }, { primaryContent: '#' }]
|
7620
|
+
];
|
7621
|
+
/* @conditional-compile-remove(dialpad) */
|
7622
|
+
const DtmfTones = [
|
7623
|
+
'Num1',
|
7624
|
+
'Num2',
|
7625
|
+
'Num3',
|
7626
|
+
'Num4',
|
7627
|
+
'Num5',
|
7628
|
+
'Num6',
|
7629
|
+
'Num7',
|
7630
|
+
'Num8',
|
7631
|
+
'Num9',
|
7632
|
+
'Star',
|
7633
|
+
'Num0',
|
7634
|
+
'Pound'
|
7635
|
+
];
|
7636
|
+
/* @conditional-compile-remove(dialpad) */
|
7637
|
+
const DialpadContainer = (props) => {
|
7638
|
+
var _a, _b;
|
7639
|
+
const theme = react.useTheme();
|
7640
|
+
const [textValue, setTextValue] = React.useState('');
|
7641
|
+
const { onSendDtmfTone, onClickDialpadButton, onDisplayDialpadInput, onChange } = props;
|
7642
|
+
const onClickDialpad = (input, index) => {
|
7643
|
+
setTextValue(textValue + input);
|
7644
|
+
if (onSendDtmfTone) {
|
7645
|
+
onSendDtmfTone(DtmfTones[index]);
|
7646
|
+
}
|
7647
|
+
if (onClickDialpadButton) {
|
7648
|
+
onClickDialpadButton(input, index);
|
7649
|
+
}
|
7650
|
+
if (onChange) {
|
7651
|
+
onChange(onDisplayDialpadInput ? onDisplayDialpadInput(textValue + input) : formatPhoneNumber(textValue + input));
|
7652
|
+
}
|
7653
|
+
};
|
7654
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
7655
|
+
const setText = (e) => {
|
7656
|
+
setTextValue(e.target.value);
|
7657
|
+
};
|
7658
|
+
// comment out the following line for now to disable customization for dialpad content
|
7659
|
+
// const dialpadButtonsContent = props.dialpadButtons ?? dialPadButtonsDefault;
|
7660
|
+
return (React__default['default'].createElement("div", { className: react.mergeStyles(containerStyles$1(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer" },
|
7661
|
+
React__default['default'].createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: onDisplayDialpadInput ? onDisplayDialpadInput(textValue) : formatPhoneNumber(textValue),
|
7662
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
7663
|
+
onChange: (e) => {
|
7664
|
+
setText(e);
|
7665
|
+
if (onChange) {
|
7666
|
+
onChange(onDisplayDialpadInput ? onDisplayDialpadInput(e.target.value) : formatPhoneNumber(e.target.value));
|
7667
|
+
}
|
7668
|
+
}, placeholder: props.placeholderText, "data-test-id": "dialpad-input" }),
|
7669
|
+
React__default['default'].createElement(react.FocusZone, null, dialPadButtonsDefault.map((rows, rowIndex) => {
|
7670
|
+
return (React__default['default'].createElement(react.Stack, { horizontal: true, key: `row_${rowIndex}`, horizontalAlign: "stretch" }, rows.map((button, columnIndex) => (React__default['default'].createElement(DialpadButton, { key: `button_${columnIndex}`,
|
7671
|
+
/* row index = 0
|
7672
|
+
columnIndex: (0,1,2) => (0,1,2)
|
7673
|
+
row index = 1
|
7674
|
+
columnIndex: (0,1,2)=> (3,4,5)
|
7675
|
+
row index = 2
|
7676
|
+
columnIndex: (0,1,2)=> (6,7,8)
|
7677
|
+
row index = 3
|
7678
|
+
columnIndex: (0,1,2)=> (9,10,11)
|
7679
|
+
columnIndex + rowIndex*rows.length calculates the corresponding index for each button
|
7680
|
+
dialpad index:
|
7681
|
+
0 1 2
|
7682
|
+
3 4 5
|
7683
|
+
6 7 8
|
7684
|
+
9 10 11
|
7685
|
+
then use this index to locate the corresponding dtmf tones
|
7686
|
+
DtmfTones[index]
|
7687
|
+
*/
|
7688
|
+
index: columnIndex + rowIndex * rows.length, primaryContent: button.primaryContent, secondaryContent: button.secondaryContent, styles: props.styles, onClick: onClickDialpad })))));
|
7689
|
+
}))));
|
7690
|
+
};
|
7691
|
+
/**
|
7692
|
+
* A component to allow users to enter phone number through clicking on dialpad/using keyboard
|
7693
|
+
* It will return empty component for stable builds
|
7694
|
+
*
|
7695
|
+
* @beta
|
7696
|
+
*/
|
7697
|
+
const Dialpad = (props) => {
|
7698
|
+
/* @conditional-compile-remove(dialpad) */
|
7699
|
+
const localeStrings = useLocale$1().strings.dialpad;
|
7700
|
+
/* @conditional-compile-remove(dialpad) */
|
7701
|
+
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
7702
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
7703
|
+
/* @conditional-compile-remove(dialpad) */
|
7704
|
+
React__default['default'].createElement(DialpadContainer, Object.assign({ placeholderText: strings.placeholderText }, props))));
|
7705
|
+
};
|
7706
|
+
|
7707
|
+
// Copyright (c) Microsoft Corporation.
|
7708
|
+
/**
|
7709
|
+
* a button to hold or resume a ongoing call.
|
7710
|
+
*
|
7711
|
+
* Can be used with {@link ControlBar}
|
7712
|
+
*
|
7713
|
+
* @param props - properties for the hold button.
|
7714
|
+
* @returns
|
7715
|
+
* @beta
|
7716
|
+
*/
|
7717
|
+
const HoldButton = (props) => {
|
7718
|
+
const { onToggleHold, strings } = props;
|
7719
|
+
const onRenderHoldIcon = () => {
|
7720
|
+
return React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "HoldCall" });
|
7721
|
+
};
|
7722
|
+
const onRenderResumeIcon = () => {
|
7723
|
+
return React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "ResumeCall" });
|
7724
|
+
};
|
7725
|
+
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { strings: strings, onClick: onToggleHold !== null && onToggleHold !== void 0 ? onToggleHold : props.onClick, onRenderOnIcon: onRenderResumeIcon, onRenderOffIcon: onRenderHoldIcon })));
|
7726
|
+
};
|
7727
|
+
|
7321
7728
|
// Copyright (c) Microsoft Corporation.
|
7322
7729
|
// Licensed under the MIT license.
|
7323
7730
|
/**
|
@@ -7385,6 +7792,8 @@ const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
|
|
7385
7792
|
return {
|
7386
7793
|
id: stream.id,
|
7387
7794
|
isAvailable: stream.isAvailable,
|
7795
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
7796
|
+
isReceiving: stream.isReceiving,
|
7388
7797
|
isMirrored: (_a = stream.view) === null || _a === void 0 ? void 0 : _a.isMirrored,
|
7389
7798
|
renderElement: (_b = stream.view) === null || _b === void 0 ? void 0 : _b.target
|
7390
7799
|
};
|
@@ -7412,6 +7821,7 @@ const videoGallerySelector = reselect.createSelector([
|
|
7412
7821
|
const localVideoStream = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find((i) => i.mediaStreamType === 'Video');
|
7413
7822
|
const dominantSpeakerIds = _dominantSpeakersWithFlatId(dominantSpeakers);
|
7414
7823
|
dominantSpeakerIds === null || dominantSpeakerIds === void 0 ? void 0 : dominantSpeakerIds.forEach((speaker, idx) => (idx));
|
7824
|
+
const noRemoteParticipants = [];
|
7415
7825
|
return {
|
7416
7826
|
screenShareParticipant: screenShareRemoteParticipant
|
7417
7827
|
? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.displayName)
|
@@ -7427,46 +7837,64 @@ const videoGallerySelector = reselect.createSelector([
|
|
7427
7837
|
renderElement: (_b = localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.view) === null || _b === void 0 ? void 0 : _b.target
|
7428
7838
|
}
|
7429
7839
|
},
|
7430
|
-
remoteParticipants: _videoGalleryRemoteParticipantsMemo(remoteParticipants),
|
7840
|
+
remoteParticipants: _videoGalleryRemoteParticipantsMemo(updateUserDisplayNamesTrampoline$2(remoteParticipants ? Object.values(remoteParticipants) : noRemoteParticipants)),
|
7431
7841
|
dominantSpeakers: dominantSpeakerIds
|
7432
7842
|
};
|
7433
7843
|
});
|
7844
|
+
const updateUserDisplayNamesTrampoline$2 = (remoteParticipants) => {
|
7845
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
7846
|
+
return _updateUserDisplayNames(remoteParticipants);
|
7847
|
+
};
|
7848
|
+
|
7849
|
+
// Copyright (c) Microsoft Corporation.
|
7850
|
+
/**
|
7851
|
+
* @private
|
7852
|
+
*/
|
7853
|
+
const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking) => {
|
7854
|
+
return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking);
|
7855
|
+
});
|
7856
|
+
const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking) => {
|
7857
|
+
const identifier = fromFlatCommunicationIdentifier(userId);
|
7858
|
+
return {
|
7859
|
+
userId,
|
7860
|
+
displayName,
|
7861
|
+
state,
|
7862
|
+
isMuted,
|
7863
|
+
isScreenSharing,
|
7864
|
+
isSpeaking,
|
7865
|
+
// ACS users can not remove Teams users.
|
7866
|
+
// Removing unknown types of users is undefined.
|
7867
|
+
isRemovable: communicationCommon.getIdentifierKind(identifier).kind === 'communicationUser' || communicationCommon.getIdentifierKind(identifier).kind === 'phoneNumber'
|
7868
|
+
};
|
7869
|
+
};
|
7434
7870
|
|
7435
7871
|
// Copyright (c) Microsoft Corporation.
|
7436
7872
|
const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants) => {
|
7437
|
-
return (
|
7438
|
-
|
7439
|
-
|
7440
|
-
|
7441
|
-
|
7442
|
-
|
7443
|
-
|
7444
|
-
|
7445
|
-
|
7446
|
-
|
7447
|
-
|
7448
|
-
|
7449
|
-
|
7450
|
-
|
7451
|
-
|
7452
|
-
|
7453
|
-
|
7454
|
-
|
7455
|
-
|
7456
|
-
|
7457
|
-
|
7458
|
-
|
7459
|
-
|
7460
|
-
|
7461
|
-
|
7462
|
-
}
|
7463
|
-
else if (nameA > nameB) {
|
7464
|
-
return 1;
|
7465
|
-
}
|
7466
|
-
else {
|
7467
|
-
return 0;
|
7468
|
-
}
|
7469
|
-
}));
|
7873
|
+
return memoizedConvertAllremoteParticipants((memoizeFn) => {
|
7874
|
+
return (remoteParticipants
|
7875
|
+
// temporarily hiding lobby participants in ACS clients till we can admit users through ACS clients
|
7876
|
+
.filter((participant) => {
|
7877
|
+
return participant.state !== 'InLobby';
|
7878
|
+
})
|
7879
|
+
.map((participant) => {
|
7880
|
+
const isScreenSharing = Object.values(participant.videoStreams).some((videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable);
|
7881
|
+
return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), participant.displayName, participant.state, participant.isMuted, isScreenSharing, participant.isSpeaking);
|
7882
|
+
})
|
7883
|
+
.sort((a, b) => {
|
7884
|
+
var _a, _b;
|
7885
|
+
const nameA = ((_a = a.displayName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
|
7886
|
+
const nameB = ((_b = b.displayName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || '';
|
7887
|
+
if (nameA < nameB) {
|
7888
|
+
return -1;
|
7889
|
+
}
|
7890
|
+
else if (nameA > nameB) {
|
7891
|
+
return 1;
|
7892
|
+
}
|
7893
|
+
else {
|
7894
|
+
return 0;
|
7895
|
+
}
|
7896
|
+
}));
|
7897
|
+
});
|
7470
7898
|
};
|
7471
7899
|
/**
|
7472
7900
|
* Selects data that drives {@link ParticipantList} component.
|
@@ -7475,7 +7903,7 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
|
|
7475
7903
|
*/
|
7476
7904
|
const participantListSelector = reselect.createSelector([getIdentifier, getDisplayName$2, getRemoteParticipants$1, getIsScreenSharingOn, getIsMuted], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted) => {
|
7477
7905
|
const participants = remoteParticipants
|
7478
|
-
? convertRemoteParticipantsToParticipantListParticipants(Object.values(remoteParticipants))
|
7906
|
+
? convertRemoteParticipantsToParticipantListParticipants(updateUserDisplayNamesTrampoline$1(Object.values(remoteParticipants)))
|
7479
7907
|
: [];
|
7480
7908
|
participants.push({
|
7481
7909
|
userId: userId,
|
@@ -7491,6 +7919,10 @@ const participantListSelector = reselect.createSelector([getIdentifier, getDispl
|
|
7491
7919
|
myUserId: userId
|
7492
7920
|
};
|
7493
7921
|
});
|
7922
|
+
const updateUserDisplayNamesTrampoline$1 = (remoteParticipants) => {
|
7923
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
7924
|
+
return _updateUserDisplayNames(remoteParticipants);
|
7925
|
+
};
|
7494
7926
|
|
7495
7927
|
// Copyright (c) Microsoft Corporation.
|
7496
7928
|
/**
|
@@ -7587,7 +8019,7 @@ const useSelector$4 = (selector, selectorProps) => {
|
|
7587
8019
|
* @public
|
7588
8020
|
*/
|
7589
8021
|
const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1], (latestErrors, diagnostics, deviceManager) => {
|
7590
|
-
var _a, _b, _c, _d, _e;
|
8022
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
7591
8023
|
// The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
|
7592
8024
|
// There are several options for the ordering:
|
7593
8025
|
// - Sorted by when the errors happened (latest first / oldest first).
|
@@ -7601,33 +8033,52 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
|
|
7601
8033
|
((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor) {
|
7602
8034
|
activeErrorMessages.push({ type: 'callNetworkQualityLow' });
|
7603
8035
|
}
|
7604
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) {
|
8036
|
+
if (((_c = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) === null || _c === void 0 ? void 0 : _c.value) === true) {
|
7605
8037
|
activeErrorMessages.push({ type: 'callNoSpeakerFound' });
|
7606
8038
|
}
|
7607
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) {
|
8039
|
+
if (((_d = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) === null || _d === void 0 ? void 0 : _d.value) === true) {
|
7608
8040
|
activeErrorMessages.push({ type: 'callNoMicrophoneFound' });
|
7609
8041
|
}
|
7610
|
-
if (((
|
8042
|
+
if (((_e = deviceManager.deviceAccess) === null || _e === void 0 ? void 0 : _e.audio) === false) {
|
7611
8043
|
activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
|
7612
8044
|
}
|
7613
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.
|
7614
|
-
activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
|
7615
|
-
}
|
7616
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) {
|
8045
|
+
if (((_f = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _f === void 0 ? void 0 : _f.value) === true) {
|
7617
8046
|
activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });
|
7618
8047
|
}
|
7619
|
-
|
8048
|
+
const microphoneMuteUnexpectedlyDiagnostic = (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) || (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning);
|
8049
|
+
if (microphoneMuteUnexpectedlyDiagnostic) {
|
8050
|
+
if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
|
8051
|
+
// Inform the user that microphone stopped working and inform them to start microphone again
|
8052
|
+
activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
|
8053
|
+
}
|
8054
|
+
else if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
|
8055
|
+
// Inform the user that microphone recovered
|
8056
|
+
activeErrorMessages.push({ type: 'callMicrophoneUnmutedBySystem' });
|
8057
|
+
}
|
8058
|
+
}
|
8059
|
+
const cameraStoppedUnexpectedlyDiagnostic = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraStoppedUnexpectedly;
|
8060
|
+
if (cameraStoppedUnexpectedlyDiagnostic) {
|
8061
|
+
if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
|
8062
|
+
// Inform the user that camera stopped working and inform them to start video again
|
8063
|
+
activeErrorMessages.push({ type: 'callVideoStoppedBySystem' });
|
8064
|
+
}
|
8065
|
+
else if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
|
8066
|
+
// Inform the user that camera recovered
|
8067
|
+
activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });
|
8068
|
+
}
|
8069
|
+
}
|
8070
|
+
if (((_g = deviceManager.deviceAccess) === null || _g === void 0 ? void 0 : _g.video) === false) {
|
7620
8071
|
activeErrorMessages.push({ type: 'callCameraAccessDenied' });
|
7621
8072
|
}
|
7622
8073
|
else {
|
7623
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) {
|
8074
|
+
if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _h === void 0 ? void 0 : _h.value) === true) {
|
7624
8075
|
activeErrorMessages.push({ type: 'callCameraAlreadyInUse' });
|
7625
8076
|
}
|
7626
8077
|
}
|
7627
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) {
|
8078
|
+
if (((_j = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _j === void 0 ? void 0 : _j.value) === true) {
|
7628
8079
|
activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });
|
7629
8080
|
}
|
7630
|
-
if (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) {
|
8081
|
+
if (((_k = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _k === void 0 ? void 0 : _k.value) === true) {
|
7631
8082
|
activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });
|
7632
8083
|
}
|
7633
8084
|
// Prefer to show errors with privacy implications.
|
@@ -7636,7 +8087,7 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
|
|
7636
8087
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
|
7637
8088
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
|
7638
8089
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
|
7639
|
-
if (((
|
8090
|
+
if (((_l = latestErrors['CallAgent.join']) === null || _l === void 0 ? void 0 : _l.message) === 'CallAgent.join: Invalid meeting link') {
|
7640
8091
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
|
7641
8092
|
}
|
7642
8093
|
else {
|
@@ -7669,9 +8120,18 @@ const emptySelector = () => ({});
|
|
7669
8120
|
*/
|
7670
8121
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
7671
8122
|
const getSelector$1 = (component) => {
|
8123
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
8124
|
+
if (component === HoldButton) {
|
8125
|
+
return findConditionalCompiledSelector(component);
|
8126
|
+
}
|
7672
8127
|
return findSelector$1(component);
|
7673
8128
|
};
|
7674
8129
|
const findSelector$1 = (component) => {
|
8130
|
+
/* @conditional-compile-remove(dialpad) */
|
8131
|
+
// Dialpad only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector
|
8132
|
+
if (component === Dialpad) {
|
8133
|
+
return emptySelector;
|
8134
|
+
}
|
7675
8135
|
switch (component) {
|
7676
8136
|
case VideoGallery:
|
7677
8137
|
return videoGallerySelector;
|
@@ -7694,10 +8154,17 @@ const findSelector$1 = (component) => {
|
|
7694
8154
|
}
|
7695
8155
|
return undefined;
|
7696
8156
|
};
|
8157
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
8158
|
+
const findConditionalCompiledSelector = (component) => {
|
8159
|
+
switch (component) {
|
8160
|
+
case HoldButton:
|
8161
|
+
return holdButtonSelector;
|
8162
|
+
}
|
8163
|
+
};
|
7697
8164
|
|
7698
8165
|
// Copyright (c) Microsoft Corporation.
|
7699
8166
|
// Licensed under the MIT license.
|
7700
|
-
var __awaiter$
|
8167
|
+
var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
7701
8168
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
7702
8169
|
return new (P || (P = Promise))(function (resolve, reject) {
|
7703
8170
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -7720,35 +8187,35 @@ const createDefaultChatHandlers = memoizeOne__default['default']((chatClient, ch
|
|
7720
8187
|
let messageIterator = undefined;
|
7721
8188
|
let readReceiptIterator = undefined;
|
7722
8189
|
return {
|
7723
|
-
onSendMessage: (content, options) => __awaiter$
|
8190
|
+
onSendMessage: (content, options) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7724
8191
|
const sendMessageRequest = {
|
7725
8192
|
content,
|
7726
8193
|
senderDisplayName: chatClient.getState().displayName
|
7727
8194
|
};
|
7728
8195
|
yield chatThreadClient.sendMessage(sendMessageRequest, options);
|
7729
8196
|
}),
|
7730
|
-
onUpdateMessage: (messageId, content, metadata, options) => __awaiter$
|
8197
|
+
onUpdateMessage: (messageId, content, metadata, options) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7731
8198
|
const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
|
7732
8199
|
updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
|
7733
8200
|
yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
|
7734
8201
|
}),
|
7735
|
-
onDeleteMessage: (messageId) => __awaiter$
|
8202
|
+
onDeleteMessage: (messageId) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7736
8203
|
yield chatThreadClient.deleteMessage(messageId);
|
7737
8204
|
}),
|
7738
8205
|
// This handler is designed for chatThread to consume
|
7739
|
-
onMessageSeen: (chatMessageId) => __awaiter$
|
8206
|
+
onMessageSeen: (chatMessageId) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7740
8207
|
yield chatThreadClient.sendReadReceipt({ chatMessageId });
|
7741
8208
|
}),
|
7742
|
-
onTyping: () => __awaiter$
|
8209
|
+
onTyping: () => __awaiter$l(void 0, void 0, void 0, function* () {
|
7743
8210
|
yield chatThreadClient.sendTypingNotification();
|
7744
8211
|
}),
|
7745
|
-
onRemoveParticipant: (userId) => __awaiter$
|
8212
|
+
onRemoveParticipant: (userId) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7746
8213
|
yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
|
7747
8214
|
}),
|
7748
|
-
updateThreadTopicName: (topicName) => __awaiter$
|
8215
|
+
updateThreadTopicName: (topicName) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7749
8216
|
yield chatThreadClient.updateTopic(topicName);
|
7750
8217
|
}),
|
7751
|
-
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$
|
8218
|
+
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$l(void 0, void 0, void 0, function* () {
|
7752
8219
|
var _a, _b, _c;
|
7753
8220
|
if (messageIterator === undefined) {
|
7754
8221
|
// Lazy definition so that errors in the method call are reported correctly.
|
@@ -8439,7 +8906,7 @@ const findSelector = (component) => {
|
|
8439
8906
|
|
8440
8907
|
// Copyright (c) Microsoft Corporation.
|
8441
8908
|
// Licensed under the MIT license.
|
8442
|
-
var __awaiter$
|
8909
|
+
var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
8443
8910
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
8444
8911
|
return new (P || (P = Promise))(function (resolve, reject) {
|
8445
8912
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8488,10 +8955,10 @@ class ProxyDeviceManager {
|
|
8488
8955
|
this.selectCamera = (videoDeviceInfo) => {
|
8489
8956
|
this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
|
8490
8957
|
};
|
8491
|
-
this.videoDevicesUpdated = () => __awaiter$
|
8958
|
+
this.videoDevicesUpdated = () => __awaiter$k(this, void 0, void 0, function* () {
|
8492
8959
|
this._context.setDeviceManagerCameras(dedupeById(yield this._deviceManager.getCameras()));
|
8493
8960
|
});
|
8494
|
-
this.audioDevicesUpdated = () => __awaiter$
|
8961
|
+
this.audioDevicesUpdated = () => __awaiter$k(this, void 0, void 0, function* () {
|
8495
8962
|
this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
|
8496
8963
|
this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
|
8497
8964
|
});
|
@@ -8617,6 +9084,36 @@ class CallError extends Error {
|
|
8617
9084
|
* @private
|
8618
9085
|
*/
|
8619
9086
|
const callingStatefulLogger = logger.createClientLogger('communication-react:calling-stateful');
|
9087
|
+
/**
|
9088
|
+
* @private
|
9089
|
+
*/
|
9090
|
+
var EventNames;
|
9091
|
+
(function (EventNames) {
|
9092
|
+
// Info
|
9093
|
+
EventNames["LOCAL_VIEW_RENDER_SUCCEED"] = "LOCAL_VIEW_RENDER_SUCCEED";
|
9094
|
+
EventNames["START_DISPOSE_LOCAL_STREAM"] = "START_DISPOSE_LOCAL_STREAM";
|
9095
|
+
EventNames["START_LOCAL_STREAM_RENDERING"] = "START_LOCAL_STREAM_RENDERING";
|
9096
|
+
EventNames["DISPOSING_REMOTE_RENDERER"] = "DISPOSING_REMOTE_RENDERER";
|
9097
|
+
EventNames["CREATING_REMOTE_VIEW"] = "CREATING_REMOTE_VIEW";
|
9098
|
+
EventNames["REMOTE_VIEW_RENDER_SUCCEED"] = "REMOTE_VIEW_RENDER_SUCCEED";
|
9099
|
+
// Warning
|
9100
|
+
EventNames["LOCAL_STREAM_ALREADY_RENDERED"] = "LOCAL_STREAM_ALREADY_RENDERED";
|
9101
|
+
EventNames["LOCAL_STREAM_STOPPING"] = "LOCAL_STREAM_STOPPING";
|
9102
|
+
EventNames["LOCAL_CREATED_STREAM_STOPPING"] = "LOCAL_CREATED_STREAM_STOPPING";
|
9103
|
+
EventNames["LOCAL_STREAM_RENDERING"] = "LOCAL_STREAM_RENDERING";
|
9104
|
+
EventNames["REMOTE_STREAM_ALREADY_RENDERED"] = "REMOTE_STREAM_ALREADY_RENDERED";
|
9105
|
+
EventNames["REMOTE_STREAM_RENDERING"] = "REMOTE_STREAM_RENDERING";
|
9106
|
+
EventNames["REMOTE_STREAM_STOPPING"] = "REMOTE_STREAM_STOPPING";
|
9107
|
+
// Error
|
9108
|
+
EventNames["LOCAL_STREAM_NOT_FOUND"] = "LOCAL_STREAM_NOT_FOUND";
|
9109
|
+
EventNames["LOCAL_RENDER_INFO_NOT_FOUND"] = "LOCAL_RENDER_INFO_NOT_FOUND";
|
9110
|
+
EventNames["REMOTE_STREAM_NOT_FOUND"] = "REMOTE_STREAM_NOT_FOUND";
|
9111
|
+
EventNames["REMOTE_DISPOSE_INFO_NOT_FOUND"] = "REMOTE_DISPOSE_INFO_NOT_FOUND";
|
9112
|
+
EventNames["REMOTE_RENDER_INFO_NOT_FOUND"] = "REMOTE_RENDER_INFO_NOT_FOUND";
|
9113
|
+
EventNames["REMOTE_RENDERER_NOT_FOUND"] = "REMOTE_RENDERER_NOT_FOUND";
|
9114
|
+
EventNames["CREATE_REMOTE_STREAM_FAIL"] = "CREATE_REMOTE_STREAM_FAIL";
|
9115
|
+
EventNames["CREATE_LOCAL_STREAM_FAIL"] = "CREATE_LOCAL_STREAM_FAIL";
|
9116
|
+
})(EventNames || (EventNames = {}));
|
8620
9117
|
|
8621
9118
|
// Copyright (c) Microsoft Corporation.
|
8622
9119
|
// Licensed under the MIT license.
|
@@ -8658,7 +9155,7 @@ class CallIdHistory {
|
|
8658
9155
|
|
8659
9156
|
// Copyright (c) Microsoft Corporation.
|
8660
9157
|
// Licensed under the MIT license.
|
8661
|
-
var __awaiter$
|
9158
|
+
var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
8662
9159
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
8663
9160
|
return new (P || (P = Promise))(function (resolve, reject) {
|
8664
9161
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8949,6 +9446,8 @@ class CallContext$1 {
|
|
8949
9446
|
const existingStream = participant.videoStreams[stream.id];
|
8950
9447
|
if (existingStream) {
|
8951
9448
|
existingStream.isAvailable = stream.isAvailable;
|
9449
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9450
|
+
existingStream.isReceiving = stream.isReceiving;
|
8952
9451
|
existingStream.mediaStreamType = stream.mediaStreamType;
|
8953
9452
|
}
|
8954
9453
|
else {
|
@@ -8972,6 +9471,21 @@ class CallContext$1 {
|
|
8972
9471
|
}
|
8973
9472
|
});
|
8974
9473
|
}
|
9474
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9475
|
+
setRemoteVideoStreamIsReceiving(callId, participantKey, streamId, isReceiving) {
|
9476
|
+
this.modifyState((draft) => {
|
9477
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
9478
|
+
if (call) {
|
9479
|
+
const participant = call.remoteParticipants[participantKey];
|
9480
|
+
if (participant) {
|
9481
|
+
const stream = participant.videoStreams[streamId];
|
9482
|
+
if (stream) {
|
9483
|
+
stream.isReceiving = isReceiving;
|
9484
|
+
}
|
9485
|
+
}
|
9486
|
+
}
|
9487
|
+
});
|
9488
|
+
}
|
8975
9489
|
setRemoteVideoStreams(callId, participantKey, addRemoteVideoStream, removeRemoteVideoStream) {
|
8976
9490
|
this.modifyState((draft) => {
|
8977
9491
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -8988,6 +9502,8 @@ class CallContext$1 {
|
|
8988
9502
|
if (stream) {
|
8989
9503
|
stream.mediaStreamType = newStream.mediaStreamType;
|
8990
9504
|
stream.isAvailable = newStream.isAvailable;
|
9505
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9506
|
+
stream.isReceiving = newStream.isReceiving;
|
8991
9507
|
}
|
8992
9508
|
else {
|
8993
9509
|
participant.videoStreams[newStream.id] = newStream;
|
@@ -9122,7 +9638,7 @@ class CallContext$1 {
|
|
9122
9638
|
* @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
|
9123
9639
|
*/
|
9124
9640
|
withAsyncErrorTeedToState(action, target) {
|
9125
|
-
return (...args) => __awaiter$
|
9641
|
+
return (...args) => __awaiter$j(this, void 0, void 0, function* () {
|
9126
9642
|
try {
|
9127
9643
|
return yield action(...args);
|
9128
9644
|
}
|
@@ -9186,7 +9702,7 @@ const findOldestCallEnded = (calls) => {
|
|
9186
9702
|
|
9187
9703
|
// Copyright (c) Microsoft Corporation.
|
9188
9704
|
// Licensed under the MIT license.
|
9189
|
-
var __awaiter$
|
9705
|
+
var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
9190
9706
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
9191
9707
|
return new (P || (P = Promise))(function (resolve, reject) {
|
9192
9708
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -9206,63 +9722,63 @@ class ProxyCall {
|
|
9206
9722
|
switch (prop) {
|
9207
9723
|
case 'mute': {
|
9208
9724
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9209
|
-
return __awaiter$
|
9725
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9210
9726
|
return yield target.mute(...args);
|
9211
9727
|
});
|
9212
9728
|
}, 'Call.mute');
|
9213
9729
|
}
|
9214
9730
|
case 'unmute': {
|
9215
9731
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9216
|
-
return __awaiter$
|
9732
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9217
9733
|
return yield target.unmute(...args);
|
9218
9734
|
});
|
9219
9735
|
}, 'Call.unmute');
|
9220
9736
|
}
|
9221
9737
|
case 'startVideo': {
|
9222
9738
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9223
|
-
return __awaiter$
|
9739
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9224
9740
|
return yield target.startVideo(...args);
|
9225
9741
|
});
|
9226
9742
|
}, 'Call.startVideo');
|
9227
9743
|
}
|
9228
9744
|
case 'stopVideo': {
|
9229
9745
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9230
|
-
return __awaiter$
|
9746
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9231
9747
|
return yield target.stopVideo(...args);
|
9232
9748
|
});
|
9233
9749
|
}, 'Call.stopVideo');
|
9234
9750
|
}
|
9235
9751
|
case 'startScreenSharing': {
|
9236
9752
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9237
|
-
return __awaiter$
|
9753
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9238
9754
|
return yield target.startScreenSharing(...args);
|
9239
9755
|
});
|
9240
9756
|
}, 'Call.startScreenSharing');
|
9241
9757
|
}
|
9242
9758
|
case 'stopScreenSharing': {
|
9243
9759
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9244
|
-
return __awaiter$
|
9760
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9245
9761
|
return yield target.stopScreenSharing(...args);
|
9246
9762
|
});
|
9247
9763
|
}, 'Call.stopScreenSharing');
|
9248
9764
|
}
|
9249
9765
|
case 'hold': {
|
9250
9766
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9251
|
-
return __awaiter$
|
9767
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9252
9768
|
return yield target.hold(...args);
|
9253
9769
|
});
|
9254
9770
|
}, 'Call.hold');
|
9255
9771
|
}
|
9256
9772
|
case 'resume': {
|
9257
9773
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9258
|
-
return __awaiter$
|
9774
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9259
9775
|
return yield target.resume(...args);
|
9260
9776
|
});
|
9261
9777
|
}, 'Call.resume');
|
9262
9778
|
}
|
9263
9779
|
case 'addParticipant': {
|
9264
9780
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
9265
|
-
return __awaiter$
|
9781
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
9266
9782
|
return yield target.addParticipant(...args);
|
9267
9783
|
});
|
9268
9784
|
}, 'Call.addParticipant');
|
@@ -9309,6 +9825,8 @@ function convertSdkRemoteStreamToDeclarativeRemoteStream(stream) {
|
|
9309
9825
|
id: stream.id,
|
9310
9826
|
mediaStreamType: stream.mediaStreamType,
|
9311
9827
|
isAvailable: stream.isAvailable,
|
9828
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9829
|
+
isReceiving: stream.isReceiving,
|
9312
9830
|
view: undefined
|
9313
9831
|
};
|
9314
9832
|
}
|
@@ -9398,10 +9916,14 @@ class RemoteVideoStreamSubscriber {
|
|
9398
9916
|
constructor(callIdRef, participantKey, remoteVideoStream, context) {
|
9399
9917
|
this.subscribe = () => {
|
9400
9918
|
this._remoteVideoStream.on('isAvailableChanged', this.isAvailableChanged);
|
9919
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9920
|
+
this._remoteVideoStream.on('isReceivingChanged', this.isReceivingChanged);
|
9401
9921
|
this.checkAndUpdateScreenShareState();
|
9402
9922
|
};
|
9403
9923
|
this.unsubscribe = () => {
|
9404
9924
|
this._remoteVideoStream.off('isAvailableChanged', this.isAvailableChanged);
|
9925
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9926
|
+
this._remoteVideoStream.off('isReceivingChanged', this.isReceivingChanged);
|
9405
9927
|
};
|
9406
9928
|
this.includesActiveScreenShareStream = (streams) => {
|
9407
9929
|
for (const stream of Object.values(streams)) {
|
@@ -9450,6 +9972,10 @@ class RemoteVideoStreamSubscriber {
|
|
9450
9972
|
this._context.setRemoteVideoStreamIsAvailable(this._callIdRef.callId, this._participantKey, this._remoteVideoStream.id, this._remoteVideoStream.isAvailable);
|
9451
9973
|
this.checkAndUpdateScreenShareState();
|
9452
9974
|
};
|
9975
|
+
/* @conditional-compile-remove(video-stream-is-receiving-flag) */
|
9976
|
+
this.isReceivingChanged = () => {
|
9977
|
+
this._context.setRemoteVideoStreamIsReceiving(this._callIdRef.callId, this._participantKey, this._remoteVideoStream.id, this._remoteVideoStream.isReceiving);
|
9978
|
+
};
|
9453
9979
|
this._callIdRef = callIdRef;
|
9454
9980
|
this._participantKey = participantKey;
|
9455
9981
|
this._remoteVideoStream = remoteVideoStream;
|
@@ -9460,7 +9986,7 @@ class RemoteVideoStreamSubscriber {
|
|
9460
9986
|
|
9461
9987
|
// Copyright (c) Microsoft Corporation.
|
9462
9988
|
// Licensed under the MIT license.
|
9463
|
-
var __awaiter$
|
9989
|
+
var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
9464
9990
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
9465
9991
|
return new (P || (P = Promise))(function (resolve, reject) {
|
9466
9992
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -9470,7 +9996,7 @@ var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
9470
9996
|
});
|
9471
9997
|
};
|
9472
9998
|
function createViewRemoteVideo(context, internalContext, callId, participantId, stream, options) {
|
9473
|
-
return __awaiter$
|
9999
|
+
return __awaiter$h(this, void 0, void 0, function* () {
|
9474
10000
|
// Render RemoteVideoStream that is part of a Call
|
9475
10001
|
const streamId = stream.id;
|
9476
10002
|
let participantKey;
|
@@ -9480,23 +10006,43 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9480
10006
|
else {
|
9481
10007
|
participantKey = toFlatCommunicationIdentifier(participantId);
|
9482
10008
|
}
|
9483
|
-
const streamLogInfo =
|
9484
|
-
callingStatefulLogger
|
10009
|
+
const streamLogInfo = { callId, participantKey, streamId };
|
10010
|
+
_logEvent(callingStatefulLogger, {
|
10011
|
+
name: EventNames.CREATING_REMOTE_VIEW,
|
10012
|
+
level: 'info',
|
10013
|
+
message: 'Start creating view for remote video.',
|
10014
|
+
data: streamLogInfo
|
10015
|
+
});
|
9485
10016
|
const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);
|
9486
10017
|
if (!renderInfo) {
|
9487
|
-
callingStatefulLogger
|
10018
|
+
_logEvent(callingStatefulLogger, {
|
10019
|
+
name: EventNames.REMOTE_STREAM_NOT_FOUND,
|
10020
|
+
level: 'error',
|
10021
|
+
message: 'RemoteVideoStream not found in state.',
|
10022
|
+
data: streamLogInfo
|
10023
|
+
});
|
9488
10024
|
console.warn('RemoteVideoStream not found in state');
|
9489
10025
|
return;
|
9490
10026
|
}
|
9491
10027
|
if (renderInfo.status === 'Rendered') {
|
9492
|
-
callingStatefulLogger
|
10028
|
+
_logEvent(callingStatefulLogger, {
|
10029
|
+
name: EventNames.REMOTE_STREAM_ALREADY_RENDERED,
|
10030
|
+
level: 'warning',
|
10031
|
+
message: 'RemoteVideoStream is already rendered.',
|
10032
|
+
data: streamLogInfo
|
10033
|
+
});
|
9493
10034
|
console.warn('RemoteVideoStream is already rendered');
|
9494
10035
|
return;
|
9495
10036
|
}
|
9496
10037
|
if (renderInfo.status === 'Rendering') {
|
9497
10038
|
// Do not log to console here as this is a very common situation due to UI rerenders while
|
9498
10039
|
// the video rendering is in progress.
|
9499
|
-
callingStatefulLogger
|
10040
|
+
_logEvent(callingStatefulLogger, {
|
10041
|
+
name: EventNames.REMOTE_STREAM_RENDERING,
|
10042
|
+
level: 'warning',
|
10043
|
+
message: 'RemoteVideoStream is rendering.',
|
10044
|
+
data: streamLogInfo
|
10045
|
+
});
|
9500
10046
|
return;
|
9501
10047
|
}
|
9502
10048
|
if (renderInfo.status === 'Stopping') {
|
@@ -9510,7 +10056,12 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9510
10056
|
view = yield renderer.createView(options);
|
9511
10057
|
}
|
9512
10058
|
catch (e) {
|
9513
|
-
callingStatefulLogger
|
10059
|
+
_logEvent(callingStatefulLogger, {
|
10060
|
+
name: EventNames.CREATE_REMOTE_STREAM_FAIL,
|
10061
|
+
level: 'error',
|
10062
|
+
message: 'Failed to create remote view',
|
10063
|
+
data: streamLogInfo
|
10064
|
+
});
|
9514
10065
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);
|
9515
10066
|
throw e;
|
9516
10067
|
}
|
@@ -9518,7 +10069,12 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9518
10069
|
if (!refreshedRenderInfo) {
|
9519
10070
|
// RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
|
9520
10071
|
// and clean up state.
|
9521
|
-
callingStatefulLogger
|
10072
|
+
_logEvent(callingStatefulLogger, {
|
10073
|
+
name: EventNames.REMOTE_RENDER_INFO_NOT_FOUND,
|
10074
|
+
level: 'error',
|
10075
|
+
message: '`Cannot find remote render info after create the view.',
|
10076
|
+
data: streamLogInfo
|
10077
|
+
});
|
9522
10078
|
renderer.dispose();
|
9523
10079
|
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);
|
9524
10080
|
return;
|
@@ -9529,7 +10085,12 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9529
10085
|
renderer.dispose();
|
9530
10086
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
9531
10087
|
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);
|
9532
|
-
callingStatefulLogger
|
10088
|
+
_logEvent(callingStatefulLogger, {
|
10089
|
+
name: EventNames.REMOTE_VIEW_RENDER_SUCCEED,
|
10090
|
+
level: 'info',
|
10091
|
+
message: 'Successfully render the remote view.',
|
10092
|
+
data: streamLogInfo
|
10093
|
+
});
|
9533
10094
|
return;
|
9534
10095
|
}
|
9535
10096
|
// Else the stream still exists and status is not telling us to stop rendering. Complete the render process by
|
@@ -9543,28 +10104,48 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9543
10104
|
});
|
9544
10105
|
}
|
9545
10106
|
function createViewLocalVideo(context, internalContext, callId, options) {
|
9546
|
-
return __awaiter$
|
9547
|
-
callingStatefulLogger
|
10107
|
+
return __awaiter$h(this, void 0, void 0, function* () {
|
10108
|
+
_logEvent(callingStatefulLogger, {
|
10109
|
+
name: EventNames.START_LOCAL_STREAM_RENDERING,
|
10110
|
+
level: 'info',
|
10111
|
+
message: 'Start creating view for local video.'
|
10112
|
+
});
|
9548
10113
|
// Render LocalVideoStream that is part of a Call
|
9549
10114
|
const renderInfo = internalContext.getLocalRenderInfo(callId);
|
9550
10115
|
if (!renderInfo) {
|
9551
|
-
callingStatefulLogger
|
10116
|
+
_logEvent(callingStatefulLogger, {
|
10117
|
+
name: EventNames.LOCAL_STREAM_NOT_FOUND,
|
10118
|
+
level: 'error',
|
10119
|
+
message: 'LocalVideoStream not found in state.'
|
10120
|
+
});
|
9552
10121
|
console.warn('LocalVideoStream not found in state');
|
9553
10122
|
return;
|
9554
10123
|
}
|
9555
10124
|
if (renderInfo.status === 'Rendered') {
|
9556
|
-
callingStatefulLogger
|
10125
|
+
_logEvent(callingStatefulLogger, {
|
10126
|
+
name: EventNames.LOCAL_STREAM_ALREADY_RENDERED,
|
10127
|
+
level: 'warning',
|
10128
|
+
message: 'LocalVideoStream is already rendered.'
|
10129
|
+
});
|
9557
10130
|
console.warn('LocalVideoStream is already rendered');
|
9558
10131
|
return;
|
9559
10132
|
}
|
9560
10133
|
if (renderInfo.status === 'Rendering') {
|
9561
10134
|
// Do not log to console here as this is a very common situation due to UI rerenders while
|
9562
10135
|
// the video rendering is in progress.
|
9563
|
-
callingStatefulLogger
|
10136
|
+
_logEvent(callingStatefulLogger, {
|
10137
|
+
name: EventNames.LOCAL_STREAM_RENDERING,
|
10138
|
+
level: 'warning',
|
10139
|
+
message: 'LocalVideoStream is rendering.'
|
10140
|
+
});
|
9564
10141
|
return;
|
9565
10142
|
}
|
9566
10143
|
if (renderInfo.status === 'Stopping') {
|
9567
|
-
callingStatefulLogger
|
10144
|
+
_logEvent(callingStatefulLogger, {
|
10145
|
+
name: EventNames.LOCAL_STREAM_STOPPING,
|
10146
|
+
level: 'warning',
|
10147
|
+
message: 'LocalVideoStream is in the middle of stopping.'
|
10148
|
+
});
|
9568
10149
|
console.warn('LocalVideoStream is in the middle of stopping');
|
9569
10150
|
return;
|
9570
10151
|
}
|
@@ -9575,7 +10156,14 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
9575
10156
|
view = yield renderer.createView(options);
|
9576
10157
|
}
|
9577
10158
|
catch (e) {
|
9578
|
-
callingStatefulLogger
|
10159
|
+
_logEvent(callingStatefulLogger, {
|
10160
|
+
name: EventNames.CREATE_LOCAL_STREAM_FAIL,
|
10161
|
+
level: 'error',
|
10162
|
+
message: 'Failed to create view.',
|
10163
|
+
data: {
|
10164
|
+
error: e
|
10165
|
+
}
|
10166
|
+
});
|
9579
10167
|
internalContext.setLocalRenderInfo(callId, renderInfo.stream, 'NotRendered', undefined);
|
9580
10168
|
throw e;
|
9581
10169
|
}
|
@@ -9585,7 +10173,14 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
9585
10173
|
if (!refreshedRenderInfo) {
|
9586
10174
|
// RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
|
9587
10175
|
// and clean up the state.
|
9588
|
-
callingStatefulLogger
|
10176
|
+
_logEvent(callingStatefulLogger, {
|
10177
|
+
name: EventNames.LOCAL_RENDER_INFO_NOT_FOUND,
|
10178
|
+
level: 'error',
|
10179
|
+
message: 'Cannot find local render info after create the view. ',
|
10180
|
+
data: {
|
10181
|
+
callId
|
10182
|
+
}
|
10183
|
+
});
|
9589
10184
|
renderer.dispose();
|
9590
10185
|
context.setLocalVideoStreamRendererView(callId, undefined);
|
9591
10186
|
return;
|
@@ -9593,7 +10188,14 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
9593
10188
|
if (refreshedRenderInfo.status === 'Stopping') {
|
9594
10189
|
// Stop render was called on this stream after we had started rendering. We will dispose this view and do not
|
9595
10190
|
// put the view into the state.
|
9596
|
-
callingStatefulLogger
|
10191
|
+
_logEvent(callingStatefulLogger, {
|
10192
|
+
name: EventNames.LOCAL_CREATED_STREAM_STOPPING,
|
10193
|
+
level: 'warning',
|
10194
|
+
message: 'Render info status is stopping, dispose renderer. ',
|
10195
|
+
data: {
|
10196
|
+
callId
|
10197
|
+
}
|
10198
|
+
});
|
9597
10199
|
renderer.dispose();
|
9598
10200
|
internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
9599
10201
|
context.setLocalVideoStreamRendererView(callId, undefined);
|
@@ -9603,7 +10205,14 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
9603
10205
|
// updating the state.
|
9604
10206
|
internalContext.setLocalRenderInfo(callId, refreshedRenderInfo.stream, 'Rendered', renderer);
|
9605
10207
|
context.setLocalVideoStreamRendererView(callId, convertFromSDKToDeclarativeVideoStreamRendererView(view));
|
9606
|
-
callingStatefulLogger
|
10208
|
+
_logEvent(callingStatefulLogger, {
|
10209
|
+
name: EventNames.LOCAL_VIEW_RENDER_SUCCEED,
|
10210
|
+
level: 'info',
|
10211
|
+
message: `Successfully render the local view.`,
|
10212
|
+
data: {
|
10213
|
+
callId
|
10214
|
+
}
|
10215
|
+
});
|
9607
10216
|
return {
|
9608
10217
|
renderer,
|
9609
10218
|
view
|
@@ -9611,7 +10220,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
9611
10220
|
});
|
9612
10221
|
}
|
9613
10222
|
function createViewUnparentedVideo(context, internalContext, stream, options) {
|
9614
|
-
return __awaiter$
|
10223
|
+
return __awaiter$h(this, void 0, void 0, function* () {
|
9615
10224
|
const renderInfo = internalContext.getUnparentedRenderInfo(stream);
|
9616
10225
|
if (renderInfo && renderInfo.status === 'Rendered') {
|
9617
10226
|
console.warn('Unparented LocalVideoStream is already rendered');
|
@@ -9678,30 +10287,55 @@ function disposeViewRemoteVideo(context, internalContext, callId, participantId,
|
|
9678
10287
|
else {
|
9679
10288
|
participantKey = toFlatCommunicationIdentifier(participantId);
|
9680
10289
|
}
|
9681
|
-
const streamLogInfo =
|
9682
|
-
callingStatefulLogger
|
10290
|
+
const streamLogInfo = { callId, participantKey, streamId };
|
10291
|
+
_logEvent(callingStatefulLogger, {
|
10292
|
+
name: EventNames.START_DISPOSE_LOCAL_STREAM,
|
10293
|
+
level: 'info',
|
10294
|
+
message: 'Start disposing remote stream.',
|
10295
|
+
data: streamLogInfo
|
10296
|
+
});
|
9683
10297
|
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);
|
9684
10298
|
const renderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);
|
9685
10299
|
if (!renderInfo) {
|
9686
|
-
callingStatefulLogger
|
10300
|
+
_logEvent(callingStatefulLogger, {
|
10301
|
+
name: EventNames.REMOTE_DISPOSE_INFO_NOT_FOUND,
|
10302
|
+
level: 'error',
|
10303
|
+
message: 'Cannot find render info when disposing remote stream.',
|
10304
|
+
data: streamLogInfo
|
10305
|
+
});
|
9687
10306
|
return;
|
9688
10307
|
}
|
9689
10308
|
// Sets the status and also renderer. I think we need to always set renderer to undefined since in all status when
|
9690
10309
|
// cleaned up should have renderer as undefined. If the status is 'Rendered' and renderer is not defined it should
|
9691
10310
|
// be cleaned up below so we can set it to undefined here.
|
9692
10311
|
if (renderInfo.status === 'Rendering') {
|
9693
|
-
callingStatefulLogger
|
10312
|
+
_logEvent(callingStatefulLogger, {
|
10313
|
+
name: EventNames.REMOTE_STREAM_STOPPING,
|
10314
|
+
level: 'warning',
|
10315
|
+
message: 'Remote stream is still rendering. Changing status to stopping.',
|
10316
|
+
data: streamLogInfo
|
10317
|
+
});
|
9694
10318
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Stopping', undefined);
|
9695
10319
|
}
|
9696
10320
|
else {
|
9697
10321
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);
|
9698
10322
|
}
|
9699
10323
|
if (renderInfo.renderer) {
|
9700
|
-
callingStatefulLogger
|
10324
|
+
_logEvent(callingStatefulLogger, {
|
10325
|
+
name: EventNames.DISPOSING_REMOTE_RENDERER,
|
10326
|
+
level: 'info',
|
10327
|
+
message: 'Disposing remote view renderer.',
|
10328
|
+
data: streamLogInfo
|
10329
|
+
});
|
9701
10330
|
renderInfo.renderer.dispose();
|
9702
10331
|
}
|
9703
10332
|
else {
|
9704
|
-
callingStatefulLogger
|
10333
|
+
_logEvent(callingStatefulLogger, {
|
10334
|
+
name: EventNames.REMOTE_RENDERER_NOT_FOUND,
|
10335
|
+
level: 'warning',
|
10336
|
+
message: 'Cannot find remote view renderer.',
|
10337
|
+
data: streamLogInfo
|
10338
|
+
});
|
9705
10339
|
}
|
9706
10340
|
}
|
9707
10341
|
function disposeViewLocalVideo(context, internalContext, callId) {
|
@@ -10144,6 +10778,55 @@ class CallSubscriber {
|
|
10144
10778
|
}
|
10145
10779
|
}
|
10146
10780
|
|
10781
|
+
// Copyright (c) Microsoft Corporation.
|
10782
|
+
// Licensed under the MIT license.
|
10783
|
+
var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
10784
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
10785
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
10786
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
10787
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
10788
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
10789
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
10790
|
+
});
|
10791
|
+
};
|
10792
|
+
/**
|
10793
|
+
* @private
|
10794
|
+
*/
|
10795
|
+
class ProxyIncomingCall {
|
10796
|
+
constructor(context) {
|
10797
|
+
this._context = context;
|
10798
|
+
}
|
10799
|
+
get(target, prop) {
|
10800
|
+
switch (prop) {
|
10801
|
+
case 'accept': {
|
10802
|
+
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10803
|
+
return __awaiter$g(this, void 0, void 0, function* () {
|
10804
|
+
return yield target.accept(...args);
|
10805
|
+
});
|
10806
|
+
}, 'IncomingCall.accept');
|
10807
|
+
}
|
10808
|
+
case 'reject': {
|
10809
|
+
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10810
|
+
return __awaiter$g(this, void 0, void 0, function* () {
|
10811
|
+
return yield target.reject(...args);
|
10812
|
+
});
|
10813
|
+
}, 'IncomingCall.reject');
|
10814
|
+
}
|
10815
|
+
default:
|
10816
|
+
return Reflect.get(target, prop);
|
10817
|
+
}
|
10818
|
+
}
|
10819
|
+
}
|
10820
|
+
/**
|
10821
|
+
* Creates a declarative Incoming Call by proxying IncomingCall using ProxyIncomingCall.
|
10822
|
+
* @param incomingCall - IncomingCall from SDK
|
10823
|
+
* @returns proxied IncomingCall
|
10824
|
+
*/
|
10825
|
+
const incomingCallDeclaratify = (incomingCall, context) => {
|
10826
|
+
const proxyIncomingCall = new ProxyIncomingCall(context);
|
10827
|
+
return new Proxy(incomingCall, proxyIncomingCall);
|
10828
|
+
};
|
10829
|
+
|
10147
10830
|
// Copyright (c) Microsoft Corporation.
|
10148
10831
|
// Licensed under the MIT license.
|
10149
10832
|
/**
|
@@ -10201,6 +10884,7 @@ class ProxyCallAgent {
|
|
10201
10884
|
incomingCallSubscriber.unsubscribe();
|
10202
10885
|
}
|
10203
10886
|
this._incomingCallSubscribers.clear();
|
10887
|
+
this._declarativeIncomingCalls.clear();
|
10204
10888
|
for (const [_, declarativeCall] of this._declarativeCalls.entries()) {
|
10205
10889
|
declarativeCall.unsubscribe();
|
10206
10890
|
}
|
@@ -10241,14 +10925,16 @@ class ProxyCallAgent {
|
|
10241
10925
|
incomingCallSubscriber.unsubscribe();
|
10242
10926
|
this._incomingCallSubscribers.delete(incomingCallId);
|
10243
10927
|
}
|
10928
|
+
this._declarativeIncomingCalls.delete(incomingCallId);
|
10244
10929
|
this._context.setIncomingCallEnded(incomingCallId, callEndReason);
|
10245
10930
|
};
|
10246
|
-
this.incomingCall = (
|
10931
|
+
this.incomingCall = ({ incomingCall }) => {
|
10247
10932
|
// Make sure to not subscribe to the incoming call if we are already subscribed to it.
|
10248
|
-
if (!this._incomingCallSubscribers.has(
|
10249
|
-
this._incomingCallSubscribers.set(
|
10933
|
+
if (!this._incomingCallSubscribers.has(incomingCall.id)) {
|
10934
|
+
this._incomingCallSubscribers.set(incomingCall.id, new IncomingCallSubscriber(incomingCall, this.setIncomingCallEnded));
|
10250
10935
|
}
|
10251
|
-
this.
|
10936
|
+
this._declarativeIncomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
|
10937
|
+
this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
|
10252
10938
|
};
|
10253
10939
|
this.addCall = (call) => {
|
10254
10940
|
var _a;
|
@@ -10273,6 +10959,7 @@ class ProxyCallAgent {
|
|
10273
10959
|
this._internalContext = internalContext;
|
10274
10960
|
this._callSubscribers = new Map();
|
10275
10961
|
this._incomingCallSubscribers = new Map();
|
10962
|
+
this._declarativeIncomingCalls = new Map();
|
10276
10963
|
this._declarativeCalls = new Map();
|
10277
10964
|
this._externalCallsUpdatedListeners = new Set();
|
10278
10965
|
this.subscribe();
|
@@ -10327,6 +11014,18 @@ class ProxyCallAgent {
|
|
10327
11014
|
});
|
10328
11015
|
};
|
10329
11016
|
}
|
11017
|
+
/**
|
11018
|
+
* This attribute is a special case and doesn't exist on the CallAgent interface.
|
11019
|
+
* We need this to be able to return a declarative incoming call object using the call agent.
|
11020
|
+
* In a standard headless SDK usage, the right way to get an incoming call is to use the `incomingCall` event.
|
11021
|
+
* However, using the declarative layer, the ideal usage would be to:
|
11022
|
+
* 1. subscribe to the `onStateChange` event
|
11023
|
+
* 2. Get the incoming call from the new state and it's ID
|
11024
|
+
* 3. Use `callAgent.incomingCalls` and filter an incoming call ID to get a declarative incoming call object
|
11025
|
+
*/
|
11026
|
+
case 'incomingCalls': {
|
11027
|
+
return this._declarativeIncomingCalls;
|
11028
|
+
}
|
10330
11029
|
default:
|
10331
11030
|
return Reflect.get(target, prop);
|
10332
11031
|
}
|
@@ -11672,6 +12371,191 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
11672
12371
|
*/
|
11673
12372
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
11674
12373
|
|
12374
|
+
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12375
|
+
|
12376
|
+
var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
|
12377
|
+
|
12378
|
+
var call$b={cameraLabel:"Kamera",cameraPermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihre Kamera.",cameraTurnedOff:"Ihre Kamera ist deaktiviert.",close:"Schließen",complianceBannerNowOnlyRecording:"Sie zeichnen nun nur diese Besprechung auf.",complianceBannerNowOnlyTranscription:"Sie transkribieren diese Besprechung jetzt nur noch.",complianceBannerRecordingAndTranscriptionSaved:"Aufzeichnung und Transkription werden gespeichert.",complianceBannerRecordingAndTranscriptionStarted:"Die Aufzeichnung und Transkription haben begonnen.",complianceBannerRecordingAndTranscriptionStopped:"Die Aufzeichnung und Transkription wurden beendet.",complianceBannerRecordingSaving:"Aufzeichnung wird gespeichert.",complianceBannerRecordingStarted:"Die Aufzeichnung wurde gestartet.",complianceBannerRecordingStopped:"Aufzeichnung wurde beendet.",complianceBannerTranscriptionStarted:"Die Transkription hat begonnen.",complianceBannerTranscriptionConsent:"Durch Ihre Teilnahme stimmen Sie zu, dass diese Besprechung transkribiert wird.",complianceBannerTranscriptionSaving:"Die Transkription wird gespeichert.",complianceBannerTranscriptionStopped:"Die Transkription wurde beendet.",configurationPageTitle:"Einen Anruf beginnen",defaultPlaceHolder:"Option auswählen",failedToJoinCallDueToNoNetworkMoreDetails:"Der Anruf wurde aufgrund eines Netzwerkproblems getrennt. Überprüfen Sie Ihre Verbindung, und treten Sie erneut bei.",failedToJoinCallDueToNoNetworkTitle:"Anruf unterbrochen",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Ihnen wurde keine Teilnahme am Anruf gewährt. Wenn dies ein Fehler war, treten Sie dem Anruf erneut bei.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Aus Wartebereich entlassen",learnMore:"Weitere Informationen",leftCallMoreDetails:"Wenn dies ein Fehler war, nehmen Sie erneut am Anruf teil.",leftCallTitle:"Sie haben den Anruf verlassen",lobbyScreenConnectingToCallTitle:"Teilnehmen am Anruf",lobbyScreenWaitingToBeAdmittedTitle:"Warten auf die Zulassung",microphonePermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihr Mikrofon.",mutedMessage:"Sie sind stummgeschaltet.",networkReconnectMoreDetails:"Offensichtlich ist etwas schief gegangen. Wir versuchen, Sie wieder mit dem Anruf zu verbinden.",networkReconnectTitle:"Einen Augenblick bitte",privacyPolicy:"Datenschutzrichtlinie",rejoinCallButtonLabel:"Am Anruf erneut teilnehmen",removedFromCallMoreDetails:"Ein anderer Teilnehmer hat Sie aus dem Anruf entfernt.",removedFromCallTitle:"Sie wurden entfernt",soundLabel:"Sound",startCallButtonLabel:"Anruf beginnen",microphoneToggleInLobbyNotAllowed:"Stummschalten oder Aufheben der Stummschaltung im Wartebereich nicht zulässig."};var chat$b={chatListHeader:"In diesem Chat"};var callWithChat$b={peopleButtonLabel:"Personen",peopleButtonTooltipOpen:"Teilnehmende anzeigen",peopleButtonTooltipClose:"Teilnehmende ausblenden",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Chat anzeigen ({unreadMessagesCount} ungelesen)",chatButtonTooltipOpen:"Chat anzeigen",chatButtonTooltipClose:"Chat ausblenden",moreDrawerAudioDeviceMenuTitle:"Audiogerät",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Lautsprecher",moreDrawerButtonLabel:"Weitere Optionen",moreDrawerButtonTooltip:"Weitere Optionen",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In diesem Anruf",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Neue Nachricht",pictureInPictureTileAriaLabel:"Videofeeds. Klicken Sie hier, um zum Anrufbildschirm zurückzukehren.",removeMenuLabel:"Entfernen",copyInviteLinkButtonLabel:"Einladungslink kopieren",dismissSidePaneButton:"Schließen",returnToCallButtonAriaDescription:"Zurück zum Anruf",returnToCallButtonAriaLabel:"Zurück"};var de_DE = {call:call$b,chat:chat$b,callWithChat:callWithChat$b};
|
12379
|
+
|
12380
|
+
var call$a={cameraLabel:"Cámara",cameraPermissionDenied:"El explorador está bloqueando el acceso a la cámara",cameraTurnedOff:"La cámara está apagada",close:"Cerrar",complianceBannerNowOnlyRecording:"Solo está grabando esta reunión.",complianceBannerNowOnlyTranscription:"Solo está transcribiendo esta reunión.",complianceBannerRecordingAndTranscriptionSaved:"Se están guardando la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStarted:"Se han iniciado la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStopped:"Se han detenido la grabación y la transcripción.",complianceBannerRecordingSaving:"La grabación se está guardando.",complianceBannerRecordingStarted:"Se ha iniciado la grabación.",complianceBannerRecordingStopped:"La grabación se ha detenido.",complianceBannerTranscriptionStarted:"La transcripción se ha iniciado.",complianceBannerTranscriptionConsent:"Al unirse, da su consentimiento para que se transcriba esta reunión.",complianceBannerTranscriptionSaving:"Se está guardando la transcripción.",complianceBannerTranscriptionStopped:"La transcripción se ha detenido.",configurationPageTitle:"Iniciar una llamada",defaultPlaceHolder:"Seleccionar una opción",failedToJoinCallDueToNoNetworkMoreDetails:"Se desconectó la llamada debido a un problema de red. Compruebe la conexión y únase de nuevo.",failedToJoinCallDueToNoNetworkTitle:"Llamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"No se te concedió la entrada a la llamada. Si se trata de un error, vuelve a unirte.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rechazado de la sala de espera",learnMore:"Más información",leftCallMoreDetails:"Si se trata de un error, vuelve a unirte a la llamada.",leftCallTitle:"Has abandonado la llamada",lobbyScreenConnectingToCallTitle:"Uniéndose a la llamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando a ser admitido",microphonePermissionDenied:"El explorador está bloqueando el acceso al micrófono",mutedMessage:"Estás silenciado",networkReconnectMoreDetails:"Parece que hubo un problema. Estamos intentando reconectar la llamada.",networkReconnectTitle:"Espere",privacyPolicy:"Directiva de privacidad",rejoinCallButtonLabel:"Volver a unirse a la llamada",removedFromCallMoreDetails:"Otro participante te ha eliminado de la llamada.",removedFromCallTitle:"Fuiste eliminado",soundLabel:"Sonido",startCallButtonLabel:"Iniciar llamada",microphoneToggleInLobbyNotAllowed:"No se puede silenciar ni reactivar el audio mientras se está en la sala de espera."};var chat$a={chatListHeader:"En este chat"};var callWithChat$a={peopleButtonLabel:"Contactos",peopleButtonTooltipOpen:"Mostrar participantes",peopleButtonTooltipClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Mostrar chat ({unreadMessagesCount} no leídos)",chatButtonTooltipOpen:"Mostrar chat",chatButtonTooltipClose:"Ocultar chat",moreDrawerAudioDeviceMenuTitle:"Dispositivo de audio",moreDrawerMicrophoneMenuTitle:"Micrófono",moreDrawerSpeakerMenuTitle:"Altavoz",moreDrawerButtonLabel:"Más opciones",moreDrawerButtonTooltip:"Más opciones",peoplePaneTitle:"Contactos",peoplePaneSubTitle:"En esta llamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuevo mensaje",pictureInPictureTileAriaLabel:"Fuentes de vídeo. Hacer clic para volver a la pantalla de la llamada.",removeMenuLabel:"Quitar",copyInviteLinkButtonLabel:"Copiar vínculo de invitación",dismissSidePaneButton:"Cerrar",returnToCallButtonAriaDescription:"Volver a llamada",returnToCallButtonAriaLabel:"Volver"};var es_ES = {call:call$a,chat:chat$a,callWithChat:callWithChat$a};
|
12381
|
+
|
12382
|
+
var call$9={cameraLabel:"Appareil photo",cameraPermissionDenied:"Votre navigateur bloque l’accès à votre caméra",cameraTurnedOff:"Votre caméra est désactivée",close:"Fermer",complianceBannerNowOnlyRecording:"Vous n’enregistrez désormais que cette réunion.",complianceBannerNowOnlyTranscription:"À présent, vous ne transcrivez que cette réunion.",complianceBannerRecordingAndTranscriptionSaved:"Sauvegarde en cours de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStarted:"Démarrage de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStopped:"L’enregistrement et la transcription ont pris fin.",complianceBannerRecordingSaving:"Sauvegarde en cours de l'enregistrement.",complianceBannerRecordingStarted:"L’enregistrement a démarré.",complianceBannerRecordingStopped:"L’enregistrement a pris fin.",complianceBannerTranscriptionStarted:"Démarrage de la transcription.",complianceBannerTranscriptionConsent:"En participant, vous autorisez la transcription de cette réunion.",complianceBannerTranscriptionSaving:"Sauvegarde en cours de la transcription.",complianceBannerTranscriptionStopped:"La transcription a pris fin.",configurationPageTitle:"Lancer un appel",defaultPlaceHolder:"Sélectionnez une option",failedToJoinCallDueToNoNetworkMoreDetails:"L’appel a été déconnecté en raison d’un problème réseau. Vérifiez votre connexion et rejoignez-la à nouveau.",failedToJoinCallDueToNoNetworkTitle:"Appel déconnecté",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Vous n’avez pas reçu d’entrée dans l’appel. S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rejeté de la salle d’attente",learnMore:"En savoir plus",leftCallMoreDetails:"S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",leftCallTitle:"Vous avez quitté l’appel.",lobbyScreenConnectingToCallTitle:"Connexion à l'appel",lobbyScreenWaitingToBeAdmittedTitle:"En attente d’admission",microphonePermissionDenied:"Votre navigateur bloque l’accès à votre micro",mutedMessage:"Le son de votre micro est désactivé.",networkReconnectMoreDetails:"On dirait qu'une erreur est survenue. Nous tentons de vous reconnecter à l’appel.",networkReconnectTitle:"Patience",privacyPolicy:"Politique de confidentialité",rejoinCallButtonLabel:"Rejoindre l’appel à nouveau.",removedFromCallMoreDetails:"Un autre participant vous a supprimé de l’appel.",removedFromCallTitle:"Vous avez été supprimé.",soundLabel:"Son",startCallButtonLabel:"Lancer l'appel",microphoneToggleInLobbyNotAllowed:"Impossible de désactiver ou d’activer le son dans la salle d’attente."};var chat$9={chatListHeader:"Dans cette conversation"};var callWithChat$9={peopleButtonLabel:"Personnes",peopleButtonTooltipOpen:"Afficher les participants",peopleButtonTooltipClose:"Masquer les participants",chatButtonLabel:"Clavardage",chatButtonTooltipClosedWithMessageCount:"Afficher la conversation ({unreadMessagesCount} non lu)",chatButtonTooltipOpen:"Afficher la conversation",chatButtonTooltipClose:"Masquer la conversation",moreDrawerAudioDeviceMenuTitle:"Périphérique audio",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Haut-parleur",moreDrawerButtonLabel:"Autres options",moreDrawerButtonTooltip:"Autres options",peoplePaneTitle:"Personnes",peoplePaneSubTitle:"Pendant cet appel",chatPaneTitle:"Clavardage",chatButtonNewMessageNotificationLabel:"Nouveau message",pictureInPictureTileAriaLabel:"Flux vidéo. Cliquez pour revenir à l’écran d’appel.",removeMenuLabel:"Supprimer",copyInviteLinkButtonLabel:"Copier le lien d'invitation",dismissSidePaneButton:"Fermer",returnToCallButtonAriaDescription:"Revenir à l’appel",returnToCallButtonAriaLabel:"Précédent"};var fr_FR = {call:call$9,chat:chat$9,callWithChat:callWithChat$9};
|
12383
|
+
|
12384
|
+
var call$8={cameraLabel:"Fotocamera",cameraPermissionDenied:"Il browser blocca l'accesso alla fotocamera",cameraTurnedOff:"La videocamera è disabilitata",close:"Chiudi",complianceBannerNowOnlyRecording:"È in corso la registrazione solo di questa riunione.",complianceBannerNowOnlyTranscription:"È in corso la trascrizione solo di questa riunione.",complianceBannerRecordingAndTranscriptionSaved:"È in corso il salvataggio della registrazione e della trascrizione.",complianceBannerRecordingAndTranscriptionStarted:"Registrazione e trascrizione avviate.",complianceBannerRecordingAndTranscriptionStopped:"Registrazione e trascrizione interrotte.",complianceBannerRecordingSaving:"Salvataggio della registrazione in corso.",complianceBannerRecordingStarted:"Registrazione avviata.",complianceBannerRecordingStopped:"Registrazione arrestata.",complianceBannerTranscriptionStarted:"Trascrizione avviata.",complianceBannerTranscriptionConsent:"Partecipando, fornisci il consenso per la trascrizione di questa riunione.",complianceBannerTranscriptionSaving:"È in corso il salvataggio della trascrizione.",complianceBannerTranscriptionStopped:"Trascrizione interrotta.",configurationPageTitle:"Avvia una chiamata",defaultPlaceHolder:"Seleziona un'opzione",failedToJoinCallDueToNoNetworkMoreDetails:"La chiamata è stata disconnessa a causa di un problema di rete. Controlla la connessione e partecipa di nuovo.",failedToJoinCallDueToNoNetworkTitle:"Chiamata interrotta",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Non ti è stato concesso l’accesso alla chiamata. Se si è trattato di un errore, partecipa di nuovo alla chiamata.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorato dalla sala di attesa",learnMore:"Ulteriori informazioni",leftCallMoreDetails:"Se si è trattato di un errore, partecipa di nuovo alla chiamata.",leftCallTitle:"Hai abbandonato la chiamata",lobbyScreenConnectingToCallTitle:"Partecipazione alla chiamata",lobbyScreenWaitingToBeAdmittedTitle:"In attesa di essere ammessi",microphonePermissionDenied:"Il browser blocca l'accesso al microfono",mutedMessage:"L'audio è disattivato.",networkReconnectMoreDetails:"Sembra si sia verificato un errore. Stiamo cercando di ristabilire la connessione alla chiamata.",networkReconnectTitle:"Attendi",privacyPolicy:"Informativa sulla privacy",rejoinCallButtonLabel:"Partecipa alla chiamata",removedFromCallMoreDetails:"Un altro partecipante ti ha rimosso dalla chiamata.",removedFromCallTitle:"Sei stato rimosso",soundLabel:"Suono",startCallButtonLabel:"Avvia chiamata",microphoneToggleInLobbyNotAllowed:"Impossibile attivare o disattivare l'audio nella sala di attesa."};var chat$8={chatListHeader:"In questa chat"};var callWithChat$8={peopleButtonLabel:"Persone",peopleButtonTooltipOpen:"Mostra partecipanti",peopleButtonTooltipClose:"Nascondi partecipanti",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Mostra chat ({unreadMessagesCount} non letto)",chatButtonTooltipOpen:"Mostra chat",chatButtonTooltipClose:"Nascondi chat",moreDrawerAudioDeviceMenuTitle:"Dispositivo audio",moreDrawerMicrophoneMenuTitle:"Microfono",moreDrawerSpeakerMenuTitle:"Altoparlante",moreDrawerButtonLabel:"Altre opzioni",moreDrawerButtonTooltip:"Altre opzioni",peoplePaneTitle:"Persone",peoplePaneSubTitle:"In questa chiamata",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuovo messaggio",pictureInPictureTileAriaLabel:"Feed video. Fare clic per tornare alla schermata della chiamata.",removeMenuLabel:"Rimuovi",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito",dismissSidePaneButton:"Chiudi",returnToCallButtonAriaDescription:"Torna alla chiamata",returnToCallButtonAriaLabel:"Indietro"};var it_IT = {call:call$8,chat:chat$8,callWithChat:callWithChat$8};
|
12385
|
+
|
12386
|
+
var call$7={cameraLabel:"カメラ",cameraPermissionDenied:"お使いのブラウザーがカメラへのアクセスをブロックしています",cameraTurnedOff:"カメラはオフになっています",close:"閉じる",complianceBannerNowOnlyRecording:"今はこの会議の録画のみを行っています。",complianceBannerNowOnlyTranscription:"この会議のトランスクリプトを作成しています。",complianceBannerRecordingAndTranscriptionSaved:"レコーディングとトランスクリプトを保存されました。",complianceBannerRecordingAndTranscriptionStarted:"レコーディングとトランスクリプトが開始されました。",complianceBannerRecordingAndTranscriptionStopped:"レコーディングとトランスクリプトを停止しました。",complianceBannerRecordingSaving:"レコーディングを保存しています。",complianceBannerRecordingStarted:"レコーディングを開始しました。",complianceBannerRecordingStopped:"レコーディングを停止しました。",complianceBannerTranscriptionStarted:"トランスクリプトが開始しました。",complianceBannerTranscriptionConsent:"参加すると、この会議のトランスクリプトの作成に同意したことになります。",complianceBannerTranscriptionSaving:"トランスクリプトを保存されました。",complianceBannerTranscriptionStopped:"トランスクリプトが停止しました。",configurationPageTitle:"通話を開始",defaultPlaceHolder:"オプションを選択する",failedToJoinCallDueToNoNetworkMoreDetails:"ネットワークの問題により、通話が切断されました。接続を確認して、もう一度参加してください。",failedToJoinCallDueToNoNetworkTitle:"通話が切断されました",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"通話のエントリが許可されませんでした。これが間違いだった場合は、通話に再参加してください。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"ロビーから消去しました",learnMore:"詳細情報",leftCallMoreDetails:"これが間違いだった場合は、通話に再度参加してください。",leftCallTitle:"通話を終了しました",lobbyScreenConnectingToCallTitle:"通話に参加中",lobbyScreenWaitingToBeAdmittedTitle:"承認待機中",microphonePermissionDenied:"お使いのブラウザーがマイクへのアクセスをブロックしています",mutedMessage:"ミュートになっています",networkReconnectMoreDetails:"問題が発生したようです。通話に戻ろうとしています。",networkReconnectTitle:"お待ちください",privacyPolicy:"プライバシー ポリシー",rejoinCallButtonLabel:"通話に再度参加",removedFromCallMoreDetails:"別の参加者があなたを通話から削除しました。",removedFromCallTitle:"削除されました",soundLabel:"音声",startCallButtonLabel:"通話を開始",microphoneToggleInLobbyNotAllowed:"ロビーにいる間はミュートまたはミュート解除できません。"};var chat$7={chatListHeader:"このチャット内"};var callWithChat$7={peopleButtonLabel:"ユーザー",peopleButtonTooltipOpen:"参加者を表示",peopleButtonTooltipClose:"参加者を非表示",chatButtonLabel:"チャット",chatButtonTooltipClosedWithMessageCount:"チャットを表示する ({unreadMessagesCount} 件の未読)",chatButtonTooltipOpen:"チャットを表示",chatButtonTooltipClose:"チャットを非表示",moreDrawerAudioDeviceMenuTitle:"オーディオ デバイス",moreDrawerMicrophoneMenuTitle:"マイク",moreDrawerSpeakerMenuTitle:"スピーカー",moreDrawerButtonLabel:"その他のオプション",moreDrawerButtonTooltip:"その他のオプション",peoplePaneTitle:"ユーザー",peoplePaneSubTitle:"この通話で",chatPaneTitle:"チャット",chatButtonNewMessageNotificationLabel:"新規メッセージ",pictureInPictureTileAriaLabel:"ビデオ フィード。 クリックすると通話画面に戻ります。",removeMenuLabel:"削除",copyInviteLinkButtonLabel:"招待用のリンクをコピー",dismissSidePaneButton:"閉じる",returnToCallButtonAriaDescription:"通話に戻る",returnToCallButtonAriaLabel:"戻る"};var ja_JP = {call:call$7,chat:chat$7,callWithChat:callWithChat$7};
|
12387
|
+
|
12388
|
+
var call$6={cameraLabel:"카메라",cameraPermissionDenied:"브라우저에서 카메라에 대한 액세스를 차단하고 있습니다.",cameraTurnedOff:"카메라가 꺼져 있음",close:"닫기",complianceBannerNowOnlyRecording:"이제 이 모임의 녹음/녹화만 진행합니다.",complianceBannerNowOnlyTranscription:"이제 이 모임의 전사만 진행합니다.",complianceBannerRecordingAndTranscriptionSaved:"녹음/녹화와 전사를 저장하는 중입니다.",complianceBannerRecordingAndTranscriptionStarted:"녹음/녹화와 전사를 시작했습니다.",complianceBannerRecordingAndTranscriptionStopped:"녹음/녹화와 전사를 중단했습니다.",complianceBannerRecordingSaving:"녹음/녹화를 저장하는 중입니다.",complianceBannerRecordingStarted:"녹음/녹화를 시작했습니다.",complianceBannerRecordingStopped:"녹음/녹화를 중단했습니다.",complianceBannerTranscriptionStarted:"전사를 시작했습니다.",complianceBannerTranscriptionConsent:"참가하면 이 모임이 전사되는 것에 동의하게 됩니다.",complianceBannerTranscriptionSaving:"전사를 저장하는 중입니다.",complianceBannerTranscriptionStopped:"전사를 중단했습니다.",configurationPageTitle:"통화 시작",defaultPlaceHolder:"옵션 선택",failedToJoinCallDueToNoNetworkMoreDetails:"네트워크 문제로 인해 통화 연결이 끊어졌습니다. 연결을 확인하고 다시 참가하세요.",failedToJoinCallDueToNoNetworkTitle:"통화 연결 끊김",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"통화에 참가할 수 있는 권한이 없습니다. 실수라면 통화에 다시 참가하세요.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"대기실에서 해제됐습니다.",learnMore:"자세한 정보",leftCallMoreDetails:"실수라면 통화에 다시 참가하세요.",leftCallTitle:"통화를 종료했습니다.",lobbyScreenConnectingToCallTitle:"통화에 참가",lobbyScreenWaitingToBeAdmittedTitle:"승인을 기다리는 중",microphonePermissionDenied:"브라우저에서 마이크에 대한 액세스를 차단하고 있습니다.",mutedMessage:"음소거 되었습니다.",networkReconnectMoreDetails:"문제가 발생한 것 같습니다. 통화에 다시 연결하려고 합니다.",networkReconnectTitle:"잠시만",privacyPolicy:"개인 정보 취급 방침",rejoinCallButtonLabel:"통화 다시 참가",removedFromCallMoreDetails:"다른 참가자가 귀하를 통화에서 제거했습니다.",removedFromCallTitle:"통화에서 제거됐습니다.",soundLabel:"소리",startCallButtonLabel:"통화 시작",microphoneToggleInLobbyNotAllowed:"대기실에 있는 동안에는 음소거하거나 음소거를 해제할 수 없습니다."};var chat$6={chatListHeader:"채팅 참가자"};var callWithChat$6={peopleButtonLabel:"사용자",peopleButtonTooltipOpen:"참가자 표시",peopleButtonTooltipClose:"참가자 숨기기",chatButtonLabel:"채팅",chatButtonTooltipClosedWithMessageCount:"채팅 표시({unreadMessagesCount} 읽지 않음)",chatButtonTooltipOpen:"채팅 표시",chatButtonTooltipClose:"채팅 숨기기",moreDrawerAudioDeviceMenuTitle:"오디오 장치",moreDrawerMicrophoneMenuTitle:"마이크",moreDrawerSpeakerMenuTitle:"발화자",moreDrawerButtonLabel:"기타 옵션",moreDrawerButtonTooltip:"기타 옵션",peoplePaneTitle:"사용자",peoplePaneSubTitle:"이 통화에서",chatPaneTitle:"채팅",chatButtonNewMessageNotificationLabel:"새 메시지",pictureInPictureTileAriaLabel:"비디오 피드입니다. 클릭하면 통화 화면으로 돌아갑니다.",removeMenuLabel:"제거",copyInviteLinkButtonLabel:"초대 링크 복사",dismissSidePaneButton:"닫기",returnToCallButtonAriaDescription:"통화로 돌아가기",returnToCallButtonAriaLabel:"뒤로"};var ko_KR = {call:call$6,chat:chat$6,callWithChat:callWithChat$6};
|
12389
|
+
|
12390
|
+
var call$5={cameraLabel:"Camera",cameraPermissionDenied:"Uw browser blokkeert de toegang tot uw camera",cameraTurnedOff:"Camera is uitgeschakeld",close:"Sluiten",complianceBannerNowOnlyRecording:"U bent nu alleen deze vergadering aan het opnemen.",complianceBannerNowOnlyTranscription:"U bent nu alleen deze vergadering aan het transcriberen.",complianceBannerRecordingAndTranscriptionSaved:"Opname en transcriptie worden opgeslagen.",complianceBannerRecordingAndTranscriptionStarted:"Opname en transcriptie zijn gestart.",complianceBannerRecordingAndTranscriptionStopped:"Opname en transcriptie zijn gestopt.",complianceBannerRecordingSaving:"De opname wordt opgeslagen.",complianceBannerRecordingStarted:"De opname is gestart.",complianceBannerRecordingStopped:"De opname is gestopt.",complianceBannerTranscriptionStarted:"Transcriptie is gestart.",complianceBannerTranscriptionConsent:"Door deel te nemen, geeft u toestemming voor het transcriberen van deze vergadering.",complianceBannerTranscriptionSaving:"Transcriptie wordt opgeslagen.",complianceBannerTranscriptionStopped:"Transcriptie is gestopt.",configurationPageTitle:"Een oproep starten",defaultPlaceHolder:"Een optie selecteren",failedToJoinCallDueToNoNetworkMoreDetails:"De verbinding is verbroken vanwege een netwerkprobleem. Controleer de verbinding en neem opnieuw deel.",failedToJoinCallDueToNoNetworkTitle:"Verbinding verbroken",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"U hebt geen toegang gekregen in het gesprek. Als dit een fout is, neemt u opnieuw deel aan het gesprek.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Verwijderd uit lobby",learnMore:"Meer informatie",leftCallMoreDetails:"Als dit een vergissing was, neemt u opnieuw deel aan het gesprek.",leftCallTitle:"U hebt het gesprek verlaten",lobbyScreenConnectingToCallTitle:"Deelnemen aan oproep",lobbyScreenWaitingToBeAdmittedTitle:"Wachten om te worden toegelaten",microphonePermissionDenied:"Uw browser blokkeert de toegang tot uw microfoon",mutedMessage:"Uw geluid is gedempt",networkReconnectMoreDetails:"Er is iets misgegaan. We proberen terug te gaan naar het gesprek.",networkReconnectTitle:"Wacht even",privacyPolicy:"Privacybeleid",rejoinCallButtonLabel:"Opnieuw deelnemen aan gesprek",removedFromCallMoreDetails:"Een andere deelnemer heeft u uit het gesprek verwijderd.",removedFromCallTitle:"U bent verwijderd",soundLabel:"Geluid",startCallButtonLabel:"Gesprek starten",microphoneToggleInLobbyNotAllowed:"Kan niet dempen of dempen opheffen in de lobby."};var chat$5={chatListHeader:"In deze chat"};var callWithChat$5={peopleButtonLabel:"Personen",peopleButtonTooltipOpen:"Deelnemers weergeven",peopleButtonTooltipClose:"Deelnemers verbergen",chatButtonLabel:"Chatten",chatButtonTooltipClosedWithMessageCount:"Chat weergeven ({unreadMessagesCount} ongelezen)",chatButtonTooltipOpen:"Chat weergeven",chatButtonTooltipClose:"Chat verbergen",moreDrawerAudioDeviceMenuTitle:"Audioapparaat",moreDrawerMicrophoneMenuTitle:"Microfoon",moreDrawerSpeakerMenuTitle:"Luidspreker",moreDrawerButtonLabel:"Meer opties",moreDrawerButtonTooltip:"Meer opties",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In dit gesprek",chatPaneTitle:"Chatten",chatButtonNewMessageNotificationLabel:"Nieuw bericht",pictureInPictureTileAriaLabel:"Videofeeds. Klik om terug te keren naar het oproepscherm.",removeMenuLabel:"Verwijderen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren",dismissSidePaneButton:"Sluiten",returnToCallButtonAriaDescription:"Terug naar gesprek",returnToCallButtonAriaLabel:"Terug"};var nl_NL = {call:call$5,chat:chat$5,callWithChat:callWithChat$5};
|
12391
|
+
|
12392
|
+
var call$4={cameraLabel:"Câmera",cameraPermissionDenied:"Seu navegador está bloqueando o acesso à câmera",cameraTurnedOff:"Sua câmera está desativada",close:"Fechar",complianceBannerNowOnlyRecording:"Você agora está apenas gravando esta reunião.",complianceBannerNowOnlyTranscription:"Você agora está apenas transcrevendo esta reunião.",complianceBannerRecordingAndTranscriptionSaved:"A gravação e a transcrição estão sendo salvas.",complianceBannerRecordingAndTranscriptionStarted:"A gravação e a transcrição foram iniciadas.",complianceBannerRecordingAndTranscriptionStopped:"A gravação e a transcrição foram interrompidas.",complianceBannerRecordingSaving:"A gravação está sendo salva.",complianceBannerRecordingStarted:"A gravação foi iniciada.",complianceBannerRecordingStopped:"A gravação foi interrompida.",complianceBannerTranscriptionStarted:"A transcrição foi iniciada.",complianceBannerTranscriptionConsent:"Ao ingressar, você está dando consentimento para que esta reunião seja transcrita.",complianceBannerTranscriptionSaving:"A transcrição está sendo salva.",complianceBannerTranscriptionStopped:"A transcrição foi interrompida.",configurationPageTitle:"Iniciar uma chamada",defaultPlaceHolder:"Selecionar uma opção",failedToJoinCallDueToNoNetworkMoreDetails:"A chamada foi desconectada devido a um problema de rede. Verifique sua conexão e ingresse novamente.",failedToJoinCallDueToNoNetworkTitle:"Chamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Você não recebeu entrada na chamada. Se isso foi um erro, ingresse novamente na chamada.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorado do lobby",learnMore:"Saber mais",leftCallMoreDetails:"Se isso foi um erro, ingresse novamente na chamada.",leftCallTitle:"Você saiu da chamada",lobbyScreenConnectingToCallTitle:"Ingressando na chamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando para ser admitido",microphonePermissionDenied:"Seu navegador está bloqueando o acesso ao microfone",mutedMessage:"Você está com o mudo ativado",networkReconnectMoreDetails:"Parece que algo deu errado. Estamos tentando retornar à chamada.",networkReconnectTitle:"Em espera",privacyPolicy:"Política de privacidade",rejoinCallButtonLabel:"Reingressar na chamada",removedFromCallMoreDetails:"Outro participante removeu você da chamada.",removedFromCallTitle:"Você foi removido",soundLabel:"Som",startCallButtonLabel:"Iniciar chamada",microphoneToggleInLobbyNotAllowed:"Não é possível ativar ou desativar mudo enquanto estiver no lobby."};var chat$4={chatListHeader:"Neste chat"};var callWithChat$4={peopleButtonLabel:"Pessoas",peopleButtonTooltipOpen:"Mostrar Participantes",peopleButtonTooltipClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Mostrar chat ({unreadMessagesCount} não lido)",chatButtonTooltipOpen:"Mostrar chat",chatButtonTooltipClose:"Ocultar chat",moreDrawerAudioDeviceMenuTitle:"Dispositivo de Áudio",moreDrawerMicrophoneMenuTitle:"Microfone",moreDrawerSpeakerMenuTitle:"Alto-falante",moreDrawerButtonLabel:"Mais opções",moreDrawerButtonTooltip:"Mais opções",peoplePaneTitle:"Pessoas",peoplePaneSubTitle:"Nesta chamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nova mensagem",pictureInPictureTileAriaLabel:"Feeds de vídeo. Clique para retornar à tela de chamada.",removeMenuLabel:"Remover",copyInviteLinkButtonLabel:"Copiar o link de convite",dismissSidePaneButton:"Fechar",returnToCallButtonAriaDescription:"Retornar à Chamada",returnToCallButtonAriaLabel:"Voltar"};var pt_BR = {call:call$4,chat:chat$4,callWithChat:callWithChat$4};
|
12393
|
+
|
12394
|
+
var call$3={cameraLabel:"Камера",cameraPermissionDenied:"Браузер блокирует доступ к вашей камере",cameraTurnedOff:"Камера выключена",close:"Закрыть",complianceBannerNowOnlyRecording:"Сейчас для этого собрания ведется только запись.",complianceBannerNowOnlyTranscription:"Сейчас для этого собрания ведется только транскрибирование.",complianceBannerRecordingAndTranscriptionSaved:"Сохранение записи и транскрибирования.",complianceBannerRecordingAndTranscriptionStarted:"Начата запись и транскрибирование.",complianceBannerRecordingAndTranscriptionStopped:"Запись и транскрибирование остановлены.",complianceBannerRecordingSaving:"Сохранение записи.",complianceBannerRecordingStarted:"Запись начата.",complianceBannerRecordingStopped:"Запись остановлена.",complianceBannerTranscriptionStarted:"Транскрибирование запущено.",complianceBannerTranscriptionConsent:"Присоединяясь, вы даете согласие на транскрибирование этого собрания.",complianceBannerTranscriptionSaving:"Сохранение транскрибирования.",complianceBannerTranscriptionStopped:"Транскрибирование остановлено.",configurationPageTitle:"Позвонить",defaultPlaceHolder:"Выберите один из вариантов",failedToJoinCallDueToNoNetworkMoreDetails:"Звонок был отключен из-за проблемы с сетью. Проверьте подключение и присоединитесь еще раз.",failedToJoinCallDueToNoNetworkTitle:"Вызов прерван",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Вам не предоставили доступ к беседе. Если это произошло по ошибке, заново присоединитесь к беседе.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Вы были удалены из \"зала ожидания\"",learnMore:"Подробнее",leftCallMoreDetails:"Если это произошло по ошибке, заново присоединитесь к беседе.",leftCallTitle:"Вы покинули беседу",lobbyScreenConnectingToCallTitle:"Подключение к звонку",lobbyScreenWaitingToBeAdmittedTitle:"Ожидание допуска",microphonePermissionDenied:"Браузер блокирует доступ к вашему микрофону",mutedMessage:"Ваш звук отключен",networkReconnectMoreDetails:"Похоже, что-то пошло не так. Мы пытаемся вернуться к звонку.",networkReconnectTitle:"Подождите",privacyPolicy:"Политика конфиденциальности",rejoinCallButtonLabel:"Повторно присоединиться к звонку",removedFromCallMoreDetails:"Другой участник удалил вас из беседы.",removedFromCallTitle:"Вы были удалены",soundLabel:"Звук",startCallButtonLabel:"Начать звонок",microphoneToggleInLobbyNotAllowed:"Невозможно отключить или включить звук, находясь в \"зале ожидания\"."};var chat$3={chatListHeader:"В этом чате"};var callWithChat$3={peopleButtonLabel:"Люди",peopleButtonTooltipOpen:"Показать участников",peopleButtonTooltipClose:"Скрыть участников",chatButtonLabel:"Чат",chatButtonTooltipClosedWithMessageCount:"Показать чат (непрочитано: {unreadMessagesCount})",chatButtonTooltipOpen:"Показать чат",chatButtonTooltipClose:"Скрыть чат",moreDrawerAudioDeviceMenuTitle:"Звуковое устройство",moreDrawerMicrophoneMenuTitle:"Микрофон",moreDrawerSpeakerMenuTitle:"Динамик",moreDrawerButtonLabel:"Дополнительные параметры",moreDrawerButtonTooltip:"Дополнительные параметры",peoplePaneTitle:"Люди",peoplePaneSubTitle:"В этом звонке",chatPaneTitle:"Чат",chatButtonNewMessageNotificationLabel:"Новое сообщение",pictureInPictureTileAriaLabel:"Ленты видео. Щелкните, чтобы вернуться на экран вызова.",removeMenuLabel:"Удалить",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением",dismissSidePaneButton:"Закрыть",returnToCallButtonAriaDescription:"Вернуться к звонку",returnToCallButtonAriaLabel:"Назад"};var ru_RU = {call:call$3,chat:chat$3,callWithChat:callWithChat$3};
|
12395
|
+
|
12396
|
+
var call$2={cameraLabel:"Kamera",cameraPermissionDenied:"Tarayıcınız kameranıza erişimi engelliyor",cameraTurnedOff:"Kameranız kapatıldı",close:"Kapat",complianceBannerNowOnlyRecording:"Şu anda yalnızca bu toplantıyı kaydediyorsunuz.",complianceBannerNowOnlyTranscription:"Şu anda yalnızca bu toplantının dökümünü oluşturuyorsunuz.",complianceBannerRecordingAndTranscriptionSaved:"Kayıt ve döküm kaydediliyor.",complianceBannerRecordingAndTranscriptionStarted:"Kayıt ve döküm başlatıldı.",complianceBannerRecordingAndTranscriptionStopped:"Kayıt ve döküm durduruldu.",complianceBannerRecordingSaving:"Kayıt kaydediliyor.",complianceBannerRecordingStarted:"Kayıt başladı.",complianceBannerRecordingStopped:"Kayıt durduruldu.",complianceBannerTranscriptionStarted:"Döküm başlatıldı.",complianceBannerTranscriptionConsent:"Katılarak bu toplantının dökümünün çıkarılmasına onay verirsiniz.",complianceBannerTranscriptionSaving:"Döküm kaydediliyor.",complianceBannerTranscriptionStopped:"Döküm durduruldu.",configurationPageTitle:"Arama başlatın",defaultPlaceHolder:"Bir seçenek belirleyin",failedToJoinCallDueToNoNetworkMoreDetails:"Bir ağ sorunu nedeniyle arama bağlantısı kesildi. Bağlantınızı kontrol edin ve yeniden katılın.",failedToJoinCallDueToNoNetworkTitle:"Arama kesildi",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Aramaya katılmanıza izin verilmedi. Bu işlem yanlışlıkla yapıldıysa aramaya yeniden katılın.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Lobiden çıkarıldı",learnMore:"Daha fazla bilgi edinin",leftCallMoreDetails:"Bu bir hataysa aramaya yeniden katılın.",leftCallTitle:"Aramadan ayrıldınız",lobbyScreenConnectingToCallTitle:"Aramaya katılıyorsunuz",lobbyScreenWaitingToBeAdmittedTitle:"Kabul edilmeyi bekliyor",microphonePermissionDenied:"Tarayıcınız mikrofonunuza erişimi engelliyor",mutedMessage:"Sesiniz kapatıldı",networkReconnectMoreDetails:"Bir sorun oluştu gibi görünüyor. Çağrıya geri alınmaya çalışılıyor.",networkReconnectTitle:"Bekleyin",privacyPolicy:"Gizlilik ilkesi",rejoinCallButtonLabel:"Çağrıya yeniden katıl",removedFromCallMoreDetails:"Başka bir katılımcı sizi aramadan çıkardı.",removedFromCallTitle:"Çıkarıldınız",soundLabel:"Ses",startCallButtonLabel:"Arama başlat",microphoneToggleInLobbyNotAllowed:"Lobideyken sesi kapatılamaz veya açılamaz."};var chat$2={chatListHeader:"Bu sohbette"};var callWithChat$2={peopleButtonLabel:"Kişiler",peopleButtonTooltipOpen:"Katılımcıları göster",peopleButtonTooltipClose:"Katılımcıları gizle",chatButtonLabel:"Sohbet",chatButtonTooltipClosedWithMessageCount:"Sohbeti göster ({unreadMessagesCount} okunmamış)",chatButtonTooltipOpen:"Sohbeti göster",chatButtonTooltipClose:"Sohbeti gizle",moreDrawerAudioDeviceMenuTitle:"Ses Cihazı",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Hoparlör",moreDrawerButtonLabel:"Diğer seçenekler",moreDrawerButtonTooltip:"Diğer seçenekler",peoplePaneTitle:"Kişiler",peoplePaneSubTitle:"Bu aramada",chatPaneTitle:"Sohbet",chatButtonNewMessageNotificationLabel:"Yeni İleti",pictureInPictureTileAriaLabel:"Video Akışları. Çağrı ekranına dönmek için tıklayın.",removeMenuLabel:"Kaldır",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala",dismissSidePaneButton:"Kapat",returnToCallButtonAriaDescription:"Aramaya Dön",returnToCallButtonAriaLabel:"Geri"};var tr_TR = {call:call$2,chat:chat$2,callWithChat:callWithChat$2};
|
12397
|
+
|
12398
|
+
var call$1={cameraLabel:"照相机",cameraPermissionDenied:"你的浏览器正在阻止对相机的访问",cameraTurnedOff:"你的相机已关闭",close:"关闭",complianceBannerNowOnlyRecording:"现在仅录制此会议。",complianceBannerNowOnlyTranscription:"现在仅听录此会议。",complianceBannerRecordingAndTranscriptionSaved:"正在保存录制和听录。",complianceBannerRecordingAndTranscriptionStarted:"录制和听录已开始。",complianceBannerRecordingAndTranscriptionStopped:"录制和听录已停止。",complianceBannerRecordingSaving:"正在保存录制。",complianceBannerRecordingStarted:"录制已开始。",complianceBannerRecordingStopped:"录制已停止。",complianceBannerTranscriptionStarted:"听录已开始。",complianceBannerTranscriptionConsent:"加入即表示你同意转录此会议。",complianceBannerTranscriptionSaving:"正在保存听录。",complianceBannerTranscriptionStopped:"听录已停止。",configurationPageTitle:"开始通话",defaultPlaceHolder:"选择一个选项",failedToJoinCallDueToNoNetworkMoreDetails:"由于网络问题,呼叫已断开连接。请检查你的连接,然后重新加入。",failedToJoinCallDueToNoNetworkTitle:"通话已断开",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"未在通话中向你授予条目。如果这是一个错误,请重新加入呼叫。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已从大厅中关闭",learnMore:"了解详细信息",leftCallMoreDetails:"如果这是一个错误,请重新加入呼叫。",leftCallTitle:"你已离开通话",lobbyScreenConnectingToCallTitle:"加入通话",lobbyScreenWaitingToBeAdmittedTitle:"正在等待被拒绝",microphonePermissionDenied:"你的浏览器正在阻止对麦克风的访问",mutedMessage:"你已静音",networkReconnectMoreDetails:"似乎出现了问题。我们正在努力恢复通话。",networkReconnectTitle:"稍等",privacyPolicy:"隐私策略",rejoinCallButtonLabel:"重新加入呼叫",removedFromCallMoreDetails:"另一名参与者已将你从通话中删除。",removedFromCallTitle:"你已被删除",soundLabel:"声音",startCallButtonLabel:"开始通话",microphoneToggleInLobbyNotAllowed:"在大厅中时无法静音或取消静音。"};var chat$1={chatListHeader:"在此聊天中"};var callWithChat$1={peopleButtonLabel:"人员",peopleButtonTooltipOpen:"显示参与者",peopleButtonTooltipClose:"隐藏参与者",chatButtonLabel:"聊天",chatButtonTooltipClosedWithMessageCount:"显示聊天({unreadMessagesCount} 条未读)",chatButtonTooltipOpen:"显示聊天",chatButtonTooltipClose:"隐藏聊天",moreDrawerAudioDeviceMenuTitle:"音频设备",moreDrawerMicrophoneMenuTitle:"麦克风",moreDrawerSpeakerMenuTitle:"扬声器",moreDrawerButtonLabel:"更多选项",moreDrawerButtonTooltip:"更多选项",peoplePaneTitle:"人员",peoplePaneSubTitle:"在此通话中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新建消息",pictureInPictureTileAriaLabel:"视频源。单击以返回到通话屏幕。",removeMenuLabel:"删除",copyInviteLinkButtonLabel:"复制邀请链接",dismissSidePaneButton:"关闭",returnToCallButtonAriaDescription:"返回通话",returnToCallButtonAriaLabel:"返回"};var zh_CN = {call:call$1,chat:chat$1,callWithChat:callWithChat$1};
|
12399
|
+
|
12400
|
+
var call={cameraLabel:"相機",cameraPermissionDenied:"您的瀏覽器禁止存取您的相機",cameraTurnedOff:"您的相機已關閉",close:"關閉",complianceBannerNowOnlyRecording:"您現在只會錄製此會議。",complianceBannerNowOnlyTranscription:"您現在只會轉錄此會議。",complianceBannerRecordingAndTranscriptionSaved:"正在儲存錄製和轉錄。",complianceBannerRecordingAndTranscriptionStarted:"已開始錄製並進行轉錄。",complianceBannerRecordingAndTranscriptionStopped:"已停止錄製與轉錄。",complianceBannerRecordingSaving:"正在儲存錄製內容。",complianceBannerRecordingStarted:"已開始錄製。",complianceBannerRecordingStopped:"已停止錄製。",complianceBannerTranscriptionStarted:"已開始轉錄。",complianceBannerTranscriptionConsent:"一旦加入,即表示您同意轉譯此會議。",complianceBannerTranscriptionSaving:"正在儲存轉錄。",complianceBannerTranscriptionStopped:"已停止轉錄。",configurationPageTitle:"開始通話",defaultPlaceHolder:"選取選項",failedToJoinCallDueToNoNetworkMoreDetails:"由於網路問題,通話已中斷連線。檢查您的連線並再次加入。",failedToJoinCallDueToNoNetworkTitle:"通話已斷線",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"您未被授予加入通話的權限。如果有誤,請重新加入通話。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已從大廳關閉",learnMore:"深入了解",leftCallMoreDetails:"如果有誤,請重新加入通話。",leftCallTitle:"您已離開通話",lobbyScreenConnectingToCallTitle:"正在加入通話",lobbyScreenWaitingToBeAdmittedTitle:"正在等候認可",microphonePermissionDenied:"您的瀏覽器禁止存取您的麥克風",mutedMessage:"您已設為靜音",networkReconnectMoreDetails:"似乎發生錯誤。我們正在嘗試讓您返回通話。",networkReconnectTitle:"請稍候",privacyPolicy:"隱私權原則",rejoinCallButtonLabel:"重新加入通話",removedFromCallMoreDetails:"另一名參與者已將您自通話中移除。",removedFromCallTitle:"您已遭移除",soundLabel:"音效",startCallButtonLabel:"開始通話",microphoneToggleInLobbyNotAllowed:"無法在大廳中靜音或取消靜音。"};var chat={chatListHeader:"在此聊天中"};var callWithChat={peopleButtonLabel:"人員",peopleButtonTooltipOpen:"顯示參與者",peopleButtonTooltipClose:"隱藏參與者",chatButtonLabel:"聊天",chatButtonTooltipClosedWithMessageCount:"顯示聊天 ({unreadMessagesCount} 個未讀取)",chatButtonTooltipOpen:"顯示聊天",chatButtonTooltipClose:"隱藏聊天",moreDrawerAudioDeviceMenuTitle:"音訊裝置",moreDrawerMicrophoneMenuTitle:"麥克風",moreDrawerSpeakerMenuTitle:"揚聲器",moreDrawerButtonLabel:"更多選項",moreDrawerButtonTooltip:"更多選項",peoplePaneTitle:"人員",peoplePaneSubTitle:"在此通話中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新訊息",pictureInPictureTileAriaLabel:"影片摘要。按一下以返回通話畫面。",removeMenuLabel:"移除",copyInviteLinkButtonLabel:"複製邀請連結",dismissSidePaneButton:"關閉",returnToCallButtonAriaDescription:"返回通話",returnToCallButtonAriaLabel:"返回"};var zh_TW = {call:call,chat:chat,callWithChat:callWithChat};
|
12401
|
+
|
12402
|
+
// Copyright (c) Microsoft Corporation.
|
12403
|
+
const createCompositeStrings = (localizedStrings) => {
|
12404
|
+
const strings = Object.assign({}, en_US);
|
12405
|
+
Object.keys(localizedStrings).forEach((key) => {
|
12406
|
+
strings[key] = Object.assign(Object.assign({}, strings[key]), localizedStrings[key]);
|
12407
|
+
});
|
12408
|
+
return strings;
|
12409
|
+
};
|
12410
|
+
/**
|
12411
|
+
* Locale for English (US)
|
12412
|
+
*
|
12413
|
+
* @public
|
12414
|
+
*/
|
12415
|
+
const COMPOSITE_LOCALE_EN_US = {
|
12416
|
+
component: COMPONENT_LOCALE_EN_US,
|
12417
|
+
strings: en_US
|
12418
|
+
};
|
12419
|
+
/**
|
12420
|
+
* Locale for English (British)
|
12421
|
+
*
|
12422
|
+
* @public
|
12423
|
+
*/
|
12424
|
+
const COMPOSITE_LOCALE_EN_GB = {
|
12425
|
+
component: COMPONENT_LOCALE_EN_GB,
|
12426
|
+
strings: createCompositeStrings(en_GB)
|
12427
|
+
};
|
12428
|
+
/**
|
12429
|
+
* Locale for German (Germany)
|
12430
|
+
*
|
12431
|
+
* @public
|
12432
|
+
*/
|
12433
|
+
const COMPOSITE_LOCALE_DE_DE = {
|
12434
|
+
component: COMPONENT_LOCALE_DE_DE,
|
12435
|
+
strings: createCompositeStrings(de_DE)
|
12436
|
+
};
|
12437
|
+
/**
|
12438
|
+
* Locale for Spanish (Spain)
|
12439
|
+
*
|
12440
|
+
* @public
|
12441
|
+
*/
|
12442
|
+
const COMPOSITE_LOCALE_ES_ES = {
|
12443
|
+
component: COMPONENT_LOCALE_ES_ES,
|
12444
|
+
strings: createCompositeStrings(es_ES)
|
12445
|
+
};
|
12446
|
+
/**
|
12447
|
+
* Locale for French (France)
|
12448
|
+
*
|
12449
|
+
* @public
|
12450
|
+
*/
|
12451
|
+
const COMPOSITE_LOCALE_FR_FR = {
|
12452
|
+
component: COMPONENT_LOCALE_FR_FR,
|
12453
|
+
strings: createCompositeStrings(fr_FR)
|
12454
|
+
};
|
12455
|
+
/**
|
12456
|
+
* Locale for Italian (Italy)
|
12457
|
+
*
|
12458
|
+
* @public
|
12459
|
+
*/
|
12460
|
+
const COMPOSITE_LOCALE_IT_IT = {
|
12461
|
+
component: COMPONENT_LOCALE_IT_IT,
|
12462
|
+
strings: createCompositeStrings(it_IT)
|
12463
|
+
};
|
12464
|
+
/**
|
12465
|
+
* Locale for Japanese (Japan)
|
12466
|
+
*
|
12467
|
+
* @public
|
12468
|
+
*/
|
12469
|
+
const COMPOSITE_LOCALE_JA_JP = {
|
12470
|
+
component: COMPONENT_LOCALE_JA_JP,
|
12471
|
+
strings: createCompositeStrings(ja_JP)
|
12472
|
+
};
|
12473
|
+
/**
|
12474
|
+
* Locale for Korean (South Korea)
|
12475
|
+
*
|
12476
|
+
* @public
|
12477
|
+
*/
|
12478
|
+
const COMPOSITE_LOCALE_KO_KR = {
|
12479
|
+
component: COMPONENT_LOCALE_KO_KR,
|
12480
|
+
strings: createCompositeStrings(ko_KR)
|
12481
|
+
};
|
12482
|
+
/**
|
12483
|
+
* Locale for Dutch (Netherlands)
|
12484
|
+
*
|
12485
|
+
* @public
|
12486
|
+
*/
|
12487
|
+
const COMPOSITE_LOCALE_NL_NL = {
|
12488
|
+
component: COMPONENT_LOCALE_NL_NL,
|
12489
|
+
strings: createCompositeStrings(nl_NL)
|
12490
|
+
};
|
12491
|
+
/**
|
12492
|
+
* Locale for Portuguese (Brazil)
|
12493
|
+
*
|
12494
|
+
* @public
|
12495
|
+
*/
|
12496
|
+
const COMPOSITE_LOCALE_PT_BR = {
|
12497
|
+
component: COMPONENT_LOCALE_PT_BR,
|
12498
|
+
strings: createCompositeStrings(pt_BR)
|
12499
|
+
};
|
12500
|
+
/**
|
12501
|
+
* Locale for Russian (Russia)
|
12502
|
+
*
|
12503
|
+
* @public
|
12504
|
+
*/
|
12505
|
+
const COMPOSITE_LOCALE_RU_RU = {
|
12506
|
+
component: COMPONENT_LOCALE_RU_RU,
|
12507
|
+
strings: createCompositeStrings(ru_RU)
|
12508
|
+
};
|
12509
|
+
/**
|
12510
|
+
* Locale for Turkish (Turkey)
|
12511
|
+
*
|
12512
|
+
* @public
|
12513
|
+
*/
|
12514
|
+
const COMPOSITE_LOCALE_TR_TR = {
|
12515
|
+
component: COMPONENT_LOCALE_TR_TR,
|
12516
|
+
strings: createCompositeStrings(tr_TR)
|
12517
|
+
};
|
12518
|
+
/**
|
12519
|
+
* Locale for Chinese (Mainland China)
|
12520
|
+
*
|
12521
|
+
* @public
|
12522
|
+
*/
|
12523
|
+
const COMPOSITE_LOCALE_ZH_CN = {
|
12524
|
+
component: COMPONENT_LOCALE_ZH_CN,
|
12525
|
+
strings: createCompositeStrings(zh_CN)
|
12526
|
+
};
|
12527
|
+
/**
|
12528
|
+
* Locale for Chinese (Taiwan)
|
12529
|
+
*
|
12530
|
+
* @public
|
12531
|
+
*/
|
12532
|
+
const COMPOSITE_LOCALE_ZH_TW = {
|
12533
|
+
component: COMPONENT_LOCALE_ZH_TW,
|
12534
|
+
strings: createCompositeStrings(zh_TW)
|
12535
|
+
};
|
12536
|
+
|
12537
|
+
// Copyright (c) Microsoft Corporation.
|
12538
|
+
/**
|
12539
|
+
* Context for providing localized strings to components
|
12540
|
+
*
|
12541
|
+
* @private
|
12542
|
+
*/
|
12543
|
+
const LocaleContext = React.createContext(COMPOSITE_LOCALE_EN_US);
|
12544
|
+
/**
|
12545
|
+
* Provider to provide localized strings for this library's composites.
|
12546
|
+
*
|
12547
|
+
* @private
|
12548
|
+
*/
|
12549
|
+
const LocalizationProvider = (props) => {
|
12550
|
+
const { locale, children } = props;
|
12551
|
+
return (React__default['default'].createElement(LocaleContext.Provider, { value: locale },
|
12552
|
+
React__default['default'].createElement(LocalizationProvider$1, { locale: locale.component }, children)));
|
12553
|
+
};
|
12554
|
+
/**
|
12555
|
+
* @private
|
12556
|
+
*/
|
12557
|
+
const useLocale = () => React.useContext(LocaleContext);
|
12558
|
+
|
11675
12559
|
// Copyright (c) Microsoft Corporation.
|
11676
12560
|
/**
|
11677
12561
|
* @internal
|
@@ -11698,12 +12582,18 @@ const FileUploadButton = (props) => {
|
|
11698
12582
|
background: 'transparent'
|
11699
12583
|
}
|
11700
12584
|
});
|
12585
|
+
/* @conditional-compile-remove(file-sharing) */
|
12586
|
+
const uploadFileButtonString = useLocale().strings.chat.uploadFile;
|
12587
|
+
const uploadFileButtonStringTrampoline = () => {
|
12588
|
+
// @conditional-compile-remove(file-sharing)
|
12589
|
+
return uploadFileButtonString;
|
12590
|
+
};
|
11701
12591
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
11702
12592
|
React__default['default'].createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center", className: fileUploadButtonClassName, onClick: () => {
|
11703
12593
|
var _a;
|
11704
12594
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
11705
12595
|
} },
|
11706
|
-
React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
|
12596
|
+
React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: uploadFileButtonStringTrampoline() },
|
11707
12597
|
React__default['default'].createElement(SendBoxAttachFileIconTrampoline, null))),
|
11708
12598
|
React__default['default'].createElement("input", { ref: inputRef, hidden: true, multiple: multiple, accept: accept, type: "file", onClick: (e) => {
|
11709
12599
|
// To ensure that `onChange` is fired even if the same file is picked again.
|
@@ -12292,250 +13182,77 @@ beforeDispose) => {
|
|
12292
13182
|
if (!credential || !displayName || !endpoint || !threadId || !userId) {
|
12293
13183
|
return;
|
12294
13184
|
}
|
12295
|
-
(() => __awaiter$9(void 0, void 0, void 0, function* () {
|
12296
|
-
if (adapterRef.current) {
|
12297
|
-
// Dispose the old adapter when a new one is created.
|
12298
|
-
//
|
12299
|
-
// This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of
|
12300
|
-
// this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter
|
12301
|
-
// creation.
|
12302
|
-
if (beforeDisposeRef.current) {
|
12303
|
-
yield beforeDisposeRef.current(adapterRef.current);
|
12304
|
-
}
|
12305
|
-
adapterRef.current.dispose();
|
12306
|
-
adapterRef.current = undefined;
|
12307
|
-
}
|
12308
|
-
let newAdapter = yield createAzureCommunicationChatAdapter({
|
12309
|
-
credential,
|
12310
|
-
displayName,
|
12311
|
-
endpoint,
|
12312
|
-
threadId,
|
12313
|
-
userId
|
12314
|
-
});
|
12315
|
-
if (afterCreateRef.current) {
|
12316
|
-
newAdapter = yield afterCreateRef.current(newAdapter);
|
12317
|
-
}
|
12318
|
-
adapterRef.current = newAdapter;
|
12319
|
-
setAdapter(newAdapter);
|
12320
|
-
}))();
|
12321
|
-
},
|
12322
|
-
// Explicitly list all arguments so that caller doesn't have to memoize the `args` object.
|
12323
|
-
[adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]);
|
12324
|
-
// Dispose any existing adapter when the component unmounts.
|
12325
|
-
React.useEffect(() => {
|
12326
|
-
return () => {
|
12327
|
-
(() => __awaiter$9(void 0, void 0, void 0, function* () {
|
12328
|
-
if (adapterRef.current) {
|
12329
|
-
if (beforeDisposeRef.current) {
|
12330
|
-
yield beforeDisposeRef.current(adapterRef.current);
|
12331
|
-
}
|
12332
|
-
adapterRef.current.dispose();
|
12333
|
-
adapterRef.current = undefined;
|
12334
|
-
}
|
12335
|
-
}))();
|
12336
|
-
};
|
12337
|
-
}, []);
|
12338
|
-
return adapter;
|
12339
|
-
};
|
12340
|
-
/**
|
12341
|
-
* Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.
|
12342
|
-
*
|
12343
|
-
* Useful if you want to keep a reference to {@link StatefulChatClient}.
|
12344
|
-
* Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.
|
12345
|
-
*
|
12346
|
-
* @public
|
12347
|
-
*/
|
12348
|
-
const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$9(void 0, void 0, void 0, function* () {
|
12349
|
-
return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
|
12350
|
-
});
|
12351
|
-
const isChatError = (e) => {
|
12352
|
-
return e['target'] !== undefined && e['innerError'] !== undefined;
|
12353
|
-
};
|
12354
|
-
|
12355
|
-
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$d={chatListHeader:"In this chat"};var callWithChat$d={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12356
|
-
|
12357
|
-
var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipContentOpen:"Show Participants",peopleButtonTooltipContentClose:"Hide Participants",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Show Chat",chatButtonTooltipContentClose:"Hide Chat",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
|
12358
|
-
|
12359
|
-
var call$b={cameraLabel:"Kamera",cameraPermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihre Kamera.",cameraTurnedOff:"Ihre Kamera ist deaktiviert.",close:"Schließen",complianceBannerNowOnlyRecording:"Sie zeichnen nun nur diese Besprechung auf.",complianceBannerNowOnlyTranscription:"Sie transkribieren diese Besprechung jetzt nur noch.",complianceBannerRecordingAndTranscriptionSaved:"Aufzeichnung und Transkription werden gespeichert.",complianceBannerRecordingAndTranscriptionStarted:"Die Aufzeichnung und Transkription haben begonnen.",complianceBannerRecordingAndTranscriptionStopped:"Die Aufzeichnung und Transkription wurden beendet.",complianceBannerRecordingSaving:"Aufzeichnung wird gespeichert.",complianceBannerRecordingStarted:"Die Aufzeichnung wurde gestartet.",complianceBannerRecordingStopped:"Aufzeichnung wurde beendet.",complianceBannerTranscriptionStarted:"Die Transkription hat begonnen.",complianceBannerTranscriptionConsent:"Durch Ihre Teilnahme stimmen Sie zu, dass diese Besprechung transkribiert wird.",complianceBannerTranscriptionSaving:"Die Transkription wird gespeichert.",complianceBannerTranscriptionStopped:"Die Transkription wurde beendet.",configurationPageTitle:"Einen Anruf beginnen",defaultPlaceHolder:"Option auswählen",failedToJoinCallDueToNoNetworkMoreDetails:"Der Anruf wurde aufgrund eines Netzwerkproblems getrennt. Überprüfen Sie Ihre Verbindung, und treten Sie erneut bei.",failedToJoinCallDueToNoNetworkTitle:"Anruf unterbrochen",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Ihnen wurde keine Teilnahme am Anruf gewährt. Wenn dies ein Fehler war, treten Sie dem Anruf erneut bei.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Aus Wartebereich entlassen",learnMore:"Weitere Informationen",leftCallMoreDetails:"Wenn dies ein Fehler war, nehmen Sie erneut am Anruf teil.",leftCallTitle:"Sie haben den Anruf verlassen",lobbyScreenConnectingToCallTitle:"Teilnehmen am Anruf",lobbyScreenWaitingToBeAdmittedTitle:"Warten auf die Zulassung",microphonePermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihr Mikrofon.",mutedMessage:"Sie sind stummgeschaltet.",networkReconnectMoreDetails:"Offensichtlich ist etwas schief gegangen. Wir versuchen, Sie wieder mit dem Anruf zu verbinden.",networkReconnectTitle:"Einen Augenblick bitte",privacyPolicy:"Datenschutzrichtlinie",rejoinCallButtonLabel:"Am Anruf erneut teilnehmen",removedFromCallMoreDetails:"Ein anderer Teilnehmer hat Sie aus dem Anruf entfernt.",removedFromCallTitle:"Sie wurden entfernt",soundLabel:"Sound",startCallButtonLabel:"Anruf beginnen",microphoneToggleInLobbyNotAllowed:"Stummschalten oder Aufheben der Stummschaltung im Wartebereich nicht zulässig."};var chat$b={chatListHeader:"In diesem Chat"};var callWithChat$b={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Teilnehmer anzeigen",peopleButtonTooltipContentClose:"Teilnehmer ausblenden",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Chat anzeigen",chatButtonTooltipContentClose:"Chat ausblenden",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Lautsprecher",moreDrawerButtonLabel:"Weitere Optionen",moreDrawerButtonTooltip:"Weitere Optionen",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In diesem Anruf",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Neue Nachricht",pictureInPictureTileAriaLabel:"Videofeeds. Klicken Sie hier, um zum Anrufbildschirm zurückzukehren.",removeMenuLabel:"Entfernen",copyInviteLinkButtonLabel:"Einladungslink kopieren"};var de_DE = {call:call$b,chat:chat$b,callWithChat:callWithChat$b};
|
12360
|
-
|
12361
|
-
var call$a={cameraLabel:"Cámara",cameraPermissionDenied:"El explorador está bloqueando el acceso a la cámara",cameraTurnedOff:"La cámara está apagada",close:"Cerrar",complianceBannerNowOnlyRecording:"Solo está grabando esta reunión.",complianceBannerNowOnlyTranscription:"Solo está transcribiendo esta reunión.",complianceBannerRecordingAndTranscriptionSaved:"Se están guardando la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStarted:"Se han iniciado la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStopped:"Se han detenido la grabación y la transcripción.",complianceBannerRecordingSaving:"La grabación se está guardando.",complianceBannerRecordingStarted:"Se ha iniciado la grabación.",complianceBannerRecordingStopped:"La grabación se ha detenido.",complianceBannerTranscriptionStarted:"La transcripción se ha iniciado.",complianceBannerTranscriptionConsent:"Al unirse, da su consentimiento para que se transcriba esta reunión.",complianceBannerTranscriptionSaving:"Se está guardando la transcripción.",complianceBannerTranscriptionStopped:"La transcripción se ha detenido.",configurationPageTitle:"Iniciar una llamada",defaultPlaceHolder:"Seleccionar una opción",failedToJoinCallDueToNoNetworkMoreDetails:"Se desconectó la llamada debido a un problema de red. Compruebe la conexión y únase de nuevo.",failedToJoinCallDueToNoNetworkTitle:"Llamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"No se te concedió la entrada a la llamada. Si se trata de un error, vuelve a unirte.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rechazado de la sala de espera",learnMore:"Más información",leftCallMoreDetails:"Si se trata de un error, vuelve a unirte a la llamada.",leftCallTitle:"Has abandonado la llamada",lobbyScreenConnectingToCallTitle:"Uniéndose a la llamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando a ser admitido",microphonePermissionDenied:"El explorador está bloqueando el acceso al micrófono",mutedMessage:"Estás silenciado",networkReconnectMoreDetails:"Parece que hubo un problema. Estamos intentando reconectar la llamada.",networkReconnectTitle:"Espere",privacyPolicy:"Directiva de privacidad",rejoinCallButtonLabel:"Volver a unirse a la llamada",removedFromCallMoreDetails:"Otro participante te ha eliminado de la llamada.",removedFromCallTitle:"Fuiste eliminado",soundLabel:"Sonido",startCallButtonLabel:"Iniciar llamada",microphoneToggleInLobbyNotAllowed:"No se puede silenciar ni reactivar el audio mientras se está en la sala de espera."};var chat$a={chatListHeader:"En este chat"};var callWithChat$a={peopleButtonLabel:"Contactos",peopleButtonTooltipContentOpen:"Mostrar participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar chat",chatButtonTooltipContentClose:"Ocultar chat",moreDrawerMicrophoneMenuTitle:"Micrófono",moreDrawerSpeakerMenuTitle:"Altavoz",moreDrawerButtonLabel:"Más opciones",moreDrawerButtonTooltip:"Más opciones",peoplePaneTitle:"Contactos",peoplePaneSubTitle:"En esta llamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuevo mensaje",pictureInPictureTileAriaLabel:"Fuentes de vídeo. Hacer clic para volver a la pantalla de la llamada.",removeMenuLabel:"Quitar",copyInviteLinkButtonLabel:"Copiar vínculo de invitación"};var es_ES = {call:call$a,chat:chat$a,callWithChat:callWithChat$a};
|
12362
|
-
|
12363
|
-
var call$9={cameraLabel:"Appareil photo",cameraPermissionDenied:"Votre navigateur bloque l’accès à votre caméra",cameraTurnedOff:"Votre caméra est désactivée",close:"Fermer",complianceBannerNowOnlyRecording:"Vous n’enregistrez désormais que cette réunion.",complianceBannerNowOnlyTranscription:"À présent, vous ne transcrivez que cette réunion.",complianceBannerRecordingAndTranscriptionSaved:"Sauvegarde en cours de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStarted:"Démarrage de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStopped:"L’enregistrement et la transcription ont pris fin.",complianceBannerRecordingSaving:"Sauvegarde en cours de l'enregistrement.",complianceBannerRecordingStarted:"L’enregistrement a démarré.",complianceBannerRecordingStopped:"L’enregistrement a pris fin.",complianceBannerTranscriptionStarted:"Démarrage de la transcription.",complianceBannerTranscriptionConsent:"En participant, vous autorisez la transcription de cette réunion.",complianceBannerTranscriptionSaving:"Sauvegarde en cours de la transcription.",complianceBannerTranscriptionStopped:"La transcription a pris fin.",configurationPageTitle:"Lancer un appel",defaultPlaceHolder:"Sélectionnez une option",failedToJoinCallDueToNoNetworkMoreDetails:"L’appel a été déconnecté en raison d’un problème réseau. Vérifiez votre connexion et rejoignez-la à nouveau.",failedToJoinCallDueToNoNetworkTitle:"Appel déconnecté",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Vous n’avez pas reçu d’entrée dans l’appel. S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rejeté de la salle d’attente",learnMore:"En savoir plus",leftCallMoreDetails:"S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",leftCallTitle:"Vous avez quitté l’appel.",lobbyScreenConnectingToCallTitle:"Connexion à l'appel",lobbyScreenWaitingToBeAdmittedTitle:"En attente d’admission",microphonePermissionDenied:"Votre navigateur bloque l’accès à votre micro",mutedMessage:"Le son de votre micro est désactivé.",networkReconnectMoreDetails:"On dirait qu'une erreur est survenue. Nous tentons de vous reconnecter à l’appel.",networkReconnectTitle:"Patience",privacyPolicy:"Politique de confidentialité",rejoinCallButtonLabel:"Rejoindre l’appel à nouveau.",removedFromCallMoreDetails:"Un autre participant vous a supprimé de l’appel.",removedFromCallTitle:"Vous avez été supprimé.",soundLabel:"Son",startCallButtonLabel:"Lancer l'appel",microphoneToggleInLobbyNotAllowed:"Impossible de désactiver ou d’activer le son dans la salle d’attente."};var chat$9={chatListHeader:"Dans cette conversation"};var callWithChat$9={peopleButtonLabel:"Personnes",peopleButtonTooltipContentOpen:"Afficher les participants",peopleButtonTooltipContentClose:"Masquer les participants",chatButtonLabel:"Clavardage",chatButtonTooltipContentOpen:"Afficher la conversation",chatButtonTooltipContentClose:"Masquer la conversation",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Haut-parleur",moreDrawerButtonLabel:"Autres options",moreDrawerButtonTooltip:"Autres options",peoplePaneTitle:"Personnes",peoplePaneSubTitle:"Pendant cet appel",chatPaneTitle:"Clavardage",chatButtonNewMessageNotificationLabel:"Nouveau message",pictureInPictureTileAriaLabel:"Flux vidéo. Cliquez pour revenir à l’écran d’appel.",removeMenuLabel:"Supprimer",copyInviteLinkButtonLabel:"Copier le lien d'invitation"};var fr_FR = {call:call$9,chat:chat$9,callWithChat:callWithChat$9};
|
12364
|
-
|
12365
|
-
var call$8={cameraLabel:"Fotocamera",cameraPermissionDenied:"Il browser blocca l'accesso alla fotocamera",cameraTurnedOff:"La videocamera è disabilitata",close:"Chiudi",complianceBannerNowOnlyRecording:"È in corso la registrazione solo di questa riunione.",complianceBannerNowOnlyTranscription:"È in corso la trascrizione solo di questa riunione.",complianceBannerRecordingAndTranscriptionSaved:"È in corso il salvataggio della registrazione e della trascrizione.",complianceBannerRecordingAndTranscriptionStarted:"Registrazione e trascrizione avviate.",complianceBannerRecordingAndTranscriptionStopped:"Registrazione e trascrizione interrotte.",complianceBannerRecordingSaving:"Salvataggio della registrazione in corso.",complianceBannerRecordingStarted:"Registrazione avviata.",complianceBannerRecordingStopped:"Registrazione arrestata.",complianceBannerTranscriptionStarted:"Trascrizione avviata.",complianceBannerTranscriptionConsent:"Partecipando, fornisci il consenso per la trascrizione di questa riunione.",complianceBannerTranscriptionSaving:"È in corso il salvataggio della trascrizione.",complianceBannerTranscriptionStopped:"Trascrizione interrotta.",configurationPageTitle:"Avvia una chiamata",defaultPlaceHolder:"Seleziona un'opzione",failedToJoinCallDueToNoNetworkMoreDetails:"La chiamata è stata disconnessa a causa di un problema di rete. Controlla la connessione e partecipa di nuovo.",failedToJoinCallDueToNoNetworkTitle:"Chiamata interrotta",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Non ti è stato concesso l’accesso alla chiamata. Se si è trattato di un errore, partecipa di nuovo alla chiamata.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorato dalla sala di attesa",learnMore:"Ulteriori informazioni",leftCallMoreDetails:"Se si è trattato di un errore, partecipa di nuovo alla chiamata.",leftCallTitle:"Hai abbandonato la chiamata",lobbyScreenConnectingToCallTitle:"Partecipazione alla chiamata",lobbyScreenWaitingToBeAdmittedTitle:"In attesa di essere ammessi",microphonePermissionDenied:"Il browser blocca l'accesso al microfono",mutedMessage:"L'audio è disattivato.",networkReconnectMoreDetails:"Sembra si sia verificato un errore. Stiamo cercando di ristabilire la connessione alla chiamata.",networkReconnectTitle:"Attendi",privacyPolicy:"Informativa sulla privacy",rejoinCallButtonLabel:"Partecipa alla chiamata",removedFromCallMoreDetails:"Un altro partecipante ti ha rimosso dalla chiamata.",removedFromCallTitle:"Sei stato rimosso",soundLabel:"Suono",startCallButtonLabel:"Avvia chiamata",microphoneToggleInLobbyNotAllowed:"Impossibile attivare o disattivare l'audio nella sala di attesa."};var chat$8={chatListHeader:"In questa chat"};var callWithChat$8={peopleButtonLabel:"Persone",peopleButtonTooltipContentOpen:"Mostra partecipanti",peopleButtonTooltipContentClose:"Nascondi partecipanti",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostra chat",chatButtonTooltipContentClose:"Nascondi chat",moreDrawerMicrophoneMenuTitle:"Microfono",moreDrawerSpeakerMenuTitle:"Altoparlante",moreDrawerButtonLabel:"Altre opzioni",moreDrawerButtonTooltip:"Altre opzioni",peoplePaneTitle:"Persone",peoplePaneSubTitle:"In questa chiamata",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuovo messaggio",pictureInPictureTileAriaLabel:"Feed video. Fare clic per tornare alla schermata della chiamata.",removeMenuLabel:"Rimuovi",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito"};var it_IT = {call:call$8,chat:chat$8,callWithChat:callWithChat$8};
|
12366
|
-
|
12367
|
-
var call$7={cameraLabel:"カメラ",cameraPermissionDenied:"お使いのブラウザーがカメラへのアクセスをブロックしています",cameraTurnedOff:"カメラはオフになっています",close:"閉じる",complianceBannerNowOnlyRecording:"今はこの会議の録画のみを行っています。",complianceBannerNowOnlyTranscription:"この会議のトランスクリプトを作成しています。",complianceBannerRecordingAndTranscriptionSaved:"レコーディングとトランスクリプトを保存されました。",complianceBannerRecordingAndTranscriptionStarted:"レコーディングとトランスクリプトが開始されました。",complianceBannerRecordingAndTranscriptionStopped:"レコーディングとトランスクリプトを停止しました。",complianceBannerRecordingSaving:"レコーディングを保存しています。",complianceBannerRecordingStarted:"レコーディングを開始しました。",complianceBannerRecordingStopped:"レコーディングを停止しました。",complianceBannerTranscriptionStarted:"トランスクリプトが開始しました。",complianceBannerTranscriptionConsent:"参加すると、この会議のトランスクリプトの作成に同意したことになります。",complianceBannerTranscriptionSaving:"トランスクリプトを保存されました。",complianceBannerTranscriptionStopped:"トランスクリプトが停止しました。",configurationPageTitle:"通話を開始",defaultPlaceHolder:"オプションを選択する",failedToJoinCallDueToNoNetworkMoreDetails:"ネットワークの問題により、通話が切断されました。接続を確認して、もう一度参加してください。",failedToJoinCallDueToNoNetworkTitle:"通話が切断されました",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"通話のエントリが許可されませんでした。これが間違いだった場合は、通話に再参加してください。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"ロビーから消去しました",learnMore:"詳細情報",leftCallMoreDetails:"これが間違いだった場合は、通話に再度参加してください。",leftCallTitle:"通話を終了しました",lobbyScreenConnectingToCallTitle:"通話に参加中",lobbyScreenWaitingToBeAdmittedTitle:"承認待機中",microphonePermissionDenied:"お使いのブラウザーがマイクへのアクセスをブロックしています",mutedMessage:"ミュートになっています",networkReconnectMoreDetails:"問題が発生したようです。通話に戻ろうとしています。",networkReconnectTitle:"お待ちください",privacyPolicy:"プライバシー ポリシー",rejoinCallButtonLabel:"通話に再度参加",removedFromCallMoreDetails:"別の参加者があなたを通話から削除しました。",removedFromCallTitle:"削除されました",soundLabel:"音声",startCallButtonLabel:"通話を開始",microphoneToggleInLobbyNotAllowed:"ロビーにいる間はミュートまたはミュート解除できません。"};var chat$7={chatListHeader:"このチャット内"};var callWithChat$7={peopleButtonLabel:"ユーザー",peopleButtonTooltipContentOpen:"参加者を表示",peopleButtonTooltipContentClose:"参加者を非表示",chatButtonLabel:"チャット",chatButtonTooltipContentOpen:"チャットを表示",chatButtonTooltipContentClose:"チャットを非表示",moreDrawerMicrophoneMenuTitle:"マイク",moreDrawerSpeakerMenuTitle:"スピーカー",moreDrawerButtonLabel:"その他のオプション",moreDrawerButtonTooltip:"その他のオプション",peoplePaneTitle:"ユーザー",peoplePaneSubTitle:"この通話で",chatPaneTitle:"チャット",chatButtonNewMessageNotificationLabel:"新規メッセージ",pictureInPictureTileAriaLabel:"ビデオ フィード。 クリックすると通話画面に戻ります。",removeMenuLabel:"削除",copyInviteLinkButtonLabel:"招待用のリンクをコピー"};var ja_JP = {call:call$7,chat:chat$7,callWithChat:callWithChat$7};
|
12368
|
-
|
12369
|
-
var call$6={cameraLabel:"카메라",cameraPermissionDenied:"브라우저에서 카메라에 대한 액세스를 차단하고 있습니다.",cameraTurnedOff:"카메라가 꺼져 있음",close:"닫기",complianceBannerNowOnlyRecording:"이제 이 모임의 녹음/녹화만 진행합니다.",complianceBannerNowOnlyTranscription:"이제 이 모임의 전사만 진행합니다.",complianceBannerRecordingAndTranscriptionSaved:"녹음/녹화와 전사를 저장하는 중입니다.",complianceBannerRecordingAndTranscriptionStarted:"녹음/녹화와 전사를 시작했습니다.",complianceBannerRecordingAndTranscriptionStopped:"녹음/녹화와 전사를 중단했습니다.",complianceBannerRecordingSaving:"녹음/녹화를 저장하는 중입니다.",complianceBannerRecordingStarted:"녹음/녹화를 시작했습니다.",complianceBannerRecordingStopped:"녹음/녹화를 중단했습니다.",complianceBannerTranscriptionStarted:"전사를 시작했습니다.",complianceBannerTranscriptionConsent:"참가하면 이 모임이 전사되는 것에 동의하게 됩니다.",complianceBannerTranscriptionSaving:"전사를 저장하는 중입니다.",complianceBannerTranscriptionStopped:"전사를 중단했습니다.",configurationPageTitle:"통화 시작",defaultPlaceHolder:"옵션 선택",failedToJoinCallDueToNoNetworkMoreDetails:"네트워크 문제로 인해 통화 연결이 끊어졌습니다. 연결을 확인하고 다시 참가하세요.",failedToJoinCallDueToNoNetworkTitle:"통화 연결 끊김",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"통화에 참가할 수 있는 권한이 없습니다. 실수라면 통화에 다시 참가하세요.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"대기실에서 해제됐습니다.",learnMore:"자세한 정보",leftCallMoreDetails:"실수라면 통화에 다시 참가하세요.",leftCallTitle:"통화를 종료했습니다.",lobbyScreenConnectingToCallTitle:"통화에 참가",lobbyScreenWaitingToBeAdmittedTitle:"승인을 기다리는 중",microphonePermissionDenied:"브라우저에서 마이크에 대한 액세스를 차단하고 있습니다.",mutedMessage:"음소거 되었습니다.",networkReconnectMoreDetails:"문제가 발생한 것 같습니다. 통화에 다시 연결하려고 합니다.",networkReconnectTitle:"잠시만",privacyPolicy:"개인 정보 취급 방침",rejoinCallButtonLabel:"통화 다시 참가",removedFromCallMoreDetails:"다른 참가자가 귀하를 통화에서 제거했습니다.",removedFromCallTitle:"통화에서 제거됐습니다.",soundLabel:"소리",startCallButtonLabel:"통화 시작",microphoneToggleInLobbyNotAllowed:"대기실에 있는 동안에는 음소거하거나 음소거를 해제할 수 없습니다."};var chat$6={chatListHeader:"채팅 참가자"};var callWithChat$6={peopleButtonLabel:"사용자",peopleButtonTooltipContentOpen:"프레젠테이션 표시",peopleButtonTooltipContentClose:"참가자 숨기기",chatButtonLabel:"채팅",chatButtonTooltipContentOpen:"채팅 표시",chatButtonTooltipContentClose:"채팅 숨기기",moreDrawerMicrophoneMenuTitle:"마이크",moreDrawerSpeakerMenuTitle:"발화자",moreDrawerButtonLabel:"기타 옵션",moreDrawerButtonTooltip:"기타 옵션",peoplePaneTitle:"사용자",peoplePaneSubTitle:"이 통화에서",chatPaneTitle:"채팅",chatButtonNewMessageNotificationLabel:"새 메시지",pictureInPictureTileAriaLabel:"비디오 피드입니다. 클릭하면 통화 화면으로 돌아갑니다.",removeMenuLabel:"제거",copyInviteLinkButtonLabel:"초대 링크 복사"};var ko_KR = {call:call$6,chat:chat$6,callWithChat:callWithChat$6};
|
12370
|
-
|
12371
|
-
var call$5={cameraLabel:"Camera",cameraPermissionDenied:"Uw browser blokkeert de toegang tot uw camera",cameraTurnedOff:"Camera is uitgeschakeld",close:"Sluiten",complianceBannerNowOnlyRecording:"U bent nu alleen deze vergadering aan het opnemen.",complianceBannerNowOnlyTranscription:"U bent nu alleen deze vergadering aan het transcriberen.",complianceBannerRecordingAndTranscriptionSaved:"Opname en transcriptie worden opgeslagen.",complianceBannerRecordingAndTranscriptionStarted:"Opname en transcriptie zijn gestart.",complianceBannerRecordingAndTranscriptionStopped:"Opname en transcriptie zijn gestopt.",complianceBannerRecordingSaving:"De opname wordt opgeslagen.",complianceBannerRecordingStarted:"De opname is gestart.",complianceBannerRecordingStopped:"De opname is gestopt.",complianceBannerTranscriptionStarted:"Transcriptie is gestart.",complianceBannerTranscriptionConsent:"Door deel te nemen, geeft u toestemming voor het transcriberen van deze vergadering.",complianceBannerTranscriptionSaving:"Transcriptie wordt opgeslagen.",complianceBannerTranscriptionStopped:"Transcriptie is gestopt.",configurationPageTitle:"Een oproep starten",defaultPlaceHolder:"Een optie selecteren",failedToJoinCallDueToNoNetworkMoreDetails:"De verbinding is verbroken vanwege een netwerkprobleem. Controleer de verbinding en neem opnieuw deel.",failedToJoinCallDueToNoNetworkTitle:"Verbinding verbroken",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"U hebt geen toegang gekregen in het gesprek. Als dit een fout is, neemt u opnieuw deel aan het gesprek.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Verwijderd uit lobby",learnMore:"Meer informatie",leftCallMoreDetails:"Als dit een vergissing was, neemt u opnieuw deel aan het gesprek.",leftCallTitle:"U hebt het gesprek verlaten",lobbyScreenConnectingToCallTitle:"Deelnemen aan oproep",lobbyScreenWaitingToBeAdmittedTitle:"Wachten om te worden toegelaten",microphonePermissionDenied:"Uw browser blokkeert de toegang tot uw microfoon",mutedMessage:"Uw geluid is gedempt",networkReconnectMoreDetails:"Er is iets misgegaan. We proberen terug te gaan naar het gesprek.",networkReconnectTitle:"Wacht even",privacyPolicy:"Privacybeleid",rejoinCallButtonLabel:"Opnieuw deelnemen aan gesprek",removedFromCallMoreDetails:"Een andere deelnemer heeft u uit het gesprek verwijderd.",removedFromCallTitle:"U bent verwijderd",soundLabel:"Geluid",startCallButtonLabel:"Gesprek starten",microphoneToggleInLobbyNotAllowed:"Kan niet dempen of dempen opheffen in de lobby."};var chat$5={chatListHeader:"In deze chat"};var callWithChat$5={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Deelnemers weergeven",peopleButtonTooltipContentClose:"Deelnemers verbergen",chatButtonLabel:"Chatten",chatButtonTooltipContentOpen:"Chat weergeven",chatButtonTooltipContentClose:"Chat verbergen",moreDrawerMicrophoneMenuTitle:"Microfoon",moreDrawerSpeakerMenuTitle:"Luidspreker",moreDrawerButtonLabel:"Meer opties",moreDrawerButtonTooltip:"Meer opties",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In dit gesprek",chatPaneTitle:"Chatten",chatButtonNewMessageNotificationLabel:"Nieuw bericht",pictureInPictureTileAriaLabel:"Videofeeds. Klik om terug te keren naar het oproepscherm.",removeMenuLabel:"Verwijderen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren"};var nl_NL = {call:call$5,chat:chat$5,callWithChat:callWithChat$5};
|
12372
|
-
|
12373
|
-
var call$4={cameraLabel:"Câmera",cameraPermissionDenied:"Seu navegador está bloqueando o acesso à câmera",cameraTurnedOff:"Sua câmera está desativada",close:"Fechar",complianceBannerNowOnlyRecording:"Você agora está apenas gravando esta reunião.",complianceBannerNowOnlyTranscription:"Você agora está apenas transcrevendo esta reunião.",complianceBannerRecordingAndTranscriptionSaved:"A gravação e a transcrição estão sendo salvas.",complianceBannerRecordingAndTranscriptionStarted:"A gravação e a transcrição foram iniciadas.",complianceBannerRecordingAndTranscriptionStopped:"A gravação e a transcrição foram interrompidas.",complianceBannerRecordingSaving:"A gravação está sendo salva.",complianceBannerRecordingStarted:"A gravação foi iniciada.",complianceBannerRecordingStopped:"A gravação foi interrompida.",complianceBannerTranscriptionStarted:"A transcrição foi iniciada.",complianceBannerTranscriptionConsent:"Ao ingressar, você está dando consentimento para que esta reunião seja transcrita.",complianceBannerTranscriptionSaving:"A transcrição está sendo salva.",complianceBannerTranscriptionStopped:"A transcrição foi interrompida.",configurationPageTitle:"Iniciar uma chamada",defaultPlaceHolder:"Selecionar uma opção",failedToJoinCallDueToNoNetworkMoreDetails:"A chamada foi desconectada devido a um problema de rede. Verifique sua conexão e ingresse novamente.",failedToJoinCallDueToNoNetworkTitle:"Chamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Você não recebeu entrada na chamada. Se isso foi um erro, ingresse novamente na chamada.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorado do lobby",learnMore:"Saber mais",leftCallMoreDetails:"Se isso foi um erro, ingresse novamente na chamada.",leftCallTitle:"Você saiu da chamada",lobbyScreenConnectingToCallTitle:"Ingressando na chamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando para ser admitido",microphonePermissionDenied:"Seu navegador está bloqueando o acesso ao microfone",mutedMessage:"Você está com o mudo ativado",networkReconnectMoreDetails:"Parece que algo deu errado. Estamos tentando retornar à chamada.",networkReconnectTitle:"Em espera",privacyPolicy:"Política de privacidade",rejoinCallButtonLabel:"Reingressar na chamada",removedFromCallMoreDetails:"Outro participante removeu você da chamada.",removedFromCallTitle:"Você foi removido",soundLabel:"Som",startCallButtonLabel:"Iniciar chamada",microphoneToggleInLobbyNotAllowed:"Não é possível ativar ou desativar mudo enquanto estiver no lobby."};var chat$4={chatListHeader:"Neste chat"};var callWithChat$4={peopleButtonLabel:"Pessoas",peopleButtonTooltipContentOpen:"Mostrar Participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar Chat",chatButtonTooltipContentClose:"Ocultar Chat",moreDrawerMicrophoneMenuTitle:"Microfone",moreDrawerSpeakerMenuTitle:"Alto-falante",moreDrawerButtonLabel:"Mais opções",moreDrawerButtonTooltip:"Mais opções",peoplePaneTitle:"Pessoas",peoplePaneSubTitle:"Nesta chamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nova mensagem",pictureInPictureTileAriaLabel:"Feeds de vídeo. Clique para retornar à tela de chamada.",removeMenuLabel:"Remover",copyInviteLinkButtonLabel:"Copiar o link de convite"};var pt_BR = {call:call$4,chat:chat$4,callWithChat:callWithChat$4};
|
12374
|
-
|
12375
|
-
var call$3={cameraLabel:"Камера",cameraPermissionDenied:"Браузер блокирует доступ к вашей камере",cameraTurnedOff:"Камера выключена",close:"Закрыть",complianceBannerNowOnlyRecording:"Сейчас для этого собрания ведется только запись.",complianceBannerNowOnlyTranscription:"Сейчас для этого собрания ведется только транскрибирование.",complianceBannerRecordingAndTranscriptionSaved:"Сохранение записи и транскрибирования.",complianceBannerRecordingAndTranscriptionStarted:"Начата запись и транскрибирование.",complianceBannerRecordingAndTranscriptionStopped:"Запись и транскрибирование остановлены.",complianceBannerRecordingSaving:"Сохранение записи.",complianceBannerRecordingStarted:"Запись начата.",complianceBannerRecordingStopped:"Запись остановлена.",complianceBannerTranscriptionStarted:"Транскрибирование запущено.",complianceBannerTranscriptionConsent:"Присоединяясь, вы даете согласие на транскрибирование этого собрания.",complianceBannerTranscriptionSaving:"Сохранение транскрибирования.",complianceBannerTranscriptionStopped:"Транскрибирование остановлено.",configurationPageTitle:"Позвонить",defaultPlaceHolder:"Выберите один из вариантов",failedToJoinCallDueToNoNetworkMoreDetails:"Звонок был отключен из-за проблемы с сетью. Проверьте подключение и присоединитесь еще раз.",failedToJoinCallDueToNoNetworkTitle:"Вызов прерван",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Вам не предоставили доступ к беседе. Если это произошло по ошибке, заново присоединитесь к беседе.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Вы были удалены из \"зала ожидания\"",learnMore:"Подробнее",leftCallMoreDetails:"Если это произошло по ошибке, заново присоединитесь к беседе.",leftCallTitle:"Вы покинули беседу",lobbyScreenConnectingToCallTitle:"Подключение к звонку",lobbyScreenWaitingToBeAdmittedTitle:"Ожидание допуска",microphonePermissionDenied:"Браузер блокирует доступ к вашему микрофону",mutedMessage:"Ваш звук отключен",networkReconnectMoreDetails:"Похоже, что-то пошло не так. Мы пытаемся вернуться к звонку.",networkReconnectTitle:"Подождите",privacyPolicy:"Политика конфиденциальности",rejoinCallButtonLabel:"Повторно присоединиться к звонку",removedFromCallMoreDetails:"Другой участник удалил вас из беседы.",removedFromCallTitle:"Вы были удалены",soundLabel:"Звук",startCallButtonLabel:"Начать звонок",microphoneToggleInLobbyNotAllowed:"Невозможно отключить или включить звук, находясь в \"зале ожидания\"."};var chat$3={chatListHeader:"В этом чате"};var callWithChat$3={peopleButtonLabel:"Люди",peopleButtonTooltipContentOpen:"Показать участников",peopleButtonTooltipContentClose:"Скрыть участников",chatButtonLabel:"Чат",chatButtonTooltipContentOpen:"Показать чат",chatButtonTooltipContentClose:"Скрыть чат",moreDrawerMicrophoneMenuTitle:"Микрофон",moreDrawerSpeakerMenuTitle:"Динамик",moreDrawerButtonLabel:"Дополнительные параметры",moreDrawerButtonTooltip:"Дополнительные параметры",peoplePaneTitle:"Люди",peoplePaneSubTitle:"В этом звонке",chatPaneTitle:"Чат",chatButtonNewMessageNotificationLabel:"Новое сообщение",pictureInPictureTileAriaLabel:"Ленты видео. Щелкните, чтобы вернуться на экран вызова.",removeMenuLabel:"Удалить",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением"};var ru_RU = {call:call$3,chat:chat$3,callWithChat:callWithChat$3};
|
12376
|
-
|
12377
|
-
var call$2={cameraLabel:"Kamera",cameraPermissionDenied:"Tarayıcınız kameranıza erişimi engelliyor",cameraTurnedOff:"Kameranız kapatıldı",close:"Kapat",complianceBannerNowOnlyRecording:"Şu anda yalnızca bu toplantıyı kaydediyorsunuz.",complianceBannerNowOnlyTranscription:"Şu anda yalnızca bu toplantının dökümünü oluşturuyorsunuz.",complianceBannerRecordingAndTranscriptionSaved:"Kayıt ve döküm kaydediliyor.",complianceBannerRecordingAndTranscriptionStarted:"Kayıt ve döküm başlatıldı.",complianceBannerRecordingAndTranscriptionStopped:"Kayıt ve döküm durduruldu.",complianceBannerRecordingSaving:"Kayıt kaydediliyor.",complianceBannerRecordingStarted:"Kayıt başladı.",complianceBannerRecordingStopped:"Kayıt durduruldu.",complianceBannerTranscriptionStarted:"Döküm başlatıldı.",complianceBannerTranscriptionConsent:"Katılarak bu toplantının dökümünün çıkarılmasına onay verirsiniz.",complianceBannerTranscriptionSaving:"Döküm kaydediliyor.",complianceBannerTranscriptionStopped:"Döküm durduruldu.",configurationPageTitle:"Arama başlatın",defaultPlaceHolder:"Bir seçenek belirleyin",failedToJoinCallDueToNoNetworkMoreDetails:"Bir ağ sorunu nedeniyle arama bağlantısı kesildi. Bağlantınızı kontrol edin ve yeniden katılın.",failedToJoinCallDueToNoNetworkTitle:"Arama kesildi",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Aramaya katılmanıza izin verilmedi. Bu işlem yanlışlıkla yapıldıysa aramaya yeniden katılın.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Lobiden çıkarıldı",learnMore:"Daha fazla bilgi edinin",leftCallMoreDetails:"Bu bir hataysa aramaya yeniden katılın.",leftCallTitle:"Aramadan ayrıldınız",lobbyScreenConnectingToCallTitle:"Aramaya katılıyorsunuz",lobbyScreenWaitingToBeAdmittedTitle:"Kabul edilmeyi bekliyor",microphonePermissionDenied:"Tarayıcınız mikrofonunuza erişimi engelliyor",mutedMessage:"Sesiniz kapatıldı",networkReconnectMoreDetails:"Bir sorun oluştu gibi görünüyor. Çağrıya geri alınmaya çalışılıyor.",networkReconnectTitle:"Bekleyin",privacyPolicy:"Gizlilik ilkesi",rejoinCallButtonLabel:"Çağrıya yeniden katıl",removedFromCallMoreDetails:"Başka bir katılımcı sizi aramadan çıkardı.",removedFromCallTitle:"Çıkarıldınız",soundLabel:"Ses",startCallButtonLabel:"Arama başlat",microphoneToggleInLobbyNotAllowed:"Lobideyken sesi kapatılamaz veya açılamaz."};var chat$2={chatListHeader:"Bu sohbette"};var callWithChat$2={peopleButtonLabel:"Kişiler",peopleButtonTooltipContentOpen:"Katılımcıları Göster",peopleButtonTooltipContentClose:"Katılımcıları Gizle",chatButtonLabel:"Sohbet",chatButtonTooltipContentOpen:"Sohbeti Göster",chatButtonTooltipContentClose:"Sohbeti Gizle",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Hoparlör",moreDrawerButtonLabel:"Diğer seçenekler",moreDrawerButtonTooltip:"Diğer seçenekler",peoplePaneTitle:"Kişiler",peoplePaneSubTitle:"Bu aramada",chatPaneTitle:"Sohbet",chatButtonNewMessageNotificationLabel:"Yeni İleti",pictureInPictureTileAriaLabel:"Video Akışları. Çağrı ekranına dönmek için tıklayın.",removeMenuLabel:"Kaldır",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala"};var tr_TR = {call:call$2,chat:chat$2,callWithChat:callWithChat$2};
|
12378
|
-
|
12379
|
-
var call$1={cameraLabel:"照相机",cameraPermissionDenied:"你的浏览器正在阻止对相机的访问",cameraTurnedOff:"你的相机已关闭",close:"关闭",complianceBannerNowOnlyRecording:"现在仅录制此会议。",complianceBannerNowOnlyTranscription:"现在仅听录此会议。",complianceBannerRecordingAndTranscriptionSaved:"正在保存录制和听录。",complianceBannerRecordingAndTranscriptionStarted:"录制和听录已开始。",complianceBannerRecordingAndTranscriptionStopped:"录制和听录已停止。",complianceBannerRecordingSaving:"正在保存录制。",complianceBannerRecordingStarted:"录制已开始。",complianceBannerRecordingStopped:"录制已停止。",complianceBannerTranscriptionStarted:"听录已开始。",complianceBannerTranscriptionConsent:"加入即表示你同意转录此会议。",complianceBannerTranscriptionSaving:"正在保存听录。",complianceBannerTranscriptionStopped:"听录已停止。",configurationPageTitle:"开始通话",defaultPlaceHolder:"选择一个选项",failedToJoinCallDueToNoNetworkMoreDetails:"由于网络问题,呼叫已断开连接。请检查你的连接,然后重新加入。",failedToJoinCallDueToNoNetworkTitle:"通话已断开",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"未在通话中向你授予条目。如果这是一个错误,请重新加入呼叫。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已从大厅中关闭",learnMore:"了解详细信息",leftCallMoreDetails:"如果这是一个错误,请重新加入呼叫。",leftCallTitle:"你已离开通话",lobbyScreenConnectingToCallTitle:"加入通话",lobbyScreenWaitingToBeAdmittedTitle:"正在等待被拒绝",microphonePermissionDenied:"你的浏览器正在阻止对麦克风的访问",mutedMessage:"你已静音",networkReconnectMoreDetails:"似乎出现了问题。我们正在努力恢复通话。",networkReconnectTitle:"稍等",privacyPolicy:"隐私策略",rejoinCallButtonLabel:"重新加入呼叫",removedFromCallMoreDetails:"另一名参与者已将你从通话中删除。",removedFromCallTitle:"你已被删除",soundLabel:"声音",startCallButtonLabel:"开始通话",microphoneToggleInLobbyNotAllowed:"在大厅中时无法静音或取消静音。"};var chat$1={chatListHeader:"在此聊天中"};var callWithChat$1={peopleButtonLabel:"人员",peopleButtonTooltipContentOpen:"显示参与者",peopleButtonTooltipContentClose:"隐藏参与者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"显示聊天",chatButtonTooltipContentClose:"隐藏聊天",moreDrawerMicrophoneMenuTitle:"麦克风",moreDrawerSpeakerMenuTitle:"扬声器",moreDrawerButtonLabel:"更多选项",moreDrawerButtonTooltip:"更多选项",peoplePaneTitle:"人员",peoplePaneSubTitle:"在此通话中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新建消息",pictureInPictureTileAriaLabel:"视频源。单击以返回到通话屏幕。",removeMenuLabel:"删除",copyInviteLinkButtonLabel:"复制邀请链接"};var zh_CN = {call:call$1,chat:chat$1,callWithChat:callWithChat$1};
|
12380
|
-
|
12381
|
-
var call={cameraLabel:"相機",cameraPermissionDenied:"您的瀏覽器禁止存取您的相機",cameraTurnedOff:"您的相機已關閉",close:"關閉",complianceBannerNowOnlyRecording:"您現在只會錄製此會議。",complianceBannerNowOnlyTranscription:"您現在只會轉錄此會議。",complianceBannerRecordingAndTranscriptionSaved:"正在儲存錄製和轉錄。",complianceBannerRecordingAndTranscriptionStarted:"已開始錄製並進行轉錄。",complianceBannerRecordingAndTranscriptionStopped:"已停止錄製與轉錄。",complianceBannerRecordingSaving:"正在儲存錄製內容。",complianceBannerRecordingStarted:"已開始錄製。",complianceBannerRecordingStopped:"已停止錄製。",complianceBannerTranscriptionStarted:"已開始轉錄。",complianceBannerTranscriptionConsent:"一旦加入,即表示您同意轉譯此會議。",complianceBannerTranscriptionSaving:"正在儲存轉錄。",complianceBannerTranscriptionStopped:"已停止轉錄。",configurationPageTitle:"開始通話",defaultPlaceHolder:"選取選項",failedToJoinCallDueToNoNetworkMoreDetails:"由於網路問題,通話已中斷連線。檢查您的連線並再次加入。",failedToJoinCallDueToNoNetworkTitle:"通話已斷線",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"您未被授予加入通話的權限。如果有誤,請重新加入通話。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已從大廳關閉",learnMore:"深入了解",leftCallMoreDetails:"如果有誤,請重新加入通話。",leftCallTitle:"您已離開通話",lobbyScreenConnectingToCallTitle:"正在加入通話",lobbyScreenWaitingToBeAdmittedTitle:"正在等候認可",microphonePermissionDenied:"您的瀏覽器禁止存取您的麥克風",mutedMessage:"您已設為靜音",networkReconnectMoreDetails:"似乎發生錯誤。我們正在嘗試讓您返回通話。",networkReconnectTitle:"請稍候",privacyPolicy:"隱私權原則",rejoinCallButtonLabel:"重新加入通話",removedFromCallMoreDetails:"另一名參與者已將您自通話中移除。",removedFromCallTitle:"您已遭移除",soundLabel:"音效",startCallButtonLabel:"開始通話",microphoneToggleInLobbyNotAllowed:"無法在大廳中靜音或取消靜音。"};var chat={chatListHeader:"在此聊天中"};var callWithChat={peopleButtonLabel:"人員",peopleButtonTooltipContentOpen:"顯示參與者",peopleButtonTooltipContentClose:"隱藏參與者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"顯示聊天",chatButtonTooltipContentClose:"隱藏聊天",moreDrawerMicrophoneMenuTitle:"麥克風",moreDrawerSpeakerMenuTitle:"揚聲器",moreDrawerButtonLabel:"更多選項",moreDrawerButtonTooltip:"更多選項",peoplePaneTitle:"人員",peoplePaneSubTitle:"在此通話中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新訊息",pictureInPictureTileAriaLabel:"影片摘要。按一下以返回通話畫面。",removeMenuLabel:"移除",copyInviteLinkButtonLabel:"複製邀請連結"};var zh_TW = {call:call,chat:chat,callWithChat:callWithChat};
|
12382
|
-
|
12383
|
-
// Copyright (c) Microsoft Corporation.
|
12384
|
-
const createCompositeStrings = (localizedStrings) => {
|
12385
|
-
const strings = Object.assign({}, en_US);
|
12386
|
-
Object.keys(localizedStrings).forEach((key) => {
|
12387
|
-
strings[key] = Object.assign(Object.assign({}, strings[key]), localizedStrings[key]);
|
12388
|
-
});
|
12389
|
-
return strings;
|
12390
|
-
};
|
12391
|
-
/**
|
12392
|
-
* Locale for English (US)
|
12393
|
-
*
|
12394
|
-
* @public
|
12395
|
-
*/
|
12396
|
-
const COMPOSITE_LOCALE_EN_US = {
|
12397
|
-
component: COMPONENT_LOCALE_EN_US,
|
12398
|
-
strings: en_US
|
12399
|
-
};
|
12400
|
-
/**
|
12401
|
-
* Locale for English (British)
|
12402
|
-
*
|
12403
|
-
* @public
|
12404
|
-
*/
|
12405
|
-
const COMPOSITE_LOCALE_EN_GB = {
|
12406
|
-
component: COMPONENT_LOCALE_EN_GB,
|
12407
|
-
strings: createCompositeStrings(en_GB)
|
12408
|
-
};
|
12409
|
-
/**
|
12410
|
-
* Locale for German (Germany)
|
12411
|
-
*
|
12412
|
-
* @public
|
12413
|
-
*/
|
12414
|
-
const COMPOSITE_LOCALE_DE_DE = {
|
12415
|
-
component: COMPONENT_LOCALE_DE_DE,
|
12416
|
-
strings: createCompositeStrings(de_DE)
|
12417
|
-
};
|
12418
|
-
/**
|
12419
|
-
* Locale for Spanish (Spain)
|
12420
|
-
*
|
12421
|
-
* @public
|
12422
|
-
*/
|
12423
|
-
const COMPOSITE_LOCALE_ES_ES = {
|
12424
|
-
component: COMPONENT_LOCALE_ES_ES,
|
12425
|
-
strings: createCompositeStrings(es_ES)
|
12426
|
-
};
|
12427
|
-
/**
|
12428
|
-
* Locale for French (France)
|
12429
|
-
*
|
12430
|
-
* @public
|
12431
|
-
*/
|
12432
|
-
const COMPOSITE_LOCALE_FR_FR = {
|
12433
|
-
component: COMPONENT_LOCALE_FR_FR,
|
12434
|
-
strings: createCompositeStrings(fr_FR)
|
12435
|
-
};
|
12436
|
-
/**
|
12437
|
-
* Locale for Italian (Italy)
|
12438
|
-
*
|
12439
|
-
* @public
|
12440
|
-
*/
|
12441
|
-
const COMPOSITE_LOCALE_IT_IT = {
|
12442
|
-
component: COMPONENT_LOCALE_IT_IT,
|
12443
|
-
strings: createCompositeStrings(it_IT)
|
12444
|
-
};
|
12445
|
-
/**
|
12446
|
-
* Locale for Japanese (Japan)
|
12447
|
-
*
|
12448
|
-
* @public
|
12449
|
-
*/
|
12450
|
-
const COMPOSITE_LOCALE_JA_JP = {
|
12451
|
-
component: COMPONENT_LOCALE_JA_JP,
|
12452
|
-
strings: createCompositeStrings(ja_JP)
|
12453
|
-
};
|
12454
|
-
/**
|
12455
|
-
* Locale for Korean (South Korea)
|
12456
|
-
*
|
12457
|
-
* @public
|
12458
|
-
*/
|
12459
|
-
const COMPOSITE_LOCALE_KO_KR = {
|
12460
|
-
component: COMPONENT_LOCALE_KO_KR,
|
12461
|
-
strings: createCompositeStrings(ko_KR)
|
12462
|
-
};
|
12463
|
-
/**
|
12464
|
-
* Locale for Dutch (Netherlands)
|
12465
|
-
*
|
12466
|
-
* @public
|
12467
|
-
*/
|
12468
|
-
const COMPOSITE_LOCALE_NL_NL = {
|
12469
|
-
component: COMPONENT_LOCALE_NL_NL,
|
12470
|
-
strings: createCompositeStrings(nl_NL)
|
12471
|
-
};
|
12472
|
-
/**
|
12473
|
-
* Locale for Portuguese (Brazil)
|
12474
|
-
*
|
12475
|
-
* @public
|
12476
|
-
*/
|
12477
|
-
const COMPOSITE_LOCALE_PT_BR = {
|
12478
|
-
component: COMPONENT_LOCALE_PT_BR,
|
12479
|
-
strings: createCompositeStrings(pt_BR)
|
12480
|
-
};
|
12481
|
-
/**
|
12482
|
-
* Locale for Russian (Russia)
|
12483
|
-
*
|
12484
|
-
* @public
|
12485
|
-
*/
|
12486
|
-
const COMPOSITE_LOCALE_RU_RU = {
|
12487
|
-
component: COMPONENT_LOCALE_RU_RU,
|
12488
|
-
strings: createCompositeStrings(ru_RU)
|
12489
|
-
};
|
12490
|
-
/**
|
12491
|
-
* Locale for Turkish (Turkey)
|
12492
|
-
*
|
12493
|
-
* @public
|
12494
|
-
*/
|
12495
|
-
const COMPOSITE_LOCALE_TR_TR = {
|
12496
|
-
component: COMPONENT_LOCALE_TR_TR,
|
12497
|
-
strings: createCompositeStrings(tr_TR)
|
13185
|
+
(() => __awaiter$9(void 0, void 0, void 0, function* () {
|
13186
|
+
if (adapterRef.current) {
|
13187
|
+
// Dispose the old adapter when a new one is created.
|
13188
|
+
//
|
13189
|
+
// This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of
|
13190
|
+
// this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter
|
13191
|
+
// creation.
|
13192
|
+
if (beforeDisposeRef.current) {
|
13193
|
+
yield beforeDisposeRef.current(adapterRef.current);
|
13194
|
+
}
|
13195
|
+
adapterRef.current.dispose();
|
13196
|
+
adapterRef.current = undefined;
|
13197
|
+
}
|
13198
|
+
let newAdapter = yield createAzureCommunicationChatAdapter({
|
13199
|
+
credential,
|
13200
|
+
displayName,
|
13201
|
+
endpoint,
|
13202
|
+
threadId,
|
13203
|
+
userId
|
13204
|
+
});
|
13205
|
+
if (afterCreateRef.current) {
|
13206
|
+
newAdapter = yield afterCreateRef.current(newAdapter);
|
13207
|
+
}
|
13208
|
+
adapterRef.current = newAdapter;
|
13209
|
+
setAdapter(newAdapter);
|
13210
|
+
}))();
|
13211
|
+
},
|
13212
|
+
// Explicitly list all arguments so that caller doesn't have to memoize the `args` object.
|
13213
|
+
[adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]);
|
13214
|
+
// Dispose any existing adapter when the component unmounts.
|
13215
|
+
React.useEffect(() => {
|
13216
|
+
return () => {
|
13217
|
+
(() => __awaiter$9(void 0, void 0, void 0, function* () {
|
13218
|
+
if (adapterRef.current) {
|
13219
|
+
if (beforeDisposeRef.current) {
|
13220
|
+
yield beforeDisposeRef.current(adapterRef.current);
|
13221
|
+
}
|
13222
|
+
adapterRef.current.dispose();
|
13223
|
+
adapterRef.current = undefined;
|
13224
|
+
}
|
13225
|
+
}))();
|
13226
|
+
};
|
13227
|
+
}, []);
|
13228
|
+
return adapter;
|
12498
13229
|
};
|
12499
13230
|
/**
|
12500
|
-
*
|
13231
|
+
* Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.
|
12501
13232
|
*
|
12502
|
-
* @
|
12503
|
-
|
12504
|
-
const COMPOSITE_LOCALE_ZH_CN = {
|
12505
|
-
component: COMPONENT_LOCALE_ZH_CN,
|
12506
|
-
strings: createCompositeStrings(zh_CN)
|
12507
|
-
};
|
12508
|
-
/**
|
12509
|
-
* Locale for Chinese (Taiwan)
|
13233
|
+
* Useful if you want to keep a reference to {@link StatefulChatClient}.
|
13234
|
+
* Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.
|
12510
13235
|
*
|
12511
13236
|
* @public
|
12512
13237
|
*/
|
12513
|
-
const
|
12514
|
-
|
12515
|
-
|
13238
|
+
const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$9(void 0, void 0, void 0, function* () {
|
13239
|
+
return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
|
13240
|
+
});
|
13241
|
+
const isChatError = (e) => {
|
13242
|
+
return e['target'] !== undefined && e['innerError'] !== undefined;
|
12516
13243
|
};
|
12517
13244
|
|
12518
13245
|
// Copyright (c) Microsoft Corporation.
|
13246
|
+
// Licensed under the MIT license.
|
12519
13247
|
/**
|
12520
|
-
* Context for providing localized strings to components
|
12521
|
-
*
|
12522
|
-
* @private
|
12523
|
-
*/
|
12524
|
-
const LocaleContext = React.createContext(COMPOSITE_LOCALE_EN_US);
|
12525
|
-
/**
|
12526
|
-
* Provider to provide localized strings for this library's composites.
|
12527
|
-
*
|
12528
13248
|
* @private
|
12529
13249
|
*/
|
12530
|
-
const
|
12531
|
-
|
12532
|
-
|
12533
|
-
|
13250
|
+
const globalLayerHostStyle = {
|
13251
|
+
position: 'fixed',
|
13252
|
+
zIndex: 1000000,
|
13253
|
+
inset: '0px',
|
13254
|
+
visibility: 'hidden'
|
12534
13255
|
};
|
12535
|
-
/**
|
12536
|
-
* @private
|
12537
|
-
*/
|
12538
|
-
const useLocale = () => React.useContext(LocaleContext);
|
12539
13256
|
|
12540
13257
|
// Copyright (c) Microsoft Corporation.
|
12541
13258
|
/**
|
@@ -12548,6 +13265,7 @@ const useLocale = () => React.useContext(LocaleContext);
|
|
12548
13265
|
*/
|
12549
13266
|
const BaseProvider = (props) => {
|
12550
13267
|
const { fluentTheme, rtl, locale } = props;
|
13268
|
+
const globalLayerHostId = reactHooks.useId('composite-global-hostId');
|
12551
13269
|
/**
|
12552
13270
|
* Pass only the children if we previously registered icons, and have previously wrapped the children in
|
12553
13271
|
* FluentThemeProvider and LocalizationProvider
|
@@ -12561,9 +13279,12 @@ const BaseProvider = (props) => {
|
|
12561
13279
|
* to ensure all icons render correctly.
|
12562
13280
|
*/
|
12563
13281
|
react.registerIcons({ icons: Object.assign(Object.assign({}, DEFAULT_COMPOSITE_ICONS), props.icons) });
|
13282
|
+
// we use Customizer to override default LayerHost injected to <body />
|
13283
|
+
// which stop polluting global dom tree and increase compatibility with react-full-screen
|
12564
13284
|
const CompositeElement = (React__default['default'].createElement(FluentThemeProvider, { fluentTheme: fluentTheme, rtl: rtl },
|
12565
13285
|
React__default['default'].createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" }),
|
12566
|
-
props.children)
|
13286
|
+
React__default['default'].createElement(react.Customizer, { scopedSettings: { Layer: { hostId: globalLayerHostId } } }, props.children),
|
13287
|
+
React__default['default'].createElement(react.LayerHost, { id: globalLayerHostId, className: react.mergeStyles(globalLayerHostStyle) })));
|
12567
13288
|
const localizedElement = locale ? LocalizationProvider({ locale, children: CompositeElement }) : CompositeElement;
|
12568
13289
|
return React__default['default'].createElement(BaseContext.Provider, { value: true }, localizedElement);
|
12569
13290
|
};
|
@@ -12598,6 +13319,11 @@ const useAdapter$1 = () => {
|
|
12598
13319
|
|
12599
13320
|
// Copyright (c) Microsoft Corporation.
|
12600
13321
|
const MESSAGE_THREAD_WIDTH = '41.25rem';
|
13322
|
+
/**
|
13323
|
+
* @private
|
13324
|
+
* z-index to ensure that chat container has lower z-index than participant pane
|
13325
|
+
*/
|
13326
|
+
const CHAT_CONTAINER_ZINDEX = 1;
|
12601
13327
|
/**
|
12602
13328
|
* @private
|
12603
13329
|
*/
|
@@ -12641,7 +13367,8 @@ const chatArea = react.mergeStyles({
|
|
12641
13367
|
const chatWrapper = react.mergeStyles({
|
12642
13368
|
height: '100%',
|
12643
13369
|
width: '100%',
|
12644
|
-
overflow: 'hidden'
|
13370
|
+
overflow: 'hidden',
|
13371
|
+
zIndex: CHAT_CONTAINER_ZINDEX
|
12645
13372
|
});
|
12646
13373
|
/**
|
12647
13374
|
* @private
|
@@ -12698,44 +13425,30 @@ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
12698
13425
|
});
|
12699
13426
|
};
|
12700
13427
|
/**
|
12701
|
-
*
|
12702
|
-
*
|
12703
|
-
*
|
13428
|
+
* An Avatar component made using the `Persona` component.
|
13429
|
+
* It allows you to specify a `userId` and a `dataProvider` to retrieve the `AvatarPersonaData`.
|
13430
|
+
* Read more about `Persona` component at https://developer.microsoft.com/fluentui#/controls/web/persona
|
13431
|
+
*
|
12704
13432
|
* @private
|
12705
13433
|
*/
|
12706
|
-
const
|
12707
|
-
|
13434
|
+
const AvatarPersona = (props) => {
|
13435
|
+
var _a, _b, _c, _d, _e, _f;
|
13436
|
+
const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
|
13437
|
+
const [data, setData] = React.useState();
|
12708
13438
|
React.useEffect(() => {
|
12709
13439
|
(() => __awaiter$8(void 0, void 0, void 0, function* () {
|
12710
|
-
|
12711
|
-
|
12712
|
-
|
13440
|
+
if (dataProvider && userId) {
|
13441
|
+
const newData = yield dataProvider(userId);
|
13442
|
+
if (avatarDeepDifferenceCheck(data, newData)) {
|
13443
|
+
setData(newData);
|
12713
13444
|
}
|
12714
|
-
return yield callback(userId);
|
12715
|
-
})));
|
12716
|
-
if (shouldUpdate(data, newData)) {
|
12717
|
-
setData(newData);
|
12718
13445
|
}
|
12719
13446
|
}))();
|
12720
|
-
});
|
12721
|
-
return data
|
12722
|
-
|
12723
|
-
|
12724
|
-
* Function to determine if there is new user avatar data in current render pass.
|
12725
|
-
* @param currentData current set set of avatar persona data present from the custom settings from the previous render
|
12726
|
-
* @param newData new set of avatar persona data after a run of {@link useCustomAvatarPersonData}
|
12727
|
-
* @returns Boolean whether there is new avatar persona data present.
|
12728
|
-
* @private
|
12729
|
-
*/
|
12730
|
-
const shouldUpdate = (currentData, newData) => {
|
12731
|
-
if (currentData.length !== newData.length) {
|
12732
|
-
return true;
|
12733
|
-
}
|
12734
|
-
return currentData.some((data, i) => avatarDeepDifferenceCheck(data, newData[i]));
|
13447
|
+
}, [data, dataProvider, userId]);
|
13448
|
+
return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white',
|
13449
|
+
// default disable tooltip unless specified
|
13450
|
+
showOverflowTooltip: showOverflowTooltip !== null && showOverflowTooltip !== void 0 ? showOverflowTooltip : false })));
|
12735
13451
|
};
|
12736
|
-
/**
|
12737
|
-
* @private
|
12738
|
-
*/
|
12739
13452
|
const avatarDeepDifferenceCheck = (currentData, newData) => {
|
12740
13453
|
return ((currentData === null || currentData === void 0 ? void 0 : currentData.text) !== (newData === null || newData === void 0 ? void 0 : newData.text) ||
|
12741
13454
|
(currentData === null || currentData === void 0 ? void 0 : currentData.imageUrl) !== (newData === null || newData === void 0 ? void 0 : newData.imageUrl) ||
|
@@ -12744,24 +13457,6 @@ const avatarDeepDifferenceCheck = (currentData, newData) => {
|
|
12744
13457
|
(currentData === null || currentData === void 0 ? void 0 : currentData.initialsTextColor) !== (newData === null || newData === void 0 ? void 0 : newData.initialsTextColor));
|
12745
13458
|
};
|
12746
13459
|
|
12747
|
-
// Copyright (c) Microsoft Corporation.
|
12748
|
-
/**
|
12749
|
-
* An Avatar component made using the `Persona` component.
|
12750
|
-
* It allows you to specify a `userId` and a `dataProvider` to retrieve the `AvatarPersonaData`.
|
12751
|
-
* Read more about `Persona` component at https://developer.microsoft.com/fluentui#/controls/web/persona
|
12752
|
-
*
|
12753
|
-
* @private
|
12754
|
-
*/
|
12755
|
-
const AvatarPersona = (props) => {
|
12756
|
-
var _a, _b, _c, _d, _e, _f;
|
12757
|
-
const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor } = props;
|
12758
|
-
const userIds = React.useMemo(() => {
|
12759
|
-
return [userId];
|
12760
|
-
}, [userId]);
|
12761
|
-
const [data] = useCustomAvatarPersonaData(userIds, dataProvider);
|
12762
|
-
return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white' })));
|
12763
|
-
};
|
12764
|
-
|
12765
13460
|
// Copyright (c) Microsoft Corporation.
|
12766
13461
|
/**
|
12767
13462
|
* @private
|
@@ -12949,11 +13644,16 @@ const peoplePaneContainerTokens = {
|
|
12949
13644
|
/**
|
12950
13645
|
* @private
|
12951
13646
|
*/
|
12952
|
-
const participantListWrapper = react.mergeStyles({
|
13647
|
+
const participantListWrapper = (theme) => react.mergeStyles({
|
12953
13648
|
width: '20rem',
|
12954
|
-
|
12955
|
-
|
12956
|
-
|
13649
|
+
maxWidth: '50%',
|
13650
|
+
height: '100%',
|
13651
|
+
position: 'absolute',
|
13652
|
+
right: '0',
|
13653
|
+
boxShadow: theme.effects.elevation16,
|
13654
|
+
background: theme.semanticColors.bodyBackground,
|
13655
|
+
// zIndex to set the participant pane above the chat container
|
13656
|
+
zIndex: CHAT_CONTAINER_ZINDEX + 1
|
12957
13657
|
});
|
12958
13658
|
/**
|
12959
13659
|
* @private
|
@@ -12995,13 +13695,25 @@ const participantListMobileStyle = {
|
|
12995
13695
|
}
|
12996
13696
|
}
|
12997
13697
|
};
|
13698
|
+
/**
|
13699
|
+
* @private
|
13700
|
+
*/
|
13701
|
+
const displayNameStyles = {
|
13702
|
+
root: {
|
13703
|
+
padding: '0.5rem',
|
13704
|
+
textOverflow: 'ellipsis',
|
13705
|
+
overflow: 'hidden'
|
13706
|
+
}
|
13707
|
+
};
|
12998
13708
|
|
12999
13709
|
// Copyright (c) Microsoft Corporation.
|
13000
13710
|
/**
|
13001
13711
|
* @private
|
13002
13712
|
*/
|
13003
13713
|
const ParticipantContainer = (props) => {
|
13004
|
-
|
13714
|
+
const theme = react.useTheme();
|
13715
|
+
const participantListWrapperClassName = React.useMemo(() => participantListWrapper(theme), [theme]);
|
13716
|
+
return (React__default['default'].createElement(react.Stack, { className: participantListWrapperClassName },
|
13005
13717
|
React__default['default'].createElement(ParticipantListWithHeading, Object.assign({}, props))));
|
13006
13718
|
};
|
13007
13719
|
/**
|
@@ -13020,7 +13732,9 @@ const ParticipantListWithHeading = (props) => {
|
|
13020
13732
|
return (React__default['default'].createElement(react.Stack, { className: participantListStack },
|
13021
13733
|
React__default['default'].createElement(react.Stack.Item, { styles: subheadingStyleThemed }, title),
|
13022
13734
|
React__default['default'].createElement(react.FocusZone, { className: participantListContainerStyle },
|
13023
|
-
React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(
|
13735
|
+
React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13736
|
+
React__default['default'].createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text) }, { dataProvider: onFetchAvatarPersonaData })),
|
13737
|
+
(options === null || options === void 0 ? void 0 : options.text) && (React__default['default'].createElement(react.Text, { nowrap: true, styles: displayNameStyles }, options === null || options === void 0 ? void 0 : options.text)))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile })))));
|
13024
13738
|
};
|
13025
13739
|
|
13026
13740
|
// Copyright (c) Microsoft Corporation.
|
@@ -13028,11 +13742,11 @@ const ParticipantListWithHeading = (props) => {
|
|
13028
13742
|
* @private
|
13029
13743
|
*/
|
13030
13744
|
const ChatScreenPeoplePane = (props) => {
|
13031
|
-
const { onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;
|
13745
|
+
const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, isMobile } = props;
|
13032
13746
|
const locale = useLocale();
|
13033
13747
|
const chatListHeader = locale.strings.chat.chatListHeader;
|
13034
13748
|
const participantListProps = usePropsFor$2(ParticipantList);
|
13035
|
-
return (React__default['default'].createElement(ParticipantContainer, { participantListProps: participantListProps, title: chatListHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems }));
|
13749
|
+
return (React__default['default'].createElement(ParticipantContainer, { participantListProps: participantListProps, title: chatListHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, isMobile: isMobile }));
|
13036
13750
|
};
|
13037
13751
|
|
13038
13752
|
/**
|
@@ -13152,7 +13866,7 @@ const ChatScreen = (props) => {
|
|
13152
13866
|
onCancelFileUpload: adapter.cancelFileUpload }))),
|
13153
13867
|
formFactor !== 'mobile' && React__default['default'].createElement(AttachFileButton, null)))),
|
13154
13868
|
/* @conditional-compile-remove(chat-composite-participant-pane) */
|
13155
|
-
(options === null || options === void 0 ? void 0 : options.participantPane) === true && (React__default['default'].createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems })))));
|
13869
|
+
(options === null || options === void 0 ? void 0 : options.participantPane) === true && (React__default['default'].createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, isMobile: formFactor === 'mobile' })))));
|
13156
13870
|
};
|
13157
13871
|
|
13158
13872
|
// Copyright (c) Microsoft Corporation.
|
@@ -13427,11 +14141,12 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
|
13427
14141
|
}),
|
13428
14142
|
/* @conditional-compile-remove(PSTN-calls) */
|
13429
14143
|
onToggleHold: () => __awaiter$7(void 0, void 0, void 0, function* () {
|
13430
|
-
|
14144
|
+
var _a;
|
14145
|
+
return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
|
13431
14146
|
}),
|
13432
14147
|
/* @conditional-compile-remove(PSTN-calls) */
|
13433
|
-
onAddParticipant: () => __awaiter$7(void 0, void 0, void 0, function* () {
|
13434
|
-
|
14148
|
+
onAddParticipant: (participant, options) => __awaiter$7(void 0, void 0, void 0, function* () {
|
14149
|
+
return yield adapter.addParticipant(participant, options);
|
13435
14150
|
}),
|
13436
14151
|
onRemoveParticipant: (userId) => __awaiter$7(void 0, void 0, void 0, function* () {
|
13437
14152
|
yield adapter.removeParticipant(userId);
|
@@ -13445,9 +14160,9 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
|
13445
14160
|
onSelectSpeaker: (deviceInfo) => __awaiter$7(void 0, void 0, void 0, function* () {
|
13446
14161
|
yield adapter.setSpeaker(deviceInfo);
|
13447
14162
|
}),
|
13448
|
-
onStartCall: (participants) => {
|
14163
|
+
onStartCall: (participants, options) => {
|
13449
14164
|
const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
|
13450
|
-
return adapter.startCall(rawIds);
|
14165
|
+
return adapter.startCall(rawIds, options);
|
13451
14166
|
},
|
13452
14167
|
onStartScreenShare: () => __awaiter$7(void 0, void 0, void 0, function* () {
|
13453
14168
|
yield adapter.startScreenShare();
|
@@ -13459,12 +14174,12 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
|
13459
14174
|
isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
|
13460
14175
|
}),
|
13461
14176
|
onToggleMicrophone: () => __awaiter$7(void 0, void 0, void 0, function* () {
|
13462
|
-
var
|
13463
|
-
return ((
|
14177
|
+
var _b;
|
14178
|
+
return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();
|
13464
14179
|
}),
|
13465
14180
|
onToggleScreenShare: () => __awaiter$7(void 0, void 0, void 0, function* () {
|
13466
|
-
var
|
13467
|
-
return ((
|
14181
|
+
var _c;
|
14182
|
+
return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn)
|
13468
14183
|
? yield adapter.stopScreenShare()
|
13469
14184
|
: yield adapter.startScreenShare();
|
13470
14185
|
}),
|
@@ -13597,16 +14312,13 @@ const Camera = (props) => {
|
|
13597
14312
|
|
13598
14313
|
// Copyright (c) Microsoft Corporation.
|
13599
14314
|
/** @private */
|
13600
|
-
const
|
14315
|
+
const generateCustomControlBarButtonStrings = (text) => {
|
14316
|
+
return { label: text };
|
14317
|
+
};
|
14318
|
+
/** @private */
|
14319
|
+
const generateCustomControlBarButtons = (onFetchCustomButtonProps, displayType) => {
|
13601
14320
|
const response = {
|
13602
|
-
|
13603
|
-
afterCameraButton: undefined,
|
13604
|
-
afterEndCallButton: undefined,
|
13605
|
-
afterMicrophoneButton: undefined,
|
13606
|
-
afterDevicesButton: undefined,
|
13607
|
-
afterParticipantsButton: undefined,
|
13608
|
-
afterScreenShareButton: undefined,
|
13609
|
-
last: undefined
|
14321
|
+
primary: undefined
|
13610
14322
|
};
|
13611
14323
|
if (!onFetchCustomButtonProps) {
|
13612
14324
|
return response;
|
@@ -13615,10 +14327,19 @@ const generateCustomButtons = (onFetchCustomButtonProps, displayType) => {
|
|
13615
14327
|
for (const key in response) {
|
13616
14328
|
response[key] = (React__default['default'].createElement(React__default['default'].Fragment, null, allButtonProps
|
13617
14329
|
.filter((buttonProps) => buttonProps.placement === key)
|
13618
|
-
.map((buttonProps, i) => (React__default['default'].createElement(ControlBarButton,
|
14330
|
+
.map((buttonProps, i) => (React__default['default'].createElement(ControlBarButton, { onClick: buttonProps.onItemClick, showLabel: buttonProps.showLabel, strings: generateCustomControlBarButtonStrings(buttonProps.text), styles: buttonProps.styles, key: `${buttonProps.placement}_${i}`,
|
14331
|
+
// set default icon if not provided
|
14332
|
+
onRenderIcon: () => { var _a; return React__default['default'].createElement(CallCompositeIcon, { iconName: (_a = buttonProps.iconName) !== null && _a !== void 0 ? _a : 'ControlButtonOptions' }); }, disabled: buttonProps.disabled })))));
|
13619
14333
|
}
|
13620
14334
|
return response;
|
13621
14335
|
};
|
14336
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
14337
|
+
/** @private */
|
14338
|
+
const onFetchCustomButtonPropsTrampoline$1 = (options) => {
|
14339
|
+
let response = undefined;
|
14340
|
+
response = options === null || options === void 0 ? void 0 : options.onFetchCustomButtonProps;
|
14341
|
+
return response;
|
14342
|
+
};
|
13622
14343
|
|
13623
14344
|
// Copyright (c) Microsoft Corporation.
|
13624
14345
|
/** @private */
|
@@ -13750,7 +14471,7 @@ const Participants = (props) => {
|
|
13750
14471
|
var _a;
|
13751
14472
|
return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
|
13752
14473
|
}, [props.increaseFlyoutItemSize, props.styles]);
|
13753
|
-
return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$1(props.option), styles: participantsButtonStyles })));
|
14474
|
+
return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$1(props.option), styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
|
13754
14475
|
};
|
13755
14476
|
const isDisabled$1 = (option) => {
|
13756
14477
|
if (option === undefined || option === true || option === false) {
|
@@ -13779,7 +14500,8 @@ const isDisabled = (option) => {
|
|
13779
14500
|
*/
|
13780
14501
|
const CallControls = (props) => {
|
13781
14502
|
const options = React.useMemo(() => (typeof props.options === 'boolean' ? {} : props.options), [props.options]);
|
13782
|
-
|
14503
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
14504
|
+
const customButtons = React.useMemo(() => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline$1(options), options === null || options === void 0 ? void 0 : options.displayType), [options]);
|
13783
14505
|
// when props.options is false then we want to hide the whole control bar.
|
13784
14506
|
if (props.options === false) {
|
13785
14507
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
@@ -13787,28 +14509,15 @@ const CallControls = (props) => {
|
|
13787
14509
|
return (React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
|
13788
14510
|
React__default['default'].createElement(react.Stack.Item, null,
|
13789
14511
|
React__default['default'].createElement(ControlBar, { layout: "horizontal" },
|
13790
|
-
customButtons['first'],
|
13791
14512
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
|
13792
|
-
customButtons['afterMicrophoneButton'],
|
13793
14513
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
|
13794
|
-
customButtons['afterCameraButton'],
|
13795
14514
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType })),
|
13796
|
-
|
13797
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize })),
|
13798
|
-
customButtons['afterParticipantsButton'],
|
14515
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile })),
|
13799
14516
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize })),
|
13800
|
-
customButtons['
|
13801
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })
|
13802
|
-
customButtons['afterEndCallButton'],
|
13803
|
-
customButtons['last']))));
|
14517
|
+
customButtons['primary'],
|
14518
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
13804
14519
|
};
|
13805
14520
|
const isEnabled$2 = (option) => option !== false;
|
13806
|
-
const onFetchCustomButtonPropsTrampoline = (options) => {
|
13807
|
-
let response = undefined;
|
13808
|
-
/* @conditional-compile-remove(control-bar-button-injection) */
|
13809
|
-
response = options === null || options === void 0 ? void 0 : options.onFetchCustomButtonProps;
|
13810
|
-
return response;
|
13811
|
-
};
|
13812
14521
|
|
13813
14522
|
// Copyright (c) Microsoft Corporation.
|
13814
14523
|
// Licensed under the MIT license.
|
@@ -13951,7 +14660,7 @@ const CallArrangement = (props) => {
|
|
13951
14660
|
!!props.mutedNotificationProps && React__default['default'].createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps))),
|
13952
14661
|
React__default['default'].createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true }, props.onRenderGalleryContent && (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: mediaGalleryContainerStyles }, props.onRenderGalleryContent()))),
|
13953
14662
|
((_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.options) !== false && (React__default['default'].createElement(react.Stack.Item, { className: callControlsContainerStyles },
|
13954
|
-
React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight })))))));
|
14663
|
+
React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView })))))));
|
13955
14664
|
};
|
13956
14665
|
|
13957
14666
|
// Copyright (c) Microsoft Corporation.
|
@@ -13991,13 +14700,12 @@ const MediaGallery = (props) => {
|
|
13991
14700
|
const cameraSwitcherProps = React.useMemo(() => {
|
13992
14701
|
return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
|
13993
14702
|
}, [cameraSwitcherCallback, cameraSwitcherCameras]);
|
13994
|
-
const remoteParticipants = useRemoteParticipantsWithCustomDisplayNames(videoGalleryProps.remoteParticipants, props.onFetchAvatarPersonaData);
|
13995
14703
|
const onRenderAvatar = React.useCallback((userId, options) => (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
13996
14704
|
React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))), [props.onFetchAvatarPersonaData]);
|
13997
14705
|
useLocalVideoStartTrigger(!!props.isVideoStreamOn);
|
13998
14706
|
const VideoGalleryMemoized = React.useMemo(() => {
|
13999
|
-
return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, {
|
14000
|
-
}, [videoGalleryProps, props.isMobile, onRenderAvatar,
|
14707
|
+
return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$3, remoteVideoViewOptions: remoteVideoViewOptions$1, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
|
14708
|
+
}, [videoGalleryProps, props.isMobile, onRenderAvatar, cameraSwitcherProps]);
|
14001
14709
|
return VideoGalleryMemoized;
|
14002
14710
|
};
|
14003
14711
|
/**
|
@@ -14026,25 +14734,6 @@ const useLocalVideoStartTrigger = (isLocalVideoAvailable, shouldTransition) => {
|
|
14026
14734
|
}
|
14027
14735
|
}, [shouldTransition, isButtonStatusSynced, isPreviewCameraOn, isLocalVideoAvailable, mediaGalleryHandlers]);
|
14028
14736
|
};
|
14029
|
-
/**
|
14030
|
-
* Hook to fetch new participant avatar and video gallery displayName information if it is present.
|
14031
|
-
* @param onFetchAvatarPersonaData
|
14032
|
-
*/
|
14033
|
-
const useRemoteParticipantsWithCustomDisplayNames = (remoteParticipants, onFetchAvatarPersonaData) => {
|
14034
|
-
const userIds = React.useMemo(() => {
|
14035
|
-
return remoteParticipants.map((p) => p.userId);
|
14036
|
-
}, [remoteParticipants]);
|
14037
|
-
const avatarPersonaData = useCustomAvatarPersonaData(userIds, onFetchAvatarPersonaData);
|
14038
|
-
const newParticipants = remoteParticipants.map((p, i) => {
|
14039
|
-
var _a;
|
14040
|
-
const newName = (_a = avatarPersonaData[i]) === null || _a === void 0 ? void 0 : _a.text;
|
14041
|
-
if (!newName) {
|
14042
|
-
return p;
|
14043
|
-
}
|
14044
|
-
return Object.assign(Object.assign({}, p), { displayName: newName });
|
14045
|
-
});
|
14046
|
-
return newParticipants;
|
14047
|
-
};
|
14048
14737
|
|
14049
14738
|
// Copyright (c) Microsoft Corporation.
|
14050
14739
|
// Licensed under the MIT license.
|
@@ -14164,11 +14853,11 @@ const NetworkReconnectTile = (props) => {
|
|
14164
14853
|
// This tile may be shown at the beginning of a call.
|
14165
14854
|
// So we need to transition local video to the call.
|
14166
14855
|
useLocalVideoStartTrigger(!!props.localParticipantVideoStream.isAvailable);
|
14167
|
-
return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1) },
|
14856
|
+
return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1), "aria-atomic": true },
|
14168
14857
|
React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(titleContainerStyle) },
|
14169
14858
|
React__default['default'].createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: react.mergeStyles(titleStyle$1) }),
|
14170
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": '
|
14171
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": '
|
14859
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectTitle)),
|
14860
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails)) }, handlers)));
|
14172
14861
|
};
|
14173
14862
|
|
14174
14863
|
// Copyright (c) Microsoft Corporation.
|
@@ -14480,9 +15169,9 @@ const buttonWithIconStyles = {
|
|
14480
15169
|
* @private
|
14481
15170
|
*/
|
14482
15171
|
const StartCallButton = (props) => {
|
14483
|
-
const {
|
15172
|
+
const { rejoinCall } = props;
|
14484
15173
|
const locale = useLocale();
|
14485
|
-
return (React__default['default'].createElement(react.PrimaryButton, { "data-ui-id": "call-composite-start-call-button",
|
15174
|
+
return (React__default['default'].createElement(react.PrimaryButton, Object.assign({}, props, { "data-ui-id": "call-composite-start-call-button", className: react.mergeStyles(buttonStyle, props.className), styles: buttonWithIconStyles, text: rejoinCall ? locale.strings.call.rejoinCallButtonLabel : locale.strings.call.startCallButtonLabel, onRenderIcon: () => React__default['default'].createElement(reactIcons.Video20Filled, { className: videoCameraIconStyle }) })));
|
14486
15175
|
};
|
14487
15176
|
|
14488
15177
|
// Copyright (c) Microsoft Corporation.
|
@@ -14712,7 +15401,7 @@ const ConfigurationPage = (props) => {
|
|
14712
15401
|
callDescription),
|
14713
15402
|
React__default['default'].createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { cameraPermissionGranted: cameraPermissionGranted, microphonePermissionGranted: microphonePermissionGranted })))),
|
14714
15403
|
React__default['default'].createElement(react.Stack, { styles: mobileView ? startCallButtonContainerStyleMobile : startCallButtonContainerStyleDesktop },
|
14715
|
-
React__default['default'].createElement(StartCallButton, { className: mobileView ? startCallButtonStyleMobile : undefined,
|
15404
|
+
React__default['default'].createElement(StartCallButton, { className: mobileView ? startCallButtonStyleMobile : undefined, onClick: startCallHandler, disabled: !microphonePermissionGranted }))))));
|
14716
15405
|
};
|
14717
15406
|
|
14718
15407
|
// Copyright (c) Microsoft Corporation.
|
@@ -14761,13 +15450,13 @@ const moreDetailsStyles = {
|
|
14761
15450
|
*/
|
14762
15451
|
function NoticePage(props) {
|
14763
15452
|
const adapter = useAdapter();
|
14764
|
-
return (React__default['default'].createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId },
|
15453
|
+
return (React__default['default'].createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId, "aria-atomic": true },
|
14765
15454
|
React__default['default'].createElement(react.Stack, { className: react.mergeStyles(containerStyle), tokens: containerItemGap },
|
14766
15455
|
props.iconName && React__default['default'].createElement(CallCompositeIcon, { iconName: props.iconName }),
|
14767
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyles) }, props.title),
|
14768
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles) }, props.moreDetails),
|
15456
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyles), "aria-live": "assertive" }, props.title),
|
15457
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles), "aria-live": "assertive" }, props.moreDetails),
|
14769
15458
|
React__default['default'].createElement(react.Stack, { styles: rejoinCallButtonContainerStyles },
|
14770
|
-
React__default['default'].createElement(StartCallButton, {
|
15459
|
+
React__default['default'].createElement(StartCallButton, { onClick: () => adapter.joinCall(), disabled: false, rejoinCall: true, autoFocus: true })))));
|
14771
15460
|
}
|
14772
15461
|
|
14773
15462
|
// Copyright (c) Microsoft Corporation.
|
@@ -14808,10 +15497,10 @@ const LobbyTile = (props) => {
|
|
14808
15497
|
const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
|
14809
15498
|
const palette = useTheme().palette;
|
14810
15499
|
const handlers = useHandlers();
|
14811
|
-
return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: props.overlayProps ? (React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(overlayContainerStyle) },
|
15500
|
+
return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: props.overlayProps ? (React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(overlayContainerStyle), "aria-atomic": true },
|
14812
15501
|
React__default['default'].createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle(palette, isVideoReady)) }, props.overlayProps.overlayIcon),
|
14813
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live":
|
14814
|
-
props.overlayProps.moreDetails && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle(palette, isVideoReady)) }, props.overlayProps.moreDetails)))) : undefined }, handlers)));
|
15502
|
+
React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": "assertive" }, props.overlayProps.title),
|
15503
|
+
props.overlayProps.moreDetails && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle(palette, isVideoReady)), "aria-live": "assertive" }, props.overlayProps.moreDetails)))) : undefined }, handlers)));
|
14815
15504
|
};
|
14816
15505
|
|
14817
15506
|
// Copyright (c) Microsoft Corporation.
|
@@ -15130,6 +15819,7 @@ class AzureCommunicationCallAdapter {
|
|
15130
15819
|
};
|
15131
15820
|
this.handlers = createDefaultCallingHandlers(callClient, callAgent, deviceManager, undefined);
|
15132
15821
|
this.onClientStateChange = onStateChange;
|
15822
|
+
this.subscribeDeviceManagerEvents();
|
15133
15823
|
this.callClient.onStateChange(onStateChange);
|
15134
15824
|
}
|
15135
15825
|
get call() {
|
@@ -15139,6 +15829,15 @@ class AzureCommunicationCallAdapter {
|
|
15139
15829
|
this.resetDiagnosticsForwarder(newCall);
|
15140
15830
|
this._call = newCall;
|
15141
15831
|
}
|
15832
|
+
// TODO: update this to include the 'selectedCameraChanged' when calling adds it to the device manager
|
15833
|
+
subscribeDeviceManagerEvents() {
|
15834
|
+
this.deviceManager.on('selectedMicrophoneChanged', () => {
|
15835
|
+
this.emitter.emit('selectedMicrophoneChanged');
|
15836
|
+
});
|
15837
|
+
this.deviceManager.on('selectedSpeakerChanged', () => {
|
15838
|
+
this.emitter.emit('selectedSpeakerChanged');
|
15839
|
+
});
|
15840
|
+
}
|
15142
15841
|
bindPublicMethods() {
|
15143
15842
|
this.onStateChange.bind(this);
|
15144
15843
|
this.offStateChange.bind(this);
|
@@ -15166,6 +15865,12 @@ class AzureCommunicationCallAdapter {
|
|
15166
15865
|
this.on.bind(this);
|
15167
15866
|
this.off.bind(this);
|
15168
15867
|
this.processNewCall.bind(this);
|
15868
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15869
|
+
this.addParticipant.bind(this);
|
15870
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15871
|
+
this.holdCall.bind(this);
|
15872
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15873
|
+
this.resumeCall.bind(this);
|
15169
15874
|
}
|
15170
15875
|
dispose() {
|
15171
15876
|
this.resetDiagnosticsForwarder();
|
@@ -15345,8 +16050,7 @@ class AzureCommunicationCallAdapter {
|
|
15345
16050
|
}));
|
15346
16051
|
});
|
15347
16052
|
}
|
15348
|
-
|
15349
|
-
startCall(participants) {
|
16053
|
+
startCall(participants, options) {
|
15350
16054
|
var _a, _b;
|
15351
16055
|
if (_isInCall((_b = (_a = this.getState().call) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : 'None')) {
|
15352
16056
|
throw new Error('You are already in the call.');
|
@@ -15355,9 +16059,18 @@ class AzureCommunicationCallAdapter {
|
|
15355
16059
|
// FIXME: `onStartCall` does not allow a Teams user.
|
15356
16060
|
// Need some way to return an error if a Teams user is provided.
|
15357
16061
|
const backendId = fromFlatCommunicationIdentifier(participant);
|
16062
|
+
if (communicationCommon.isPhoneNumberIdentifier(backendId)) {
|
16063
|
+
if ((options === null || options === void 0 ? void 0 : options.alternateCallerId) === undefined) {
|
16064
|
+
throw new Error('unable to start call, PSTN user present with no alternativeCallerID.');
|
16065
|
+
}
|
16066
|
+
return backendId;
|
16067
|
+
}
|
16068
|
+
else if (communicationCommon.isCommunicationUserIdentifier(backendId)) {
|
16069
|
+
return backendId;
|
16070
|
+
}
|
15358
16071
|
return backendId;
|
15359
16072
|
});
|
15360
|
-
const call = this.handlers.onStartCall(idsToAdd);
|
16073
|
+
const call = this.handlers.onStartCall(idsToAdd, options);
|
15361
16074
|
if (!call) {
|
15362
16075
|
throw new Error('Unable to start call.');
|
15363
16076
|
}
|
@@ -15377,6 +16090,30 @@ class AzureCommunicationCallAdapter {
|
|
15377
16090
|
this.handlers.onRemoveParticipant(userId);
|
15378
16091
|
});
|
15379
16092
|
}
|
16093
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16094
|
+
addParticipant(participant, options) {
|
16095
|
+
return __awaiter$4(this, void 0, void 0, function* () {
|
16096
|
+
this.handlers.onAddParticipant(participant, options);
|
16097
|
+
});
|
16098
|
+
}
|
16099
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16100
|
+
holdCall() {
|
16101
|
+
var _a;
|
16102
|
+
return __awaiter$4(this, void 0, void 0, function* () {
|
16103
|
+
if (((_a = this.call) === null || _a === void 0 ? void 0 : _a.state) !== 'LocalHold') {
|
16104
|
+
this.handlers.onToggleHold();
|
16105
|
+
}
|
16106
|
+
});
|
16107
|
+
}
|
16108
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16109
|
+
resumeCall() {
|
16110
|
+
var _a;
|
16111
|
+
return __awaiter$4(this, void 0, void 0, function* () {
|
16112
|
+
if (((_a = this.call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold') {
|
16113
|
+
this.handlers.onToggleHold();
|
16114
|
+
}
|
16115
|
+
});
|
16116
|
+
}
|
15380
16117
|
getState() {
|
15381
16118
|
return this.context.getState();
|
15382
16119
|
}
|
@@ -15760,6 +16497,71 @@ const MoreButton = (props) => {
|
|
15760
16497
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'optionsButtonLabelKey', showLabel: false, onRenderOnIcon: icon, onRenderOffIcon: icon, onClick: props.onClick, "data-ui-id": 'call-with-chat-composite-more-button' })));
|
15761
16498
|
};
|
15762
16499
|
|
16500
|
+
// Copyright (c) Microsoft Corporation.
|
16501
|
+
/**
|
16502
|
+
* Max number of Custom Buttons in primary and secondary ControlBar
|
16503
|
+
* Does not include existing buttons in the controlBar.
|
16504
|
+
*
|
16505
|
+
* @private
|
16506
|
+
*/
|
16507
|
+
const CUSTOM_BUTTON_OPTIONS = {
|
16508
|
+
MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS: 3,
|
16509
|
+
MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS: 1,
|
16510
|
+
MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS: 2
|
16511
|
+
};
|
16512
|
+
/** @private */
|
16513
|
+
const generateCustomCallWithChatControlBarButton = (onFetchCustomButtonProps, displayType) => {
|
16514
|
+
const response = {
|
16515
|
+
primary: undefined,
|
16516
|
+
secondary: undefined,
|
16517
|
+
overflow: undefined
|
16518
|
+
};
|
16519
|
+
if (!onFetchCustomButtonProps) {
|
16520
|
+
return response;
|
16521
|
+
}
|
16522
|
+
const allButtonProps = onFetchCustomButtonProps.map((f) => f({ displayType }));
|
16523
|
+
for (const key in response) {
|
16524
|
+
response[key] = (React__default['default'].createElement(React__default['default'].Fragment, null, allButtonProps
|
16525
|
+
.filter((buttonProps) => buttonProps.placement === key)
|
16526
|
+
.map((buttonProps, i) => (React__default['default'].createElement(ControlBarButton, { onClick: buttonProps.onItemClick, showLabel: buttonProps.showLabel, strings: generateCustomControlBarButtonStrings(buttonProps.text), styles: buttonProps.styles, key: `${buttonProps.placement}_${i}`, onRenderIcon: () => {
|
16527
|
+
var _a;
|
16528
|
+
return (React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: (_a = buttonProps.iconName) !== null && _a !== void 0 ? _a : 'ControlButtonOptions' }));
|
16529
|
+
}, disabled: buttonProps.disabled })))));
|
16530
|
+
}
|
16531
|
+
return response;
|
16532
|
+
};
|
16533
|
+
/** @private */
|
16534
|
+
const generateCustomCallWithChatDrawerButtons = (onFetchCustomButtonProps, displayType) => {
|
16535
|
+
const response = {
|
16536
|
+
primary: undefined,
|
16537
|
+
secondary: undefined,
|
16538
|
+
overflow: undefined
|
16539
|
+
};
|
16540
|
+
if (!onFetchCustomButtonProps) {
|
16541
|
+
return response;
|
16542
|
+
}
|
16543
|
+
const allButtonProps = onFetchCustomButtonProps.map((f) => f({ displayType }));
|
16544
|
+
for (const key in response) {
|
16545
|
+
response[key] = (React__default['default'].createElement(React__default['default'].Fragment, null, allButtonProps
|
16546
|
+
.filter((buttonProps) => buttonProps.placement === key)
|
16547
|
+
.map((buttonProps, i) => ({
|
16548
|
+
itemKey: `${buttonProps.placement}_${i}`,
|
16549
|
+
text: buttonProps.text,
|
16550
|
+
onItemClick: buttonProps.onItemClick,
|
16551
|
+
iconProps: { iconName: buttonProps.iconName },
|
16552
|
+
disabled: buttonProps.disabled
|
16553
|
+
}))));
|
16554
|
+
}
|
16555
|
+
return response;
|
16556
|
+
};
|
16557
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
16558
|
+
/** @private */
|
16559
|
+
const onFetchCustomButtonPropsTrampoline = (options) => {
|
16560
|
+
let response = undefined;
|
16561
|
+
response = options === null || options === void 0 ? void 0 : options.onFetchCustomButtonProps;
|
16562
|
+
return response;
|
16563
|
+
};
|
16564
|
+
|
15763
16565
|
// Copyright (c) Microsoft Corporation.
|
15764
16566
|
const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) => {
|
15765
16567
|
if (callWithChatControls === false) {
|
@@ -15781,6 +16583,7 @@ const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) =>
|
|
15781
16583
|
* @private
|
15782
16584
|
*/
|
15783
16585
|
const CallWithChatControlBar = (props) => {
|
16586
|
+
var _a, _b;
|
15784
16587
|
const theme = react.useTheme();
|
15785
16588
|
const callWithChatStrings = useCallWithChatCompositeStrings();
|
15786
16589
|
const options = inferCallWithChatControlOptions$1(props.mobileView, props.callControls);
|
@@ -15802,6 +16605,8 @@ const CallWithChatControlBar = (props) => {
|
|
15802
16605
|
const screenShareButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopScreenShareButtonStyles(theme) : undefined), [props.mobileView, theme]);
|
15803
16606
|
const commonButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopCommonButtonStyles(theme) : undefined), [props.mobileView, theme]);
|
15804
16607
|
const endCallButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined), [props.mobileView, theme]);
|
16608
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
16609
|
+
const customButtons = React.useMemo(() => generateCustomCallWithChatControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options === null || options === void 0 ? void 0 : options.displayType : undefined), [options]);
|
15805
16610
|
// when options is false then we want to hide the whole control bar.
|
15806
16611
|
if (options === false) {
|
15807
16612
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
@@ -15816,11 +16621,23 @@ const CallWithChatControlBar = (props) => {
|
|
15816
16621
|
isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
|
15817
16622
|
isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
|
15818
16623
|
props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
|
15819
|
-
isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
|
16624
|
+
isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
|
16625
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
16626
|
+
(_a = customButtons['primary']) === null || _a === void 0 ? void 0 :
|
16627
|
+
_a.props.children.slice(0, props.mobileView
|
16628
|
+
? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
|
16629
|
+
: CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
|
16630
|
+
return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.strings.label, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
|
16631
|
+
}),
|
15820
16632
|
props.mobileView && (React__default['default'].createElement(MoreButton, { "data-ui-id": "call-with-chat-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage })),
|
15821
16633
|
React__default['default'].createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles })))))),
|
15822
|
-
!props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
|
15823
|
-
|
16634
|
+
!props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
|
16635
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
16636
|
+
(_b = customButtons['secondary']) === null || _b === void 0 ? void 0 :
|
16637
|
+
_b.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
|
16638
|
+
return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.key, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
|
16639
|
+
}),
|
16640
|
+
isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage, strings: peopleButtonStrings, styles: commonButtonStyles })),
|
15824
16641
|
isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton))));
|
15825
16642
|
};
|
15826
16643
|
const desktopButtonContainerStyle = {
|
@@ -16017,8 +16834,8 @@ class CallWithChatBackedCallAdapter {
|
|
16017
16834
|
return this.callWithChatAdapter.joinCall(microphoneOn);
|
16018
16835
|
};
|
16019
16836
|
this.leaveCall = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.leaveCall(); });
|
16020
|
-
this.startCall = (participants) => {
|
16021
|
-
return this.callWithChatAdapter.startCall(participants);
|
16837
|
+
this.startCall = (participants, options) => {
|
16838
|
+
return this.callWithChatAdapter.startCall(participants, options);
|
16022
16839
|
};
|
16023
16840
|
this.setCamera = (sourceId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setCamera(sourceId, options); });
|
16024
16841
|
this.setMicrophone = (sourceId) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setMicrophone(sourceId); });
|
@@ -16036,6 +16853,18 @@ class CallWithChatBackedCallAdapter {
|
|
16036
16853
|
this.removeParticipant = (userId) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.removeParticipant(userId); });
|
16037
16854
|
this.createStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.createStreamView(remoteUserId, options); });
|
16038
16855
|
this.disposeStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.disposeStreamView(remoteUserId, options); });
|
16856
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16857
|
+
this.holdCall = () => __awaiter$3(this, void 0, void 0, function* () {
|
16858
|
+
yield this.callWithChatAdapter.holdCall();
|
16859
|
+
});
|
16860
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16861
|
+
this.resumeCall = () => __awaiter$3(this, void 0, void 0, function* () {
|
16862
|
+
yield this.callWithChatAdapter.resumeCall();
|
16863
|
+
});
|
16864
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
16865
|
+
this.addParticipant = (participant, options) => __awaiter$3(this, void 0, void 0, function* () {
|
16866
|
+
yield this.callWithChatAdapter.addParticipant(participant, options);
|
16867
|
+
});
|
16039
16868
|
this.callWithChatAdapter = callWithChatAdapter;
|
16040
16869
|
}
|
16041
16870
|
}
|
@@ -16182,7 +17011,7 @@ const inferCallWithChatControlOptions = (callWithChatControls) => {
|
|
16182
17011
|
};
|
16183
17012
|
/** @private */
|
16184
17013
|
const MoreDrawer = (props) => {
|
16185
|
-
var _a, _b;
|
17014
|
+
var _a, _b, _c, _d, _e;
|
16186
17015
|
const drawerMenuItems = [];
|
16187
17016
|
const { speakers, onSelectSpeaker } = props;
|
16188
17017
|
const onSpeakerItemClick = React.useCallback((_ev, itemKey) => {
|
@@ -16253,6 +17082,20 @@ const MoreDrawer = (props) => {
|
|
16253
17082
|
onItemClick: props.onPeopleButtonClicked
|
16254
17083
|
});
|
16255
17084
|
}
|
17085
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
17086
|
+
const customDrawerButtons = React.useMemo(() => generateCustomCallWithChatDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.displayType : undefined), [drawerSelectionOptions]);
|
17087
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
17088
|
+
(_c = customDrawerButtons['overflow']) === null || _c === void 0 ? void 0 : _c.props.children.forEach((element) => {
|
17089
|
+
drawerMenuItems.push(element);
|
17090
|
+
});
|
17091
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
17092
|
+
(_d = customDrawerButtons['primary']) === null || _d === void 0 ? void 0 : _d.props.children.slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS).forEach((element) => {
|
17093
|
+
drawerMenuItems.push(element);
|
17094
|
+
});
|
17095
|
+
/* @conditional-compile-remove(control-bar-button-injection) */
|
17096
|
+
(_e = customDrawerButtons['secondary']) === null || _e === void 0 ? void 0 : _e.props.children.forEach((element) => {
|
17097
|
+
drawerMenuItems.push(element);
|
17098
|
+
});
|
16256
17099
|
return React__default['default'].createElement(_DrawerMenu, { items: drawerMenuItems, onLightDismiss: props.onLightDismiss });
|
16257
17100
|
};
|
16258
17101
|
const isDeviceSelected = (speaker, selectedSpeaker) => !!selectedSpeaker && speaker.id === selectedSpeaker.id;
|
@@ -16301,7 +17144,7 @@ const SidePaneHeader = (props) => {
|
|
16301
17144
|
const callWithChatStrings = useCallWithChatCompositeStrings();
|
16302
17145
|
return (React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderContainerStyles },
|
16303
17146
|
React__default['default'].createElement(react.Stack.Item, { styles: sidePaneHeaderStyles }, props.headingText),
|
16304
|
-
React__default['default'].createElement(react.CommandBarButton, { ariaLabel: callWithChatStrings.
|
17147
|
+
React__default['default'].createElement(react.CommandBarButton, { ariaLabel: callWithChatStrings.dismissSidePaneButtonLabel, styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose })));
|
16305
17148
|
};
|
16306
17149
|
|
16307
17150
|
// Copyright (c) Microsoft Corporation.
|
@@ -16332,7 +17175,7 @@ const LocalAndRemotePIP = (props) => {
|
|
16332
17175
|
onDisposeLocalStreamView
|
16333
17176
|
]);
|
16334
17177
|
const remoteVideoTileProps = React.useMemo(() => {
|
16335
|
-
var _a, _b;
|
17178
|
+
var _a, _b, _c;
|
16336
17179
|
return !dominantRemoteParticipant
|
16337
17180
|
? undefined
|
16338
17181
|
: {
|
@@ -16343,7 +17186,8 @@ const LocalAndRemotePIP = (props) => {
|
|
16343
17186
|
showLabel: false,
|
16344
17187
|
showMuteIndicator: false,
|
16345
17188
|
isAvailable: (_a = dominantRemoteParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable,
|
16346
|
-
|
17189
|
+
isReceiving: (_b = dominantRemoteParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.isReceiving,
|
17190
|
+
renderElement: (_c = dominantRemoteParticipant.videoStream) === null || _c === void 0 ? void 0 : _c.renderElement,
|
16347
17191
|
userId: dominantRemoteParticipant.userId,
|
16348
17192
|
key: dominantRemoteParticipant.userId
|
16349
17193
|
};
|
@@ -16390,7 +17234,9 @@ const dominantRemoteParticipantSelector = reselect__namespace.createSelector([ge
|
|
16390
17234
|
const dominantRemoteParticipant = remoteParticipants && Object.keys(remoteParticipants).length > 0
|
16391
17235
|
? findDominantRemoteParticipant(remoteParticipants, dominantSpeakers !== null && dominantSpeakers !== void 0 ? dominantSpeakers : [])
|
16392
17236
|
: undefined;
|
16393
|
-
return dominantRemoteParticipant
|
17237
|
+
return dominantRemoteParticipant
|
17238
|
+
? _videoGalleryRemoteParticipantsMemo(updateUserDisplayNamesTrampoline(Object.values(dominantRemoteParticipant)))[0]
|
17239
|
+
: undefined;
|
16394
17240
|
});
|
16395
17241
|
const findDominantRemoteParticipant = (remoteParticipants, dominantSpeakerIds) => {
|
16396
17242
|
let dominantRemoteParticipantId = dominantSpeakerIds[0];
|
@@ -16402,6 +17248,10 @@ const findDominantRemoteParticipant = (remoteParticipants, dominantSpeakerIds) =
|
|
16402
17248
|
}
|
16403
17249
|
return { dominantRemoteParticipantId: remoteParticipants[dominantRemoteParticipantId] };
|
16404
17250
|
};
|
17251
|
+
const updateUserDisplayNamesTrampoline = (remoteParticipants) => {
|
17252
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17253
|
+
return _updateUserDisplayNames(remoteParticipants);
|
17254
|
+
};
|
16405
17255
|
|
16406
17256
|
// Copyright (c) Microsoft Corporation.
|
16407
17257
|
/**
|
@@ -16890,11 +17740,16 @@ const CallWithChatScreen = (props) => {
|
|
16890
17740
|
setShowDrawer(false);
|
16891
17741
|
togglePeople();
|
16892
17742
|
}, [togglePeople]);
|
17743
|
+
const callCompositeContainerCSS = React.useMemo(() => {
|
17744
|
+
return { display: isMobileWithActivePane ? 'none' : 'flex' };
|
17745
|
+
}, [isMobileWithActivePane]);
|
16893
17746
|
return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
|
16894
17747
|
React__default['default'].createElement(react.Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
|
16895
17748
|
React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },
|
16896
|
-
|
16897
|
-
|
17749
|
+
React__default['default'].createElement(react.Stack.Item, { grow: true, styles: callCompositeContainerStyles,
|
17750
|
+
// Perf: Instead of removing the video gallery from DOM, we hide it to prevent re-renders.
|
17751
|
+
style: callCompositeContainerCSS },
|
17752
|
+
React__default['default'].createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: { callControls: false }, adapter: callAdapter, fluentTheme: fluentTheme }))),
|
16898
17753
|
chatProps.adapter && callAdapter && hasJoinedCall && (React__default['default'].createElement(CallWithChatPane, { chatCompositeProps: chatProps, inviteLink: props.joinInvitationURL, onClose: closePane, chatAdapter: chatProps.adapter, callAdapter: callAdapter, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onChatButtonClicked: showShowChatTabHeaderButton(props.callControls) ? selectChat : undefined, onPeopleButtonClicked: showShowPeopleTabHeaderButton(props.callControls) ? selectPeople : undefined, modalLayerHostId: modalLayerHostId, mobileView: mobileView, activePane: activePane,
|
16899
17754
|
/* @conditional-compile-remove(file-sharing) */
|
16900
17755
|
fileSharing: props.fileSharing, rtl: props.rtl }))),
|
@@ -17109,6 +17964,12 @@ class AzureCommunicationCallWithChatAdapter {
|
|
17109
17964
|
this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);
|
17110
17965
|
/* @conditional-compile-remove(file-sharing) */
|
17111
17966
|
this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);
|
17967
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17968
|
+
this.holdCall.bind(this);
|
17969
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17970
|
+
this.resumeCall.bind(this);
|
17971
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17972
|
+
this.addParticipant.bind(this);
|
17112
17973
|
}
|
17113
17974
|
/** Join existing Call. */
|
17114
17975
|
joinCall(microphoneOn) {
|
@@ -17122,8 +17983,8 @@ class AzureCommunicationCallWithChatAdapter {
|
|
17122
17983
|
});
|
17123
17984
|
}
|
17124
17985
|
/** Start a new Call. */
|
17125
|
-
startCall(participants) {
|
17126
|
-
return this.callAdapter.startCall(participants);
|
17986
|
+
startCall(participants, options) {
|
17987
|
+
return this.callAdapter.startCall(participants, options);
|
17127
17988
|
}
|
17128
17989
|
/**
|
17129
17990
|
* Subscribe to state change events.
|
@@ -17315,6 +18176,24 @@ class AzureCommunicationCallWithChatAdapter {
|
|
17315
18176
|
updateFileUploadMetadata(id, metadata) {
|
17316
18177
|
this.chatAdapter.updateFileUploadMetadata(id, metadata);
|
17317
18178
|
}
|
18179
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18180
|
+
holdCall() {
|
18181
|
+
return __awaiter(this, void 0, void 0, function* () {
|
18182
|
+
return yield this.callAdapter.holdCall();
|
18183
|
+
});
|
18184
|
+
}
|
18185
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18186
|
+
resumeCall() {
|
18187
|
+
return __awaiter(this, void 0, void 0, function* () {
|
18188
|
+
return yield this.callAdapter.resumeCall();
|
18189
|
+
});
|
18190
|
+
}
|
18191
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18192
|
+
addParticipant(participant, options) {
|
18193
|
+
return __awaiter(this, void 0, void 0, function* () {
|
18194
|
+
return yield this.callAdapter.addParticipant(participant, options);
|
18195
|
+
});
|
18196
|
+
}
|
17318
18197
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
17319
18198
|
on(event, listener) {
|
17320
18199
|
switch (event) {
|
@@ -17342,6 +18221,12 @@ class AzureCommunicationCallWithChatAdapter {
|
|
17342
18221
|
case 'isSpeakingChanged':
|
17343
18222
|
this.callAdapter.on('isSpeakingChanged', listener);
|
17344
18223
|
break;
|
18224
|
+
case 'selectedMicrophoneChanged':
|
18225
|
+
this.callAdapter.on('selectedMicrophoneChanged', listener);
|
18226
|
+
break;
|
18227
|
+
case 'selectedSpeakerChanged':
|
18228
|
+
this.callAdapter.on('selectedSpeakerChanged', listener);
|
18229
|
+
break;
|
17345
18230
|
case 'messageReceived':
|
17346
18231
|
this.chatAdapter.on('messageReceived', listener);
|
17347
18232
|
break;
|
@@ -17394,6 +18279,12 @@ class AzureCommunicationCallWithChatAdapter {
|
|
17394
18279
|
case 'isSpeakingChanged':
|
17395
18280
|
this.callAdapter.off('isSpeakingChanged', listener);
|
17396
18281
|
break;
|
18282
|
+
case 'selectedMicrophoneChanged':
|
18283
|
+
this.callAdapter.off('selectedMicrophoneChanged', listener);
|
18284
|
+
break;
|
18285
|
+
case 'selectedSpeakerChanged':
|
18286
|
+
this.callAdapter.off('selectedSpeakerChanged', listener);
|
18287
|
+
break;
|
17397
18288
|
case 'messageReceived':
|
17398
18289
|
this.chatAdapter.off('messageReceived', listener);
|
17399
18290
|
break;
|
@@ -17663,10 +18554,12 @@ exports.ControlBarButton = ControlBarButton;
|
|
17663
18554
|
exports.DEFAULT_COMPONENT_ICONS = DEFAULT_COMPONENT_ICONS;
|
17664
18555
|
exports.DEFAULT_COMPOSITE_ICONS = DEFAULT_COMPOSITE_ICONS;
|
17665
18556
|
exports.DevicesButton = DevicesButton;
|
18557
|
+
exports.Dialpad = Dialpad;
|
17666
18558
|
exports.EndCallButton = EndCallButton;
|
17667
18559
|
exports.ErrorBar = ErrorBar;
|
17668
18560
|
exports.FluentThemeProvider = FluentThemeProvider;
|
17669
18561
|
exports.GridLayout = GridLayout;
|
18562
|
+
exports.HoldButton = HoldButton;
|
17670
18563
|
exports.LocalizationProvider = LocalizationProvider$1;
|
17671
18564
|
exports.MessageStatusIndicator = MessageStatusIndicator;
|
17672
18565
|
exports.MessageThread = MessageThread;
|