@azure/communication-react 1.3.3-alpha-202209210019.0 → 1.3.3-alpha-202210060021.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +131 -13
- package/dist/dist-cjs/communication-react/index.js +528 -272
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/identifier.d.ts +5 -0
- package/dist/dist-esm/acs-ui-common/src/identifier.js +10 -0
- package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/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-component-bindings/src/handlers/createHandlers.d.ts +5 -8
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +3 -3
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/index.d.ts +0 -1
- package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js +21 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +2 -1
- 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/CameraButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.d.ts +53 -0
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js +22 -0
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/DevicesButton.js +4 -2
- package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DomainPermissions.js +9 -9
- package/dist/dist-esm/react-components/src/components/DomainPermissions.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.d.ts +4 -4
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HoldButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +2 -6
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +2 -2
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +13 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/index.js +2 -0
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js +5 -1
- package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js +6 -8
- package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +9 -9
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +5 -0
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +15 -2
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +3 -1
- package/dist/dist-esm/react-components/src/theming/icons.js +24 -2
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +27 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +29 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +15 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +27 -17
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js +46 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js +49 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +50 -28
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +13 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +8 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +9 -3
- 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 +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +11 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts +2 -5
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +26 -12
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +3 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -0
- package/package.json +11 -11
@@ -188,11 +188,21 @@ const fromFlatCommunicationIdentifier = (id) => {
|
|
188
188
|
}
|
189
189
|
return { id };
|
190
190
|
};
|
191
|
+
/**
|
192
|
+
* Returns a CommunicationIdentifier.
|
193
|
+
* @internal
|
194
|
+
*/
|
195
|
+
const _toCommunicationIdentifier = (id) => {
|
196
|
+
if (typeof id === 'string') {
|
197
|
+
return fromFlatCommunicationIdentifier(id);
|
198
|
+
}
|
199
|
+
return id;
|
200
|
+
};
|
191
201
|
|
192
202
|
// Copyright (c) Microsoft Corporation.
|
193
203
|
// Licensed under the MIT license.
|
194
204
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
195
|
-
var telemetryVersion = '1.3.3-alpha-
|
205
|
+
var telemetryVersion = '1.3.3-alpha-202210060021.0';
|
196
206
|
|
197
207
|
// Copyright (c) Microsoft Corporation.
|
198
208
|
/**
|
@@ -391,7 +401,7 @@ const getCallState = (state, props) => { var _a; return (_a = state.calls[props.
|
|
391
401
|
|
392
402
|
// Copyright (c) Microsoft Corporation.
|
393
403
|
// Licensed under the MIT license.
|
394
|
-
var __awaiter$
|
404
|
+
var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
395
405
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
396
406
|
return new (P || (P = Promise))(function (resolve, reject) {
|
397
407
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -429,7 +439,7 @@ const _isPreviewOn = (deviceManager) => {
|
|
429
439
|
*
|
430
440
|
* @private
|
431
441
|
*/
|
432
|
-
const disposeAllLocalPreviewViews = (callClient) => __awaiter$
|
442
|
+
const disposeAllLocalPreviewViews = (callClient) => __awaiter$y(void 0, void 0, void 0, function* () {
|
433
443
|
const unparentedViews = callClient.getState().deviceManager.unparentedViews;
|
434
444
|
for (const view of unparentedViews) {
|
435
445
|
yield callClient.disposeView(undefined, undefined, view);
|
@@ -536,7 +546,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
|
|
536
546
|
|
537
547
|
// Copyright (c) Microsoft Corporation.
|
538
548
|
// Licensed under the MIT license.
|
539
|
-
var __awaiter$
|
549
|
+
var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
540
550
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
541
551
|
return new (P || (P = Promise))(function (resolve, reject) {
|
542
552
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -560,7 +570,7 @@ const areStreamsEqual = (prevStream, newStream) => {
|
|
560
570
|
* @public
|
561
571
|
*/
|
562
572
|
const createDefaultCallingHandlers = memoizeOne__default['default']((callClient, callAgent, deviceManager, call) => {
|
563
|
-
const onStartLocalVideo = () => __awaiter$
|
573
|
+
const onStartLocalVideo = () => __awaiter$x(void 0, void 0, void 0, function* () {
|
564
574
|
// Before the call object creates a stream, dispose of any local preview streams.
|
565
575
|
// @TODO: is there any way to parent the unparented view to the call object instead
|
566
576
|
// of disposing and creating a new stream?
|
@@ -580,7 +590,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
580
590
|
yield call.startVideo(stream);
|
581
591
|
}
|
582
592
|
});
|
583
|
-
const onStopLocalVideo = (stream) => __awaiter$
|
593
|
+
const onStopLocalVideo = (stream) => __awaiter$x(void 0, void 0, void 0, function* () {
|
584
594
|
const callId = call === null || call === void 0 ? void 0 : call.id;
|
585
595
|
if (!callId) {
|
586
596
|
return;
|
@@ -593,7 +603,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
593
603
|
});
|
594
604
|
}
|
595
605
|
});
|
596
|
-
const onToggleCamera = (options) => __awaiter$
|
606
|
+
const onToggleCamera = (options) => __awaiter$x(void 0, void 0, void 0, function* () {
|
597
607
|
if (call && _isInCall(call.state)) {
|
598
608
|
const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');
|
599
609
|
if (stream) {
|
@@ -619,23 +629,22 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
619
629
|
}
|
620
630
|
}
|
621
631
|
});
|
622
|
-
// FIXME: onStartCall API should use string, not the underlying SDK types.
|
623
632
|
const onStartCall = (participants, options) => {
|
624
633
|
return callAgent ? callAgent.startCall(participants, options) : undefined;
|
625
634
|
};
|
626
|
-
const onSelectMicrophone = (device) => __awaiter$
|
635
|
+
const onSelectMicrophone = (device) => __awaiter$x(void 0, void 0, void 0, function* () {
|
627
636
|
if (!deviceManager) {
|
628
637
|
return;
|
629
638
|
}
|
630
639
|
return deviceManager.selectMicrophone(device);
|
631
640
|
});
|
632
|
-
const onSelectSpeaker = (device) => __awaiter$
|
641
|
+
const onSelectSpeaker = (device) => __awaiter$x(void 0, void 0, void 0, function* () {
|
633
642
|
if (!deviceManager) {
|
634
643
|
return;
|
635
644
|
}
|
636
645
|
return deviceManager.selectSpeaker(device);
|
637
646
|
});
|
638
|
-
const onSelectCamera = (device, options) => __awaiter$
|
647
|
+
const onSelectCamera = (device, options) => __awaiter$x(void 0, void 0, void 0, function* () {
|
639
648
|
if (!deviceManager) {
|
640
649
|
return;
|
641
650
|
}
|
@@ -658,19 +667,19 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
658
667
|
}, options);
|
659
668
|
}
|
660
669
|
});
|
661
|
-
const onToggleMicrophone = () => __awaiter$
|
670
|
+
const onToggleMicrophone = () => __awaiter$x(void 0, void 0, void 0, function* () {
|
662
671
|
if (!call || !_isInCall(call.state)) {
|
663
672
|
throw new Error(`Please invoke onToggleMicrophone after call is started`);
|
664
673
|
}
|
665
674
|
return call.isMuted ? yield call.unmute() : yield call.mute();
|
666
675
|
});
|
667
|
-
const onStartScreenShare = () => __awaiter$
|
668
|
-
const onStopScreenShare = () => __awaiter$
|
669
|
-
const onToggleScreenShare = () => __awaiter$
|
670
|
-
const onHangUp = () => __awaiter$
|
676
|
+
const onStartScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
|
677
|
+
const onStopScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
|
678
|
+
const onToggleScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
|
679
|
+
const onHangUp = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp()); });
|
671
680
|
/* @conditional-compile-remove(PSTN-calls) */
|
672
|
-
const onToggleHold = () => __awaiter$
|
673
|
-
const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$
|
681
|
+
const onToggleHold = () => __awaiter$x(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()); });
|
682
|
+
const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$x(void 0, void 0, void 0, function* () {
|
674
683
|
var _a;
|
675
684
|
if (!call || call.localVideoStreams.length === 0) {
|
676
685
|
return;
|
@@ -686,7 +695,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
686
695
|
const { view } = (_a = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _a !== void 0 ? _a : {};
|
687
696
|
return view ? { view } : undefined;
|
688
697
|
});
|
689
|
-
const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$
|
698
|
+
const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$x(void 0, void 0, void 0, function* () {
|
690
699
|
if (!call) {
|
691
700
|
return;
|
692
701
|
}
|
@@ -714,7 +723,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
714
723
|
}
|
715
724
|
return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
|
716
725
|
});
|
717
|
-
const onDisposeRemoteStreamView = (userId) => __awaiter$
|
726
|
+
const onDisposeRemoteStreamView = (userId) => __awaiter$x(void 0, void 0, void 0, function* () {
|
718
727
|
if (!call) {
|
719
728
|
return;
|
720
729
|
}
|
@@ -735,7 +744,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
735
744
|
callClient.disposeView(call.id, participant.identifier, screenShareStream);
|
736
745
|
}
|
737
746
|
});
|
738
|
-
const onDisposeLocalStreamView = () => __awaiter$
|
747
|
+
const onDisposeLocalStreamView = () => __awaiter$x(void 0, void 0, void 0, function* () {
|
739
748
|
// If the user is currently in a call, dispose of the local stream view attached to that call.
|
740
749
|
const callState = call && callClient.getState().calls[call.id];
|
741
750
|
const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
|
@@ -747,11 +756,12 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
747
756
|
// TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.
|
748
757
|
yield disposeAllLocalPreviewViews(callClient);
|
749
758
|
});
|
750
|
-
const onRemoveParticipant = (userId) => __awaiter$
|
751
|
-
|
759
|
+
const onRemoveParticipant = (userId) => __awaiter$x(void 0, void 0, void 0, function* () {
|
760
|
+
const participant = _toCommunicationIdentifier(userId);
|
761
|
+
yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
|
752
762
|
});
|
753
763
|
/* @conditional-compile-remove(PSTN-calls) */
|
754
|
-
const onAddParticipant = (participant, options) => __awaiter$
|
764
|
+
const onAddParticipant = (participant, options) => __awaiter$x(void 0, void 0, void 0, function* () {
|
755
765
|
const participantType = participantTypeHelper(participant);
|
756
766
|
switch (participantType) {
|
757
767
|
case 'PSTN':
|
@@ -763,7 +773,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
763
773
|
}
|
764
774
|
});
|
765
775
|
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
766
|
-
const onSendDtmfTone = (dtmfTone) => __awaiter$
|
776
|
+
const onSendDtmfTone = (dtmfTone) => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
767
777
|
return {
|
768
778
|
onHangUp,
|
769
779
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -978,7 +988,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
978
988
|
wordBreak: 'break-word'
|
979
989
|
});
|
980
990
|
|
981
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave
|
991
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$d={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",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:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var DomainPermissions$1={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"More help"};var UnsupportedBrowser$1={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"More help"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton,videoTile:videoTile,DomainPermissions:DomainPermissions$1,UnsupportedBrowser:UnsupportedBrowser$1};
|
982
992
|
|
983
993
|
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$c={placeholderText:"Enter a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,HoldButton:HoldButton$d};
|
984
994
|
|
@@ -1944,6 +1954,23 @@ const MoreHorizontal18Regular = () => (
|
|
1944
1954
|
// MoreHorizontal icons are 16px x 16px or 20px x 20px so scaling to get desired size
|
1945
1955
|
React__default['default'].createElement("div", { className: react.mergeStyles({ transform: 'scale(0.9)' }) },
|
1946
1956
|
React__default['default'].createElement(reactIcons.MoreHorizontal20Regular, null)));
|
1957
|
+
/* @conditional-compile-remove(call-readiness) */
|
1958
|
+
const DomainPermissionMic20Filled = () => {
|
1959
|
+
const theme = useTheme();
|
1960
|
+
return (React__default['default'].createElement(react.Stack, { horizontalAlign: 'center', styles: { root: { borderRadius: '100%', background: theme.palette.themeLighterAlt, padding: '2rem' } } },
|
1961
|
+
React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
|
1962
|
+
React__default['default'].createElement(reactIcons.MicOn20Filled, null))));
|
1963
|
+
};
|
1964
|
+
/* @conditional-compile-remove(call-readiness) */
|
1965
|
+
const DomainPermissionCamera20Filled = () => {
|
1966
|
+
const theme = useTheme();
|
1967
|
+
return (React__default['default'].createElement(react.Stack, { horizontalAlign: 'center', styles: { root: { borderRadius: '100%', background: theme.palette.themeLighterAlt, padding: '2rem' } } },
|
1968
|
+
React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
|
1969
|
+
React__default['default'].createElement(reactIcons.Video20Filled, null))));
|
1970
|
+
};
|
1971
|
+
/* @conditional-compile-remove(call-readiness) */
|
1972
|
+
const DomainPermissionSparkle20Filled = () => (React__default['default'].createElement("div", { className: react.mergeStyles({ transform: 'scale(2)' }) },
|
1973
|
+
React__default['default'].createElement(reactIcons.Sparkle20Filled, null)));
|
1947
1974
|
/* @conditional-compile-remove(unsupported-browser) */
|
1948
1975
|
const UnsupportedBrowserWarning = () => {
|
1949
1976
|
const theme = useTheme();
|
@@ -2027,7 +2054,11 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
2027
2054
|
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
2028
2055
|
BackSpace: React__default['default'].createElement(reactIcons.Backspace20Regular, null),
|
2029
2056
|
/* @conditional-compile-remove(call-readiness) */
|
2030
|
-
|
2057
|
+
DomainPermissionsSparkle: React__default['default'].createElement(DomainPermissionSparkle20Filled, null),
|
2058
|
+
/* @conditional-compile-remove(call-readiness) */
|
2059
|
+
DomainPermissionCamera: React__default['default'].createElement(DomainPermissionCamera20Filled, null),
|
2060
|
+
/* @conditional-compile-remove(call-readiness) */
|
2061
|
+
DomainPermissionMic: React__default['default'].createElement(DomainPermissionMic20Filled, null),
|
2031
2062
|
/* @conditional-compile-remove(unsupported-browser) */
|
2032
2063
|
UnsupportedBrowserWarning: React__default['default'].createElement(UnsupportedBrowserWarning, null)
|
2033
2064
|
};
|
@@ -2038,6 +2069,7 @@ const scaledIconStyles = (theme) => {
|
|
2038
2069
|
display: 'flex',
|
2039
2070
|
justifyContent: 'center',
|
2040
2071
|
alignItems: 'center',
|
2072
|
+
lineHeight: '0.2rem',
|
2041
2073
|
color: theme.palette.themePrimary,
|
2042
2074
|
zIndex: 1
|
2043
2075
|
};
|
@@ -3472,7 +3504,7 @@ const chatMessageActionMenuProps = (menuProps) => {
|
|
3472
3504
|
return actionMenuProps;
|
3473
3505
|
};
|
3474
3506
|
|
3475
|
-
var __awaiter$
|
3507
|
+
var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3476
3508
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3477
3509
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3478
3510
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3497,7 +3529,7 @@ const _FileDownloadCards = (props) => {
|
|
3497
3529
|
var _a, _b;
|
3498
3530
|
return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile) !== null && _b !== void 0 ? _b : localeStrings.downloadFile;
|
3499
3531
|
}, [(_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile, localeStrings.downloadFile]);
|
3500
|
-
const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$
|
3532
|
+
const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$w(void 0, void 0, void 0, function* () {
|
3501
3533
|
if (!props.downloadHandler) {
|
3502
3534
|
window.open(file.url, '_blank', 'noopener,noreferrer');
|
3503
3535
|
}
|
@@ -3645,7 +3677,7 @@ const ChatMessageComponentAsMessageBubble = React__default['default'].memo(Messa
|
|
3645
3677
|
|
3646
3678
|
// Copyright (c) Microsoft Corporation.
|
3647
3679
|
// Licensed under the MIT license.
|
3648
|
-
var __awaiter$
|
3680
|
+
var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3649
3681
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3650
3682
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3651
3683
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3679,7 +3711,7 @@ const ChatMessageComponent = (props) => {
|
|
3679
3711
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
3680
3712
|
}
|
3681
3713
|
else if (isEditing) {
|
3682
|
-
return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$
|
3714
|
+
return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$v(void 0, void 0, void 0, function* () {
|
3683
3715
|
props.onUpdateMessage &&
|
3684
3716
|
props.message.messageId &&
|
3685
3717
|
(yield props.onUpdateMessage(props.message.messageId, text, metadata, options));
|
@@ -3778,7 +3810,7 @@ const getParticipantsWhoHaveReadMessage = (message, readReceiptsBySenderId) => {
|
|
3778
3810
|
|
3779
3811
|
// Copyright (c) Microsoft Corporation.
|
3780
3812
|
// Licensed under the MIT license.
|
3781
|
-
var __awaiter$
|
3813
|
+
var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3782
3814
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3783
3815
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3784
3816
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4005,7 +4037,7 @@ const MessageThread = (props) => {
|
|
4005
4037
|
setChatMessagesInitialized(chatMessagesInitialized);
|
4006
4038
|
};
|
4007
4039
|
// we try to only send those message status if user is scrolled to the bottom.
|
4008
|
-
const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$
|
4040
|
+
const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$u(void 0, void 0, void 0, function* () {
|
4009
4041
|
if (!isAtBottomOfScrollRef.current ||
|
4010
4042
|
!document.hasFocus() ||
|
4011
4043
|
!messagesRef.current ||
|
@@ -4056,14 +4088,13 @@ const MessageThread = (props) => {
|
|
4056
4088
|
setIsAtBottomOfScrollRef(atBottom);
|
4057
4089
|
}, [scrollToBottom, sendMessageStatusIfAtBottom]);
|
4058
4090
|
// Infinite scrolling + threadInitialize function
|
4059
|
-
const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$
|
4091
|
+
const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$u(void 0, void 0, void 0, function* () {
|
4060
4092
|
if (chatScrollDivRef.current && !isLoadingChatMessagesRef.current) {
|
4061
4093
|
if (onLoadPreviousChatMessages) {
|
4062
4094
|
isLoadingChatMessagesRef.current = true;
|
4063
4095
|
// Fetch message until scrollTop reach the threshold for fetching new message
|
4064
4096
|
while (!isAllChatMessagesLoadedRef.current && chatScrollDivRef.current.scrollTop <= 500) {
|
4065
4097
|
isAllChatMessagesLoadedRef.current = yield onLoadPreviousChatMessages(numberOfChatMessagesToReload);
|
4066
|
-
// Release CPU resources for 200 milliseconds between each loop.
|
4067
4098
|
yield delay(200);
|
4068
4099
|
}
|
4069
4100
|
isLoadingChatMessagesRef.current = false;
|
@@ -4091,11 +4122,8 @@ const MessageThread = (props) => {
|
|
4091
4122
|
if (!chatScrollDivRef.current) {
|
4092
4123
|
return;
|
4093
4124
|
}
|
4094
|
-
|
4095
|
-
|
4096
|
-
chatScrollDivRef.current.scrollTop =
|
4097
|
-
chatScrollDivRef.current.scrollTop + currentHeight - previousHeightRef.current;
|
4098
|
-
}
|
4125
|
+
chatScrollDivRef.current.scrollTop =
|
4126
|
+
chatScrollDivRef.current.scrollHeight - (previousHeightRef.current - previousTopRef.current);
|
4099
4127
|
}, [messages]);
|
4100
4128
|
// Fetch more messages to make the scroll bar appear, infinity scroll is then handled in the handleScroll function.
|
4101
4129
|
React.useEffect(() => {
|
@@ -4546,10 +4574,20 @@ const participantStateStringTrampoline$1 = (props, strings) => {
|
|
4546
4574
|
};
|
4547
4575
|
|
4548
4576
|
// Copyright (c) Microsoft Corporation.
|
4577
|
+
/**
|
4578
|
+
* @internal
|
4579
|
+
*/
|
4580
|
+
const defaultPermissions = {
|
4581
|
+
cameraButton: true,
|
4582
|
+
microphoneButton: true,
|
4583
|
+
screenShare: true,
|
4584
|
+
removeParticipantButton: true
|
4585
|
+
};
|
4549
4586
|
/**
|
4550
4587
|
* @internal
|
4551
4588
|
*/
|
4552
4589
|
const presenterPermissions = {
|
4590
|
+
role: 'Presenter',
|
4553
4591
|
cameraButton: true,
|
4554
4592
|
microphoneButton: true,
|
4555
4593
|
screenShare: true,
|
@@ -4559,6 +4597,7 @@ const presenterPermissions = {
|
|
4559
4597
|
* @internal
|
4560
4598
|
*/
|
4561
4599
|
const consumerPermissions = {
|
4600
|
+
role: 'Consumer',
|
4562
4601
|
cameraButton: false,
|
4563
4602
|
microphoneButton: false,
|
4564
4603
|
screenShare: false,
|
@@ -4568,6 +4607,7 @@ const consumerPermissions = {
|
|
4568
4607
|
* @internal
|
4569
4608
|
*/
|
4570
4609
|
const attendeePermissions = {
|
4610
|
+
role: 'Attendee',
|
4571
4611
|
cameraButton: true,
|
4572
4612
|
microphoneButton: true,
|
4573
4613
|
screenShare: false,
|
@@ -4576,7 +4616,7 @@ const attendeePermissions = {
|
|
4576
4616
|
/**
|
4577
4617
|
* @internal
|
4578
4618
|
*/
|
4579
|
-
const PermissionsContext = React.createContext(
|
4619
|
+
const PermissionsContext = React.createContext(defaultPermissions);
|
4580
4620
|
/**
|
4581
4621
|
* @internal
|
4582
4622
|
*/
|
@@ -4599,9 +4639,10 @@ const _getPermissions = (role) => {
|
|
4599
4639
|
else if (role === 'Attendee') {
|
4600
4640
|
return attendeePermissions;
|
4601
4641
|
}
|
4602
|
-
else {
|
4642
|
+
else if (role === 'Presenter') {
|
4603
4643
|
return presenterPermissions;
|
4604
4644
|
}
|
4645
|
+
return defaultPermissions;
|
4605
4646
|
};
|
4606
4647
|
|
4607
4648
|
// Copyright (c) Microsoft Corporation.
|
@@ -6362,11 +6403,17 @@ const VideoGallery = (props) => {
|
|
6362
6403
|
lastVisibleParticipants: visibleAudioParticipants.current,
|
6363
6404
|
maxDominantSpeakers: MAX_AUDIO_DOMINANT_SPEAKERS
|
6364
6405
|
});
|
6406
|
+
/* @conditional-compile-remove(rooms) */
|
6407
|
+
const permissions = _usePermissions();
|
6365
6408
|
/**
|
6366
6409
|
* Utility function for memoized rendering of LocalParticipant.
|
6367
6410
|
*/
|
6368
6411
|
const localVideoTile = React.useMemo(() => {
|
6369
6412
|
var _a, _b;
|
6413
|
+
/* @conditional-compile-remove(rooms) */
|
6414
|
+
if (!permissions.cameraButton) {
|
6415
|
+
return undefined;
|
6416
|
+
}
|
6370
6417
|
if (onRenderLocalVideoTile) {
|
6371
6418
|
return onRenderLocalVideoTile(localParticipant);
|
6372
6419
|
}
|
@@ -6394,7 +6441,8 @@ const VideoGallery = (props) => {
|
|
6394
6441
|
strings.localVideoSelectedDescription,
|
6395
6442
|
strings.displayNamePlaceholder,
|
6396
6443
|
styles === null || styles === void 0 ? void 0 : styles.localVideo,
|
6397
|
-
theme.effects.roundedCorner4
|
6444
|
+
theme.effects.roundedCorner4,
|
6445
|
+
/* @conditional-compile-remove(rooms) */ permissions.cameraButton
|
6398
6446
|
]);
|
6399
6447
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
6400
6448
|
const remoteVideoStream = participant.videoStream;
|
@@ -6439,7 +6487,7 @@ const VideoGallery = (props) => {
|
|
6439
6487
|
}
|
6440
6488
|
};
|
6441
6489
|
const horizontalGalleryTiles = createHorizontalGalleryTiles();
|
6442
|
-
if (!shouldFloatLocalVideo &&
|
6490
|
+
if (!shouldFloatLocalVideo && localVideoTile) {
|
6443
6491
|
gridTiles.push(localVideoTile);
|
6444
6492
|
}
|
6445
6493
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
@@ -6449,10 +6497,10 @@ const VideoGallery = (props) => {
|
|
6449
6497
|
return (React__default['default'].createElement("div", { "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
6450
6498
|
shouldFloatLocalVideo &&
|
6451
6499
|
!shouldFloatNonDraggableLocalVideo &&
|
6452
|
-
|
6500
|
+
localVideoTile &&
|
6453
6501
|
(horizontalGalleryPresent ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(localVideoTileContainerStyle(theme, isNarrow)) }, localVideoTile)) : (React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS$1, styles: floatingLocalVideoModalStyle(theme, isNarrow), layerProps: { hostId: layerHostId }, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition }, localVideoTile))),
|
6454
6502
|
// When we use showCameraSwitcherInLocalPreview it disables dragging to allow keyboard navigation.
|
6455
|
-
shouldFloatNonDraggableLocalVideo &&
|
6503
|
+
shouldFloatNonDraggableLocalVideo && localVideoTile && remoteParticipants.length > 0 && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(localVideoTileWithControlsContainerStyle(theme, isNarrow), {
|
6456
6504
|
boxShadow: theme.effects.elevation8,
|
6457
6505
|
zIndex: LOCAL_VIDEO_TILE_ZINDEX
|
6458
6506
|
}) }, localVideoTile)),
|
@@ -6675,9 +6723,9 @@ const ControlBarButton = (props) => {
|
|
6675
6723
|
/**
|
6676
6724
|
* This is a helper component to define and unify icon colors
|
6677
6725
|
*
|
6678
|
-
* @
|
6726
|
+
* @internal
|
6679
6727
|
*/
|
6680
|
-
const
|
6728
|
+
const _HighContrastAwareIcon = (props) => {
|
6681
6729
|
const { iconName, disabled } = props;
|
6682
6730
|
const theme = useTheme();
|
6683
6731
|
// setting colors for the icons using color from theme, so in dark mode or other accessibility modes, they have pre-defined contrast colors
|
@@ -6821,13 +6869,15 @@ const DevicesButton = (props) => {
|
|
6821
6869
|
const localeStrings = useLocale$1().strings.devicesButton;
|
6822
6870
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
6823
6871
|
const devicesButtonMenu = (_a = props.menuProps) !== null && _a !== void 0 ? _a : generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (_b = props.styles) === null || _b === void 0 ? void 0 : _b.menuStyles }), strings);
|
6824
|
-
const onRenderOptionsIcon = () =>
|
6872
|
+
const onRenderOptionsIcon = () => {
|
6873
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonOptions" });
|
6874
|
+
};
|
6825
6875
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { menuProps: devicesButtonMenu, menuIconProps: { hidden: true }, onRenderIcon: onRenderIcon !== null && onRenderIcon !== void 0 ? onRenderIcon : onRenderOptionsIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'devicesButtonLabel' })));
|
6826
6876
|
};
|
6827
6877
|
|
6828
6878
|
// Copyright (c) Microsoft Corporation.
|
6829
6879
|
// Licensed under the MIT license.
|
6830
|
-
var __awaiter$
|
6880
|
+
var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
6831
6881
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
6832
6882
|
return new (P || (P = Promise))(function (resolve, reject) {
|
6833
6883
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -6855,8 +6905,8 @@ const CameraButton = (props) => {
|
|
6855
6905
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
6856
6906
|
const [announcerString, setAnnouncerString] = React.useState(undefined);
|
6857
6907
|
const disabled = props.disabled || waitForCamera;
|
6858
|
-
const onRenderCameraOnIcon = () => (React__default['default'].createElement(
|
6859
|
-
const onRenderCameraOffIcon = () => (React__default['default'].createElement(
|
6908
|
+
const onRenderCameraOnIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOn" }));
|
6909
|
+
const onRenderCameraOffIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOff" }));
|
6860
6910
|
if (waitForCamera && strings.tooltipVideoLoadingContent) {
|
6861
6911
|
strings.tooltipDisabledContent = strings.tooltipVideoLoadingContent;
|
6862
6912
|
}
|
@@ -6865,7 +6915,7 @@ const CameraButton = (props) => {
|
|
6865
6915
|
const toggleAnnouncerString = React.useCallback((isCameraOn) => {
|
6866
6916
|
setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
|
6867
6917
|
}, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
|
6868
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
6918
|
+
const onToggleClick = React.useCallback(() => __awaiter$t(void 0, void 0, void 0, function* () {
|
6869
6919
|
// Throttle click on camera, need to await onToggleCamera then allow another click
|
6870
6920
|
if (onToggleCamera) {
|
6871
6921
|
setWaitForCamera(true);
|
@@ -6997,7 +7047,7 @@ const lightThemeCallButtonStyles = {
|
|
6997
7047
|
|
6998
7048
|
// Copyright (c) Microsoft Corporation.
|
6999
7049
|
// Licensed under the MIT license.
|
7000
|
-
var __awaiter$
|
7050
|
+
var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
7001
7051
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
7002
7052
|
return new (P || (P = Promise))(function (resolve, reject) {
|
7003
7053
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -7028,17 +7078,17 @@ const MicrophoneButton = (props) => {
|
|
7028
7078
|
(isSplit && !((_c = props.microphones) === null || _c === void 0 ? void 0 : _c.length) && !((_d = props.speakers) === null || _d === void 0 ? void 0 : _d.length)) ||
|
7029
7079
|
(!isSplit && props.microphones && ((_e = props.microphones) === null || _e === void 0 ? void 0 : _e.length) === 0);
|
7030
7080
|
const onRenderMicOnIcon = () => {
|
7031
|
-
return React__default['default'].createElement(
|
7081
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOn" });
|
7032
7082
|
};
|
7033
7083
|
const onRenderMicOffIcon = () => {
|
7034
|
-
return React__default['default'].createElement(
|
7084
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOff" });
|
7035
7085
|
};
|
7036
7086
|
const isMicOn = props.checked;
|
7037
7087
|
const splitButtonAriaString = isMicOn ? strings.onSplitButtonAriaLabel : strings.offSplitButtonAriaLabel;
|
7038
7088
|
const toggleAnnouncerString = React.useCallback((isMicOn) => {
|
7039
7089
|
setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
|
7040
7090
|
}, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
|
7041
|
-
const onToggleClick = React.useCallback(() => __awaiter$
|
7091
|
+
const onToggleClick = React.useCallback(() => __awaiter$s(void 0, void 0, void 0, function* () {
|
7042
7092
|
if (onToggleMicrophone) {
|
7043
7093
|
try {
|
7044
7094
|
yield onToggleMicrophone();
|
@@ -7081,9 +7131,6 @@ const textContainerStyles = {
|
|
7081
7131
|
*/
|
7082
7132
|
const iconPrimaryStyles = {
|
7083
7133
|
root: {
|
7084
|
-
position: 'absolute',
|
7085
|
-
color: '#2B88D8',
|
7086
|
-
transform: 'scale(2)',
|
7087
7134
|
zIndex: 1,
|
7088
7135
|
margin: 'auto'
|
7089
7136
|
}
|
@@ -7091,11 +7138,12 @@ const iconPrimaryStyles = {
|
|
7091
7138
|
/**
|
7092
7139
|
* @internal
|
7093
7140
|
*/
|
7094
|
-
const
|
7095
|
-
|
7096
|
-
|
7097
|
-
|
7098
|
-
|
7141
|
+
const sparkleIconBackdropStyles = (theme) => {
|
7142
|
+
return {
|
7143
|
+
root: {
|
7144
|
+
color: theme.palette.themeLighterAlt
|
7145
|
+
}
|
7146
|
+
};
|
7099
7147
|
};
|
7100
7148
|
/**
|
7101
7149
|
* @internal
|
@@ -7133,15 +7181,15 @@ const linkTextStyles$1 = {
|
|
7133
7181
|
/* @conditional-compile-remove(call-readiness) */
|
7134
7182
|
const DomainPermissionsContainer = (props) => {
|
7135
7183
|
const { appName, onTroubleshootingClick, strings } = props;
|
7184
|
+
const theme = react.useTheme();
|
7136
7185
|
return (React__default['default'].createElement(react.Stack, { style: { padding: '2rem', maxWidth: '25.375rem' } },
|
7137
|
-
React__default['default'].createElement(react.Stack, { horizontal: true, style: {
|
7186
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, style: { paddingBottom: '1rem' }, horizontalAlign: 'space-between' },
|
7138
7187
|
React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
|
7139
|
-
React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: '
|
7140
|
-
React__default['default'].createElement(react.Icon, { styles: iconBackDropStyles, iconName: 'iconBackdrop' })),
|
7141
|
-
React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: 'Sparkle' }),
|
7188
|
+
React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: 'DomainPermissionCamera' })),
|
7142
7189
|
React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
|
7143
|
-
React__default['default'].createElement(react.Icon, { styles:
|
7144
|
-
|
7190
|
+
React__default['default'].createElement(react.Icon, { styles: sparkleIconBackdropStyles(theme), iconName: 'DomainPermissionsSparkle' })),
|
7191
|
+
React__default['default'].createElement(react.Stack, { styles: iconContainerStyles, horizontalAlign: 'center' },
|
7192
|
+
React__default['default'].createElement(react.Icon, { styles: iconPrimaryStyles, iconName: 'DomainPermissionMic' }))),
|
7145
7193
|
React__default['default'].createElement(react.Stack, { styles: textContainerStyles },
|
7146
7194
|
React__default['default'].createElement(react.Text, { styles: primaryTextStyles }, _formatString(strings.primaryText, { appName: appName })),
|
7147
7195
|
React__default['default'].createElement(react.Text, { styles: secondaryTextStyles$2 }, strings.secondaryText),
|
@@ -7157,7 +7205,7 @@ const DomainPermissions = (props) => {
|
|
7157
7205
|
/* @conditional-compile-remove(call-readiness) */
|
7158
7206
|
const locale = useLocale$1().strings.DomainPermissions;
|
7159
7207
|
/* @conditional-compile-remove(call-readiness) */
|
7160
|
-
return React__default['default'].createElement(DomainPermissionsContainer, Object.assign({}, props, { strings: locale }));
|
7208
|
+
return React__default['default'].createElement(DomainPermissionsContainer, Object.assign({}, props, { strings: props.strings ? props.strings : locale }));
|
7161
7209
|
};
|
7162
7210
|
|
7163
7211
|
// Copyright (c) Microsoft Corporation.
|
@@ -7176,7 +7224,7 @@ const ParticipantsButton = (props) => {
|
|
7176
7224
|
var _a, _b, _c, _d;
|
7177
7225
|
const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
|
7178
7226
|
const disabled = props.disabled;
|
7179
|
-
const onRenderPeopleIcon = () => (React__default['default'].createElement(
|
7227
|
+
const onRenderPeopleIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonParticipants" }));
|
7180
7228
|
const ids = useIdentifiers();
|
7181
7229
|
const onMuteAllCallback = React.useCallback(() => {
|
7182
7230
|
if (onMuteAll) {
|
@@ -7319,8 +7367,8 @@ const ScreenShareButton = (props) => {
|
|
7319
7367
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
7320
7368
|
const theme = react.useTheme();
|
7321
7369
|
const styles = screenshareButtonStyles(theme);
|
7322
|
-
const onRenderScreenShareOnIcon = () => (React__default['default'].createElement(
|
7323
|
-
const onRenderScreenShareOffIcon = () => (React__default['default'].createElement(
|
7370
|
+
const onRenderScreenShareOnIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStop" }));
|
7371
|
+
const onRenderScreenShareOffIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStart" }));
|
7324
7372
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { className: react.mergeStyles(styles, props.styles), onClick: (_a = props.onToggleScreenShare) !== null && _a !== void 0 ? _a : props.onClick, onRenderOnIcon: (_b = props.onRenderOnIcon) !== null && _b !== void 0 ? _b : onRenderScreenShareOnIcon, onRenderOffIcon: (_c = props.onRenderOffIcon) !== null && _c !== void 0 ? _c : onRenderScreenShareOffIcon, strings: strings, labelKey: (_d = props.labelKey) !== null && _d !== void 0 ? _d : 'screenShareButtonLabel', disabled: props.disabled })));
|
7325
7373
|
};
|
7326
7374
|
const screenshareButtonStyles = (theme) => ({
|
@@ -7904,7 +7952,11 @@ const iconButtonStyles = (theme) => {
|
|
7904
7952
|
color: `${theme.palette.black}`
|
7905
7953
|
},
|
7906
7954
|
icon: {
|
7907
|
-
height: 'auto'
|
7955
|
+
height: 'auto',
|
7956
|
+
// Needed to keep the icon vertically centered.
|
7957
|
+
'> span': {
|
7958
|
+
display: 'flex'
|
7959
|
+
}
|
7908
7960
|
}
|
7909
7961
|
};
|
7910
7962
|
};
|
@@ -8016,7 +8068,7 @@ function useLongPress(onClick, onLongPress, isMobile) {
|
|
8016
8068
|
|
8017
8069
|
// Copyright (c) Microsoft Corporation.
|
8018
8070
|
// Licensed under the MIT license.
|
8019
|
-
var __awaiter$
|
8071
|
+
var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
8020
8072
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
8021
8073
|
return new (P || (P = Promise))(function (resolve, reject) {
|
8022
8074
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8057,10 +8109,10 @@ const DialpadButton = (props) => {
|
|
8057
8109
|
var _a, _b, _c, _d;
|
8058
8110
|
const theme = react.useTheme();
|
8059
8111
|
const { digit, index, onClick, onLongPress, isMobile = false } = props;
|
8060
|
-
const clickFunction = React.useCallback(() => __awaiter$
|
8112
|
+
const clickFunction = React.useCallback(() => __awaiter$r(void 0, void 0, void 0, function* () {
|
8061
8113
|
onClick(digit, index);
|
8062
8114
|
}), [digit, index, onClick]);
|
8063
|
-
const longPressFunction = React.useCallback(() => __awaiter$
|
8115
|
+
const longPressFunction = React.useCallback(() => __awaiter$r(void 0, void 0, void 0, function* () {
|
8064
8116
|
onLongPress(digit, index);
|
8065
8117
|
}), [digit, index, onLongPress]);
|
8066
8118
|
const { handlers } = useLongPress(clickFunction, longPressFunction, isMobile);
|
@@ -8180,10 +8232,10 @@ const sanitizeInput = (input) => {
|
|
8180
8232
|
const HoldButton = (props) => {
|
8181
8233
|
const { onToggleHold, strings } = props;
|
8182
8234
|
const onRenderHoldIcon = () => {
|
8183
|
-
return React__default['default'].createElement(
|
8235
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "HoldCallButton" });
|
8184
8236
|
};
|
8185
8237
|
const onRenderResumeIcon = () => {
|
8186
|
-
return React__default['default'].createElement(
|
8238
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ResumeCall" });
|
8187
8239
|
};
|
8188
8240
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { strings: strings, onClick: onToggleHold !== null && onToggleHold !== void 0 ? onToggleHold : props.onClick, onRenderOnIcon: onRenderResumeIcon, onRenderOffIcon: onRenderHoldIcon })));
|
8189
8241
|
};
|
@@ -8263,6 +8315,25 @@ const UnsupportedBrowser = (props) => {
|
|
8263
8315
|
return React__default['default'].createElement(UnsupportedBrowserContainer, Object.assign({}, props, { strings: strings }));
|
8264
8316
|
};
|
8265
8317
|
|
8318
|
+
// Copyright (c) Microsoft Corporation.
|
8319
|
+
/**
|
8320
|
+
* A dropdown to trigger device permission prompt
|
8321
|
+
*
|
8322
|
+
* @internal
|
8323
|
+
*/
|
8324
|
+
const _DevicePermissionDropdown = (props) => {
|
8325
|
+
const { icon, onClickActionButton, strings, options, styles } = props;
|
8326
|
+
const onRenderPlaceholder = () => {
|
8327
|
+
return (React__default['default'].createElement(react.Stack, { horizontal: true, verticalAlign: "center" },
|
8328
|
+
icon,
|
8329
|
+
React__default['default'].createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.placeHolderText)));
|
8330
|
+
};
|
8331
|
+
const onRenderCaretDown = () => {
|
8332
|
+
return React__default['default'].createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent);
|
8333
|
+
};
|
8334
|
+
return (React__default['default'].createElement(react.Dropdown, { placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: onClickActionButton, options: options !== null && options !== void 0 ? options : [], styles: styles }));
|
8335
|
+
};
|
8336
|
+
|
8266
8337
|
// Copyright (c) Microsoft Corporation.
|
8267
8338
|
// Licensed under the MIT license.
|
8268
8339
|
/**
|
@@ -8705,7 +8776,7 @@ const findConditionalCompiledSelector = (component) => {
|
|
8705
8776
|
|
8706
8777
|
// Copyright (c) Microsoft Corporation.
|
8707
8778
|
// Licensed under the MIT license.
|
8708
|
-
var __awaiter$
|
8779
|
+
var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
8709
8780
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
8710
8781
|
return new (P || (P = Promise))(function (resolve, reject) {
|
8711
8782
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -8728,35 +8799,35 @@ const createDefaultChatHandlers = memoizeOne__default['default']((chatClient, ch
|
|
8728
8799
|
let messageIterator = undefined;
|
8729
8800
|
let readReceiptIterator = undefined;
|
8730
8801
|
return {
|
8731
|
-
onSendMessage: (content, options) => __awaiter$
|
8802
|
+
onSendMessage: (content, options) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8732
8803
|
const sendMessageRequest = {
|
8733
8804
|
content,
|
8734
8805
|
senderDisplayName: chatClient.getState().displayName
|
8735
8806
|
};
|
8736
8807
|
yield chatThreadClient.sendMessage(sendMessageRequest, options);
|
8737
8808
|
}),
|
8738
|
-
onUpdateMessage: (messageId, content, metadata, options) => __awaiter$
|
8809
|
+
onUpdateMessage: (messageId, content, metadata, options) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8739
8810
|
const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
|
8740
8811
|
updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
|
8741
8812
|
yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
|
8742
8813
|
}),
|
8743
|
-
onDeleteMessage: (messageId) => __awaiter$
|
8814
|
+
onDeleteMessage: (messageId) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8744
8815
|
yield chatThreadClient.deleteMessage(messageId);
|
8745
8816
|
}),
|
8746
8817
|
// This handler is designed for chatThread to consume
|
8747
|
-
onMessageSeen: (chatMessageId) => __awaiter$
|
8818
|
+
onMessageSeen: (chatMessageId) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8748
8819
|
yield chatThreadClient.sendReadReceipt({ chatMessageId });
|
8749
8820
|
}),
|
8750
|
-
onTyping: () => __awaiter$
|
8821
|
+
onTyping: () => __awaiter$q(void 0, void 0, void 0, function* () {
|
8751
8822
|
yield chatThreadClient.sendTypingNotification();
|
8752
8823
|
}),
|
8753
|
-
onRemoveParticipant: (userId) => __awaiter$
|
8824
|
+
onRemoveParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8754
8825
|
yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
|
8755
8826
|
}),
|
8756
|
-
updateThreadTopicName: (topicName) => __awaiter$
|
8827
|
+
updateThreadTopicName: (topicName) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8757
8828
|
yield chatThreadClient.updateTopic(topicName);
|
8758
8829
|
}),
|
8759
|
-
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$
|
8830
|
+
onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$q(void 0, void 0, void 0, function* () {
|
8760
8831
|
var _a, _b, _c;
|
8761
8832
|
if (messageIterator === undefined) {
|
8762
8833
|
// Lazy definition so that errors in the method call are reported correctly.
|
@@ -9458,7 +9529,7 @@ const findSelector = (component) => {
|
|
9458
9529
|
|
9459
9530
|
// Copyright (c) Microsoft Corporation.
|
9460
9531
|
// Licensed under the MIT license.
|
9461
|
-
var __awaiter$
|
9532
|
+
var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
9462
9533
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
9463
9534
|
return new (P || (P = Promise))(function (resolve, reject) {
|
9464
9535
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -9507,10 +9578,10 @@ class ProxyDeviceManager {
|
|
9507
9578
|
this.selectCamera = (videoDeviceInfo) => {
|
9508
9579
|
this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
|
9509
9580
|
};
|
9510
|
-
this.videoDevicesUpdated = () => __awaiter$
|
9581
|
+
this.videoDevicesUpdated = () => __awaiter$p(this, void 0, void 0, function* () {
|
9511
9582
|
this._context.setDeviceManagerCameras(dedupeById(yield this._deviceManager.getCameras()));
|
9512
9583
|
});
|
9513
|
-
this.audioDevicesUpdated = () => __awaiter$
|
9584
|
+
this.audioDevicesUpdated = () => __awaiter$p(this, void 0, void 0, function* () {
|
9514
9585
|
this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
|
9515
9586
|
this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
|
9516
9587
|
});
|
@@ -9713,7 +9784,7 @@ class CallIdHistory {
|
|
9713
9784
|
|
9714
9785
|
// Copyright (c) Microsoft Corporation.
|
9715
9786
|
// Licensed under the MIT license.
|
9716
|
-
var __awaiter$
|
9787
|
+
var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
9717
9788
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
9718
9789
|
return new (P || (P = Promise))(function (resolve, reject) {
|
9719
9790
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -10198,7 +10269,7 @@ class CallContext$1 {
|
|
10198
10269
|
* @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
|
10199
10270
|
*/
|
10200
10271
|
withAsyncErrorTeedToState(action, target) {
|
10201
|
-
return (...args) => __awaiter$
|
10272
|
+
return (...args) => __awaiter$o(this, void 0, void 0, function* () {
|
10202
10273
|
try {
|
10203
10274
|
return yield action(...args);
|
10204
10275
|
}
|
@@ -10262,7 +10333,7 @@ const findOldestCallEnded = (calls) => {
|
|
10262
10333
|
|
10263
10334
|
// Copyright (c) Microsoft Corporation.
|
10264
10335
|
// Licensed under the MIT license.
|
10265
|
-
var __awaiter$
|
10336
|
+
var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
10266
10337
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
10267
10338
|
return new (P || (P = Promise))(function (resolve, reject) {
|
10268
10339
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -10282,63 +10353,63 @@ class ProxyCall {
|
|
10282
10353
|
switch (prop) {
|
10283
10354
|
case 'mute': {
|
10284
10355
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10285
|
-
return __awaiter$
|
10356
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10286
10357
|
return yield target.mute(...args);
|
10287
10358
|
});
|
10288
10359
|
}, 'Call.mute');
|
10289
10360
|
}
|
10290
10361
|
case 'unmute': {
|
10291
10362
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10292
|
-
return __awaiter$
|
10363
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10293
10364
|
return yield target.unmute(...args);
|
10294
10365
|
});
|
10295
10366
|
}, 'Call.unmute');
|
10296
10367
|
}
|
10297
10368
|
case 'startVideo': {
|
10298
10369
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10299
|
-
return __awaiter$
|
10370
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10300
10371
|
return yield target.startVideo(...args);
|
10301
10372
|
});
|
10302
10373
|
}, 'Call.startVideo');
|
10303
10374
|
}
|
10304
10375
|
case 'stopVideo': {
|
10305
10376
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10306
|
-
return __awaiter$
|
10377
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10307
10378
|
return yield target.stopVideo(...args);
|
10308
10379
|
});
|
10309
10380
|
}, 'Call.stopVideo');
|
10310
10381
|
}
|
10311
10382
|
case 'startScreenSharing': {
|
10312
10383
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10313
|
-
return __awaiter$
|
10384
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10314
10385
|
return yield target.startScreenSharing(...args);
|
10315
10386
|
});
|
10316
10387
|
}, 'Call.startScreenSharing');
|
10317
10388
|
}
|
10318
10389
|
case 'stopScreenSharing': {
|
10319
10390
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10320
|
-
return __awaiter$
|
10391
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10321
10392
|
return yield target.stopScreenSharing(...args);
|
10322
10393
|
});
|
10323
10394
|
}, 'Call.stopScreenSharing');
|
10324
10395
|
}
|
10325
10396
|
case 'hold': {
|
10326
10397
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10327
|
-
return __awaiter$
|
10398
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10328
10399
|
return yield target.hold(...args);
|
10329
10400
|
});
|
10330
10401
|
}, 'Call.hold');
|
10331
10402
|
}
|
10332
10403
|
case 'resume': {
|
10333
10404
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10334
|
-
return __awaiter$
|
10405
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10335
10406
|
return yield target.resume(...args);
|
10336
10407
|
});
|
10337
10408
|
}, 'Call.resume');
|
10338
10409
|
}
|
10339
10410
|
case 'addParticipant': {
|
10340
10411
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
10341
|
-
return __awaiter$
|
10412
|
+
return __awaiter$n(this, void 0, void 0, function* () {
|
10342
10413
|
return yield target.addParticipant(...args);
|
10343
10414
|
});
|
10344
10415
|
}, 'Call.addParticipant');
|
@@ -10546,7 +10617,7 @@ class RemoteVideoStreamSubscriber {
|
|
10546
10617
|
|
10547
10618
|
// Copyright (c) Microsoft Corporation.
|
10548
10619
|
// Licensed under the MIT license.
|
10549
|
-
var __awaiter$
|
10620
|
+
var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
10550
10621
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
10551
10622
|
return new (P || (P = Promise))(function (resolve, reject) {
|
10552
10623
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -10556,7 +10627,7 @@ var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
10556
10627
|
});
|
10557
10628
|
};
|
10558
10629
|
function createViewRemoteVideo(context, internalContext, callId, participantId, stream, options) {
|
10559
|
-
return __awaiter$
|
10630
|
+
return __awaiter$m(this, void 0, void 0, function* () {
|
10560
10631
|
// Render RemoteVideoStream that is part of a Call
|
10561
10632
|
const streamId = stream.id;
|
10562
10633
|
let participantKey;
|
@@ -10664,7 +10735,7 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
10664
10735
|
});
|
10665
10736
|
}
|
10666
10737
|
function createViewLocalVideo(context, internalContext, callId, options) {
|
10667
|
-
return __awaiter$
|
10738
|
+
return __awaiter$m(this, void 0, void 0, function* () {
|
10668
10739
|
_logEvent(callingStatefulLogger, {
|
10669
10740
|
name: EventNames.START_LOCAL_STREAM_RENDERING,
|
10670
10741
|
level: 'info',
|
@@ -10780,7 +10851,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
10780
10851
|
});
|
10781
10852
|
}
|
10782
10853
|
function createViewUnparentedVideo(context, internalContext, stream, options) {
|
10783
|
-
return __awaiter$
|
10854
|
+
return __awaiter$m(this, void 0, void 0, function* () {
|
10784
10855
|
const renderInfo = internalContext.getUnparentedRenderInfo(stream);
|
10785
10856
|
if (renderInfo && renderInfo.status === 'Rendered') {
|
10786
10857
|
console.warn('Unparented LocalVideoStream is already rendered');
|
@@ -11408,7 +11479,7 @@ class CallSubscriber {
|
|
11408
11479
|
|
11409
11480
|
// Copyright (c) Microsoft Corporation.
|
11410
11481
|
// Licensed under the MIT license.
|
11411
|
-
var __awaiter$
|
11482
|
+
var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
11412
11483
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
11413
11484
|
return new (P || (P = Promise))(function (resolve, reject) {
|
11414
11485
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -11428,14 +11499,14 @@ class ProxyIncomingCall {
|
|
11428
11499
|
switch (prop) {
|
11429
11500
|
case 'accept': {
|
11430
11501
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
11431
|
-
return __awaiter$
|
11502
|
+
return __awaiter$l(this, void 0, void 0, function* () {
|
11432
11503
|
return yield target.accept(...args);
|
11433
11504
|
});
|
11434
11505
|
}, 'IncomingCall.accept');
|
11435
11506
|
}
|
11436
11507
|
case 'reject': {
|
11437
11508
|
return this._context.withAsyncErrorTeedToState(function (...args) {
|
11438
|
-
return __awaiter$
|
11509
|
+
return __awaiter$l(this, void 0, void 0, function* () {
|
11439
11510
|
return yield target.reject(...args);
|
11440
11511
|
});
|
11441
11512
|
}, 'IncomingCall.reject');
|
@@ -11483,6 +11554,16 @@ class IncomingCallSubscriber {
|
|
11483
11554
|
}
|
11484
11555
|
|
11485
11556
|
// Copyright (c) Microsoft Corporation.
|
11557
|
+
// Licensed under the MIT license.
|
11558
|
+
(window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
11559
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
11560
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
11561
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
11562
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
11563
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
11564
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
11565
|
+
});
|
11566
|
+
};
|
11486
11567
|
/**
|
11487
11568
|
* ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state
|
11488
11569
|
* updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will
|
@@ -11636,10 +11717,10 @@ class ProxyCallAgent {
|
|
11636
11717
|
};
|
11637
11718
|
}
|
11638
11719
|
case 'dispose': {
|
11720
|
+
/* @conditional-compile-remove(calling-beta-sdk) */
|
11639
11721
|
return () => {
|
11640
|
-
|
11641
|
-
|
11642
|
-
});
|
11722
|
+
target.dispose();
|
11723
|
+
this.unsubscribe();
|
11643
11724
|
};
|
11644
11725
|
}
|
11645
11726
|
/**
|
@@ -11773,7 +11854,7 @@ class InternalCallContext {
|
|
11773
11854
|
|
11774
11855
|
// Copyright (c) Microsoft Corporation.
|
11775
11856
|
// Licensed under the MIT license.
|
11776
|
-
var __awaiter$
|
11857
|
+
var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
11777
11858
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
11778
11859
|
return new (P || (P = Promise))(function (resolve, reject) {
|
11779
11860
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -11795,7 +11876,7 @@ class ProxyCallClient {
|
|
11795
11876
|
get(target, prop) {
|
11796
11877
|
switch (prop) {
|
11797
11878
|
case 'createCallAgent': {
|
11798
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
11879
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$k(this, void 0, void 0, function* () {
|
11799
11880
|
// createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
|
11800
11881
|
// callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
|
11801
11882
|
// callAgent if the createCallAgent succeeds.
|
@@ -11808,7 +11889,7 @@ class ProxyCallClient {
|
|
11808
11889
|
}), 'CallClient.createCallAgent');
|
11809
11890
|
}
|
11810
11891
|
case 'getDeviceManager': {
|
11811
|
-
return this._context.withAsyncErrorTeedToState(() => __awaiter$
|
11892
|
+
return this._context.withAsyncErrorTeedToState(() => __awaiter$k(this, void 0, void 0, function* () {
|
11812
11893
|
// As of writing, the SDK always returns the same instance of DeviceManager so we keep a reference of
|
11813
11894
|
// DeviceManager and if it does not change we return the cached DeclarativeDeviceManager. If it does not we'll
|
11814
11895
|
// throw an error that indicate we need to fix this issue as our implementation has diverged from the SDK.
|
@@ -11931,7 +12012,7 @@ const chatStatefulLogger = logger.createClientLogger('communication-react:chat-s
|
|
11931
12012
|
|
11932
12013
|
// Copyright (c) Microsoft Corporation.
|
11933
12014
|
// Licensed under the MIT license.
|
11934
|
-
var __awaiter$
|
12015
|
+
var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
11935
12016
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
11936
12017
|
return new (P || (P = Promise))(function (resolve, reject) {
|
11937
12018
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12206,7 +12287,7 @@ class ChatContext$1 {
|
|
12206
12287
|
* @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
|
12207
12288
|
*/
|
12208
12289
|
withAsyncErrorTeedToState(f, target) {
|
12209
|
-
return (...args) => __awaiter$
|
12290
|
+
return (...args) => __awaiter$j(this, void 0, void 0, function* () {
|
12210
12291
|
try {
|
12211
12292
|
return yield f(...args);
|
12212
12293
|
}
|
@@ -12313,7 +12394,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
|
|
12313
12394
|
|
12314
12395
|
// Copyright (c) Microsoft Corporation.
|
12315
12396
|
// Licensed under the MIT license.
|
12316
|
-
var __awaiter$
|
12397
|
+
var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12317
12398
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12318
12399
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12319
12400
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12397,7 +12478,7 @@ class EventSubscriber {
|
|
12397
12478
|
this.fetchLastParticipantMessage(event.threadId, 'participantAdded');
|
12398
12479
|
};
|
12399
12480
|
// This is a hot fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK
|
12400
|
-
this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$
|
12481
|
+
this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$i(this, void 0, void 0, function* () {
|
12401
12482
|
var e_1, _a;
|
12402
12483
|
try {
|
12403
12484
|
for (var _b = __asyncValues$1(this.chatClient
|
@@ -12483,7 +12564,7 @@ class EventSubscriber {
|
|
12483
12564
|
|
12484
12565
|
// Copyright (c) Microsoft Corporation.
|
12485
12566
|
// Licensed under the MIT license.
|
12486
|
-
var __awaiter$
|
12567
|
+
var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12487
12568
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12488
12569
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12489
12570
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12505,7 +12586,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
|
|
12505
12586
|
const threadsIterator = iteratorCreator(...args);
|
12506
12587
|
return {
|
12507
12588
|
next() {
|
12508
|
-
return __awaiter$
|
12589
|
+
return __awaiter$h(this, void 0, void 0, function* () {
|
12509
12590
|
const result = yield threadsIterator.next();
|
12510
12591
|
if (!result.done && result.value) {
|
12511
12592
|
decorateFn(result.value, context);
|
@@ -12520,7 +12601,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
|
|
12520
12601
|
const pages = threadsIterator.byPage(settings);
|
12521
12602
|
return {
|
12522
12603
|
next() {
|
12523
|
-
return __awaiter$
|
12604
|
+
return __awaiter$h(this, void 0, void 0, function* () {
|
12524
12605
|
const result = yield pages.next();
|
12525
12606
|
const page = result.value;
|
12526
12607
|
if (!result.done && result.value) {
|
@@ -12604,7 +12685,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
|
|
12604
12685
|
|
12605
12686
|
// Copyright (c) Microsoft Corporation.
|
12606
12687
|
// Licensed under the MIT license.
|
12607
|
-
var __awaiter$
|
12688
|
+
var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12608
12689
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12609
12690
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12610
12691
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12623,14 +12704,14 @@ class ProxyChatThreadClient {
|
|
12623
12704
|
return createDecoratedListMessages(chatThreadClient, this._context);
|
12624
12705
|
}
|
12625
12706
|
case 'getMessage': {
|
12626
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12707
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12627
12708
|
const message = yield chatThreadClient.getMessage(...args);
|
12628
12709
|
this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
|
12629
12710
|
return message;
|
12630
12711
|
}), 'ChatThreadClient.getMessage');
|
12631
12712
|
}
|
12632
12713
|
case 'sendMessage': {
|
12633
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12714
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12634
12715
|
// Retry logic?
|
12635
12716
|
const [request, options] = args;
|
12636
12717
|
const { content } = request;
|
@@ -12670,7 +12751,7 @@ class ProxyChatThreadClient {
|
|
12670
12751
|
}), 'ChatThreadClient.sendMessage');
|
12671
12752
|
}
|
12672
12753
|
case 'addParticipants': {
|
12673
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12754
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12674
12755
|
const result = yield chatThreadClient.addParticipants(...args);
|
12675
12756
|
const [addRequest] = args;
|
12676
12757
|
const participantsToAdd = addRequest.participants;
|
@@ -12679,7 +12760,7 @@ class ProxyChatThreadClient {
|
|
12679
12760
|
}), 'ChatThreadClient.addParticipants');
|
12680
12761
|
}
|
12681
12762
|
case 'deleteMessage': {
|
12682
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12763
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12683
12764
|
// DeleteMessage is able to either delete local one(for failed message) or synced message
|
12684
12765
|
const [messageId] = args;
|
12685
12766
|
if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
|
@@ -12697,7 +12778,7 @@ class ProxyChatThreadClient {
|
|
12697
12778
|
return createDecoratedListReadReceipts(chatThreadClient, this._context);
|
12698
12779
|
}
|
12699
12780
|
case 'removeParticipant': {
|
12700
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12781
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12701
12782
|
const result = yield chatThreadClient.removeParticipant(...args);
|
12702
12783
|
const [removeIdentifier] = args;
|
12703
12784
|
this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
|
@@ -12705,7 +12786,7 @@ class ProxyChatThreadClient {
|
|
12705
12786
|
}), 'ChatThreadClient.removeParticipant');
|
12706
12787
|
}
|
12707
12788
|
case 'updateMessage': {
|
12708
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12789
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12709
12790
|
const result = yield chatThreadClient.updateMessage(...args);
|
12710
12791
|
const [messageId, updateOption] = args;
|
12711
12792
|
this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
|
@@ -12713,7 +12794,7 @@ class ProxyChatThreadClient {
|
|
12713
12794
|
}), 'ChatThreadClient.updateMessage');
|
12714
12795
|
}
|
12715
12796
|
case 'updateTopic': {
|
12716
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12797
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12717
12798
|
const result = yield chatThreadClient.updateTopic(...args);
|
12718
12799
|
const [topic] = args;
|
12719
12800
|
this._context.updateThreadTopic(chatThreadClient.threadId, topic);
|
@@ -12721,7 +12802,7 @@ class ProxyChatThreadClient {
|
|
12721
12802
|
}), 'ChatThreadClient.updateTopic');
|
12722
12803
|
}
|
12723
12804
|
case 'getProperties': {
|
12724
|
-
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$
|
12805
|
+
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
|
12725
12806
|
const result = yield chatThreadClient.getProperties(...args);
|
12726
12807
|
this._context.updateThread(chatThreadClient.threadId, result);
|
12727
12808
|
return result;
|
@@ -12758,7 +12839,7 @@ const createDecoratedListThreads = (chatClient, context) => {
|
|
12758
12839
|
|
12759
12840
|
// Copyright (c) Microsoft Corporation.
|
12760
12841
|
// Licensed under the MIT license.
|
12761
|
-
var __awaiter$
|
12842
|
+
var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12762
12843
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
12763
12844
|
return new (P || (P = Promise))(function (resolve, reject) {
|
12764
12845
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -12777,7 +12858,7 @@ const proxyChatClient = {
|
|
12777
12858
|
switch (prop) {
|
12778
12859
|
case 'createChatThread': {
|
12779
12860
|
return context.withAsyncErrorTeedToState(function (...args) {
|
12780
|
-
return __awaiter$
|
12861
|
+
return __awaiter$f(this, void 0, void 0, function* () {
|
12781
12862
|
const result = yield chatClient.createChatThread(...args);
|
12782
12863
|
const thread = result.chatThread;
|
12783
12864
|
if (thread) {
|
@@ -12790,7 +12871,7 @@ const proxyChatClient = {
|
|
12790
12871
|
}
|
12791
12872
|
case 'deleteChatThread': {
|
12792
12873
|
return context.withAsyncErrorTeedToState(function (...args) {
|
12793
|
-
return __awaiter$
|
12874
|
+
return __awaiter$f(this, void 0, void 0, function* () {
|
12794
12875
|
const result = yield chatClient.deleteChatThread(...args);
|
12795
12876
|
context.deleteThread(args[0]);
|
12796
12877
|
return result;
|
@@ -12810,7 +12891,7 @@ const proxyChatClient = {
|
|
12810
12891
|
}
|
12811
12892
|
case 'startRealtimeNotifications': {
|
12812
12893
|
return context.withAsyncErrorTeedToState(function (...args) {
|
12813
|
-
return __awaiter$
|
12894
|
+
return __awaiter$f(this, void 0, void 0, function* () {
|
12814
12895
|
const ret = yield chatClient.startRealtimeNotifications(...args);
|
12815
12896
|
if (!receiver.eventSubscriber) {
|
12816
12897
|
receiver.eventSubscriber = new EventSubscriber(chatClient, context);
|
@@ -12821,7 +12902,7 @@ const proxyChatClient = {
|
|
12821
12902
|
}
|
12822
12903
|
case 'stopRealtimeNotifications': {
|
12823
12904
|
return context.withAsyncErrorTeedToState(function (...args) {
|
12824
|
-
return __awaiter$
|
12905
|
+
return __awaiter$f(this, void 0, void 0, function* () {
|
12825
12906
|
const ret = yield chatClient.stopRealtimeNotifications(...args);
|
12826
12907
|
if (receiver.eventSubscriber) {
|
12827
12908
|
receiver.eventSubscriber.unsubscribe();
|
@@ -13010,7 +13091,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
13010
13091
|
*/
|
13011
13092
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
13012
13093
|
|
13013
|
-
var call$d={cameraLabel:"Camera",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",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",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",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={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",peopleButtonLabel:"People",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$d,chat:chat$d,callWithChat:callWithChat$d};
|
13094
|
+
var call$d={cameraLabel:"Camera",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",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",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",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={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",peopleButtonLabel:"People",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$d,chat:chat$d,callWithChat:callWithChat$d};
|
13014
13095
|
|
13015
13096
|
var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
|
13016
13097
|
|
@@ -13412,7 +13493,7 @@ const convertObservableFileUploadToFileUploadsUiState = (fileUploads) => {
|
|
13412
13493
|
|
13413
13494
|
// Copyright (c) Microsoft Corporation.
|
13414
13495
|
// Licensed under the MIT license.
|
13415
|
-
var __awaiter$
|
13496
|
+
var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
13416
13497
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
13417
13498
|
return new (P || (P = Promise))(function (resolve, reject) {
|
13418
13499
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -13538,9 +13619,9 @@ class AzureCommunicationChatAdapter {
|
|
13538
13619
|
this.unsubscribeAllEvents();
|
13539
13620
|
}
|
13540
13621
|
fetchInitialData() {
|
13541
|
-
return __awaiter$
|
13622
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13542
13623
|
// If get properties fails we dont want to try to get the participants after.
|
13543
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13624
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13544
13625
|
var e_1, _a;
|
13545
13626
|
yield this.chatThreadClient.getProperties();
|
13546
13627
|
try {
|
@@ -13574,8 +13655,8 @@ class AzureCommunicationChatAdapter {
|
|
13574
13655
|
this.context.offStateChange(handler);
|
13575
13656
|
}
|
13576
13657
|
sendMessage(content, options = {}) {
|
13577
|
-
return __awaiter$
|
13578
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13658
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13659
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13579
13660
|
/* @conditional-compile-remove(file-sharing) */
|
13580
13661
|
options.metadata = Object.assign(Object.assign({}, options.metadata), convertFileUploadsUiStateToMessageMetadata(this.context.getState().fileUploads));
|
13581
13662
|
/* @conditional-compile-remove(file-sharing) */
|
@@ -13592,49 +13673,49 @@ class AzureCommunicationChatAdapter {
|
|
13592
13673
|
});
|
13593
13674
|
}
|
13594
13675
|
sendReadReceipt(chatMessageId) {
|
13595
|
-
return __awaiter$
|
13596
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13676
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13677
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13597
13678
|
yield this.handlers.onMessageSeen(chatMessageId);
|
13598
13679
|
}));
|
13599
13680
|
});
|
13600
13681
|
}
|
13601
13682
|
sendTypingIndicator() {
|
13602
|
-
return __awaiter$
|
13683
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13603
13684
|
yield this.handlers.onTyping();
|
13604
13685
|
});
|
13605
13686
|
}
|
13606
13687
|
removeParticipant(userId) {
|
13607
|
-
return __awaiter$
|
13608
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13688
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13689
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13609
13690
|
yield this.handlers.onRemoveParticipant(userId);
|
13610
13691
|
}));
|
13611
13692
|
});
|
13612
13693
|
}
|
13613
13694
|
setTopic(topicName) {
|
13614
|
-
return __awaiter$
|
13615
|
-
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13695
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13696
|
+
yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13616
13697
|
yield this.handlers.updateThreadTopicName(topicName);
|
13617
13698
|
}));
|
13618
13699
|
});
|
13619
13700
|
}
|
13620
13701
|
loadPreviousChatMessages(messagesToLoad) {
|
13621
|
-
return __awaiter$
|
13622
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13702
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13703
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13623
13704
|
return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
|
13624
13705
|
}));
|
13625
13706
|
});
|
13626
13707
|
}
|
13627
13708
|
updateMessage(messageId, content, metadata, options) {
|
13628
|
-
return __awaiter$
|
13629
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13709
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13710
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13630
13711
|
/* @conditional-compile-remove(file-sharing) */
|
13631
13712
|
return yield this.handlers.onUpdateMessage(messageId, content, metadata, options);
|
13632
13713
|
}));
|
13633
13714
|
});
|
13634
13715
|
}
|
13635
13716
|
deleteMessage(messageId) {
|
13636
|
-
return __awaiter$
|
13637
|
-
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$
|
13717
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13718
|
+
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
|
13638
13719
|
return yield this.handlers.onDeleteMessage(messageId);
|
13639
13720
|
}));
|
13640
13721
|
});
|
@@ -13715,7 +13796,7 @@ class AzureCommunicationChatAdapter {
|
|
13715
13796
|
this.emitter.off(event, listener);
|
13716
13797
|
}
|
13717
13798
|
asyncTeeErrorToEventEmitter(f) {
|
13718
|
-
return __awaiter$
|
13799
|
+
return __awaiter$e(this, void 0, void 0, function* () {
|
13719
13800
|
try {
|
13720
13801
|
return yield f();
|
13721
13802
|
}
|
@@ -13757,7 +13838,7 @@ const convertEventType = (type) => {
|
|
13757
13838
|
*
|
13758
13839
|
* @public
|
13759
13840
|
*/
|
13760
|
-
const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$
|
13841
|
+
const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$e(void 0, void 0, void 0, function* () {
|
13761
13842
|
const chatClient = createStatefulChatClient({
|
13762
13843
|
userId,
|
13763
13844
|
displayName,
|
@@ -13820,7 +13901,7 @@ beforeDispose) => {
|
|
13820
13901
|
if (!credential || !displayName || !endpoint || !threadId || !userId) {
|
13821
13902
|
return;
|
13822
13903
|
}
|
13823
|
-
(() => __awaiter$
|
13904
|
+
(() => __awaiter$e(void 0, void 0, void 0, function* () {
|
13824
13905
|
if (adapterRef.current) {
|
13825
13906
|
// Dispose the old adapter when a new one is created.
|
13826
13907
|
//
|
@@ -13852,7 +13933,7 @@ beforeDispose) => {
|
|
13852
13933
|
// Dispose any existing adapter when the component unmounts.
|
13853
13934
|
React.useEffect(() => {
|
13854
13935
|
return () => {
|
13855
|
-
(() => __awaiter$
|
13936
|
+
(() => __awaiter$e(void 0, void 0, void 0, function* () {
|
13856
13937
|
if (adapterRef.current) {
|
13857
13938
|
if (beforeDisposeRef.current) {
|
13858
13939
|
yield beforeDisposeRef.current(adapterRef.current);
|
@@ -13873,7 +13954,7 @@ beforeDispose) => {
|
|
13873
13954
|
*
|
13874
13955
|
* @public
|
13875
13956
|
*/
|
13876
|
-
const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$
|
13957
|
+
const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$e(void 0, void 0, void 0, function* () {
|
13877
13958
|
return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
|
13878
13959
|
});
|
13879
13960
|
const isChatError = (e) => {
|
@@ -14075,7 +14156,7 @@ const sendboxContainerStyles = {
|
|
14075
14156
|
|
14076
14157
|
// Copyright (c) Microsoft Corporation.
|
14077
14158
|
// Licensed under the MIT license.
|
14078
|
-
var __awaiter$
|
14159
|
+
var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
14079
14160
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
14080
14161
|
return new (P || (P = Promise))(function (resolve, reject) {
|
14081
14162
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -14096,7 +14177,7 @@ const AvatarPersona = (props) => {
|
|
14096
14177
|
const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
|
14097
14178
|
const [data, setData] = React.useState();
|
14098
14179
|
React.useEffect(() => {
|
14099
|
-
(() => __awaiter$
|
14180
|
+
(() => __awaiter$d(void 0, void 0, void 0, function* () {
|
14100
14181
|
if (dataProvider && userId) {
|
14101
14182
|
const newData = yield dataProvider(userId);
|
14102
14183
|
if (avatarDeepDifferenceCheck(data, newData)) {
|
@@ -14883,7 +14964,7 @@ const isDisabled$2 = (option) => {
|
|
14883
14964
|
|
14884
14965
|
// Copyright (c) Microsoft Corporation.
|
14885
14966
|
// Licensed under the MIT license.
|
14886
|
-
var __awaiter$
|
14967
|
+
var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
14887
14968
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
14888
14969
|
return new (P || (P = Promise))(function (resolve, reject) {
|
14889
14970
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -14902,72 +14983,72 @@ _component) => {
|
|
14902
14983
|
return createCompositeHandlers(useAdapter());
|
14903
14984
|
};
|
14904
14985
|
const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
14905
|
-
onCreateLocalStreamView: (options) => __awaiter$
|
14986
|
+
onCreateLocalStreamView: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14906
14987
|
return yield adapter.createStreamView(undefined, options);
|
14907
14988
|
}),
|
14908
|
-
onCreateRemoteStreamView: (userId, options) => __awaiter$
|
14989
|
+
onCreateRemoteStreamView: (userId, options) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14909
14990
|
return yield adapter.createStreamView(userId, options);
|
14910
14991
|
}),
|
14911
|
-
onHangUp: () => __awaiter$
|
14992
|
+
onHangUp: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14912
14993
|
yield adapter.leaveCall();
|
14913
14994
|
}),
|
14914
14995
|
/* @conditional-compile-remove(PSTN-calls) */
|
14915
|
-
onToggleHold: () => __awaiter$
|
14996
|
+
onToggleHold: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14916
14997
|
var _a;
|
14917
14998
|
return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
|
14918
14999
|
}),
|
14919
15000
|
/* @conditional-compile-remove(PSTN-calls) */
|
14920
|
-
onAddParticipant: (participant, options) => __awaiter$
|
15001
|
+
onAddParticipant: (participant, options) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14921
15002
|
return yield adapter.addParticipant(participant, options);
|
14922
15003
|
}),
|
14923
15004
|
/* @conditional-compile-remove(PSTN-calls) */
|
14924
|
-
onSendDtmfTone: (dtmfTone) => __awaiter$
|
15005
|
+
onSendDtmfTone: (dtmfTone) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14925
15006
|
yield adapter.sendDtmfTone(dtmfTone);
|
14926
15007
|
}),
|
14927
|
-
onRemoveParticipant: (userId) => __awaiter$
|
15008
|
+
onRemoveParticipant: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14928
15009
|
yield adapter.removeParticipant(userId);
|
14929
15010
|
}),
|
14930
|
-
onSelectCamera: (deviceInfo, options) => __awaiter$
|
15011
|
+
onSelectCamera: (deviceInfo, options) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14931
15012
|
yield adapter.setCamera(deviceInfo, options);
|
14932
15013
|
}),
|
14933
|
-
onSelectMicrophone: (deviceInfo) => __awaiter$
|
15014
|
+
onSelectMicrophone: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14934
15015
|
yield adapter.setMicrophone(deviceInfo);
|
14935
15016
|
}),
|
14936
|
-
onSelectSpeaker: (deviceInfo) => __awaiter$
|
15017
|
+
onSelectSpeaker: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14937
15018
|
yield adapter.setSpeaker(deviceInfo);
|
14938
15019
|
}),
|
14939
15020
|
onStartCall: (participants, options) => {
|
14940
15021
|
const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
|
14941
15022
|
return adapter.startCall(rawIds, options);
|
14942
15023
|
},
|
14943
|
-
onStartScreenShare: () => __awaiter$
|
15024
|
+
onStartScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14944
15025
|
yield adapter.startScreenShare();
|
14945
15026
|
}),
|
14946
|
-
onStopScreenShare: () => __awaiter$
|
15027
|
+
onStopScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14947
15028
|
yield adapter.stopScreenShare();
|
14948
15029
|
}),
|
14949
|
-
onToggleCamera: (options) => __awaiter$
|
15030
|
+
onToggleCamera: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14950
15031
|
isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
|
14951
15032
|
}),
|
14952
|
-
onToggleMicrophone: () => __awaiter$
|
15033
|
+
onToggleMicrophone: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14953
15034
|
var _b;
|
14954
15035
|
return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();
|
14955
15036
|
}),
|
14956
|
-
onToggleScreenShare: () => __awaiter$
|
15037
|
+
onToggleScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14957
15038
|
var _c;
|
14958
15039
|
return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn)
|
14959
15040
|
? yield adapter.stopScreenShare()
|
14960
15041
|
: yield adapter.startScreenShare();
|
14961
15042
|
}),
|
14962
|
-
onStartLocalVideo: () => __awaiter$
|
15043
|
+
onStartLocalVideo: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14963
15044
|
if (adapter.getState().call) {
|
14964
15045
|
return adapter.startCamera();
|
14965
15046
|
}
|
14966
15047
|
}),
|
14967
|
-
onDisposeLocalStreamView: () => __awaiter$
|
15048
|
+
onDisposeLocalStreamView: () => __awaiter$c(void 0, void 0, void 0, function* () {
|
14968
15049
|
return adapter.disposeStreamView();
|
14969
15050
|
}),
|
14970
|
-
onDisposeRemoteStreamView: (userId) => __awaiter$
|
15051
|
+
onDisposeRemoteStreamView: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
|
14971
15052
|
return adapter.disposeStreamView(userId);
|
14972
15053
|
})
|
14973
15054
|
}));
|
@@ -15131,13 +15212,21 @@ const Devices = (props) => {
|
|
15131
15212
|
const permissions = _usePermissions();
|
15132
15213
|
/* @conditional-compile-remove(rooms) */
|
15133
15214
|
const locale = useLocale();
|
15215
|
+
/* @conditional-compile-remove(rooms) */
|
15216
|
+
const onlyManageSpeakers = !permissions.microphoneButton && !permissions.cameraButton;
|
15217
|
+
/* @conditional-compile-remove(rooms) */
|
15218
|
+
const onRenderDevicesIcon = () => {
|
15219
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "OptionsSpeaker" });
|
15220
|
+
};
|
15134
15221
|
return (React__default['default'].createElement(DevicesButton
|
15135
15222
|
/* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
|
15136
15223
|
, Object.assign({
|
15137
15224
|
/* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
|
15138
15225
|
persistMenu: true }, devicesButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, "data-ui-id": "calling-composite-devices-button", disabled: props.disabled,
|
15139
15226
|
/* @conditional-compile-remove(rooms) */
|
15140
|
-
strings: getLabelFromPermissions(permissions, locale)
|
15227
|
+
strings: getLabelFromPermissions(permissions, locale),
|
15228
|
+
/* @conditional-compile-remove(rooms) */
|
15229
|
+
onRenderIcon: onlyManageSpeakers ? onRenderDevicesIcon : undefined })));
|
15141
15230
|
};
|
15142
15231
|
/* @conditional-compile-remove(rooms) */
|
15143
15232
|
const getLabelFromPermissions = (permissions, locale) => {
|
@@ -15441,9 +15530,9 @@ const CallControls = (props) => {
|
|
15441
15530
|
const localeStrings = useLocale();
|
15442
15531
|
/* @conditional-compile-remove(one-to-n-calling) */
|
15443
15532
|
const peopleButtonStrings = React.useMemo(() => ({
|
15444
|
-
label: localeStrings.strings.
|
15445
|
-
tooltipOffContent: localeStrings.strings.
|
15446
|
-
tooltipOnContent: localeStrings.strings.
|
15533
|
+
label: localeStrings.strings.call.peopleButtonLabel,
|
15534
|
+
tooltipOffContent: localeStrings.strings.call.peopleButtonTooltipOpen,
|
15535
|
+
tooltipOnContent: localeStrings.strings.call.peopleButtonTooltipClose
|
15447
15536
|
}), [localeStrings]);
|
15448
15537
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
15449
15538
|
const moreButtonStrings = React.useMemo(() => ({
|
@@ -15480,19 +15569,21 @@ const CallControls = (props) => {
|
|
15480
15569
|
['data-ui-id']: 'call-composite-more-menu-people-button'
|
15481
15570
|
});
|
15482
15571
|
}
|
15483
|
-
|
15484
|
-
|
15485
|
-
|
15486
|
-
|
15487
|
-
|
15488
|
-
|
15489
|
-
|
15490
|
-
|
15491
|
-
|
15492
|
-
|
15493
|
-
|
15494
|
-
|
15495
|
-
|
15572
|
+
if (!isRoomsCallTrampoline()) {
|
15573
|
+
items.push({
|
15574
|
+
key: 'holdButtonKey',
|
15575
|
+
text: localeStrings.component.strings.holdButton.tooltipOffContent,
|
15576
|
+
onClick: () => {
|
15577
|
+
holdButtonProps.onToggleHold();
|
15578
|
+
},
|
15579
|
+
iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },
|
15580
|
+
itemProps: {
|
15581
|
+
styles: buttonFlyoutIncreasedSizeStyles
|
15582
|
+
},
|
15583
|
+
disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.holdButton),
|
15584
|
+
['data-ui-id']: 'hold-button'
|
15585
|
+
});
|
15586
|
+
}
|
15496
15587
|
/* @conditional-compile-remove(PSTN-calls) */
|
15497
15588
|
// dtmf tone sending only works for 1:1 PSTN call
|
15498
15589
|
if (alternateCallerId) {
|
@@ -15549,11 +15640,18 @@ const CallControls = (props) => {
|
|
15549
15640
|
React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) })),
|
15550
15641
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) })),
|
15551
15642
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15552
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15643
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonContextualMenuItems().length > 0 && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15553
15644
|
customButtons['primary'],
|
15554
15645
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
15555
15646
|
};
|
15556
15647
|
const isEnabled$2 = (option) => option !== false;
|
15648
|
+
/** @private */
|
15649
|
+
const isRoomsCallTrampoline = () => {
|
15650
|
+
/* @conditional-compile-remove(rooms) */
|
15651
|
+
const rolePermissions = _usePermissions();
|
15652
|
+
/* @conditional-compile-remove(rooms) */
|
15653
|
+
return !!rolePermissions.role;
|
15654
|
+
};
|
15557
15655
|
|
15558
15656
|
// Copyright (c) Microsoft Corporation.
|
15559
15657
|
/**
|
@@ -15918,12 +16016,34 @@ const DRAG_OPTIONS = {
|
|
15918
16016
|
menu: react.ContextualMenu,
|
15919
16017
|
keepInBounds: true
|
15920
16018
|
};
|
15921
|
-
|
16019
|
+
/**
|
16020
|
+
* A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id
|
16021
|
+
* specified by `modalLayerHostId` prop
|
16022
|
+
* @private
|
16023
|
+
*/
|
16024
|
+
const ModalLocalAndRemotePIP = (props) => {
|
15922
16025
|
var _a;
|
15923
16026
|
const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;
|
16027
|
+
/* @conditional-compile-remove(rooms) */
|
16028
|
+
const rolePermissions = _usePermissions();
|
15924
16029
|
const pictureInPictureProps = useSelector$1(localAndRemotePIPSelector);
|
15925
16030
|
const pictureInPictureHandlers = useHandlers();
|
15926
|
-
const localAndRemotePIP = React.useMemo(() =>
|
16031
|
+
const localAndRemotePIP = React.useMemo(() => {
|
16032
|
+
var _a;
|
16033
|
+
/* @conditional-compile-remove(rooms) */
|
16034
|
+
if (!rolePermissions.cameraButton && ((_a = pictureInPictureProps.dominantRemoteParticipant) === null || _a === void 0 ? void 0 : _a.userId)) {
|
16035
|
+
return React__default['default'].createElement(_RemoteVideoTile, Object.assign({}, pictureInPictureProps.dominantRemoteParticipant));
|
16036
|
+
}
|
16037
|
+
return React__default['default'].createElement(LocalAndRemotePIP, Object.assign({}, pictureInPictureProps, pictureInPictureHandlers));
|
16038
|
+
}, [
|
16039
|
+
pictureInPictureProps,
|
16040
|
+
pictureInPictureHandlers,
|
16041
|
+
/* @conditional-compile-remove(rooms) */ rolePermissions.cameraButton
|
16042
|
+
]);
|
16043
|
+
/* @conditional-compile-remove(rooms) */
|
16044
|
+
if (!rolePermissions.cameraButton && !pictureInPictureProps.dominantRemoteParticipant) {
|
16045
|
+
return null;
|
16046
|
+
}
|
15927
16047
|
const modalStylesThemed = react.concatStyleSets(modalStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.modal);
|
15928
16048
|
return (React__default['default'].createElement(react.Stack, { styles: rootStyles },
|
15929
16049
|
React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS, styles: modalStylesThemed, layerProps: { hostId: props.modalLayerHostId }, minDragPosition: props.minDragPosition, maxDragPosition: props.maxDragPosition },
|
@@ -15931,15 +16051,6 @@ const _ModalLocalAndRemotePIP = (props) => {
|
|
15931
16051
|
// possession of the dominant remote participant video stream
|
15932
16052
|
!props.hidden && localAndRemotePIP)));
|
15933
16053
|
};
|
15934
|
-
/**
|
15935
|
-
* A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id
|
15936
|
-
* specified by `modalLayerHostId` prop
|
15937
|
-
* @private
|
15938
|
-
*/
|
15939
|
-
const ModalLocalAndRemotePIP = (props) => {
|
15940
|
-
return (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
15941
|
-
React__default['default'].createElement(_ModalLocalAndRemotePIP, Object.assign({}, props), props.children)));
|
15942
|
-
};
|
15943
16054
|
|
15944
16055
|
// Copyright (c) Microsoft Corporation.
|
15945
16056
|
/**
|
@@ -16239,8 +16350,8 @@ const AddPeopleDropdown = (props) => {
|
|
16239
16350
|
if (mobileView) {
|
16240
16351
|
return (React__default['default'].createElement(react.Stack, null,
|
16241
16352
|
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
16242
|
-
React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
16243
|
-
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" })),
|
16353
|
+
defaultMenuProps.items.length > 0 && (React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
16354
|
+
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }))),
|
16244
16355
|
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-add-people-dropdown" },
|
16245
16356
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
|
16246
16357
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
|
@@ -16248,8 +16359,8 @@ const AddPeopleDropdown = (props) => {
|
|
16248
16359
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
|
16249
16360
|
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
16250
16361
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
|
16251
|
-
React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
16252
|
-
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" })))));
|
16362
|
+
defaultMenuProps.items.length > 0 && (React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
16363
|
+
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" }))))));
|
16253
16364
|
};
|
16254
16365
|
function PeoplePaneOpenDialpadIconNameTrampoline() {
|
16255
16366
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -16279,7 +16390,7 @@ const AddPeopleButton = (props) => {
|
|
16279
16390
|
|
16280
16391
|
// Copyright (c) Microsoft Corporation.
|
16281
16392
|
// Licensed under the MIT license.
|
16282
|
-
var __awaiter$
|
16393
|
+
var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
16283
16394
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
16284
16395
|
return new (P || (P = Promise))(function (resolve, reject) {
|
16285
16396
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -16315,7 +16426,7 @@ const PeoplePaneContent = (props) => {
|
|
16315
16426
|
setDrawerMenuItems
|
16316
16427
|
]);
|
16317
16428
|
const participantListProps = React.useMemo(() => {
|
16318
|
-
const onRemoveAParticipant = (participantId) => __awaiter$
|
16429
|
+
const onRemoveAParticipant = (participantId) => __awaiter$b(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
|
16319
16430
|
return Object.assign(Object.assign({}, participantListDefaultProps), {
|
16320
16431
|
// Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
|
16321
16432
|
onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
|
@@ -16513,7 +16624,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
|
16513
16624
|
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
16514
16625
|
};
|
16515
16626
|
|
16516
|
-
var __awaiter$
|
16627
|
+
var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
16517
16628
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
16518
16629
|
return new (P || (P = Promise))(function (resolve, reject) {
|
16519
16630
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -16543,11 +16654,11 @@ const CallPane = (props) => {
|
|
16543
16654
|
/**
|
16544
16655
|
* In a Call Composite when a participant is removed, we must remove them from the call.
|
16545
16656
|
*/
|
16546
|
-
const removeParticipantFromCall = (participantId) => __awaiter$
|
16657
|
+
const removeParticipantFromCall = (participantId) => __awaiter$a(void 0, void 0, void 0, function* () {
|
16547
16658
|
yield props.callAdapter.removeParticipant(participantId);
|
16548
16659
|
});
|
16549
16660
|
/* @conditional-compile-remove(PSTN-calls) */
|
16550
|
-
const addParticipantToCall = (participant, options) => __awaiter$
|
16661
|
+
const addParticipantToCall = (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
|
16551
16662
|
yield props.callAdapter.addParticipant(participant, options);
|
16552
16663
|
});
|
16553
16664
|
const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
|
@@ -16567,7 +16678,8 @@ const CallPane = (props) => {
|
|
16567
16678
|
onAddParticipant: addParticipantToCall, setDrawerMenuItems: setDrawerMenuItems, strings: strings,
|
16568
16679
|
/* @conditional-compile-remove(PSTN-calls) */
|
16569
16680
|
alternateCallerId: alternateCallerId }))))))),
|
16570
|
-
props.mobileView && (React__default['default'].createElement(
|
16681
|
+
props.mobileView && (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
16682
|
+
React__default['default'].createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !props.activePane, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition }))),
|
16571
16683
|
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
|
16572
16684
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
16573
16685
|
};
|
@@ -17047,6 +17159,75 @@ const optionIconStyles = react.mergeStyles({
|
|
17047
17159
|
verticalAlign: 'text-top'
|
17048
17160
|
});
|
17049
17161
|
|
17162
|
+
var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
17163
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
17164
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
17165
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
17166
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
17167
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
17168
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
17169
|
+
});
|
17170
|
+
};
|
17171
|
+
/**
|
17172
|
+
* @private
|
17173
|
+
*/
|
17174
|
+
const ConfigurationpageCameraDropdown = (props) => {
|
17175
|
+
/* @conditional-compile-remove(call-readiness) */
|
17176
|
+
const theme = useTheme();
|
17177
|
+
/* @conditional-compile-remove(call-readiness) */
|
17178
|
+
const adapter = useAdapter();
|
17179
|
+
/* @conditional-compile-remove(call-readiness) */
|
17180
|
+
const devicePermissionDropdownStringsCamera = {
|
17181
|
+
placeHolderText: 'Enable Camera (optional)',
|
17182
|
+
actionButtonContent: 'Allow'
|
17183
|
+
};
|
17184
|
+
/* @conditional-compile-remove(call-readiness) */
|
17185
|
+
const cameraBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, { styles: dropDownStyles(theme), onClickActionButton: () => __awaiter$9(void 0, void 0, void 0, function* () {
|
17186
|
+
yield adapter.askDevicePermission({ video: true, audio: false });
|
17187
|
+
if (props.cameraPermissionGranted) {
|
17188
|
+
adapter.queryCameras();
|
17189
|
+
}
|
17190
|
+
}), strings: devicePermissionDropdownStringsCamera, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonCameraOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }));
|
17191
|
+
/* @conditional-compile-remove(call-readiness) */
|
17192
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null, props.cameraPermissionGranted ? props.cameraGrantedDropdown : cameraBlockedDropdown);
|
17193
|
+
};
|
17194
|
+
|
17195
|
+
var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
17196
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
17197
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
17198
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
17199
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
17200
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
17201
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
17202
|
+
});
|
17203
|
+
};
|
17204
|
+
/**
|
17205
|
+
* @private
|
17206
|
+
*/
|
17207
|
+
const ConfigurationpageMicDropdown = (props) => {
|
17208
|
+
/* @conditional-compile-remove(call-readiness) */
|
17209
|
+
const theme = useTheme();
|
17210
|
+
/* @conditional-compile-remove(call-readiness) */
|
17211
|
+
const adapter = useAdapter();
|
17212
|
+
/* @conditional-compile-remove(call-readiness) */
|
17213
|
+
const devicePermissionDropdownStringsMicrophone = {
|
17214
|
+
placeHolderText: 'Enable Microphone (required)',
|
17215
|
+
actionButtonContent: 'Allow'
|
17216
|
+
};
|
17217
|
+
/* @conditional-compile-remove(call-readiness) */
|
17218
|
+
const microphoneBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, { styles: dropDownStyles(theme), onClickActionButton: () => __awaiter$8(void 0, void 0, void 0, function* () {
|
17219
|
+
yield adapter.askDevicePermission({ video: false, audio: true });
|
17220
|
+
if (props.micPermissionGranted) {
|
17221
|
+
adapter.queryMicrophones();
|
17222
|
+
adapter.querySpeakers();
|
17223
|
+
}
|
17224
|
+
}), strings: devicePermissionDropdownStringsMicrophone, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonMicOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }));
|
17225
|
+
/* @conditional-compile-remove(call-readiness) */
|
17226
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null,
|
17227
|
+
" ",
|
17228
|
+
props.micPermissionGranted ? props.micGrantedDropdown : microphoneBlockedDropdown);
|
17229
|
+
};
|
17230
|
+
|
17050
17231
|
// Copyright (c) Microsoft Corporation.
|
17051
17232
|
const getDropDownList = (list) => {
|
17052
17233
|
// Remove duplicates
|
@@ -17094,46 +17275,62 @@ const LocalDeviceSettings = (props) => {
|
|
17094
17275
|
var _a;
|
17095
17276
|
const theme = useTheme();
|
17096
17277
|
const locale = useLocale();
|
17278
|
+
/* @conditional-compile-remove(call-readiness) */
|
17279
|
+
const adapter = useAdapter();
|
17097
17280
|
const defaultPlaceHolder = locale.strings.call.defaultPlaceHolder;
|
17098
17281
|
const cameraLabel = locale.strings.call.cameraLabel;
|
17099
17282
|
const soundLabel = locale.strings.call.soundLabel;
|
17100
|
-
|
17101
|
-
|
17283
|
+
const cameraPermissionGranted = props.cameraPermissionGranted;
|
17284
|
+
const micPermissionGranted = props.microphonePermissionGranted;
|
17285
|
+
let roleCanUseCamera = true;
|
17286
|
+
let roleCanUseMic = true;
|
17102
17287
|
/* @conditional-compile-remove(rooms) */
|
17103
|
-
const
|
17288
|
+
const rolePermissions = _usePermissions();
|
17104
17289
|
/* @conditional-compile-remove(rooms) */
|
17105
|
-
|
17290
|
+
roleCanUseCamera = rolePermissions.cameraButton;
|
17106
17291
|
/* @conditional-compile-remove(rooms) */
|
17107
|
-
|
17292
|
+
roleCanUseMic = rolePermissions.microphoneButton;
|
17108
17293
|
// TODO: speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
|
17109
17294
|
// actually granting access to query both microphone and speaker. However the browser popup asks you explicity for
|
17110
17295
|
// 'microphone'. This needs investigation on how we want to handle this and maybe needs follow up with SDK team.
|
17296
|
+
/* @conditional-compile-remove(call-readiness) */
|
17297
|
+
React.useEffect(() => {
|
17298
|
+
if (cameraPermissionGranted) {
|
17299
|
+
adapter.queryCameras();
|
17300
|
+
}
|
17301
|
+
if (micPermissionGranted) {
|
17302
|
+
adapter.queryMicrophones();
|
17303
|
+
}
|
17304
|
+
adapter.querySpeakers();
|
17305
|
+
}, [adapter, cameraPermissionGranted, micPermissionGranted]);
|
17306
|
+
const cameraGrantedDropdown = (React__default['default'].createElement(react.Dropdown, { "data-ui-id": "call-composite-local-camera-settings", "aria-labelledby": 'call-composite-local-camera-settings-label', placeholder: defaultPlaceHolder, options: cameraPermissionGranted ? getDropDownList(props.cameras) : [{ key: 'deniedOrUnknown', text: '' }], styles: dropDownStyles(theme), disabled: !cameraPermissionGranted, errorMessage: props.cameraPermissionGranted === undefined || props.cameraPermissionGranted
|
17307
|
+
? undefined
|
17308
|
+
: locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted
|
17309
|
+
? props.selectedCamera
|
17310
|
+
? props.selectedCamera.id
|
17311
|
+
: props.cameras
|
17312
|
+
? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
|
17313
|
+
: ''
|
17314
|
+
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17315
|
+
props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);
|
17316
|
+
}, onRenderTitle: (props) => onRenderTitle('Camera', props) }));
|
17317
|
+
const micGrantedDropdown = (React__default['default'].createElement(React__default['default'].Fragment, null, roleCanUseMic && (React__default['default'].createElement(react.Dropdown, { "aria-labelledby": 'call-composite-local-sound-settings-label', placeholder: defaultPlaceHolder, styles: dropDownStyles(theme), disabled: !micPermissionGranted, errorMessage: props.microphonePermissionGranted === undefined || props.microphonePermissionGranted
|
17318
|
+
? undefined
|
17319
|
+
: locale.strings.call.microphonePermissionDenied, options: micPermissionGranted ? getDropDownList(props.microphones) : [{ key: 'deniedOrUnknown', text: '' }], defaultSelectedKey: micPermissionGranted
|
17320
|
+
? props.selectedMicrophone
|
17321
|
+
? props.selectedMicrophone.id
|
17322
|
+
: defaultDeviceId(props.microphones)
|
17323
|
+
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17324
|
+
props.onSelectMicrophone(props.microphones[index !== null && index !== void 0 ? index : 0]);
|
17325
|
+
}, onRenderTitle: (props) => onRenderTitle('Microphone', props) }))));
|
17111
17326
|
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-device-settings", tokens: mainStackTokens },
|
17112
|
-
|
17113
|
-
React__default['default'].createElement(react.Label, { id: 'call-composite-local-camera-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !
|
17114
|
-
React__default['default'].createElement(
|
17115
|
-
? undefined
|
17116
|
-
: locale.strings.call.cameraPermissionDenied, defaultSelectedKey: isSelectMicEnabled
|
17117
|
-
? props.selectedCamera
|
17118
|
-
? props.selectedCamera.id
|
17119
|
-
: props.cameras
|
17120
|
-
? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
|
17121
|
-
: ''
|
17122
|
-
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17123
|
-
props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);
|
17124
|
-
}, onRenderTitle: (props) => onRenderTitle('Camera', props) }))),
|
17327
|
+
roleCanUseCamera && (React__default['default'].createElement(react.Stack, null,
|
17328
|
+
React__default['default'].createElement(react.Label, { id: 'call-composite-local-camera-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !cameraPermissionGranted }, cameraLabel),
|
17329
|
+
React__default['default'].createElement(ConfigurationpageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false }))),
|
17125
17330
|
React__default['default'].createElement(react.Stack, null,
|
17126
|
-
React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !
|
17331
|
+
React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !micPermissionGranted }, soundLabel),
|
17127
17332
|
React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-sound-settings", tokens: mainStackTokens },
|
17128
|
-
|
17129
|
-
? undefined
|
17130
|
-
: locale.strings.call.microphonePermissionDenied, options: isSelectMicEnabled ? getDropDownList(props.microphones) : [{ key: 'deniedOrUnknown', text: '' }], defaultSelectedKey: isSelectMicEnabled
|
17131
|
-
? props.selectedMicrophone
|
17132
|
-
? props.selectedMicrophone.id
|
17133
|
-
: defaultDeviceId(props.microphones)
|
17134
|
-
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17135
|
-
props.onSelectMicrophone(props.microphones[index !== null && index !== void 0 ? index : 0]);
|
17136
|
-
}, onRenderTitle: (props) => onRenderTitle('Microphone', props) })),
|
17333
|
+
React__default['default'].createElement(ConfigurationpageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false }),
|
17137
17334
|
React__default['default'].createElement(react.Dropdown, { "aria-labelledby": 'call-composite-local-sound-settings-label', placeholder: defaultPlaceHolder, styles: dropDownStyles(theme), disabled: props.speakers.length === 0, options: getDropDownList(props.speakers), defaultSelectedKey: props.selectedSpeaker ? props.selectedSpeaker.id : defaultDeviceId(props.speakers), onChange: (event, option, index) => {
|
17138
17335
|
props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);
|
17139
17336
|
}, onRenderTitle: (props) => onRenderTitle('Speaker', props) })))));
|
@@ -17389,8 +17586,8 @@ const startCallButtonStyleMobile = react.mergeStyles({
|
|
17389
17586
|
* @private
|
17390
17587
|
*/
|
17391
17588
|
const ConfigurationPage = (props) => {
|
17392
|
-
var _a;
|
17393
|
-
const { startCallHandler, mobileView } = props;
|
17589
|
+
var _a, _b;
|
17590
|
+
const { startCallHandler, mobileView, /* @conditional-compile-remove(call-readiness) */ devicePermissions } = props;
|
17394
17591
|
const options = useAdaptedSelector(getSelector$1(DevicesButton));
|
17395
17592
|
const localDeviceSettingsHandlers = useHandlers();
|
17396
17593
|
const { video: cameraPermissionGranted, audio: microphonePermissionGranted } = useSelector$1(devicePermissionSelector);
|
@@ -17406,6 +17603,17 @@ const ConfigurationPage = (props) => {
|
|
17406
17603
|
// because microphone device permission is not needed for the user's role
|
17407
17604
|
disableStartCallButton = false;
|
17408
17605
|
}
|
17606
|
+
/* @conditional-compile-remove(call-readiness) */
|
17607
|
+
// Overrides role permissions if CallCompositeOptions devicePermissions are set
|
17608
|
+
if (devicePermissions) {
|
17609
|
+
if (['doNotPrompt', 'optional'].includes(devicePermissions.camera) &&
|
17610
|
+
['doNotPrompt', 'optional'].includes(devicePermissions.microphone)) {
|
17611
|
+
disableStartCallButton = false;
|
17612
|
+
}
|
17613
|
+
else if (devicePermissions.camera === 'required') {
|
17614
|
+
disableStartCallButton = !cameraPermissionGranted || ((_b = deviceState.cameras) === null || _b === void 0 ? void 0 : _b.length) === 0;
|
17615
|
+
}
|
17616
|
+
}
|
17409
17617
|
const locale = useLocale();
|
17410
17618
|
const title = (React__default['default'].createElement(react.Stack.Item, { className: mobileView ? titleContainerStyleMobile : titleContainerStyleDesktop }, locale.strings.call.configurationPageTitle));
|
17411
17619
|
const callDescription = locale.strings.call.configurationPageCallDetails && (React__default['default'].createElement(react.Stack.Item, { className: mobileView ? callDetailsStyleMobile : callDetailsStyleDesktop }, locale.strings.call.configurationPageCallDetails));
|
@@ -17770,6 +17978,7 @@ var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
17770
17978
|
});
|
17771
17979
|
};
|
17772
17980
|
const MainScreen = (props) => {
|
17981
|
+
var _a;
|
17773
17982
|
const { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;
|
17774
17983
|
const page = useSelector$1(getPage);
|
17775
17984
|
const adapter = useAdapter();
|
@@ -17788,7 +17997,9 @@ const MainScreen = (props) => {
|
|
17788
17997
|
case 'configuration':
|
17789
17998
|
pageElement = (React__default['default'].createElement(ConfigurationPage, { mobileView: props.mobileView, startCallHandler: () => {
|
17790
17999
|
adapter.joinCall();
|
17791
|
-
}
|
18000
|
+
},
|
18001
|
+
/* @conditional-compile-remove(call-readiness) */
|
18002
|
+
devicePermissions: (_a = props.options) === null || _a === void 0 ? void 0 : _a.devicePermissions }));
|
17792
18003
|
break;
|
17793
18004
|
case 'accessDeniedTeamsMeeting':
|
17794
18005
|
pageElement = (React__default['default'].createElement(NoticePage, { iconName: "NoticePageAccessDeniedTeamsMeeting", title: locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedTitle, moreDetails: locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails, dataUiId: 'access-denied-teams-meeting-page' }));
|
@@ -17852,12 +18063,33 @@ const CallComposite = (props) => {
|
|
17852
18063
|
adapter.querySpeakers();
|
17853
18064
|
return;
|
17854
18065
|
}
|
18066
|
+
/* @conditional-compile-remove(call-readiness) */
|
18067
|
+
if (options === null || options === void 0 ? void 0 : options.devicePermissions) {
|
18068
|
+
const videoPermission = (options === null || options === void 0 ? void 0 : options.devicePermissions.camera) !== 'doNotPrompt';
|
18069
|
+
const audioPermission = (options === null || options === void 0 ? void 0 : options.devicePermissions.microphone) !== 'doNotPrompt';
|
18070
|
+
yield adapter.askDevicePermission({
|
18071
|
+
video: videoPermission,
|
18072
|
+
audio: audioPermission
|
18073
|
+
});
|
18074
|
+
if (videoPermission) {
|
18075
|
+
adapter.queryCameras();
|
18076
|
+
}
|
18077
|
+
if (audioPermission) {
|
18078
|
+
adapter.queryMicrophones();
|
18079
|
+
}
|
18080
|
+
adapter.querySpeakers();
|
18081
|
+
return;
|
18082
|
+
}
|
17855
18083
|
yield adapter.askDevicePermission({ video: true, audio: true });
|
17856
18084
|
adapter.queryCameras();
|
17857
18085
|
adapter.queryMicrophones();
|
17858
18086
|
adapter.querySpeakers();
|
17859
18087
|
}))();
|
17860
|
-
}, [
|
18088
|
+
}, [
|
18089
|
+
adapter,
|
18090
|
+
/* @conditional-compile-remove(rooms) */ role,
|
18091
|
+
/* @conditional-compile-remove(call-readiness) */ options === null || options === void 0 ? void 0 : options.devicePermissions
|
18092
|
+
]);
|
17861
18093
|
const mobileView = formFactor === 'mobile';
|
17862
18094
|
/* @conditional-compile-remove(one-to-n-calling) */
|
17863
18095
|
const modalLayerHostId = reactHooks.useId('modalLayerhost');
|
@@ -17877,7 +18109,9 @@ const CallComposite = (props) => {
|
|
17877
18109
|
// the Modal because the draggable bounds thinks it has no space and will always return to its initial position after dragging.
|
17878
18110
|
// Additionally, this layer host cannot be in the Call Arrangement as it needs to be rendered before useMinMaxDragPosition() in
|
17879
18111
|
// common/utils useRef is called.
|
17880
|
-
// Warning: this is fragile and works because the call arrangement page is only rendered after the call has connected and thus this
|
18112
|
+
// Warning: this is fragile and works because the call arrangement page is only rendered after the call has connected and thus this
|
18113
|
+
// LayerHost will be guaranteed to have rendered (and subsequently mounted in the DOM). This ensures the DOM element will be available
|
18114
|
+
// before the call to `document.getElementById(modalLayerHostId)` is made.
|
17881
18115
|
/* @conditional-compile-remove(one-to-n-calling) */
|
17882
18116
|
mobileView && React__default['default'].createElement(react.LayerHost, { id: modalLayerHostId, className: react.mergeStyles(modalLayerHostStyle) })))));
|
17883
18117
|
};
|
@@ -18014,7 +18248,7 @@ class CallContext {
|
|
18014
18248
|
this.emitter.off('callEnded', handler);
|
18015
18249
|
}
|
18016
18250
|
updateClientState(clientState) {
|
18017
|
-
var _a
|
18251
|
+
var _a;
|
18018
18252
|
const call = this.callId ? clientState.calls[this.callId] : undefined;
|
18019
18253
|
const latestEndedCall = findLatestEndedCall(clientState.callsEnded);
|
18020
18254
|
// As the state is transitioning to a new state, trigger appropriate callback events.
|
@@ -18022,13 +18256,11 @@ class CallContext {
|
|
18022
18256
|
const newPage = getCallCompositePage(call, latestEndedCall);
|
18023
18257
|
if (!IsCallEndedPage(oldPage) && IsCallEndedPage(newPage)) {
|
18024
18258
|
this.emitter.emit('callEnded', {
|
18025
|
-
callId: this.callId
|
18026
|
-
callEndedCode: (_a = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _a === void 0 ? void 0 : _a.code,
|
18027
|
-
callEndedSubCode: (_b = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _b === void 0 ? void 0 : _b.subCode
|
18259
|
+
callId: this.callId
|
18028
18260
|
});
|
18029
18261
|
}
|
18030
18262
|
if (this.state.page) {
|
18031
|
-
this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (
|
18263
|
+
this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (_a = clientState.callAgent) === null || _a === void 0 ? void 0 : _a.displayName, call, page: newPage, endedCall: latestEndedCall, devices: clientState.deviceManager, latestErrors: clientState.latestErrors }));
|
18032
18264
|
}
|
18033
18265
|
}
|
18034
18266
|
}
|
@@ -18343,10 +18575,10 @@ class AzureCommunicationCallAdapter {
|
|
18343
18575
|
const idsToAdd = participants.map((participant) => {
|
18344
18576
|
// FIXME: `onStartCall` does not allow a Teams user.
|
18345
18577
|
// Need some way to return an error if a Teams user is provided.
|
18346
|
-
const backendId =
|
18578
|
+
const backendId = _toCommunicationIdentifier(participant);
|
18347
18579
|
if (communicationCommon.isPhoneNumberIdentifier(backendId)) {
|
18348
18580
|
if ((options === null || options === void 0 ? void 0 : options.alternateCallerId) === undefined) {
|
18349
|
-
throw new Error('
|
18581
|
+
throw new Error('Unable to start call, PSTN user present with no alternateCallerId.');
|
18350
18582
|
}
|
18351
18583
|
return backendId;
|
18352
18584
|
}
|
@@ -18372,7 +18604,10 @@ class AzureCommunicationCallAdapter {
|
|
18372
18604
|
}
|
18373
18605
|
removeParticipant(userId) {
|
18374
18606
|
return __awaiter$4(this, void 0, void 0, function* () {
|
18375
|
-
|
18607
|
+
let participant = userId;
|
18608
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18609
|
+
participant = _toCommunicationIdentifier(userId);
|
18610
|
+
this.handlers.onRemoveParticipant(participant);
|
18376
18611
|
});
|
18377
18612
|
}
|
18378
18613
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -19155,7 +19390,10 @@ class CallWithChatBackedCallAdapter {
|
|
19155
19390
|
};
|
19156
19391
|
this.leaveCall = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.leaveCall(); });
|
19157
19392
|
this.startCall = (participants, options) => {
|
19158
|
-
|
19393
|
+
let communicationParticipants = participants;
|
19394
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19395
|
+
communicationParticipants = participants.map(_toCommunicationIdentifier);
|
19396
|
+
return this.callWithChatAdapter.startCall(communicationParticipants, options);
|
19159
19397
|
};
|
19160
19398
|
this.setCamera = (sourceId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setCamera(sourceId, options); });
|
19161
19399
|
this.setMicrophone = (sourceId) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setMicrophone(sourceId); });
|
@@ -19170,7 +19408,12 @@ class CallWithChatBackedCallAdapter {
|
|
19170
19408
|
this.unmute = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.unmute(); });
|
19171
19409
|
this.startScreenShare = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.startScreenShare(); });
|
19172
19410
|
this.stopScreenShare = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.stopScreenShare(); });
|
19173
|
-
this.removeParticipant = (userId) => __awaiter$3(this, void 0, void 0, function* () {
|
19411
|
+
this.removeParticipant = (userId) => __awaiter$3(this, void 0, void 0, function* () {
|
19412
|
+
let participant = userId;
|
19413
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19414
|
+
participant = _toCommunicationIdentifier(userId);
|
19415
|
+
yield this.callWithChatAdapter.removeParticipant(participant);
|
19416
|
+
});
|
19174
19417
|
this.createStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.createStreamView(remoteUserId, options); });
|
19175
19418
|
this.disposeStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.disposeStreamView(remoteUserId, options); });
|
19176
19419
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -19564,7 +19807,8 @@ const CallWithChatPane = (props) => {
|
|
19564
19807
|
React__default['default'].createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
|
19565
19808
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'chat' ? availableSpaceStyles : hiddenStyles }, chatContent),
|
19566
19809
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'people' ? availableSpaceStyles : hiddenStyles }, peopleContent)))),
|
19567
|
-
props.mobileView && (React__default['default'].createElement(
|
19810
|
+
props.mobileView && (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
19811
|
+
React__default['default'].createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: hidden, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition }))),
|
19568
19812
|
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
19569
19813
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
19570
19814
|
};
|
@@ -19692,7 +19936,11 @@ const CallWithChatScreen = (props) => {
|
|
19692
19936
|
React__default['default'].createElement(react.Stack.Item, { grow: true, styles: callCompositeContainerStyles,
|
19693
19937
|
// Perf: Instead of removing the video gallery from DOM, we hide it to prevent re-renders.
|
19694
19938
|
style: callCompositeContainerCSS },
|
19695
|
-
React__default['default'].createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: {
|
19939
|
+
React__default['default'].createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: {
|
19940
|
+
callControls: false,
|
19941
|
+
/* @conditional-compile-remove(call-readiness) */
|
19942
|
+
devicePermissions: props.devicePermissions
|
19943
|
+
}, adapter: callAdapter, fluentTheme: fluentTheme }))),
|
19696
19944
|
chatProps.adapter && callAdapter && hasJoinedCall && (React__default['default'].createElement(CallWithChatPane, { chatCompositeProps: chatProps, inviteLink: props.joinInvitationURL, onClose: closePane, chatAdapter: chatProps.adapter, callAdapter: callAdapter, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, onChatButtonClicked: showShowChatTabHeaderButton(props.callControls) ? selectChat : undefined, onPeopleButtonClicked: showShowPeopleTabHeaderButton(props.callControls) ? selectPeople : undefined, modalLayerHostId: modalLayerHostId, mobileView: mobileView, activePane: activePane,
|
19697
19945
|
/* @conditional-compile-remove(file-sharing) */
|
19698
19946
|
fileSharing: props.fileSharing, rtl: props.rtl, callControls: typeof props.callControls !== 'boolean' ? props.callControls : undefined }))),
|
@@ -19729,7 +19977,9 @@ const CallWithChatScreen = (props) => {
|
|
19729
19977
|
const CallWithChatComposite = (props) => {
|
19730
19978
|
const { adapter, fluentTheme, rtl, formFactor, joinInvitationURL, options } = props;
|
19731
19979
|
return (React__default['default'].createElement(BaseProvider, { fluentTheme: fluentTheme, rtl: rtl, locale: props.locale, icons: props.icons },
|
19732
|
-
React__default['default'].createElement(CallWithChatScreen, Object.assign({}, props, {
|
19980
|
+
React__default['default'].createElement(CallWithChatScreen, Object.assign({}, props, {
|
19981
|
+
/* @conditional-compile-remove(call-readiness) */
|
19982
|
+
devicePermissions: options === null || options === void 0 ? void 0 : options.devicePermissions, callWithChatAdapter: adapter, formFactor: formFactor, callControls: options === null || options === void 0 ? void 0 : options.callControls, joinInvitationURL: joinInvitationURL, fluentTheme: fluentTheme,
|
19733
19983
|
/* @conditional-compile-remove(file-sharing) */
|
19734
19984
|
fileSharing: options === null || options === void 0 ? void 0 : options.fileSharing }))));
|
19735
19985
|
};
|
@@ -19976,7 +20226,10 @@ class AzureCommunicationCallWithChatAdapter {
|
|
19976
20226
|
}
|
19977
20227
|
/** Start a new Call. */
|
19978
20228
|
startCall(participants, options) {
|
19979
|
-
|
20229
|
+
let communicationParticipants = participants;
|
20230
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
20231
|
+
communicationParticipants = participants.map(_toCommunicationIdentifier);
|
20232
|
+
return this.callAdapter.startCall(communicationParticipants, options);
|
19980
20233
|
}
|
19981
20234
|
/**
|
19982
20235
|
* Subscribe to state change events.
|
@@ -20006,8 +20259,10 @@ class AzureCommunicationCallWithChatAdapter {
|
|
20006
20259
|
/** Remove a participant from the Call only. */
|
20007
20260
|
removeParticipant(userId) {
|
20008
20261
|
return __awaiter(this, void 0, void 0, function* () {
|
20009
|
-
|
20010
|
-
|
20262
|
+
let participant = userId;
|
20263
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
20264
|
+
participant = _toCommunicationIdentifier(userId);
|
20265
|
+
yield this.callAdapter.removeParticipant(participant);
|
20011
20266
|
});
|
20012
20267
|
}
|
20013
20268
|
setCamera(device, options) {
|
@@ -20575,6 +20830,7 @@ exports.TypingIndicator = TypingIndicator;
|
|
20575
20830
|
exports.UnsupportedBrowser = UnsupportedBrowser;
|
20576
20831
|
exports.VideoGallery = VideoGallery;
|
20577
20832
|
exports.VideoTile = VideoTile;
|
20833
|
+
exports._DevicePermissionDropdown = _DevicePermissionDropdown;
|
20578
20834
|
exports._IdentifierProvider = _IdentifierProvider;
|
20579
20835
|
exports.createAzureCommunicationCallAdapter = createAzureCommunicationCallAdapter;
|
20580
20836
|
exports.createAzureCommunicationCallAdapterFromClient = createAzureCommunicationCallAdapterFromClient;
|