@azure/communication-react 1.14.1-alpha-202403210013 → 1.14.1-alpha-202403270012
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +45 -39
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BgK9tOAk.js → RichTextSendBoxWrapper-Yty3fOoA.js} +6 -6
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BgK9tOAk.js.map → RichTextSendBoxWrapper-Yty3fOoA.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-B_kqOVlM.js → index-BEomNZbT.js} +1864 -1452
- package/dist/dist-cjs/communication-react/index-BEomNZbT.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +3 -3
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -2
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +0 -1
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js +0 -2
- package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +17 -16
- package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +2 -4
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +0 -2
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +0 -6
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +0 -4
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +1 -9
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +12 -7
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +3 -10
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -2
- 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 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -5
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +2 -1
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +19 -13
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -5
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +0 -1
- package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +0 -5
- package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js +0 -2
- package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js +0 -3
- package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +4 -1
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +11 -14
- package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.js +0 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/AttachmentCard.d.ts +41 -0
- package/dist/dist-esm/react-components/src/components/AttachmentCard.js +108 -0
- package/dist/dist-esm/react-components/src/components/AttachmentCard.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/AttachmentCardGroup.d.ts +16 -0
- package/dist/dist-esm/react-components/src/components/{FileCardGroup.js → AttachmentCardGroup.js} +5 -5
- package/dist/dist-esm/react-components/src/components/AttachmentCardGroup.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/AttachmentDownloadCards.d.ts +49 -0
- package/dist/dist-esm/react-components/src/components/{FileDownloadCards.js → AttachmentDownloadCards.js} +28 -27
- package/dist/dist-esm/react-components/src/components/AttachmentDownloadCards.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/{FileUploadCards.d.ts → AttachmentUploadCards.d.ts} +15 -15
- package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js +24 -0
- package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/CameraButton.js +0 -1
- package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +10 -10
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js +6 -6
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +6 -6
- package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +10 -8
- package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +6 -6
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +10 -8
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +1 -10
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +5 -3
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.d.ts +40 -0
- package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js +77 -0
- package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +4 -5
- package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -3
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -4
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +3 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +21 -6
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +1 -8
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +55 -30
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +12 -12
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBox.d.ts +10 -10
- package/dist/dist-esm/react-components/src/components/SendBox.js +44 -34
- package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +7 -5
- package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.d.ts +15 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js +58 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.d.ts +14 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js +149 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +14 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.d.ts +11 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js +23 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -3
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +5 -6
- package/dist/dist-esm/react-components/src/components/VideoTile.js +3 -51
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +7 -5
- package/dist/dist-esm/react-components/src/components/index.js +3 -3
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +9 -0
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +27 -0
- package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.d.ts +70 -0
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js +259 -0
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +2 -2
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +5 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +5 -4
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +8 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +6 -5
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +16 -13
- package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +5 -3
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/common.d.ts +3 -3
- package/dist/dist-esm/react-components/src/components/utils/common.js +5 -5
- package/dist/dist-esm/react-components/src/components/utils/common.js.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/ar-SA/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +6 -6
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +6 -6
- package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +1 -1
- package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.js +3 -10
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/Attachment.d.ts +151 -0
- package/dist/dist-esm/{react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js → react-components/src/types/Attachment.js} +1 -1
- package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -0
- package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -1
- package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/ReactionTypes.d.ts +5 -0
- package/dist/dist-esm/react-components/src/types/ReactionTypes.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/index.d.ts +1 -0
- package/dist/dist-esm/react-components/src/types/index.js +1 -0
- package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +18 -60
- 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.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +0 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +3 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +14 -65
- 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.js +2 -9
- 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/LocalAndRemotePIP.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +10 -10
- 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/LocalDeviceSettings.js +0 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +25 -13
- 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/Prompt.d.ts +10 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +0 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +1 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +12 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +4 -18
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +2 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +2 -22
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -6
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -6
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +6 -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.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +5 -27
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +0 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +5 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +3 -12
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.d.ts +15 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js +32 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +10 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +28 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +0 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -8
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js +36 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js +0 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +22 -35
- 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 +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +8 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +3 -12
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +10 -11
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +22 -22
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +11 -8
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.d.ts +2 -69
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +4 -4
- 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/file-sharing/index.d.ts +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +5 -10
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +7 -8
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +11 -15
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +14 -3
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +16 -17
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendBox.js +8 -8
- package/dist/dist-esm/react-composites/src/composites/common/SendBox.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts +0 -3
- package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +1 -6
- package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +0 -1
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +1 -4
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +2 -29
- package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js +2 -10
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js +0 -1
- package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js +0 -1
- package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts +5 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +29 -0
- package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/index.js +0 -2
- package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +2 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +2 -0
- package/package.json +1 -1
- package/dist/dist-cjs/communication-react/index-B_kqOVlM.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/FileCard.d.ts +0 -39
- package/dist/dist-esm/react-components/src/components/FileCard.js +0 -92
- package/dist/dist-esm/react-components/src/components/FileCard.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts +0 -16
- package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +0 -114
- package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/FileUploadCards.js +0 -34
- package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.d.ts +0 -5
- package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js +0 -17
- package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.d.ts +0 -10
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallWithChatBackedCallAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallWithChatAdapter } from './CallWithChatAdapter';\nimport { CallAdapter, CallAdapterState } from '../../CallComposite';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\nimport {\n AudioDeviceInfo,\n VideoDeviceInfo,\n Call,\n PermissionConstraints,\n StartCallOptions\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@azure/communication-calling';\n/* @conditional-compile-remove(close-captions) */\nimport { StartCaptionsOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { DtmfTone } from '@azure/communication-calling';\nimport { CallWithChatAdapterState } from '../state/CallWithChatAdapterState';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CommunicationIdentifier, isPhoneNumberIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(one-to-n-calling) */\nimport { CommunicationUserIdentifier } from '@azure/communication-common';\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { JoinCallOptions, StartCallIdentifier } from '../../CallComposite/adapter/CallAdapter';\n/* @conditional-compile-remove(end-of-call-survey) */\nimport { CallSurvey, CallSurveyResponse } from '@azure/communication-calling';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/**\n * Facade around the CallWithChatAdapter to satisfy the call adapter interface.\n *\n * @private\n */\nexport class CallWithChatBackedCallAdapter implements CallAdapter {\n private callWithChatAdapter: CallWithChatAdapter;\n\n // For onStateChange we must convert CallWithChat state to chat state. This involves creating a new handler to be passed into the onStateChange.\n // In order to unsubscribe the handler when offStateChange is called we must have a mapping of the original handler to the newly created handler.\n private eventStore: Map<(state: CallAdapterState) => void, (state: CallWithChatAdapterState) => void> = new Map();\n\n constructor(callWithChatAdapter: CallWithChatAdapter) {\n this.callWithChatAdapter = callWithChatAdapter;\n }\n\n public on = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.on('callError', listener);\n case 'participantsJoined':\n return this.callWithChatAdapter.on('callParticipantsJoined', listener);\n case 'participantsLeft':\n return this.callWithChatAdapter.on('callParticipantsLeft', listener);\n default:\n return this.callWithChatAdapter.on(event, listener);\n }\n };\n public off = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.off('callError', listener);\n case 'participantsJoined':\n return this.callWithChatAdapter.off('callParticipantsJoined', listener);\n case 'participantsLeft':\n return this.callWithChatAdapter.off('callParticipantsLeft', listener);\n default:\n return this.callWithChatAdapter.off(event, listener);\n }\n };\n public onStateChange = (handler: (state: CallAdapterState) => void): void => {\n const convertedHandler = (state: CallWithChatAdapterState): void => {\n handler(callAdapterStateFromCallWithChatAdapterState(state));\n };\n this.callWithChatAdapter.onStateChange(convertedHandler);\n this.eventStore.set(handler, convertedHandler);\n };\n public offStateChange = (handler: (state: CallAdapterState) => void): void => {\n const convertedHandler = this.eventStore.get(handler);\n convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);\n };\n public getState = (): CallAdapterState =>\n callAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());\n public dispose = (): void => this.callWithChatAdapter.dispose();\n public joinCall = (options?: boolean | JoinCallOptions): Call | undefined => {\n if (typeof options === 'boolean') {\n return this.callWithChatAdapter.joinCall(options);\n } else {\n return this.callWithChatAdapter.joinCall(options);\n }\n };\n public leaveCall = async (forEveryone?: boolean): Promise<void> =>\n await this.callWithChatAdapter.leaveCall(forEveryone);\n\n public startCall = (participants: (string | StartCallIdentifier)[], options: StartCallOptions): Call | undefined => {\n if (participants.every((participant: string | StartCallIdentifier) => typeof participant === 'string')) {\n return this.callWithChatAdapter.startCall(participants as string[], options);\n } else {\n return this.callWithChatAdapter.startCall(participants as StartCallIdentifier[], options);\n }\n };\n public setCamera = async (sourceId: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.setCamera(sourceId, options);\n public setMicrophone = async (sourceId: AudioDeviceInfo): Promise<void> =>\n await this.callWithChatAdapter.setMicrophone(sourceId);\n public setSpeaker = async (sourceId: AudioDeviceInfo): Promise<void> =>\n await this.callWithChatAdapter.setSpeaker(sourceId);\n public askDevicePermission = async (constraints: PermissionConstraints): Promise<void> =>\n await this.callWithChatAdapter.askDevicePermission(constraints);\n public queryCameras = async (): Promise<VideoDeviceInfo[]> => await this.callWithChatAdapter.queryCameras();\n public queryMicrophones = async (): Promise<AudioDeviceInfo[]> => await this.callWithChatAdapter.queryMicrophones();\n public querySpeakers = async (): Promise<AudioDeviceInfo[]> => await this.callWithChatAdapter.querySpeakers();\n public startCamera = async (options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.startCamera(options);\n public stopCamera = async (): Promise<void> => await this.callWithChatAdapter.stopCamera();\n public mute = async (): Promise<void> => await this.callWithChatAdapter.mute();\n public unmute = async (): Promise<void> => await this.callWithChatAdapter.unmute();\n public startScreenShare = async (): Promise<void> => await this.callWithChatAdapter.startScreenShare();\n public stopScreenShare = async (): Promise<void> => await this.callWithChatAdapter.stopScreenShare();\n public raiseHand = async (): Promise<void> => await this.callWithChatAdapter.raiseHand();\n public lowerHand = async (): Promise<void> => await this.callWithChatAdapter.lowerHand();\n /* @conditional-compile-remove(reaction) */\n public onReactionClick = async (reaction: Reaction): Promise<void> =>\n await this.callWithChatAdapter.onReactionClick(reaction);\n public removeParticipant = async (\n userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n ): Promise<void> => {\n let participant = userId;\n /* @conditional-compile-remove(PSTN-calls) */\n participant = _toCommunicationIdentifier(userId);\n await this.callWithChatAdapter.removeParticipant(participant);\n };\n public createStreamView = async (\n remoteUserId?: string,\n options?: VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> =>\n await this.callWithChatAdapter.createStreamView(remoteUserId, options);\n public disposeStreamView = async (remoteUserId?: string, options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.disposeStreamView(remoteUserId, options);\n public disposeScreenShareStreamView(remoteUserId: string): Promise<void> {\n return this.callWithChatAdapter.disposeScreenShareStreamView(remoteUserId);\n }\n public disposeRemoteVideoStreamView(remoteUserId: string): Promise<void> {\n return this.callWithChatAdapter.disposeRemoteVideoStreamView(remoteUserId);\n }\n public disposeLocalVideoStreamView(): Promise<void> {\n return this.callWithChatAdapter.disposeLocalVideoStreamView();\n }\n /* @conditional-compile-remove(PSTN-calls) */\n public holdCall = async (): Promise<void> => {\n await this.callWithChatAdapter.holdCall();\n };\n /* @conditional-compile-remove(PSTN-calls) */\n public resumeCall = async (): Promise<void> => {\n await this.callWithChatAdapter.resumeCall();\n };\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: CommunicationUserIdentifier): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(\n participant: PhoneNumberIdentifier | CommunicationUserIdentifier,\n options?: AddPhoneNumberOptions\n ): Promise<void> {\n if (isPhoneNumberIdentifier(participant) && options) {\n return this.callWithChatAdapter.addParticipant(participant as PhoneNumberIdentifier, options);\n } else {\n return this.callWithChatAdapter.addParticipant(participant as CommunicationUserIdentifier);\n }\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n public allowUnsupportedBrowserVersion(): void {\n return this.callWithChatAdapter.allowUnsupportedBrowserVersion();\n }\n\n public sendDtmfTone = async (dtmfTone: DtmfTone): Promise<void> => {\n await this.callWithChatAdapter.sendDtmfTone(dtmfTone);\n };\n\n /* @conditional-compile-remove(close-captions) */\n public async startCaptions(options?: StartCaptionsOptions): Promise<void> {\n this.callWithChatAdapter.startCaptions(options);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async stopCaptions(): Promise<void> {\n this.callWithChatAdapter.stopCaptions();\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setCaptionLanguage(language: string): Promise<void> {\n this.callWithChatAdapter.setCaptionLanguage(language);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setSpokenLanguage(language: string): Promise<void> {\n this.callWithChatAdapter.setSpokenLanguage(language);\n }\n\n /* @conditional-compile-remove(video-background-effects) */\n public async startVideoBackgroundEffect(videoBackgroundEffect: VideoBackgroundEffect): Promise<void> {\n await this.callWithChatAdapter.startVideoBackgroundEffect(videoBackgroundEffect);\n }\n /* @conditional-compile-remove(video-background-effects) */\n public async stopVideoBackgroundEffects(): Promise<void> {\n await this.callWithChatAdapter.stopVideoBackgroundEffects();\n }\n /* @conditional-compile-remove(video-background-effects) */\n public updateBackgroundPickerImages(backgroundImages: VideoBackgroundImage[]): void {\n return this.callWithChatAdapter.updateBackgroundPickerImages(backgroundImages);\n }\n /* @conditional-compile-remove(video-background-effects) */\n public updateSelectedVideoBackgroundEffect(selectedVideoBackground: VideoBackgroundEffect): void {\n return this.callWithChatAdapter.updateSelectedVideoBackgroundEffect(selectedVideoBackground);\n }\n /* @conditional-compile-remove(end-of-call-survey) */\n public async submitSurvey(survey: CallSurvey): Promise<CallSurveyResponse | undefined> {\n return this.callWithChatAdapter.submitSurvey(survey);\n }\n /* @conditional-compile-remove(spotlight) */\n public async startSpotlight(userIds?: string[]): Promise<void> {\n return this.callWithChatAdapter.startSpotlight(userIds);\n }\n\n /* @conditional-compile-remove(spotlight) */\n public async stopSpotlight(userIds?: string[]): Promise<void> {\n return this.callWithChatAdapter.stopSpotlight(userIds);\n }\n\n /* @conditional-compile-remove(spotlight) */\n public async stopAllSpotlight(): Promise<void> {\n return this.callWithChatAdapter.stopAllSpotlight();\n }\n}\n\nfunction callAdapterStateFromCallWithChatAdapterState(\n callWithChatAdapterState: CallWithChatAdapterState\n): CallAdapterState {\n return {\n isLocalPreviewMicrophoneEnabled: callWithChatAdapterState.isLocalPreviewMicrophoneEnabled,\n page: callWithChatAdapterState.page,\n userId: callWithChatAdapterState.userId,\n displayName: callWithChatAdapterState.displayName,\n call: callWithChatAdapterState.call,\n devices: callWithChatAdapterState.devices,\n isTeamsCall: callWithChatAdapterState.isTeamsCall,\n /* @conditional-compile-remove(rooms) */\n isRoomsCall: false,\n latestErrors: callWithChatAdapterState.latestCallErrors,\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId: callWithChatAdapterState.alternateCallerId,\n /* @conditional-compile-remove(unsupported-browser) */\n environmentInfo: callWithChatAdapterState.environmentInfo,\n /* @conditional-compile-remove(video-background-effects) */\n videoBackgroundImages: callWithChatAdapterState.videoBackgroundImages,\n /* @conditional-compile-remove(video-background-effects) */\n onResolveVideoEffectDependency: callWithChatAdapterState.onResolveVideoEffectDependency,\n /* @conditional-compile-remove(video-background-effects) */\n selectedVideoBackgroundEffect: callWithChatAdapterState.selectedVideoBackgroundEffect,\n /* @conditional-compile-remove(reaction) */\n reactions: callWithChatAdapterState.reactions\n };\n}\n"]}
|
1
|
+
{"version":3,"file":"CallWithChatBackedCallAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAsBlC,6CAA6C;AAC7C,OAAO,EAA2B,uBAAuB,EAAyB,MAAM,6BAA6B,CAAC;AAGtH,OAAO,EAAE,0BAA0B,EAAE,yCAAgC;AAKrE,uDAAuD;AACvD,sEAAsE;AAEtE;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAOxC,YAAY,mBAAwC;QAJpD,gJAAgJ;QAChJ,iJAAiJ;QACzI,eAAU,GAAsF,IAAI,GAAG,EAAE,CAAC;QAM3G,OAAE,GAAG,CAAC,KAAU,EAAE,QAAa,EAAQ,EAAE;YAC9C,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC5D,KAAK,oBAAoB;oBACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;gBACzE,KAAK,kBAAkB;oBACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;gBACvE;oBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC;QACK,QAAG,GAAG,CAAC,KAAU,EAAE,QAAa,EAAQ,EAAE;YAC/C,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC7D,KAAK,oBAAoB;oBACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;gBAC1E,KAAK,kBAAkB;oBACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;gBACxE;oBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC;QACK,kBAAa,GAAG,CAAC,OAA0C,EAAQ,EAAE;YAC1E,MAAM,gBAAgB,GAAG,CAAC,KAA+B,EAAQ,EAAE;gBACjE,OAAO,CAAC,4CAA4C,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACjD,CAAC,CAAC;QACK,mBAAc,GAAG,CAAC,OAA0C,EAAQ,EAAE;YAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtD,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAChF,CAAC,CAAC;QACK,aAAQ,GAAG,GAAqB,EAAE,CACvC,4CAA4C,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,YAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACzD,aAAQ,GAAG,CAAC,OAAmC,EAAoB,EAAE;YAC1E,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QACK,cAAS,GAAG,CAAO,WAAqB,EAAiB,EAAE,gDAChE,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,GAAA,CAAC;QAEjD,cAAS,GAAG,CAAC,YAA8C,EAAE,OAAyB,EAAoB,EAAE;YACjH,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,WAAyC,EAAE,EAAE,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACvG,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAwB,EAAE,OAAO,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAqC,EAAE,OAAO,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC,CAAC;QACK,cAAS,GAAG,CAAO,QAAyB,EAAE,OAA4B,EAAiB,EAAE,gDAClG,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA,GAAA,CAAC;QACvD,kBAAa,GAAG,CAAO,QAAyB,EAAiB,EAAE,gDACxE,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA,GAAA,CAAC;QAClD,eAAU,GAAG,CAAO,QAAyB,EAAiB,EAAE,gDACrE,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,GAAA,CAAC;QAC/C,wBAAmB,GAAG,CAAO,WAAkC,EAAiB,EAAE,gDACvF,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA,GAAA,CAAC;QAC3D,iBAAY,GAAG,GAAqC,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAA,GAAA,CAAC;QACrG,qBAAgB,GAAG,GAAqC,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAA,GAAA,CAAC;QAC7G,kBAAa,GAAG,GAAqC,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAA,GAAA,CAAC;QACvG,gBAAW,GAAG,CAAO,OAA4B,EAAiB,EAAE,gDACzE,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA,GAAA,CAAC;QAC/C,eAAU,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAA,GAAA,CAAC;QACpF,SAAI,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAA,GAAA,CAAC;QACxE,WAAM,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAA,GAAA,CAAC;QAC5E,qBAAgB,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAA,GAAA,CAAC;QAChG,oBAAe,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA,GAAA,CAAC;QAC9F,cAAS,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA,GAAA,CAAC;QAClF,cAAS,GAAG,GAAwB,EAAE,gDAAC,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA,GAAA,CAAC;QACzF,2CAA2C;QACpC,oBAAe,GAAG,CAAO,QAAkB,EAAiB,EAAE,gDACnE,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA,GAAA,CAAC;QACpD,sBAAiB,GAAG,CACzB,MAAsF,EACvE,EAAE;YACjB,IAAI,WAAW,GAAG,MAAM,CAAC;YACzB,6CAA6C;YAC7C,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC,CAAA,CAAC;QACK,qBAAgB,GAAG,CACxB,YAAqB,EACrB,OAA4B,EACiB,EAAE,gDAC/C,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA,GAAA,CAAC;QAClE,sBAAiB,GAAG,CAAO,YAAqB,EAAE,OAA4B,EAAiB,EAAE,gDACtG,OAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA,GAAA,CAAC;QAU1E,6CAA6C;QACtC,aAAQ,GAAG,GAAwB,EAAE;YAC1C,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC,CAAA,CAAC;QACF,6CAA6C;QACtC,eAAU,GAAG,GAAwB,EAAE;YAC5C,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;QAC9C,CAAC,CAAA,CAAC;QAsBK,iBAAY,GAAG,CAAO,QAAkB,EAAiB,EAAE;YAChE,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAA,CAAC;QAxIA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IA+FM,4BAA4B,CAAC,YAAoB;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IACM,4BAA4B,CAAC,YAAoB;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IACM,2BAA2B;QAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;IAChE,CAAC;IAaD,6CAA6C;IAChC,cAAc,CACzB,WAAgE,EAChE,OAA+B;;YAE/B,IAAI,uBAAuB,CAAC,WAAW,CAAC,IAAI,OAAO,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAoC,EAAE,OAAO,CAAC,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAA0C,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;KAAA;IAED,sDAAsD;IAC/C,8BAA8B;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,EAAE,CAAC;IACnE,CAAC;IAMD,iDAAiD;IACpC,aAAa,CAAC,OAA8B;;YACvD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;KAAA;IAED,iDAAiD;IACpC,YAAY;;YACvB,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;QAC1C,CAAC;KAAA;IAED,iDAAiD;IACpC,kBAAkB,CAAC,QAAgB;;YAC9C,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;KAAA;IAED,iDAAiD;IACpC,iBAAiB,CAAC,QAAgB;;YAC7C,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;KAAA;IAEY,0BAA0B,CAAC,qBAA4C;;YAClF,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,CAAC;QACnF,CAAC;KAAA;IAEY,0BAA0B;;YACrC,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,CAAC;QAC9D,CAAC;KAAA;IAEM,4BAA4B,CAAC,gBAAwC;QAC1E,OAAO,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;IACjF,CAAC;IAEM,mCAAmC,CAAC,uBAA8C;QACvF,OAAO,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,uBAAuB,CAAC,CAAC;IAC/F,CAAC;IACD,qDAAqD;IACxC,YAAY,CAAC,MAAkB;;YAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;KAAA;IACD,4CAA4C;IAC/B,cAAc,CAAC,OAAkB;;YAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KAAA;IAED,4CAA4C;IAC/B,aAAa,CAAC,OAAkB;;YAC3C,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;IAED,4CAA4C;IAC/B,gBAAgB;;YAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC;KAAA;CACF;AAED,SAAS,4CAA4C,CACnD,wBAAkD;IAElD,OAAO;QACL,+BAA+B,EAAE,wBAAwB,CAAC,+BAA+B;QACzF,IAAI,EAAE,wBAAwB,CAAC,IAAI;QACnC,MAAM,EAAE,wBAAwB,CAAC,MAAM;QACvC,WAAW,EAAE,wBAAwB,CAAC,WAAW;QACjD,IAAI,EAAE,wBAAwB,CAAC,IAAI;QACnC,OAAO,EAAE,wBAAwB,CAAC,OAAO;QACzC,WAAW,EAAE,wBAAwB,CAAC,WAAW;QACjD,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,wBAAwB,CAAC,gBAAgB;QACvD,6CAA6C;QAC7C,iBAAiB,EAAE,wBAAwB,CAAC,iBAAiB;QAC7D,sDAAsD;QACtD,eAAe,EAAE,wBAAwB,CAAC,eAAe;QAEzD,qBAAqB,EAAE,wBAAwB,CAAC,qBAAqB;QAErE,8BAA8B,EAAE,wBAAwB,CAAC,8BAA8B;QAEvF,6BAA6B,EAAE,wBAAwB,CAAC,6BAA6B;QACrF,2CAA2C;QAC3C,SAAS,EAAE,wBAAwB,CAAC,SAAS;KAC9C,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallWithChatAdapter } from './CallWithChatAdapter';\nimport { CallAdapter, CallAdapterState } from '../../CallComposite';\n\nimport { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\nimport {\n AudioDeviceInfo,\n VideoDeviceInfo,\n Call,\n PermissionConstraints,\n StartCallOptions\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@azure/communication-calling';\n/* @conditional-compile-remove(close-captions) */\nimport { StartCaptionsOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { DtmfTone } from '@azure/communication-calling';\nimport { CallWithChatAdapterState } from '../state/CallWithChatAdapterState';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CommunicationIdentifier, isPhoneNumberIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(one-to-n-calling) */\nimport { CommunicationUserIdentifier } from '@azure/communication-common';\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { JoinCallOptions, StartCallIdentifier } from '../../CallComposite/adapter/CallAdapter';\n/* @conditional-compile-remove(end-of-call-survey) */\nimport { CallSurvey, CallSurveyResponse } from '@azure/communication-calling';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/**\n * Facade around the CallWithChatAdapter to satisfy the call adapter interface.\n *\n * @private\n */\nexport class CallWithChatBackedCallAdapter implements CallAdapter {\n private callWithChatAdapter: CallWithChatAdapter;\n\n // For onStateChange we must convert CallWithChat state to chat state. This involves creating a new handler to be passed into the onStateChange.\n // In order to unsubscribe the handler when offStateChange is called we must have a mapping of the original handler to the newly created handler.\n private eventStore: Map<(state: CallAdapterState) => void, (state: CallWithChatAdapterState) => void> = new Map();\n\n constructor(callWithChatAdapter: CallWithChatAdapter) {\n this.callWithChatAdapter = callWithChatAdapter;\n }\n\n public on = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.on('callError', listener);\n case 'participantsJoined':\n return this.callWithChatAdapter.on('callParticipantsJoined', listener);\n case 'participantsLeft':\n return this.callWithChatAdapter.on('callParticipantsLeft', listener);\n default:\n return this.callWithChatAdapter.on(event, listener);\n }\n };\n public off = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.off('callError', listener);\n case 'participantsJoined':\n return this.callWithChatAdapter.off('callParticipantsJoined', listener);\n case 'participantsLeft':\n return this.callWithChatAdapter.off('callParticipantsLeft', listener);\n default:\n return this.callWithChatAdapter.off(event, listener);\n }\n };\n public onStateChange = (handler: (state: CallAdapterState) => void): void => {\n const convertedHandler = (state: CallWithChatAdapterState): void => {\n handler(callAdapterStateFromCallWithChatAdapterState(state));\n };\n this.callWithChatAdapter.onStateChange(convertedHandler);\n this.eventStore.set(handler, convertedHandler);\n };\n public offStateChange = (handler: (state: CallAdapterState) => void): void => {\n const convertedHandler = this.eventStore.get(handler);\n convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);\n };\n public getState = (): CallAdapterState =>\n callAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());\n public dispose = (): void => this.callWithChatAdapter.dispose();\n public joinCall = (options?: boolean | JoinCallOptions): Call | undefined => {\n if (typeof options === 'boolean') {\n return this.callWithChatAdapter.joinCall(options);\n } else {\n return this.callWithChatAdapter.joinCall(options);\n }\n };\n public leaveCall = async (forEveryone?: boolean): Promise<void> =>\n await this.callWithChatAdapter.leaveCall(forEveryone);\n\n public startCall = (participants: (string | StartCallIdentifier)[], options: StartCallOptions): Call | undefined => {\n if (participants.every((participant: string | StartCallIdentifier) => typeof participant === 'string')) {\n return this.callWithChatAdapter.startCall(participants as string[], options);\n } else {\n return this.callWithChatAdapter.startCall(participants as StartCallIdentifier[], options);\n }\n };\n public setCamera = async (sourceId: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.setCamera(sourceId, options);\n public setMicrophone = async (sourceId: AudioDeviceInfo): Promise<void> =>\n await this.callWithChatAdapter.setMicrophone(sourceId);\n public setSpeaker = async (sourceId: AudioDeviceInfo): Promise<void> =>\n await this.callWithChatAdapter.setSpeaker(sourceId);\n public askDevicePermission = async (constraints: PermissionConstraints): Promise<void> =>\n await this.callWithChatAdapter.askDevicePermission(constraints);\n public queryCameras = async (): Promise<VideoDeviceInfo[]> => await this.callWithChatAdapter.queryCameras();\n public queryMicrophones = async (): Promise<AudioDeviceInfo[]> => await this.callWithChatAdapter.queryMicrophones();\n public querySpeakers = async (): Promise<AudioDeviceInfo[]> => await this.callWithChatAdapter.querySpeakers();\n public startCamera = async (options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.startCamera(options);\n public stopCamera = async (): Promise<void> => await this.callWithChatAdapter.stopCamera();\n public mute = async (): Promise<void> => await this.callWithChatAdapter.mute();\n public unmute = async (): Promise<void> => await this.callWithChatAdapter.unmute();\n public startScreenShare = async (): Promise<void> => await this.callWithChatAdapter.startScreenShare();\n public stopScreenShare = async (): Promise<void> => await this.callWithChatAdapter.stopScreenShare();\n public raiseHand = async (): Promise<void> => await this.callWithChatAdapter.raiseHand();\n public lowerHand = async (): Promise<void> => await this.callWithChatAdapter.lowerHand();\n /* @conditional-compile-remove(reaction) */\n public onReactionClick = async (reaction: Reaction): Promise<void> =>\n await this.callWithChatAdapter.onReactionClick(reaction);\n public removeParticipant = async (\n userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n ): Promise<void> => {\n let participant = userId;\n /* @conditional-compile-remove(PSTN-calls) */\n participant = _toCommunicationIdentifier(userId);\n await this.callWithChatAdapter.removeParticipant(participant);\n };\n public createStreamView = async (\n remoteUserId?: string,\n options?: VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> =>\n await this.callWithChatAdapter.createStreamView(remoteUserId, options);\n public disposeStreamView = async (remoteUserId?: string, options?: VideoStreamOptions): Promise<void> =>\n await this.callWithChatAdapter.disposeStreamView(remoteUserId, options);\n public disposeScreenShareStreamView(remoteUserId: string): Promise<void> {\n return this.callWithChatAdapter.disposeScreenShareStreamView(remoteUserId);\n }\n public disposeRemoteVideoStreamView(remoteUserId: string): Promise<void> {\n return this.callWithChatAdapter.disposeRemoteVideoStreamView(remoteUserId);\n }\n public disposeLocalVideoStreamView(): Promise<void> {\n return this.callWithChatAdapter.disposeLocalVideoStreamView();\n }\n /* @conditional-compile-remove(PSTN-calls) */\n public holdCall = async (): Promise<void> => {\n await this.callWithChatAdapter.holdCall();\n };\n /* @conditional-compile-remove(PSTN-calls) */\n public resumeCall = async (): Promise<void> => {\n await this.callWithChatAdapter.resumeCall();\n };\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(participant: CommunicationUserIdentifier): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n public async addParticipant(\n participant: PhoneNumberIdentifier | CommunicationUserIdentifier,\n options?: AddPhoneNumberOptions\n ): Promise<void> {\n if (isPhoneNumberIdentifier(participant) && options) {\n return this.callWithChatAdapter.addParticipant(participant as PhoneNumberIdentifier, options);\n } else {\n return this.callWithChatAdapter.addParticipant(participant as CommunicationUserIdentifier);\n }\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n public allowUnsupportedBrowserVersion(): void {\n return this.callWithChatAdapter.allowUnsupportedBrowserVersion();\n }\n\n public sendDtmfTone = async (dtmfTone: DtmfTone): Promise<void> => {\n await this.callWithChatAdapter.sendDtmfTone(dtmfTone);\n };\n\n /* @conditional-compile-remove(close-captions) */\n public async startCaptions(options?: StartCaptionsOptions): Promise<void> {\n this.callWithChatAdapter.startCaptions(options);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async stopCaptions(): Promise<void> {\n this.callWithChatAdapter.stopCaptions();\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setCaptionLanguage(language: string): Promise<void> {\n this.callWithChatAdapter.setCaptionLanguage(language);\n }\n\n /* @conditional-compile-remove(close-captions) */\n public async setSpokenLanguage(language: string): Promise<void> {\n this.callWithChatAdapter.setSpokenLanguage(language);\n }\n\n public async startVideoBackgroundEffect(videoBackgroundEffect: VideoBackgroundEffect): Promise<void> {\n await this.callWithChatAdapter.startVideoBackgroundEffect(videoBackgroundEffect);\n }\n\n public async stopVideoBackgroundEffects(): Promise<void> {\n await this.callWithChatAdapter.stopVideoBackgroundEffects();\n }\n\n public updateBackgroundPickerImages(backgroundImages: VideoBackgroundImage[]): void {\n return this.callWithChatAdapter.updateBackgroundPickerImages(backgroundImages);\n }\n\n public updateSelectedVideoBackgroundEffect(selectedVideoBackground: VideoBackgroundEffect): void {\n return this.callWithChatAdapter.updateSelectedVideoBackgroundEffect(selectedVideoBackground);\n }\n /* @conditional-compile-remove(end-of-call-survey) */\n public async submitSurvey(survey: CallSurvey): Promise<CallSurveyResponse | undefined> {\n return this.callWithChatAdapter.submitSurvey(survey);\n }\n /* @conditional-compile-remove(spotlight) */\n public async startSpotlight(userIds?: string[]): Promise<void> {\n return this.callWithChatAdapter.startSpotlight(userIds);\n }\n\n /* @conditional-compile-remove(spotlight) */\n public async stopSpotlight(userIds?: string[]): Promise<void> {\n return this.callWithChatAdapter.stopSpotlight(userIds);\n }\n\n /* @conditional-compile-remove(spotlight) */\n public async stopAllSpotlight(): Promise<void> {\n return this.callWithChatAdapter.stopAllSpotlight();\n }\n}\n\nfunction callAdapterStateFromCallWithChatAdapterState(\n callWithChatAdapterState: CallWithChatAdapterState\n): CallAdapterState {\n return {\n isLocalPreviewMicrophoneEnabled: callWithChatAdapterState.isLocalPreviewMicrophoneEnabled,\n page: callWithChatAdapterState.page,\n userId: callWithChatAdapterState.userId,\n displayName: callWithChatAdapterState.displayName,\n call: callWithChatAdapterState.call,\n devices: callWithChatAdapterState.devices,\n isTeamsCall: callWithChatAdapterState.isTeamsCall,\n isRoomsCall: false,\n latestErrors: callWithChatAdapterState.latestCallErrors,\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId: callWithChatAdapterState.alternateCallerId,\n /* @conditional-compile-remove(unsupported-browser) */\n environmentInfo: callWithChatAdapterState.environmentInfo,\n\n videoBackgroundImages: callWithChatAdapterState.videoBackgroundImages,\n\n onResolveVideoEffectDependency: callWithChatAdapterState.onResolveVideoEffectDependency,\n\n selectedVideoBackgroundEffect: callWithChatAdapterState.selectedVideoBackgroundEffect,\n /* @conditional-compile-remove(reaction) */\n reactions: callWithChatAdapterState.reactions\n };\n}\n"]}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { CallWithChatAdapter } from './CallWithChatAdapter';
|
2
2
|
import { ChatAdapter, ChatAdapterState } from '../../ChatComposite';
|
3
3
|
import { ResourceDetails } from '../../ChatComposite';
|
4
|
-
import { FileUploadManager } from
|
4
|
+
import { FileUploadManager } from "../../../../../react-components/src";
|
5
5
|
import { AttachmentMetadata } from "../../../../../react-components/src";
|
6
6
|
import { ErrorBarStrings } from "../../../../../react-components/src";
|
7
7
|
/**
|
@@ -73,31 +73,31 @@ export class CallWithChatBackedChatAdapter {
|
|
73
73
|
this.setTopic = (topicName) => __awaiter(this, void 0, void 0, function* () {
|
74
74
|
throw new Error(`Chat Topics are not supported in CallWithChatComposite.`);
|
75
75
|
});
|
76
|
-
/* @conditional-compile-remove(
|
76
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
77
77
|
this.registerActiveFileUploads = (files) => {
|
78
78
|
return this.callWithChatAdapter.registerActiveFileUploads(files);
|
79
79
|
};
|
80
|
-
/* @conditional-compile-remove(
|
80
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
81
81
|
this.registerCompletedFileUploads = (metadata) => {
|
82
82
|
return this.callWithChatAdapter.registerCompletedFileUploads(metadata);
|
83
83
|
};
|
84
|
-
/* @conditional-compile-remove(
|
84
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
85
85
|
this.clearFileUploads = () => {
|
86
86
|
this.callWithChatAdapter.clearFileUploads();
|
87
87
|
};
|
88
|
-
/* @conditional-compile-remove(
|
88
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
89
89
|
this.cancelFileUpload = (id) => {
|
90
90
|
this.callWithChatAdapter.cancelFileUpload(id);
|
91
91
|
};
|
92
|
-
/* @conditional-compile-remove(
|
92
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
93
93
|
this.updateFileUploadProgress = (id, progress) => {
|
94
94
|
this.callWithChatAdapter.updateFileUploadProgress(id, progress);
|
95
95
|
};
|
96
|
-
/* @conditional-compile-remove(
|
96
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
97
97
|
this.updateFileUploadErrorMessage = (id, errorMessage) => {
|
98
98
|
this.callWithChatAdapter.updateFileUploadErrorMessage(id, errorMessage);
|
99
99
|
};
|
100
|
-
/* @conditional-compile-remove(
|
100
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
101
101
|
this.updateFileUploadMetadata = (id, metadata) => {
|
102
102
|
this.callWithChatAdapter.updateFileUploadMetadata(id, metadata);
|
103
103
|
};
|
@@ -121,7 +121,7 @@ function chatAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState)
|
|
121
121
|
displayName: callWithChatAdapterState.displayName || '',
|
122
122
|
thread: callWithChatAdapterState.chat,
|
123
123
|
latestErrors: callWithChatAdapterState.latestChatErrors,
|
124
|
-
/* @conditional-compile-remove(
|
124
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
125
125
|
fileUploads: callWithChatAdapterState.fileUploads
|
126
126
|
};
|
127
127
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallWithChatBackedChatAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallWithChatAdapter } from './CallWithChatAdapter';\nimport { ChatAdapter, ChatAdapterState } from '../../ChatComposite';\nimport { ResourceDetails } from '../../ChatComposite';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadManager } from '../../ChatComposite';\n/* @conditional-compile-remove(file-sharing) */\nimport { AttachmentMetadata } from '@internal/react-components';\nimport { ErrorBarStrings } from '@internal/react-components';\nimport { CallWithChatAdapterState } from '../state/CallWithChatAdapterState';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/**\n * Facade around the CallWithChatAdapter to satisfy the chat adapter interface.\n *\n * @private\n */\nexport class CallWithChatBackedChatAdapter implements ChatAdapter {\n private callWithChatAdapter: CallWithChatAdapter;\n\n // For onStateChange we must convert CallWithChat state to chat state. This involves creating a new handler to be passed into the onStateChange.\n // In order to unsubscribe the handler when offStateChange is called we must have a mapping of the original handler to the newly created handler.\n private eventStore: Map<(state: ChatAdapterState) => void, (state: CallWithChatAdapterState) => void> = new Map();\n\n constructor(callWithChatAdapter: CallWithChatAdapter) {\n this.callWithChatAdapter = callWithChatAdapter;\n }\n\n public fetchInitialData = async (): Promise<void> => await this.callWithChatAdapter.fetchInitialData();\n public sendMessage = async (content: string): Promise<void> => await this.callWithChatAdapter.sendMessage(content);\n public sendReadReceipt = async (chatMessageId: string): Promise<void> =>\n await this.callWithChatAdapter.sendReadReceipt(chatMessageId);\n public sendTypingIndicator = async (): Promise<void> => await this.callWithChatAdapter.sendTypingIndicator();\n public removeParticipant = async (userId: string): Promise<void> =>\n await this.callWithChatAdapter.removeParticipant(userId);\n public loadPreviousChatMessages = async (messagesToLoad: number): Promise<boolean> =>\n await this.callWithChatAdapter.loadPreviousChatMessages(messagesToLoad);\n public dispose = (): void => this.callWithChatAdapter.dispose();\n\n public onStateChange = (handler: (state: ChatAdapterState) => void): void => {\n const convertedHandler = (state: CallWithChatAdapterState): void => {\n handler(chatAdapterStateFromCallWithChatAdapterState(state));\n };\n this.callWithChatAdapter.onStateChange(convertedHandler);\n this.eventStore.set(handler, convertedHandler);\n };\n public offStateChange = (handler: (state: ChatAdapterState) => void): void => {\n const convertedHandler = this.eventStore.get(handler);\n convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);\n };\n public getState = (): ChatAdapterState =>\n chatAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());\n\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n public on = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.on('chatError', listener);\n case 'participantsAdded':\n return this.callWithChatAdapter.on('chatParticipantsAdded', listener);\n case 'participantsRemoved':\n return this.callWithChatAdapter.on('chatParticipantsRemoved', listener);\n default:\n return this.callWithChatAdapter.on(event, listener);\n }\n };\n public off = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.off('chatError', listener);\n case 'participantsAdded':\n return this.callWithChatAdapter.off('chatParticipantsAdded', listener);\n case 'participantsRemoved':\n return this.callWithChatAdapter.off('chatParticipantsRemoved', listener);\n default:\n return this.callWithChatAdapter.off(event, listener);\n }\n };\n public updateMessage = async (messageId: string, content: string, metadata?: Record<string, string>): Promise<void> =>\n await this.callWithChatAdapter.updateMessage(messageId, content, metadata);\n public deleteMessage = async (messageId: string): Promise<void> =>\n await this.callWithChatAdapter.deleteMessage(messageId);\n\n public clearErrors = (errorTypes: (keyof ErrorBarStrings)[]): void => {\n throw new Error(`Method not supported in CallWithChatComposite.`);\n };\n\n public setTopic = async (topicName: string): Promise<void> => {\n throw new Error(`Chat Topics are not supported in CallWithChatComposite.`);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public registerActiveFileUploads = (files: File[]): FileUploadManager[] => {\n return this.callWithChatAdapter.registerActiveFileUploads(files);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public registerCompletedFileUploads = (metadata: AttachmentMetadata[]): FileUploadManager[] => {\n return this.callWithChatAdapter.registerCompletedFileUploads(metadata);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public clearFileUploads = (): void => {\n this.callWithChatAdapter.clearFileUploads();\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public cancelFileUpload = (id: string): void => {\n this.callWithChatAdapter.cancelFileUpload(id);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public updateFileUploadProgress = (id: string, progress: number): void => {\n this.callWithChatAdapter.updateFileUploadProgress(id, progress);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public updateFileUploadErrorMessage = (id: string, errorMessage: string): void => {\n this.callWithChatAdapter.updateFileUploadErrorMessage(id, errorMessage);\n };\n\n /* @conditional-compile-remove(file-sharing) */\n public updateFileUploadMetadata = (id: string, metadata: AttachmentMetadata): void => {\n this.callWithChatAdapter.updateFileUploadMetadata(id, metadata);\n };\n\n public async downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void> {\n this.callWithChatAdapter.downloadResourceToCache(resourceDetails);\n }\n public removeResourceFromCache(resourceDetails: ResourceDetails): void {\n this.callWithChatAdapter.removeResourceFromCache(resourceDetails);\n }\n}\n\nfunction chatAdapterStateFromCallWithChatAdapterState(\n callWithChatAdapterState: CallWithChatAdapterState\n): ChatAdapterState {\n if (!callWithChatAdapterState.chat) {\n throw new Error('Chat thread state id undefined.');\n }\n\n return {\n userId: callWithChatAdapterState.userId,\n displayName: callWithChatAdapterState.displayName || '',\n thread: callWithChatAdapterState.chat,\n latestErrors: callWithChatAdapterState.latestChatErrors,\n /* @conditional-compile-remove(file-sharing) */\n fileUploads: callWithChatAdapterState.fileUploads\n };\n}\n"]}
|
1
|
+
{"version":3,"file":"CallWithChatBackedChatAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallWithChatAdapter } from './CallWithChatAdapter';\nimport { ChatAdapter, ChatAdapterState } from '../../ChatComposite';\nimport { ResourceDetails } from '../../ChatComposite';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { FileUploadManager } from '@internal/react-components';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { AttachmentMetadata } from '@internal/react-components';\nimport { ErrorBarStrings } from '@internal/react-components';\nimport { CallWithChatAdapterState } from '../state/CallWithChatAdapterState';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/**\n * Facade around the CallWithChatAdapter to satisfy the chat adapter interface.\n *\n * @private\n */\nexport class CallWithChatBackedChatAdapter implements ChatAdapter {\n private callWithChatAdapter: CallWithChatAdapter;\n\n // For onStateChange we must convert CallWithChat state to chat state. This involves creating a new handler to be passed into the onStateChange.\n // In order to unsubscribe the handler when offStateChange is called we must have a mapping of the original handler to the newly created handler.\n private eventStore: Map<(state: ChatAdapterState) => void, (state: CallWithChatAdapterState) => void> = new Map();\n\n constructor(callWithChatAdapter: CallWithChatAdapter) {\n this.callWithChatAdapter = callWithChatAdapter;\n }\n\n public fetchInitialData = async (): Promise<void> => await this.callWithChatAdapter.fetchInitialData();\n public sendMessage = async (content: string): Promise<void> => await this.callWithChatAdapter.sendMessage(content);\n public sendReadReceipt = async (chatMessageId: string): Promise<void> =>\n await this.callWithChatAdapter.sendReadReceipt(chatMessageId);\n public sendTypingIndicator = async (): Promise<void> => await this.callWithChatAdapter.sendTypingIndicator();\n public removeParticipant = async (userId: string): Promise<void> =>\n await this.callWithChatAdapter.removeParticipant(userId);\n public loadPreviousChatMessages = async (messagesToLoad: number): Promise<boolean> =>\n await this.callWithChatAdapter.loadPreviousChatMessages(messagesToLoad);\n public dispose = (): void => this.callWithChatAdapter.dispose();\n\n public onStateChange = (handler: (state: ChatAdapterState) => void): void => {\n const convertedHandler = (state: CallWithChatAdapterState): void => {\n handler(chatAdapterStateFromCallWithChatAdapterState(state));\n };\n this.callWithChatAdapter.onStateChange(convertedHandler);\n this.eventStore.set(handler, convertedHandler);\n };\n public offStateChange = (handler: (state: ChatAdapterState) => void): void => {\n const convertedHandler = this.eventStore.get(handler);\n convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);\n };\n public getState = (): ChatAdapterState =>\n chatAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());\n\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n public on = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.on('chatError', listener);\n case 'participantsAdded':\n return this.callWithChatAdapter.on('chatParticipantsAdded', listener);\n case 'participantsRemoved':\n return this.callWithChatAdapter.on('chatParticipantsRemoved', listener);\n default:\n return this.callWithChatAdapter.on(event, listener);\n }\n };\n public off = (event: any, listener: any): void => {\n switch (event) {\n case 'error':\n return this.callWithChatAdapter.off('chatError', listener);\n case 'participantsAdded':\n return this.callWithChatAdapter.off('chatParticipantsAdded', listener);\n case 'participantsRemoved':\n return this.callWithChatAdapter.off('chatParticipantsRemoved', listener);\n default:\n return this.callWithChatAdapter.off(event, listener);\n }\n };\n public updateMessage = async (messageId: string, content: string, metadata?: Record<string, string>): Promise<void> =>\n await this.callWithChatAdapter.updateMessage(messageId, content, metadata);\n public deleteMessage = async (messageId: string): Promise<void> =>\n await this.callWithChatAdapter.deleteMessage(messageId);\n\n public clearErrors = (errorTypes: (keyof ErrorBarStrings)[]): void => {\n throw new Error(`Method not supported in CallWithChatComposite.`);\n };\n\n public setTopic = async (topicName: string): Promise<void> => {\n throw new Error(`Chat Topics are not supported in CallWithChatComposite.`);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public registerActiveFileUploads = (files: File[]): FileUploadManager[] => {\n return this.callWithChatAdapter.registerActiveFileUploads(files);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public registerCompletedFileUploads = (metadata: AttachmentMetadata[]): FileUploadManager[] => {\n return this.callWithChatAdapter.registerCompletedFileUploads(metadata);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public clearFileUploads = (): void => {\n this.callWithChatAdapter.clearFileUploads();\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public cancelFileUpload = (id: string): void => {\n this.callWithChatAdapter.cancelFileUpload(id);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public updateFileUploadProgress = (id: string, progress: number): void => {\n this.callWithChatAdapter.updateFileUploadProgress(id, progress);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public updateFileUploadErrorMessage = (id: string, errorMessage: string): void => {\n this.callWithChatAdapter.updateFileUploadErrorMessage(id, errorMessage);\n };\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n public updateFileUploadMetadata = (id: string, metadata: AttachmentMetadata): void => {\n this.callWithChatAdapter.updateFileUploadMetadata(id, metadata);\n };\n\n public async downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void> {\n this.callWithChatAdapter.downloadResourceToCache(resourceDetails);\n }\n public removeResourceFromCache(resourceDetails: ResourceDetails): void {\n this.callWithChatAdapter.removeResourceFromCache(resourceDetails);\n }\n}\n\nfunction chatAdapterStateFromCallWithChatAdapterState(\n callWithChatAdapterState: CallWithChatAdapterState\n): ChatAdapterState {\n if (!callWithChatAdapterState.chat) {\n throw new Error('Chat thread state id undefined.');\n }\n\n return {\n userId: callWithChatAdapterState.userId,\n displayName: callWithChatAdapterState.displayName || '',\n thread: callWithChatAdapterState.chat,\n latestErrors: callWithChatAdapterState.latestChatErrors,\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n fileUploads: callWithChatAdapterState.fileUploads\n };\n}\n"]}
|
@@ -17,17 +17,14 @@ export function callWithChatAdapterStateFromBackingStates(callAdapter, chatAdapt
|
|
17
17
|
isTeamsCall: callAdapterState.isTeamsCall,
|
18
18
|
latestCallErrors: callAdapterState.latestErrors,
|
19
19
|
latestChatErrors: chatAdapterState.latestErrors,
|
20
|
-
/* @conditional-compile-remove(
|
20
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
21
21
|
fileUploads: chatAdapterState.fileUploads,
|
22
22
|
/* @conditional-compile-remove(PSTN-calls) */
|
23
23
|
alternateCallerId: callAdapterState.alternateCallerId,
|
24
24
|
/* @conditional-compile-remove(unsupported-browser) */
|
25
25
|
environmentInfo: callAdapterState.environmentInfo,
|
26
|
-
/* @conditional-compile-remove(video-background-effects) */
|
27
26
|
videoBackgroundImages: callAdapterState.videoBackgroundImages,
|
28
|
-
/* @conditional-compile-remove(video-background-effects) */
|
29
27
|
onResolveVideoEffectDependency: callAdapterState.onResolveVideoEffectDependency,
|
30
|
-
/* @conditional-compile-remove(video-background-effects) */
|
31
28
|
selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect,
|
32
29
|
/* @conditional-compile-remove(hide-attendee-name) */
|
33
30
|
/** Hide attendee names in teams meeting */
|
@@ -41,19 +38,13 @@ export function callWithChatAdapterStateFromBackingStates(callAdapter, chatAdapt
|
|
41
38
|
*/
|
42
39
|
export function mergeChatAdapterStateIntoCallWithChatAdapterState(existingCallWithChatAdapterState, chatAdapterState) {
|
43
40
|
return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { chat: chatAdapterState.thread, latestChatErrors: chatAdapterState.latestErrors,
|
44
|
-
/* @conditional-compile-remove(
|
41
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
45
42
|
fileUploads: chatAdapterState.fileUploads });
|
46
43
|
}
|
47
44
|
/**
|
48
45
|
* @private
|
49
46
|
*/
|
50
47
|
export function mergeCallAdapterStateIntoCallWithChatAdapterState(existingCallWithChatAdapterState, callAdapterState) {
|
51
|
-
return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { userId: callAdapterState.userId, page: callAdapterState.page, displayName: callAdapterState.displayName, devices: callAdapterState.devices, call: callAdapterState.call, isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled, isTeamsCall: callAdapterState.isTeamsCall, latestCallErrors: callAdapterState.latestErrors,
|
52
|
-
/* @conditional-compile-remove(video-background-effects) */
|
53
|
-
videoBackgroundImages: callAdapterState.videoBackgroundImages,
|
54
|
-
/* @conditional-compile-remove(video-background-effects) */
|
55
|
-
onResolveVideoEffectDependency: callAdapterState.onResolveVideoEffectDependency,
|
56
|
-
/* @conditional-compile-remove(video-background-effects) */
|
57
|
-
selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect });
|
48
|
+
return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { userId: callAdapterState.userId, page: callAdapterState.page, displayName: callAdapterState.displayName, devices: callAdapterState.devices, call: callAdapterState.call, isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled, isTeamsCall: callAdapterState.isTeamsCall, latestCallErrors: callAdapterState.latestErrors, videoBackgroundImages: callAdapterState.videoBackgroundImages, onResolveVideoEffectDependency: callAdapterState.onResolveVideoEffectDependency, selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect });
|
58
49
|
}
|
59
50
|
//# sourceMappingURL=CallWithChatAdapterState.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallWithChatAdapterState.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiHlC;;GAEG;AACH,MAAM,UAAU,yCAAyC,CACvD,WAAwB,EACxB,WAAwB;IAExB,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAEhD,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;QAC/B,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;QACjC,+BAA+B,EAAE,gBAAgB,CAAC,+BAA+B;QACjF,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,gBAAgB,EAAE,gBAAgB,CAAC,YAAY;QAC/C,gBAAgB,EAAE,gBAAgB,CAAC,YAAY;QAC/C
|
1
|
+
{"version":3,"file":"CallWithChatAdapterState.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiHlC;;GAEG;AACH,MAAM,UAAU,yCAAyC,CACvD,WAAwB,EACxB,WAAwB;IAExB,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAEhD,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;QAC/B,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO;QACjC,+BAA+B,EAAE,gBAAgB,CAAC,+BAA+B;QACjF,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,gBAAgB,EAAE,gBAAgB,CAAC,YAAY;QAC/C,gBAAgB,EAAE,gBAAgB,CAAC,YAAY;QAC/C,qGAAqG;QACrG,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,6CAA6C;QAC7C,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;QACrD,sDAAsD;QACtD,eAAe,EAAE,gBAAgB,CAAC,eAAe;QAEjD,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB;QAE7D,8BAA8B,EAAE,gBAAgB,CAAC,8BAA8B;QAE/E,6BAA6B,EAAE,gBAAgB,CAAC,6BAA6B;QAC7E,qDAAqD;QACrD,2CAA2C;QAC3C,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;QACrD,2CAA2C;QAC3C,SAAS,EAAE,gBAAgB,CAAC,SAAS;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iDAAiD,CAC/D,gCAA0D,EAC1D,gBAAkC;IAElC,uCACK,gCAAgC,KACnC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAC7B,gBAAgB,EAAE,gBAAgB,CAAC,YAAY;QAC/C,qGAAqG;QACrG,WAAW,EAAE,gBAAgB,CAAC,WAAW,IACzC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iDAAiD,CAC/D,gCAA0D,EAC1D,gBAAkC;IAElC,uCACK,gCAAgC,KACnC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAC/B,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAC3B,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EACjC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAC3B,+BAA+B,EAAE,gBAAgB,CAAC,+BAA+B,EACjF,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,EAE/C,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,EAE7D,8BAA8B,EAAE,gBAAgB,CAAC,8BAA8B,EAE/E,6BAA6B,EAAE,gBAAgB,CAAC,6BAA6B,IAC7E;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { CallState, DeviceManagerState } from '@internal/calling-stateful-client';\nimport { ChatThreadClientState } from '@internal/chat-stateful-client';\nimport { CallAdapter, CallAdapterState, CallCompositePage } from '../../CallComposite';\n\nimport { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';\n\nimport { VideoBackgroundEffectsDependency } from '@internal/calling-component-bindings';\nimport { ChatAdapter, ChatAdapterState } from '../../ChatComposite';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { FileUploadsUiState } from '../../ChatComposite';\nimport { AdapterErrors } from '../../common/adapters';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(reaction) */\nimport { ReactionResources } from '@internal/react-components';\n\n/**\n * UI state pertaining to the {@link CallWithChatComposite}.\n *\n * @public\n */\nexport interface CallWithChatAdapterUiState {\n /**\n * Microphone state before a call has joined.\n *\n * @public\n */\n isLocalPreviewMicrophoneEnabled: boolean;\n /**\n * Current page of the Composite.\n *\n * @public\n */\n page: CallCompositePage;\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n /**\n * Files being uploaded by a user in the current thread.\n * Should be set to null once the upload is complete.\n * Array of type {@link FileUploadsUiState}\n *\n * @beta\n */\n fileUploads?: FileUploadsUiState;\n /* @conditional-compile-remove(unsupported-browser) */\n /**\n * State to track whether the end user has opted in to using a\n * out of date version of a supported browser. Allows the user\n * to start a call in this state.\n *\n * @beta\n */\n unsupportedBrowserVersionsAllowed?: boolean;\n}\n\n/**\n * State from the backend services that drives {@link CallWithChatComposite}.\n *\n * @public\n */\nexport interface CallWithChatClientState {\n /** ID of the call participant using this CallWithChatAdapter. */\n userId: CommunicationIdentifierKind;\n /** Display name of the participant using this CallWithChatAdapter. */\n displayName: string | undefined;\n /** State of the current call. */\n call?: CallState;\n /** State of the current chat. */\n chat?: ChatThreadClientState;\n /** Latest call error encountered for each operation performed via the adapter. */\n latestCallErrors: AdapterErrors;\n /** Latest chat error encountered for each operation performed via the adapter. */\n latestChatErrors: AdapterErrors;\n /** State of available and currently selected devices */\n devices: DeviceManagerState;\n /** State of whether the active call is a Teams interop call */\n isTeamsCall: boolean;\n /* @conditional-compile-remove(PSTN-calls) */\n /** alternateCallerId for PSTN call */\n alternateCallerId?: string | undefined;\n /* @conditional-compile-remove(unsupported-browser) */\n /** Environment information for system adapter is made on */\n environmentInfo?: EnvironmentInfo;\n\n /** Default set of background images for background replacement effect */\n videoBackgroundImages?: VideoBackgroundImage[];\n\n /** Dependency to be injected for video background effects */\n onResolveVideoEffectDependency?: () => Promise<VideoBackgroundEffectsDependency>;\n\n /** State to track the selected video background effect */\n selectedVideoBackgroundEffect?: VideoBackgroundEffect;\n /* @conditional-compile-remove(hide-attendee-name) */\n /** Hide attendee names in teams meeting */\n hideAttendeeNames?: boolean;\n /* @conditional-compile-remove(reaction) */\n /**\n * Reaction resources to render in meetings\n * @beta\n * */\n reactions?: ReactionResources;\n}\n\n/**\n * CallWithChat State is a combination of Stateful Chat and Stateful Calling clients with some\n * state specific to the CallWithChat Composite only.\n *\n * @public\n */\nexport interface CallWithChatAdapterState extends CallWithChatAdapterUiState, CallWithChatClientState {}\n\n/**\n * @private\n */\nexport function callWithChatAdapterStateFromBackingStates(\n callAdapter: CallAdapter,\n chatAdapter: ChatAdapter\n): CallWithChatAdapterState {\n const callAdapterState = callAdapter.getState();\n const chatAdapterState = chatAdapter.getState();\n\n return {\n call: callAdapterState.call,\n chat: chatAdapterState.thread,\n userId: callAdapterState.userId,\n page: callAdapterState.page,\n displayName: callAdapterState.displayName,\n devices: callAdapterState.devices,\n isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled,\n isTeamsCall: callAdapterState.isTeamsCall,\n latestCallErrors: callAdapterState.latestErrors,\n latestChatErrors: chatAdapterState.latestErrors,\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n fileUploads: chatAdapterState.fileUploads,\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId: callAdapterState.alternateCallerId,\n /* @conditional-compile-remove(unsupported-browser) */\n environmentInfo: callAdapterState.environmentInfo,\n\n videoBackgroundImages: callAdapterState.videoBackgroundImages,\n\n onResolveVideoEffectDependency: callAdapterState.onResolveVideoEffectDependency,\n\n selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect,\n /* @conditional-compile-remove(hide-attendee-name) */\n /** Hide attendee names in teams meeting */\n hideAttendeeNames: callAdapterState.hideAttendeeNames,\n /* @conditional-compile-remove(reaction) */\n reactions: callAdapterState.reactions\n };\n}\n\n/**\n * @private\n */\nexport function mergeChatAdapterStateIntoCallWithChatAdapterState(\n existingCallWithChatAdapterState: CallWithChatAdapterState,\n chatAdapterState: ChatAdapterState\n): CallWithChatAdapterState {\n return {\n ...existingCallWithChatAdapterState,\n chat: chatAdapterState.thread,\n latestChatErrors: chatAdapterState.latestErrors,\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n fileUploads: chatAdapterState.fileUploads\n };\n}\n\n/**\n * @private\n */\nexport function mergeCallAdapterStateIntoCallWithChatAdapterState(\n existingCallWithChatAdapterState: CallWithChatAdapterState,\n callAdapterState: CallAdapterState\n): CallWithChatAdapterState {\n return {\n ...existingCallWithChatAdapterState,\n userId: callAdapterState.userId,\n page: callAdapterState.page,\n displayName: callAdapterState.displayName,\n devices: callAdapterState.devices,\n call: callAdapterState.call,\n isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled,\n isTeamsCall: callAdapterState.isTeamsCall,\n latestCallErrors: callAdapterState.latestErrors,\n\n videoBackgroundImages: callAdapterState.videoBackgroundImages,\n\n onResolveVideoEffectDependency: callAdapterState.onResolveVideoEffectDependency,\n\n selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect\n };\n}\n"]}
|
@@ -14,17 +14,17 @@ import { ChatScreen } from './ChatScreen';
|
|
14
14
|
*/
|
15
15
|
export const ChatComposite = (props) => {
|
16
16
|
const { adapter, options, onFetchAvatarPersonaData, onRenderTypingIndicator, onRenderMessage, onFetchParticipantMenuItems } = props;
|
17
|
-
/* @conditional-compile-remove(
|
17
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
18
18
|
const formFactor = props['formFactor'] || 'desktop';
|
19
19
|
return (React.createElement("div", { className: chatScreenContainerStyle },
|
20
20
|
React.createElement(BaseProvider, Object.assign({}, props),
|
21
21
|
React.createElement(ChatAdapterProvider, { adapter: adapter },
|
22
22
|
React.createElement(ChatScreen
|
23
|
-
/* @conditional-compile-remove(
|
23
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
24
24
|
, {
|
25
|
-
/* @conditional-compile-remove(
|
25
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26
26
|
formFactor: formFactor, options: options, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onRenderTypingIndicator: onRenderTypingIndicator, onRenderMessage: onRenderMessage, onFetchParticipantMenuItems: onFetchParticipantMenuItems,
|
27
|
-
/* @conditional-compile-remove(
|
27
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
28
28
|
fileSharing: options === null || options === void 0 ? void 0 : options.fileSharing })))));
|
29
29
|
};
|
30
30
|
//# sourceMappingURL=ChatComposite.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChatComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatComposite.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA+F1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,MAAM,EACJ,OAAO,EACP,OAAO,EACP,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC5B,GAAG,KAAK,CAAC;IAEV
|
1
|
+
{"version":3,"file":"ChatComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatComposite.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA+F1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,MAAM,EACJ,OAAO,EACP,OAAO,EACP,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC5B,GAAG,KAAK,CAAC;IAEV,qGAAqG;IACrG,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,6BAAK,SAAS,EAAE,wBAAwB;QACtC,oBAAC,YAAY,oBAAK,KAAK;YACrB,oBAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO;gBACnC,oBAAC,UAAU;gBACT,qGAAqG;;oBAArG,qGAAqG;oBACrG,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,wBAAwB,EAAE,wBAAwB,EAClD,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,eAAe,EAChC,2BAA2B,EAAE,2BAA2B;oBACxD,qGAAqG;oBACrG,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,GACjC,CACkB,CACT,CACX,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationParticipant, MessageRenderer, MessageProps } from '@internal/react-components';\nimport React from 'react';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { ChatCompositeIcons } from '../common/icons';\nimport { ChatAdapter } from './adapter/ChatAdapter';\nimport { ChatAdapterProvider } from './adapter/ChatAdapterProvider';\nimport { chatScreenContainerStyle } from './styles/Chat.styles';\nimport { ChatScreen } from './ChatScreen';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { FileSharingOptions } from './ChatScreen';\n\n/**\n * Props for {@link ChatComposite}.\n *\n * @public\n */\nexport interface ChatCompositeProps extends BaseCompositeProps<ChatCompositeIcons> {\n /**\n * An adapter provides logic and data to the composite.\n * Composite can also be controlled using the adapter.\n */\n adapter: ChatAdapter;\n /**\n * `(messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element`\n * A callback for customizing the message renderer.\n */\n onRenderMessage?: (messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element;\n /**\n * `(typingUsers: CommunicationParticipant[]) => JSX.Element`\n * A callback for customizing the typing indicator renderer.\n */\n onRenderTypingIndicator?: (typingUsers: CommunicationParticipant[]) => JSX.Element;\n /**\n * Flags to enable/disable visual elements of the {@link ChatComposite}.\n */\n options?: ChatCompositeOptions;\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n /**\n * Optimizes the composite form factor for either desktop or mobile.\n * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.\n * @defaultValue 'desktop'\n */\n formFactor?: 'desktop' | 'mobile';\n}\n\n/**\n * Optional features of the {@link ChatComposite}.\n *\n * @public\n */\nexport type ChatCompositeOptions = {\n /**\n * Surface Azure Communication Services backend errors in the UI with {@link @azure/communication-react#ErrorBar}.\n * Hide or show the error bar.\n * @defaultValue true\n */\n errorBar?: boolean;\n /* @conditional-compile-remove(chat-composite-participant-pane) */\n /**\n * Show or hide the participant pane. This feature is in beta and not supported on mobile or narrow screen views.\n * @defaultValue false\n *\n * @beta\n */\n participantPane?: boolean;\n /**\n * Show or hide the topic at the top of the chat. Hidden if set to `false`\n * @defaultValue true\n */\n topic?: boolean;\n /**\n * enumerable to determine if the input box has focus on render or not.\n * When undefined nothing has focus on render\n */\n autoFocus?: 'sendBoxTextField';\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n /**\n * Properties for configuring the File Sharing feature.\n * If undefined, file sharing feature will be disabled.\n * @beta\n */\n fileSharing?: FileSharingOptions;\n\n /* @conditional-compile-remove(rich-text-editor) */\n /**\n * Properties for configuring the richTextEditor feature.\n * @defaultValue false\n *\n * @beta\n */\n richTextEditor?: boolean | RichTextEditorOptions;\n};\n\n/* @conditional-compile-remove(rich-text-editor) */\n/**\n * Options for configuring the rich text editor.\n *\n * @beta\n */\nexport interface RichTextEditorOptions {}\n\n/**\n * A customizable UI composite for the chat experience.\n *\n * @remarks Chat composite min width and height are respectively 17.5rem and 20rem (280px and 320px, with default rem at 16px)\n *\n * @public\n */\nexport const ChatComposite = (props: ChatCompositeProps): JSX.Element => {\n const {\n adapter,\n options,\n onFetchAvatarPersonaData,\n onRenderTypingIndicator,\n onRenderMessage,\n onFetchParticipantMenuItems\n } = props;\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n const formFactor = props['formFactor'] || 'desktop';\n\n return (\n <div className={chatScreenContainerStyle}>\n <BaseProvider {...props}>\n <ChatAdapterProvider adapter={adapter}>\n <ChatScreen\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n formFactor={formFactor}\n options={options}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onRenderTypingIndicator={onRenderTypingIndicator}\n onRenderMessage={onRenderMessage}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n fileSharing={options?.fileSharing}\n />\n </ChatAdapterProvider>\n </BaseProvider>\n </div>\n );\n};\n"]}
|
@@ -3,7 +3,7 @@ import { CommunicationParticipant, MessageProps, MessageRenderer, MessageThreadS
|
|
3
3
|
import { AvatarPersonaDataCallback } from '../common/AvatarPersona';
|
4
4
|
import { ChatCompositeOptions } from './ChatComposite';
|
5
5
|
import { FileDownloadHandler } from "../../../../react-components/src";
|
6
|
-
import { FileUploadHandler } from
|
6
|
+
import { FileUploadHandler } from "../../../../react-components/src";
|
7
7
|
/**
|
8
8
|
* @private
|
9
9
|
*/
|
@@ -26,10 +26,9 @@ import { participantListContainerPadding } from '../common/styles/ParticipantCon
|
|
26
26
|
/* @conditional-compile-remove(chat-composite-participant-pane) */
|
27
27
|
import { ChatScreenPeoplePane } from './ChatScreenPeoplePane';
|
28
28
|
import { toFlatCommunicationIdentifier } from "../../../../acs-ui-common/src";
|
29
|
-
/* @conditional-compile-remove(
|
29
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
30
30
|
import { FileDownloadErrorBar } from './FileDownloadErrorBar';
|
31
|
-
|
32
|
-
import { _FileDownloadCards } from "../../../../react-components/src";
|
31
|
+
import { _AttachmentDownloadCards } from "../../../../react-components/src";
|
33
32
|
import { ImageOverlay } from "../../../../react-components/src";
|
34
33
|
import { SendBox } from '../common/SendBox';
|
35
34
|
/**
|
@@ -38,7 +37,7 @@ import { SendBox } from '../common/SendBox';
|
|
38
37
|
export const ChatScreen = (props) => {
|
39
38
|
const { onFetchAvatarPersonaData, onRenderMessage, onRenderTypingIndicator, options, styles, fileSharing, formFactor } = props;
|
40
39
|
const defaultNumberOfChatMessagesToReload = 5;
|
41
|
-
/* @conditional-compile-remove(
|
40
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
42
41
|
const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');
|
43
42
|
const [overlayImageItem, setOverlayImageItem] = useState();
|
44
43
|
const [isImageOverlayOpen, setIsImageOverlayOpen] = useState(false);
|
@@ -101,13 +100,13 @@ export const ChatScreen = (props) => {
|
|
101
100
|
if (!files) {
|
102
101
|
return;
|
103
102
|
}
|
104
|
-
/* @conditional-compile-remove(
|
103
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
105
104
|
const fileUploads = adapter.registerActiveFileUploads(Array.from(files));
|
106
|
-
/* @conditional-compile-remove(
|
105
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
107
106
|
fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.uploadHandler(userId, fileUploads);
|
108
107
|
}, [adapter, fileSharing, userId]);
|
109
|
-
/* @conditional-compile-remove(
|
110
|
-
const onRenderFileDownloads = useCallback((userId, message) => (React.createElement(
|
108
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
109
|
+
const onRenderFileDownloads = useCallback((userId, message) => (React.createElement(_AttachmentDownloadCards, { userId: userId, fileMetadata: message.files || [], downloadHandler: fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler, onDownloadErrorMessage: (errorMessage) => {
|
111
110
|
setDownloadErrorMessage(errorMessage);
|
112
111
|
} })), [fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler]);
|
113
112
|
const onInlineImageClicked = useCallback((attachmentId, messageId) => {
|
@@ -208,12 +207,12 @@ export const ChatScreen = (props) => {
|
|
208
207
|
React.createElement(Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
|
209
208
|
React.createElement(Stack, { className: chatWrapper, grow: true },
|
210
209
|
(options === null || options === void 0 ? void 0 : options.errorBar) !== false && React.createElement(ErrorBar, Object.assign({}, errorBarProps)),
|
211
|
-
/* @conditional-compile-remove(
|
210
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
212
211
|
React.createElement(FileDownloadErrorBar, { onDismissDownloadErrorMessage: useCallback(() => {
|
213
212
|
setDownloadErrorMessage('');
|
214
213
|
}, []), fileDownloadErrorMessage: downloadErrorMessage || '' }),
|
215
214
|
React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
|
216
|
-
/* @conditional-compile-remove(
|
215
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
217
216
|
onRenderFileDownloads: onRenderFileDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles })),
|
218
217
|
React.createElement(Stack, { className: mergeStyles(sendboxContainerStyles) },
|
219
218
|
React.createElement("div", { className: mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React.createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
|
@@ -222,7 +221,7 @@ export const ChatScreen = (props) => {
|
|
222
221
|
React.createElement(AttachFileButton, null))),
|
223
222
|
React.createElement(Stack, { grow: true },
|
224
223
|
React.createElement(SendBox, { options: options, styles: styles === null || styles === void 0 ? void 0 : styles.sendBox,
|
225
|
-
/* @conditional-compile-remove(
|
224
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
226
225
|
adapter: adapter })),
|
227
226
|
formFactor !== 'mobile' && React.createElement(AttachFileButton, null)))),
|
228
227
|
/* @conditional-compile-remove(chat-composite-participant-pane) */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChatScreen.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isIOS } from '@fluentui/react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { PersonaSize } from '@fluentui/react';\nimport {\n CommunicationParticipant,\n ErrorBar,\n MessageProps,\n MessageRenderer,\n MessageThread,\n MessageThreadStyles,\n ParticipantMenuItemsCallback,\n SendBoxStylesProps,\n TypingIndicator,\n TypingIndicatorStylesProps,\n useTheme\n} from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing) */\nimport { ChatMessage } from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback, AvatarPersonaProps } from '../common/AvatarPersona';\nimport { useAdapter } from './adapter/ChatAdapterProvider';\nimport { ChatCompositeOptions } from './ChatComposite';\nimport { ChatHeader, getHeaderProps } from './ChatHeader';\nimport { FileDownloadHandler } from '@internal/react-components';\nimport { FileUploadButtonWrapper as FileUploadButton, FileUploadHandler } from './file-sharing';\nimport { useAdaptedSelector } from './hooks/useAdaptedSelector';\nimport { usePropsFor } from './hooks/usePropsFor';\n\nimport {\n chatArea,\n chatContainer,\n chatWrapper,\n messageThreadChatCompositeStyles,\n sendboxContainerStyles,\n typingIndicatorContainerStyles\n} from './styles/Chat.styles';\nimport { participantListContainerPadding } from '../common/styles/ParticipantContainer.styles';\n/* @conditional-compile-remove(chat-composite-participant-pane) */\nimport { ChatScreenPeoplePane } from './ChatScreenPeoplePane';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileDownloadErrorBar } from './FileDownloadErrorBar';\n/* @conditional-compile-remove(file-sharing) */\nimport { _FileDownloadCards } from '@internal/react-components';\nimport { ImageOverlay } from '@internal/react-components';\nimport { InlineImage } from '@internal/react-components';\nimport { SendBox } from '../common/SendBox';\nimport { ResourceFetchResult } from '@internal/chat-stateful-client';\n\n/**\n * @private\n */\nexport type ChatScreenProps = {\n options?: ChatCompositeOptions;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onRenderMessage?: (messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element;\n onRenderTypingIndicator?: (typingUsers: CommunicationParticipant[]) => JSX.Element;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n styles?: ChatScreenStyles;\n fileSharing?: FileSharingOptions;\n formFactor?: 'desktop' | 'mobile';\n};\n\n/**\n * @private\n */\nexport type ChatScreenStyles = {\n messageThread?: MessageThreadStyles;\n sendBox?: SendBoxStylesProps;\n typingIndicator?: TypingIndicatorStylesProps;\n};\n\n/**\n * Properties for configuring the File Sharing feature.\n * @beta\n */\nexport interface FileSharingOptions {\n /**\n * A string containing the comma separated list of accepted file types.\n * Similar to the `accept` attribute of the `<input type=\"file\" />` element.\n * Accepts any type of file if not specified.\n * @beta\n */\n accept?: string;\n /**\n * Allows multiple files to be selected if set to `true`.\n * Similar to the `multiple` attribute of the `<input type=\"file\" />` element.\n * @defaultValue false\n * @beta\n */\n multiple?: boolean;\n /**\n * A function of type {@link FileUploadHandler} for handling file uploads.\n * @beta\n */\n uploadHandler: FileUploadHandler;\n /**\n * A function of type {@link FileDownloadHandler} for handling file downloads.\n * If the function is not specified, the file's `url` will be opened in a new tab to\n * initiate the download.\n */\n downloadHandler?: FileDownloadHandler;\n}\n\n/**\n * @private\n */\ninterface OverlayImageItem {\n imageSrc: string;\n title: string;\n titleIcon: JSX.Element;\n attachmentId: string;\n messageId: string;\n imageUrl: string;\n}\n\n/**\n * @private\n */\nexport const ChatScreen = (props: ChatScreenProps): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onRenderMessage,\n onRenderTypingIndicator,\n options,\n styles,\n fileSharing,\n formFactor\n } = props;\n\n const defaultNumberOfChatMessagesToReload = 5;\n /* @conditional-compile-remove(file-sharing) */\n const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');\n const [overlayImageItem, setOverlayImageItem] = useState<OverlayImageItem>();\n const [isImageOverlayOpen, setIsImageOverlayOpen] = useState<boolean>(false);\n\n const adapter = useAdapter();\n const theme = useTheme();\n\n useEffect(() => {\n // Initial data should be always fetched by the composite(or external caller) instead of the adapter\n const fetchData: () => Promise<void> = async () => {\n // Fetch initial data for adapter\n await adapter.fetchInitialData();\n // Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.\n await adapter.loadPreviousChatMessages(defaultNumberOfChatMessagesToReload);\n };\n fetchData();\n }, [adapter]);\n\n const messageThreadProps = usePropsFor(MessageThread);\n const typingIndicatorProps = usePropsFor(TypingIndicator);\n const headerProps = useAdaptedSelector(getHeaderProps);\n const errorBarProps = usePropsFor(ErrorBar);\n\n useEffect(() => {\n if (overlayImageItem === undefined) {\n return;\n }\n const message = adapter.getState().thread.chatMessages[overlayImageItem.messageId];\n if (message === undefined) {\n return;\n }\n const resourceCache = message.resourceCache;\n if (overlayImageItem.imageSrc === '' && resourceCache && resourceCache[overlayImageItem.imageUrl]) {\n const fullSizeImageSrc = getResourceSourceUrl(resourceCache[overlayImageItem.imageUrl]);\n if (fullSizeImageSrc === undefined || fullSizeImageSrc === '' || overlayImageItem.imageSrc === fullSizeImageSrc) {\n return;\n }\n setOverlayImageItem({\n ...overlayImageItem,\n imageSrc: fullSizeImageSrc\n });\n }\n // Disable eslint because we are using the overlayImageItem in this effect but don't want to have it as a dependency, as it will cause an infinite loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [messageThreadProps.messages]);\n\n const getResourceSourceUrl = (result: ResourceFetchResult): string => {\n let src = '';\n if (result.error || !result.sourceUrl) {\n src = 'blob://';\n } else {\n src = result.sourceUrl;\n }\n\n return src;\n };\n\n const onRenderAvatarCallback = useCallback(\n (userId?: string, defaultOptions?: AvatarPersonaProps) => {\n return (\n <AvatarPersona\n userId={userId}\n hidePersonaDetails={true}\n {...defaultOptions}\n dataProvider={onFetchAvatarPersonaData}\n />\n );\n },\n [onFetchAvatarPersonaData]\n );\n\n const messageThreadStyles = useMemo(() => {\n return Object.assign(\n {},\n messageThreadChatCompositeStyles(theme.semanticColors.bodyBackground),\n styles?.messageThread\n );\n }, [styles?.messageThread, theme.semanticColors.bodyBackground]);\n\n const typingIndicatorStyles = useMemo(() => {\n return Object.assign({}, styles?.typingIndicator);\n }, [styles?.typingIndicator]);\n\n const userId = toFlatCommunicationIdentifier(adapter.getState().userId);\n\n const fileUploadButtonOnChange = useCallback(\n (files: FileList | null): void => {\n if (!files) {\n return;\n }\n\n /* @conditional-compile-remove(file-sharing) */\n const fileUploads = adapter.registerActiveFileUploads(Array.from(files));\n /* @conditional-compile-remove(file-sharing) */\n fileSharing?.uploadHandler(userId, fileUploads);\n },\n [adapter, fileSharing, userId]\n );\n\n /* @conditional-compile-remove(file-sharing) */\n const onRenderFileDownloads = useCallback(\n (userId: string, message: ChatMessage) => (\n <_FileDownloadCards\n userId={userId}\n fileMetadata={message.files || []}\n downloadHandler={fileSharing?.downloadHandler}\n onDownloadErrorMessage={(errorMessage: string) => {\n setDownloadErrorMessage(errorMessage);\n }}\n />\n ),\n [fileSharing?.downloadHandler]\n );\n\n const onInlineImageClicked = useCallback(\n (attachmentId: string, messageId: string) => {\n const message = adapter.getState().thread.chatMessages[messageId];\n const inlinedImages = message.content?.attachments?.filter((attachment) => {\n return attachment.attachmentType === 'image' && attachment.id === attachmentId;\n });\n\n if (!inlinedImages || inlinedImages.length <= 0) {\n return;\n }\n\n const attachment = inlinedImages[0];\n\n const resourceCache = message.resourceCache;\n let imageSrc = '';\n\n if (attachment.url) {\n if (resourceCache && resourceCache[attachment.url]) {\n imageSrc = getResourceSourceUrl(resourceCache[attachment.url]);\n } else {\n adapter.downloadResourceToCache({\n threadId: adapter.getState().thread.threadId,\n messageId: messageId,\n resourceUrl: attachment.url\n });\n }\n }\n\n const titleIconRenderOptions = {\n text: message.senderDisplayName,\n size: PersonaSize.size32,\n showOverflowTooltip: false,\n imageAlt: message.senderDisplayName\n };\n\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n const titleIcon = onRenderAvatarCallback && onRenderAvatarCallback(messageSenderId, titleIconRenderOptions);\n const overlayImage: OverlayImageItem = {\n title: message.senderDisplayName || '',\n titleIcon: titleIcon,\n attachmentId: attachment.id,\n imageSrc: imageSrc,\n messageId: messageId,\n imageUrl: attachment.url || ''\n };\n\n setIsImageOverlayOpen(true);\n setOverlayImageItem(overlayImage);\n },\n [adapter, onRenderAvatarCallback, userId]\n );\n\n const inlineImageOptions = {\n onRenderInlineImage: (\n inlineImage: InlineImage,\n defaultOnRender: (inlineImage: InlineImage) => JSX.Element\n ): JSX.Element => {\n const message = adapter.getState().thread.chatMessages[inlineImage.messageId];\n const attachment = message?.content?.attachments?.find(\n (attachment) => attachment.id === inlineImage.imageAttributes.id\n );\n\n if (attachment === undefined) {\n return defaultOnRender(inlineImage);\n }\n\n let pointerEvents: 'none' | 'auto' = inlineImage.imageAttributes.src === '' ? 'none' : 'auto';\n const resourceCache = message.resourceCache;\n if (\n resourceCache &&\n attachment.previewUrl &&\n resourceCache[attachment.previewUrl] &&\n resourceCache[attachment.previewUrl].error\n ) {\n pointerEvents = 'none';\n }\n\n return (\n <span\n key={inlineImage.imageAttributes.id}\n onClick={() => onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId)}\n tabIndex={0}\n role=\"button\"\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId);\n }\n }}\n style={{ cursor: 'pointer', pointerEvents }}\n >\n {defaultOnRender(inlineImage)}\n </span>\n );\n }\n };\n\n const onDownloadButtonClicked = useCallback(\n (imageSrc: string): void => {\n if (imageSrc === '') {\n return;\n }\n if (isIOS()) {\n window.open(imageSrc, '_blank');\n } else {\n // Create a new anchor element\n const a = document.createElement('a');\n // Set the href and download attributes for the anchor element\n a.href = imageSrc;\n a.download = overlayImageItem?.attachmentId || '';\n a.rel = 'noopener noreferrer';\n a.target = '_blank';\n\n // Programmatically click the anchor element to trigger the download\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n },\n [overlayImageItem?.attachmentId]\n );\n\n const AttachFileButton = useCallback(() => {\n if (!fileSharing?.uploadHandler) {\n return null;\n }\n return (\n <FileUploadButton\n accept={fileSharing?.accept}\n multiple={fileSharing?.multiple}\n onChange={fileUploadButtonOnChange}\n />\n );\n }, [fileSharing?.accept, fileSharing?.multiple, fileSharing?.uploadHandler, fileUploadButtonOnChange]);\n\n return (\n <Stack className={chatContainer} grow>\n {options?.topic !== false && <ChatHeader {...headerProps} />}\n <Stack className={chatArea} tokens={participantListContainerPadding} horizontal grow>\n <Stack className={chatWrapper} grow>\n {options?.errorBar !== false && <ErrorBar {...errorBarProps} />}\n {\n /* @conditional-compile-remove(file-sharing) */\n <FileDownloadErrorBar\n onDismissDownloadErrorMessage={useCallback(() => {\n setDownloadErrorMessage('');\n }, [])}\n fileDownloadErrorMessage={downloadErrorMessage || ''}\n />\n }\n <MessageThread\n {...messageThreadProps}\n onRenderAvatar={onRenderAvatarCallback}\n onRenderMessage={onRenderMessage}\n /* @conditional-compile-remove(file-sharing) */\n onRenderFileDownloads={onRenderFileDownloads}\n inlineImageOptions={inlineImageOptions}\n numberOfChatMessagesToReload={defaultNumberOfChatMessagesToReload}\n styles={messageThreadStyles}\n />\n <Stack className={mergeStyles(sendboxContainerStyles)}>\n <div className={mergeStyles(typingIndicatorContainerStyles)}>\n {onRenderTypingIndicator ? (\n onRenderTypingIndicator(typingIndicatorProps.typingUsers)\n ) : (\n <TypingIndicator {...typingIndicatorProps} styles={typingIndicatorStyles} />\n )}\n </div>\n <Stack horizontal={formFactor === 'mobile'}>\n {formFactor === 'mobile' && (\n <Stack verticalAlign=\"center\">\n <AttachFileButton />\n </Stack>\n )}\n <Stack grow>\n <SendBox\n options={options}\n styles={styles?.sendBox}\n /* @conditional-compile-remove(file-sharing) */\n adapter={adapter}\n />\n </Stack>\n {formFactor !== 'mobile' && <AttachFileButton />}\n </Stack>\n </Stack>\n </Stack>\n {\n /* @conditional-compile-remove(chat-composite-participant-pane) */\n options?.participantPane === true && (\n <ChatScreenPeoplePane\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n isMobile={formFactor === 'mobile'}\n />\n )\n }\n </Stack>\n {overlayImageItem && (\n <ImageOverlay\n {...overlayImageItem}\n isOpen={isImageOverlayOpen}\n onDismiss={() => {\n setOverlayImageItem(undefined);\n setIsImageOverlayOpen(false);\n adapter.removeResourceFromCache({\n threadId: adapter.getState().thread.threadId,\n messageId: overlayImageItem.messageId,\n resourceUrl: overlayImageItem.imageUrl\n });\n }}\n onDownloadButtonClicked={onDownloadButtonClicked}\n />\n )}\n </Stack>\n );\n};\n"]}
|
1
|
+
{"version":3,"file":"ChatScreen.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isIOS } from '@fluentui/react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { PersonaSize } from '@fluentui/react';\nimport {\n CommunicationParticipant,\n ErrorBar,\n MessageProps,\n MessageRenderer,\n MessageThread,\n MessageThreadStyles,\n ParticipantMenuItemsCallback,\n SendBoxStylesProps,\n TypingIndicator,\n TypingIndicatorStylesProps,\n useTheme\n} from '@internal/react-components';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { ChatMessage } from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback, AvatarPersonaProps } from '../common/AvatarPersona';\nimport { useAdapter } from './adapter/ChatAdapterProvider';\nimport { ChatCompositeOptions } from './ChatComposite';\nimport { ChatHeader, getHeaderProps } from './ChatHeader';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { FileDownloadHandler } from '@internal/react-components';\nimport { FileUploadHandler } from '@internal/react-components';\nimport { FileUploadButtonWrapper as FileUploadButton } from './file-sharing';\nimport { useAdaptedSelector } from './hooks/useAdaptedSelector';\nimport { usePropsFor } from './hooks/usePropsFor';\n\nimport {\n chatArea,\n chatContainer,\n chatWrapper,\n messageThreadChatCompositeStyles,\n sendboxContainerStyles,\n typingIndicatorContainerStyles\n} from './styles/Chat.styles';\nimport { participantListContainerPadding } from '../common/styles/ParticipantContainer.styles';\n/* @conditional-compile-remove(chat-composite-participant-pane) */\nimport { ChatScreenPeoplePane } from './ChatScreenPeoplePane';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\nimport { FileDownloadErrorBar } from './FileDownloadErrorBar';\nimport { _AttachmentDownloadCards } from '@internal/react-components';\nimport { ImageOverlay } from '@internal/react-components';\nimport { InlineImage } from '@internal/react-components';\nimport { SendBox } from '../common/SendBox';\nimport { ResourceFetchResult } from '@internal/chat-stateful-client';\n\n/**\n * @private\n */\nexport type ChatScreenProps = {\n options?: ChatCompositeOptions;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onRenderMessage?: (messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element;\n onRenderTypingIndicator?: (typingUsers: CommunicationParticipant[]) => JSX.Element;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n styles?: ChatScreenStyles;\n fileSharing?: FileSharingOptions;\n formFactor?: 'desktop' | 'mobile';\n};\n\n/**\n * @private\n */\nexport type ChatScreenStyles = {\n messageThread?: MessageThreadStyles;\n sendBox?: SendBoxStylesProps;\n typingIndicator?: TypingIndicatorStylesProps;\n};\n\n/**\n * Properties for configuring the File Sharing feature.\n * @beta\n */\nexport interface FileSharingOptions {\n /**\n * A string containing the comma separated list of accepted file types.\n * Similar to the `accept` attribute of the `<input type=\"file\" />` element.\n * Accepts any type of file if not specified.\n * @beta\n */\n accept?: string;\n /**\n * Allows multiple files to be selected if set to `true`.\n * Similar to the `multiple` attribute of the `<input type=\"file\" />` element.\n * @defaultValue false\n * @beta\n */\n multiple?: boolean;\n /**\n * A function of type {@link FileUploadHandler} for handling file uploads.\n * @beta\n */\n uploadHandler: FileUploadHandler;\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n /**\n * A function of type {@link FileDownloadHandler} for handling file downloads.\n * If the function is not specified, the file's `url` will be opened in a new tab to\n * initiate the download.\n */\n downloadHandler?: FileDownloadHandler;\n}\n\n/**\n * @private\n */\ninterface OverlayImageItem {\n imageSrc: string;\n title: string;\n titleIcon: JSX.Element;\n attachmentId: string;\n messageId: string;\n imageUrl: string;\n}\n\n/**\n * @private\n */\nexport const ChatScreen = (props: ChatScreenProps): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onRenderMessage,\n onRenderTypingIndicator,\n options,\n styles,\n fileSharing,\n formFactor\n } = props;\n\n const defaultNumberOfChatMessagesToReload = 5;\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');\n const [overlayImageItem, setOverlayImageItem] = useState<OverlayImageItem>();\n const [isImageOverlayOpen, setIsImageOverlayOpen] = useState<boolean>(false);\n\n const adapter = useAdapter();\n const theme = useTheme();\n\n useEffect(() => {\n // Initial data should be always fetched by the composite(or external caller) instead of the adapter\n const fetchData: () => Promise<void> = async () => {\n // Fetch initial data for adapter\n await adapter.fetchInitialData();\n // Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.\n await adapter.loadPreviousChatMessages(defaultNumberOfChatMessagesToReload);\n };\n fetchData();\n }, [adapter]);\n\n const messageThreadProps = usePropsFor(MessageThread);\n const typingIndicatorProps = usePropsFor(TypingIndicator);\n const headerProps = useAdaptedSelector(getHeaderProps);\n const errorBarProps = usePropsFor(ErrorBar);\n\n useEffect(() => {\n if (overlayImageItem === undefined) {\n return;\n }\n const message = adapter.getState().thread.chatMessages[overlayImageItem.messageId];\n if (message === undefined) {\n return;\n }\n const resourceCache = message.resourceCache;\n if (overlayImageItem.imageSrc === '' && resourceCache && resourceCache[overlayImageItem.imageUrl]) {\n const fullSizeImageSrc = getResourceSourceUrl(resourceCache[overlayImageItem.imageUrl]);\n if (fullSizeImageSrc === undefined || fullSizeImageSrc === '' || overlayImageItem.imageSrc === fullSizeImageSrc) {\n return;\n }\n setOverlayImageItem({\n ...overlayImageItem,\n imageSrc: fullSizeImageSrc\n });\n }\n // Disable eslint because we are using the overlayImageItem in this effect but don't want to have it as a dependency, as it will cause an infinite loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [messageThreadProps.messages]);\n\n const getResourceSourceUrl = (result: ResourceFetchResult): string => {\n let src = '';\n if (result.error || !result.sourceUrl) {\n src = 'blob://';\n } else {\n src = result.sourceUrl;\n }\n\n return src;\n };\n\n const onRenderAvatarCallback = useCallback(\n (userId?: string, defaultOptions?: AvatarPersonaProps) => {\n return (\n <AvatarPersona\n userId={userId}\n hidePersonaDetails={true}\n {...defaultOptions}\n dataProvider={onFetchAvatarPersonaData}\n />\n );\n },\n [onFetchAvatarPersonaData]\n );\n\n const messageThreadStyles = useMemo(() => {\n return Object.assign(\n {},\n messageThreadChatCompositeStyles(theme.semanticColors.bodyBackground),\n styles?.messageThread\n );\n }, [styles?.messageThread, theme.semanticColors.bodyBackground]);\n\n const typingIndicatorStyles = useMemo(() => {\n return Object.assign({}, styles?.typingIndicator);\n }, [styles?.typingIndicator]);\n\n const userId = toFlatCommunicationIdentifier(adapter.getState().userId);\n\n const fileUploadButtonOnChange = useCallback(\n (files: FileList | null): void => {\n if (!files) {\n return;\n }\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n const fileUploads = adapter.registerActiveFileUploads(Array.from(files));\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n fileSharing?.uploadHandler(userId, fileUploads);\n },\n [adapter, fileSharing, userId]\n );\n\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n const onRenderFileDownloads = useCallback(\n (userId: string, message: ChatMessage) => (\n <_AttachmentDownloadCards\n userId={userId}\n fileMetadata={message.files || []}\n downloadHandler={fileSharing?.downloadHandler}\n onDownloadErrorMessage={(errorMessage: string) => {\n setDownloadErrorMessage(errorMessage);\n }}\n />\n ),\n [fileSharing?.downloadHandler]\n );\n\n const onInlineImageClicked = useCallback(\n (attachmentId: string, messageId: string) => {\n const message = adapter.getState().thread.chatMessages[messageId];\n const inlinedImages = message.content?.attachments?.filter((attachment) => {\n return attachment.attachmentType === 'image' && attachment.id === attachmentId;\n });\n\n if (!inlinedImages || inlinedImages.length <= 0) {\n return;\n }\n\n const attachment = inlinedImages[0];\n\n const resourceCache = message.resourceCache;\n let imageSrc = '';\n\n if (attachment.url) {\n if (resourceCache && resourceCache[attachment.url]) {\n imageSrc = getResourceSourceUrl(resourceCache[attachment.url]);\n } else {\n adapter.downloadResourceToCache({\n threadId: adapter.getState().thread.threadId,\n messageId: messageId,\n resourceUrl: attachment.url\n });\n }\n }\n\n const titleIconRenderOptions = {\n text: message.senderDisplayName,\n size: PersonaSize.size32,\n showOverflowTooltip: false,\n imageAlt: message.senderDisplayName\n };\n\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n const titleIcon = onRenderAvatarCallback && onRenderAvatarCallback(messageSenderId, titleIconRenderOptions);\n const overlayImage: OverlayImageItem = {\n title: message.senderDisplayName || '',\n titleIcon: titleIcon,\n attachmentId: attachment.id,\n imageSrc: imageSrc,\n messageId: messageId,\n imageUrl: attachment.url || ''\n };\n\n setIsImageOverlayOpen(true);\n setOverlayImageItem(overlayImage);\n },\n [adapter, onRenderAvatarCallback, userId]\n );\n\n const inlineImageOptions = {\n onRenderInlineImage: (\n inlineImage: InlineImage,\n defaultOnRender: (inlineImage: InlineImage) => JSX.Element\n ): JSX.Element => {\n const message = adapter.getState().thread.chatMessages[inlineImage.messageId];\n const attachment = message?.content?.attachments?.find(\n (attachment) => attachment.id === inlineImage.imageAttributes.id\n );\n\n if (attachment === undefined) {\n return defaultOnRender(inlineImage);\n }\n\n let pointerEvents: 'none' | 'auto' = inlineImage.imageAttributes.src === '' ? 'none' : 'auto';\n const resourceCache = message.resourceCache;\n if (\n resourceCache &&\n attachment.previewUrl &&\n resourceCache[attachment.previewUrl] &&\n resourceCache[attachment.previewUrl].error\n ) {\n pointerEvents = 'none';\n }\n\n return (\n <span\n key={inlineImage.imageAttributes.id}\n onClick={() => onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId)}\n tabIndex={0}\n role=\"button\"\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId);\n }\n }}\n style={{ cursor: 'pointer', pointerEvents }}\n >\n {defaultOnRender(inlineImage)}\n </span>\n );\n }\n };\n\n const onDownloadButtonClicked = useCallback(\n (imageSrc: string): void => {\n if (imageSrc === '') {\n return;\n }\n if (isIOS()) {\n window.open(imageSrc, '_blank');\n } else {\n // Create a new anchor element\n const a = document.createElement('a');\n // Set the href and download attributes for the anchor element\n a.href = imageSrc;\n a.download = overlayImageItem?.attachmentId || '';\n a.rel = 'noopener noreferrer';\n a.target = '_blank';\n\n // Programmatically click the anchor element to trigger the download\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n },\n [overlayImageItem?.attachmentId]\n );\n\n const AttachFileButton = useCallback(() => {\n if (!fileSharing?.uploadHandler) {\n return null;\n }\n return (\n <FileUploadButton\n accept={fileSharing?.accept}\n multiple={fileSharing?.multiple}\n onChange={fileUploadButtonOnChange}\n />\n );\n }, [fileSharing?.accept, fileSharing?.multiple, fileSharing?.uploadHandler, fileUploadButtonOnChange]);\n\n return (\n <Stack className={chatContainer} grow>\n {options?.topic !== false && <ChatHeader {...headerProps} />}\n <Stack className={chatArea} tokens={participantListContainerPadding} horizontal grow>\n <Stack className={chatWrapper} grow>\n {options?.errorBar !== false && <ErrorBar {...errorBarProps} />}\n {\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n <FileDownloadErrorBar\n onDismissDownloadErrorMessage={useCallback(() => {\n setDownloadErrorMessage('');\n }, [])}\n fileDownloadErrorMessage={downloadErrorMessage || ''}\n />\n }\n <MessageThread\n {...messageThreadProps}\n onRenderAvatar={onRenderAvatarCallback}\n onRenderMessage={onRenderMessage}\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n onRenderFileDownloads={onRenderFileDownloads}\n inlineImageOptions={inlineImageOptions}\n numberOfChatMessagesToReload={defaultNumberOfChatMessagesToReload}\n styles={messageThreadStyles}\n />\n <Stack className={mergeStyles(sendboxContainerStyles)}>\n <div className={mergeStyles(typingIndicatorContainerStyles)}>\n {onRenderTypingIndicator ? (\n onRenderTypingIndicator(typingIndicatorProps.typingUsers)\n ) : (\n <TypingIndicator {...typingIndicatorProps} styles={typingIndicatorStyles} />\n )}\n </div>\n <Stack horizontal={formFactor === 'mobile'}>\n {formFactor === 'mobile' && (\n <Stack verticalAlign=\"center\">\n <AttachFileButton />\n </Stack>\n )}\n <Stack grow>\n <SendBox\n options={options}\n styles={styles?.sendBox}\n /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */\n adapter={adapter}\n />\n </Stack>\n {formFactor !== 'mobile' && <AttachFileButton />}\n </Stack>\n </Stack>\n </Stack>\n {\n /* @conditional-compile-remove(chat-composite-participant-pane) */\n options?.participantPane === true && (\n <ChatScreenPeoplePane\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n isMobile={formFactor === 'mobile'}\n />\n )\n }\n </Stack>\n {overlayImageItem && (\n <ImageOverlay\n {...overlayImageItem}\n isOpen={isImageOverlayOpen}\n onDismiss={() => {\n setOverlayImageItem(undefined);\n setIsImageOverlayOpen(false);\n adapter.removeResourceFromCache({\n threadId: adapter.getState().thread.threadId,\n messageId: overlayImageItem.messageId,\n resourceUrl: overlayImageItem.imageUrl\n });\n }}\n onDownloadButtonClicked={onDownloadButtonClicked}\n />\n )}\n </Stack>\n );\n};\n"]}
|