@azure/communication-react 1.20.0-alpha-202410040016 → 1.20.0-alpha-202410080015
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 +4 -0
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BkiCWROx.js → ChatMessageComponentAsRichTextEditBox-BwIa2hTH.js} +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BkiCWROx.js.map → ChatMessageComponentAsRichTextEditBox-BwIa2hTH.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BQc7785_.js → RichTextSendBoxWrapper-CMAkkxJl.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BQc7785_.js.map → RichTextSendBoxWrapper-CMAkkxJl.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-Cs1eMyS2.js → index-Bj4O6YVq.js} +461 -380
- package/dist/dist-cjs/communication-react/index-Bj4O6YVq.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/dataConversion.js +5 -1
- package/dist/dist-esm/acs-ui-common/src/dataConversion.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/acs-ui-javascript-loaders/src/callCompositeLoader.js +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js.map +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js.map +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js.map +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js +1 -1
- package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +3 -3
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js +2 -1
- package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +2 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js +2 -2
- package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +34 -12
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +49 -43
- package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +1 -1
- package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/generateTheme.js +10 -2
- package/dist/dist-esm/react-components/src/theming/generateTheme.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +13 -9
- 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 +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +15 -14
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +0 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +28 -21
- 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/LocalDeviceSettings.js +11 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +7 -8
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +7 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +5 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +7 -6
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +6 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +5 -5
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +3 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +15 -10
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js +7 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +20 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +19 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +33 -36
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +11 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +16 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +4 -5
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +3 -0
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +4 -7
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +9 -4
- package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
- package/package.json +5 -5
- package/dist/dist-cjs/communication-react/index-Cs1eMyS2.js.map +0 -1
@@ -188,7 +188,7 @@ function getDefaultExportFromCjs (x) {
|
|
188
188
|
// Copyright (c) Microsoft Corporation.
|
189
189
|
// Licensed under the MIT License.
|
190
190
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
191
|
-
var telemetryVersion = '1.20.0-alpha-
|
191
|
+
var telemetryVersion = '1.20.0-alpha-202410080015';
|
192
192
|
|
193
193
|
|
194
194
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -372,7 +372,11 @@ function _getKeys(obj) {
|
|
372
372
|
* @internal
|
373
373
|
*/
|
374
374
|
const _base64ToBlob = (dataURI) => {
|
375
|
-
const
|
375
|
+
const str = dataURI.split(',')[1];
|
376
|
+
if (!str) {
|
377
|
+
throw new Error('Invalid base64 string');
|
378
|
+
}
|
379
|
+
const byteString = atob(str);
|
376
380
|
const arrayBuffer = new ArrayBuffer(byteString.length);
|
377
381
|
const uint8Array = new Uint8Array(arrayBuffer);
|
378
382
|
for (let i = 0; i < byteString.length; i++) {
|
@@ -537,7 +541,7 @@ const getCallState = (state, props) => { var _a; return (_a = state.calls[props.
|
|
537
541
|
/**
|
538
542
|
* @private
|
539
543
|
*/
|
540
|
-
const getEnvironmentInfo = (state) => {
|
544
|
+
const getEnvironmentInfo$1 = (state) => {
|
541
545
|
/* @conditional-compile-remove(unsupported-browser) */
|
542
546
|
return state.environmentInfo;
|
543
547
|
};
|
@@ -641,9 +645,10 @@ const _isInLobbyOrConnecting = (callStatus) => !!callStatus && ['Connecting', 'R
|
|
641
645
|
* @internal
|
642
646
|
*/
|
643
647
|
const _isPreviewOn = (deviceManager) => {
|
648
|
+
var _a;
|
644
649
|
// TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also
|
645
650
|
// handle cases where 'Preview' view is in progress and not necessary completed.
|
646
|
-
return deviceManager.unparentedViews
|
651
|
+
return ((_a = deviceManager.unparentedViews[0]) === null || _a === void 0 ? void 0 : _a.view) !== undefined;
|
647
652
|
};
|
648
653
|
/**
|
649
654
|
* Dispose of all preview views
|
@@ -812,7 +817,7 @@ const screenShareButtonSelector = reselect__namespace.createSelector([getIsScree
|
|
812
817
|
((capabilities === null || capabilities === void 0 ? void 0 : capabilities.shareScreen.isPresent) === false && (capabilities === null || capabilities === void 0 ? void 0 : capabilities.shareScreen.reason) !== 'NotInitialized') ||
|
813
818
|
role === 'Consumer' ||
|
814
819
|
role === 'Attendee';
|
815
|
-
disabled = disabled || ['InLobby', 'Connecting', 'LocalHold'].includes(callState);
|
820
|
+
disabled = disabled || ['InLobby', 'Connecting', 'LocalHold'].includes(callState !== null && callState !== void 0 ? callState : 'None');
|
816
821
|
return {
|
817
822
|
checked: isScreenSharingOn,
|
818
823
|
disabled
|
@@ -1525,7 +1530,7 @@ const notificationStackSelector = reselect.createSelector([
|
|
1525
1530
|
/* @conditional-compile-remove(breakout-rooms) */ getLatestNotifications,
|
1526
1531
|
getDiagnostics,
|
1527
1532
|
getDeviceManager$1,
|
1528
|
-
getEnvironmentInfo,
|
1533
|
+
getEnvironmentInfo$1,
|
1529
1534
|
getMeetingConferencePhones,
|
1530
1535
|
/* @conditional-compile-remove(breakout-rooms) */ getAssignedBreakoutRoom$1
|
1531
1536
|
], (latestErrors,
|
@@ -1841,22 +1846,24 @@ class ProxyDeviceManager {
|
|
1841
1846
|
this._deviceManager.on('selectedMicrophoneChanged', this.selectedMicrophoneChanged);
|
1842
1847
|
this._deviceManager.on('selectedSpeakerChanged', this.selectedSpeakerChanged);
|
1843
1848
|
// Subscribe to browser camera permissions changes
|
1844
|
-
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1849
|
+
if (navigator.permissions) {
|
1850
|
+
try {
|
1851
|
+
navigator.permissions.query({ name: 'camera' }).then((cameraPermissions) => {
|
1852
|
+
cameraPermissions.addEventListener('change', this.permissionsApiStateChangeHandler);
|
1853
|
+
});
|
1854
|
+
}
|
1855
|
+
catch (e) {
|
1856
|
+
console.info('Could not subscribe to Permissions API Camera changed events, API is not supported by browser', e);
|
1857
|
+
}
|
1858
|
+
// Subscribe to browser microphone permissions changes
|
1859
|
+
try {
|
1860
|
+
navigator.permissions.query({ name: 'microphone' }).then((micPermissions) => {
|
1861
|
+
micPermissions.addEventListener('change', this.permissionsApiStateChangeHandler);
|
1862
|
+
});
|
1863
|
+
}
|
1864
|
+
catch (e) {
|
1865
|
+
console.info('Could not subscribe to Permissions API Microphone changed events, API is not supported by browser', e);
|
1866
|
+
}
|
1860
1867
|
}
|
1861
1868
|
};
|
1862
1869
|
/**
|
@@ -1867,23 +1874,25 @@ class ProxyDeviceManager {
|
|
1867
1874
|
this._deviceManager.off('audioDevicesUpdated', this.audioDevicesUpdated);
|
1868
1875
|
this._deviceManager.off('selectedMicrophoneChanged', this.selectedMicrophoneChanged);
|
1869
1876
|
this._deviceManager.off('selectedSpeakerChanged', this.selectedSpeakerChanged);
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1877
|
+
if (navigator.permissions) {
|
1878
|
+
// Unsubscribe from browser camera permissions changes
|
1879
|
+
try {
|
1880
|
+
navigator.permissions.query({ name: 'camera' }).then((cameraPermissions) => {
|
1881
|
+
cameraPermissions.removeEventListener('change', this.permissionsApiStateChangeHandler);
|
1882
|
+
});
|
1883
|
+
}
|
1884
|
+
catch (e) {
|
1885
|
+
console.info('Could not Unsubscribe to Permissions API Camera changed events, API is not supported by browser', e);
|
1886
|
+
}
|
1887
|
+
// Unsubscribe from browser microphone permissions changes
|
1888
|
+
try {
|
1889
|
+
navigator.permissions.query({ name: 'microphone' }).then((micPermissions) => {
|
1890
|
+
micPermissions.removeEventListener('change', this.permissionsApiStateChangeHandler);
|
1891
|
+
});
|
1892
|
+
}
|
1893
|
+
catch (e) {
|
1894
|
+
console.info('Could not Unsubscribe to Permissions API Camera changed events, API is not supported by browser', e);
|
1895
|
+
}
|
1887
1896
|
}
|
1888
1897
|
};
|
1889
1898
|
this.permissionsApiStateChangeHandler = () => __awaiter$X(this, void 0, void 0, function* () {
|
@@ -1924,16 +1933,18 @@ class ProxyDeviceManager {
|
|
1924
1933
|
// information about the device permission state, but is not supported yet in Firefox or Android WebView.
|
1925
1934
|
// Note: It also has the limitation where it cannot detect if the device is blocked by the Operating System
|
1926
1935
|
// permissions.
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
|
1933
|
-
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1936
|
+
if (navigator.permissions) {
|
1937
|
+
try {
|
1938
|
+
const [cameraPermissions, micPermissions] = yield Promise.all([
|
1939
|
+
navigator.permissions.query({ name: 'camera' }),
|
1940
|
+
navigator.permissions.query({ name: 'microphone' })
|
1941
|
+
]);
|
1942
|
+
hasCameraPermission = cameraPermissions.state === 'granted';
|
1943
|
+
hasMicPermission = micPermissions.state === 'granted';
|
1944
|
+
}
|
1945
|
+
catch (e) {
|
1946
|
+
console.info('Permissions API is not supported by browser', e);
|
1947
|
+
}
|
1937
1948
|
}
|
1938
1949
|
this._context.setDeviceManagerDeviceAccess({
|
1939
1950
|
video: hasCameraPermission,
|
@@ -2542,7 +2553,10 @@ let CallContext$2 = class CallContext {
|
|
2542
2553
|
// Performance note: This loop should run only once because the number of entries
|
2543
2554
|
// is never allowed to exceed MAX_CALL_HISTORY_LENGTH. A loop is used for correctness.
|
2544
2555
|
while (Object.keys(draft.callsEnded).length >= MAX_CALL_HISTORY_LENGTH) {
|
2545
|
-
|
2556
|
+
const oldestCall = findOldestCallEnded(draft.callsEnded);
|
2557
|
+
if (oldestCall) {
|
2558
|
+
delete draft.callsEnded[oldestCall];
|
2559
|
+
}
|
2546
2560
|
}
|
2547
2561
|
draft.callsEnded[latestCallId] = call;
|
2548
2562
|
}
|
@@ -2804,6 +2818,12 @@ let CallContext$2 = class CallContext {
|
|
2804
2818
|
if (participantKey === toFlatCommunicationIdentifier(this._state.userId)) {
|
2805
2819
|
call.localParticipantReaction = newReactionState;
|
2806
2820
|
}
|
2821
|
+
else if (!participant) {
|
2822
|
+
// Warn if we can't find the participant in the call but we are trying to set their reaction state to a new reaction.
|
2823
|
+
if (reactionMessage !== null) {
|
2824
|
+
console.warn(`Participant ${participantKey} not found in call ${callId}. Cannot set reaction state.`);
|
2825
|
+
}
|
2826
|
+
}
|
2807
2827
|
else {
|
2808
2828
|
participant.reactionState = newReactionState;
|
2809
2829
|
}
|
@@ -2841,7 +2861,7 @@ let CallContext$2 = class CallContext {
|
|
2841
2861
|
viewAttendeeNames.reason === 'MeetingRestricted') {
|
2842
2862
|
call.hideAttendeeNames = true;
|
2843
2863
|
}
|
2844
|
-
else {
|
2864
|
+
else if (call) {
|
2845
2865
|
call.hideAttendeeNames = false;
|
2846
2866
|
}
|
2847
2867
|
}
|
@@ -3156,7 +3176,10 @@ let CallContext$2 = class CallContext {
|
|
3156
3176
|
// Performance note: This loop should run only once because the number of entries
|
3157
3177
|
// is never allowed to exceed MAX_CALL_HISTORY_LENGTH. A loop is used for correctness.
|
3158
3178
|
while (Object.keys(draft.incomingCallsEnded).length >= MAX_CALL_HISTORY_LENGTH) {
|
3159
|
-
|
3179
|
+
const oldestCall = findOldestCallEnded(draft.incomingCallsEnded);
|
3180
|
+
if (oldestCall) {
|
3181
|
+
delete draft.incomingCallsEnded[oldestCall];
|
3182
|
+
}
|
3160
3183
|
}
|
3161
3184
|
draft.incomingCallsEnded[callId] = call;
|
3162
3185
|
}
|
@@ -3229,9 +3252,9 @@ let CallContext$2 = class CallContext {
|
|
3229
3252
|
}
|
3230
3253
|
setDeviceManagerUnparentedViewVideoEffects(localVideoStream, videoEffects) {
|
3231
3254
|
this.modifyState((draft) => {
|
3232
|
-
const
|
3233
|
-
if (
|
3234
|
-
|
3255
|
+
const view = draft.deviceManager.unparentedViews.find((stream) => stream.mediaStreamType === localVideoStream.mediaStreamType);
|
3256
|
+
if (view) {
|
3257
|
+
view.videoEffects = videoEffects;
|
3235
3258
|
}
|
3236
3259
|
});
|
3237
3260
|
}
|
@@ -3241,6 +3264,7 @@ let CallContext$2 = class CallContext {
|
|
3241
3264
|
return id;
|
3242
3265
|
}
|
3243
3266
|
processNewCaption(captions, newCaption) {
|
3267
|
+
var _a;
|
3244
3268
|
// time stamp when new caption comes in
|
3245
3269
|
newCaption.timestamp = new Date();
|
3246
3270
|
// if this is the first caption, push it in
|
@@ -3248,19 +3272,24 @@ let CallContext$2 = class CallContext {
|
|
3248
3272
|
captions.push(newCaption);
|
3249
3273
|
}
|
3250
3274
|
// if the last caption is final, then push the new one in
|
3251
|
-
else if (captions[captions.length - 1].resultType === 'Final') {
|
3275
|
+
else if (((_a = captions[captions.length - 1]) === null || _a === void 0 ? void 0 : _a.resultType) === 'Final') {
|
3252
3276
|
captions.push(newCaption);
|
3253
3277
|
}
|
3254
3278
|
// if the last caption is Partial, then check if the speaker is the same as the new caption, if so, update the last caption
|
3255
3279
|
else {
|
3256
|
-
|
3280
|
+
const lastCaption = captions[captions.length - 1];
|
3281
|
+
if (lastCaption &&
|
3282
|
+
lastCaption.speaker.identifier &&
|
3283
|
+
newCaption.speaker.identifier &&
|
3284
|
+
toFlatCommunicationIdentifier(lastCaption.speaker.identifier) ===
|
3285
|
+
toFlatCommunicationIdentifier(newCaption.speaker.identifier)) {
|
3257
3286
|
captions[captions.length - 1] = newCaption;
|
3258
3287
|
}
|
3259
3288
|
// if different speaker, ignore the interjector until the current speaker finishes
|
3260
3289
|
// edge case: if we dont receive the final caption from the current speaker for 5 secs, we turn the current speaker caption to final and push in the new interjector
|
3261
|
-
else {
|
3262
|
-
if (Date.now() -
|
3263
|
-
|
3290
|
+
else if (lastCaption) {
|
3291
|
+
if (Date.now() - lastCaption.timestamp.getTime() > 5000) {
|
3292
|
+
lastCaption.resultType = 'Final';
|
3264
3293
|
captions.push(newCaption);
|
3265
3294
|
}
|
3266
3295
|
}
|
@@ -3443,7 +3472,11 @@ const toCallError = (target, error) => {
|
|
3443
3472
|
const findOldestCallEnded = (calls) => {
|
3444
3473
|
var _a, _b, _c, _d;
|
3445
3474
|
const callEntries = Object.entries(calls);
|
3446
|
-
|
3475
|
+
const firstCallEntry = callEntries[0];
|
3476
|
+
if (!firstCallEntry) {
|
3477
|
+
return undefined; // no calls exist
|
3478
|
+
}
|
3479
|
+
let [oldestCallId, oldestCall] = firstCallEntry;
|
3447
3480
|
if (oldestCall.endTime === undefined) {
|
3448
3481
|
return oldestCallId;
|
3449
3482
|
}
|
@@ -4552,8 +4585,8 @@ class UserFacingDiagnosticsSubscriber {
|
|
4552
4585
|
for (const diagnostic of args.diagnostics) {
|
4553
4586
|
const { remoteParticipant: _, rawId } = diagnostic, participantDiagnostic = __rest(diagnostic, ["remoteParticipant", "rawId"]);
|
4554
4587
|
const participant = call.remoteParticipants[rawId];
|
4555
|
-
participant.diagnostics = participant.diagnostics || {};
|
4556
4588
|
if (participant) {
|
4589
|
+
participant.diagnostics = participant.diagnostics || {};
|
4557
4590
|
participant.diagnostics[participantDiagnostic.diagnostic] = participantDiagnostic;
|
4558
4591
|
}
|
4559
4592
|
}
|
@@ -4846,7 +4879,7 @@ class BreakoutRoomsSubscriber {
|
|
4846
4879
|
this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);
|
4847
4880
|
};
|
4848
4881
|
this.onBreakoutRoomsJoined = (call) => {
|
4849
|
-
var _a, _b;
|
4882
|
+
var _a, _b, _c;
|
4850
4883
|
this._context.setBreakoutRoomOriginCallId(this._callIdRef.callId, call.id);
|
4851
4884
|
this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpened');
|
4852
4885
|
this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');
|
@@ -4857,7 +4890,7 @@ class BreakoutRoomsSubscriber {
|
|
4857
4890
|
timestamp: new Date(Date.now())
|
4858
4891
|
});
|
4859
4892
|
// If assigned breakout room has a display name, set the display name for its call state.
|
4860
|
-
const assignedBreakoutRoomDisplayName = (_b = (_a = this._context.getState().calls[this._callIdRef.callId]
|
4893
|
+
const assignedBreakoutRoomDisplayName = (_c = (_b = (_a = this._context.getState().calls[this._callIdRef.callId]) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.assignedBreakoutRoom) === null || _c === void 0 ? void 0 : _c.displayName;
|
4861
4894
|
if (assignedBreakoutRoomDisplayName) {
|
4862
4895
|
this._context.setBreakoutRoomDisplayName(call.id, assignedBreakoutRoomDisplayName);
|
4863
4896
|
}
|
@@ -15296,7 +15329,7 @@ class _ErrorBoundary extends React.Component {
|
|
15296
15329
|
// Copyright (c) Microsoft Corporation.
|
15297
15330
|
// Licensed under the MIT License.
|
15298
15331
|
/* @conditional-compile-remove(rich-text-editor) */
|
15299
|
-
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15332
|
+
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BwIa2hTH.js'); }));
|
15300
15333
|
/**
|
15301
15334
|
* @private
|
15302
15335
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -15304,7 +15337,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
|
|
15304
15337
|
*
|
15305
15338
|
* @conditional-compile-remove(rich-text-editor)
|
15306
15339
|
*/
|
15307
|
-
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15340
|
+
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BwIa2hTH.js'); });
|
15308
15341
|
/**
|
15309
15342
|
* @private
|
15310
15343
|
*/
|
@@ -25440,7 +25473,8 @@ const getRemoteParticipantsExcludingConsumers = reselect.createSelector([getRemo
|
|
25440
25473
|
{
|
25441
25474
|
const newRemoteParticipants = Object.assign({}, remoteParticipants);
|
25442
25475
|
Object.keys(newRemoteParticipants).forEach((k) => {
|
25443
|
-
|
25476
|
+
var _a;
|
25477
|
+
if (((_a = newRemoteParticipants[k]) === null || _a === void 0 ? void 0 : _a.role) === 'Consumer') {
|
25444
25478
|
delete newRemoteParticipants[k];
|
25445
25479
|
}
|
25446
25480
|
});
|
@@ -25673,7 +25707,7 @@ const useHandlers$3 = (component) => {
|
|
25673
25707
|
*
|
25674
25708
|
* @public
|
25675
25709
|
*/
|
25676
|
-
const useSelector$
|
25710
|
+
const useSelector$4 = (selector, selectorProps) => {
|
25677
25711
|
var _a, _b, _c;
|
25678
25712
|
const callClient = (_a = React.useContext(CallClientContext)) === null || _a === void 0 ? void 0 : _a.callClient;
|
25679
25713
|
const callId = (_c = (_b = React.useContext(CallContext$1)) === null || _b === void 0 ? void 0 : _b.call) === null || _c === void 0 ? void 0 : _c.id;
|
@@ -25727,7 +25761,7 @@ const useSelector$3 = (selector, selectorProps) => {
|
|
25727
25761
|
*
|
25728
25762
|
* @public
|
25729
25763
|
*/
|
25730
|
-
const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
|
25764
|
+
const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo$1], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
|
25731
25765
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
25732
25766
|
// The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
|
25733
25767
|
// There are several options for the ordering:
|
@@ -26198,7 +26232,7 @@ const useHandlers$2 = (component) => {
|
|
26198
26232
|
*
|
26199
26233
|
* @public
|
26200
26234
|
*/
|
26201
|
-
const useSelector$
|
26235
|
+
const useSelector$3 = (selector, selectorProps) => {
|
26202
26236
|
var _a;
|
26203
26237
|
const chatClient = React.useContext(ChatClientContext);
|
26204
26238
|
const threadId = (_a = React.useContext(ChatThreadClientContext)) === null || _a === void 0 ? void 0 : _a.threadId;
|
@@ -26240,7 +26274,7 @@ const useSelector$2 = (selector, selectorProps) => {
|
|
26240
26274
|
/**
|
26241
26275
|
* @private
|
26242
26276
|
*/
|
26243
|
-
const getUserId = (state) => toFlatCommunicationIdentifier(state.userId);
|
26277
|
+
const getUserId$1 = (state) => toFlatCommunicationIdentifier(state.userId);
|
26244
26278
|
/**
|
26245
26279
|
* @private
|
26246
26280
|
*/
|
@@ -26248,7 +26282,7 @@ const getDisplayName$1 = (state) => state.displayName;
|
|
26248
26282
|
/**
|
26249
26283
|
* @private
|
26250
26284
|
*/
|
26251
|
-
const getChatMessages = (state, props) => { var _a; return (props.threadId && ((_a = state.threads[props.threadId]) === null || _a === void 0 ? void 0 : _a.chatMessages)) || {}; };
|
26285
|
+
const getChatMessages$1 = (state, props) => { var _a; return (props.threadId && ((_a = state.threads[props.threadId]) === null || _a === void 0 ? void 0 : _a.chatMessages)) || {}; };
|
26252
26286
|
/**
|
26253
26287
|
* @private
|
26254
26288
|
*/
|
@@ -26291,7 +26325,7 @@ const getLatestErrors = (state) => state.latestErrors;
|
|
26291
26325
|
*
|
26292
26326
|
* @public
|
26293
26327
|
*/
|
26294
|
-
const sendBoxSelector = reselect.createSelector([getUserId, getDisplayName$1], (userId, displayName) => ({
|
26328
|
+
const sendBoxSelector = reselect.createSelector([getUserId$1, getDisplayName$1], (userId, displayName) => ({
|
26295
26329
|
displayName: displayName,
|
26296
26330
|
userId: userId
|
26297
26331
|
}));
|
@@ -26627,7 +26661,7 @@ const hasValidParticipant = (chatMessage) => { var _a; return !!((_a = chatMessa
|
|
26627
26661
|
*
|
26628
26662
|
* @private
|
26629
26663
|
*/
|
26630
|
-
const messageThreadSelectorWithThread = () => reselect.createSelector([getUserId, getChatMessages, getLatestReadTime, getIsLargeGroup, getReadReceipts, getParticipants], (userId, chatMessages, latestReadTime, isLargeGroup, readReceipts = [], participants) => {
|
26664
|
+
const messageThreadSelectorWithThread = () => reselect.createSelector([getUserId$1, getChatMessages$1, getLatestReadTime, getIsLargeGroup, getReadReceipts, getParticipants], (userId, chatMessages, latestReadTime, isLargeGroup, readReceipts = [], participants) => {
|
26631
26665
|
// We can't get displayName in teams meeting interop for now, disable rr feature when it is teams interop
|
26632
26666
|
const isTeamsInterop = Object.values(participants).find((p) => 'microsoftTeamsUserId' in p.id) !== undefined;
|
26633
26667
|
// get number of participants
|
@@ -26747,7 +26781,7 @@ const convertSdkTypingIndicatorsToCommunicationParticipants = (typingIndicators,
|
|
26747
26781
|
*
|
26748
26782
|
* @public
|
26749
26783
|
*/
|
26750
|
-
const typingIndicatorSelector = reselect.createSelector([getTypingIndicators, getParticipants, getUserId], (typingIndicators, participants, userId) => {
|
26784
|
+
const typingIndicatorSelector = reselect.createSelector([getTypingIndicators, getParticipants, getUserId$1], (typingIndicators, participants, userId) => {
|
26751
26785
|
// if the participant size reaches the threshold then return no typing users
|
26752
26786
|
if (Object.values(participants).length >= PARTICIPANTS_THRESHOLD) {
|
26753
26787
|
return { typingUsers: [] };
|
@@ -26782,7 +26816,7 @@ const moderatorIndex = (participants) => {
|
|
26782
26816
|
*
|
26783
26817
|
* @public
|
26784
26818
|
*/
|
26785
|
-
const chatParticipantListSelector = reselect__namespace.createSelector([getUserId, getParticipants, getDisplayName$1], (userId, chatParticipants, displayName) => {
|
26819
|
+
const chatParticipantListSelector = reselect__namespace.createSelector([getUserId$1, getParticipants, getDisplayName$1], (userId, chatParticipants, displayName) => {
|
26786
26820
|
let participants = convertChatParticipantsToCommunicationParticipants(Object.values(chatParticipants));
|
26787
26821
|
if (0 !== participants.length) {
|
26788
26822
|
const moderatorIdx = moderatorIndex(participants);
|
@@ -28829,7 +28863,7 @@ const isChatError = (e) => {
|
|
28829
28863
|
return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
|
28830
28864
|
};
|
28831
28865
|
|
28832
|
-
var call$l={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel",joinBreakoutRoomButtonLabel:"Join breakout room",returnFromBreakoutRoomButtonLabel:"Leave room",leaveBreakoutRoomAndMeetingButtonLabel:"Leave meeting",breakoutRoomJoinedNotificationTitle:"You've joined Breakout room '{roomName}'",joinBreakoutRoomBannerTitle:"Breakout room '{roomName}' is open",joinBreakoutRoomBannerButtonLabel:"Join",returnFromBreakoutRoomBannerTitle:"Return to main meeting",returnFromBreakoutRoomBannerButtonLabel:"Rejoin"};var chat$l={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment",uploadImageDataNotProvided:"Image data is not provided.",uploadImageIsTooLarge:"Image is too large. Choose one that's less than {maxImageSize} MB.",uploadImageExtensionIsNotAllowed:"Uploading .{imageExtension} image is not allowed.",uploadImageFailed:"Unable to upload image. Please try again later."};var callWithChat$l={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, 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",breakoutRoomChatPaneTitle:"Breakout Room Chat",chatContentSpinnerLabel:"Loading..."};var en_US = {call:call$l,chat:chat$l,callWithChat:callWithChat$l};
|
28866
|
+
var call$l={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",videoEffectsPaneAriaLabel:"Video effects pane",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel",joinBreakoutRoomButtonLabel:"Join breakout room",returnFromBreakoutRoomButtonLabel:"Leave room",leaveBreakoutRoomAndMeetingButtonLabel:"Leave meeting",breakoutRoomJoinedNotificationTitle:"You've joined Breakout room '{roomName}'",joinBreakoutRoomBannerTitle:"Breakout room '{roomName}' is open",joinBreakoutRoomBannerButtonLabel:"Join",returnFromBreakoutRoomBannerTitle:"Return to main meeting",returnFromBreakoutRoomBannerButtonLabel:"Rejoin"};var chat$l={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment",uploadImageDataNotProvided:"Image data is not provided.",uploadImageIsTooLarge:"Image is too large. Choose one that's less than {maxImageSize} MB.",uploadImageExtensionIsNotAllowed:"Uploading .{imageExtension} image is not allowed.",uploadImageFailed:"Unable to upload image. Please try again later."};var callWithChat$l={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, 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",breakoutRoomChatPaneTitle:"Breakout Room Chat",chatContentSpinnerLabel:"Loading..."};var en_US = {call:call$l,chat:chat$l,callWithChat:callWithChat$l};
|
28833
28867
|
|
28834
28868
|
// Copyright (c) Microsoft Corporation.
|
28835
28869
|
// Licensed under the MIT License.
|
@@ -29774,7 +29808,7 @@ const AttachmentDownloadErrorBar = (props) => {
|
|
29774
29808
|
/**
|
29775
29809
|
* Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
|
29776
29810
|
*/
|
29777
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
29811
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CMAkkxJl.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
29778
29812
|
/**
|
29779
29813
|
* @private
|
29780
29814
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -29782,7 +29816,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
|
|
29782
29816
|
*
|
29783
29817
|
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
29784
29818
|
*/
|
29785
|
-
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
29819
|
+
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CMAkkxJl.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
|
29786
29820
|
/**
|
29787
29821
|
* @private
|
29788
29822
|
*/
|
@@ -30114,6 +30148,31 @@ const ImageUploadReducer = (state, action) => {
|
|
30114
30148
|
}
|
30115
30149
|
};
|
30116
30150
|
|
30151
|
+
// Copyright (c) Microsoft Corporation.
|
30152
|
+
// Licensed under the MIT License.
|
30153
|
+
/**
|
30154
|
+
* @private
|
30155
|
+
*/
|
30156
|
+
const useSelector$2 = (selector, selectorProps) => {
|
30157
|
+
// use selector with no adaptation
|
30158
|
+
return useSelectorWithAdaptation$1(selector, (state) => state, selectorProps);
|
30159
|
+
};
|
30160
|
+
|
30161
|
+
// Copyright (c) Microsoft Corporation.
|
30162
|
+
// Licensed under the MIT License.
|
30163
|
+
/** @private */
|
30164
|
+
const getUserId = (state) => state.userId;
|
30165
|
+
/** @private */
|
30166
|
+
const getThreadId = (state) => state.thread.threadId;
|
30167
|
+
/** @private */
|
30168
|
+
const getChatMessages = (state) => state.thread.chatMessages;
|
30169
|
+
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30170
|
+
/** @private */
|
30171
|
+
const getTextOnlyChat = (state) => { var _a, _b; return (_b = (_a = state.thread.properties) === null || _a === void 0 ? void 0 : _a.messagingPolicy) === null || _b === void 0 ? void 0 : _b.textOnlyChat; };
|
30172
|
+
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30173
|
+
/** @private */
|
30174
|
+
const getCreatedBy = (state) => { var _a; return (_a = state.thread.properties) === null || _a === void 0 ? void 0 : _a.createdBy; };
|
30175
|
+
|
30117
30176
|
// Copyright (c) Microsoft Corporation.
|
30118
30177
|
// Licensed under the MIT License.
|
30119
30178
|
var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
@@ -30145,29 +30204,15 @@ const ChatScreen = (props) => {
|
|
30145
30204
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30146
30205
|
const localeStrings = useLocale().strings;
|
30147
30206
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30148
|
-
const
|
30207
|
+
const textOnlyChat = !!useSelector$2(getTextOnlyChat);
|
30208
|
+
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30209
|
+
const createdBy = useSelector$2(getCreatedBy);
|
30149
30210
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30150
|
-
const
|
30211
|
+
const isACSChat = createdBy && !communicationCommon.isMicrosoftTeamsUserIdentifier(createdBy);
|
30151
30212
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30152
30213
|
const [editBoxInlineImageUploads, handleEditBoxInlineImageUploadAction] = React.useReducer(ImageUploadReducer, undefined);
|
30153
30214
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30154
30215
|
const [sendBoxInlineImageUploads, handleSendBoxInlineImageUploadAction] = React.useReducer(ImageUploadReducer, undefined);
|
30155
|
-
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30156
|
-
React.useEffect(() => {
|
30157
|
-
const updateChatState = (newState) => {
|
30158
|
-
var _a, _b, _c, _d;
|
30159
|
-
setTextOnlyChat(((_b = (_a = newState.thread.properties) === null || _a === void 0 ? void 0 : _a.messagingPolicy) === null || _b === void 0 ? void 0 : _b.textOnlyChat) === true);
|
30160
|
-
if ((_c = newState.thread.properties) === null || _c === void 0 ? void 0 : _c.createdBy) {
|
30161
|
-
setIsACSChat(!communicationCommon.isMicrosoftTeamsUserIdentifier((_d = newState.thread.properties) === null || _d === void 0 ? void 0 : _d.createdBy));
|
30162
|
-
}
|
30163
|
-
};
|
30164
|
-
// set initial state for textOnlyChat and isACSChat
|
30165
|
-
updateChatState(adapter.getState());
|
30166
|
-
adapter.onStateChange(updateChatState);
|
30167
|
-
return () => {
|
30168
|
-
adapter.offStateChange(updateChatState);
|
30169
|
-
};
|
30170
|
-
}, [adapter]);
|
30171
30216
|
React.useEffect(() => {
|
30172
30217
|
// Initial data should be always fetched by the composite(or external caller) instead of the adapter
|
30173
30218
|
const fetchData = () => __awaiter$r(void 0, void 0, void 0, function* () {
|
@@ -30191,25 +30236,30 @@ const ChatScreen = (props) => {
|
|
30191
30236
|
const typingIndicatorProps = usePropsFor$2(TypingIndicator);
|
30192
30237
|
const headerProps = useAdaptedSelector$1(getHeaderProps);
|
30193
30238
|
const errorBarProps = usePropsFor$2(ErrorBar);
|
30239
|
+
const overlayImageItemRef = React.useRef(overlayImageItem);
|
30240
|
+
overlayImageItemRef.current = overlayImageItem;
|
30241
|
+
const adapterChatMessages = useSelector$2(getChatMessages);
|
30194
30242
|
React.useEffect(() => {
|
30195
|
-
if (
|
30243
|
+
if (overlayImageItemRef.current === undefined) {
|
30196
30244
|
return;
|
30197
30245
|
}
|
30198
|
-
const message =
|
30246
|
+
const message = adapterChatMessages[overlayImageItemRef.current.messageId];
|
30199
30247
|
if (message === undefined) {
|
30200
30248
|
return;
|
30201
30249
|
}
|
30202
30250
|
const resourceCache = message.resourceCache;
|
30203
|
-
if (
|
30204
|
-
|
30205
|
-
|
30251
|
+
if (overlayImageItemRef.current.imageSrc === '' &&
|
30252
|
+
resourceCache &&
|
30253
|
+
resourceCache[overlayImageItemRef.current.imageUrl]) {
|
30254
|
+
const fullSizeImageSrc = getResourceSourceUrl(resourceCache[overlayImageItemRef.current.imageUrl]);
|
30255
|
+
if (fullSizeImageSrc === undefined ||
|
30256
|
+
fullSizeImageSrc === '' ||
|
30257
|
+
overlayImageItemRef.current.imageSrc === fullSizeImageSrc) {
|
30206
30258
|
return;
|
30207
30259
|
}
|
30208
|
-
setOverlayImageItem(Object.assign(Object.assign({},
|
30260
|
+
setOverlayImageItem(Object.assign(Object.assign({}, overlayImageItemRef.current), { imageSrc: fullSizeImageSrc }));
|
30209
30261
|
}
|
30210
|
-
|
30211
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
30212
|
-
}, [messageThreadProps.messages]);
|
30262
|
+
}, [adapterChatMessages]);
|
30213
30263
|
const getResourceSourceUrl = (result) => {
|
30214
30264
|
let src = '';
|
30215
30265
|
if (result.error || !result.sourceUrl) {
|
@@ -30232,7 +30282,8 @@ const ChatScreen = (props) => {
|
|
30232
30282
|
const sendBoxStyles = React.useMemo(() => {
|
30233
30283
|
return Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.sendBox);
|
30234
30284
|
}, [styles === null || styles === void 0 ? void 0 : styles.sendBox]);
|
30235
|
-
const
|
30285
|
+
const userIdObject = useSelector$2(getUserId);
|
30286
|
+
const userId = toFlatCommunicationIdentifier(userIdObject);
|
30236
30287
|
/* @conditional-compile-remove(file-sharing-acs) */
|
30237
30288
|
const setKeyboardFocusAfterFileSelection = React.useCallback(() => {
|
30238
30289
|
var _a;
|
@@ -30296,9 +30347,10 @@ const ChatScreen = (props) => {
|
|
30296
30347
|
setDownloadErrorMessage(errorMessage);
|
30297
30348
|
} })) : (React.createElement(React.Fragment, null));
|
30298
30349
|
}, [(_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.downloadOptions) === null || _b === void 0 ? void 0 : _b.actionsForAttachment]);
|
30350
|
+
const threadId = useSelector$2(getThreadId);
|
30299
30351
|
const onInlineImageClicked = React.useCallback((attachmentId, messageId) => {
|
30300
30352
|
var _a, _b;
|
30301
|
-
const message =
|
30353
|
+
const message = adapterChatMessages[messageId];
|
30302
30354
|
const inlinedImages = (_b = (_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments) === null || _b === void 0 ? void 0 : _b.filter((attachment) => {
|
30303
30355
|
return attachment.attachmentType === 'image' && attachment.id === attachmentId;
|
30304
30356
|
});
|
@@ -30314,8 +30366,8 @@ const ChatScreen = (props) => {
|
|
30314
30366
|
}
|
30315
30367
|
else {
|
30316
30368
|
adapter.downloadResourceToCache({
|
30317
|
-
threadId
|
30318
|
-
messageId
|
30369
|
+
threadId,
|
30370
|
+
messageId,
|
30319
30371
|
resourceUrl: attachment.url
|
30320
30372
|
});
|
30321
30373
|
}
|
@@ -30338,10 +30390,10 @@ const ChatScreen = (props) => {
|
|
30338
30390
|
};
|
30339
30391
|
setIsImageOverlayOpen(true);
|
30340
30392
|
setOverlayImageItem(overlayImage);
|
30341
|
-
}, [adapter, onRenderAvatarCallback, userId]);
|
30393
|
+
}, [adapter, adapterChatMessages, onRenderAvatarCallback, userId, threadId]);
|
30342
30394
|
const onRenderInlineImage = React.useCallback((inlineImage, defaultOnRender) => {
|
30343
30395
|
var _a, _b;
|
30344
|
-
const message =
|
30396
|
+
const message = adapterChatMessages[inlineImage.messageId];
|
30345
30397
|
const attachment = (_b = (_a = message === null || message === void 0 ? void 0 : message.content) === null || _a === void 0 ? void 0 : _a.attachments) === null || _b === void 0 ? void 0 : _b.find((attachment) => attachment.id === inlineImage.imageAttributes.id);
|
30346
30398
|
if (attachment === undefined) {
|
30347
30399
|
return defaultOnRender(inlineImage);
|
@@ -30359,7 +30411,7 @@ const ChatScreen = (props) => {
|
|
30359
30411
|
onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId);
|
30360
30412
|
}
|
30361
30413
|
}, style: { cursor: 'pointer', pointerEvents } }, defaultOnRender(inlineImage)));
|
30362
|
-
}, [
|
30414
|
+
}, [adapterChatMessages, onInlineImageClicked]);
|
30363
30415
|
const inlineImageOptions = React.useMemo(() => {
|
30364
30416
|
return { onRenderInlineImage: onRenderInlineImage };
|
30365
30417
|
}, [onRenderInlineImage]);
|
@@ -30462,7 +30514,7 @@ const ChatScreen = (props) => {
|
|
30462
30514
|
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
30463
30515
|
const richTextEditorOptions = React.useMemo(() => {
|
30464
30516
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
30465
|
-
const onPasteCallback = isACSChat || textOnlyChat ? removeImageTags : undefined;
|
30517
|
+
const onPasteCallback = !!isACSChat || textOnlyChat ? removeImageTags : undefined;
|
30466
30518
|
return (options === null || options === void 0 ? void 0 : options.richTextEditor)
|
30467
30519
|
? {
|
30468
30520
|
/* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: onPasteCallback
|
@@ -30559,7 +30611,7 @@ const ChatScreen = (props) => {
|
|
30559
30611
|
setOverlayImageItem(undefined);
|
30560
30612
|
setIsImageOverlayOpen(false);
|
30561
30613
|
adapter.removeResourceFromCache({
|
30562
|
-
threadId
|
30614
|
+
threadId,
|
30563
30615
|
messageId: overlayImageItem.messageId,
|
30564
30616
|
resourceUrl: overlayImageItem.imageUrl
|
30565
30617
|
});
|
@@ -31344,6 +31396,180 @@ function computeComplianceNotification(complianceProps, cachedProps) {
|
|
31344
31396
|
}
|
31345
31397
|
}
|
31346
31398
|
|
31399
|
+
// Copyright (c) Microsoft Corporation.
|
31400
|
+
// Licensed under the MIT License.
|
31401
|
+
/**
|
31402
|
+
* @private
|
31403
|
+
*/
|
31404
|
+
const useSelector$1 = (selector, selectorProps) => {
|
31405
|
+
// use selector with no adaptation
|
31406
|
+
return useSelectorWithAdaptation(selector, (state) => state, selectorProps);
|
31407
|
+
};
|
31408
|
+
|
31409
|
+
// Copyright (c) Microsoft Corporation.
|
31410
|
+
// Licensed under the MIT License.
|
31411
|
+
/**
|
31412
|
+
* @private
|
31413
|
+
*/
|
31414
|
+
const getDisplayName = (state) => state.displayName;
|
31415
|
+
/**
|
31416
|
+
* @private
|
31417
|
+
*/
|
31418
|
+
const getEndedCall = (state) => state.endedCall;
|
31419
|
+
/**
|
31420
|
+
* @private
|
31421
|
+
*/
|
31422
|
+
const getCallStatus = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : 'None'; };
|
31423
|
+
/**
|
31424
|
+
* @private
|
31425
|
+
*/
|
31426
|
+
const getDeviceManager = (state) => state.devices;
|
31427
|
+
/**
|
31428
|
+
* @private
|
31429
|
+
*/
|
31430
|
+
const getIsScreenShareOn = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.isScreenSharingOn) !== null && _b !== void 0 ? _b : false; };
|
31431
|
+
/**
|
31432
|
+
* @private
|
31433
|
+
*/
|
31434
|
+
const getLocalParticipantRaisedHand = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.raiseHand.localParticipantRaisedHand; };
|
31435
|
+
/**
|
31436
|
+
* @private
|
31437
|
+
*/
|
31438
|
+
const getCapabilites = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities; };
|
31439
|
+
/**
|
31440
|
+
* @private
|
31441
|
+
*/
|
31442
|
+
const getMicrophones = (state) => state.devices.microphones;
|
31443
|
+
/**
|
31444
|
+
* @private
|
31445
|
+
*/
|
31446
|
+
const getCameras = (state) => state.devices.cameras;
|
31447
|
+
/**
|
31448
|
+
* @private
|
31449
|
+
*/
|
31450
|
+
const getRole = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.role; };
|
31451
|
+
/**
|
31452
|
+
* @private
|
31453
|
+
*/
|
31454
|
+
const getPage = (state) => state.page;
|
31455
|
+
/**
|
31456
|
+
* @private
|
31457
|
+
*/
|
31458
|
+
const getTransferCall = (state) => state.acceptedTransferCallState;
|
31459
|
+
/**
|
31460
|
+
* @private
|
31461
|
+
*/
|
31462
|
+
const getLocalMicrophoneEnabled = (state) => state.isLocalPreviewMicrophoneEnabled;
|
31463
|
+
/**
|
31464
|
+
* @private
|
31465
|
+
*/
|
31466
|
+
const getLocalVideoStreams = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.localVideoStreams; };
|
31467
|
+
/**
|
31468
|
+
* @private
|
31469
|
+
*/
|
31470
|
+
const getIsTranscriptionActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.transcription.isTranscriptionActive); };
|
31471
|
+
/**
|
31472
|
+
* @private
|
31473
|
+
*/
|
31474
|
+
const getIsRecordingActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.recording.isRecordingActive); };
|
31475
|
+
/**
|
31476
|
+
* @private
|
31477
|
+
*/
|
31478
|
+
const getUserFacingDiagnostics = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.diagnostics; };
|
31479
|
+
/**
|
31480
|
+
* @private
|
31481
|
+
*/
|
31482
|
+
const getDominantSpeakerInfo = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.dominantSpeakers; };
|
31483
|
+
/**
|
31484
|
+
* @private
|
31485
|
+
*/
|
31486
|
+
const getRemoteParticipants = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants; };
|
31487
|
+
/* @conditional-compile-remove(unsupported-browser) */
|
31488
|
+
/**
|
31489
|
+
* @private
|
31490
|
+
*/
|
31491
|
+
const getEnvironmentInfo = (state) => state.environmentInfo;
|
31492
|
+
/**
|
31493
|
+
* @private
|
31494
|
+
*/
|
31495
|
+
const getSelectedVideoEffect = (state) => state.selectedVideoBackgroundEffect;
|
31496
|
+
/* @conditional-compile-remove(acs-close-captions) */
|
31497
|
+
/** @private */
|
31498
|
+
const getCaptionsKind = (state) => {
|
31499
|
+
var _a;
|
31500
|
+
return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.captionsKind;
|
31501
|
+
};
|
31502
|
+
/** @private */
|
31503
|
+
const getCaptionsStatus = (state) => {
|
31504
|
+
var _a;
|
31505
|
+
return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;
|
31506
|
+
};
|
31507
|
+
/**
|
31508
|
+
* @private
|
31509
|
+
*/
|
31510
|
+
const getIsTeamsCall = (state) => state.isTeamsCall;
|
31511
|
+
/**
|
31512
|
+
* @private
|
31513
|
+
*/
|
31514
|
+
const getIsTeamsMeeting = (state) => state.isTeamsMeeting;
|
31515
|
+
/**
|
31516
|
+
* @private
|
31517
|
+
*/
|
31518
|
+
const getTeamsMeetingCoordinates = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.meetingConference) === null || _b === void 0 ? void 0 : _b.conferencePhones; };
|
31519
|
+
/**
|
31520
|
+
* @private
|
31521
|
+
*/
|
31522
|
+
const getLatestCapabilitiesChangedInfo = (state) => {
|
31523
|
+
var _a, _b;
|
31524
|
+
return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.latestCapabilitiesChangeInfo;
|
31525
|
+
};
|
31526
|
+
/**
|
31527
|
+
* @private
|
31528
|
+
*/
|
31529
|
+
const getTargetCallees = (state) => state.targetCallees;
|
31530
|
+
/**
|
31531
|
+
* @private
|
31532
|
+
*/
|
31533
|
+
const getStartTime = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.startTime; };
|
31534
|
+
/**
|
31535
|
+
* @private
|
31536
|
+
*/
|
31537
|
+
const getSpotlightedParticipants = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.spotlight) === null || _b === void 0 ? void 0 : _b.spotlightedParticipants; };
|
31538
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
31539
|
+
/**
|
31540
|
+
* @private
|
31541
|
+
*/
|
31542
|
+
const getAssignedBreakoutRoom = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.assignedBreakoutRoom; };
|
31543
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
31544
|
+
/**
|
31545
|
+
* @private
|
31546
|
+
*/
|
31547
|
+
const getBreakoutRoomSettings = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.breakoutRoomSettings; };
|
31548
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
31549
|
+
/**
|
31550
|
+
* @private
|
31551
|
+
*/
|
31552
|
+
const getBreakoutRoomDisplayName = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.breakoutRoomDisplayName; };
|
31553
|
+
/** @private */
|
31554
|
+
const getVideoEffectsDependency = (state) => state.onResolveVideoEffectDependency;
|
31555
|
+
/* @conditional-compile-remove(DNS) */
|
31556
|
+
/** @private */
|
31557
|
+
const getDeepNoiseSuppresionEffectsDependency = (state) => state.onResolveDeepNoiseSuppressionDependency;
|
31558
|
+
/* @conditional-compile-remove(DNS) */
|
31559
|
+
/** @private */
|
31560
|
+
const getDeepNoiseSuppresionIsOnByDefault = (state) => state.deepNoiseSuppressionOnByDefault;
|
31561
|
+
/* @conditional-compile-remove(DNS) */
|
31562
|
+
/** @private */
|
31563
|
+
const getHideDeepNoiseSupressionButton = (state) => state.hideDeepNoiseSuppressionButton;
|
31564
|
+
/** @private */
|
31565
|
+
const getReactionResources = (state) => state.reactions;
|
31566
|
+
/** @private */
|
31567
|
+
const getAlternateCallerId = (state) => state.alternateCallerId;
|
31568
|
+
/** @private */
|
31569
|
+
const getIsRoomsCall = (state) => state.isRoomsCall;
|
31570
|
+
/** @private */
|
31571
|
+
const getVideoBackgroundImages = (state) => state.videoBackgroundImages;
|
31572
|
+
|
31347
31573
|
// Copyright (c) Microsoft Corporation.
|
31348
31574
|
// Licensed under the MIT License.
|
31349
31575
|
var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
@@ -31362,9 +31588,8 @@ var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
31362
31588
|
const useHandlers = (
|
31363
31589
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
31364
31590
|
_component) => {
|
31365
|
-
var _a, _b;
|
31366
31591
|
const adapter = useAdapter();
|
31367
|
-
const capabilities = (
|
31592
|
+
const capabilities = useSelector$1(getCapabilites);
|
31368
31593
|
return createCompositeHandlers(adapter, capabilities);
|
31369
31594
|
};
|
31370
31595
|
const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
|
@@ -31835,13 +32060,13 @@ const usePropsFor$1 = (component) => {
|
|
31835
32060
|
* @private
|
31836
32061
|
*/
|
31837
32062
|
const Camera = (props) => {
|
31838
|
-
var _a
|
32063
|
+
var _a;
|
31839
32064
|
const cameraButtonProps = usePropsFor$1(CameraButton);
|
31840
32065
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
31841
|
-
const
|
31842
|
-
const
|
31843
|
-
const turnVideoOnCapability = (
|
31844
|
-
return (React.createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-camera-button" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disableTooltip: props.disableTooltip, disabled: cameraButtonProps.disabled || props.disabled || (isRoomsCall &&
|
32066
|
+
const isRoomsCall = useSelector$1(getIsRoomsCall);
|
32067
|
+
const role = useSelector$1(getRole);
|
32068
|
+
const turnVideoOnCapability = (_a = useSelector$1(getCapabilites)) === null || _a === void 0 ? void 0 : _a.turnVideoOn;
|
32069
|
+
return (React.createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-camera-button" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disableTooltip: props.disableTooltip, disabled: cameraButtonProps.disabled || props.disabled || !!(isRoomsCall && role === 'Unknown'), onRenderOffIcon: turnVideoOnCapability && !turnVideoOnCapability.isPresent
|
31845
32070
|
? () => React.createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonCameraProhibited' })
|
31846
32071
|
: undefined, onClickVideoEffects: props.onClickVideoEffects, componentRef: props.componentRef })));
|
31847
32072
|
};
|
@@ -31850,10 +32075,9 @@ const Camera = (props) => {
|
|
31850
32075
|
// Licensed under the MIT License.
|
31851
32076
|
/** @private */
|
31852
32077
|
const Devices = (props) => {
|
31853
|
-
var _a
|
32078
|
+
var _a;
|
31854
32079
|
const devicesButtonProps = usePropsFor$1(DevicesButton);
|
31855
|
-
const
|
31856
|
-
const role = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role) !== null && _b !== void 0 ? _b : 'Unknown';
|
32080
|
+
const role = (_a = useSelector$1(getRole)) !== null && _a !== void 0 ? _a : 'Unknown';
|
31857
32081
|
const augmentedDeviceButtonProps = React.useMemo(() => (Object.assign(Object.assign({}, devicesButtonProps), { microphones: role === 'Consumer' ? [] : devicesButtonProps.microphones, cameras: role === 'Consumer' ? [] : devicesButtonProps.cameras })), [devicesButtonProps, role]);
|
31858
32082
|
const styles = React.useMemo(() => {
|
31859
32083
|
var _a;
|
@@ -32012,169 +32236,19 @@ const EndCall = (props) => {
|
|
32012
32236
|
React.createElement(Prompt, Object.assign({}, dialogLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, cancelButtonLabel: localeStrings.call.hangUpCancelButtonLabel, onConfirm: () => onHangUpConfirm(props.enableEndCallMenu), isOpen: showHangUpConfirm, onCancel: toggleConfirm }))));
|
32013
32237
|
};
|
32014
32238
|
|
32015
|
-
// Copyright (c) Microsoft Corporation.
|
32016
|
-
// Licensed under the MIT License.
|
32017
|
-
/**
|
32018
|
-
* @private
|
32019
|
-
*/
|
32020
|
-
const useSelector$1 = (selector, selectorProps) => {
|
32021
|
-
// use selector with no adaptation
|
32022
|
-
return useSelectorWithAdaptation(selector, (state) => state, selectorProps);
|
32023
|
-
};
|
32024
|
-
|
32025
|
-
// Copyright (c) Microsoft Corporation.
|
32026
|
-
// Licensed under the MIT License.
|
32027
|
-
/**
|
32028
|
-
* @private
|
32029
|
-
*/
|
32030
|
-
const getDisplayName = (state) => state.displayName;
|
32031
|
-
/**
|
32032
|
-
* @private
|
32033
|
-
*/
|
32034
|
-
const getEndedCall = (state) => state.endedCall;
|
32035
|
-
/**
|
32036
|
-
* @private
|
32037
|
-
*/
|
32038
|
-
const getCallStatus = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : 'None'; };
|
32039
|
-
/**
|
32040
|
-
* @private
|
32041
|
-
*/
|
32042
|
-
const getDeviceManager = (state) => state.devices;
|
32043
|
-
/**
|
32044
|
-
* @private
|
32045
|
-
*/
|
32046
|
-
const getIsScreenShareOn = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.isScreenSharingOn) !== null && _b !== void 0 ? _b : false; };
|
32047
|
-
/**
|
32048
|
-
* @private
|
32049
|
-
*/
|
32050
|
-
const getLocalParticipantRaisedHand = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.raiseHand.localParticipantRaisedHand; };
|
32051
|
-
/**
|
32052
|
-
* @private
|
32053
|
-
*/
|
32054
|
-
const getCapabilites = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities; };
|
32055
|
-
/**
|
32056
|
-
* @private
|
32057
|
-
*/
|
32058
|
-
const getMicrophones = (state) => state.devices.microphones;
|
32059
|
-
/**
|
32060
|
-
* @private
|
32061
|
-
*/
|
32062
|
-
const getCameras = (state) => state.devices.cameras;
|
32063
|
-
/**
|
32064
|
-
* @private
|
32065
|
-
*/
|
32066
|
-
const getRole = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.role; };
|
32067
|
-
/**
|
32068
|
-
* @private
|
32069
|
-
*/
|
32070
|
-
const getPage = (state) => state.page;
|
32071
|
-
/**
|
32072
|
-
* @private
|
32073
|
-
*/
|
32074
|
-
const getTransferCall = (state) => state.acceptedTransferCallState;
|
32075
|
-
/**
|
32076
|
-
* @private
|
32077
|
-
*/
|
32078
|
-
const getLocalMicrophoneEnabled = (state) => state.isLocalPreviewMicrophoneEnabled;
|
32079
|
-
/**
|
32080
|
-
* @private
|
32081
|
-
*/
|
32082
|
-
const getLocalVideoStreams = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.localVideoStreams; };
|
32083
|
-
/**
|
32084
|
-
* @private
|
32085
|
-
*/
|
32086
|
-
const getIsTranscriptionActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.transcription.isTranscriptionActive); };
|
32087
|
-
/**
|
32088
|
-
* @private
|
32089
|
-
*/
|
32090
|
-
const getIsRecordingActive = (state) => { var _a; return !!((_a = state.call) === null || _a === void 0 ? void 0 : _a.recording.isRecordingActive); };
|
32091
|
-
/**
|
32092
|
-
* @private
|
32093
|
-
*/
|
32094
|
-
const getUserFacingDiagnostics = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.diagnostics; };
|
32095
|
-
/**
|
32096
|
-
* @private
|
32097
|
-
*/
|
32098
|
-
const getDominantSpeakerInfo = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.dominantSpeakers; };
|
32099
|
-
/**
|
32100
|
-
* @private
|
32101
|
-
*/
|
32102
|
-
const getRemoteParticipants = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants; };
|
32103
|
-
/**
|
32104
|
-
* @private
|
32105
|
-
*/
|
32106
|
-
const getSelectedVideoEffect = (state) => state.selectedVideoBackgroundEffect;
|
32107
|
-
/* @conditional-compile-remove(acs-close-captions) */
|
32108
|
-
/** @private */
|
32109
|
-
const getCaptionsKind = (state) => {
|
32110
|
-
var _a;
|
32111
|
-
return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.captionsKind;
|
32112
|
-
};
|
32113
|
-
/** @private */
|
32114
|
-
const getCaptionsStatus = (state) => {
|
32115
|
-
var _a;
|
32116
|
-
return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;
|
32117
|
-
};
|
32118
|
-
/**
|
32119
|
-
* @private
|
32120
|
-
*/
|
32121
|
-
const getIsTeamsCall = (state) => state.isTeamsCall;
|
32122
|
-
/**
|
32123
|
-
* @private
|
32124
|
-
*/
|
32125
|
-
const getIsTeamsMeeting = (state) => state.isTeamsMeeting;
|
32126
|
-
/**
|
32127
|
-
* @private
|
32128
|
-
*/
|
32129
|
-
const getTeamsMeetingCoordinates = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.meetingConference) === null || _b === void 0 ? void 0 : _b.conferencePhones; };
|
32130
|
-
/**
|
32131
|
-
* @private
|
32132
|
-
*/
|
32133
|
-
const getLatestCapabilitiesChangedInfo = (state) => {
|
32134
|
-
var _a, _b;
|
32135
|
-
return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.latestCapabilitiesChangeInfo;
|
32136
|
-
};
|
32137
|
-
/**
|
32138
|
-
* @private
|
32139
|
-
*/
|
32140
|
-
const getTargetCallees = (state) => state.targetCallees;
|
32141
|
-
/**
|
32142
|
-
* @private
|
32143
|
-
*/
|
32144
|
-
const getStartTime = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.startTime; };
|
32145
|
-
/**
|
32146
|
-
* @private
|
32147
|
-
*/
|
32148
|
-
const getSpotlightedParticipants = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.spotlight) === null || _b === void 0 ? void 0 : _b.spotlightedParticipants; };
|
32149
|
-
/* @conditional-compile-remove(breakout-rooms) */
|
32150
|
-
/**
|
32151
|
-
* @private
|
32152
|
-
*/
|
32153
|
-
const getAssignedBreakoutRoom = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.assignedBreakoutRoom; };
|
32154
|
-
/* @conditional-compile-remove(breakout-rooms) */
|
32155
|
-
/**
|
32156
|
-
* @private
|
32157
|
-
*/
|
32158
|
-
const getBreakoutRoomSettings = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.breakoutRoomSettings; };
|
32159
|
-
/* @conditional-compile-remove(breakout-rooms) */
|
32160
|
-
/**
|
32161
|
-
* @private
|
32162
|
-
*/
|
32163
|
-
const getBreakoutRoomDisplayName = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.breakoutRoomDisplayName; };
|
32164
|
-
|
32165
32239
|
// Copyright (c) Microsoft Corporation.
|
32166
32240
|
// Licensed under the MIT License.
|
32167
32241
|
/**
|
32168
32242
|
* @private
|
32169
32243
|
*/
|
32170
32244
|
const Microphone = (props) => {
|
32171
|
-
var _a
|
32245
|
+
var _a;
|
32172
32246
|
const microphoneButtonProps = usePropsFor$1(MicrophoneButton);
|
32173
32247
|
const callStatus = useSelector$1(getCallStatus);
|
32174
32248
|
const isLocalMicrophoneEnabled = useSelector$1(getLocalMicrophoneEnabled);
|
32175
|
-
const
|
32176
|
-
const
|
32177
|
-
const unmuteMicCapability = (
|
32249
|
+
const isRoomsCall = useSelector$1(getIsRoomsCall);
|
32250
|
+
const role = useSelector$1(getRole);
|
32251
|
+
const unmuteMicCapability = (_a = useSelector$1(getCapabilites)) === null || _a === void 0 ? void 0 : _a.unmuteMic;
|
32178
32252
|
/**
|
32179
32253
|
* When call is in connecting state, microphone button should be disabled.
|
32180
32254
|
* This is due to to headless limitation where a call can not be muted/unmuted in lobby.
|
@@ -32192,7 +32266,7 @@ const Microphone = (props) => {
|
|
32192
32266
|
/* @conditional-compile-remove(DNS) */
|
32193
32267
|
onClickNoiseSuppression: props.onClickNoiseSuppression,
|
32194
32268
|
/* @conditional-compile-remove(DNS) */
|
32195
|
-
showNoiseSuppressionButton: props.showNoiseSuppressionButton, showLabel: props.displayType !== 'compact', disableTooltip: props.disableTooltip, styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: microphoneButtonProps.disabled || props.disabled || (isRoomsCall &&
|
32269
|
+
showNoiseSuppressionButton: props.showNoiseSuppressionButton, showLabel: props.displayType !== 'compact', disableTooltip: props.disableTooltip, styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: microphoneButtonProps.disabled || props.disabled || !!(isRoomsCall && role === 'Unknown'), onRenderOffIcon: unmuteMicCapability && !unmuteMicCapability.isPresent
|
32196
32270
|
? () => React.createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonMicProhibited' })
|
32197
32271
|
: undefined })));
|
32198
32272
|
};
|
@@ -32219,16 +32293,15 @@ const isDisabled$3 = (option) => {
|
|
32219
32293
|
// Licensed under the MIT License.
|
32220
32294
|
/** @private */
|
32221
32295
|
const ScreenShare = (props) => {
|
32222
|
-
var _a;
|
32223
32296
|
const screenShareButtonProps = usePropsFor$1(ScreenShareButton);
|
32224
32297
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
32225
|
-
const
|
32226
|
-
const
|
32298
|
+
const isRoomsCall = useSelector$1(getIsRoomsCall);
|
32299
|
+
const role = useSelector$1(getRole);
|
32227
32300
|
const screenShareButtonDisabled = () => {
|
32228
32301
|
var _a;
|
32229
32302
|
return (_a = screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) !== null && _a !== void 0 ? _a : isDisabled$2(props.option);
|
32230
32303
|
};
|
32231
|
-
return (React.createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() || props.disabled || (isRoomsCall &&
|
32304
|
+
return (React.createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() || props.disabled || !!(isRoomsCall && role === 'Unknown'), styles: styles })));
|
32232
32305
|
};
|
32233
32306
|
const isDisabled$2 = (option) => {
|
32234
32307
|
if (option === undefined || option === true || option === false) {
|
@@ -32534,34 +32607,38 @@ const inferCallControlOptions = (mobileView, callControlOptions) => {
|
|
32534
32607
|
* @private
|
32535
32608
|
*/
|
32536
32609
|
const CallControls = (props) => {
|
32537
|
-
var _a
|
32610
|
+
var _a;
|
32538
32611
|
const options = React.useMemo(() => inferCallControlOptions(!!props.isMobile, props.options), [props.isMobile, props.options]);
|
32539
|
-
const adapter = useAdapter();
|
32540
32612
|
const localeStrings = useLocale();
|
32541
32613
|
/* @conditional-compile-remove(DNS) */
|
32542
32614
|
const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = React.useState(false);
|
32543
32615
|
/* @conditional-compile-remove(DNS) */
|
32616
|
+
const adapter = useAdapter();
|
32617
|
+
/* @conditional-compile-remove(DNS) */
|
32544
32618
|
const startDeepNoiseSuppression = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
|
32545
32619
|
yield adapter.startNoiseSuppressionEffect();
|
32546
32620
|
}), [adapter]);
|
32547
32621
|
/* @conditional-compile-remove(DNS) */
|
32622
|
+
const deepNoiseSuppresionEffectsDependency = useSelector$1(getDeepNoiseSuppresionEffectsDependency);
|
32623
|
+
/* @conditional-compile-remove(DNS) */
|
32624
|
+
const deepNoiseSuppressionOnByDefault = useSelector$1(getDeepNoiseSuppresionIsOnByDefault);
|
32625
|
+
/* @conditional-compile-remove(DNS) */
|
32548
32626
|
React.useEffect(() => {
|
32549
|
-
if (
|
32550
|
-
adapter.getState().deepNoiseSuppressionOnByDefault) {
|
32627
|
+
if (deepNoiseSuppresionEffectsDependency && deepNoiseSuppressionOnByDefault) {
|
32551
32628
|
startDeepNoiseSuppression();
|
32552
32629
|
setDeepNoiseSuppressionOn(true);
|
32553
32630
|
}
|
32554
|
-
}, [
|
32631
|
+
}, [deepNoiseSuppresionEffectsDependency, deepNoiseSuppressionOnByDefault, startDeepNoiseSuppression]);
|
32555
32632
|
/* @conditional-compile-remove(DNS) */
|
32556
|
-
const environmentInfo =
|
32633
|
+
const environmentInfo = useSelector$1(getEnvironmentInfo);
|
32557
32634
|
/* @conditional-compile-remove(DNS) */
|
32558
32635
|
const isSafari = _isSafari(environmentInfo);
|
32559
32636
|
/* @conditional-compile-remove(DNS) */
|
32560
|
-
const
|
32561
|
-
|
32562
|
-
|
32563
|
-
|
32564
|
-
|
32637
|
+
const hideDeepNoiseSuppressionButton = useSelector$1(getHideDeepNoiseSupressionButton);
|
32638
|
+
/* @conditional-compile-remove(DNS) */
|
32639
|
+
const showNoiseSuppressionButton = !!(deepNoiseSuppresionEffectsDependency &&
|
32640
|
+
!hideDeepNoiseSuppressionButton &&
|
32641
|
+
!isSafari);
|
32565
32642
|
/* @conditional-compile-remove(DNS) */
|
32566
32643
|
const onClickNoiseSuppression = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
|
32567
32644
|
if (isDeepNoiseSuppressionOn) {
|
@@ -32614,6 +32691,7 @@ const CallControls = (props) => {
|
|
32614
32691
|
if (showReactionButtonInControlBar) {
|
32615
32692
|
numberOfButtons++;
|
32616
32693
|
}
|
32694
|
+
const isRoomsCall = useSelector$1(getIsRoomsCall);
|
32617
32695
|
const moreButtonContextualMenuItems = () => {
|
32618
32696
|
const items = [];
|
32619
32697
|
if (props.isMobile && props.onPeopleButtonClicked && isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton)) {
|
@@ -32633,7 +32711,7 @@ const CallControls = (props) => {
|
|
32633
32711
|
['data-ui-id']: 'call-composite-more-menu-people-button'
|
32634
32712
|
});
|
32635
32713
|
}
|
32636
|
-
if (!
|
32714
|
+
if (!isRoomsCall) {
|
32637
32715
|
items.push({
|
32638
32716
|
key: 'holdButtonKey',
|
32639
32717
|
text: localeStrings.component.strings.holdButton.tooltipOffContent,
|
@@ -32666,11 +32744,11 @@ const CallControls = (props) => {
|
|
32666
32744
|
showDevicesButtonInControlBar = false;
|
32667
32745
|
showMoreButton = isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton);
|
32668
32746
|
}
|
32669
|
-
const reactionResources =
|
32747
|
+
const reactionResources = useSelector$1(getReactionResources);
|
32670
32748
|
const raiseHandButtonIsEnabled = isEnabled$2(options === null || options === void 0 ? void 0 : options.raiseHandButton);
|
32671
32749
|
let showRaiseHandButtonInControlBar = raiseHandButtonIsEnabled;
|
32672
|
-
const role = (
|
32673
|
-
const hideRaiseHandButtonInRoomsCall =
|
32750
|
+
const role = useSelector$1(getRole);
|
32751
|
+
const hideRaiseHandButtonInRoomsCall = isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
|
32674
32752
|
if (showRaiseHandButtonInControlBar && (props.isMobile ? numberOfButtons < 5 : true)) {
|
32675
32753
|
numberOfButtons++;
|
32676
32754
|
}
|
@@ -32757,8 +32835,8 @@ const CallControls = (props) => {
|
|
32757
32835
|
showRaiseHandButtonInControlBar && !hideRaiseHandButtonInRoomsCall && (React.createElement(RaiseHand, { displayType: options === null || options === void 0 ? void 0 : options.displayType })),
|
32758
32836
|
screenShareButtonIsEnabled && (React.createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
|
32759
32837
|
showParticipantsButtonInControlBar && (React.createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (React.createElement(People, { checked: props.peopleButtonChecked, ariaLabel: peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.label, 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$4(options === null || options === void 0 ? void 0 : options.participantsButton), disableTooltip: props.isMobile })),
|
32760
|
-
showDevicesButtonInControlBar && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.devicesButton) })), (
|
32761
|
-
|
32838
|
+
showDevicesButtonInControlBar && (React.createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$4(options === null || options === void 0 ? void 0 : options.devicesButton) })), (_a = customButtons['primary']) === null || _a === void 0 ? void 0 :
|
32839
|
+
_a.slice(0, props.isMobile
|
32762
32840
|
? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
|
32763
32841
|
: CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
|
32764
32842
|
return (React.createElement(CustomButton, { key: `primary-custom-button-${i}`,
|
@@ -32769,10 +32847,6 @@ const CallControls = (props) => {
|
|
32769
32847
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React.createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
32770
32848
|
};
|
32771
32849
|
const isEnabled$2 = (option) => option !== false;
|
32772
|
-
/** @private */
|
32773
|
-
const isRoomsCallTrampoline = (adapter) => {
|
32774
|
-
return adapter.getState().isRoomsCall;
|
32775
|
-
};
|
32776
32850
|
|
32777
32851
|
// Copyright (c) Microsoft Corporation.
|
32778
32852
|
// Licensed under the MIT License.
|
@@ -34738,7 +34812,7 @@ const SidePane = (props) => {
|
|
34738
34812
|
if (!ContentRenderer && !OverrideContentRenderer) {
|
34739
34813
|
return React.createElement(EmptyElement, null);
|
34740
34814
|
}
|
34741
|
-
return (React.createElement(react.Stack, { verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView || (!props.showAddPeopleButton && (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? {} : sidePaneTokens },
|
34815
|
+
return (React.createElement(react.Stack, { "aria-label": props.ariaLabel, "data-is-focusable": !!props.ariaLabel, role: props.ariaLabel ? 'navigation' : undefined, tabIndex: props.ariaLabel ? 0 : undefined, verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView || (!props.showAddPeopleButton && (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? {} : sidePaneTokens },
|
34742
34816
|
HeaderToRender,
|
34743
34817
|
React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
|
34744
34818
|
React.createElement(react.Stack, { verticalFill: true, styles: scrollableContainer },
|
@@ -35200,9 +35274,8 @@ const PeoplePaneContent = (props) => {
|
|
35200
35274
|
const addParticipantToCall = React.useCallback((participant, options) => __awaiter$h(void 0, void 0, void 0, function* () {
|
35201
35275
|
yield adapter.addParticipant(participant, options);
|
35202
35276
|
}), [adapter]);
|
35203
|
-
const alternateCallerId = adapter.getState().alternateCallerId;
|
35204
35277
|
const participantListDefaultProps = usePropsFor$1(ParticipantList$l);
|
35205
|
-
const removeButtonAllowed = canRemoveParticipants(
|
35278
|
+
const removeButtonAllowed = canRemoveParticipants(props.role);
|
35206
35279
|
const setDrawerMenuItemsForParticipant = React.useMemo(() => {
|
35207
35280
|
return (participant) => {
|
35208
35281
|
if (participant) {
|
@@ -35240,9 +35313,9 @@ const PeoplePaneContent = (props) => {
|
|
35240
35313
|
if (props.mobileView) {
|
35241
35314
|
return (React.createElement(react.Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens, "data-ui-id": "people-pane-content" },
|
35242
35315
|
React.createElement(react.Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
|
35243
|
-
React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: alternateCallerId })));
|
35316
|
+
React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: props.alternateCallerId })));
|
35244
35317
|
}
|
35245
|
-
return (React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: alternateCallerId }));
|
35318
|
+
return (React.createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings, onAddParticipant: addParticipantToCall, alternateCallerId: props.alternateCallerId }));
|
35246
35319
|
};
|
35247
35320
|
/**
|
35248
35321
|
* Create default contextual menu items for particant
|
@@ -35272,13 +35345,11 @@ const createDefaultContextualMenuItems = (participant, strings, onRemoveParticip
|
|
35272
35345
|
}
|
35273
35346
|
return menuItems;
|
35274
35347
|
};
|
35275
|
-
const canRemoveParticipants = (
|
35276
|
-
var _a;
|
35348
|
+
const canRemoveParticipants = (role) => {
|
35277
35349
|
// TODO: We should be using the removeParticipant capability here but there is an SDK bug for Rooms where a
|
35278
35350
|
// Presenter's removeParticipant capability is {isPresent: false, reason: 'CapabilityNotApplicableForTheCallType'}.
|
35279
35351
|
// But a Presenter in Rooms should be able to remove participants according to the following documentation
|
35280
35352
|
// https://learn.microsoft.com/en-us/azure/communication-services/concepts/rooms/room-concept#predefined-participant-roles-and-permissions
|
35281
|
-
const role = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role;
|
35282
35353
|
const canRemove = role === 'Presenter' || role === 'Unknown' || role === undefined;
|
35283
35354
|
return canRemove;
|
35284
35355
|
};
|
@@ -35520,11 +35591,13 @@ const usePeoplePane = (props) => {
|
|
35520
35591
|
localeStrings.unpinParticipantMenuItemAriaLabel,
|
35521
35592
|
localeStrings.pinParticipantMenuItemAriaLabel
|
35522
35593
|
]);
|
35594
|
+
const role = useSelector$1(getRole);
|
35595
|
+
const alternateCallerId = useSelector$1(getAlternateCallerId);
|
35523
35596
|
const onRenderContent = React.useCallback(() => {
|
35524
35597
|
return (React.createElement(React.Fragment, null,
|
35525
35598
|
/* @conditional-compile-remove(soft-mute) */
|
35526
35599
|
React.createElement(Prompt, Object.assign({}, muteAllPromptLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onMuteAllPromptConfirm(), isOpen: showMuteAllPrompt, onCancel: () => setShowMuteAllPrompt(false) })),
|
35527
|
-
React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants })));
|
35600
|
+
React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants, role: role, alternateCallerId: alternateCallerId })));
|
35528
35601
|
}, [
|
35529
35602
|
inviteLink,
|
35530
35603
|
mobileView,
|
@@ -35534,6 +35607,8 @@ const usePeoplePane = (props) => {
|
|
35534
35607
|
setParticipantActioned,
|
35535
35608
|
sidePaneHeaderMenuProps,
|
35536
35609
|
pinnedParticipants,
|
35610
|
+
role,
|
35611
|
+
alternateCallerId,
|
35537
35612
|
/* @conditional-compile-remove(soft-mute) */ showMuteAllPrompt,
|
35538
35613
|
/* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
|
35539
35614
|
/* @conditional-compile-remove(soft-mute) */ muteAllPromptLabels,
|
@@ -35830,9 +35905,8 @@ const VideoEffectsPaneContent = (props) => {
|
|
35830
35905
|
}
|
35831
35906
|
}
|
35832
35907
|
];
|
35833
|
-
|
35834
|
-
|
35835
|
-
videoEffectImages.forEach((img) => {
|
35908
|
+
if (props.backgroundImages) {
|
35909
|
+
props.backgroundImages.forEach((img) => {
|
35836
35910
|
var _a;
|
35837
35911
|
videoEffects.push({
|
35838
35912
|
itemKey: img.key,
|
@@ -35846,7 +35920,13 @@ const VideoEffectsPaneContent = (props) => {
|
|
35846
35920
|
});
|
35847
35921
|
}
|
35848
35922
|
return videoEffects;
|
35849
|
-
}, [
|
35923
|
+
}, [
|
35924
|
+
strings.removeBackgroundEffectButtonLabel,
|
35925
|
+
strings.removeBackgroundTooltip,
|
35926
|
+
strings.blurBackgroundEffectButtonLabel,
|
35927
|
+
strings.blurBackgroundTooltip,
|
35928
|
+
props.backgroundImages
|
35929
|
+
]);
|
35850
35930
|
const onEffectChange = React.useCallback((effectKey) => __awaiter$g(void 0, void 0, void 0, function* () {
|
35851
35931
|
if (effectKey === 'blur') {
|
35852
35932
|
const blurEffect = {
|
@@ -35931,12 +36011,13 @@ const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestErrors, o
|
|
35931
36011
|
}, [closePane, locale.strings, mobileView]);
|
35932
36012
|
const latestVideoEffectError = latestErrors.find((error) => error.type === 'unableToStartVideoEffect');
|
35933
36013
|
const updateFocusHandle = React.useMemo(() => React.createRef(), []);
|
36014
|
+
const backgroundImages = useSelector$1(getVideoBackgroundImages);
|
35934
36015
|
const onRenderContent = React.useCallback(() => {
|
35935
36016
|
return (React.createElement(VideoEffectsPaneContent, { onDismissError: onDismissError, activeVideoEffectError: latestVideoEffectError, activeVideoEffectChange: () => {
|
35936
36017
|
// Clear any existing video effects error when the user clicks on a new video effect
|
35937
36018
|
latestVideoEffectError && (onDismissError === null || onDismissError === void 0 ? void 0 : onDismissError(latestVideoEffectError));
|
35938
|
-
}, updateFocusHandle: updateFocusHandle }));
|
35939
|
-
}, [latestVideoEffectError, onDismissError, updateFocusHandle]);
|
36019
|
+
}, updateFocusHandle: updateFocusHandle, backgroundImages: backgroundImages }));
|
36020
|
+
}, [latestVideoEffectError, onDismissError, updateFocusHandle, backgroundImages]);
|
35940
36021
|
const sidePaneRenderer = React.useMemo(() => ({
|
35941
36022
|
headerRenderer: onRenderHeader,
|
35942
36023
|
contentRenderer: onRenderContent,
|
@@ -36146,10 +36227,9 @@ const DRAG_OPTIONS = {
|
|
36146
36227
|
* @private
|
36147
36228
|
*/
|
36148
36229
|
const ModalLocalAndRemotePIP = (props) => {
|
36149
|
-
var _a
|
36230
|
+
var _a;
|
36150
36231
|
const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;
|
36151
|
-
const
|
36152
|
-
const role = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role;
|
36232
|
+
const role = useSelector$1(getRole);
|
36153
36233
|
const locale = useLocale();
|
36154
36234
|
const pictureInPictureProps = useSelector$1(localAndRemotePIPSelector);
|
36155
36235
|
const [touchStartTouches, setTouchStartTouches] = React.useState(null);
|
@@ -36195,7 +36275,7 @@ const ModalLocalAndRemotePIP = (props) => {
|
|
36195
36275
|
if (role === 'Consumer' && !remoteParticipant) {
|
36196
36276
|
return null;
|
36197
36277
|
}
|
36198
|
-
const modalStylesThemed = react.concatStyleSets(modalStyle, (
|
36278
|
+
const modalStylesThemed = react.concatStyleSets(modalStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.modal);
|
36199
36279
|
return (React.createElement(react.Stack, { styles: rootStyles },
|
36200
36280
|
React.createElement(react.Stack, { onTouchStart: onTouchStart, onTouchEnd: onTouchEnd },
|
36201
36281
|
React.createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS, styles: modalStylesThemed, layerProps: { hostId: props.modalLayerHostId }, minDragPosition: props.minDragPosition, maxDragPosition: props.maxDragPosition },
|
@@ -36562,7 +36642,7 @@ const MAX_PINNED_REMOTE_VIDEO_TILES = 4;
|
|
36562
36642
|
* @private
|
36563
36643
|
*/
|
36564
36644
|
const CallArrangement = (props) => {
|
36565
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l
|
36645
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
36566
36646
|
const containerClassName = React.useMemo(() => {
|
36567
36647
|
return props.mobileView ? containerStyleMobile : containerStyleDesktop;
|
36568
36648
|
}, [props.mobileView]);
|
@@ -36614,7 +36694,7 @@ const CallArrangement = (props) => {
|
|
36614
36694
|
setParticipantActioned
|
36615
36695
|
]);
|
36616
36696
|
const locale = useLocale();
|
36617
|
-
const role = (
|
36697
|
+
const role = useSelector$1(getRole);
|
36618
36698
|
const videoGalleryProps = usePropsFor$1(VideoGallery);
|
36619
36699
|
/* @conditional-compile-remove(soft-mute) */
|
36620
36700
|
const muteAllHandlers = useHandlers();
|
@@ -36663,7 +36743,7 @@ const CallArrangement = (props) => {
|
|
36663
36743
|
}, [onPinParticipant, onUnpinParticipant, pinnedParticipants]);
|
36664
36744
|
const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps);
|
36665
36745
|
const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps);
|
36666
|
-
const canRemoveSpotlight = (
|
36746
|
+
const canRemoveSpotlight = (_b = useSelector$1(getCapabilites)) === null || _b === void 0 ? void 0 : _b.removeParticipantsSpotlight.isPresent;
|
36667
36747
|
const stopAllSpotlight = React.useMemo(() => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined), [canRemoveSpotlight, adapter]);
|
36668
36748
|
const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(stopAllSpotlight, setIsPromptOpen, setPromptProps);
|
36669
36749
|
const onMuteParticipantPeoplePaneProps = React.useMemo(() => {
|
@@ -36737,8 +36817,8 @@ const CallArrangement = (props) => {
|
|
36737
36817
|
position: 'relative'
|
36738
36818
|
};
|
36739
36819
|
}, [isMobileWithActivePane, props.mobileView]);
|
36740
|
-
const onResolveVideoEffectDependency =
|
36741
|
-
const { openVideoEffectsPane } = useVideoEffectsPane(props.updateSidePaneRenderer, props.mobileView, props.latestErrors, props.onDismissError, cameraButtonRef);
|
36820
|
+
const onResolveVideoEffectDependency = useSelector$1(getVideoEffectsDependency);
|
36821
|
+
const { openVideoEffectsPane, isVideoEffectsPaneOpen } = useVideoEffectsPane(props.updateSidePaneRenderer, props.mobileView, props.latestErrors, props.onDismissError, cameraButtonRef);
|
36742
36822
|
const [showDrawer, setShowDrawer] = React.useState(false);
|
36743
36823
|
const onMoreButtonClicked = React.useCallback(() => {
|
36744
36824
|
setShowDrawer(true);
|
@@ -36781,7 +36861,7 @@ const CallArrangement = (props) => {
|
|
36781
36861
|
const galleryContainerStyles = React.useMemo(() => {
|
36782
36862
|
var _a;
|
36783
36863
|
return Object.assign(Object.assign({}, mediaGalleryContainerStyles$1), (((_a = props === null || props === void 0 ? void 0 : props.captionsOptions) === null || _a === void 0 ? void 0 : _a.height) === 'full' ? { root: { postion: 'absolute' } } : {}));
|
36784
|
-
}, [(
|
36864
|
+
}, [(_c = props === null || props === void 0 ? void 0 : props.captionsOptions) === null || _c === void 0 ? void 0 : _c.height]);
|
36785
36865
|
if (isTeamsMeeting) {
|
36786
36866
|
filteredLatestErrorNotifications
|
36787
36867
|
.filter((notification) => notification.type === 'teamsMeetingCallNetworkQualityLow')
|
@@ -36794,8 +36874,8 @@ const CallArrangement = (props) => {
|
|
36794
36874
|
const verticalControlBar = props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;
|
36795
36875
|
// Filter out shareScreen capability notifications if on mobile
|
36796
36876
|
const filteredCapabilitesChangedNotifications = props.mobileView
|
36797
|
-
? (
|
36798
|
-
: (
|
36877
|
+
? (_d = props.capabilitiesChangedNotificationBarProps) === null || _d === void 0 ? void 0 : _d.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
|
36878
|
+
: (_e = props.capabilitiesChangedNotificationBarProps) === null || _e === void 0 ? void 0 : _e.capabilitiesChangedNotifications;
|
36799
36879
|
/* @conditional-compile-remove(breakout-rooms) */
|
36800
36880
|
const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);
|
36801
36881
|
let latestNotifications = props.latestNotifications;
|
@@ -36805,17 +36885,18 @@ const CallArrangement = (props) => {
|
|
36805
36885
|
latestNotifications = props.mobileView
|
36806
36886
|
? (latestNotifications !== null && latestNotifications !== void 0 ? latestNotifications : []).filter((notification) => notification.type !== 'assignedBreakoutRoomOpenedPromptJoin')
|
36807
36887
|
: latestNotifications;
|
36888
|
+
const reactionResources = useSelector$1(getReactionResources);
|
36808
36889
|
return (React.createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles), id: props.id },
|
36809
36890
|
React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
|
36810
36891
|
React.createElement(react.Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
|
36811
|
-
((
|
36892
|
+
((_f = props.callControlProps) === null || _f === void 0 ? void 0 : _f.options) !== false && !isMobileWithActivePane && (React.createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
|
36812
36893
|
zIndex: CONTROL_BAR_Z_INDEX,
|
36813
36894
|
padding: verticalControlBar ? '0.25rem' : 'unset'
|
36814
|
-
}) }, isLegacyCallControlEnabled((
|
36895
|
+
}) }, isLegacyCallControlEnabled((_g = props.callControlProps) === null || _g === void 0 ? void 0 : _g.options) ? (React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
|
36815
36896
|
/* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef, onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined, onToggleTeamsMeetingConferenceModal: toggleTeamsMeetingConferenceModal, teamsMeetingConferenceModalPresent: showTeamsMeetingConferenceModal }))))),
|
36816
|
-
((
|
36897
|
+
((_h = props.callControlProps) === null || _h === void 0 ? void 0 : _h.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
|
36817
36898
|
React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked, disableButtonsForHoldScreen: isInLocalHold, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
|
36818
|
-
/* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, reactionResources:
|
36899
|
+
/* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, reactionResources: reactionResources, onClickMeetingPhoneInfo: onMeetingPhoneInfoClicked }))),
|
36819
36900
|
React.createElement(react.Stack, { horizontal: true, grow: true },
|
36820
36901
|
React.createElement(react.Stack.Item, { style: callCompositeContainerCSS },
|
36821
36902
|
React.createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true },
|
@@ -36837,7 +36918,7 @@ const CallArrangement = (props) => {
|
|
36837
36918
|
React.createElement(SidePane, { mobileView: props.mobileView, maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
|
36838
36919
|
? undefined
|
36839
36920
|
: togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
|
36840
|
-
isDisabled$4((
|
36921
|
+
isDisabled$4((_j = props.callControlProps.options) === null || _j === void 0 ? void 0 : _j.participantsButton), onChatButtonClicked: (_k = props.mobileChatTabHeader) === null || _k === void 0 ? void 0 : _k.onClick, disableChatButton: (_l = props.mobileChatTabHeader) === null || _l === void 0 ? void 0 : _l.disabled, showAddPeopleButton: !!props.callControlProps.callInvitationURL, ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined }),
|
36841
36922
|
props.mobileView && (React.createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, strings: modalStrings, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition, onDismissSidePane: () => {
|
36842
36923
|
closePeoplePane();
|
36843
36924
|
if (props.onCloseChatPane) {
|
@@ -36893,21 +36974,20 @@ const remoteVideoViewOptions = {
|
|
36893
36974
|
* @private
|
36894
36975
|
*/
|
36895
36976
|
const MediaGallery = (props) => {
|
36896
|
-
var _a, _b
|
36977
|
+
var _a, _b;
|
36897
36978
|
const { pinnedParticipants = [], setPinnedParticipants, setIsPromptOpen, setPromptProps, hideSpotlightButtons, videoTilesOptions, captionsOptions } = props;
|
36898
36979
|
const videoGalleryProps = usePropsFor$1(VideoGallery);
|
36899
36980
|
const cameraSwitcherCameras = useSelector$1(localVideoCameraCycleButtonSelector);
|
36900
36981
|
const cameraSwitcherCallback = useHandlers();
|
36901
36982
|
const announcerString = useParticipantChangedAnnouncement();
|
36902
|
-
const
|
36903
|
-
const
|
36904
|
-
const isRoomsCall = adapter.getState().isRoomsCall;
|
36983
|
+
const userRole = useSelector$1(getRole);
|
36984
|
+
const isRoomsCall = useSelector$1(getIsRoomsCall);
|
36905
36985
|
const containerRef = React.useRef(null);
|
36906
36986
|
const containerWidth = _useContainerWidth(containerRef);
|
36907
36987
|
const containerHeight = _useContainerHeight(containerRef);
|
36908
36988
|
const containerAspectRatio = containerWidth && containerHeight ? containerWidth / containerHeight : 0;
|
36909
|
-
const reactionResources =
|
36910
|
-
const layoutBasedOnTilePosition = getVideoGalleryLayoutBasedOnLocalOptions((
|
36989
|
+
const reactionResources = useSelector$1(getReactionResources);
|
36990
|
+
const layoutBasedOnTilePosition = getVideoGalleryLayoutBasedOnLocalOptions((_a = props.localVideoTileOptions) === null || _a === void 0 ? void 0 : _a.position);
|
36911
36991
|
const cameraSwitcherProps = React.useMemo(() => {
|
36912
36992
|
return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
|
36913
36993
|
}, [cameraSwitcherCallback, cameraSwitcherCameras]);
|
@@ -36922,7 +37002,7 @@ const MediaGallery = (props) => {
|
|
36922
37002
|
: props.isMobile
|
36923
37003
|
? { kind: 'drawer', hostId: props.drawerMenuHostId }
|
36924
37004
|
: { kind: 'contextual' };
|
36925
|
-
}, [(
|
37005
|
+
}, [(_b = props.remoteVideoTileMenuOptions) === null || _b === void 0 ? void 0 : _b.isHidden, props.isMobile, props.drawerMenuHostId]);
|
36926
37006
|
const overflowGalleryPosition = React.useMemo(() => {
|
36927
37007
|
/* @conditional-compile-remove(overflow-top-composite) */
|
36928
37008
|
if (props.userSetOverflowGalleryPosition === 'horizontalTop') {
|
@@ -37252,12 +37332,10 @@ var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
37252
37332
|
});
|
37253
37333
|
};
|
37254
37334
|
const DtmfDialpadPageContent = (props) => {
|
37255
|
-
var _a, _b;
|
37256
|
-
const { adapter } = props;
|
37257
|
-
const adapterState = adapter.getState();
|
37258
37335
|
const theme = react.useTheme();
|
37259
|
-
const
|
37260
|
-
const remoteParticipants = (
|
37336
|
+
const targetCallees = useSelector$1(getTargetCallees);
|
37337
|
+
const remoteParticipants = useSelector$1(getRemoteParticipants);
|
37338
|
+
const calleeId = targetCallees === null || targetCallees === void 0 ? void 0 : targetCallees[0];
|
37261
37339
|
let calleeName;
|
37262
37340
|
if (remoteParticipants) {
|
37263
37341
|
const remoteParticipantValues = Object.values(remoteParticipants);
|
@@ -37268,6 +37346,7 @@ const DtmfDialpadPageContent = (props) => {
|
|
37268
37346
|
calleeName = remoteParticipantValues.find((p) => p.identifier === calleeId);
|
37269
37347
|
}
|
37270
37348
|
}
|
37349
|
+
const adapter = useAdapter();
|
37271
37350
|
return (React.createElement(react.Stack, { style: { height: '100%', width: '100%', background: theme.palette.white } },
|
37272
37351
|
React.createElement(react.Stack, { verticalAlign: 'center', style: { margin: 'auto' } },
|
37273
37352
|
React.createElement(DtmfDialerContentTimer, null),
|
@@ -37298,8 +37377,7 @@ const DtmfDialerContentTimer = () => {
|
|
37298
37377
|
* @internal
|
37299
37378
|
*/
|
37300
37379
|
const DtmfDialpadPage = (props) => {
|
37301
|
-
|
37302
|
-
return React.createElement(DtmfDialpadPageContent, Object.assign({ adapter: adapter }, props, { mobileView: props.mobileView }));
|
37380
|
+
return React.createElement(DtmfDialpadPageContent, Object.assign({}, props, { mobileView: props.mobileView }));
|
37303
37381
|
};
|
37304
37382
|
|
37305
37383
|
// Copyright (c) Microsoft Corporation.
|
@@ -37816,18 +37894,18 @@ const localVideoViewOptions = {
|
|
37816
37894
|
* @private
|
37817
37895
|
*/
|
37818
37896
|
const LocalDeviceSettings = (props) => {
|
37819
|
-
var _a, _b
|
37897
|
+
var _a, _b;
|
37820
37898
|
const theme = useTheme();
|
37821
37899
|
const locale = useLocale();
|
37822
37900
|
const adapter = useAdapter();
|
37823
|
-
const onResolveVideoEffectDependency =
|
37901
|
+
const onResolveVideoEffectDependency = useSelector$1(getVideoEffectsDependency);
|
37824
37902
|
const defaultPlaceHolder = locale.strings.call.defaultPlaceHolder;
|
37825
37903
|
const cameraLabel = locale.strings.call.cameraLabel;
|
37826
37904
|
const soundLabel = locale.strings.call.soundLabel;
|
37827
37905
|
const noSpeakersLabel = locale.strings.call.noSpeakersLabel;
|
37828
37906
|
const noCameraLabel = locale.strings.call.noCamerasLabel;
|
37829
37907
|
const noMicLabel = locale.strings.call.noMicrophonesLabel;
|
37830
|
-
const role = (
|
37908
|
+
const role = useSelector$1(getRole);
|
37831
37909
|
const cameraPermissionGranted = props.cameraPermissionGranted;
|
37832
37910
|
const micPermissionGranted = props.microphonePermissionGranted;
|
37833
37911
|
const roleCanUseCamera = role !== 'Consumer';
|
@@ -37849,15 +37927,15 @@ const LocalDeviceSettings = (props) => {
|
|
37849
37927
|
const hasCameras = props.cameras.length > 0;
|
37850
37928
|
const hasMicrophones = props.microphones.length > 0;
|
37851
37929
|
const hasSpeakers = props.speakers.length > 0;
|
37852
|
-
/* @conditional-compile-remove(
|
37853
|
-
const isSafariWithNoSpeakers = ((
|
37930
|
+
/* @conditional-compile-remove(calling-environment-info) */
|
37931
|
+
const isSafariWithNoSpeakers = ((_a = useSelector$1(getEnvironmentInfo)) === null || _a === void 0 ? void 0 : _a.environment.browser.toLowerCase()) === 'safari' && !hasSpeakers;
|
37854
37932
|
const cameraGrantedDropdown = (React.createElement(react.Dropdown, { "data-ui-id": "call-composite-local-camera-settings", "aria-labelledby": 'call-composite-local-camera-settings-label', placeholder: hasCameras ? defaultPlaceHolder : noCameraLabel, options: cameraPermissionGranted ? getDropDownList(props.cameras) : [{ key: 'deniedOrUnknown', text: '' }], styles: dropDownStyles(theme), disabled: !cameraPermissionGranted || !hasCameras, errorMessage: props.cameraPermissionGranted === undefined || props.cameraPermissionGranted
|
37855
37933
|
? undefined
|
37856
37934
|
: locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted
|
37857
37935
|
? props.selectedCamera
|
37858
37936
|
? props.selectedCamera.id
|
37859
37937
|
: props.cameras
|
37860
|
-
? (
|
37938
|
+
? (_b = props.cameras[0]) === null || _b === void 0 ? void 0 : _b.id
|
37861
37939
|
: ''
|
37862
37940
|
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
37863
37941
|
props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);
|
@@ -37875,7 +37953,7 @@ const LocalDeviceSettings = (props) => {
|
|
37875
37953
|
props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);
|
37876
37954
|
}, onRenderTitle: (props) => onRenderTitle('Speaker', props) }));
|
37877
37955
|
const safariBrowserSpeakerDropdownTrampoline = () => {
|
37878
|
-
/* @conditional-compile-remove(
|
37956
|
+
/* @conditional-compile-remove(calling-environment-info) */
|
37879
37957
|
if (isSafariWithNoSpeakers) {
|
37880
37958
|
return React.createElement(React.Fragment, null);
|
37881
37959
|
}
|
@@ -38440,7 +38518,7 @@ var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
38440
38518
|
* @private
|
38441
38519
|
*/
|
38442
38520
|
const ConfigurationPage = (props) => {
|
38443
|
-
var _a
|
38521
|
+
var _a;
|
38444
38522
|
const { startCallHandler, mobileView, modalLayerHostId,
|
38445
38523
|
/* @conditional-compile-remove(call-readiness) */ deviceChecks,
|
38446
38524
|
/* @conditional-compile-remove(call-readiness) */ onPermissionsTroubleshootingClick,
|
@@ -38457,12 +38535,11 @@ const ConfigurationPage = (props) => {
|
|
38457
38535
|
/* @conditional-compile-remove(call-readiness) */
|
38458
38536
|
getDevicePermissionState(setVideoState, setAudioState);
|
38459
38537
|
const errorBarProps = usePropsFor$1(ErrorBar);
|
38460
|
-
const
|
38461
|
-
const deviceState = adapter.getState().devices;
|
38538
|
+
const microphones = useSelector$1(getMicrophones);
|
38462
38539
|
/* @conditional-compile-remove(unsupported-browser) */
|
38463
|
-
const environmentInfo =
|
38464
|
-
let disableStartCallButton = !microphonePermissionGranted || (
|
38465
|
-
const role = (
|
38540
|
+
const environmentInfo = useSelector$1(getEnvironmentInfo);
|
38541
|
+
let disableStartCallButton = !microphonePermissionGranted || (microphones === null || microphones === void 0 ? void 0 : microphones.length) === 0;
|
38542
|
+
const role = useSelector$1(getRole);
|
38466
38543
|
const isCameraOn = useSelector$1(localVideoSelector).isAvailable;
|
38467
38544
|
let filteredLatestErrors = props.latestErrors;
|
38468
38545
|
// TODO: move this logic to the error bar selector once role is plumbed from the headless SDK
|
@@ -38478,6 +38555,8 @@ const ConfigurationPage = (props) => {
|
|
38478
38555
|
disableStartCallButton = false;
|
38479
38556
|
}
|
38480
38557
|
/* @conditional-compile-remove(call-readiness) */
|
38558
|
+
const cameras = useSelector$1(getCameras);
|
38559
|
+
/* @conditional-compile-remove(call-readiness) */
|
38481
38560
|
// Overrides role permissions if CallCompositeOptions deviceChecks are set
|
38482
38561
|
if (deviceChecks) {
|
38483
38562
|
if (['doNotPrompt', 'optional'].includes(deviceChecks.camera) &&
|
@@ -38485,7 +38564,7 @@ const ConfigurationPage = (props) => {
|
|
38485
38564
|
disableStartCallButton = false;
|
38486
38565
|
}
|
38487
38566
|
else if (deviceChecks.camera === 'required') {
|
38488
|
-
disableStartCallButton = !cameraPermissionGranted || (
|
38567
|
+
disableStartCallButton = !cameraPermissionGranted || (cameras === null || cameras === void 0 ? void 0 : cameras.length) === 0;
|
38489
38568
|
}
|
38490
38569
|
}
|
38491
38570
|
const locale = useLocale();
|
@@ -38538,7 +38617,7 @@ const ConfigurationPage = (props) => {
|
|
38538
38617
|
hostId: modalLayerHostId
|
38539
38618
|
}), [modalLayerHostId]);
|
38540
38619
|
const filteredErrorBarProps = React.useMemo(() => (Object.assign(Object.assign({}, errorBarProps), { activeErrorMessages: filteredLatestErrors })), [errorBarProps, filteredLatestErrors]);
|
38541
|
-
const containerStyles = React.useMemo(() => { var _a; return configurationContainerStyle(!mobileView, (_a = props.backgroundImage) === null || _a === void 0 ? void 0 : _a.url); }, [mobileView, (
|
38620
|
+
const containerStyles = React.useMemo(() => { var _a; return configurationContainerStyle(!mobileView, (_a = props.backgroundImage) === null || _a === void 0 ? void 0 : _a.url); }, [mobileView, (_a = props.backgroundImage) === null || _a === void 0 ? void 0 : _a.url]);
|
38542
38621
|
return (React.createElement(react.Stack, { styles: containerStyles },
|
38543
38622
|
React.createElement(react.Stack, { styles: bannerNotificationStyles },
|
38544
38623
|
React.createElement(ConfigurationPageErrorBar
|
@@ -38591,7 +38670,7 @@ const ConfigurationPage = (props) => {
|
|
38591
38670
|
React.createElement(react.Stack, { styles: mobileWithPreview ? startCallButtonContainerStyleMobile : startCallButtonContainerStyleDesktop, horizontalAlign: mobileWithPreview ? 'stretch' : 'end' },
|
38592
38671
|
React.createElement(StartCallButton, { className: mobileWithPreview ? startCallButtonStyleMobile : startCallButtonStyleDesktop, onClick: startCall, disabled: disableStartCallButton, hideIcon: true }))))),
|
38593
38672
|
React.createElement(react.Panel, { isOpen: isVideoEffectsPaneOpen, hasCloseButton: false, isBlocking: false, isHiddenOnDismiss: false, styles: panelStyles, focusTrapZoneProps: panelFocusProps, layerProps: panelLayerProps, type: react.PanelType.custom, customWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` },
|
38594
|
-
React.createElement(SidePane, { mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer, maxWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem`, minWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` })))));
|
38673
|
+
React.createElement(SidePane, { ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined, mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer, maxWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem`, minWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` })))));
|
38595
38674
|
};
|
38596
38675
|
const localPreviewTrampoline = (mobileView, doNotShow) => {
|
38597
38676
|
if (doNotShow) {
|
@@ -39577,16 +39656,15 @@ const MainScreen = (props) => {
|
|
39577
39656
|
const { camerasCount, microphonesCount } = useSelector$1(deviceCountSelector);
|
39578
39657
|
const hasCameras = camerasCount > 0;
|
39579
39658
|
const hasMicrophones = microphonesCount > 0;
|
39659
|
+
const role = useSelector$1(getRole);
|
39580
39660
|
React.useEffect(() => {
|
39581
39661
|
(() => __awaiter$9(void 0, void 0, void 0, function* () {
|
39582
|
-
var _a, _b, _c, _d
|
39583
|
-
const constrain = getQueryOptions({
|
39584
|
-
role: (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.role
|
39585
|
-
});
|
39662
|
+
var _a, _b, _c, _d;
|
39663
|
+
const constrain = getQueryOptions({ role });
|
39586
39664
|
/* @conditional-compile-remove(call-readiness) */
|
39587
39665
|
{
|
39588
|
-
constrain.audio = ((
|
39589
|
-
constrain.video = ((
|
39666
|
+
constrain.audio = ((_b = (_a = props.options) === null || _a === void 0 ? void 0 : _a.deviceChecks) === null || _b === void 0 ? void 0 : _b.microphone) === 'doNotPrompt' ? false : constrain.audio;
|
39667
|
+
constrain.video = ((_d = (_c = props.options) === null || _c === void 0 ? void 0 : _c.deviceChecks) === null || _d === void 0 ? void 0 : _d.camera) === 'doNotPrompt' ? false : constrain.video;
|
39590
39668
|
}
|
39591
39669
|
yield adapter.askDevicePermission(constrain);
|
39592
39670
|
adapter.queryCameras();
|
@@ -39595,6 +39673,7 @@ const MainScreen = (props) => {
|
|
39595
39673
|
}))();
|
39596
39674
|
}, [
|
39597
39675
|
adapter,
|
39676
|
+
role,
|
39598
39677
|
/* @conditional-compile-remove(call-readiness) */
|
39599
39678
|
(_a = props.options) === null || _a === void 0 ? void 0 : _a.deviceChecks,
|
39600
39679
|
// Ensure we re-ask for permissions if the number of devices goes from 0 -> n during a call
|
@@ -39702,7 +39781,7 @@ const MainScreen = (props) => {
|
|
39702
39781
|
const callees = useSelector$1(getTargetCallees);
|
39703
39782
|
const locale = useLocale();
|
39704
39783
|
const palette = useTheme().palette;
|
39705
|
-
const alternateCallerId =
|
39784
|
+
const alternateCallerId = useSelector$1(getAlternateCallerId);
|
39706
39785
|
const leavePageStyle = React.useMemo(() => leavingPageStyle(palette), [palette]);
|
39707
39786
|
let pageElement;
|
39708
39787
|
const [pinnedParticipants, setPinnedParticipants] = React.useState([]);
|
@@ -39767,11 +39846,13 @@ const MainScreen = (props) => {
|
|
39767
39846
|
}
|
39768
39847
|
useEndedCallConsoleErrors(endedCall);
|
39769
39848
|
/* @conditional-compile-remove(unsupported-browser) */
|
39849
|
+
const environmentInfo = useSelector$1(getEnvironmentInfo);
|
39850
|
+
/* @conditional-compile-remove(unsupported-browser) */
|
39770
39851
|
switch (page) {
|
39771
39852
|
case 'unsupportedEnvironment':
|
39772
39853
|
pageElement = (React.createElement(React.Fragment, null,
|
39773
39854
|
/* @conditional-compile-remove(unsupported-browser) */
|
39774
|
-
React.createElement(UnsupportedBrowserPage, { onTroubleshootingClick: (_s = props.options) === null || _s === void 0 ? void 0 : _s.onEnvironmentInfoTroubleshootingClick, environmentInfo:
|
39855
|
+
React.createElement(UnsupportedBrowserPage, { onTroubleshootingClick: (_s = props.options) === null || _s === void 0 ? void 0 : _s.onEnvironmentInfoTroubleshootingClick, environmentInfo: environmentInfo })));
|
39775
39856
|
break;
|
39776
39857
|
}
|
39777
39858
|
if (!pageElement) {
|
@@ -44090,8 +44171,8 @@ const useSelector = (selector, selectorProps, type) => {
|
|
44090
44171
|
// Return undefined and skip execution when not in that context
|
44091
44172
|
const callingMode = !type || type === 'calling';
|
44092
44173
|
const chatMode = !type || type === 'chat';
|
44093
|
-
const callProps = useSelector$
|
44094
|
-
const chatProps = useSelector$
|
44174
|
+
const callProps = useSelector$4(callingMode ? selector : undefined, selectorProps);
|
44175
|
+
const chatProps = useSelector$3(chatMode ? selector : undefined, selectorProps);
|
44095
44176
|
return callProps !== null && callProps !== void 0 ? callProps : chatProps;
|
44096
44177
|
};
|
44097
44178
|
/**
|
@@ -44121,8 +44202,8 @@ const useSelector = (selector, selectorProps, type) => {
|
|
44121
44202
|
const usePropsFor = (component, type) => {
|
44122
44203
|
const callingSelector = type === 'calling' || !type ? getSelector$1(component) : undefined;
|
44123
44204
|
const chatSelector = type === 'chat' || !type ? getSelector(component) : undefined;
|
44124
|
-
const callProps = useSelector$
|
44125
|
-
const chatProps = useSelector$
|
44205
|
+
const callProps = useSelector$4(callingSelector);
|
44206
|
+
const chatProps = useSelector$3(chatSelector);
|
44126
44207
|
const callingHandlers = useHandlers$3();
|
44127
44208
|
const chatHandlers = useHandlers$2();
|
44128
44209
|
if (chatProps) {
|
@@ -44306,4 +44387,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
44306
44387
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
44307
44388
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
44308
44389
|
exports.useTheme = useTheme;
|
44309
|
-
//# sourceMappingURL=index-
|
44390
|
+
//# sourceMappingURL=index-Bj4O6YVq.js.map
|