@azure/communication-react 1.14.1-alpha-202403290012 → 1.14.1-alpha-202404020012
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 +111 -204
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CH6WvEGZ.js → RichTextSendBoxWrapper-BTyywbnH.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CH6WvEGZ.js.map → RichTextSendBoxWrapper-BTyywbnH.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-qxnuqL7s.js → index-Bj9ORqhl.js} +920 -779
- package/dist/dist-cjs/communication-react/index-Bj9ORqhl.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +2 -1
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +4 -4
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +4 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +6 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/ReactionSubscriber.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/ReactionSubscriber.js +2 -2
- package/dist/dist-esm/calling-stateful-client/src/ReactionSubscriber.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +2 -2
- package/dist/dist-esm/communication-react/src/index.js +2 -0
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/AttachmentCard.d.ts +0 -4
- package/dist/dist-esm/react-components/src/components/AttachmentCard.js +4 -1
- package/dist/dist-esm/react-components/src/components/AttachmentCard.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.d.ts +5 -36
- package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js +15 -24
- package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +4 -8
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/EndCallButton.d.ts +10 -1
- package/dist/dist-esm/react-components/src/components/EndCallButton.js +93 -51
- package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ReactionButton.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/ReactionButton.js +8 -5
- package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +3 -3
- 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 +6 -6
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +23 -23
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SendBox.d.ts +5 -5
- package/dist/dist-esm/react-components/src/components/SendBox.js +16 -16
- package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js +8 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js +4 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +22 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +1 -2
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js +3 -2
- package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.d.ts +2 -1
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js +10 -12
- package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +3 -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/SendBoxUtils.d.ts +3 -3
- package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +7 -7
- 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 +1 -1
- package/dist/dist-esm/react-components/src/components/utils/common.js +1 -1
- 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/en-US/strings.json +3 -1
- package/dist/dist-esm/react-components/src/types/Attachment.d.ts +15 -88
- package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +24 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js +0 -7
- 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/buttons/EndCall.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +66 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +2 -2
- 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 +8 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +21 -21
- 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 +8 -8
- 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/CallWithChatBackedChatAdapter.d.ts +8 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +15 -15
- 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.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -2
- 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.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +1 -1
- 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 +2 -33
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +23 -15
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.d.ts +47 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js +179 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +9 -9
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +29 -29
- 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/ChatAdapter.d.ts +4 -4
- 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.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js +8 -8
- 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 → AttachmentUpload.d.ts} +10 -10
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/{FileUpload.js → AttachmentUpload.js} +12 -12
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.d.ts +38 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/{FileUploadButton.js → AttachmentUploadButton.js} +11 -9
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +2 -2
- 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/index.d.ts +2 -3
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/attachmentUploadsSelector.d.ts +29 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/attachmentUploadsSelector.js +12 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/attachmentUploadsSelector.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +2 -2
- 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 +24 -8
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendBox.js +5 -5
- package/dist/dist-esm/react-composites/src/composites/common/SendBox.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +7 -1
- package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/utils.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/common/utils.js +6 -0
- package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -0
- package/package.json +7 -7
- package/dist/dist-cjs/communication-react/index-qxnuqL7s.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +0 -48
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +0 -160
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts +0 -36
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +0 -27
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +0 -12
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +0 -1
@@ -176,7 +176,7 @@ function getDefaultExportFromCjs (x) {
|
|
176
176
|
// Copyright (c) Microsoft Corporation.
|
177
177
|
// Licensed under the MIT License.
|
178
178
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
179
|
-
var telemetryVersion = '1.14.1-alpha-
|
179
|
+
var telemetryVersion = '1.14.1-alpha-202404020012';
|
180
180
|
|
181
181
|
|
182
182
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -531,7 +531,7 @@ const getSupportedSpokenLanguages = (state, props) => {
|
|
531
531
|
|
532
532
|
// Copyright (c) Microsoft Corporation.
|
533
533
|
// Licensed under the MIT License.
|
534
|
-
var __awaiter$
|
534
|
+
var __awaiter$S = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
535
535
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
536
536
|
return new (P || (P = Promise))(function (resolve, reject) {
|
537
537
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -570,7 +570,7 @@ const _isPreviewOn = (deviceManager) => {
|
|
570
570
|
*
|
571
571
|
* @private
|
572
572
|
*/
|
573
|
-
const disposeAllLocalPreviewViews = (callClient) => __awaiter$
|
573
|
+
const disposeAllLocalPreviewViews = (callClient) => __awaiter$S(void 0, void 0, void 0, function* () {
|
574
574
|
const unparentedViews = callClient.getState().deviceManager.unparentedViews;
|
575
575
|
for (const view of unparentedViews) {
|
576
576
|
yield callClient.disposeView(undefined, undefined, view);
|
@@ -777,7 +777,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
|
|
777
777
|
|
778
778
|
// Copyright (c) Microsoft Corporation.
|
779
779
|
// Licensed under the MIT License.
|
780
|
-
var __awaiter$
|
780
|
+
var __awaiter$R = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
781
781
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
782
782
|
return new (P || (P = Promise))(function (resolve, reject) {
|
783
783
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -798,7 +798,7 @@ const areStreamsEqual = (prevStream, newStream) => {
|
|
798
798
|
* @private
|
799
799
|
*/
|
800
800
|
const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager, call, options) => {
|
801
|
-
const onStartLocalVideo = () => __awaiter$
|
801
|
+
const onStartLocalVideo = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
802
802
|
// Before the call object creates a stream, dispose of any local preview streams.
|
803
803
|
// @TODO: is there any way to parent the unparented view to the call object instead
|
804
804
|
// of disposing and creating a new stream?
|
@@ -818,7 +818,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
818
818
|
yield call.startVideo(stream);
|
819
819
|
}
|
820
820
|
});
|
821
|
-
const onStopLocalVideo = (stream) => __awaiter$
|
821
|
+
const onStopLocalVideo = (stream) => __awaiter$R(void 0, void 0, void 0, function* () {
|
822
822
|
const callId = call === null || call === void 0 ? void 0 : call.id;
|
823
823
|
if (!callId) {
|
824
824
|
return;
|
@@ -827,7 +827,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
827
827
|
yield call.stopVideo(stream);
|
828
828
|
}
|
829
829
|
});
|
830
|
-
const onToggleCamera = (options) => __awaiter$
|
830
|
+
const onToggleCamera = (options) => __awaiter$R(void 0, void 0, void 0, function* () {
|
831
831
|
const previewOn = _isPreviewOn(callClient.getState().deviceManager);
|
832
832
|
// the disposal of the unparented views is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.
|
833
833
|
// The root cause of the issue is caused by never transitioning the unparented view to the
|
@@ -884,19 +884,19 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
884
884
|
}
|
885
885
|
}
|
886
886
|
});
|
887
|
-
const onSelectMicrophone = (device) => __awaiter$
|
887
|
+
const onSelectMicrophone = (device) => __awaiter$R(void 0, void 0, void 0, function* () {
|
888
888
|
if (!deviceManager) {
|
889
889
|
return;
|
890
890
|
}
|
891
891
|
return deviceManager.selectMicrophone(device);
|
892
892
|
});
|
893
|
-
const onSelectSpeaker = (device) => __awaiter$
|
893
|
+
const onSelectSpeaker = (device) => __awaiter$R(void 0, void 0, void 0, function* () {
|
894
894
|
if (!deviceManager) {
|
895
895
|
return;
|
896
896
|
}
|
897
897
|
return deviceManager.selectSpeaker(device);
|
898
898
|
});
|
899
|
-
const onSelectCamera = (device, options) => __awaiter$
|
899
|
+
const onSelectCamera = (device, options) => __awaiter$R(void 0, void 0, void 0, function* () {
|
900
900
|
if (!deviceManager) {
|
901
901
|
return;
|
902
902
|
}
|
@@ -926,9 +926,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
926
926
|
}, options);
|
927
927
|
}
|
928
928
|
});
|
929
|
-
const onRaiseHand = () => __awaiter$
|
930
|
-
const onLowerHand = () => __awaiter$
|
931
|
-
const onToggleRaiseHand = () => __awaiter$
|
929
|
+
const onRaiseHand = () => __awaiter$R(void 0, void 0, void 0, function* () { var _a; return yield ((_a = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand)) === null || _a === void 0 ? void 0 : _a.raiseHand()); });
|
930
|
+
const onLowerHand = () => __awaiter$R(void 0, void 0, void 0, function* () { var _b; return yield ((_b = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand)) === null || _b === void 0 ? void 0 : _b.lowerHand()); });
|
931
|
+
const onToggleRaiseHand = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
932
932
|
const raiseHandFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand);
|
933
933
|
const localUserId = callClient.getState().userId;
|
934
934
|
const isLocalRaisedHand = raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.getRaisedHands().find((publishedState) => toFlatCommunicationIdentifier(publishedState.identifier) === toFlatCommunicationIdentifier(localUserId));
|
@@ -940,7 +940,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
940
940
|
}
|
941
941
|
});
|
942
942
|
/* @conditional-compile-remove(reaction) */
|
943
|
-
const onReactionClick = (reaction) => __awaiter$
|
943
|
+
const onReactionClick = (reaction) => __awaiter$R(void 0, void 0, void 0, function* () {
|
944
944
|
var _c;
|
945
945
|
if (reaction === 'like' ||
|
946
946
|
reaction === 'applause' ||
|
@@ -954,19 +954,19 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
954
954
|
}
|
955
955
|
return;
|
956
956
|
});
|
957
|
-
const onToggleMicrophone = () => __awaiter$
|
957
|
+
const onToggleMicrophone = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
958
958
|
if (!call || !(_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {
|
959
959
|
throw new Error(`Please invoke onToggleMicrophone after call is started`);
|
960
960
|
}
|
961
961
|
return call.isMuted ? yield call.unmute() : yield call.mute();
|
962
962
|
});
|
963
|
-
const onStartScreenShare = () => __awaiter$
|
964
|
-
const onStopScreenShare = () => __awaiter$
|
965
|
-
const onToggleScreenShare = () => __awaiter$
|
966
|
-
const onHangUp = (forEveryone) => __awaiter$
|
963
|
+
const onStartScreenShare = () => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
|
964
|
+
const onStopScreenShare = () => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
|
965
|
+
const onToggleScreenShare = () => __awaiter$R(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
|
966
|
+
const onHangUp = (forEveryone) => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
|
967
967
|
/* @conditional-compile-remove(PSTN-calls) */
|
968
|
-
const onToggleHold = () => __awaiter$
|
969
|
-
const onCreateLocalStreamView = (...args_1) => __awaiter$
|
968
|
+
const onToggleHold = () => __awaiter$R(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.state) === 'LocalHold' ? yield (call === null || call === void 0 ? void 0 : call.resume()) : yield (call === null || call === void 0 ? void 0 : call.hold()); });
|
969
|
+
const onCreateLocalStreamView = (...args_1) => __awaiter$R(void 0, [...args_1], void 0, function* (options = { scalingMode: 'Crop', isMirrored: true }) {
|
970
970
|
var _d;
|
971
971
|
if (!call || call.localVideoStreams.length === 0) {
|
972
972
|
return;
|
@@ -982,7 +982,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
982
982
|
const { view } = (_d = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _d !== void 0 ? _d : {};
|
983
983
|
return view ? { view } : undefined;
|
984
984
|
});
|
985
|
-
const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter$
|
985
|
+
const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter$R(void 0, [userId_1, ...args_2], void 0, function* (userId, options = { scalingMode: 'Crop' }) {
|
986
986
|
if (!call) {
|
987
987
|
return;
|
988
988
|
}
|
@@ -1019,7 +1019,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1019
1019
|
}
|
1020
1020
|
return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
|
1021
1021
|
});
|
1022
|
-
const onDisposeRemoteStreamView = (userId) => __awaiter$
|
1022
|
+
const onDisposeRemoteStreamView = (userId) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1023
1023
|
if (!call) {
|
1024
1024
|
return;
|
1025
1025
|
}
|
@@ -1040,7 +1040,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1040
1040
|
callClient.disposeView(call.id, participant.identifier, screenShareStream);
|
1041
1041
|
}
|
1042
1042
|
});
|
1043
|
-
const onDisposeRemoteVideoStreamView = (userId) => __awaiter$
|
1043
|
+
const onDisposeRemoteVideoStreamView = (userId) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1044
1044
|
if (!call) {
|
1045
1045
|
return;
|
1046
1046
|
}
|
@@ -1057,7 +1057,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1057
1057
|
callClient.disposeView(call.id, participant.identifier, remoteVideoStream);
|
1058
1058
|
}
|
1059
1059
|
});
|
1060
|
-
const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter$
|
1060
|
+
const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1061
1061
|
if (!call) {
|
1062
1062
|
return;
|
1063
1063
|
}
|
@@ -1074,7 +1074,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1074
1074
|
callClient.disposeView(call.id, participant.identifier, screenShareStream);
|
1075
1075
|
}
|
1076
1076
|
});
|
1077
|
-
const onDisposeLocalStreamView = () => __awaiter$
|
1077
|
+
const onDisposeLocalStreamView = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1078
1078
|
// If the user is currently in a call, dispose of the local stream view attached to that call.
|
1079
1079
|
const callState = call && callClient.getState().calls[call.id];
|
1080
1080
|
const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
|
@@ -1086,17 +1086,17 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1086
1086
|
// TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.
|
1087
1087
|
yield disposeAllLocalPreviewViews(callClient);
|
1088
1088
|
});
|
1089
|
-
const onSendDtmfTone = (dtmfTone) => __awaiter$
|
1089
|
+
const onSendDtmfTone = (dtmfTone) => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
1090
1090
|
const notImplemented = () => {
|
1091
1091
|
throw new Error('Not implemented, cannot call a method from an abstract object');
|
1092
1092
|
};
|
1093
1093
|
/* @conditional-compile-remove(call-readiness) */
|
1094
|
-
const askDevicePermission = (constrain) => __awaiter$
|
1094
|
+
const askDevicePermission = (constrain) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1095
1095
|
if (deviceManager) {
|
1096
1096
|
yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
|
1097
1097
|
}
|
1098
1098
|
});
|
1099
|
-
const onRemoveVideoBackgroundEffects = () => __awaiter$
|
1099
|
+
const onRemoveVideoBackgroundEffects = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1100
1100
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1101
1101
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
1102
1102
|
if (stream) {
|
@@ -1108,7 +1108,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1108
1108
|
}
|
1109
1109
|
}
|
1110
1110
|
});
|
1111
|
-
const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$
|
1111
|
+
const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1112
1112
|
var _e;
|
1113
1113
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1114
1114
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
@@ -1121,7 +1121,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1121
1121
|
return createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundBlurConfig));
|
1122
1122
|
}
|
1123
1123
|
});
|
1124
|
-
const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$
|
1124
|
+
const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1125
1125
|
var _f;
|
1126
1126
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1127
1127
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
@@ -1135,39 +1135,39 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1135
1135
|
}
|
1136
1136
|
});
|
1137
1137
|
/* @conditional-compile-remove(close-captions) */
|
1138
|
-
const onStartCaptions = (options) => __awaiter$
|
1138
|
+
const onStartCaptions = (options) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1139
1139
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1140
1140
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.startCaptions(options));
|
1141
1141
|
});
|
1142
1142
|
/* @conditional-compile-remove(close-captions) */
|
1143
|
-
const onStopCaptions = () => __awaiter$
|
1143
|
+
const onStopCaptions = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1144
1144
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1145
1145
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.stopCaptions());
|
1146
1146
|
});
|
1147
1147
|
/* @conditional-compile-remove(close-captions) */
|
1148
|
-
const onSetSpokenLanguage = (language) => __awaiter$
|
1148
|
+
const onSetSpokenLanguage = (language) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1149
1149
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1150
1150
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.setSpokenLanguage(language));
|
1151
1151
|
});
|
1152
1152
|
/* @conditional-compile-remove(close-captions) */
|
1153
|
-
const onSetCaptionLanguage = (language) => __awaiter$
|
1153
|
+
const onSetCaptionLanguage = (language) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1154
1154
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1155
1155
|
yield captionsFeature.setCaptionLanguage(language);
|
1156
1156
|
});
|
1157
1157
|
/* @conditional-compile-remove(end-of-call-survey) */
|
1158
|
-
const onSubmitSurvey = (survey) => __awaiter$
|
1158
|
+
const onSubmitSurvey = (survey) => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
|
1159
1159
|
/* @conditional-compile-remove(spotlight) */
|
1160
|
-
const onStartSpotlight = (userIds) => __awaiter$
|
1160
|
+
const onStartSpotlight = (userIds) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1161
1161
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1162
1162
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
|
1163
1163
|
});
|
1164
1164
|
/* @conditional-compile-remove(spotlight) */
|
1165
|
-
const onStopSpotlight = (userIds) => __awaiter$
|
1165
|
+
const onStopSpotlight = (userIds) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1166
1166
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1167
1167
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
|
1168
1168
|
});
|
1169
1169
|
/* @conditional-compile-remove(spotlight) */
|
1170
|
-
const onStopAllSpotlight = () => __awaiter$
|
1170
|
+
const onStopAllSpotlight = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1171
1171
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopAllSpotlight());
|
1172
1172
|
});
|
1173
1173
|
/* @conditional-compile-remove(spotlight) */
|
@@ -1176,24 +1176,24 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1176
1176
|
const canRemoveSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.removeParticipantsSpotlight.isPresent;
|
1177
1177
|
/* @conditional-compile-remove(spotlight) */
|
1178
1178
|
const onStartLocalSpotlight = canStartSpotlight
|
1179
|
-
? () => __awaiter$
|
1179
|
+
? () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1180
1180
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight());
|
1181
1181
|
})
|
1182
1182
|
: undefined;
|
1183
1183
|
/* @conditional-compile-remove(spotlight) */
|
1184
|
-
const onStopLocalSpotlight = () => __awaiter$
|
1184
|
+
const onStopLocalSpotlight = () => __awaiter$R(void 0, void 0, void 0, function* () {
|
1185
1185
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight());
|
1186
1186
|
});
|
1187
1187
|
/* @conditional-compile-remove(spotlight) */
|
1188
1188
|
const onStartRemoteSpotlight = canStartSpotlight
|
1189
|
-
? (userIds) => __awaiter$
|
1189
|
+
? (userIds) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1190
1190
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1191
1191
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
|
1192
1192
|
})
|
1193
1193
|
: undefined;
|
1194
1194
|
/* @conditional-compile-remove(spotlight) */
|
1195
1195
|
const onStopRemoteSpotlight = canRemoveSpotlight
|
1196
|
-
? (userIds) => __awaiter$
|
1196
|
+
? (userIds) => __awaiter$R(void 0, void 0, void 0, function* () {
|
1197
1197
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1198
1198
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
|
1199
1199
|
})
|
@@ -1261,7 +1261,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1261
1261
|
|
1262
1262
|
// Copyright (c) Microsoft Corporation.
|
1263
1263
|
// Licensed under the MIT License.
|
1264
|
-
var __awaiter$
|
1264
|
+
var __awaiter$Q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1265
1265
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1266
1266
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1267
1267
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1287,7 +1287,7 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1287
1287
|
return callAgent === null || callAgent === void 0 ? void 0 : callAgent.startCall(participants, options);
|
1288
1288
|
},
|
1289
1289
|
/* @conditional-compile-remove(PSTN-calls) */
|
1290
|
-
onAddParticipant: (userId, options) => __awaiter$
|
1290
|
+
onAddParticipant: (userId, options) => __awaiter$Q(void 0, void 0, void 0, function* () {
|
1291
1291
|
const participant = _toCommunicationIdentifier(userId);
|
1292
1292
|
if (communicationCommon.isPhoneNumberIdentifier(participant)) {
|
1293
1293
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant, options);
|
@@ -1295,7 +1295,7 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1295
1295
|
else if (communicationCommon.isCommunicationUserIdentifier(participant) || communicationCommon.isMicrosoftTeamsUserIdentifier(participant)) {
|
1296
1296
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant);
|
1297
1297
|
}
|
1298
|
-
}), onRemoveParticipant: (userId) => __awaiter$
|
1298
|
+
}), onRemoveParticipant: (userId) => __awaiter$Q(void 0, void 0, void 0, function* () {
|
1299
1299
|
const participant = _toCommunicationIdentifier(userId);
|
1300
1300
|
yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
|
1301
1301
|
}) });
|
@@ -1303,7 +1303,7 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1303
1303
|
|
1304
1304
|
// Copyright (c) Microsoft Corporation.
|
1305
1305
|
// Licensed under the MIT License.
|
1306
|
-
var __awaiter$
|
1306
|
+
var __awaiter$P = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1307
1307
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1308
1308
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1309
1309
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1335,7 +1335,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
|
|
1335
1335
|
},
|
1336
1336
|
/* @conditional-compile-remove(teams-identity-support) */
|
1337
1337
|
/* @conditional-compile-remove(PSTN-calls) */
|
1338
|
-
onAddParticipant: (userId, options) => __awaiter$
|
1338
|
+
onAddParticipant: (userId, options) => __awaiter$P(void 0, void 0, void 0, function* () {
|
1339
1339
|
const participant = _toCommunicationIdentifier(userId);
|
1340
1340
|
/* @conditional-compile-remove(teams-identity-support) */
|
1341
1341
|
const threadId = options === null || options === void 0 ? void 0 : options.threadId;
|
@@ -1351,7 +1351,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
|
|
1351
1351
|
}
|
1352
1352
|
/* @conditional-compile-remove(teams-identity-support) */
|
1353
1353
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant);
|
1354
|
-
}), onRemoveParticipant: (userId) => __awaiter$
|
1354
|
+
}), onRemoveParticipant: (userId) => __awaiter$P(void 0, void 0, void 0, function* () {
|
1355
1355
|
const participant = _toCommunicationIdentifier(userId);
|
1356
1356
|
if (communicationCommon.isCommunicationUserIdentifier(participant)) {
|
1357
1357
|
throw new Error('CommunicationIdentifier in Teams call is not supported!');
|
@@ -1442,7 +1442,7 @@ const getCaptionsSpeakerIdentifier = (captions) => {
|
|
1442
1442
|
|
1443
1443
|
// Copyright (c) Microsoft Corporation.
|
1444
1444
|
// Licensed under the MIT License.
|
1445
|
-
var __awaiter$
|
1445
|
+
var __awaiter$O = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1446
1446
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1447
1447
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1448
1448
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1491,13 +1491,13 @@ class ProxyDeviceManager {
|
|
1491
1491
|
this.selectCamera = (videoDeviceInfo) => {
|
1492
1492
|
this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
|
1493
1493
|
};
|
1494
|
-
this.videoDevicesUpdated = () => __awaiter$
|
1494
|
+
this.videoDevicesUpdated = () => __awaiter$O(this, void 0, void 0, function* () {
|
1495
1495
|
// Device Manager always has a camera with '' name if there are no real camera devices available.
|
1496
1496
|
// We don't want to show that in the UI.
|
1497
1497
|
const realCameras = (yield this._deviceManager.getCameras()).filter((c) => !!c.name);
|
1498
1498
|
this._context.setDeviceManagerCameras(dedupeById(realCameras));
|
1499
1499
|
});
|
1500
|
-
this.audioDevicesUpdated = () => __awaiter$
|
1500
|
+
this.audioDevicesUpdated = () => __awaiter$O(this, void 0, void 0, function* () {
|
1501
1501
|
this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
|
1502
1502
|
this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
|
1503
1503
|
});
|
@@ -1901,7 +1901,7 @@ function convertFromSDKToRaisedHandState(raisedHand) {
|
|
1901
1901
|
|
1902
1902
|
// Copyright (c) Microsoft Corporation.
|
1903
1903
|
// Licensed under the MIT License.
|
1904
|
-
var __awaiter$
|
1904
|
+
var __awaiter$N = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1905
1905
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1906
1906
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1907
1907
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1918,6 +1918,11 @@ immer.enablePatches();
|
|
1918
1918
|
* @private
|
1919
1919
|
*/
|
1920
1920
|
const MAX_CALL_HISTORY_LENGTH = 10;
|
1921
|
+
/* @conditional-compile-remove(reaction) */
|
1922
|
+
/**
|
1923
|
+
* @private
|
1924
|
+
*/
|
1925
|
+
const REACTION_ANIMATION_TIME_MS = 4133;
|
1921
1926
|
/**
|
1922
1927
|
* @private
|
1923
1928
|
*/
|
@@ -2298,7 +2303,7 @@ let CallContext$2 = class CallContext {
|
|
2298
2303
|
if (reactionMessage) {
|
2299
2304
|
this._timeOutId[participantKey] = setTimeout(() => {
|
2300
2305
|
clearParticipantReactionState(this, callId, participantKey);
|
2301
|
-
},
|
2306
|
+
}, REACTION_ANIMATION_TIME_MS);
|
2302
2307
|
}
|
2303
2308
|
});
|
2304
2309
|
}
|
@@ -2799,7 +2804,7 @@ let CallContext$2 = class CallContext {
|
|
2799
2804
|
* @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
|
2800
2805
|
*/
|
2801
2806
|
withAsyncErrorTeedToState(action, target) {
|
2802
|
-
return (...args) => __awaiter$
|
2807
|
+
return (...args) => __awaiter$N(this, void 0, void 0, function* () {
|
2803
2808
|
try {
|
2804
2809
|
return yield action(...args);
|
2805
2810
|
}
|
@@ -3284,7 +3289,7 @@ function _logStreamEvent(eventName, streamLogInfo, error) {
|
|
3284
3289
|
|
3285
3290
|
// Copyright (c) Microsoft Corporation.
|
3286
3291
|
// Licensed under the MIT License.
|
3287
|
-
var __awaiter$
|
3292
|
+
var __awaiter$M = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3288
3293
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3289
3294
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3290
3295
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3294,7 +3299,7 @@ var __awaiter$L = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
3294
3299
|
});
|
3295
3300
|
};
|
3296
3301
|
function createViewVideo(context, internalContext, callId, stream, participantId, options) {
|
3297
|
-
return __awaiter$
|
3302
|
+
return __awaiter$M(this, void 0, void 0, function* () {
|
3298
3303
|
// we can only have 3 types of createView
|
3299
3304
|
let streamEventType;
|
3300
3305
|
// we will reuse these for local as well but we need to make sure the remote stream is passed in like before.
|
@@ -3423,7 +3428,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
|
|
3423
3428
|
});
|
3424
3429
|
}
|
3425
3430
|
function createViewUnparentedVideo(context, internalContext, stream, options) {
|
3426
|
-
return __awaiter$
|
3431
|
+
return __awaiter$M(this, void 0, void 0, function* () {
|
3427
3432
|
const renderInfo = internalContext.getUnparentedRenderInfo(stream);
|
3428
3433
|
if (renderInfo && renderInfo.status === 'Rendered') {
|
3429
3434
|
console.warn('Unparented LocalVideoStream is already rendered');
|
@@ -3592,7 +3597,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
|
|
3592
3597
|
// Render LocalVideoStream that is not part of a Call
|
3593
3598
|
// Because it is not part of the call we don't tee errors to state naturally (e.g. via a Call Client function such as startVideo).
|
3594
3599
|
// We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.
|
3595
|
-
return context.withAsyncErrorTeedToState(() => __awaiter$
|
3600
|
+
return context.withAsyncErrorTeedToState(() => __awaiter$M(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
|
3596
3601
|
}
|
3597
3602
|
else {
|
3598
3603
|
_logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
|
@@ -3778,7 +3783,7 @@ class RecordingSubscriber {
|
|
3778
3783
|
|
3779
3784
|
// Copyright (c) Microsoft Corporation.
|
3780
3785
|
// Licensed under the MIT License.
|
3781
|
-
var __awaiter$
|
3786
|
+
var __awaiter$L = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3782
3787
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3783
3788
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3784
3789
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3803,7 +3808,7 @@ class PPTLiveSubscriber {
|
|
3803
3808
|
this._context.setCallPPTLiveActive(this._callIdRef.callId, this._pptLive.isActive);
|
3804
3809
|
this.checkAndUpdatePPTLiveParticipant();
|
3805
3810
|
};
|
3806
|
-
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$
|
3811
|
+
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$L(this, void 0, void 0, function* () {
|
3807
3812
|
if (this._pptLive.isActive) {
|
3808
3813
|
// TODO: need to refactor if Web Calling SDK has this logic ready
|
3809
3814
|
if (this._call.isScreenSharingOn) {
|
@@ -4015,7 +4020,7 @@ class CapabilitiesSubscriber {
|
|
4015
4020
|
* @private
|
4016
4021
|
*/
|
4017
4022
|
class ReactionSubscriber {
|
4018
|
-
constructor(callIdRef, context,
|
4023
|
+
constructor(callIdRef, context, reaction) {
|
4019
4024
|
this.subscribe = () => {
|
4020
4025
|
this._reaction.on('reaction', this.onReactionEvent);
|
4021
4026
|
};
|
@@ -4027,7 +4032,7 @@ class ReactionSubscriber {
|
|
4027
4032
|
};
|
4028
4033
|
this._callIdRef = callIdRef;
|
4029
4034
|
this._context = context;
|
4030
|
-
this._reaction =
|
4035
|
+
this._reaction = reaction;
|
4031
4036
|
this.subscribe();
|
4032
4037
|
}
|
4033
4038
|
}
|
@@ -4312,7 +4317,7 @@ class CallSubscriber {
|
|
4312
4317
|
|
4313
4318
|
// Copyright (c) Microsoft Corporation.
|
4314
4319
|
// Licensed under the MIT License.
|
4315
|
-
var __awaiter$
|
4320
|
+
var __awaiter$K = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4316
4321
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4317
4322
|
return new (P || (P = Promise))(function (resolve, reject) {
|
4318
4323
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4332,14 +4337,14 @@ class ProxyIncomingCall {
|
|
4332
4337
|
switch (prop) {
|
4333
4338
|
case 'accept': {
|
4334
4339
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4335
|
-
return __awaiter$
|
4340
|
+
return __awaiter$K(this, void 0, void 0, function* () {
|
4336
4341
|
return yield target.accept(...args);
|
4337
4342
|
});
|
4338
4343
|
}, 'IncomingCall.accept');
|
4339
4344
|
}
|
4340
4345
|
case 'reject': {
|
4341
4346
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4342
|
-
return __awaiter$
|
4347
|
+
return __awaiter$K(this, void 0, void 0, function* () {
|
4343
4348
|
return yield target.reject(...args);
|
4344
4349
|
});
|
4345
4350
|
}, 'IncomingCall.reject');
|
@@ -4580,7 +4585,7 @@ const clearCallRelatedState = (context, internalContext) => {
|
|
4580
4585
|
|
4581
4586
|
// Copyright (c) Microsoft Corporation.
|
4582
4587
|
// Licensed under the MIT License.
|
4583
|
-
var __awaiter$
|
4588
|
+
var __awaiter$J = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4584
4589
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4585
4590
|
return new (P || (P = Promise))(function (resolve, reject) {
|
4586
4591
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4606,56 +4611,56 @@ class ProxyCallCommon {
|
|
4606
4611
|
switch (prop) {
|
4607
4612
|
case 'mute': {
|
4608
4613
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4609
|
-
return __awaiter$
|
4614
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4610
4615
|
return yield target.mute(...args);
|
4611
4616
|
});
|
4612
4617
|
}, 'Call.mute');
|
4613
4618
|
}
|
4614
4619
|
case 'unmute': {
|
4615
4620
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4616
|
-
return __awaiter$
|
4621
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4617
4622
|
return yield target.unmute(...args);
|
4618
4623
|
});
|
4619
4624
|
}, 'Call.unmute');
|
4620
4625
|
}
|
4621
4626
|
case 'startVideo': {
|
4622
4627
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4623
|
-
return __awaiter$
|
4628
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4624
4629
|
return yield target.startVideo(...args);
|
4625
4630
|
});
|
4626
4631
|
}, 'Call.startVideo');
|
4627
4632
|
}
|
4628
4633
|
case 'stopVideo': {
|
4629
4634
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4630
|
-
return __awaiter$
|
4635
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4631
4636
|
return yield target.stopVideo(...args);
|
4632
4637
|
});
|
4633
4638
|
}, 'Call.stopVideo');
|
4634
4639
|
}
|
4635
4640
|
case 'startScreenSharing': {
|
4636
4641
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4637
|
-
return __awaiter$
|
4642
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4638
4643
|
return yield target.startScreenSharing(...args);
|
4639
4644
|
});
|
4640
4645
|
}, 'Call.startScreenSharing');
|
4641
4646
|
}
|
4642
4647
|
case 'stopScreenSharing': {
|
4643
4648
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4644
|
-
return __awaiter$
|
4649
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4645
4650
|
return yield target.stopScreenSharing(...args);
|
4646
4651
|
});
|
4647
4652
|
}, 'Call.stopScreenSharing');
|
4648
4653
|
}
|
4649
4654
|
case 'hold': {
|
4650
4655
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4651
|
-
return __awaiter$
|
4656
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4652
4657
|
return yield target.hold(...args);
|
4653
4658
|
});
|
4654
4659
|
}, 'Call.hold');
|
4655
4660
|
}
|
4656
4661
|
case 'resume': {
|
4657
4662
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
4658
|
-
return __awaiter$
|
4663
|
+
return __awaiter$J(this, void 0, void 0, function* () {
|
4659
4664
|
return yield target.resume(...args);
|
4660
4665
|
});
|
4661
4666
|
}, 'Call.resume');
|
@@ -4707,7 +4712,7 @@ class ProxyTeamsCaptions {
|
|
4707
4712
|
get(target, prop) {
|
4708
4713
|
switch (prop) {
|
4709
4714
|
case 'startCaptions':
|
4710
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4715
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4711
4716
|
var _a, _b;
|
4712
4717
|
this._context.setStartCaptionsInProgress(this._call.id, true);
|
4713
4718
|
const ret = yield target.startCaptions(...args);
|
@@ -4715,7 +4720,7 @@ class ProxyTeamsCaptions {
|
|
4715
4720
|
return ret;
|
4716
4721
|
}), 'Call.feature');
|
4717
4722
|
case 'stopCaptions':
|
4718
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4723
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4719
4724
|
const ret = yield target.stopCaptions(...args);
|
4720
4725
|
this._context.setIsCaptionActive(this._call.id, false);
|
4721
4726
|
this._context.setStartCaptionsInProgress(this._call.id, false);
|
@@ -4723,13 +4728,13 @@ class ProxyTeamsCaptions {
|
|
4723
4728
|
return ret;
|
4724
4729
|
}), 'Call.feature');
|
4725
4730
|
case 'setSpokenLanguage':
|
4726
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4731
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4727
4732
|
const ret = yield target.setSpokenLanguage(...args);
|
4728
4733
|
this._context.setSelectedSpokenLanguage(this._call.id, args[0]);
|
4729
4734
|
return ret;
|
4730
4735
|
}), 'Call.feature');
|
4731
4736
|
case 'setCaptionLanguage':
|
4732
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4737
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4733
4738
|
const ret = yield target.setCaptionLanguage(...args);
|
4734
4739
|
this._context.setSelectedCaptionLanguage(this._call.id, args[0]);
|
4735
4740
|
return ret;
|
@@ -4751,7 +4756,7 @@ class ProxyCaptions {
|
|
4751
4756
|
get(target, prop) {
|
4752
4757
|
switch (prop) {
|
4753
4758
|
case 'startCaptions':
|
4754
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4759
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4755
4760
|
var _a, _b;
|
4756
4761
|
this._context.setStartCaptionsInProgress(this._call.id, true);
|
4757
4762
|
const ret = yield target.startCaptions(...args);
|
@@ -4759,7 +4764,7 @@ class ProxyCaptions {
|
|
4759
4764
|
return ret;
|
4760
4765
|
}), 'Call.feature');
|
4761
4766
|
case 'stopCaptions':
|
4762
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4767
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4763
4768
|
const ret = yield target.stopCaptions(...args);
|
4764
4769
|
this._context.setIsCaptionActive(this._call.id, false);
|
4765
4770
|
this._context.setStartCaptionsInProgress(this._call.id, false);
|
@@ -4767,7 +4772,7 @@ class ProxyCaptions {
|
|
4767
4772
|
return ret;
|
4768
4773
|
}), 'Call.feature');
|
4769
4774
|
case 'setSpokenLanguage':
|
4770
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4775
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4771
4776
|
const ret = yield target.setSpokenLanguage(...args);
|
4772
4777
|
this._context.setSelectedSpokenLanguage(this._call.id, args[0]);
|
4773
4778
|
return ret;
|
@@ -4788,12 +4793,12 @@ class ProxySpotlightCallFeature {
|
|
4788
4793
|
get(target, prop) {
|
4789
4794
|
switch (prop) {
|
4790
4795
|
case 'startSpotlight':
|
4791
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4796
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4792
4797
|
const ret = yield target.startSpotlight(...args);
|
4793
4798
|
return ret;
|
4794
4799
|
}), 'Call.feature');
|
4795
4800
|
case 'stopSpotlight':
|
4796
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
4801
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
|
4797
4802
|
const ret = yield target.stopSpotlight(...args);
|
4798
4803
|
return ret;
|
4799
4804
|
}), 'Call.feature');
|
@@ -4836,7 +4841,7 @@ class ProxyTransferCallFeature {
|
|
4836
4841
|
|
4837
4842
|
// Copyright (c) Microsoft Corporation.
|
4838
4843
|
// Licensed under the MIT License.
|
4839
|
-
var __awaiter$
|
4844
|
+
var __awaiter$I = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4840
4845
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4841
4846
|
return new (P || (P = Promise))(function (resolve, reject) {
|
4842
4847
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4850,7 +4855,7 @@ class ProxyCall extends ProxyCallCommon {
|
|
4850
4855
|
switch (prop) {
|
4851
4856
|
case 'addParticipant': {
|
4852
4857
|
return this.getContext().withAsyncErrorTeedToState(function (...args) {
|
4853
|
-
return __awaiter$
|
4858
|
+
return __awaiter$I(this, void 0, void 0, function* () {
|
4854
4859
|
return yield target.addParticipant(...args);
|
4855
4860
|
});
|
4856
4861
|
}, 'Call.addParticipant');
|
@@ -5085,7 +5090,7 @@ class InternalCallContext {
|
|
5085
5090
|
|
5086
5091
|
// Copyright (c) Microsoft Corporation.
|
5087
5092
|
// Licensed under the MIT License.
|
5088
|
-
var __awaiter$
|
5093
|
+
var __awaiter$H = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5089
5094
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
5090
5095
|
return new (P || (P = Promise))(function (resolve, reject) {
|
5091
5096
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -5100,7 +5105,7 @@ class ProxyTeamsCall extends ProxyCallCommon {
|
|
5100
5105
|
switch (prop) {
|
5101
5106
|
case 'addParticipant': {
|
5102
5107
|
return this.getContext().withAsyncErrorTeedToState(function (...args) {
|
5103
|
-
return __awaiter$
|
5108
|
+
return __awaiter$H(this, void 0, void 0, function* () {
|
5104
5109
|
return yield target.addParticipant(...args);
|
5105
5110
|
});
|
5106
5111
|
}, 'TeamsCall.addParticipant');
|
@@ -5217,7 +5222,7 @@ const teamsCallAgentDeclaratify = (callAgent, context, internalContext) => {
|
|
5217
5222
|
|
5218
5223
|
// Copyright (c) Microsoft Corporation.
|
5219
5224
|
// Licensed under the MIT License.
|
5220
|
-
var __awaiter$
|
5225
|
+
var __awaiter$G = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5221
5226
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
5222
5227
|
return new (P || (P = Promise))(function (resolve, reject) {
|
5223
5228
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -5239,7 +5244,7 @@ class ProxyVideoStreamRendererView {
|
|
5239
5244
|
get(target, prop) {
|
5240
5245
|
switch (prop) {
|
5241
5246
|
case 'updateScalingMode': {
|
5242
|
-
return (...args) => __awaiter$
|
5247
|
+
return (...args) => __awaiter$G(this, void 0, void 0, function* () {
|
5243
5248
|
yield target.updateScalingMode(...args);
|
5244
5249
|
this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);
|
5245
5250
|
});
|
@@ -5260,7 +5265,7 @@ const videoStreamRendererViewDeclaratify = (view, context, callId, participantId
|
|
5260
5265
|
|
5261
5266
|
// Copyright (c) Microsoft Corporation.
|
5262
5267
|
// Licensed under the MIT License.
|
5263
|
-
var __awaiter$
|
5268
|
+
var __awaiter$F = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5264
5269
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
5265
5270
|
return new (P || (P = Promise))(function (resolve, reject) {
|
5266
5271
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -5282,7 +5287,7 @@ class ProxyCallClient {
|
|
5282
5287
|
get(target, prop) {
|
5283
5288
|
switch (prop) {
|
5284
5289
|
case 'createCallAgent': {
|
5285
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
5290
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$F(this, void 0, void 0, function* () {
|
5286
5291
|
// createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
|
5287
5292
|
// callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
|
5288
5293
|
// callAgent if the createCallAgent succeeds.
|
@@ -5295,7 +5300,7 @@ class ProxyCallClient {
|
|
5295
5300
|
}), 'CallClient.createCallAgent');
|
5296
5301
|
}
|
5297
5302
|
case 'createTeamsCallAgent': {
|
5298
|
-
/* @conditional-compile-remove(teams-identity-support) */ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
5303
|
+
/* @conditional-compile-remove(teams-identity-support) */ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$F(this, void 0, void 0, function* () {
|
5299
5304
|
// createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
|
5300
5305
|
// callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
|
5301
5306
|
// callAgent if the createCallAgent succeeds.
|
@@ -5308,7 +5313,7 @@ class ProxyCallClient {
|
|
5308
5313
|
}), 'CallClient.createTeamsCallAgent');
|
5309
5314
|
}
|
5310
5315
|
case 'getDeviceManager': {
|
5311
|
-
return this._context.withAsyncErrorTeedToState(() => __awaiter$
|
5316
|
+
return this._context.withAsyncErrorTeedToState(() => __awaiter$F(this, void 0, void 0, function* () {
|
5312
5317
|
// As of writing, the SDK always returns the same instance of DeviceManager so we keep a reference of
|
5313
5318
|
// DeviceManager and if it does not change we return the cached DeclarativeDeviceManager. If it does not we'll
|
5314
5319
|
// throw an error that indicate we need to fix this issue as our implementation has diverged from the SDK.
|
@@ -5337,7 +5342,7 @@ class ProxyCallClient {
|
|
5337
5342
|
/**
|
5338
5343
|
* add to this object if we want to proxy anything else off the DebugInfo feature object.
|
5339
5344
|
*/
|
5340
|
-
return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$
|
5345
|
+
return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$F(this, void 0, void 0, function* () {
|
5341
5346
|
const environmentInfo = yield feature.getEnvironmentInfo();
|
5342
5347
|
this._context.setEnvironmentInfo(environmentInfo);
|
5343
5348
|
return environmentInfo;
|
@@ -5398,7 +5403,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
|
|
5398
5403
|
});
|
5399
5404
|
Object.defineProperty(callClient, 'createView', {
|
5400
5405
|
configurable: false,
|
5401
|
-
value: (callId, participantId, stream, options) => __awaiter$
|
5406
|
+
value: (callId, participantId, stream, options) => __awaiter$F(void 0, void 0, void 0, function* () {
|
5402
5407
|
const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
|
5403
5408
|
const result = yield createView(context, internalContext, callId, participantIdKind, stream, options);
|
5404
5409
|
// We only need to declaratify the VideoStreamRendererView object for remote participants. Because the updateScalingMode only needs to be called on remote participant stream views.
|
@@ -5631,7 +5636,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
5631
5636
|
wordBreak: 'break-word'
|
5632
5637
|
});
|
5633
5638
|
|
5634
|
-
var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",boldTooltip:"Bold",italicTooltip:"Italic",underlineTooltip:"Underline",bulletListTooltip:"Bulleted list",numberListTooltip:"Numbered list",increaseIndentTooltip:"Increase indent",decreaseIndentTooltip:"Decrease indent",insertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",insertRowOrColumnMenu:"Insert",insertTableMenuTitle:"Insert {column} x {row} table",insertRowAboveMenu:"Insert above",insertRowBelowMenu:"Insert below",insertColumnLeftMenu:"Insert left",insertColumnRightMenu:"Insert right",deleteRowOrColumnMenu:"Delete",deleteColumnMenu:"Delete column",deleteRowMenu:"Delete row",deleteTableMenu:"Delete table"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
|
5639
|
+
var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",boldTooltip:"Bold",italicTooltip:"Italic",underlineTooltip:"Underline",bulletListTooltip:"Bulleted list",numberListTooltip:"Numbered list",increaseIndentTooltip:"Increase indent",decreaseIndentTooltip:"Decrease indent",insertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",insertRowOrColumnMenu:"Insert",insertTableMenuTitle:"Insert {column} x {row} table",insertRowAboveMenu:"Insert above",insertRowBelowMenu:"Insert below",insertColumnLeftMenu:"Insert left",insertColumnRightMenu:"Insert right",deleteRowOrColumnMenu:"Delete",deleteColumnMenu:"Delete column",deleteRowMenu:"Delete row",deleteTableMenu:"Delete table"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
|
5635
5640
|
|
5636
5641
|
// Copyright (c) Microsoft Corporation.
|
5637
5642
|
// Licensed under the MIT License.
|
@@ -5889,13 +5894,6 @@ const formatInlineElements = (str, vars) => {
|
|
5889
5894
|
|
5890
5895
|
// Copyright (c) Microsoft Corporation.
|
5891
5896
|
// Licensed under the MIT License.
|
5892
|
-
/**
|
5893
|
-
* @private
|
5894
|
-
*
|
5895
|
-
* @param fileName
|
5896
|
-
* @returns string
|
5897
|
-
*/
|
5898
|
-
const extension = (fileName) => fileName.split('.').pop() || '';
|
5899
5897
|
/**
|
5900
5898
|
* @private
|
5901
5899
|
* @param dismissedErrors
|
@@ -7969,7 +7967,7 @@ const _MentionPopover = (props) => {
|
|
7969
7967
|
|
7970
7968
|
// Copyright (c) Microsoft Corporation.
|
7971
7969
|
// Licensed under the MIT License.
|
7972
|
-
var __awaiter$
|
7970
|
+
var __awaiter$E = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
7973
7971
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
7974
7972
|
return new (P || (P = Promise))(function (resolve, reject) {
|
7975
7973
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8155,7 +8153,7 @@ const TextFieldWithMention = (props) => {
|
|
8155
8153
|
onSuggestionSelected,
|
8156
8154
|
updateMentionSuggestions
|
8157
8155
|
]);
|
8158
|
-
const debouncedQueryUpdate = useDebounce.useDebouncedCallback((query) => __awaiter$
|
8156
|
+
const debouncedQueryUpdate = useDebounce.useDebouncedCallback((query) => __awaiter$E(void 0, void 0, void 0, function* () {
|
8159
8157
|
var _a;
|
8160
8158
|
let suggestions = (_a = (yield (mentionLookupOptions === null || mentionLookupOptions === void 0 ? void 0 : mentionLookupOptions.onQueryUpdated(query)))) !== null && _a !== void 0 ? _a : [];
|
8161
8159
|
suggestions = suggestions.filter((suggestion) => suggestion.displayText.trim() !== '');
|
@@ -8332,7 +8330,7 @@ const TextFieldWithMention = (props) => {
|
|
8332
8330
|
});
|
8333
8331
|
}
|
8334
8332
|
}, [updateSelectionIndexesWithMentionIfNeeded, setSelectionStartValue, setSelectionEndValue]);
|
8335
|
-
const handleOnChange = React.useCallback((_b) => __awaiter$
|
8333
|
+
const handleOnChange = React.useCallback((_b) => __awaiter$E(void 0, [_b], void 0, function* ({ currentSelectionEnd, currentSelectionStart, currentTriggerStartIndex, event, htmlTextValue, inputTextValue, previousSelectionEnd, previousSelectionStart, tagsValue, updatedValue }) {
|
8336
8334
|
var _c;
|
8337
8335
|
debouncedQueryUpdate.cancel();
|
8338
8336
|
if (event.currentTarget === null) {
|
@@ -8770,7 +8768,7 @@ const SendBoxErrors = (props) => {
|
|
8770
8768
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
8771
8769
|
/**
|
8772
8770
|
* Conditionally modify locale strings passed to the attachment card
|
8773
|
-
* @returns
|
8771
|
+
* @returns attachment upload card strings
|
8774
8772
|
*/
|
8775
8773
|
const useLocaleAttachmentCardStringsTrampoline = () => {
|
8776
8774
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
@@ -8803,7 +8801,7 @@ const attachmentNameContainerClassName = react.mergeStyles({
|
|
8803
8801
|
|
8804
8802
|
// Copyright (c) Microsoft Corporation.
|
8805
8803
|
// Licensed under the MIT License.
|
8806
|
-
var __awaiter$
|
8804
|
+
var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
8807
8805
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
8808
8806
|
return new (P || (P = Promise))(function (resolve, reject) {
|
8809
8807
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8820,8 +8818,11 @@ var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
8820
8818
|
*/
|
8821
8819
|
const _AttachmentCard = (props) => {
|
8822
8820
|
var _a, _b, _c, _d;
|
8823
|
-
const { attachment,
|
8821
|
+
const { attachment, menuActions, onActionHandlerFailed } = props;
|
8824
8822
|
const attachmentCardStyles = useAttachmentCardStyles();
|
8823
|
+
const progress = React.useMemo(() => {
|
8824
|
+
return attachment.progress;
|
8825
|
+
}, [attachment.progress]);
|
8825
8826
|
const isUploadComplete = React.useMemo(() => {
|
8826
8827
|
return progress !== undefined && progress > 0 && progress < 1;
|
8827
8828
|
}, [progress]);
|
@@ -8872,7 +8873,7 @@ const getMenuItems = (menuActions, attachment, handleOnClickError) => {
|
|
8872
8873
|
React.createElement(reactComponents.MenuTrigger, null,
|
8873
8874
|
React.createElement(reactComponents.ToolbarButton, { "aria-label": "More", icon: React.createElement(reactIcons.MoreHorizontal24Filled, null) })),
|
8874
8875
|
React.createElement(reactComponents.MenuPopover, null,
|
8875
|
-
React.createElement(reactComponents.MenuList, null, menuActions.map((menuItem, index) => (React.createElement(reactComponents.MenuItem, { key: index, icon: menuItem.icon, onClick: () => __awaiter$
|
8876
|
+
React.createElement(reactComponents.MenuList, null, menuActions.map((menuItem, index) => (React.createElement(reactComponents.MenuItem, { key: index, icon: menuItem.icon, onClick: () => __awaiter$D(void 0, void 0, void 0, function* () {
|
8876
8877
|
try {
|
8877
8878
|
yield menuItem.onClick(attachment);
|
8878
8879
|
}
|
@@ -8922,7 +8923,7 @@ const actionIconStyle = { height: '1rem' };
|
|
8922
8923
|
*/
|
8923
8924
|
const _AttachmentUploadCards = (props) => {
|
8924
8925
|
var _a;
|
8925
|
-
const attachments = props.
|
8926
|
+
const attachments = props.activeAttachmentUploads;
|
8926
8927
|
const localeStrings = useLocaleAttachmentCardStringsTrampoline();
|
8927
8928
|
const removeFileButtonString = React.useMemo(() => () => {
|
8928
8929
|
var _a, _b;
|
@@ -8933,32 +8934,24 @@ const _AttachmentUploadCards = (props) => {
|
|
8933
8934
|
}
|
8934
8935
|
return (React.createElement(_AttachmentCardGroup, null, attachments &&
|
8935
8936
|
attachments
|
8936
|
-
.filter((attachment) => !attachment.
|
8937
|
+
.filter((attachment) => !attachment.uploadError)
|
8937
8938
|
.map((attachment) => {
|
8938
|
-
var _a, _b
|
8939
|
-
return (React.createElement(_AttachmentCard
|
8940
|
-
// temp converter before upload is refactored
|
8941
|
-
, {
|
8942
|
-
// temp converter before upload is refactored
|
8943
|
-
attachment: {
|
8944
|
-
id: attachment.id,
|
8945
|
-
name: attachment.filename,
|
8946
|
-
extension: extension(attachment.filename),
|
8947
|
-
progress: attachment.progress,
|
8948
|
-
uploadStatus: attachment.error
|
8949
|
-
? {
|
8950
|
-
message: (_a = attachment.error) === null || _a === void 0 ? void 0 : _a.message,
|
8951
|
-
timestamp: (_b = attachment.error) === null || _b === void 0 ? void 0 : _b.timestamp
|
8952
|
-
}
|
8953
|
-
: undefined
|
8954
|
-
}, progress: attachment.progress, key: attachment.id, menuActions: [
|
8939
|
+
var _a, _b;
|
8940
|
+
return (React.createElement(_AttachmentCard, { attachment: attachment, key: attachment.id, menuActions: [
|
8955
8941
|
{
|
8956
|
-
name: (
|
8942
|
+
name: (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeAttachment) !== null && _b !== void 0 ? _b : 'Remove',
|
8957
8943
|
icon: (React.createElement("div", { "aria-label": removeFileButtonString() },
|
8958
8944
|
React.createElement(react.Icon, { iconName: "CancelAttachmentUpload", className: react.mergeStyles(actionIconStyle) }))),
|
8959
|
-
onClick: () => {
|
8960
|
-
|
8961
|
-
|
8945
|
+
onClick: (attachment) => {
|
8946
|
+
return new Promise((resolve, reject) => {
|
8947
|
+
try {
|
8948
|
+
props.onCancelAttachmentUpload && props.onCancelAttachmentUpload(attachment.id);
|
8949
|
+
resolve();
|
8950
|
+
}
|
8951
|
+
catch (e) {
|
8952
|
+
reject(e.message);
|
8953
|
+
}
|
8954
|
+
});
|
8962
8955
|
}
|
8963
8956
|
}
|
8964
8957
|
], strings: props.strings }));
|
@@ -8976,18 +8969,18 @@ const EMPTY_MESSAGE_REGEX = /^\s*$/;
|
|
8976
8969
|
/**
|
8977
8970
|
* @private
|
8978
8971
|
*/
|
8979
|
-
const
|
8980
|
-
return !!((
|
8981
|
-
!
|
8982
|
-
.filter((attachmentUpload) => !attachmentUpload.
|
8983
|
-
.every((attachmentUpload) => attachmentUpload.
|
8972
|
+
const hasIncompleteAttachmentUploads = (activeAttachmentUploads) => {
|
8973
|
+
return !!((activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.length) &&
|
8974
|
+
!activeAttachmentUploads
|
8975
|
+
.filter((attachmentUpload) => !attachmentUpload.uploadError)
|
8976
|
+
.every((attachmentUpload) => attachmentUpload.progress === 1 && attachmentUpload.progress !== undefined));
|
8984
8977
|
};
|
8985
8978
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
8986
8979
|
/**
|
8987
8980
|
* @private
|
8988
8981
|
*/
|
8989
|
-
const
|
8990
|
-
return !!(
|
8982
|
+
const hasCompletedAttachmentUploads = (activeAttachmentUploads) => {
|
8983
|
+
return !!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.find((file) => !file.uploadError));
|
8991
8984
|
};
|
8992
8985
|
/**
|
8993
8986
|
* @private
|
@@ -9379,7 +9372,7 @@ const SendBox$1 = (props) => {
|
|
9379
9372
|
/* @conditional-compile-remove(mention) */
|
9380
9373
|
mentionLookupOptions,
|
9381
9374
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9382
|
-
|
9375
|
+
activeAttachmentUploads } = props;
|
9383
9376
|
const theme = useTheme();
|
9384
9377
|
const localeStrings = useLocale$1().strings.sendBox;
|
9385
9378
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
@@ -9399,7 +9392,7 @@ const SendBox$1 = (props) => {
|
|
9399
9392
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9400
9393
|
setAttachmentUploadsPendingError(undefined);
|
9401
9394
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9402
|
-
if (
|
9395
|
+
if (hasIncompleteAttachmentUploads(activeAttachmentUploads)) {
|
9403
9396
|
setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
|
9404
9397
|
return;
|
9405
9398
|
}
|
@@ -9407,7 +9400,7 @@ const SendBox$1 = (props) => {
|
|
9407
9400
|
// we don't want to send empty messages including spaces, newlines, tabs
|
9408
9401
|
// Message can be empty if there is a valid attachment upload
|
9409
9402
|
if (sanitizeText(message).length > 0 ||
|
9410
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9403
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(activeAttachmentUploads)) {
|
9411
9404
|
onSendMessage && onSendMessage(message);
|
9412
9405
|
setTextValue('');
|
9413
9406
|
}
|
@@ -9427,13 +9420,13 @@ const SendBox$1 = (props) => {
|
|
9427
9420
|
const mergedSendIconStyle = React.useMemo(() => sendIconStyle({
|
9428
9421
|
theme,
|
9429
9422
|
hasText: !!textValue,
|
9430
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ hasFile:
|
9423
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ hasFile: hasCompletedAttachmentUploads(activeAttachmentUploads),
|
9431
9424
|
hasErrorMessage: !!errorMessage,
|
9432
9425
|
customSendIconStyle: styles === null || styles === void 0 ? void 0 : styles.sendMessageIcon
|
9433
9426
|
}), [
|
9434
9427
|
theme,
|
9435
9428
|
textValue,
|
9436
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9429
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
|
9437
9430
|
errorMessage,
|
9438
9431
|
styles === null || styles === void 0 ? void 0 : styles.sendMessageIcon
|
9439
9432
|
]);
|
@@ -9441,33 +9434,33 @@ const SendBox$1 = (props) => {
|
|
9441
9434
|
// Ensure that errors are cleared when there are no files in sendBox
|
9442
9435
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9443
9436
|
React.useEffect(() => {
|
9444
|
-
if (!(
|
9437
|
+
if (!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((upload) => !upload.uploadError).length)) {
|
9445
9438
|
setAttachmentUploadsPendingError(undefined);
|
9446
9439
|
}
|
9447
|
-
}, [
|
9440
|
+
}, [activeAttachmentUploads]);
|
9448
9441
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9449
9442
|
const sendBoxErrorsProps = React.useMemo(() => {
|
9450
9443
|
var _a;
|
9451
9444
|
return {
|
9452
9445
|
attachmentUploadsPendingError: attachmentUploadsPendingError,
|
9453
|
-
attachmentUploadError: (_a =
|
9446
|
+
attachmentUploadError: (_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError
|
9454
9447
|
};
|
9455
|
-
}, [
|
9448
|
+
}, [activeAttachmentUploads, attachmentUploadsPendingError]);
|
9456
9449
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9457
|
-
const
|
9450
|
+
const onRenderAttachmentUploads = React.useCallback(() => {
|
9458
9451
|
var _a, _b, _c, _d, _e, _f;
|
9459
|
-
if (!(
|
9452
|
+
if (!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((upload) => !upload.uploadError).length)) {
|
9460
9453
|
return null;
|
9461
9454
|
}
|
9462
|
-
return props.
|
9455
|
+
return props.onRenderAttachmentUploads ? (props.onRenderAttachmentUploads()) : (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
|
9463
9456
|
React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
|
9464
|
-
React.createElement(_AttachmentUploadCards, {
|
9457
|
+
React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: activeAttachmentUploads, onCancelAttachmentUpload: props.onCancelAttachmentUpload, strings: {
|
9465
9458
|
removeAttachment: (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeAttachment) !== null && _b !== void 0 ? _b : localeStrings.removeAttachment,
|
9466
9459
|
uploading: (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.uploading) !== null && _d !== void 0 ? _d : localeStrings.uploading,
|
9467
9460
|
uploadCompleted: (_f = (_e = props.strings) === null || _e === void 0 ? void 0 : _e.uploadCompleted) !== null && _f !== void 0 ? _f : localeStrings.uploadCompleted
|
9468
9461
|
} }))));
|
9469
9462
|
}, [
|
9470
|
-
|
9463
|
+
activeAttachmentUploads,
|
9471
9464
|
props,
|
9472
9465
|
theme,
|
9473
9466
|
localeStrings.removeAttachment,
|
@@ -9499,7 +9492,7 @@ const SendBox$1 = (props) => {
|
|
9499
9492
|
e.stopPropagation();
|
9500
9493
|
}, id: 'sendIconWrapper', className: mergedSendButtonStyle, ariaLabel: localeStrings.sendButtonAriaLabel, tooltipContent: localeStrings.sendButtonAriaLabel })),
|
9501
9494
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
9502
|
-
|
9495
|
+
onRenderAttachmentUploads())));
|
9503
9496
|
};
|
9504
9497
|
|
9505
9498
|
// Copyright (c) Microsoft Corporation.
|
@@ -10472,7 +10465,7 @@ const richTextBorderBoxStyle = (props) => {
|
|
10472
10465
|
const RichTextInputBoxComponent = (props) => {
|
10473
10466
|
const { placeholderText, initialContent, onChange, onEnterKeyDown, editorComponentRef, disabled, strings, actionComponents,
|
10474
10467
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10475
|
-
|
10468
|
+
onRenderAttachmentUploads,
|
10476
10469
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10477
10470
|
hasFiles, richTextEditorStyleProps, isHorizontalLayoutDisabled = false } = props;
|
10478
10471
|
const theme = useTheme();
|
@@ -10526,8 +10519,8 @@ const RichTextInputBoxComponent = (props) => {
|
|
10526
10519
|
React.createElement(react.Stack, { grow: true, className: inputBoxRichTextStackStyle },
|
10527
10520
|
React.createElement(react.Stack.Item, { className: inputBoxRichTextStackItemStyle },
|
10528
10521
|
React.createElement(RichTextEditor, { initialContent: initialContent, placeholderText: placeholderText, onChange: onChange, onKeyDown: onKeyDown, ref: editorComponentRef, strings: strings, showRichTextEditorFormatting: showRichTextEditorFormatting, styles: richTextEditorStyle })),
|
10529
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10530
|
-
|
10522
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ onRenderAttachmentUploads &&
|
10523
|
+
onRenderAttachmentUploads()),
|
10531
10524
|
actionButtons)));
|
10532
10525
|
};
|
10533
10526
|
|
@@ -10607,9 +10600,9 @@ const isMessageEmpty$1 = (message) => {
|
|
10607
10600
|
const RichTextSendBox = (props) => {
|
10608
10601
|
const { disabled = false, systemMessage, onSendMessage,
|
10609
10602
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10610
|
-
|
10603
|
+
activeAttachmentUploads,
|
10611
10604
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10612
|
-
|
10605
|
+
onCancelAttachmentUpload } = props;
|
10613
10606
|
const theme = useTheme();
|
10614
10607
|
const locale = useLocale$1();
|
10615
10608
|
const localeStrings = React.useMemo(() => {
|
@@ -10622,7 +10615,7 @@ const RichTextSendBox = (props) => {
|
|
10622
10615
|
const [contentValue, setContentValue] = React.useState('');
|
10623
10616
|
const [contentValueOverflow, setContentValueOverflow] = React.useState(false);
|
10624
10617
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10625
|
-
const [attachmentUploadsPendingError,
|
10618
|
+
const [attachmentUploadsPendingError, setAttachmentUploadsPendingError] = React.useState(undefined);
|
10626
10619
|
const editorComponentRef = React.useRef(null);
|
10627
10620
|
const contentTooLongMessage = React.useMemo(() => (contentValueOverflow ? strings.textTooLong : undefined), [contentValueOverflow, strings.textTooLong]);
|
10628
10621
|
const setContent = React.useCallback((newValue) => {
|
@@ -10639,17 +10632,17 @@ const RichTextSendBox = (props) => {
|
|
10639
10632
|
}
|
10640
10633
|
// Don't send message until all files have been uploaded successfully
|
10641
10634
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10642
|
-
|
10635
|
+
setAttachmentUploadsPendingError(undefined);
|
10643
10636
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10644
|
-
if (
|
10645
|
-
|
10637
|
+
if (hasIncompleteAttachmentUploads(activeAttachmentUploads)) {
|
10638
|
+
setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
|
10646
10639
|
return;
|
10647
10640
|
}
|
10648
10641
|
const message = contentValue;
|
10649
10642
|
// we don't want to send empty messages including spaces, newlines, tabs
|
10650
|
-
// Message can be empty if there is a valid
|
10643
|
+
// Message can be empty if there is a valid attachment upload
|
10651
10644
|
if (sanitizeText(message).length > 0 ||
|
10652
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10645
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(activeAttachmentUploads)) {
|
10653
10646
|
onSendMessage(message);
|
10654
10647
|
setContentValue('');
|
10655
10648
|
(_a = editorComponentRef.current) === null || _a === void 0 ? void 0 : _a.setEmptyContent();
|
@@ -10660,7 +10653,7 @@ const RichTextSendBox = (props) => {
|
|
10660
10653
|
contentValueOverflow,
|
10661
10654
|
disabled,
|
10662
10655
|
onSendMessage,
|
10663
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10656
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
|
10664
10657
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ strings.attachmentUploadsPendingError
|
10665
10658
|
]);
|
10666
10659
|
const hasErrorMessage = React.useMemo(() => {
|
@@ -10670,10 +10663,10 @@ const RichTextSendBox = (props) => {
|
|
10670
10663
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10671
10664
|
!!attachmentUploadsPendingError ||
|
10672
10665
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10673
|
-
!!((_a =
|
10666
|
+
!!((_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError));
|
10674
10667
|
}, [
|
10675
10668
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10676
|
-
|
10669
|
+
activeAttachmentUploads,
|
10677
10670
|
contentTooLongMessage,
|
10678
10671
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10679
10672
|
attachmentUploadsPendingError,
|
@@ -10694,30 +10687,30 @@ const RichTextSendBox = (props) => {
|
|
10694
10687
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10695
10688
|
attachmentUploadsPendingError: attachmentUploadsPendingError,
|
10696
10689
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10697
|
-
attachmentUploadError: (_a =
|
10690
|
+
attachmentUploadError: (_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError,
|
10698
10691
|
systemMessage: systemMessage,
|
10699
10692
|
textTooLongMessage: contentTooLongMessage
|
10700
10693
|
};
|
10701
10694
|
}, [
|
10702
10695
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10703
|
-
|
10696
|
+
activeAttachmentUploads,
|
10704
10697
|
contentTooLongMessage,
|
10705
10698
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10706
10699
|
attachmentUploadsPendingError,
|
10707
10700
|
systemMessage
|
10708
10701
|
]);
|
10709
10702
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10710
|
-
const
|
10703
|
+
const onRenderAttachmentUploads = React.useCallback(() => {
|
10711
10704
|
return (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
|
10712
10705
|
React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
|
10713
|
-
React.createElement(_AttachmentUploadCards, {
|
10706
|
+
React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: activeAttachmentUploads, onCancelAttachmentUpload: onCancelAttachmentUpload, strings: {
|
10714
10707
|
removeAttachment: strings.removeAttachment,
|
10715
10708
|
uploading: strings.uploading,
|
10716
10709
|
uploadCompleted: strings.uploadCompleted
|
10717
10710
|
} }))));
|
10718
10711
|
}, [
|
10719
|
-
|
10720
|
-
|
10712
|
+
activeAttachmentUploads,
|
10713
|
+
onCancelAttachmentUpload,
|
10721
10714
|
strings.removeAttachment,
|
10722
10715
|
strings.uploadCompleted,
|
10723
10716
|
strings.uploading,
|
@@ -10730,16 +10723,16 @@ const RichTextSendBox = (props) => {
|
|
10730
10723
|
}, className: richTextActionButtonsStyle, ariaLabel: localeStrings.sendButtonAriaLabel, tooltipContent: localeStrings.sendButtonAriaLabel }));
|
10731
10724
|
}, [localeStrings.sendButtonAriaLabel, onRenderSendIcon, sendMessageOnClick]);
|
10732
10725
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10733
|
-
const
|
10734
|
-
return
|
10735
|
-
}, [
|
10726
|
+
const hasAttachmentUploads = React.useMemo(() => {
|
10727
|
+
return (hasCompletedAttachmentUploads(activeAttachmentUploads) || hasIncompleteAttachmentUploads(activeAttachmentUploads));
|
10728
|
+
}, [activeAttachmentUploads]);
|
10736
10729
|
return (React.createElement(react.Stack, null,
|
10737
10730
|
React.createElement(RichTextSendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
|
10738
10731
|
React.createElement(RichTextInputBoxComponent, { placeholderText: strings.placeholderText, onChange: setContent, onEnterKeyDown: sendMessageOnClick, editorComponentRef: editorComponentRef, strings: strings, disabled: disabled, actionComponents: sendButton, richTextEditorStyleProps: sendBoxRichTextEditorStyle,
|
10739
10732
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10740
|
-
|
10733
|
+
onRenderAttachmentUploads: onRenderAttachmentUploads,
|
10741
10734
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10742
|
-
hasFiles:
|
10735
|
+
hasFiles: hasAttachmentUploads })));
|
10743
10736
|
};
|
10744
10737
|
|
10745
10738
|
// Copyright (c) Microsoft Corporation.
|
@@ -11713,15 +11706,11 @@ const ChatMessageComponentAsEditBox = (props) => {
|
|
11713
11706
|
return react.concatStyleSets(editBoxStyleSet, { textField: { borderColor: theme.palette.themePrimary } });
|
11714
11707
|
}, [theme.palette.themePrimary]);
|
11715
11708
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
11716
|
-
const
|
11709
|
+
const onRenderAttachmentUploads = React.useCallback(() => {
|
11717
11710
|
return (!!attachmentMetadata &&
|
11718
11711
|
attachmentMetadata.length > 0 && (React.createElement("div", { style: { margin: '0.25rem' } },
|
11719
|
-
React.createElement(_AttachmentUploadCards, {
|
11720
|
-
|
11721
|
-
filename: file.name,
|
11722
|
-
progress: 1
|
11723
|
-
})), onCancelFileUpload: (fileId) => {
|
11724
|
-
setAttachedFilesMetadata(attachmentMetadata === null || attachmentMetadata === void 0 ? void 0 : attachmentMetadata.filter((file) => file.name !== fileId));
|
11712
|
+
React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: attachmentMetadata, onCancelAttachmentUpload: (fileId) => {
|
11713
|
+
setAttachedFilesMetadata(attachmentMetadata === null || attachmentMetadata === void 0 ? void 0 : attachmentMetadata.filter((file) => file.id !== fileId));
|
11725
11714
|
} }))));
|
11726
11715
|
}, [attachmentMetadata]);
|
11727
11716
|
const getContent = () => {
|
@@ -11755,7 +11744,7 @@ const ChatMessageComponentAsEditBox = (props) => {
|
|
11755
11744
|
});
|
11756
11745
|
e.stopPropagation();
|
11757
11746
|
}, id: 'submitIconWrapper' }))),
|
11758
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
11747
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ onRenderAttachmentUploads()));
|
11759
11748
|
};
|
11760
11749
|
const attached = message.attached === true ? 'center' : message.attached === 'bottom' ? 'bottom' : 'top';
|
11761
11750
|
return (React.createElement(reactChat.ChatMyMessage, { attached: attached, root: {
|
@@ -12510,7 +12499,7 @@ const ChatMyMessageComponentAsMessageBubble = React.memo(MessageBubble$1);
|
|
12510
12499
|
|
12511
12500
|
// Copyright (c) Microsoft Corporation.
|
12512
12501
|
// Licensed under the MIT License.
|
12513
|
-
var __awaiter$
|
12502
|
+
var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12514
12503
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12515
12504
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12516
12505
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12543,7 +12532,7 @@ const ChatMyMessageComponent = (props) => {
|
|
12543
12532
|
onSendMessage && onSendMessage(content !== undefined ? content : '');
|
12544
12533
|
}, [clientMessageId, content, onSendMessage, onDeleteMessage]);
|
12545
12534
|
if (isEditing && message.messageType === 'chat') {
|
12546
|
-
return (React.createElement(ChatMessageComponentAsEditBox, { message: message, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$
|
12535
|
+
return (React.createElement(ChatMessageComponentAsEditBox, { message: message, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$C(void 0, void 0, void 0, function* () {
|
12547
12536
|
props.onUpdateMessage &&
|
12548
12537
|
message.messageId &&
|
12549
12538
|
(yield props.onUpdateMessage(message.messageId, text, metadata, options));
|
@@ -12922,7 +12911,7 @@ const fluentChatComponent = (props) => {
|
|
12922
12911
|
|
12923
12912
|
// Copyright (c) Microsoft Corporation.
|
12924
12913
|
// Licensed under the MIT License.
|
12925
|
-
var __awaiter$
|
12914
|
+
var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12926
12915
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12927
12916
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12928
12917
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -13107,7 +13096,7 @@ const MessageThreadWrapper = (props) => {
|
|
13107
13096
|
const previousMessagesRef = React.useRef([]);
|
13108
13097
|
// an aria label for Narrator to notify when a message is deleted
|
13109
13098
|
const [deletedMessageAriaLabel, setDeletedMessageAriaLabel] = React.useState(undefined);
|
13110
|
-
const onDeleteMessageCallback = React.useCallback((messageId) => __awaiter$
|
13099
|
+
const onDeleteMessageCallback = React.useCallback((messageId) => __awaiter$B(void 0, void 0, void 0, function* () {
|
13111
13100
|
if (!onDeleteMessage) {
|
13112
13101
|
return;
|
13113
13102
|
}
|
@@ -13188,7 +13177,7 @@ const MessageThreadWrapper = (props) => {
|
|
13188
13177
|
*/
|
13189
13178
|
const clientHeight = (_a = chatThreadRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight;
|
13190
13179
|
// we try to only send those message status if user is scrolled to the bottom.
|
13191
|
-
const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$
|
13180
|
+
const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$B(void 0, void 0, void 0, function* () {
|
13192
13181
|
if (!isAtBottomOfScrollRef.current ||
|
13193
13182
|
!document.hasFocus() ||
|
13194
13183
|
!messagesRef.current ||
|
@@ -13239,7 +13228,7 @@ const MessageThreadWrapper = (props) => {
|
|
13239
13228
|
setIsAtBottomOfScrollRef(atBottom);
|
13240
13229
|
}, [scrollToBottom, sendMessageStatusIfAtBottom]);
|
13241
13230
|
// Infinite scrolling + threadInitialize function
|
13242
|
-
const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$
|
13231
|
+
const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$B(void 0, void 0, void 0, function* () {
|
13243
13232
|
if (!isLoadingChatMessagesRef.current) {
|
13244
13233
|
if (onLoadPreviousChatMessages) {
|
13245
13234
|
isLoadingChatMessagesRef.current = true;
|
@@ -14334,8 +14323,9 @@ const playFrames$1 = react.memoizeFunction(() => react.keyframes({
|
|
14334
14323
|
*
|
14335
14324
|
* @private
|
14336
14325
|
*/
|
14337
|
-
const emojiStyles = (backgroundImage, animationPlayState) => {
|
14326
|
+
const emojiStyles = (backgroundImage, animationPlayState, frameCount) => {
|
14338
14327
|
const imageResourceUrl = `url(${backgroundImage})`;
|
14328
|
+
const steps = frameCount !== null && frameCount !== void 0 ? frameCount : 51;
|
14339
14329
|
return {
|
14340
14330
|
display: 'flex',
|
14341
14331
|
flexDirection: 'column',
|
@@ -14344,7 +14334,7 @@ const emojiStyles = (backgroundImage, animationPlayState) => {
|
|
14344
14334
|
backgroundImage: imageResourceUrl,
|
14345
14335
|
animationName: playFrames$1(),
|
14346
14336
|
animationDuration: '8.12s',
|
14347
|
-
animationTimingFunction: `steps(
|
14337
|
+
animationTimingFunction: `steps(${steps})`,
|
14348
14338
|
animationPlayState: animationPlayState,
|
14349
14339
|
animationIterationCount: 'infinite',
|
14350
14340
|
justifyContent: 'center',
|
@@ -14943,7 +14933,9 @@ const playFrames = react.memoizeFunction(() => react.keyframes({
|
|
14943
14933
|
* @private
|
14944
14934
|
*/
|
14945
14935
|
const reactionRenderingStyle = (args) => {
|
14936
|
+
var _a;
|
14946
14937
|
const imageUrl = `url(${args.spriteImageUrl})`;
|
14938
|
+
const steps = (_a = args.frameCount) !== null && _a !== void 0 ? _a : 51;
|
14947
14939
|
return react.mergeStyles({
|
14948
14940
|
height: '100%',
|
14949
14941
|
width: '100%',
|
@@ -14951,7 +14943,7 @@ const reactionRenderingStyle = (args) => {
|
|
14951
14943
|
animationName: playFrames(),
|
14952
14944
|
backgroundImage: imageUrl,
|
14953
14945
|
animationDuration: '5.12s',
|
14954
|
-
animationTimingFunction: `steps(
|
14946
|
+
animationTimingFunction: `steps(${steps})`,
|
14955
14947
|
backgroundSize: `cover`,
|
14956
14948
|
animationPlayState: 'running',
|
14957
14949
|
animationIterationCount: 'infinite',
|
@@ -15436,7 +15428,28 @@ const getEmojiResource = (reactionName, reactionResources) => {
|
|
15436
15428
|
case 'surprised':
|
15437
15429
|
return (_e = reactionResources.surprisedReaction) === null || _e === void 0 ? void 0 : _e.url;
|
15438
15430
|
}
|
15439
|
-
return
|
15431
|
+
return undefined;
|
15432
|
+
};
|
15433
|
+
/* @conditional-compile-remove(reaction) */
|
15434
|
+
/**
|
15435
|
+
* @private
|
15436
|
+
*/
|
15437
|
+
const getEmojiFrameCount = (reactionName, reactionResources) => {
|
15438
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
15439
|
+
switch (reactionName) {
|
15440
|
+
case 'like':
|
15441
|
+
return (_b = (_a = reactionResources.likeReaction) === null || _a === void 0 ? void 0 : _a.frameCount) !== null && _b !== void 0 ? _b : 0;
|
15442
|
+
case 'heart':
|
15443
|
+
return (_d = (_c = reactionResources.heartReaction) === null || _c === void 0 ? void 0 : _c.frameCount) !== null && _d !== void 0 ? _d : 0;
|
15444
|
+
case 'laugh':
|
15445
|
+
return (_f = (_e = reactionResources.laughReaction) === null || _e === void 0 ? void 0 : _e.frameCount) !== null && _f !== void 0 ? _f : 0;
|
15446
|
+
case 'applause':
|
15447
|
+
return (_h = (_g = reactionResources.applauseReaction) === null || _g === void 0 ? void 0 : _g.frameCount) !== null && _h !== void 0 ? _h : 0;
|
15448
|
+
case 'surprised':
|
15449
|
+
return (_k = (_j = reactionResources.surprisedReaction) === null || _j === void 0 ? void 0 : _j.frameCount) !== null && _k !== void 0 ? _k : 0;
|
15450
|
+
default:
|
15451
|
+
return 0;
|
15452
|
+
}
|
15440
15453
|
};
|
15441
15454
|
|
15442
15455
|
// Copyright (c) Microsoft Corporation.
|
@@ -15478,7 +15491,10 @@ const ParticipantVideoTileOverlay = React.memo((props) => {
|
|
15478
15491
|
const [isValidImageSource, setIsValidImageSource] = React.useState(false);
|
15479
15492
|
const backgroundImageUrl = reaction !== undefined && reactionResources !== undefined
|
15480
15493
|
? getEmojiResource(reaction === null || reaction === void 0 ? void 0 : reaction.reactionType, reactionResources)
|
15481
|
-
:
|
15494
|
+
: undefined;
|
15495
|
+
const frameCount = reaction !== undefined && reactionResources !== undefined
|
15496
|
+
? getEmojiFrameCount(reaction === null || reaction === void 0 ? void 0 : reaction.reactionType, reactionResources)
|
15497
|
+
: undefined;
|
15482
15498
|
const currentUnixTimeStamp = Date.now();
|
15483
15499
|
const receivedUnixTimestamp = reaction ? getReceivedUnixTime(reaction.receivedOn) : undefined;
|
15484
15500
|
const canRenderReaction = (receivedUnixTimestamp
|
@@ -15498,8 +15514,9 @@ const ParticipantVideoTileOverlay = React.memo((props) => {
|
|
15498
15514
|
const spriteImageUrl = backgroundImageUrl !== null && backgroundImageUrl !== void 0 ? backgroundImageUrl : undefined;
|
15499
15515
|
const reactionContainerStyles = React.useCallback(() => reactionRenderingStyle({
|
15500
15516
|
spriteImageUrl,
|
15501
|
-
emojiSize: emojiSize
|
15502
|
-
|
15517
|
+
emojiSize: emojiSize,
|
15518
|
+
frameCount
|
15519
|
+
}), [spriteImageUrl, emojiSize, frameCount]);
|
15503
15520
|
return (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, {
|
15504
15521
|
display: 'flex',
|
15505
15522
|
justifyContent: 'center',
|
@@ -15515,22 +15532,6 @@ const ParticipantVideoTileOverlay = React.memo((props) => {
|
|
15515
15532
|
// Licensed under the MIT License.
|
15516
15533
|
/* @conditional-compile-remove(reaction) */
|
15517
15534
|
/* @conditional-compile-remove(reaction) */
|
15518
|
-
/**
|
15519
|
-
* Generate random float between two numbers, including min and max
|
15520
|
-
* @private
|
15521
|
-
*/
|
15522
|
-
function getRandomFloat(minValue, maxValue) {
|
15523
|
-
return minValue + Math.random() * (maxValue - minValue);
|
15524
|
-
}
|
15525
|
-
/* @conditional-compile-remove(reaction) */
|
15526
|
-
/**
|
15527
|
-
* Generate random int between two numbers, including min and max
|
15528
|
-
* @private
|
15529
|
-
*/
|
15530
|
-
function getRandomInt(minValue, maxValue) {
|
15531
|
-
return Math.floor(getRandomFloat(minValue, maxValue + 1));
|
15532
|
-
}
|
15533
|
-
/* @conditional-compile-remove(reaction) */
|
15534
15535
|
/**
|
15535
15536
|
* Calculate the start position for a new reaction in the prescriptive wave pattern
|
15536
15537
|
* @private
|
@@ -15619,23 +15620,18 @@ function scaleStartPos(index) {
|
|
15619
15620
|
}
|
15620
15621
|
/* @conditional-compile-remove(reaction) */
|
15621
15622
|
/**
|
15623
|
+
* We have only one bucket item for presentation style of the reaction animation.
|
15624
|
+
* We are choosing to keep the array so that, in future, with styles needed to get updated, one
|
15625
|
+
* can add new styles and apply from here, rather than updating over the same style. Later we can remove
|
15626
|
+
* the old ones.
|
15627
|
+
* It is for the ease of testing and implementation.
|
15622
15628
|
* @private
|
15623
15629
|
*/
|
15624
15630
|
const ReactionStyleBuckets = [
|
15625
|
-
{
|
15626
|
-
sizeScale: 1,
|
15627
|
-
heightMaxScale: 1 * 0.95,
|
15628
|
-
opacityMax: 1
|
15629
|
-
},
|
15630
15631
|
{
|
15631
15632
|
sizeScale: 0.9,
|
15632
15633
|
heightMaxScale: 0.7 * 0.95,
|
15633
15634
|
opacityMax: 0.9
|
15634
|
-
},
|
15635
|
-
{
|
15636
|
-
sizeScale: 0.8,
|
15637
|
-
heightMaxScale: 0.4 * 0.95,
|
15638
|
-
opacityMax: 0.8
|
15639
15635
|
}
|
15640
15636
|
];
|
15641
15637
|
/* @conditional-compile-remove(reaction) */
|
@@ -15645,8 +15641,10 @@ const ReactionStyleBuckets = [
|
|
15645
15641
|
* height, width, and opacity.
|
15646
15642
|
* @private
|
15647
15643
|
*/
|
15648
|
-
function getReactionStyleBucket(
|
15649
|
-
|
15644
|
+
function getReactionStyleBucket() {
|
15645
|
+
// Having dynamic emoji size on rendering animation impacts performance of the animation itself.
|
15646
|
+
// So we are choosing to use a fixed size for all cases.
|
15647
|
+
const index = 0;
|
15650
15648
|
return ReactionStyleBuckets[index];
|
15651
15649
|
}
|
15652
15650
|
/* @conditional-compile-remove(reaction) */
|
@@ -15805,7 +15803,7 @@ const RemoteContentShareReactionOverlay = React.memo((props) => {
|
|
15805
15803
|
reaction: reaction,
|
15806
15804
|
id: combinedKey,
|
15807
15805
|
reactionMovementIndex: reactionMovementIndex,
|
15808
|
-
styleBucket: getReactionStyleBucket(
|
15806
|
+
styleBucket: getReactionStyleBucket()
|
15809
15807
|
}
|
15810
15808
|
]);
|
15811
15809
|
return;
|
@@ -15846,8 +15844,8 @@ const RemoteContentShareReactionOverlay = React.memo((props) => {
|
|
15846
15844
|
};
|
15847
15845
|
const containerHeight = hostDivHeight !== null && hostDivHeight !== void 0 ? hostDivHeight : 0;
|
15848
15846
|
const containerWidth = hostDivWidth !== null && hostDivWidth !== void 0 ? hostDivWidth : 0;
|
15849
|
-
const styleBucket = (
|
15850
|
-
const displaySizePx = (
|
15847
|
+
const styleBucket = () => getReactionStyleBucket();
|
15848
|
+
const displaySizePx = () => REACTION_START_DISPLAY_SIZE * styleBucket().sizeScale;
|
15851
15849
|
const leftPosition = (position) => generateStartPositionWave(position, containerWidth / 2, true);
|
15852
15850
|
const reactionMovementStyle = (position) => getReactionMovementStyle(leftPosition(position));
|
15853
15851
|
return (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, {
|
@@ -15870,7 +15868,7 @@ const RemoteContentShareReactionOverlay = React.memo((props) => {
|
|
15870
15868
|
removeVisibleReaction(reaction.reaction.reactionType, reaction.id, reaction.reactionMovementIndex);
|
15871
15869
|
}, style: opacityAnimationStyles(reaction.styleBucket.opacityMax) },
|
15872
15870
|
React.createElement("div", { style: reactionMovementStyle(reaction.reactionMovementIndex) },
|
15873
|
-
React.createElement("div", { style: spriteAnimationStyles(REACTION_NUMBER_OF_ANIMATION_FRAMES, displaySizePx(
|
15871
|
+
React.createElement("div", { style: spriteAnimationStyles(REACTION_NUMBER_OF_ANIMATION_FRAMES, displaySizePx(), (_a = getEmojiResource(reaction === null || reaction === void 0 ? void 0 : reaction.reaction.reactionType, reactionResources)) !== null && _a !== void 0 ? _a : '') }))))))));
|
15874
15872
|
})));
|
15875
15873
|
});
|
15876
15874
|
|
@@ -16258,7 +16256,7 @@ const localVideoTileContainerStyles = {
|
|
16258
16256
|
|
16259
16257
|
// Copyright (c) Microsoft Corporation.
|
16260
16258
|
// Licensed under the MIT License.
|
16261
|
-
var __awaiter$
|
16259
|
+
var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
16262
16260
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
16263
16261
|
return new (P || (P = Promise))(function (resolve, reject) {
|
16264
16262
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -16275,7 +16273,7 @@ const LocalVideoCameraCycleButton = (props) => {
|
|
16275
16273
|
const { cameras, selectedCamera, onSelectCamera, label, ariaDescription, size } = props;
|
16276
16274
|
const theme = react.useTheme();
|
16277
16275
|
const [waitForCamera, setWaitForCamera] = React.useState(false);
|
16278
|
-
const onChangeCameraClick = React.useCallback((device) => __awaiter$
|
16276
|
+
const onChangeCameraClick = React.useCallback((device) => __awaiter$A(void 0, void 0, void 0, function* () {
|
16279
16277
|
// Throttle changing camera to prevent too many callbacks
|
16280
16278
|
if (onSelectCamera) {
|
16281
16279
|
setWaitForCamera(true);
|
@@ -19145,7 +19143,7 @@ const DevicesButton = (props) => {
|
|
19145
19143
|
|
19146
19144
|
// Copyright (c) Microsoft Corporation.
|
19147
19145
|
// Licensed under the MIT License.
|
19148
|
-
var __awaiter$
|
19146
|
+
var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
19149
19147
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
19150
19148
|
return new (P || (P = Promise))(function (resolve, reject) {
|
19151
19149
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -19183,7 +19181,7 @@ const CameraButton = (props) => {
|
|
19183
19181
|
const toggleAnnouncerString = React.useCallback((isCameraOn) => {
|
19184
19182
|
setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
|
19185
19183
|
}, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
|
19186
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
19184
|
+
const onToggleClick = React.useCallback(() => __awaiter$z(void 0, void 0, void 0, function* () {
|
19187
19185
|
// Throttle click on camera, need to await onToggleCamera then allow another click
|
19188
19186
|
if (onToggleCamera) {
|
19189
19187
|
setWaitForCamera(true);
|
@@ -19197,7 +19195,7 @@ const CameraButton = (props) => {
|
|
19197
19195
|
}
|
19198
19196
|
}
|
19199
19197
|
}), [cameraOn, localVideoViewOptions, onToggleCamera, toggleAnnouncerString]);
|
19200
|
-
const onChangeCameraClick = React.useCallback((device) => __awaiter$
|
19198
|
+
const onChangeCameraClick = React.useCallback((device) => __awaiter$z(void 0, void 0, void 0, function* () {
|
19201
19199
|
// Throttle changing camera to prevent too many callbacks
|
19202
19200
|
if (onSelectCamera) {
|
19203
19201
|
setWaitForCamera(true);
|
@@ -19288,7 +19286,6 @@ const ControlBar = (props) => {
|
|
19288
19286
|
|
19289
19287
|
// Copyright (c) Microsoft Corporation.
|
19290
19288
|
// Licensed under the MIT License.
|
19291
|
-
var _a, _b;
|
19292
19289
|
const onRenderEndCallIcon = () => React.createElement(react.Icon, { iconName: "ControlButtonEndCall" });
|
19293
19290
|
/**
|
19294
19291
|
* A button to end an ongoing call.
|
@@ -19298,68 +19295,109 @@ const onRenderEndCallIcon = () => React.createElement(react.Icon, { iconName: "C
|
|
19298
19295
|
* @public
|
19299
19296
|
*/
|
19300
19297
|
const EndCallButton = (props) => {
|
19301
|
-
var _a, _b
|
19302
|
-
const { styles } = props;
|
19298
|
+
var _a, _b;
|
19299
|
+
const { styles, /* @conditional-compile-remove(end-call-options) */ enableEndCallMenu, onHangUp } = props;
|
19303
19300
|
const localeStrings = useLocale$1().strings.endCallButton;
|
19304
19301
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
19305
19302
|
const theme = useTheme();
|
19306
19303
|
const isDarkTheme = isDarkThemed(theme);
|
19307
19304
|
const componentStyles = react.concatStyleSets(isDarkTheme ? darkThemeCallButtonStyles : lightThemeCallButtonStyles, styles !== null && styles !== void 0 ? styles : {});
|
19308
|
-
|
19305
|
+
/* @conditional-compile-remove(end-call-options) */
|
19306
|
+
const defaultMenuProps = {
|
19307
|
+
items: [
|
19308
|
+
{
|
19309
|
+
key: 'endForSelf',
|
19310
|
+
text: localeStrings.leaveOption,
|
19311
|
+
title: localeStrings.leaveOption,
|
19312
|
+
onClick: () => {
|
19313
|
+
onHangUp && onHangUp(false);
|
19314
|
+
}
|
19315
|
+
},
|
19316
|
+
{
|
19317
|
+
key: 'endForEveryone',
|
19318
|
+
text: localeStrings.endCallOption,
|
19319
|
+
title: localeStrings.endCallOption,
|
19320
|
+
onClick: () => {
|
19321
|
+
onHangUp && onHangUp(true);
|
19322
|
+
}
|
19323
|
+
}
|
19324
|
+
],
|
19325
|
+
styles: props.styles,
|
19326
|
+
calloutProps: {
|
19327
|
+
styles: {
|
19328
|
+
root: {
|
19329
|
+
maxWidth: '95%'
|
19330
|
+
}
|
19331
|
+
},
|
19332
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
19333
|
+
}
|
19334
|
+
};
|
19335
|
+
return (React.createElement(React.Fragment, null,
|
19336
|
+
React.createElement(ControlBarButton, Object.assign({}, props, {
|
19337
|
+
/* @conditional-compile-remove(end-call-options) */
|
19338
|
+
menuProps: enableEndCallMenu ? defaultMenuProps : undefined, onClick: onHangUp ? () => onHangUp() : props.onClick, styles: componentStyles, onRenderIcon: (_a = props.onRenderIcon) !== null && _a !== void 0 ? _a : onRenderEndCallIcon, strings: strings, labelKey: (_b = props.labelKey) !== null && _b !== void 0 ? _b : 'endCallButtonLabel' }))));
|
19309
19339
|
};
|
19310
|
-
|
19311
|
-
|
19312
|
-
|
19313
|
-
|
19314
|
-
|
19315
|
-
|
19316
|
-
|
19317
|
-
|
19340
|
+
const getButtonStyles = (theme) => {
|
19341
|
+
var _a;
|
19342
|
+
return ({
|
19343
|
+
regular: {
|
19344
|
+
color: theme.callingPalette.iconWhite,
|
19345
|
+
background: theme.callingPalette.callRed,
|
19346
|
+
'@media (forced-colors: active)': {
|
19347
|
+
forcedColorAdjust: 'auto',
|
19348
|
+
border: `1px ${(_a = theme.palette) === null || _a === void 0 ? void 0 : _a.neutralQuaternaryAlt} solid`
|
19349
|
+
},
|
19350
|
+
' i': {
|
19351
|
+
color: theme.callingPalette.iconWhite
|
19352
|
+
},
|
19353
|
+
':focus::after': { outlineColor: `${theme.callingPalette.iconWhite} !important` } // added !important to avoid override by FluentUI button styles
|
19318
19354
|
},
|
19319
|
-
|
19320
|
-
|
19321
|
-
|
19322
|
-
|
19323
|
-
|
19324
|
-
|
19325
|
-
|
19326
|
-
|
19327
|
-
|
19328
|
-
|
19329
|
-
|
19330
|
-
|
19331
|
-
|
19332
|
-
|
19355
|
+
pressed: {
|
19356
|
+
color: theme.callingPalette.iconWhite,
|
19357
|
+
background: theme.callingPalette.callRedDarker,
|
19358
|
+
border: 'none',
|
19359
|
+
' i': {
|
19360
|
+
color: theme.callingPalette.iconWhite
|
19361
|
+
},
|
19362
|
+
'@media (forced-colors: active)': {
|
19363
|
+
forcedColorAdjust: 'auto'
|
19364
|
+
}
|
19365
|
+
},
|
19366
|
+
hovered: {
|
19367
|
+
color: theme.callingPalette.iconWhite,
|
19368
|
+
background: theme.callingPalette.callRedDark,
|
19369
|
+
border: 'none',
|
19370
|
+
' i': {
|
19371
|
+
color: theme.callingPalette.iconWhite
|
19372
|
+
},
|
19373
|
+
'@media (forced-colors: active)': {
|
19374
|
+
forcedColorAdjust: 'auto'
|
19375
|
+
}
|
19333
19376
|
}
|
19334
|
-
}
|
19377
|
+
});
|
19378
|
+
};
|
19379
|
+
const darkThemeButtonStyles = getButtonStyles(darkTheme);
|
19380
|
+
const lightThemeButtonStyles = getButtonStyles(lightTheme);
|
19381
|
+
// using media query to prevent windows from overwriting the button color
|
19382
|
+
const darkThemeCallButtonStyles = {
|
19383
|
+
root: darkThemeButtonStyles.regular,
|
19384
|
+
rootHovered: darkThemeButtonStyles.hovered,
|
19385
|
+
rootPressed: darkThemeButtonStyles.pressed,
|
19335
19386
|
label: {
|
19336
19387
|
color: darkTheme.callingPalette.iconWhite
|
19337
|
-
}
|
19388
|
+
},
|
19389
|
+
splitButtonMenuButton: Object.assign(Object.assign({}, darkThemeButtonStyles.regular), { borderTop: 'none', borderRight: 'none', borderBottom: 'none', '&:hover': darkThemeButtonStyles.hovered }),
|
19390
|
+
splitButtonMenuButtonChecked: darkThemeButtonStyles.hovered,
|
19391
|
+
splitButtonMenuButtonExpanded: darkThemeButtonStyles.pressed
|
19338
19392
|
};
|
19339
19393
|
const lightThemeCallButtonStyles = {
|
19340
|
-
root:
|
19341
|
-
|
19342
|
-
|
19343
|
-
|
19344
|
-
|
19345
|
-
|
19346
|
-
|
19347
|
-
':focus::after': { outlineColor: `${lightTheme.callingPalette.iconWhite} !important` } // added !important to avoid override by FluentUI button styles
|
19348
|
-
},
|
19349
|
-
rootHovered: {
|
19350
|
-
color: lightTheme.callingPalette.iconWhite,
|
19351
|
-
background: lightTheme.callingPalette.callRed,
|
19352
|
-
'@media (forced-colors: active)': {
|
19353
|
-
forcedColorAdjust: 'auto'
|
19354
|
-
}
|
19355
|
-
},
|
19356
|
-
rootPressed: {
|
19357
|
-
color: lightTheme.callingPalette.iconWhite,
|
19358
|
-
background: lightTheme.callingPalette.callRed,
|
19359
|
-
'@media (forced-colors: active)': {
|
19360
|
-
forcedColorAdjust: 'auto'
|
19361
|
-
}
|
19362
|
-
},
|
19394
|
+
root: lightThemeButtonStyles.regular,
|
19395
|
+
rootHovered: lightThemeButtonStyles.hovered,
|
19396
|
+
rootPressed: lightThemeButtonStyles.pressed,
|
19397
|
+
splitButtonMenuButton: Object.assign(Object.assign({}, lightThemeButtonStyles.regular), { borderTop: 'none', borderRight: 'none', borderBottom: 'none', '&:hover': lightThemeButtonStyles.hovered }),
|
19398
|
+
splitButtonMenuButtonChecked: lightThemeButtonStyles.hovered,
|
19399
|
+
splitButtonMenuButtonExpanded: lightThemeButtonStyles.pressed,
|
19400
|
+
splitButtonMenuFocused: lightThemeButtonStyles.pressed,
|
19363
19401
|
label: {
|
19364
19402
|
color: lightTheme.callingPalette.iconWhite
|
19365
19403
|
}
|
@@ -19367,7 +19405,7 @@ const lightThemeCallButtonStyles = {
|
|
19367
19405
|
|
19368
19406
|
// Copyright (c) Microsoft Corporation.
|
19369
19407
|
// Licensed under the MIT License.
|
19370
|
-
var __awaiter$
|
19408
|
+
var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
19371
19409
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
19372
19410
|
return new (P || (P = Promise))(function (resolve, reject) {
|
19373
19411
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -19408,7 +19446,7 @@ const MicrophoneButton = (props) => {
|
|
19408
19446
|
const toggleAnnouncerString = React.useCallback((isMicOn) => {
|
19409
19447
|
setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
|
19410
19448
|
}, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
|
19411
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
19449
|
+
const onToggleClick = React.useCallback(() => __awaiter$y(void 0, void 0, void 0, function* () {
|
19412
19450
|
if (onToggleMicrophone) {
|
19413
19451
|
try {
|
19414
19452
|
yield onToggleMicrophone();
|
@@ -19922,19 +19960,19 @@ const ReactionButton = (props) => {
|
|
19922
19960
|
const styles = reactionButtonStyles(theme);
|
19923
19961
|
const onRenderIcon = () => (React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ReactionButtonIcon" }));
|
19924
19962
|
const [isHoveredMap, setIsHoveredMap] = React.useState(new Map());
|
19925
|
-
const emojis = ['like', 'heart', '
|
19963
|
+
const emojis = ['like', 'heart', 'applause', 'laugh', 'surprised'];
|
19926
19964
|
const emojiButtonTooltip = new Map([
|
19927
19965
|
['like', strings.likeReactionTooltipContent],
|
19928
19966
|
['heart', strings.heartReactionTooltipContent],
|
19929
|
-
['laugh', strings.laughReactionTooltipContent],
|
19930
19967
|
['applause', strings.applauseReactionTooltipContent],
|
19968
|
+
['laugh', strings.laughReactionTooltipContent],
|
19931
19969
|
['surprised', strings.surprisedReactionTooltipContent]
|
19932
19970
|
]);
|
19933
19971
|
const emojiResource = new Map([
|
19934
19972
|
['like', (_a = props.reactionResources.likeReaction) === null || _a === void 0 ? void 0 : _a.url],
|
19935
19973
|
['heart', (_b = props.reactionResources.heartReaction) === null || _b === void 0 ? void 0 : _b.url],
|
19936
|
-
['
|
19937
|
-
['
|
19974
|
+
['applause', (_c = props.reactionResources.applauseReaction) === null || _c === void 0 ? void 0 : _c.url],
|
19975
|
+
['laugh', (_d = props.reactionResources.laughReaction) === null || _d === void 0 ? void 0 : _d.url],
|
19938
19976
|
['surprised', (_e = props.reactionResources.surprisedReaction) === null || _e === void 0 ? void 0 : _e.url]
|
19939
19977
|
]);
|
19940
19978
|
const calloutStyle = { root: { padding: 0 }, calloutMain: { padding: '0.5rem' } };
|
@@ -19945,6 +19983,7 @@ const ReactionButton = (props) => {
|
|
19945
19983
|
};
|
19946
19984
|
const renderEmoji = (item, dismissMenu) => (React.createElement("div", { style: reactionEmojiMenuStyles() }, emojis.map((emoji, index) => {
|
19947
19985
|
const resourceUrl = emojiResource.get(emoji);
|
19986
|
+
const frameCount = props.reactionResources !== undefined ? getEmojiFrameCount(emoji, props.reactionResources) : 0;
|
19948
19987
|
return (React.createElement(react.TooltipHost, { key: index, "data-ui-id": index, hidden: props.disableTooltip, content: emojiButtonTooltip.get(emoji), styles: reactionToolTipHostStyle(), calloutProps: Object.assign({}, calloutProps) },
|
19949
19988
|
React.createElement(react.IconButton, { key: index, onClick: () => {
|
19950
19989
|
props.onReactionClick(emoji);
|
@@ -19952,7 +19991,7 @@ const ReactionButton = (props) => {
|
|
19952
19991
|
return new Map(prevMap).set(emoji, false);
|
19953
19992
|
});
|
19954
19993
|
dismissMenu();
|
19955
|
-
}, style: emojiStyles(resourceUrl ? resourceUrl : '', isHoveredMap.get(emoji) ? 'running' : 'paused'), onMouseEnter: () => setIsHoveredMap((prevMap) => {
|
19994
|
+
}, style: emojiStyles(resourceUrl ? resourceUrl : '', isHoveredMap.get(emoji) ? 'running' : 'paused', frameCount), onMouseEnter: () => setIsHoveredMap((prevMap) => {
|
19956
19995
|
return new Map(prevMap).set(emoji, true);
|
19957
19996
|
}), onMouseLeave: () => setIsHoveredMap((prevMap) => {
|
19958
19997
|
return new Map(prevMap).set(emoji, false);
|
@@ -20518,7 +20557,7 @@ const dtmfFrequencies = {
|
|
20518
20557
|
|
20519
20558
|
// Copyright (c) Microsoft Corporation.
|
20520
20559
|
// Licensed under the MIT License.
|
20521
|
-
var __awaiter$
|
20560
|
+
var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
20522
20561
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
20523
20562
|
return new (P || (P = Promise))(function (resolve, reject) {
|
20524
20563
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -20562,10 +20601,10 @@ const DialpadButton = (props) => {
|
|
20562
20601
|
const [buttonPressed, setButtonPressed] = React.useState(false);
|
20563
20602
|
const dtmfToneSound = React.useRef(new Tone(dtmfToneAudioContext, dtmfFrequencies[digit].f1, dtmfFrequencies[digit].f2));
|
20564
20603
|
const useLongPressProps = React.useMemo(() => ({
|
20565
|
-
onClick: () => __awaiter$
|
20604
|
+
onClick: () => __awaiter$x(void 0, void 0, void 0, function* () {
|
20566
20605
|
onClick(digit, index);
|
20567
20606
|
}),
|
20568
|
-
onLongPress: () => __awaiter$
|
20607
|
+
onLongPress: () => __awaiter$x(void 0, void 0, void 0, function* () {
|
20569
20608
|
onLongPress(digit, index);
|
20570
20609
|
}),
|
20571
20610
|
touchEventsOnly: longPressTrigger === 'touch'
|
@@ -21399,7 +21438,7 @@ const _VideoBackgroundEffectsPicker = (props) => {
|
|
21399
21438
|
return (React.createElement(react.Stack, { className: react.mergeStyles((_a = props.styles) === null || _a === void 0 ? void 0 : _a.rowRoot), wrap: props.itemsPerRow === 'wrap', horizontal: true, key: rowIndex, tokens: { childrenGap: '0.5rem' }, "data-ui-id": "video-effects-picker-row" },
|
21400
21439
|
options.map((option, i) => {
|
21401
21440
|
if (i === 0 && rowIndex === 0) {
|
21402
|
-
return (React.createElement(_VideoEffectsItem, Object.assign({}, option, { itemKey: option.itemKey, key: option.itemKey, focusOnMount:
|
21441
|
+
return (React.createElement(_VideoEffectsItem, Object.assign({}, option, { itemKey: option.itemKey, key: option.itemKey, focusOnMount: !props.ignoreFocusOnMount })));
|
21403
21442
|
}
|
21404
21443
|
return React.createElement(_VideoEffectsItem, Object.assign({}, option, { itemKey: option.itemKey, key: option.itemKey }));
|
21405
21444
|
}),
|
@@ -21719,7 +21758,7 @@ const _spokenLanguageToCaptionLanguage = {
|
|
21719
21758
|
|
21720
21759
|
// Copyright (c) Microsoft Corporation.
|
21721
21760
|
// Licensed under the MIT License.
|
21722
|
-
var __awaiter$
|
21761
|
+
var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
21723
21762
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
21724
21763
|
return new (P || (P = Promise))(function (resolve, reject) {
|
21725
21764
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -21758,7 +21797,7 @@ const _CaptionsSettingsModal = (props) => {
|
|
21758
21797
|
onDismissCaptionsSettings();
|
21759
21798
|
}
|
21760
21799
|
}, [onDismissCaptionsSettings]);
|
21761
|
-
const onConfirm = React.useCallback(() => __awaiter$
|
21800
|
+
const onConfirm = React.useCallback(() => __awaiter$w(void 0, void 0, void 0, function* () {
|
21762
21801
|
const spokenLanguageCode = selectedSpokenLanguage.key;
|
21763
21802
|
const captionLanguageCode = selectedCaptionLanguage.key;
|
21764
21803
|
if (isCaptionsFeatureActive) {
|
@@ -22867,7 +22906,7 @@ const findConditionalCompiledSelector = (component) => {
|
|
22867
22906
|
|
22868
22907
|
// Copyright (c) Microsoft Corporation.
|
22869
22908
|
// Licensed under the MIT License.
|
22870
|
-
var __awaiter$
|
22909
|
+
var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
22871
22910
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
22872
22911
|
return new (P || (P = Promise))(function (resolve, reject) {
|
22873
22912
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -22890,14 +22929,14 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
|
|
22890
22929
|
let messageIterator = undefined;
|
22891
22930
|
let readReceiptIterator = undefined;
|
22892
22931
|
return {
|
22893
|
-
onSendMessage: (content, options) => __awaiter$
|
22932
|
+
onSendMessage: (content, options) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22894
22933
|
const sendMessageRequest = {
|
22895
22934
|
content,
|
22896
22935
|
senderDisplayName: chatClient.getState().displayName
|
22897
22936
|
};
|
22898
22937
|
yield chatThreadClient.sendMessage(sendMessageRequest, options);
|
22899
22938
|
}),
|
22900
|
-
onUpdateMessage: (messageId, content, options) => __awaiter$
|
22939
|
+
onUpdateMessage: (messageId, content, options) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22901
22940
|
const updatedMetadata = (options === null || options === void 0 ? void 0 : options.metadata) ? Object.assign({}, options.metadata) : {};
|
22902
22941
|
if ((options === null || options === void 0 ? void 0 : options.attachmentMetadata) && (options === null || options === void 0 ? void 0 : options.attachmentMetadata.length) > 0) {
|
22903
22942
|
// Only create object if there are objects to add.
|
@@ -22905,23 +22944,23 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
|
|
22905
22944
|
}
|
22906
22945
|
yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
|
22907
22946
|
}),
|
22908
|
-
onDeleteMessage: (messageId) => __awaiter$
|
22947
|
+
onDeleteMessage: (messageId) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22909
22948
|
yield chatThreadClient.deleteMessage(messageId);
|
22910
22949
|
}),
|
22911
22950
|
// This handler is designed for chatThread to consume
|
22912
|
-
onMessageSeen: (chatMessageId) => __awaiter$
|
22951
|
+
onMessageSeen: (chatMessageId) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22913
22952
|
yield chatThreadClient.sendReadReceipt({ chatMessageId });
|
22914
22953
|
}),
|
22915
|
-
onTyping: () => __awaiter$
|
22954
|
+
onTyping: () => __awaiter$v(void 0, void 0, void 0, function* () {
|
22916
22955
|
yield chatThreadClient.sendTypingNotification();
|
22917
22956
|
}),
|
22918
|
-
onRemoveParticipant: (userId) => __awaiter$
|
22957
|
+
onRemoveParticipant: (userId) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22919
22958
|
yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
|
22920
22959
|
}),
|
22921
|
-
updateThreadTopicName: (topicName) => __awaiter$
|
22960
|
+
updateThreadTopicName: (topicName) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22922
22961
|
yield chatThreadClient.updateTopic(topicName);
|
22923
22962
|
}),
|
22924
|
-
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$
|
22963
|
+
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$v(void 0, void 0, void 0, function* () {
|
22925
22964
|
var _a, _b, _c;
|
22926
22965
|
if (messageIterator === undefined) {
|
22927
22966
|
// Lazy definition so that errors in the method call are reported correctly.
|
@@ -23832,7 +23871,7 @@ const Constants = {
|
|
23832
23871
|
*/
|
23833
23872
|
const chatStatefulLogger = logger.createClientLogger('communication-react:chat-stateful');
|
23834
23873
|
|
23835
|
-
var __awaiter$
|
23874
|
+
var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
23836
23875
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
23837
23876
|
return new (P || (P = Promise))(function (resolve, reject) {
|
23838
23877
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -23874,7 +23913,7 @@ class ResourceDownloadQueue {
|
|
23874
23913
|
this._messagesNeedingResourceRetrieval.push(copy);
|
23875
23914
|
}
|
23876
23915
|
startQueue(threadId, operation, options) {
|
23877
|
-
return __awaiter$
|
23916
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23878
23917
|
if (this.isActive) {
|
23879
23918
|
return;
|
23880
23919
|
}
|
@@ -23910,7 +23949,7 @@ class ResourceDownloadQueue {
|
|
23910
23949
|
}
|
23911
23950
|
}
|
23912
23951
|
downloadSingleUrl(message, resourceUrl, operation) {
|
23913
|
-
return __awaiter$
|
23952
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23914
23953
|
const response = { sourceUrl: '' };
|
23915
23954
|
try {
|
23916
23955
|
const abortController = new AbortController();
|
@@ -23926,7 +23965,7 @@ class ResourceDownloadQueue {
|
|
23926
23965
|
});
|
23927
23966
|
}
|
23928
23967
|
downloadAllPreviewUrls(message, operation) {
|
23929
|
-
return __awaiter$
|
23968
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23930
23969
|
var _a;
|
23931
23970
|
const attachments = (_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments;
|
23932
23971
|
if (message.type === 'html' && attachments) {
|
@@ -23953,7 +23992,7 @@ class ResourceDownloadQueue {
|
|
23953
23992
|
});
|
23954
23993
|
}
|
23955
23994
|
downloadResource(operation, url, abortController) {
|
23956
|
-
return __awaiter$
|
23995
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23957
23996
|
this._requestsToCancel[url] = { src: url, abortController };
|
23958
23997
|
const blobUrl = yield operation(url, { credential: this._credential, endpoint: this._endpoint }, { abortController });
|
23959
23998
|
delete this._requestsToCancel[url];
|
@@ -23964,9 +24003,9 @@ class ResourceDownloadQueue {
|
|
23964
24003
|
/**
|
23965
24004
|
* @private
|
23966
24005
|
*/
|
23967
|
-
const fetchImageSource = (src, authentication, options) => __awaiter$
|
24006
|
+
const fetchImageSource = (src, authentication, options) => __awaiter$u(void 0, void 0, void 0, function* () {
|
23968
24007
|
function fetchWithAuthentication(url, token, options) {
|
23969
|
-
return __awaiter$
|
24008
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23970
24009
|
const headers = new Headers();
|
23971
24010
|
headers.append('Authorization', `Bearer ${token}`);
|
23972
24011
|
return yield fetchWithTimeout(url, {
|
@@ -23977,7 +24016,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$t(void 0, v
|
|
23977
24016
|
});
|
23978
24017
|
}
|
23979
24018
|
function fetchWithTimeout(resource, options) {
|
23980
|
-
return __awaiter$
|
24019
|
+
return __awaiter$u(this, void 0, void 0, function* () {
|
23981
24020
|
// default timeout is 30 seconds
|
23982
24021
|
const { timeout = 30000, abortController } = options;
|
23983
24022
|
const id = setTimeout(() => {
|
@@ -24001,7 +24040,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$t(void 0, v
|
|
24001
24040
|
|
24002
24041
|
// Copyright (c) Microsoft Corporation.
|
24003
24042
|
// Licensed under the MIT License.
|
24004
|
-
var __awaiter$
|
24043
|
+
var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
24005
24044
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
24006
24045
|
return new (P || (P = Promise))(function (resolve, reject) {
|
24007
24046
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -24077,7 +24116,7 @@ let ChatContext$1 = class ChatContext {
|
|
24077
24116
|
// Any item in queue should be removed.
|
24078
24117
|
}
|
24079
24118
|
downloadResourceToCache(threadId, messageId, resourceUrl) {
|
24080
|
-
return __awaiter$
|
24119
|
+
return __awaiter$t(this, void 0, void 0, function* () {
|
24081
24120
|
var _a;
|
24082
24121
|
let message = (_a = this.getState().threads[threadId]) === null || _a === void 0 ? void 0 : _a.chatMessages[messageId];
|
24083
24122
|
if (message && this._fullsizeImageQueue) {
|
@@ -24356,7 +24395,7 @@ let ChatContext$1 = class ChatContext {
|
|
24356
24395
|
* @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
|
24357
24396
|
*/
|
24358
24397
|
withAsyncErrorTeedToState(f, target) {
|
24359
|
-
return (...args) => __awaiter$
|
24398
|
+
return (...args) => __awaiter$t(this, void 0, void 0, function* () {
|
24360
24399
|
try {
|
24361
24400
|
return yield f(...args);
|
24362
24401
|
}
|
@@ -24469,7 +24508,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
|
|
24469
24508
|
|
24470
24509
|
// Copyright (c) Microsoft Corporation.
|
24471
24510
|
// Licensed under the MIT License.
|
24472
|
-
var __awaiter$
|
24511
|
+
var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
24473
24512
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
24474
24513
|
return new (P || (P = Promise))(function (resolve, reject) {
|
24475
24514
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -24557,7 +24596,7 @@ class EventSubscriber {
|
|
24557
24596
|
};
|
24558
24597
|
// This is a temporary fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK.
|
24559
24598
|
// Without the temporary fix, there are missing 'participant joined' and 'participant left' system messages in the chat thread.
|
24560
|
-
this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$
|
24599
|
+
this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$s(this, void 0, void 0, function* () {
|
24561
24600
|
var _a, e_1, _b, _c;
|
24562
24601
|
try {
|
24563
24602
|
for (var _d = true, _e = __asyncValues$1(this.chatClient
|
@@ -24651,7 +24690,7 @@ class EventSubscriber {
|
|
24651
24690
|
|
24652
24691
|
// Copyright (c) Microsoft Corporation.
|
24653
24692
|
// Licensed under the MIT License.
|
24654
|
-
var __awaiter$
|
24693
|
+
var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
24655
24694
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
24656
24695
|
return new (P || (P = Promise))(function (resolve, reject) {
|
24657
24696
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -24673,7 +24712,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
|
|
24673
24712
|
const threadsIterator = iteratorCreator(...args);
|
24674
24713
|
return {
|
24675
24714
|
next() {
|
24676
|
-
return __awaiter$
|
24715
|
+
return __awaiter$r(this, void 0, void 0, function* () {
|
24677
24716
|
const result = yield threadsIterator.next();
|
24678
24717
|
if (!result.done && result.value) {
|
24679
24718
|
decorateFn(result.value, context);
|
@@ -24688,7 +24727,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
|
|
24688
24727
|
const pages = threadsIterator.byPage(settings);
|
24689
24728
|
return {
|
24690
24729
|
next() {
|
24691
|
-
return __awaiter$
|
24730
|
+
return __awaiter$r(this, void 0, void 0, function* () {
|
24692
24731
|
const result = yield pages.next();
|
24693
24732
|
const page = result.value;
|
24694
24733
|
if (!result.done && result.value) {
|
@@ -24775,7 +24814,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
|
|
24775
24814
|
|
24776
24815
|
// Copyright (c) Microsoft Corporation.
|
24777
24816
|
// Licensed under the MIT License.
|
24778
|
-
var __awaiter$
|
24817
|
+
var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
24779
24818
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
24780
24819
|
return new (P || (P = Promise))(function (resolve, reject) {
|
24781
24820
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -24794,14 +24833,14 @@ class ProxyChatThreadClient {
|
|
24794
24833
|
return createDecoratedListMessages(chatThreadClient, this._context);
|
24795
24834
|
}
|
24796
24835
|
case 'getMessage': {
|
24797
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24836
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24798
24837
|
const message = yield chatThreadClient.getMessage(...args);
|
24799
24838
|
this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
|
24800
24839
|
return message;
|
24801
24840
|
}), 'ChatThreadClient.getMessage');
|
24802
24841
|
}
|
24803
24842
|
case 'sendMessage': {
|
24804
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24843
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24805
24844
|
var _a;
|
24806
24845
|
// Retry logic?
|
24807
24846
|
const [request, options] = args;
|
@@ -24842,7 +24881,7 @@ class ProxyChatThreadClient {
|
|
24842
24881
|
}), 'ChatThreadClient.sendMessage');
|
24843
24882
|
}
|
24844
24883
|
case 'addParticipants': {
|
24845
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24884
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24846
24885
|
const result = yield chatThreadClient.addParticipants(...args);
|
24847
24886
|
const [addRequest] = args;
|
24848
24887
|
const participantsToAdd = addRequest.participants;
|
@@ -24851,7 +24890,7 @@ class ProxyChatThreadClient {
|
|
24851
24890
|
}), 'ChatThreadClient.addParticipants');
|
24852
24891
|
}
|
24853
24892
|
case 'deleteMessage': {
|
24854
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24893
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24855
24894
|
// DeleteMessage is able to either delete local one(for failed message) or synced message
|
24856
24895
|
const [messageId] = args;
|
24857
24896
|
if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
|
@@ -24869,12 +24908,12 @@ class ProxyChatThreadClient {
|
|
24869
24908
|
return createDecoratedListReadReceipts(chatThreadClient, this._context);
|
24870
24909
|
}
|
24871
24910
|
case 'sendTypingNotification': {
|
24872
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24911
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24873
24912
|
return yield chatThreadClient.sendTypingNotification(...args);
|
24874
24913
|
}), 'ChatThreadClient.sendTypingNotification');
|
24875
24914
|
}
|
24876
24915
|
case 'removeParticipant': {
|
24877
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24916
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24878
24917
|
const result = yield chatThreadClient.removeParticipant(...args);
|
24879
24918
|
const [removeIdentifier] = args;
|
24880
24919
|
this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
|
@@ -24882,7 +24921,7 @@ class ProxyChatThreadClient {
|
|
24882
24921
|
}), 'ChatThreadClient.removeParticipant');
|
24883
24922
|
}
|
24884
24923
|
case 'updateMessage': {
|
24885
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24924
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24886
24925
|
const result = yield chatThreadClient.updateMessage(...args);
|
24887
24926
|
const [messageId, updateOption] = args;
|
24888
24927
|
this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
|
@@ -24890,7 +24929,7 @@ class ProxyChatThreadClient {
|
|
24890
24929
|
}), 'ChatThreadClient.updateMessage');
|
24891
24930
|
}
|
24892
24931
|
case 'updateTopic': {
|
24893
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24932
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24894
24933
|
const result = yield chatThreadClient.updateTopic(...args);
|
24895
24934
|
const [topic] = args;
|
24896
24935
|
this._context.updateThreadTopic(chatThreadClient.threadId, topic);
|
@@ -24898,7 +24937,7 @@ class ProxyChatThreadClient {
|
|
24898
24937
|
}), 'ChatThreadClient.updateTopic');
|
24899
24938
|
}
|
24900
24939
|
case 'getProperties': {
|
24901
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
24940
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
|
24902
24941
|
const result = yield chatThreadClient.getProperties(...args);
|
24903
24942
|
this._context.updateThread(chatThreadClient.threadId, result);
|
24904
24943
|
return result;
|
@@ -24936,7 +24975,7 @@ const createDecoratedListThreads = (chatClient, context) => {
|
|
24936
24975
|
|
24937
24976
|
// Copyright (c) Microsoft Corporation.
|
24938
24977
|
// Licensed under the MIT License.
|
24939
|
-
var __awaiter$
|
24978
|
+
var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
24940
24979
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
24941
24980
|
return new (P || (P = Promise))(function (resolve, reject) {
|
24942
24981
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -24955,7 +24994,7 @@ const proxyChatClient = {
|
|
24955
24994
|
switch (prop) {
|
24956
24995
|
case 'createChatThread': {
|
24957
24996
|
return context.withAsyncErrorTeedToState(function (...args) {
|
24958
|
-
return __awaiter$
|
24997
|
+
return __awaiter$p(this, void 0, void 0, function* () {
|
24959
24998
|
const result = yield chatClient.createChatThread(...args);
|
24960
24999
|
const thread = result.chatThread;
|
24961
25000
|
if (thread) {
|
@@ -24968,7 +25007,7 @@ const proxyChatClient = {
|
|
24968
25007
|
}
|
24969
25008
|
case 'deleteChatThread': {
|
24970
25009
|
return context.withAsyncErrorTeedToState(function (...args) {
|
24971
|
-
return __awaiter$
|
25010
|
+
return __awaiter$p(this, void 0, void 0, function* () {
|
24972
25011
|
const result = yield chatClient.deleteChatThread(...args);
|
24973
25012
|
context.deleteThread(args[0]);
|
24974
25013
|
return result;
|
@@ -24988,7 +25027,7 @@ const proxyChatClient = {
|
|
24988
25027
|
}
|
24989
25028
|
case 'startRealtimeNotifications': {
|
24990
25029
|
return context.withAsyncErrorTeedToState(function (...args) {
|
24991
|
-
return __awaiter$
|
25030
|
+
return __awaiter$p(this, void 0, void 0, function* () {
|
24992
25031
|
const ret = yield chatClient.startRealtimeNotifications(...args);
|
24993
25032
|
if (!receiver.eventSubscriber) {
|
24994
25033
|
receiver.eventSubscriber = new EventSubscriber(chatClient, context);
|
@@ -24999,7 +25038,7 @@ const proxyChatClient = {
|
|
24999
25038
|
}
|
25000
25039
|
case 'stopRealtimeNotifications': {
|
25001
25040
|
return context.withAsyncErrorTeedToState(function (...args) {
|
25002
|
-
return __awaiter$
|
25041
|
+
return __awaiter$p(this, void 0, void 0, function* () {
|
25003
25042
|
const ret = yield chatClient.stopRealtimeNotifications(...args);
|
25004
25043
|
if (receiver.eventSubscriber) {
|
25005
25044
|
receiver.eventSubscriber.unsubscribe();
|
@@ -25090,7 +25129,7 @@ const _createStatefulChatClientWithDeps = (chatClient, args, options) => {
|
|
25090
25129
|
* Provides common functions for updating the upload progress, canceling an upload etc.
|
25091
25130
|
* @private
|
25092
25131
|
*/
|
25093
|
-
class
|
25132
|
+
class AttachmentUpload {
|
25094
25133
|
constructor(data) {
|
25095
25134
|
this._emitter = new EventEmitter.EventEmitter();
|
25096
25135
|
this._emitter.setMaxListeners(_MAX_EVENT_LISTENERS);
|
@@ -25102,29 +25141,29 @@ class FileUpload {
|
|
25102
25141
|
this.metadata = data;
|
25103
25142
|
}
|
25104
25143
|
const name = data === null || data === void 0 ? void 0 : data.name;
|
25105
|
-
this.
|
25144
|
+
this.name = name;
|
25106
25145
|
}
|
25107
|
-
|
25146
|
+
notifyProgressChanged(value) {
|
25108
25147
|
this._emitter.emit('uploadProgressChange', this.id, value);
|
25109
25148
|
}
|
25110
|
-
|
25149
|
+
notifyCompleted(metadata) {
|
25111
25150
|
this._emitter.emit('uploadComplete', this.id, metadata);
|
25112
25151
|
}
|
25113
|
-
|
25152
|
+
notifyFailed(message) {
|
25114
25153
|
this._emitter.emit('uploadFail', this.id, message);
|
25115
25154
|
}
|
25116
25155
|
/**
|
25117
|
-
*
|
25118
|
-
* @param event - {@link
|
25119
|
-
* @param listener - {@link
|
25156
|
+
* Attachment upload event subscriber.
|
25157
|
+
* @param event - {@link AttachmentUploadEvents}
|
25158
|
+
* @param listener - {@link AttachmentUploadEventListener}
|
25120
25159
|
*/
|
25121
25160
|
on(event, listener) {
|
25122
25161
|
this._emitter.addListener(event, listener);
|
25123
25162
|
}
|
25124
25163
|
/**
|
25125
|
-
*
|
25126
|
-
* @param event - {@link
|
25127
|
-
* @param listener - {@link
|
25164
|
+
* Attachment upload event unsubscriber.
|
25165
|
+
* @param event - {@link AttachmentUploadEvents}
|
25166
|
+
* @param listener - {@link AttachmentUploadEventListener}
|
25128
25167
|
*/
|
25129
25168
|
off(event, listener) {
|
25130
25169
|
this._emitter.removeListener(event, listener);
|
@@ -25230,7 +25269,7 @@ const CallCompositeIcon = (props) => (React.createElement(react.FontIcon, Object
|
|
25230
25269
|
*/
|
25231
25270
|
const CallWithChatCompositeIcon = (props) => (React.createElement(react.FontIcon, Object.assign({}, props)));
|
25232
25271
|
|
25233
|
-
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
25272
|
+
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",hangUpConfirmButtonLabel:"Confirm",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
25234
25273
|
|
25235
25274
|
// Copyright (c) Microsoft Corporation.
|
25236
25275
|
// Licensed under the MIT License.
|
@@ -25272,11 +25311,13 @@ const useLocale = () => React.useContext(LocaleContext);
|
|
25272
25311
|
/**
|
25273
25312
|
* @internal
|
25274
25313
|
*/
|
25275
|
-
const
|
25314
|
+
const AttachmentUploadButton = (props) => {
|
25276
25315
|
const inputRef = React.useRef(null);
|
25277
25316
|
const theme = react.useTheme();
|
25278
|
-
|
25279
|
-
|
25317
|
+
// default supportedMediaTypes is ['*'], meaning all media types are supported.
|
25318
|
+
// default disableMultipleUploads is false, meaning multiple files can be selected.
|
25319
|
+
const { supportedMediaTypes = ['*'], disableMultipleUploads = false, onChange } = props;
|
25320
|
+
const attachmentUploadButtonClassName = react.mergeStyles({
|
25280
25321
|
width: '1.5rem',
|
25281
25322
|
height: '1.5rem',
|
25282
25323
|
cursor: 'pointer',
|
@@ -25295,13 +25336,13 @@ const FileUploadButton = (props) => {
|
|
25295
25336
|
}
|
25296
25337
|
});
|
25297
25338
|
return (React.createElement(React.Fragment, null,
|
25298
|
-
React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center", className:
|
25339
|
+
React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center", className: attachmentUploadButtonClassName, onClick: () => {
|
25299
25340
|
var _a;
|
25300
25341
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
25301
25342
|
} },
|
25302
25343
|
React.createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: uploadFileButtonStringTrampoline() },
|
25303
25344
|
React.createElement(SendBoxAttachFileIconTrampoline, null))),
|
25304
|
-
React.createElement("input", { ref: inputRef, hidden: true, multiple:
|
25345
|
+
React.createElement("input", { ref: inputRef, hidden: true, multiple: !disableMultipleUploads, accept: supportedMediaTypes.join(','), type: "file", onClick: (e) => {
|
25305
25346
|
// To ensure that `onChange` is fired even if the same file is picked again.
|
25306
25347
|
e.currentTarget.value = '';
|
25307
25348
|
}, onChange: (e) => {
|
@@ -25313,17 +25354,17 @@ const SendBoxAttachFileIconTrampoline = () => {
|
|
25313
25354
|
return React.createElement(ChatCompositeIcon, { iconName: "SendBoxAttachFile" });
|
25314
25355
|
};
|
25315
25356
|
/**
|
25316
|
-
* A wrapper to return {@link
|
25357
|
+
* A wrapper to return {@link AttachmentUploadButton} component conditionally.
|
25317
25358
|
* It will return `<></>` for stable builds.
|
25318
25359
|
* @internal
|
25319
25360
|
*/
|
25320
|
-
const
|
25361
|
+
const AttachmentUploadButtonWrapper = (
|
25321
25362
|
// To make conditional compilation not throw errors.
|
25322
25363
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
25323
25364
|
props) => {
|
25324
25365
|
return (React.createElement(React.Fragment, null,
|
25325
25366
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25326
|
-
React.createElement(
|
25367
|
+
React.createElement(AttachmentUploadButton, Object.assign({}, props))));
|
25327
25368
|
};
|
25328
25369
|
const uploadFileButtonStringTrampoline = () => {
|
25329
25370
|
//@conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload)
|
@@ -25338,38 +25379,45 @@ const uploadFileButtonStringTrampoline = () => {
|
|
25338
25379
|
/**
|
25339
25380
|
* @internal
|
25340
25381
|
*/
|
25341
|
-
class
|
25382
|
+
class AttachmentUploadContext {
|
25342
25383
|
constructor(chatContext) {
|
25343
25384
|
this.chatContext = chatContext;
|
25344
25385
|
}
|
25345
|
-
|
25346
|
-
return this.chatContext.getState().
|
25386
|
+
getAttachmentUploads() {
|
25387
|
+
return this.chatContext.getState().attachmentUploads;
|
25347
25388
|
}
|
25348
|
-
|
25349
|
-
const
|
25389
|
+
addAttachmentUploads(attachmentUploads) {
|
25390
|
+
const attachmentUploadsMap = convertObservableAttachmentUploadToAttachmentUploadsUiState(attachmentUploads);
|
25350
25391
|
this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
|
25351
|
-
draft.
|
25352
|
-
draft.
|
25392
|
+
draft.attachmentUploads = draft.attachmentUploads || {};
|
25393
|
+
draft.attachmentUploads = Object.assign(Object.assign({}, draft.attachmentUploads), attachmentUploadsMap);
|
25353
25394
|
}));
|
25354
25395
|
}
|
25355
|
-
|
25396
|
+
clearUploads() {
|
25356
25397
|
this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
|
25357
|
-
draft.
|
25398
|
+
draft.attachmentUploads = {};
|
25358
25399
|
}));
|
25359
25400
|
}
|
25360
|
-
|
25401
|
+
updateAttachmentUpload(id, data) {
|
25361
25402
|
this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
|
25362
|
-
var _a, _b;
|
25363
|
-
if ((_a = draft.
|
25364
|
-
draft.
|
25403
|
+
var _a, _b, _c, _d;
|
25404
|
+
if ((_a = draft.attachmentUploads) === null || _a === void 0 ? void 0 : _a[id]) {
|
25405
|
+
draft.attachmentUploads[(_b = data.id) !== null && _b !== void 0 ? _b : id] = Object.assign(Object.assign({}, (_c = draft.attachmentUploads) === null || _c === void 0 ? void 0 : _c[id]), data);
|
25406
|
+
if (data.id) {
|
25407
|
+
(_d = draft.attachmentUploads) === null || _d === void 0 ? true : delete _d[id];
|
25408
|
+
}
|
25365
25409
|
}
|
25366
25410
|
}));
|
25367
25411
|
}
|
25368
|
-
|
25412
|
+
deleteAttachmentUploads(ids) {
|
25369
25413
|
this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
|
25370
25414
|
ids.forEach((id) => {
|
25371
25415
|
var _a;
|
25372
|
-
(_a = draft === null || draft === void 0 ? void 0 : draft.
|
25416
|
+
const keys = Object.keys((_a = draft === null || draft === void 0 ? void 0 : draft.attachmentUploads) !== null && _a !== void 0 ? _a : []).filter((rawID) => { var _a; return ((_a = draft.attachmentUploads) === null || _a === void 0 ? void 0 : _a[rawID].id) === id; });
|
25417
|
+
keys.forEach((key) => {
|
25418
|
+
var _a;
|
25419
|
+
(_a = draft.attachmentUploads) === null || _a === void 0 ? true : delete _a[key];
|
25420
|
+
});
|
25373
25421
|
});
|
25374
25422
|
}));
|
25375
25423
|
}
|
@@ -25378,92 +25426,104 @@ class FileUploadContext {
|
|
25378
25426
|
/**
|
25379
25427
|
* @internal
|
25380
25428
|
*/
|
25381
|
-
class
|
25429
|
+
class AzureCommunicationAttachmentUploadAdapter {
|
25382
25430
|
constructor(chatContext) {
|
25383
|
-
this.
|
25384
|
-
this.context = new
|
25431
|
+
this.attachmentUploads = [];
|
25432
|
+
this.context = new AttachmentUploadContext(chatContext);
|
25385
25433
|
}
|
25386
|
-
|
25387
|
-
return this.
|
25434
|
+
findAttachmentUpload(id) {
|
25435
|
+
return this.attachmentUploads.find((attachmentUpload) => attachmentUpload.id === id);
|
25388
25436
|
}
|
25389
|
-
|
25390
|
-
this.
|
25391
|
-
this.context.
|
25437
|
+
deleteAttachmentUploads(ids) {
|
25438
|
+
this.attachmentUploads = this.attachmentUploads.filter((attachmentUpload) => !ids.includes(attachmentUpload.id));
|
25439
|
+
this.context.deleteAttachmentUploads(ids);
|
25392
25440
|
}
|
25393
|
-
|
25394
|
-
const
|
25395
|
-
const ids = Object.values(
|
25396
|
-
.filter((item) => item.
|
25441
|
+
deleteErroneousAttachmentUploads() {
|
25442
|
+
const attachmentUploads = this.context.getAttachmentUploads() || {};
|
25443
|
+
const ids = Object.values(attachmentUploads)
|
25444
|
+
.filter((item) => item.uploadError)
|
25397
25445
|
.map((item) => item.id);
|
25398
25446
|
ids.forEach((id) => {
|
25399
|
-
const
|
25400
|
-
this.unsubscribeAllEvents(
|
25401
|
-
});
|
25402
|
-
this.
|
25403
|
-
}
|
25404
|
-
|
25405
|
-
this.
|
25406
|
-
const
|
25407
|
-
files.forEach((file) =>
|
25408
|
-
|
25409
|
-
this.
|
25410
|
-
this.context.
|
25411
|
-
return
|
25412
|
-
}
|
25413
|
-
|
25414
|
-
return this.
|
25415
|
-
}
|
25416
|
-
|
25417
|
-
return this.
|
25418
|
-
}
|
25419
|
-
|
25420
|
-
this.context.
|
25421
|
-
this.
|
25422
|
-
this.
|
25423
|
-
}
|
25424
|
-
|
25425
|
-
this.
|
25426
|
-
const
|
25427
|
-
this.unsubscribeAllEvents(
|
25428
|
-
this.
|
25429
|
-
}
|
25430
|
-
|
25431
|
-
this.context.
|
25432
|
-
}
|
25433
|
-
|
25434
|
-
this.context.
|
25435
|
-
|
25447
|
+
const attachmentUpload = this.findAttachmentUpload(id);
|
25448
|
+
this.unsubscribeAllEvents(attachmentUpload);
|
25449
|
+
});
|
25450
|
+
this.deleteAttachmentUploads(ids);
|
25451
|
+
}
|
25452
|
+
registerAttachmentUploads(files) {
|
25453
|
+
this.deleteErroneousAttachmentUploads();
|
25454
|
+
const attachmentUploads = [];
|
25455
|
+
files.forEach((file) => attachmentUploads.push(new AttachmentUpload(file)));
|
25456
|
+
attachmentUploads.forEach((attachmentUpload) => this.subscribeAllEvents(attachmentUpload));
|
25457
|
+
this.attachmentUploads = this.attachmentUploads.concat(attachmentUploads);
|
25458
|
+
this.context.addAttachmentUploads(attachmentUploads);
|
25459
|
+
return attachmentUploads;
|
25460
|
+
}
|
25461
|
+
registerActiveUploads(files) {
|
25462
|
+
return this.registerAttachmentUploads(files);
|
25463
|
+
}
|
25464
|
+
registerCompletedUploads(metadata) {
|
25465
|
+
return this.registerAttachmentUploads(metadata);
|
25466
|
+
}
|
25467
|
+
clearUploads() {
|
25468
|
+
this.context.clearUploads();
|
25469
|
+
this.attachmentUploads.forEach((attachmentUpload) => this.unsubscribeAllEvents(attachmentUpload));
|
25470
|
+
this.attachmentUploads = [];
|
25471
|
+
}
|
25472
|
+
cancelUpload(id) {
|
25473
|
+
this.deleteErroneousAttachmentUploads();
|
25474
|
+
const attachmentUpload = this.findAttachmentUpload(id);
|
25475
|
+
this.unsubscribeAllEvents(attachmentUpload);
|
25476
|
+
this.deleteAttachmentUploads([id]);
|
25477
|
+
}
|
25478
|
+
updateUploadProgress(id, progress) {
|
25479
|
+
this.context.updateAttachmentUpload(id, { progress });
|
25480
|
+
}
|
25481
|
+
updateUploadStatusMessage(id, errorMessage) {
|
25482
|
+
this.context.updateAttachmentUpload(id, {
|
25483
|
+
uploadError: {
|
25436
25484
|
message: errorMessage,
|
25437
25485
|
timestamp: Date.now()
|
25438
25486
|
}
|
25439
25487
|
});
|
25440
25488
|
}
|
25441
|
-
|
25442
|
-
this.context.
|
25489
|
+
updateUploadMetadata(id, metadata) {
|
25490
|
+
this.context.updateAttachmentUpload(id, {
|
25491
|
+
progress: 1,
|
25492
|
+
id: metadata.id,
|
25493
|
+
name: metadata.name,
|
25494
|
+
url: metadata.url,
|
25495
|
+
extension: metadata.extension
|
25496
|
+
});
|
25443
25497
|
}
|
25444
|
-
subscribeAllEvents(
|
25445
|
-
|
25446
|
-
|
25447
|
-
|
25498
|
+
subscribeAllEvents(attachmentUpload) {
|
25499
|
+
attachmentUpload.on('uploadProgressChange', this.updateUploadProgress.bind(this));
|
25500
|
+
attachmentUpload.on('uploadComplete', this.updateUploadMetadata.bind(this));
|
25501
|
+
attachmentUpload.on('uploadFail', this.updateUploadStatusMessage.bind(this));
|
25448
25502
|
}
|
25449
|
-
unsubscribeAllEvents(
|
25450
|
-
|
25451
|
-
|
25452
|
-
|
25503
|
+
unsubscribeAllEvents(attachmentUpload) {
|
25504
|
+
attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadProgressChange', this.updateUploadProgress.bind(this));
|
25505
|
+
attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadComplete', this.updateUploadMetadata.bind(this));
|
25506
|
+
attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadFail', this.updateUploadStatusMessage.bind(this));
|
25453
25507
|
}
|
25454
25508
|
}
|
25455
25509
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25456
25510
|
/**
|
25457
|
-
* @param
|
25511
|
+
* @param attachmentUploadUiState {@link AttachmentUploadsUiState}
|
25458
25512
|
* @private
|
25459
25513
|
*/
|
25460
|
-
const
|
25461
|
-
if (
|
25514
|
+
const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) => {
|
25515
|
+
if (attachmentUploads) {
|
25462
25516
|
const fileMetadata = [];
|
25463
|
-
Object.keys(
|
25464
|
-
const
|
25465
|
-
if (
|
25466
|
-
fileMetadata.push(
|
25517
|
+
Object.keys(attachmentUploads).forEach((key) => {
|
25518
|
+
const attachment = attachmentUploads[key];
|
25519
|
+
if (attachment && !attachment.uploadError) {
|
25520
|
+
fileMetadata.push({
|
25521
|
+
id: attachment.id,
|
25522
|
+
name: attachment.name,
|
25523
|
+
extension: attachment.extension,
|
25524
|
+
url: attachment.url,
|
25525
|
+
progress: attachment.progress
|
25526
|
+
});
|
25467
25527
|
}
|
25468
25528
|
});
|
25469
25529
|
if (fileMetadata.length > 0) {
|
@@ -25476,13 +25536,13 @@ const convertFileUploadsUiStateToMessageMetadata = (fileUploads) => {
|
|
25476
25536
|
/**
|
25477
25537
|
* @private
|
25478
25538
|
*/
|
25479
|
-
const
|
25480
|
-
return
|
25481
|
-
map[
|
25482
|
-
id:
|
25483
|
-
|
25539
|
+
const convertObservableAttachmentUploadToAttachmentUploadsUiState = (attachmentUploads) => {
|
25540
|
+
return attachmentUploads.reduce((map, attachmentUpload) => {
|
25541
|
+
map[attachmentUpload.id] = {
|
25542
|
+
id: attachmentUpload.id,
|
25543
|
+
name: attachmentUpload.name,
|
25484
25544
|
progress: 0,
|
25485
|
-
|
25545
|
+
extension: attachmentUpload.name.split('.').pop() || ''
|
25486
25546
|
};
|
25487
25547
|
return map;
|
25488
25548
|
}, {});
|
@@ -25490,7 +25550,7 @@ const convertObservableFileUploadToFileUploadsUiState = (fileUploads) => {
|
|
25490
25550
|
|
25491
25551
|
// Copyright (c) Microsoft Corporation.
|
25492
25552
|
// Licensed under the MIT License.
|
25493
|
-
var __awaiter$
|
25553
|
+
var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
25494
25554
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
25495
25555
|
return new (P || (P = Promise))(function (resolve, reject) {
|
25496
25556
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -25553,7 +25613,7 @@ class ChatContext {
|
|
25553
25613
|
latestErrors: clientState.latestErrors
|
25554
25614
|
};
|
25555
25615
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25556
|
-
updatedState = Object.assign(Object.assign({}, updatedState), {
|
25616
|
+
updatedState = Object.assign(Object.assign({}, updatedState), { attachmentUploads: this.state.attachmentUploads });
|
25557
25617
|
this.setState(updatedState);
|
25558
25618
|
}
|
25559
25619
|
}
|
@@ -25568,7 +25628,7 @@ class AzureCommunicationChatAdapter {
|
|
25568
25628
|
this.chatThreadClient = chatThreadClient;
|
25569
25629
|
this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId);
|
25570
25630
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25571
|
-
this.
|
25631
|
+
this.attachmentUploadAdapter = new AzureCommunicationAttachmentUploadAdapter(this.context);
|
25572
25632
|
const onStateChange = (clientState) => {
|
25573
25633
|
// unsubscribe when the instance gets disposed
|
25574
25634
|
if (!this) {
|
@@ -25598,19 +25658,19 @@ class AzureCommunicationChatAdapter {
|
|
25598
25658
|
this.on = this.on.bind(this);
|
25599
25659
|
this.off = this.off.bind(this);
|
25600
25660
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25601
|
-
this.
|
25661
|
+
this.registerActiveUploads = this.registerActiveUploads.bind(this);
|
25602
25662
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25603
|
-
this.
|
25663
|
+
this.registerCompletedUploads = this.registerCompletedUploads.bind(this);
|
25604
25664
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25605
|
-
this.
|
25665
|
+
this.clearUploads = this.clearUploads.bind(this);
|
25606
25666
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25607
|
-
this.
|
25667
|
+
this.cancelUpload = this.cancelUpload.bind(this);
|
25608
25668
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25609
|
-
this.
|
25669
|
+
this.updateUploadProgress = this.updateUploadProgress.bind(this);
|
25610
25670
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25611
|
-
this.
|
25671
|
+
this.updateUploadStatusMessage = this.updateUploadStatusMessage.bind(this);
|
25612
25672
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25613
|
-
this.
|
25673
|
+
this.updateUploadMetadata = this.updateUploadMetadata.bind(this);
|
25614
25674
|
this.downloadResourceToCache = this.downloadResourceToCache.bind(this);
|
25615
25675
|
this.removeResourceFromCache = this.removeResourceFromCache.bind(this);
|
25616
25676
|
}
|
@@ -25619,9 +25679,9 @@ class AzureCommunicationChatAdapter {
|
|
25619
25679
|
this.chatClient.dispose();
|
25620
25680
|
}
|
25621
25681
|
fetchInitialData() {
|
25622
|
-
return __awaiter$
|
25682
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25623
25683
|
// If get properties fails we dont want to try to get the participants after.
|
25624
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25684
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25625
25685
|
var _a, e_1, _b, _c;
|
25626
25686
|
yield this.chatThreadClient.getProperties();
|
25627
25687
|
try {
|
@@ -25657,61 +25717,61 @@ class AzureCommunicationChatAdapter {
|
|
25657
25717
|
this.context.offStateChange(handler);
|
25658
25718
|
}
|
25659
25719
|
sendMessage(content_1) {
|
25660
|
-
return __awaiter$
|
25661
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25720
|
+
return __awaiter$o(this, arguments, void 0, function* (content, options = {}) {
|
25721
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25662
25722
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25663
|
-
options.metadata = Object.assign(Object.assign({}, options.metadata),
|
25723
|
+
options.metadata = Object.assign(Object.assign({}, options.metadata), convertAttachmentUploadsUiStateToMessageMetadata(this.context.getState().attachmentUploads));
|
25664
25724
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25665
25725
|
/**
|
25666
25726
|
* All the current uploads need to be clear from the state before a message has been sent.
|
25667
25727
|
* This ensures the following behavior:
|
25668
25728
|
* 1. File Upload cards are removed from sendbox at the same time text in sendbox is removed.
|
25669
|
-
* 2. any component rendering these
|
25670
|
-
* 3. Cleans the state for new
|
25729
|
+
* 2. any component rendering these attachment uploads doesn't continue to do so.
|
25730
|
+
* 3. Cleans the state for new attachment uploads with a fresh message.
|
25671
25731
|
*/
|
25672
|
-
this.
|
25732
|
+
this.attachmentUploadAdapter.clearUploads();
|
25673
25733
|
yield this.handlers.onSendMessage(content, options);
|
25674
25734
|
}));
|
25675
25735
|
});
|
25676
25736
|
}
|
25677
25737
|
sendReadReceipt(chatMessageId) {
|
25678
|
-
return __awaiter$
|
25679
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25738
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25739
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25680
25740
|
yield this.handlers.onMessageSeen(chatMessageId);
|
25681
25741
|
}));
|
25682
25742
|
});
|
25683
25743
|
}
|
25684
25744
|
sendTypingIndicator() {
|
25685
|
-
return __awaiter$
|
25686
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25745
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25746
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25687
25747
|
yield this.handlers.onTyping();
|
25688
25748
|
}));
|
25689
25749
|
});
|
25690
25750
|
}
|
25691
25751
|
removeParticipant(userId) {
|
25692
|
-
return __awaiter$
|
25693
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25752
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25753
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25694
25754
|
yield this.handlers.onRemoveParticipant(userId);
|
25695
25755
|
}));
|
25696
25756
|
});
|
25697
25757
|
}
|
25698
25758
|
setTopic(topicName) {
|
25699
|
-
return __awaiter$
|
25700
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25759
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25760
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25701
25761
|
yield this.handlers.updateThreadTopicName(topicName);
|
25702
25762
|
}));
|
25703
25763
|
});
|
25704
25764
|
}
|
25705
25765
|
loadPreviousChatMessages(messagesToLoad) {
|
25706
|
-
return __awaiter$
|
25707
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25766
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25767
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25708
25768
|
return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
|
25709
25769
|
}));
|
25710
25770
|
});
|
25711
25771
|
}
|
25712
25772
|
updateMessage(messageId, content, metadata, options) {
|
25713
|
-
return __awaiter$
|
25714
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25773
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25774
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25715
25775
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25716
25776
|
const updatedOptions = { attachmentMetadata: options === null || options === void 0 ? void 0 : options.attachmentMetadata, metadata: metadata };
|
25717
25777
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
@@ -25720,42 +25780,42 @@ class AzureCommunicationChatAdapter {
|
|
25720
25780
|
});
|
25721
25781
|
}
|
25722
25782
|
deleteMessage(messageId) {
|
25723
|
-
return __awaiter$
|
25724
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
25783
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25784
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
|
25725
25785
|
return yield this.handlers.onDeleteMessage(messageId);
|
25726
25786
|
}));
|
25727
25787
|
});
|
25728
25788
|
}
|
25729
25789
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25730
|
-
|
25731
|
-
return this.
|
25790
|
+
registerActiveUploads(files) {
|
25791
|
+
return this.attachmentUploadAdapter.registerActiveUploads(files);
|
25732
25792
|
}
|
25733
25793
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25734
|
-
|
25735
|
-
return this.
|
25794
|
+
registerCompletedUploads(metadata) {
|
25795
|
+
return this.attachmentUploadAdapter.registerCompletedUploads(metadata);
|
25736
25796
|
}
|
25737
25797
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25738
|
-
|
25739
|
-
this.
|
25798
|
+
clearUploads() {
|
25799
|
+
this.attachmentUploadAdapter.clearUploads();
|
25740
25800
|
}
|
25741
25801
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25742
|
-
|
25743
|
-
this.
|
25802
|
+
cancelUpload(id) {
|
25803
|
+
this.attachmentUploadAdapter.cancelUpload(id);
|
25744
25804
|
}
|
25745
25805
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25746
|
-
|
25747
|
-
this.
|
25806
|
+
updateUploadProgress(id, progress) {
|
25807
|
+
this.attachmentUploadAdapter.updateUploadProgress(id, progress);
|
25748
25808
|
}
|
25749
25809
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25750
|
-
|
25751
|
-
this.
|
25810
|
+
updateUploadStatusMessage(id, errorMessage) {
|
25811
|
+
this.attachmentUploadAdapter.updateUploadStatusMessage(id, errorMessage);
|
25752
25812
|
}
|
25753
25813
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
25754
|
-
|
25755
|
-
this.
|
25814
|
+
updateUploadMetadata(id, metadata) {
|
25815
|
+
this.attachmentUploadAdapter.updateUploadMetadata(id, metadata);
|
25756
25816
|
}
|
25757
25817
|
downloadResourceToCache(resourceDetails) {
|
25758
|
-
return __awaiter$
|
25818
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25759
25819
|
this.chatClient.downloadResourceToCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);
|
25760
25820
|
});
|
25761
25821
|
}
|
@@ -25834,7 +25894,7 @@ class AzureCommunicationChatAdapter {
|
|
25834
25894
|
this.emitter.off(event, listener);
|
25835
25895
|
}
|
25836
25896
|
asyncTeeErrorToEventEmitter(f) {
|
25837
|
-
return __awaiter$
|
25897
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
25838
25898
|
try {
|
25839
25899
|
return yield f();
|
25840
25900
|
}
|
@@ -25884,7 +25944,7 @@ const convertEventType = (type) => {
|
|
25884
25944
|
*
|
25885
25945
|
* @public
|
25886
25946
|
*/
|
25887
|
-
const createAzureCommunicationChatAdapter = (_a) => __awaiter$
|
25947
|
+
const createAzureCommunicationChatAdapter = (_a) => __awaiter$o(void 0, [_a], void 0, function* ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) {
|
25888
25948
|
return _createAzureCommunicationChatAdapterInner(endpointUrl, userId, displayName, credential, threadId);
|
25889
25949
|
});
|
25890
25950
|
/**
|
@@ -25892,7 +25952,7 @@ const createAzureCommunicationChatAdapter = (_a) => __awaiter$n(void 0, [_a], vo
|
|
25892
25952
|
*
|
25893
25953
|
* @internal
|
25894
25954
|
*/
|
25895
|
-
const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1) => __awaiter$
|
25955
|
+
const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1) => __awaiter$o(void 0, [endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
|
25896
25956
|
if (!_isValidIdentifier(userId)) {
|
25897
25957
|
throw new Error('Provided userId is invalid. Please provide valid identifier object.');
|
25898
25958
|
}
|
@@ -25912,7 +25972,7 @@ const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, display
|
|
25912
25972
|
* ThreadId is a promise to allow for lazy initialization of the adapter.
|
25913
25973
|
* @internal
|
25914
25974
|
*/
|
25915
|
-
const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2) => __awaiter$
|
25975
|
+
const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2) => __awaiter$o(void 0, [endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
|
25916
25976
|
if (!_isValidIdentifier(userId)) {
|
25917
25977
|
throw new Error('Provided userId is invalid. Please provide valid identifier object.');
|
25918
25978
|
}
|
@@ -25922,7 +25982,7 @@ const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, dis
|
|
25922
25982
|
endpoint,
|
25923
25983
|
credential
|
25924
25984
|
}, undefined, telemetryImplementationHint);
|
25925
|
-
return threadId.then((threadId) => __awaiter$
|
25985
|
+
return threadId.then((threadId) => __awaiter$o(void 0, void 0, void 0, function* () {
|
25926
25986
|
const chatThreadClient = yield chatClient.getChatThreadClient(threadId);
|
25927
25987
|
yield chatClient.startRealtimeNotifications();
|
25928
25988
|
const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient);
|
@@ -25980,7 +26040,7 @@ beforeDispose) => {
|
|
25980
26040
|
if (!credential || !displayName || !endpoint || !threadId || !userId) {
|
25981
26041
|
return;
|
25982
26042
|
}
|
25983
|
-
(() => __awaiter$
|
26043
|
+
(() => __awaiter$o(void 0, void 0, void 0, function* () {
|
25984
26044
|
if (adapterRef.current) {
|
25985
26045
|
// Dispose the old adapter when a new one is created.
|
25986
26046
|
//
|
@@ -26012,7 +26072,7 @@ beforeDispose) => {
|
|
26012
26072
|
// Dispose any existing adapter when the component unmounts.
|
26013
26073
|
React.useEffect(() => {
|
26014
26074
|
return () => {
|
26015
|
-
(() => __awaiter$
|
26075
|
+
(() => __awaiter$o(void 0, void 0, void 0, function* () {
|
26016
26076
|
if (adapterRef.current) {
|
26017
26077
|
if (beforeDisposeRef.current) {
|
26018
26078
|
yield beforeDisposeRef.current(adapterRef.current);
|
@@ -26034,7 +26094,7 @@ beforeDispose) => {
|
|
26034
26094
|
* @public
|
26035
26095
|
*/
|
26036
26096
|
function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient) {
|
26037
|
-
return __awaiter$
|
26097
|
+
return __awaiter$o(this, void 0, void 0, function* () {
|
26038
26098
|
return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
|
26039
26099
|
});
|
26040
26100
|
}
|
@@ -26267,7 +26327,7 @@ const sendboxContainerStyles = {
|
|
26267
26327
|
|
26268
26328
|
// Copyright (c) Microsoft Corporation.
|
26269
26329
|
// Licensed under the MIT License.
|
26270
|
-
var __awaiter$
|
26330
|
+
var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26271
26331
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
26272
26332
|
return new (P || (P = Promise))(function (resolve, reject) {
|
26273
26333
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -26288,7 +26348,7 @@ const AvatarPersona = (props) => {
|
|
26288
26348
|
const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
|
26289
26349
|
const [data, setData] = React.useState();
|
26290
26350
|
React.useEffect(() => {
|
26291
|
-
(() => __awaiter$
|
26351
|
+
(() => __awaiter$n(void 0, void 0, void 0, function* () {
|
26292
26352
|
if (dataProvider && userId) {
|
26293
26353
|
const newData = yield dataProvider(userId);
|
26294
26354
|
if (avatarDeepDifferenceCheck(data, newData)) {
|
@@ -26710,9 +26770,9 @@ const AttachmentDownloadErrorBar = (props) => {
|
|
26710
26770
|
/**
|
26711
26771
|
* @private
|
26712
26772
|
*/
|
26713
|
-
const
|
26773
|
+
const getAttachmentUploads = (state) => {
|
26714
26774
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26715
|
-
return state === null || state === void 0 ? void 0 : state.
|
26775
|
+
return state === null || state === void 0 ? void 0 : state.attachmentUploads;
|
26716
26776
|
};
|
26717
26777
|
|
26718
26778
|
// Copyright (c) Microsoft Corporation.
|
@@ -26720,8 +26780,8 @@ const getFileUploads = (state) => {
|
|
26720
26780
|
/**
|
26721
26781
|
* @private
|
26722
26782
|
*/
|
26723
|
-
const
|
26724
|
-
const files = Object.values(
|
26783
|
+
const attachmentUploadsSelector = reselect.createSelector([getAttachmentUploads], (attachmentUploads) => {
|
26784
|
+
const files = Object.values(attachmentUploads || {}).map((attachmentUpload) => (Object.assign(Object.assign({}, attachmentUpload), { uploadComplete: !!attachmentUpload })));
|
26725
26785
|
return { files: files };
|
26726
26786
|
});
|
26727
26787
|
|
@@ -26738,7 +26798,7 @@ const useSelector$2 = (selector, selectorProps) => {
|
|
26738
26798
|
// Copyright (c) Microsoft Corporation.
|
26739
26799
|
// Licensed under the MIT License.
|
26740
26800
|
/* @conditional-compile-remove(rich-text-editor) */
|
26741
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
26801
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BTyywbnH.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
26742
26802
|
/**
|
26743
26803
|
* @private
|
26744
26804
|
*/
|
@@ -26748,19 +26808,19 @@ const SendBox = (props) => {
|
|
26748
26808
|
adapter } = props;
|
26749
26809
|
const sendBoxProps = usePropsFor$2(SendBox$1);
|
26750
26810
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26751
|
-
const
|
26811
|
+
const activeAttachmentUploads = useSelector$2(attachmentUploadsSelector).files;
|
26752
26812
|
const sendBoxStyles = React.useMemo(() => {
|
26753
26813
|
return Object.assign({}, styles);
|
26754
26814
|
}, [styles]);
|
26755
26815
|
const simpleSendBox = React.useMemo(() => (React.createElement(SendBox$1, Object.assign({}, sendBoxProps, { autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus, styles: sendBoxStyles,
|
26756
26816
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26757
|
-
|
26817
|
+
activeAttachmentUploads: activeAttachmentUploads,
|
26758
26818
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26759
|
-
|
26819
|
+
onCancelAttachmentUpload: adapter.cancelUpload }))), [
|
26760
26820
|
sendBoxProps,
|
26761
26821
|
options,
|
26762
26822
|
sendBoxStyles,
|
26763
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26823
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
|
26764
26824
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ adapter
|
26765
26825
|
]);
|
26766
26826
|
// /* @conditional-compile-remove(rich-text-editor) */
|
@@ -26773,7 +26833,7 @@ const SendBox = (props) => {
|
|
26773
26833
|
|
26774
26834
|
// Copyright (c) Microsoft Corporation.
|
26775
26835
|
// Licensed under the MIT License.
|
26776
|
-
var __awaiter$
|
26836
|
+
var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26777
26837
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
26778
26838
|
return new (P || (P = Promise))(function (resolve, reject) {
|
26779
26839
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -26786,7 +26846,8 @@ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
26786
26846
|
* @private
|
26787
26847
|
*/
|
26788
26848
|
const ChatScreen = (props) => {
|
26789
|
-
|
26849
|
+
var _a, _b, _c, _d;
|
26850
|
+
const { onFetchAvatarPersonaData, onRenderMessage, onRenderTypingIndicator, options, styles, attachmentOptions, formFactor } = props;
|
26790
26851
|
const defaultNumberOfChatMessagesToReload = 5;
|
26791
26852
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26792
26853
|
const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');
|
@@ -26796,7 +26857,7 @@ const ChatScreen = (props) => {
|
|
26796
26857
|
const theme = useTheme();
|
26797
26858
|
React.useEffect(() => {
|
26798
26859
|
// Initial data should be always fetched by the composite(or external caller) instead of the adapter
|
26799
|
-
const fetchData = () => __awaiter$
|
26860
|
+
const fetchData = () => __awaiter$m(void 0, void 0, void 0, function* () {
|
26800
26861
|
// Fetch initial data for adapter
|
26801
26862
|
yield adapter.fetchInitialData();
|
26802
26863
|
// Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.
|
@@ -26847,21 +26908,23 @@ const ChatScreen = (props) => {
|
|
26847
26908
|
return Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.typingIndicator);
|
26848
26909
|
}, [styles === null || styles === void 0 ? void 0 : styles.typingIndicator]);
|
26849
26910
|
const userId = toFlatCommunicationIdentifier(adapter.getState().userId);
|
26850
|
-
const
|
26911
|
+
const attachmentUploadButtonOnChange = React.useCallback((files) => {
|
26912
|
+
var _a;
|
26851
26913
|
if (!files) {
|
26852
26914
|
return;
|
26853
26915
|
}
|
26854
26916
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26855
|
-
const
|
26917
|
+
const attachmentUploads = adapter.registerActiveUploads(Array.from(files));
|
26856
26918
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26857
|
-
|
26858
|
-
}, [adapter,
|
26919
|
+
(_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handler(attachmentUploads);
|
26920
|
+
}, [adapter, attachmentOptions]);
|
26859
26921
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
26860
|
-
const onRenderAttachmentDownloads = React.useCallback((userId, message) =>
|
26861
|
-
|
26862
|
-
actionsForAttachment:
|
26863
|
-
|
26864
|
-
|
26922
|
+
const onRenderAttachmentDownloads = React.useCallback((userId, message) => {
|
26923
|
+
var _a;
|
26924
|
+
return (React.createElement(_AttachmentDownloadCards, { attachments: message.files, message: message, actionsForAttachment: (_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.downloadOptions) === null || _a === void 0 ? void 0 : _a.actionsForAttachment, onActionHandlerFailed: (errorMessage) => {
|
26925
|
+
setDownloadErrorMessage(errorMessage);
|
26926
|
+
} }));
|
26927
|
+
}, [(_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.downloadOptions) === null || _a === void 0 ? void 0 : _a.actionsForAttachment]);
|
26865
26928
|
const onInlineImageClicked = React.useCallback((attachmentId, messageId) => {
|
26866
26929
|
var _a, _b;
|
26867
26930
|
const message = adapter.getState().thread.chatMessages[messageId];
|
@@ -26950,12 +27013,17 @@ const ChatScreen = (props) => {
|
|
26950
27013
|
}
|
26951
27014
|
}, [overlayImageItem === null || overlayImageItem === void 0 ? void 0 : overlayImageItem.attachmentId]);
|
26952
27015
|
const AttachFileButton = React.useCallback(() => {
|
26953
|
-
var _a, _b;
|
26954
|
-
if (!(
|
27016
|
+
var _a, _b, _c;
|
27017
|
+
if (!((_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handler)) {
|
26955
27018
|
return null;
|
26956
27019
|
}
|
26957
|
-
return (React.createElement(
|
26958
|
-
}, [
|
27020
|
+
return (React.createElement(AttachmentUploadButtonWrapper, { supportedMediaTypes: (_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.supportedMediaTypes, disableMultipleUploads: (_c = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _c === void 0 ? void 0 : _c.disableMultipleUploads, onChange: attachmentUploadButtonOnChange }));
|
27021
|
+
}, [
|
27022
|
+
(_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.handler,
|
27023
|
+
(_c = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _c === void 0 ? void 0 : _c.supportedMediaTypes,
|
27024
|
+
(_d = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _d === void 0 ? void 0 : _d.disableMultipleUploads,
|
27025
|
+
attachmentUploadButtonOnChange
|
27026
|
+
]);
|
26959
27027
|
return (React.createElement(react.Stack, { className: chatContainer, grow: true },
|
26960
27028
|
(options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
|
26961
27029
|
React.createElement(react.Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
|
@@ -27013,7 +27081,7 @@ const ChatComposite = (props) => {
|
|
27013
27081
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
27014
27082
|
formFactor: formFactor, options: options, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onRenderTypingIndicator: onRenderTypingIndicator, onRenderMessage: onRenderMessage, onFetchParticipantMenuItems: onFetchParticipantMenuItems,
|
27015
27083
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
27016
|
-
|
27084
|
+
attachmentOptions: options === null || options === void 0 ? void 0 : options.attachmentOptions })))));
|
27017
27085
|
};
|
27018
27086
|
|
27019
27087
|
// Copyright (c) Microsoft Corporation.
|
@@ -27181,7 +27249,7 @@ const END_CALL_PAGES = [
|
|
27181
27249
|
|
27182
27250
|
// Copyright (c) Microsoft Corporation.
|
27183
27251
|
// Licensed under the MIT License.
|
27184
|
-
var __awaiter$
|
27252
|
+
var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
27185
27253
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27186
27254
|
return new (P || (P = Promise))(function (resolve, reject) {
|
27187
27255
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -27530,7 +27598,7 @@ const isDisabled$4 = (option) => {
|
|
27530
27598
|
/**
|
27531
27599
|
* @returns Permissions state for the camera.
|
27532
27600
|
*/
|
27533
|
-
const queryCameraPermissionFromPermissionsAPI = () => __awaiter$
|
27601
|
+
const queryCameraPermissionFromPermissionsAPI = () => __awaiter$l(void 0, void 0, void 0, function* () {
|
27534
27602
|
try {
|
27535
27603
|
return (yield navigator.permissions.query({ name: 'camera' })).state;
|
27536
27604
|
}
|
@@ -27543,7 +27611,7 @@ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$k(void 0, void 0
|
|
27543
27611
|
/**
|
27544
27612
|
* @returns Permissions state for the microphone.
|
27545
27613
|
*/
|
27546
|
-
const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$
|
27614
|
+
const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$l(void 0, void 0, void 0, function* () {
|
27547
27615
|
try {
|
27548
27616
|
return (yield navigator.permissions.query({ name: 'microphone' })).state;
|
27549
27617
|
}
|
@@ -27560,7 +27628,7 @@ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$k(void 0, vo
|
|
27560
27628
|
* If permission API is not supported on this browser, permission state is set to unsupported.
|
27561
27629
|
* @private
|
27562
27630
|
*/
|
27563
|
-
const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$
|
27631
|
+
const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$l(void 0, void 0, void 0, function* () {
|
27564
27632
|
const [cameraResult, microphoneResult] = yield Promise.all([
|
27565
27633
|
queryCameraPermissionFromPermissionsAPI(),
|
27566
27634
|
queryMicrophonePermissionFromPermissionsAPI()
|
@@ -27646,7 +27714,7 @@ const getLocatorOrTargetCallees = (locatorOrTargetCallees) => {
|
|
27646
27714
|
|
27647
27715
|
// Copyright (c) Microsoft Corporation.
|
27648
27716
|
// Licensed under the MIT License.
|
27649
|
-
var __awaiter$
|
27717
|
+
var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
27650
27718
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27651
27719
|
return new (P || (P = Promise))(function (resolve, reject) {
|
27652
27720
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -27669,22 +27737,22 @@ _component) => {
|
|
27669
27737
|
};
|
27670
27738
|
const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
|
27671
27739
|
return {
|
27672
|
-
onCreateLocalStreamView: (options) => __awaiter$
|
27740
|
+
onCreateLocalStreamView: (options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27673
27741
|
return yield adapter.createStreamView(undefined, options);
|
27674
27742
|
}),
|
27675
|
-
onCreateRemoteStreamView: (userId, options) => __awaiter$
|
27743
|
+
onCreateRemoteStreamView: (userId, options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27676
27744
|
return yield adapter.createStreamView(userId, options);
|
27677
27745
|
}),
|
27678
|
-
onHangUp: (forEveryone) => __awaiter$
|
27746
|
+
onHangUp: (forEveryone) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27679
27747
|
yield adapter.leaveCall(forEveryone);
|
27680
27748
|
}),
|
27681
27749
|
/* @conditional-compile-remove(PSTN-calls) */
|
27682
|
-
onToggleHold: () => __awaiter$
|
27750
|
+
onToggleHold: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27683
27751
|
var _a;
|
27684
27752
|
return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
|
27685
27753
|
}),
|
27686
27754
|
/* @conditional-compile-remove(PSTN-calls) */
|
27687
|
-
onAddParticipant: (participant, options) => __awaiter$
|
27755
|
+
onAddParticipant: (participant, options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27688
27756
|
if ('communicationUserId' in participant) {
|
27689
27757
|
return yield adapter.addParticipant(participant);
|
27690
27758
|
}
|
@@ -27692,10 +27760,10 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
|
|
27692
27760
|
return yield adapter.addParticipant(participant, options);
|
27693
27761
|
}
|
27694
27762
|
}),
|
27695
|
-
onSendDtmfTone: (dtmfTone) => __awaiter$
|
27763
|
+
onSendDtmfTone: (dtmfTone) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27696
27764
|
yield adapter.sendDtmfTone(dtmfTone);
|
27697
27765
|
}),
|
27698
|
-
onRemoveParticipant: (userId) => __awaiter$
|
27766
|
+
onRemoveParticipant: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27699
27767
|
if (typeof userId === 'string') {
|
27700
27768
|
yield adapter.removeParticipant(userId);
|
27701
27769
|
}
|
@@ -27704,137 +27772,137 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
|
|
27704
27772
|
yield adapter.removeParticipant(_toCommunicationIdentifier(userId));
|
27705
27773
|
}
|
27706
27774
|
}),
|
27707
|
-
onRaiseHand: () => __awaiter$
|
27775
|
+
onRaiseHand: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27708
27776
|
yield adapter.raiseHand();
|
27709
27777
|
}),
|
27710
|
-
onLowerHand: () => __awaiter$
|
27778
|
+
onLowerHand: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27711
27779
|
yield adapter.lowerHand();
|
27712
27780
|
}),
|
27713
|
-
onToggleRaiseHand: () => __awaiter$
|
27781
|
+
onToggleRaiseHand: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27714
27782
|
var _b;
|
27715
27783
|
((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.raiseHand.localParticipantRaisedHand)
|
27716
27784
|
? yield adapter.lowerHand()
|
27717
27785
|
: yield adapter.raiseHand();
|
27718
27786
|
}),
|
27719
27787
|
/* @conditional-compile-remove(reaction) */
|
27720
|
-
onReactionClick: (reaction) => __awaiter$
|
27788
|
+
onReactionClick: (reaction) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27721
27789
|
yield adapter.onReactionClick(reaction);
|
27722
27790
|
}),
|
27723
|
-
onSelectCamera: (deviceInfo, options) => __awaiter$
|
27791
|
+
onSelectCamera: (deviceInfo, options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27724
27792
|
yield adapter.setCamera(deviceInfo, options);
|
27725
27793
|
}),
|
27726
|
-
onSelectMicrophone: (deviceInfo) => __awaiter$
|
27794
|
+
onSelectMicrophone: (deviceInfo) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27727
27795
|
yield adapter.setMicrophone(deviceInfo);
|
27728
27796
|
}),
|
27729
|
-
onSelectSpeaker: (deviceInfo) => __awaiter$
|
27797
|
+
onSelectSpeaker: (deviceInfo) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27730
27798
|
yield adapter.setSpeaker(deviceInfo);
|
27731
27799
|
}),
|
27732
27800
|
onStartCall: (participants, options) => {
|
27733
27801
|
const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
|
27734
27802
|
return adapter.startCall(rawIds, options);
|
27735
27803
|
},
|
27736
|
-
onStartScreenShare: () => __awaiter$
|
27804
|
+
onStartScreenShare: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27737
27805
|
yield adapter.startScreenShare();
|
27738
27806
|
}),
|
27739
|
-
onStopScreenShare: () => __awaiter$
|
27807
|
+
onStopScreenShare: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27740
27808
|
yield adapter.stopScreenShare();
|
27741
27809
|
}),
|
27742
|
-
onToggleCamera: (options) => __awaiter$
|
27810
|
+
onToggleCamera: (options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27743
27811
|
isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
|
27744
27812
|
}),
|
27745
|
-
onToggleMicrophone: () => __awaiter$
|
27813
|
+
onToggleMicrophone: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27746
27814
|
var _c;
|
27747
27815
|
return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isMuted) ? yield adapter.unmute() : yield adapter.mute();
|
27748
27816
|
}),
|
27749
|
-
onToggleScreenShare: () => __awaiter$
|
27817
|
+
onToggleScreenShare: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27750
27818
|
var _d;
|
27751
27819
|
return ((_d = adapter.getState().call) === null || _d === void 0 ? void 0 : _d.isScreenSharingOn)
|
27752
27820
|
? yield adapter.stopScreenShare()
|
27753
27821
|
: yield adapter.startScreenShare();
|
27754
27822
|
}),
|
27755
|
-
onStartLocalVideo: () => __awaiter$
|
27823
|
+
onStartLocalVideo: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27756
27824
|
if (adapter.getState().call) {
|
27757
27825
|
return adapter.startCamera();
|
27758
27826
|
}
|
27759
27827
|
}),
|
27760
|
-
onDisposeLocalStreamView: () => __awaiter$
|
27828
|
+
onDisposeLocalStreamView: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27761
27829
|
return adapter.disposeLocalVideoStreamView();
|
27762
27830
|
}),
|
27763
|
-
onDisposeRemoteStreamView: (userId) => __awaiter$
|
27831
|
+
onDisposeRemoteStreamView: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27764
27832
|
return adapter.disposeStreamView(userId);
|
27765
27833
|
}),
|
27766
|
-
onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$
|
27834
|
+
onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27767
27835
|
return adapter.disposeScreenShareStreamView(userId);
|
27768
27836
|
}),
|
27769
|
-
onDisposeRemoteVideoStreamView: (userId) => __awaiter$
|
27837
|
+
onDisposeRemoteVideoStreamView: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27770
27838
|
return adapter.disposeRemoteVideoStreamView(userId);
|
27771
27839
|
}),
|
27772
27840
|
/* @conditional-compile-remove(call-readiness) */
|
27773
|
-
askDevicePermission: (constrain) => __awaiter$
|
27841
|
+
askDevicePermission: (constrain) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27774
27842
|
return adapter.askDevicePermission(constrain);
|
27775
27843
|
}),
|
27776
|
-
onRemoveVideoBackgroundEffects: () => __awaiter$
|
27844
|
+
onRemoveVideoBackgroundEffects: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27777
27845
|
return yield adapter.stopVideoBackgroundEffects();
|
27778
27846
|
}),
|
27779
|
-
onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$
|
27847
|
+
onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27780
27848
|
const blurConfig = Object.assign({ effectName: 'blur' }, backgroundBlurConfig);
|
27781
27849
|
return yield adapter.startVideoBackgroundEffect(blurConfig);
|
27782
27850
|
}),
|
27783
|
-
onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$
|
27851
|
+
onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27784
27852
|
const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);
|
27785
27853
|
return yield adapter.startVideoBackgroundEffect(replacementConfig);
|
27786
27854
|
}),
|
27787
27855
|
/* @conditional-compile-remove(close-captions) */
|
27788
|
-
onStartCaptions: (options) => __awaiter$
|
27856
|
+
onStartCaptions: (options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27789
27857
|
yield adapter.startCaptions(options);
|
27790
27858
|
}),
|
27791
27859
|
/* @conditional-compile-remove(close-captions) */
|
27792
|
-
onStopCaptions: () => __awaiter$
|
27860
|
+
onStopCaptions: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27793
27861
|
yield adapter.stopCaptions();
|
27794
27862
|
}),
|
27795
27863
|
/* @conditional-compile-remove(close-captions) */
|
27796
|
-
onSetSpokenLanguage: (language) => __awaiter$
|
27864
|
+
onSetSpokenLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27797
27865
|
yield adapter.setSpokenLanguage(language);
|
27798
27866
|
}),
|
27799
27867
|
/* @conditional-compile-remove(close-captions) */
|
27800
|
-
onSetCaptionLanguage: (language) => __awaiter$
|
27868
|
+
onSetCaptionLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27801
27869
|
yield adapter.setCaptionLanguage(language);
|
27802
27870
|
}),
|
27803
27871
|
/* @conditional-compile-remove(end-of-call-survey) */
|
27804
|
-
onSubmitSurvey: (survey) => __awaiter$
|
27872
|
+
onSubmitSurvey: (survey) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27805
27873
|
return yield adapter.submitSurvey(survey);
|
27806
27874
|
}),
|
27807
27875
|
/* @conditional-compile-remove(spotlight) */
|
27808
|
-
onStartSpotlight: (userIds) => __awaiter$
|
27876
|
+
onStartSpotlight: (userIds) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27809
27877
|
yield adapter.startSpotlight(userIds);
|
27810
27878
|
}),
|
27811
27879
|
/* @conditional-compile-remove(spotlight) */
|
27812
|
-
onStopSpotlight: (userIds) => __awaiter$
|
27880
|
+
onStopSpotlight: (userIds) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27813
27881
|
yield adapter.stopSpotlight(userIds);
|
27814
27882
|
}),
|
27815
27883
|
/* @conditional-compile-remove(spotlight) */
|
27816
|
-
onStopAllSpotlight: () => __awaiter$
|
27884
|
+
onStopAllSpotlight: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27817
27885
|
yield adapter.stopAllSpotlight();
|
27818
27886
|
}),
|
27819
27887
|
/* @conditional-compile-remove(spotlight) */
|
27820
27888
|
onStartLocalSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
|
27821
|
-
? () => __awaiter$
|
27889
|
+
? () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27822
27890
|
yield adapter.startSpotlight();
|
27823
27891
|
})
|
27824
27892
|
: undefined,
|
27825
27893
|
/* @conditional-compile-remove(spotlight) */
|
27826
|
-
onStopLocalSpotlight: () => __awaiter$
|
27894
|
+
onStopLocalSpotlight: () => __awaiter$k(void 0, void 0, void 0, function* () {
|
27827
27895
|
yield adapter.stopSpotlight();
|
27828
27896
|
}),
|
27829
27897
|
/* @conditional-compile-remove(spotlight) */
|
27830
27898
|
onStartRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
|
27831
|
-
? (userIds) => __awaiter$
|
27899
|
+
? (userIds) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27832
27900
|
yield adapter.startSpotlight(userIds);
|
27833
27901
|
})
|
27834
27902
|
: undefined,
|
27835
27903
|
/* @conditional-compile-remove(spotlight) */
|
27836
27904
|
onStopRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.removeParticipantsSpotlight.isPresent)
|
27837
|
-
? (userIds) => __awaiter$
|
27905
|
+
? (userIds) => __awaiter$k(void 0, void 0, void 0, function* () {
|
27838
27906
|
yield adapter.stopSpotlight(userIds);
|
27839
27907
|
})
|
27840
27908
|
: undefined
|
@@ -27980,7 +28048,7 @@ const MoreButton = (props) => {
|
|
27980
28048
|
|
27981
28049
|
// Copyright (c) Microsoft Corporation.
|
27982
28050
|
// Licensed under the MIT License.
|
27983
|
-
var __awaiter$
|
28051
|
+
var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
27984
28052
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27985
28053
|
return new (P || (P = Promise))(function (resolve, reject) {
|
27986
28054
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -28008,7 +28076,7 @@ const CaptionsBannerMoreButton = (props) => {
|
|
28008
28076
|
/* @conditional-compile-remove(close-captions) */
|
28009
28077
|
const moreButtonContextualMenuItems = [];
|
28010
28078
|
/* @conditional-compile-remove(close-captions) */
|
28011
|
-
const startCaptions = React.useCallback(() => __awaiter$
|
28079
|
+
const startCaptions = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
|
28012
28080
|
yield startCaptionsButtonHandlers.onStartCaptions({
|
28013
28081
|
spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
|
28014
28082
|
});
|
@@ -28205,15 +28273,105 @@ const getLabelFromRole = (role, locale) => {
|
|
28205
28273
|
|
28206
28274
|
// Copyright (c) Microsoft Corporation.
|
28207
28275
|
// Licensed under the MIT License.
|
28276
|
+
/**
|
28277
|
+
* @private
|
28278
|
+
*/
|
28279
|
+
const Prompt = (props) => {
|
28280
|
+
const theme = useTheme();
|
28281
|
+
return (React.createElement(react.Modal, { styles: modalStyles, isOpen: props.isOpen, onDismiss: props.onDismiss, isBlocking: false },
|
28282
|
+
React.createElement(react.Stack, { className: react.mergeStyles({ position: 'relative' }) },
|
28283
|
+
React.createElement(react.Text, { className: react.mergeStyles({ fontWeight: 600, fontSize: '1.25rem' }) }, props.heading),
|
28284
|
+
React.createElement(react.IconButton, { styles: iconButtonStyles(theme), iconProps: { iconName: 'Cancel' }, onClick: props.onCancel })),
|
28285
|
+
React.createElement(react.Stack, { verticalAlign: "center", className: react.mergeStyles({ minHeight: '6rem' }) },
|
28286
|
+
React.createElement(react.Text, { className: react.mergeStyles({ fontSize: '0.875rem' }) }, props.text)),
|
28287
|
+
React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", tokens: { childrenGap: '0.5rem' } },
|
28288
|
+
React.createElement(react.PrimaryButton, { styles: buttonTextStyles, text: props.confirmButtonLabel, onClick: props.onConfirm }),
|
28289
|
+
React.createElement(react.DefaultButton, { styles: buttonTextStyles, text: props.cancelButtonLabel, onClick: props.onCancel }))));
|
28290
|
+
};
|
28291
|
+
const iconButtonStyles = (theme) => ({
|
28292
|
+
root: {
|
28293
|
+
position: 'absolute',
|
28294
|
+
top: 0,
|
28295
|
+
right: 0,
|
28296
|
+
color: theme.palette.neutralPrimary
|
28297
|
+
},
|
28298
|
+
rootHovered: {
|
28299
|
+
color: theme.palette.neutralDark
|
28300
|
+
}
|
28301
|
+
});
|
28302
|
+
const modalStyles = { main: { padding: '1.5rem ', maxWidth: '30rem' } };
|
28303
|
+
const buttonTextStyles = { label: { fontSize: '0.875rem' } };
|
28304
|
+
|
28305
|
+
// Copyright (c) Microsoft Corporation.
|
28306
|
+
// Licensed under the MIT License.
|
28307
|
+
var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
28308
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
28309
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28310
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
28311
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
28312
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
28313
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
28314
|
+
});
|
28315
|
+
};
|
28208
28316
|
/** @private */
|
28209
28317
|
const EndCall = (props) => {
|
28318
|
+
var _a;
|
28210
28319
|
const compactMode = props.displayType === 'compact';
|
28211
28320
|
const hangUpButtonProps = usePropsFor$1(EndCallButton);
|
28321
|
+
/* @conditional-compile-remove(end-call-options) */
|
28322
|
+
const localeStrings = useLocale().strings;
|
28323
|
+
/* @conditional-compile-remove(end-call-options) */
|
28324
|
+
const { onHangUp, enableEndCallMenu } = hangUpButtonProps;
|
28325
|
+
/* @conditional-compile-remove(end-call-options) */
|
28326
|
+
const [showHangUpConfirm, setShowHangUpConfirm] = React.useState(false);
|
28327
|
+
/* @conditional-compile-remove(end-call-options) */
|
28328
|
+
const toggleConfirm = React.useCallback(() => {
|
28329
|
+
setShowHangUpConfirm(!showHangUpConfirm);
|
28330
|
+
}, [showHangUpConfirm]);
|
28331
|
+
/* @conditional-compile-remove(end-call-options) */
|
28332
|
+
const onHangUpConfirm = React.useCallback((hangUpForEveryone) => {
|
28333
|
+
onHangUp && onHangUp(hangUpForEveryone);
|
28334
|
+
toggleConfirm();
|
28335
|
+
}, [onHangUp, toggleConfirm]);
|
28336
|
+
/* @conditional-compile-remove(end-call-options) */
|
28337
|
+
const hangUpOverride = React.useCallback((forEveryone) => __awaiter$i(void 0, void 0, void 0, function* () {
|
28338
|
+
if (props.mobileView ||
|
28339
|
+
forEveryone === false /* value being false(not undefined) because it comes from endCall option */) {
|
28340
|
+
onHangUp();
|
28341
|
+
return;
|
28342
|
+
}
|
28343
|
+
forEveryone
|
28344
|
+
? setPromptHeading(localeStrings.call.endCallConfirmDialogTitle)
|
28345
|
+
: setPromptHeading(localeStrings.call.leaveConfirmDialogTitle);
|
28346
|
+
forEveryone
|
28347
|
+
? setPromptText(localeStrings.call.endCallConfirmDialogContent)
|
28348
|
+
: setPromptText(localeStrings.call.leaveConfirmDialogContent);
|
28349
|
+
toggleConfirm();
|
28350
|
+
}), [
|
28351
|
+
localeStrings.call.endCallConfirmDialogContent,
|
28352
|
+
localeStrings.call.endCallConfirmDialogTitle,
|
28353
|
+
localeStrings.call.leaveConfirmDialogContent,
|
28354
|
+
localeStrings.call.leaveConfirmDialogTitle,
|
28355
|
+
onHangUp,
|
28356
|
+
props.mobileView,
|
28357
|
+
toggleConfirm
|
28358
|
+
]);
|
28359
|
+
/* @conditional-compile-remove(end-call-options) */
|
28360
|
+
const [promptHeading, setPromptHeading] = React.useState();
|
28361
|
+
/* @conditional-compile-remove(end-call-options) */
|
28362
|
+
const [promptText, setPromptText] = React.useState();
|
28212
28363
|
const styles = React.useMemo(() => {
|
28213
28364
|
var _a;
|
28214
28365
|
return react.concatStyleSets(compactMode ? groupCallLeaveButtonCompressedStyle : groupCallLeaveButtonStyle, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
|
28215
28366
|
}, [compactMode, props.styles]);
|
28216
|
-
return (React.createElement(
|
28367
|
+
return (React.createElement(React.Fragment, null,
|
28368
|
+
/* @conditional-compile-remove(end-call-options) */
|
28369
|
+
React.createElement(Prompt, { heading: promptHeading, text: promptText, confirmButtonLabel: localeStrings.call.hangUpConfirmButtonLabel, cancelButtonLabel: localeStrings.call.hangUpCancelButtonLabel, onConfirm: () => onHangUpConfirm(enableEndCallMenu), isOpen: showHangUpConfirm, onCancel: toggleConfirm }),
|
28370
|
+
React.createElement(EndCallButton, Object.assign({ "data-ui-id": "call-composite-hangup-button" }, hangUpButtonProps, {
|
28371
|
+
/* @conditional-compile-remove(end-call-options) */
|
28372
|
+
onHangUp: hangUpOverride, styles: styles, showLabel: !compactMode,
|
28373
|
+
/* @conditional-compile-remove(end-call-options) */
|
28374
|
+
enableEndCallMenu: (_a = props.enableEndCallMenu) !== null && _a !== void 0 ? _a : false }))));
|
28217
28375
|
};
|
28218
28376
|
|
28219
28377
|
// Copyright (c) Microsoft Corporation.
|
@@ -29492,6 +29650,125 @@ const ExitSpotlightButton = (props) => {
|
|
29492
29650
|
return (React.createElement(ControlBarButton, Object.assign({ "data-ui-id": 'call-composite-exit-spotlight-button', labelKey: 'exitSpotlightButtonLabelKey', showLabel: props.displayType !== 'compact', onRenderIcon: () => React.createElement(_HighContrastAwareIcon, { iconName: 'ControlButtonExitSpotlight' }), onClick: props.onClick }, props)));
|
29493
29651
|
};
|
29494
29652
|
|
29653
|
+
// Copyright (c) Microsoft Corporation.
|
29654
|
+
// Licensed under the MIT License.
|
29655
|
+
/**
|
29656
|
+
* Default Modal PIP related pixel measurements used for ModalLocalAndremotePIP and common/utils.
|
29657
|
+
*
|
29658
|
+
* @private
|
29659
|
+
*/
|
29660
|
+
const MODAL_PIP_DEFAULT_PX = {
|
29661
|
+
rightPositionPx: 16,
|
29662
|
+
topPositionPx: 52,
|
29663
|
+
widthPx: 88,
|
29664
|
+
heightPx: 128
|
29665
|
+
};
|
29666
|
+
/**
|
29667
|
+
* @private
|
29668
|
+
*/
|
29669
|
+
const getPipStyles = (theme) => ({
|
29670
|
+
modal: {
|
29671
|
+
main: Object.assign(Object.assign({ borderRadius: theme.effects.roundedCorner4, boxShadow: theme.effects.elevation8,
|
29672
|
+
// Above the message thread / people pane.
|
29673
|
+
zIndex: 2 }, (theme.rtl
|
29674
|
+
? { left: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) }
|
29675
|
+
: { right: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) })), { top: _pxToRem(MODAL_PIP_DEFAULT_PX.topPositionPx) })
|
29676
|
+
}
|
29677
|
+
});
|
29678
|
+
/**
|
29679
|
+
* @private
|
29680
|
+
*/
|
29681
|
+
const PIPContainerStyle = {
|
29682
|
+
root: {
|
29683
|
+
position: 'absolute',
|
29684
|
+
width: '100%',
|
29685
|
+
height: '100%',
|
29686
|
+
pointerEvents: 'none',
|
29687
|
+
':focus-within': {
|
29688
|
+
outline: '1px solid #00000000'
|
29689
|
+
}
|
29690
|
+
}
|
29691
|
+
};
|
29692
|
+
/**
|
29693
|
+
* @private
|
29694
|
+
*/
|
29695
|
+
const hiddenStyle = react.concatStyleSets(PIPContainerStyle, { root: { display: 'none' } });
|
29696
|
+
/**
|
29697
|
+
* @private
|
29698
|
+
*/
|
29699
|
+
const modalStyle = {
|
29700
|
+
main: {
|
29701
|
+
minWidth: 'min-content',
|
29702
|
+
minHeight: 'min-content',
|
29703
|
+
position: 'absolute',
|
29704
|
+
overflow: 'hidden',
|
29705
|
+
// pointer events for root Modal div set to auto to make LocalAndRemotePIP interactive
|
29706
|
+
pointerEvents: 'auto',
|
29707
|
+
touchAction: 'none'
|
29708
|
+
},
|
29709
|
+
root: {
|
29710
|
+
width: '100%',
|
29711
|
+
height: '100%',
|
29712
|
+
// pointer events for root Modal div set to none to make descendants interactive
|
29713
|
+
pointerEvents: 'none',
|
29714
|
+
':focus-within': {
|
29715
|
+
outline: '3px solid #00000000',
|
29716
|
+
outlineOffset: '-3px'
|
29717
|
+
}
|
29718
|
+
}
|
29719
|
+
};
|
29720
|
+
/**
|
29721
|
+
* Styles for layer host to bound the modal wrapping PiPiP in the mobile pane.
|
29722
|
+
* @private
|
29723
|
+
*/
|
29724
|
+
const modalLayerHostStyle = {
|
29725
|
+
display: 'flex',
|
29726
|
+
position: 'absolute',
|
29727
|
+
left: 0,
|
29728
|
+
top: 0,
|
29729
|
+
width: '100%',
|
29730
|
+
height: '100%',
|
29731
|
+
overflow: 'hidden',
|
29732
|
+
zIndex: '100000',
|
29733
|
+
// pointer events for layerHost set to none to make descendants interactive
|
29734
|
+
pointerEvents: 'none'
|
29735
|
+
};
|
29736
|
+
|
29737
|
+
// Copyright (c) Microsoft Corporation.
|
29738
|
+
// Licensed under the MIT License.
|
29739
|
+
/**
|
29740
|
+
* @private
|
29741
|
+
*/
|
29742
|
+
const isBoolean = (value) => {
|
29743
|
+
return value !== null && typeof value === 'boolean';
|
29744
|
+
};
|
29745
|
+
/**
|
29746
|
+
* @private
|
29747
|
+
*/
|
29748
|
+
// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410
|
29749
|
+
const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
29750
|
+
const modalHostRef = React.useRef(document.getElementById(modalLayerHostId));
|
29751
|
+
const modalHostWidth = _useContainerWidth(modalHostRef);
|
29752
|
+
const modalHostHeight = _useContainerHeight(modalHostRef);
|
29753
|
+
const minDragPosition = React.useMemo(() => modalHostWidth === undefined
|
29754
|
+
? undefined
|
29755
|
+
: {
|
29756
|
+
x: rtl
|
29757
|
+
? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx
|
29758
|
+
: MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,
|
29759
|
+
y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx
|
29760
|
+
}, [modalHostWidth, rtl]);
|
29761
|
+
const maxDragPosition = React.useMemo(() => modalHostWidth === undefined || modalHostHeight === undefined
|
29762
|
+
? undefined
|
29763
|
+
: {
|
29764
|
+
x: rtl
|
29765
|
+
? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx
|
29766
|
+
: MODAL_PIP_DEFAULT_PX.rightPositionPx,
|
29767
|
+
y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx
|
29768
|
+
}, [modalHostHeight, modalHostWidth, rtl]);
|
29769
|
+
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
29770
|
+
};
|
29771
|
+
|
29495
29772
|
// Copyright (c) Microsoft Corporation.
|
29496
29773
|
// Licensed under the MIT License.
|
29497
29774
|
const inferCommonCallControlOptions = (mobileView, commonCallControlOptions) => {
|
@@ -29511,7 +29788,7 @@ const inferCommonCallControlOptions = (mobileView, commonCallControlOptions) =>
|
|
29511
29788
|
* @private
|
29512
29789
|
*/
|
29513
29790
|
const CommonCallControlBar = (props) => {
|
29514
|
-
var _a, _b, _c;
|
29791
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
29515
29792
|
const theme = react.useTheme();
|
29516
29793
|
const rtl = theme.rtl;
|
29517
29794
|
const controlBarContainerRef = React.useRef(null);
|
@@ -29526,6 +29803,11 @@ const CommonCallControlBar = (props) => {
|
|
29526
29803
|
const options = inferCommonCallControlOptions(props.mobileView, props.callControls);
|
29527
29804
|
/* @conditional-compile-remove(close-captions) */
|
29528
29805
|
const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = React.useState(false);
|
29806
|
+
/* @conditional-compile-remove(end-call-options) */
|
29807
|
+
// If the hangup capability is not present, we default to true
|
29808
|
+
const isHangUpForEveryoneAllowed = (_a = useSelector$1((state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.hangUpForEveryOne.isPresent; })) !== null && _a !== void 0 ? _a : true;
|
29809
|
+
/* @conditional-compile-remove(end-call-options) */
|
29810
|
+
const isTeams = useSelector$1(getIsTeamsCall);
|
29529
29811
|
const handleResize = React.useCallback(() => {
|
29530
29812
|
setControlBarButtonsWidth(controlBarContainerRef.current ? controlBarContainerRef.current.offsetWidth : 0);
|
29531
29813
|
setPanelsButtonsWidth(sidepaneControlsRef.current ? sidepaneControlsRef.current.offsetWidth : 0);
|
@@ -29615,7 +29897,7 @@ const CommonCallControlBar = (props) => {
|
|
29615
29897
|
(/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) ||
|
29616
29898
|
/* @conditional-compile-remove(close-captions) */ showCaptionsButton ||
|
29617
29899
|
props.onUserSetGalleryLayout);
|
29618
|
-
const role = (
|
29900
|
+
const role = (_b = props.callAdapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;
|
29619
29901
|
const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
|
29620
29902
|
/*@conditional-compile-remove(reaction) */
|
29621
29903
|
const reactionResources = props.callAdapter.getState().reactions;
|
@@ -29653,8 +29935,8 @@ const CommonCallControlBar = (props) => {
|
|
29653
29935
|
props.onStopLocalSpotlight && (React.createElement(ExitSpotlightButton, { displayType: options.displayType, onClick: props.onStopLocalSpotlight, styles: commonButtonStyles, strings: exitSpotlightButtonStrings })),
|
29654
29936
|
screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
|
29655
29937
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
29656
|
-
disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.screenShareButton) })), (
|
29657
|
-
|
29938
|
+
disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.screenShareButton) })), (_c = customButtons['primary']) === null || _c === void 0 ? void 0 :
|
29939
|
+
_c.slice(0, props.mobileView
|
29658
29940
|
? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
|
29659
29941
|
: CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
|
29660
29942
|
return (React.createElement(CustomButton, { key: `primary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact', disableTooltip: props.mobileView }));
|
@@ -29667,14 +29949,21 @@ const CommonCallControlBar = (props) => {
|
|
29667
29949
|
isCaptionsSupported: showCaptionsButton,
|
29668
29950
|
/* @conditional-compile-remove(close-captions) */
|
29669
29951
|
onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage })),
|
29670
|
-
React.createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles
|
29952
|
+
React.createElement(EndCall, { displayType: "compact", mobileView: props.mobileView, styles: endCallButtonStyles,
|
29953
|
+
/* @conditional-compile-remove(end-call-options) */
|
29954
|
+
enableEndCallMenu: !isBoolean(props.callControls) &&
|
29955
|
+
!isBoolean((_d = props.callControls) === null || _d === void 0 ? void 0 : _d.endCallButton) &&
|
29956
|
+
!props.mobileView &&
|
29957
|
+
isHangUpForEveryoneAllowed &&
|
29958
|
+
!isTeams && // Temporary disable it for Teams call, since capability does not give the right value
|
29959
|
+
((_f = (_e = props.callControls) === null || _e === void 0 ? void 0 : _e.endCallButton) === null || _f === void 0 ? void 0 : _f.hangUpForEveryone) === 'endCallOptions' }))))))),
|
29671
29960
|
!props.mobileView && sideButtonsPresent && (React.createElement(react.Stack.Item, null,
|
29672
29961
|
React.createElement("div", { ref: sidepaneControlsRef },
|
29673
29962
|
React.createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
|
29674
29963
|
isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React.createElement(PeopleButton, { checked: props.peopleButtonChecked, ariaLabel: props.peopleButtonChecked ? peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.selectedLabel : peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "common-call-composite-people-button", disabled: props.disableButtonsForLobbyPage ||
|
29675
29964
|
props.disableButtonsForHoldScreen ||
|
29676
|
-
isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (
|
29677
|
-
|
29965
|
+
isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_g = customButtons['secondary']) === null || _g === void 0 ? void 0 :
|
29966
|
+
_g.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
|
29678
29967
|
return (React.createElement(CustomButton, { key: `secondary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact' }));
|
29679
29968
|
}))))))));
|
29680
29969
|
};
|
@@ -31664,90 +31953,6 @@ const updateUserDisplayNamesTrampoline = (remoteParticipants) => {
|
|
31664
31953
|
return _updateUserDisplayNames(remoteParticipants);
|
31665
31954
|
};
|
31666
31955
|
|
31667
|
-
// Copyright (c) Microsoft Corporation.
|
31668
|
-
// Licensed under the MIT License.
|
31669
|
-
/**
|
31670
|
-
* Default Modal PIP related pixel measurements used for ModalLocalAndremotePIP and common/utils.
|
31671
|
-
*
|
31672
|
-
* @private
|
31673
|
-
*/
|
31674
|
-
const MODAL_PIP_DEFAULT_PX = {
|
31675
|
-
rightPositionPx: 16,
|
31676
|
-
topPositionPx: 52,
|
31677
|
-
widthPx: 88,
|
31678
|
-
heightPx: 128
|
31679
|
-
};
|
31680
|
-
/**
|
31681
|
-
* @private
|
31682
|
-
*/
|
31683
|
-
const getPipStyles = (theme) => ({
|
31684
|
-
modal: {
|
31685
|
-
main: Object.assign(Object.assign({ borderRadius: theme.effects.roundedCorner4, boxShadow: theme.effects.elevation8,
|
31686
|
-
// Above the message thread / people pane.
|
31687
|
-
zIndex: 2 }, (theme.rtl
|
31688
|
-
? { left: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) }
|
31689
|
-
: { right: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) })), { top: _pxToRem(MODAL_PIP_DEFAULT_PX.topPositionPx) })
|
31690
|
-
}
|
31691
|
-
});
|
31692
|
-
/**
|
31693
|
-
* @private
|
31694
|
-
*/
|
31695
|
-
const PIPContainerStyle = {
|
31696
|
-
root: {
|
31697
|
-
position: 'absolute',
|
31698
|
-
width: '100%',
|
31699
|
-
height: '100%',
|
31700
|
-
pointerEvents: 'none',
|
31701
|
-
':focus-within': {
|
31702
|
-
outline: '1px solid #00000000'
|
31703
|
-
}
|
31704
|
-
}
|
31705
|
-
};
|
31706
|
-
/**
|
31707
|
-
* @private
|
31708
|
-
*/
|
31709
|
-
const hiddenStyle = react.concatStyleSets(PIPContainerStyle, { root: { display: 'none' } });
|
31710
|
-
/**
|
31711
|
-
* @private
|
31712
|
-
*/
|
31713
|
-
const modalStyle = {
|
31714
|
-
main: {
|
31715
|
-
minWidth: 'min-content',
|
31716
|
-
minHeight: 'min-content',
|
31717
|
-
position: 'absolute',
|
31718
|
-
overflow: 'hidden',
|
31719
|
-
// pointer events for root Modal div set to auto to make LocalAndRemotePIP interactive
|
31720
|
-
pointerEvents: 'auto',
|
31721
|
-
touchAction: 'none'
|
31722
|
-
},
|
31723
|
-
root: {
|
31724
|
-
width: '100%',
|
31725
|
-
height: '100%',
|
31726
|
-
// pointer events for root Modal div set to none to make descendants interactive
|
31727
|
-
pointerEvents: 'none',
|
31728
|
-
':focus-within': {
|
31729
|
-
outline: '3px solid #00000000',
|
31730
|
-
outlineOffset: '-3px'
|
31731
|
-
}
|
31732
|
-
}
|
31733
|
-
};
|
31734
|
-
/**
|
31735
|
-
* Styles for layer host to bound the modal wrapping PiPiP in the mobile pane.
|
31736
|
-
* @private
|
31737
|
-
*/
|
31738
|
-
const modalLayerHostStyle = {
|
31739
|
-
display: 'flex',
|
31740
|
-
position: 'absolute',
|
31741
|
-
left: 0,
|
31742
|
-
top: 0,
|
31743
|
-
width: '100%',
|
31744
|
-
height: '100%',
|
31745
|
-
overflow: 'hidden',
|
31746
|
-
zIndex: '100000',
|
31747
|
-
// pointer events for layerHost set to none to make descendants interactive
|
31748
|
-
pointerEvents: 'none'
|
31749
|
-
};
|
31750
|
-
|
31751
31956
|
// Copyright (c) Microsoft Corporation.
|
31752
31957
|
// Licensed under the MIT License.
|
31753
31958
|
/**
|
@@ -31823,35 +32028,6 @@ const ModalLocalAndRemotePIP = (props) => {
|
|
31823
32028
|
!props.hidden && localAndRemotePIP))));
|
31824
32029
|
};
|
31825
32030
|
|
31826
|
-
// Copyright (c) Microsoft Corporation.
|
31827
|
-
// Licensed under the MIT License.
|
31828
|
-
/**
|
31829
|
-
* @private
|
31830
|
-
*/
|
31831
|
-
// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410
|
31832
|
-
const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
31833
|
-
const modalHostRef = React.useRef(document.getElementById(modalLayerHostId));
|
31834
|
-
const modalHostWidth = _useContainerWidth(modalHostRef);
|
31835
|
-
const modalHostHeight = _useContainerHeight(modalHostRef);
|
31836
|
-
const minDragPosition = React.useMemo(() => modalHostWidth === undefined
|
31837
|
-
? undefined
|
31838
|
-
: {
|
31839
|
-
x: rtl
|
31840
|
-
? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx
|
31841
|
-
: MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,
|
31842
|
-
y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx
|
31843
|
-
}, [modalHostWidth, rtl]);
|
31844
|
-
const maxDragPosition = React.useMemo(() => modalHostWidth === undefined || modalHostHeight === undefined
|
31845
|
-
? undefined
|
31846
|
-
: {
|
31847
|
-
x: rtl
|
31848
|
-
? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx
|
31849
|
-
: MODAL_PIP_DEFAULT_PX.rightPositionPx,
|
31850
|
-
y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx
|
31851
|
-
}, [modalHostHeight, modalHostWidth, rtl]);
|
31852
|
-
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
31853
|
-
};
|
31854
|
-
|
31855
32031
|
// Copyright (c) Microsoft Corporation.
|
31856
32032
|
// Licensed under the MIT License.
|
31857
32033
|
/* @conditional-compile-remove(capabilities) */
|
@@ -32786,42 +32962,6 @@ const DtmfDialpadPage = (props) => {
|
|
32786
32962
|
return React.createElement(DtmfDialpadPageContent, Object.assign({ adapter: adapter }, props, { mobileView: props.mobileView }));
|
32787
32963
|
};
|
32788
32964
|
|
32789
|
-
// Copyright (c) Microsoft Corporation.
|
32790
|
-
// Licensed under the MIT License.
|
32791
|
-
/* @conditional-compile-remove(spotlight) */
|
32792
|
-
/* @conditional-compile-remove(spotlight) */
|
32793
|
-
/**
|
32794
|
-
* @private
|
32795
|
-
*/
|
32796
|
-
const Prompt = (props) => {
|
32797
|
-
const theme = useTheme();
|
32798
|
-
return (React.createElement(react.Modal, { styles: modalStyles, isOpen: props.isOpen, onDismiss: props.onDismiss, isBlocking: false },
|
32799
|
-
React.createElement(react.Stack, { className: react.mergeStyles({ position: 'relative' }) },
|
32800
|
-
React.createElement(react.Text, { className: react.mergeStyles({ fontWeight: 600, fontSize: '1.25rem' }) }, props.heading),
|
32801
|
-
React.createElement(react.IconButton, { styles: iconButtonStyles(theme), iconProps: { iconName: 'Cancel' }, onClick: props.onCancel })),
|
32802
|
-
React.createElement(react.Stack, { verticalAlign: "center", className: react.mergeStyles({ minHeight: '6rem' }) },
|
32803
|
-
React.createElement(react.Text, { className: react.mergeStyles({ fontSize: '0.875rem' }) }, props.text)),
|
32804
|
-
React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", tokens: { childrenGap: '0.5rem' } },
|
32805
|
-
React.createElement(react.PrimaryButton, { styles: buttonTextStyles, text: props.confirmButtonLabel, onClick: props.onConfirm }),
|
32806
|
-
React.createElement(react.DefaultButton, { styles: buttonTextStyles, text: props.cancelButtonLabel, onClick: props.onCancel }))));
|
32807
|
-
};
|
32808
|
-
/* @conditional-compile-remove(spotlight) */
|
32809
|
-
const iconButtonStyles = (theme) => ({
|
32810
|
-
root: {
|
32811
|
-
position: 'absolute',
|
32812
|
-
top: 0,
|
32813
|
-
right: 0,
|
32814
|
-
color: theme.palette.neutralPrimary
|
32815
|
-
},
|
32816
|
-
rootHovered: {
|
32817
|
-
color: theme.palette.neutralDark
|
32818
|
-
}
|
32819
|
-
});
|
32820
|
-
/* @conditional-compile-remove(spotlight) */
|
32821
|
-
const modalStyles = { main: { padding: '1.5rem ', maxWidth: '30rem' } };
|
32822
|
-
/* @conditional-compile-remove(spotlight) */
|
32823
|
-
const buttonTextStyles = { label: { fontSize: '0.875rem' } };
|
32824
|
-
|
32825
32965
|
// Copyright (c) Microsoft Corporation.
|
32826
32966
|
// Licensed under the MIT License.
|
32827
32967
|
/**
|
@@ -37305,32 +37445,32 @@ class CallWithChatBackedChatAdapter {
|
|
37305
37445
|
throw new Error(`Chat Topics are not supported in CallWithChatComposite.`);
|
37306
37446
|
});
|
37307
37447
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37308
|
-
this.
|
37309
|
-
return this.callWithChatAdapter.
|
37448
|
+
this.registerActiveUploads = (files) => {
|
37449
|
+
return this.callWithChatAdapter.registerActiveUploads(files);
|
37310
37450
|
};
|
37311
37451
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37312
|
-
this.
|
37313
|
-
return this.callWithChatAdapter.
|
37452
|
+
this.registerCompletedUploads = (metadata) => {
|
37453
|
+
return this.callWithChatAdapter.registerCompletedUploads(metadata);
|
37314
37454
|
};
|
37315
37455
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37316
|
-
this.
|
37317
|
-
this.callWithChatAdapter.
|
37456
|
+
this.clearUploads = () => {
|
37457
|
+
this.callWithChatAdapter.clearUploads();
|
37318
37458
|
};
|
37319
37459
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37320
|
-
this.
|
37321
|
-
this.callWithChatAdapter.
|
37460
|
+
this.cancelUpload = (id) => {
|
37461
|
+
this.callWithChatAdapter.cancelUpload(id);
|
37322
37462
|
};
|
37323
37463
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37324
|
-
this.
|
37325
|
-
this.callWithChatAdapter.
|
37464
|
+
this.updateUploadProgress = (id, progress) => {
|
37465
|
+
this.callWithChatAdapter.updateUploadProgress(id, progress);
|
37326
37466
|
};
|
37327
37467
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37328
|
-
this.
|
37329
|
-
this.callWithChatAdapter.
|
37468
|
+
this.updateUploadStatusMessage = (id, errorMessage) => {
|
37469
|
+
this.callWithChatAdapter.updateUploadStatusMessage(id, errorMessage);
|
37330
37470
|
};
|
37331
37471
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37332
|
-
this.
|
37333
|
-
this.callWithChatAdapter.
|
37472
|
+
this.updateUploadMetadata = (id, metadata) => {
|
37473
|
+
this.callWithChatAdapter.updateUploadMetadata(id, metadata);
|
37334
37474
|
};
|
37335
37475
|
this.callWithChatAdapter = callWithChatAdapter;
|
37336
37476
|
}
|
@@ -37353,7 +37493,7 @@ function chatAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState)
|
|
37353
37493
|
thread: callWithChatAdapterState.chat,
|
37354
37494
|
latestErrors: callWithChatAdapterState.latestChatErrors,
|
37355
37495
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37356
|
-
|
37496
|
+
attachmentUploads: callWithChatAdapterState.attachmentUploads
|
37357
37497
|
};
|
37358
37498
|
}
|
37359
37499
|
|
@@ -37666,10 +37806,10 @@ const CallWithChatScreen = (props) => {
|
|
37666
37806
|
/* @conditional-compile-remove(chat-composite-participant-pane) */
|
37667
37807
|
participantPane: false,
|
37668
37808
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37669
|
-
|
37809
|
+
attachmentOptions: props.attachmentOptions
|
37670
37810
|
}, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), [
|
37671
37811
|
chatAdapter,
|
37672
|
-
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ props.
|
37812
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ props.attachmentOptions,
|
37673
37813
|
props.onFetchAvatarPersonaData,
|
37674
37814
|
theme
|
37675
37815
|
]);
|
@@ -37720,7 +37860,7 @@ const CallWithChatComposite = (props) => {
|
|
37720
37860
|
/* @conditional-compile-remove(call-readiness) */
|
37721
37861
|
deviceChecks: options === null || options === void 0 ? void 0 : options.deviceChecks, callWithChatAdapter: adapter, formFactor: formFactor, callControls: options === null || options === void 0 ? void 0 : options.callControls, joinInvitationURL: joinInvitationURL, fluentTheme: fluentTheme, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions,
|
37722
37862
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37723
|
-
|
37863
|
+
attachmentOptions: options === null || options === void 0 ? void 0 : options.attachmentOptions, localVideoTile: options === null || options === void 0 ? void 0 : options.localVideoTile, galleryOptions: options === null || options === void 0 ? void 0 : options.galleryOptions,
|
37724
37864
|
/* @conditional-compile-remove(custom-branding) */
|
37725
37865
|
logo: (_a = options === null || options === void 0 ? void 0 : options.branding) === null || _a === void 0 ? void 0 : _a.logo,
|
37726
37866
|
/* @conditional-compile-remove(custom-branding) */
|
@@ -37772,7 +37912,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
|
|
37772
37912
|
latestCallErrors: callAdapterState.latestErrors,
|
37773
37913
|
latestChatErrors: {},
|
37774
37914
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37775
|
-
|
37915
|
+
attachmentUploads: {},
|
37776
37916
|
/* @conditional-compile-remove(PSTN-calls) */
|
37777
37917
|
alternateCallerId: callAdapterState.alternateCallerId,
|
37778
37918
|
/* @conditional-compile-remove(unsupported-browser) */
|
@@ -37793,7 +37933,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
|
|
37793
37933
|
function mergeChatAdapterStateIntoCallWithChatAdapterState(existingCallWithChatAdapterState, chatAdapterState) {
|
37794
37934
|
return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { chat: chatAdapterState.thread, latestChatErrors: chatAdapterState.latestErrors,
|
37795
37935
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37796
|
-
|
37936
|
+
attachmentUploads: chatAdapterState.attachmentUploads });
|
37797
37937
|
}
|
37798
37938
|
/**
|
37799
37939
|
* @private
|
@@ -37874,43 +38014,43 @@ class CallWithChatContext {
|
|
37874
38014
|
class AzureCommunicationCallWithChatAdapter {
|
37875
38015
|
constructor(callAdapter, chatAdapterPromise) {
|
37876
38016
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37877
|
-
this.
|
38017
|
+
this.registerActiveUploads = (files) => {
|
37878
38018
|
var _a, _b;
|
37879
|
-
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.
|
38019
|
+
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.registerActiveUploads(files)) !== null && _b !== void 0 ? _b : [];
|
37880
38020
|
};
|
37881
38021
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37882
|
-
this.
|
38022
|
+
this.registerCompletedUploads = (metadata) => {
|
37883
38023
|
var _a, _b;
|
37884
|
-
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.
|
38024
|
+
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.registerCompletedUploads(metadata)) !== null && _b !== void 0 ? _b : [];
|
37885
38025
|
};
|
37886
38026
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37887
|
-
this.
|
38027
|
+
this.clearUploads = () => {
|
37888
38028
|
this.chatAdapterPromise.then((adapter) => {
|
37889
|
-
adapter.
|
38029
|
+
adapter.clearUploads();
|
37890
38030
|
});
|
37891
38031
|
};
|
37892
38032
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37893
|
-
this.
|
38033
|
+
this.cancelUpload = (id) => {
|
37894
38034
|
this.chatAdapterPromise.then((adapter) => {
|
37895
|
-
adapter.
|
38035
|
+
adapter.cancelUpload(id);
|
37896
38036
|
});
|
37897
38037
|
};
|
37898
38038
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37899
|
-
this.
|
38039
|
+
this.updateUploadProgress = (id, progress) => {
|
37900
38040
|
this.chatAdapterPromise.then((adapter) => {
|
37901
|
-
adapter.
|
38041
|
+
adapter.updateUploadProgress(id, progress);
|
37902
38042
|
});
|
37903
38043
|
};
|
37904
38044
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37905
|
-
this.
|
38045
|
+
this.updateUploadStatusMessage = (id, errorMessage) => {
|
37906
38046
|
this.chatAdapterPromise.then((adapter) => {
|
37907
|
-
adapter.
|
38047
|
+
adapter.updateUploadStatusMessage(id, errorMessage);
|
37908
38048
|
});
|
37909
38049
|
};
|
37910
38050
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37911
|
-
this.
|
38051
|
+
this.updateUploadMetadata = (id, metadata) => {
|
37912
38052
|
this.chatAdapterPromise.then((adapter) => {
|
37913
|
-
adapter.
|
38053
|
+
adapter.updateUploadMetadata(id, metadata);
|
37914
38054
|
});
|
37915
38055
|
};
|
37916
38056
|
this.bindPublicMethods();
|
@@ -37972,19 +38112,19 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37972
38112
|
this.on.bind(this);
|
37973
38113
|
this.off.bind(this);
|
37974
38114
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37975
|
-
this.
|
38115
|
+
this.registerActiveUploads = this.registerActiveUploads.bind(this);
|
37976
38116
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37977
|
-
this.
|
38117
|
+
this.registerCompletedUploads = this.registerCompletedUploads.bind(this);
|
37978
38118
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37979
|
-
this.
|
38119
|
+
this.clearUploads = this.clearUploads.bind(this);
|
37980
38120
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37981
|
-
this.
|
38121
|
+
this.cancelUpload = this.cancelUpload.bind(this);
|
37982
38122
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37983
|
-
this.
|
38123
|
+
this.updateUploadProgress = this.updateUploadProgress.bind(this);
|
37984
38124
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37985
|
-
this.
|
38125
|
+
this.updateUploadStatusMessage = this.updateUploadStatusMessage.bind(this);
|
37986
38126
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37987
|
-
this.
|
38127
|
+
this.updateUploadMetadata = this.updateUploadMetadata.bind(this);
|
37988
38128
|
this.downloadResourceToCache = this.downloadResourceToCache.bind(this);
|
37989
38129
|
this.removeResourceFromCache = this.removeResourceFromCache.bind(this);
|
37990
38130
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -39311,6 +39451,7 @@ exports.createStatefulChatClient = createStatefulChatClient;
|
|
39311
39451
|
exports.createTeamsCallAdapter = createTeamsCallAdapter;
|
39312
39452
|
exports.createTeamsCallAdapterFromClient = createTeamsCallAdapterFromClient;
|
39313
39453
|
exports.darkTheme = darkTheme;
|
39454
|
+
exports.defaultAttachmentMenuAction = defaultAttachmentMenuAction;
|
39314
39455
|
exports.fromFlatCommunicationIdentifier = fromFlatCommunicationIdentifier;
|
39315
39456
|
exports.getSelector = getSelector$1;
|
39316
39457
|
exports.getSelector$1 = getSelector;
|
@@ -39335,4 +39476,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
39335
39476
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
39336
39477
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
39337
39478
|
exports.useTheme = useTheme;
|
39338
|
-
//# sourceMappingURL=index-
|
39479
|
+
//# sourceMappingURL=index-Bj9ORqhl.js.map
|