@azure/communication-react 1.7.1-alpha-202308290013 → 1.7.1-alpha-202308310013
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 +96 -9
- package/dist/dist-cjs/communication-react/index.js +351 -85
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +6 -2
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +2 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js +2 -2
- package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ImageGallery.js +6 -10
- package/dist/dist-esm/react-components/src/components/ImageGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +2 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +2 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +4 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +21 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.d.ts +9 -7
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +31 -37
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +0 -5
- package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +4 -7
- package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/themes.d.ts +22 -3
- package/dist/dist-esm/react-components/src/theming/themes.js +16 -0
- package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +23 -5
- 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 +5 -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.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +17 -6
- 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/CapabilitiesChangedNotificationBar.d.ts +88 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +86 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +10 -2
- 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/Microphone.js +10 -2
- 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/index.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +2 -0
- 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/HoldPage.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +9 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +12 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +14 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.d.ts +9 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.d.ts +33 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +99 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.js +6 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +15 -1
- package/package.json +8 -8
@@ -178,7 +178,7 @@ const _isValidIdentifier = (identifier) => {
|
|
178
178
|
// Copyright (c) Microsoft Corporation.
|
179
179
|
// Licensed under the MIT license.
|
180
180
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
181
|
-
var telemetryVersion = '1.7.1-alpha-
|
181
|
+
var telemetryVersion = '1.7.1-alpha-202308310013';
|
182
182
|
|
183
183
|
// Copyright (c) Microsoft Corporation.
|
184
184
|
/**
|
@@ -335,7 +335,7 @@ const getDeviceManager$1 = (state) => state.deviceManager;
|
|
335
335
|
/**
|
336
336
|
* @private
|
337
337
|
*/
|
338
|
-
const getRole = (state, props) => {
|
338
|
+
const getRole$1 = (state, props) => {
|
339
339
|
var _a;
|
340
340
|
/* @conditional-compile-remove(rooms) */
|
341
341
|
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.role;
|
@@ -344,7 +344,7 @@ const getRole = (state, props) => {
|
|
344
344
|
/**
|
345
345
|
* @private
|
346
346
|
*/
|
347
|
-
const getCapabilites = (state, props) => { var _a, _b; return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.
|
347
|
+
const getCapabilites = (state, props) => { var _a, _b; return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities; };
|
348
348
|
/**
|
349
349
|
* @private
|
350
350
|
*/
|
@@ -567,7 +567,7 @@ const microphoneButtonSelector = reselect__namespace.createSelector([
|
|
567
567
|
getIsMuted,
|
568
568
|
getDeviceManager$1,
|
569
569
|
/* @conditional-compile-remove(capabilities) */ getCapabilites,
|
570
|
-
/* @conditional-compile-remove(capabilities) */ getRole
|
570
|
+
/* @conditional-compile-remove(capabilities) */ getRole$1
|
571
571
|
], (callExists, isMuted, deviceManager,
|
572
572
|
/* @conditional-compile-remove(capabilities) */ capabilities,
|
573
573
|
/* @conditional-compile-remove(capabilities) */ role) => {
|
@@ -593,7 +593,7 @@ const cameraButtonSelector = reselect__namespace.createSelector([
|
|
593
593
|
getLocalVideoStreams$1,
|
594
594
|
getDeviceManager$1,
|
595
595
|
/* @conditional-compile-remove(capabilities) */ getCapabilites,
|
596
|
-
/* @conditional-compile-remove(capabilities) */ getRole
|
596
|
+
/* @conditional-compile-remove(capabilities) */ getRole$1
|
597
597
|
], (localVideoStreams, deviceManager,
|
598
598
|
/* @conditional-compile-remove(capabilities) */ capabilities,
|
599
599
|
/* @conditional-compile-remove(capabilities) */ role) => {
|
@@ -635,7 +635,7 @@ const screenShareButtonSelector = reselect__namespace.createSelector([
|
|
635
635
|
getIsScreenSharingOn,
|
636
636
|
/* @conditional-compile-remove(PSTN-calls) */ getCallState,
|
637
637
|
/* @conditional-compile-remove(capabilities) */ getCapabilites,
|
638
|
-
/* @conditional-compile-remove(capabilities) */ getRole
|
638
|
+
/* @conditional-compile-remove(capabilities) */ getRole$1
|
639
639
|
], (isScreenSharingOn,
|
640
640
|
/* @conditional-compile-remove(PSTN-calls) */ callState,
|
641
641
|
/* @conditional-compile-remove(capabilities) */ capabilities,
|
@@ -2028,11 +2028,11 @@ class CallContext$2 {
|
|
2028
2028
|
});
|
2029
2029
|
}
|
2030
2030
|
/* @conditional-compile-remove(capabilities) */
|
2031
|
-
setCapabilities(callId, capabilities) {
|
2031
|
+
setCapabilities(callId, capabilities, capabilitiesChangeInfo) {
|
2032
2032
|
this.modifyState((draft) => {
|
2033
2033
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2034
2034
|
if (call) {
|
2035
|
-
call.
|
2035
|
+
call.capabilitiesFeature = { capabilities, latestCapabilitiesChangeInfo: capabilitiesChangeInfo };
|
2036
2036
|
}
|
2037
2037
|
});
|
2038
2038
|
}
|
@@ -3559,8 +3559,8 @@ class CapabilitiesSubscriber {
|
|
3559
3559
|
this.unsubscribe = () => {
|
3560
3560
|
this._capabilitiesFeature.off('capabilitiesChanged', this.capabilitiesChanged);
|
3561
3561
|
};
|
3562
|
-
this.capabilitiesChanged = () => {
|
3563
|
-
this._context.setCapabilities(this._callIdRef.callId, this._capabilitiesFeature.capabilities);
|
3562
|
+
this.capabilitiesChanged = (data) => {
|
3563
|
+
this._context.setCapabilities(this._callIdRef.callId, this._capabilitiesFeature.capabilities, data);
|
3564
3564
|
};
|
3565
3565
|
this._callIdRef = callIdRef;
|
3566
3566
|
this._context = context;
|
@@ -5960,6 +5960,14 @@ const lightTheme = {
|
|
5960
5960
|
/* @conditional-compile-remove(raise-hand) */
|
5961
5961
|
raiseHandGold: '#eaa300'
|
5962
5962
|
},
|
5963
|
+
/* @conditional-compile-remove(image-gallery) */
|
5964
|
+
chatPalette: {
|
5965
|
+
modalOverlayBlack: '#000000',
|
5966
|
+
modalTitleWhite: '#ffffff',
|
5967
|
+
modalButtonBackground: '#1b1a19',
|
5968
|
+
modalButtonBackgroundHover: '#252423',
|
5969
|
+
modalButtonBackgroundActive: '#292827'
|
5970
|
+
},
|
5963
5971
|
semanticColors: {
|
5964
5972
|
errorText: '#a80000'
|
5965
5973
|
}
|
@@ -6002,6 +6010,14 @@ const darkTheme = {
|
|
6002
6010
|
/* @conditional-compile-remove(raise-hand) */
|
6003
6011
|
raiseHandGold: '#eaa300'
|
6004
6012
|
},
|
6013
|
+
/* @conditional-compile-remove(image-gallery) */
|
6014
|
+
chatPalette: {
|
6015
|
+
modalOverlayBlack: '#000000',
|
6016
|
+
modalTitleWhite: '#ffffff',
|
6017
|
+
modalButtonBackground: '#1b1a19',
|
6018
|
+
modalButtonBackgroundHover: '#252423',
|
6019
|
+
modalButtonBackgroundActive: '#292827'
|
6020
|
+
},
|
6005
6021
|
semanticColors: {
|
6006
6022
|
errorText: '#f1707b'
|
6007
6023
|
}
|
@@ -7294,11 +7310,6 @@ const unEscapeHtmlCharacters = (text) => {
|
|
7294
7310
|
};
|
7295
7311
|
|
7296
7312
|
// Copyright (c) Microsoft Corporation.
|
7297
|
-
/**
|
7298
|
-
* @private
|
7299
|
-
* z-index to ensure that chat container has lower z-index than mention popover
|
7300
|
-
*/
|
7301
|
-
const CHAT_CONTAINER_ZINDEX$1 = 1;
|
7302
7313
|
/**
|
7303
7314
|
* @private
|
7304
7315
|
*/
|
@@ -7306,8 +7317,10 @@ const mentionPopoverContainerStyle = (theme) => react.mergeStyles({
|
|
7306
7317
|
boxShadow: theme.effects.elevation16,
|
7307
7318
|
background: theme.semanticColors.bodyBackground,
|
7308
7319
|
overflow: 'visible',
|
7309
|
-
// zIndex to set the mentionPopover
|
7310
|
-
|
7320
|
+
// zIndex to set the mentionPopover
|
7321
|
+
// Temporary set to a hardcoded high number to make sure it is on top of the other components
|
7322
|
+
// Will be replaced by a proper z-index solution after the Fluent 9 migration
|
7323
|
+
zIndex: 10000
|
7311
7324
|
});
|
7312
7325
|
/**
|
7313
7326
|
* @private
|
@@ -8523,15 +8536,14 @@ const cancelIcon = { iconName: 'Cancel' };
|
|
8523
8536
|
const downloadIcon = {
|
8524
8537
|
iconName: 'Download'
|
8525
8538
|
};
|
8539
|
+
/* @conditional-compile-remove(image-gallery) */
|
8526
8540
|
/**
|
8527
8541
|
* @private
|
8528
8542
|
*/
|
8529
|
-
const overlayStyles = (theme
|
8543
|
+
const overlayStyles = (theme) => {
|
8530
8544
|
return {
|
8531
8545
|
root: {
|
8532
|
-
|
8533
|
-
// In dark theme, theme.palette.white is actually black.
|
8534
|
-
background: isDarkThemed ? theme.palette.white : theme.palette.black,
|
8546
|
+
background: theme.chatPalette.modalOverlayBlack,
|
8535
8547
|
opacity: '0.85'
|
8536
8548
|
}
|
8537
8549
|
};
|
@@ -8581,14 +8593,15 @@ const titleBarContainerStyle = {
|
|
8581
8593
|
alignContent: 'center',
|
8582
8594
|
alignItems: 'center'
|
8583
8595
|
};
|
8596
|
+
/* @conditional-compile-remove(image-gallery) */
|
8584
8597
|
/**
|
8585
8598
|
* @private
|
8586
8599
|
*/
|
8587
|
-
const titleStyle$2 = (theme
|
8600
|
+
const titleStyle$2 = (theme) => {
|
8588
8601
|
return {
|
8589
8602
|
paddingLeft: '0.5rem',
|
8590
8603
|
marginLeft: '0.5rem',
|
8591
|
-
color:
|
8604
|
+
color: theme.chatPalette.modalTitleWhite,
|
8592
8605
|
fontFamily: 'inherit',
|
8593
8606
|
fontSize: '0.875rem',
|
8594
8607
|
fontStyle: 'normal',
|
@@ -8646,38 +8659,37 @@ const normalImageStyle = {
|
|
8646
8659
|
maxHeight: '100%',
|
8647
8660
|
maxWidth: '100%'
|
8648
8661
|
};
|
8662
|
+
/* @conditional-compile-remove(image-gallery) */
|
8649
8663
|
/**
|
8650
8664
|
* @private
|
8651
8665
|
*/
|
8652
|
-
const brokenImageStyle = (theme
|
8666
|
+
const brokenImageStyle = (theme) => {
|
8653
8667
|
return {
|
8654
|
-
|
8655
|
-
// In dark theme, theme.palette.black is actually white.
|
8656
|
-
color: isDarkThemed ? theme.palette.black : theme.palette.white
|
8668
|
+
color: theme.chatPalette.modalTitleWhite
|
8657
8669
|
};
|
8658
8670
|
};
|
8671
|
+
/* @conditional-compile-remove(image-gallery) */
|
8659
8672
|
/**
|
8660
8673
|
* @private
|
8661
8674
|
*/
|
8662
|
-
const closeButtonStyles = (theme
|
8675
|
+
const closeButtonStyles = (theme) => {
|
8663
8676
|
return {
|
8664
|
-
|
8665
|
-
// In dark theme, theme.palette.black is actually white.
|
8666
|
-
color: isDarkThemed ? theme.palette.black : theme.palette.white,
|
8677
|
+
color: theme.chatPalette.modalTitleWhite,
|
8667
8678
|
':hover': {
|
8668
|
-
color:
|
8669
|
-
backgroundColor:
|
8679
|
+
color: theme.chatPalette.modalTitleWhite,
|
8680
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundHover
|
8670
8681
|
},
|
8671
8682
|
':active': {
|
8672
|
-
color:
|
8673
|
-
backgroundColor:
|
8683
|
+
color: theme.chatPalette.modalTitleWhite,
|
8684
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundActive
|
8674
8685
|
}
|
8675
8686
|
};
|
8676
8687
|
};
|
8688
|
+
/* @conditional-compile-remove(image-gallery) */
|
8677
8689
|
/**
|
8678
8690
|
* @private
|
8679
8691
|
*/
|
8680
|
-
const downloadButtonStyle = (theme
|
8692
|
+
const downloadButtonStyle = (theme) => {
|
8681
8693
|
return {
|
8682
8694
|
margin: '0 0.5rem',
|
8683
8695
|
height: '32px',
|
@@ -8686,43 +8698,38 @@ const downloadButtonStyle = (theme, isDarkThemed) => {
|
|
8686
8698
|
fontWeight: 600,
|
8687
8699
|
padding: '0.38rem 0.75rem',
|
8688
8700
|
borderRadius: '4px',
|
8689
|
-
backgroundColor:
|
8690
|
-
color:
|
8701
|
+
backgroundColor: theme.chatPalette.modalButtonBackground,
|
8702
|
+
color: theme.chatPalette.modalTitleWhite,
|
8691
8703
|
whiteSpace: 'nowrap',
|
8692
8704
|
':hover': {
|
8693
|
-
|
8694
|
-
|
8695
|
-
color: isDarkThemed ? theme.palette.black : theme.palette.white,
|
8696
|
-
backgroundColor: isDarkThemed ? undefined : theme.palette.neutralPrimaryAlt
|
8705
|
+
color: theme.chatPalette.modalTitleWhite,
|
8706
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundHover
|
8697
8707
|
},
|
8698
8708
|
':active': {
|
8699
|
-
|
8700
|
-
|
8701
|
-
color: isDarkThemed ? theme.palette.black : theme.palette.white,
|
8702
|
-
backgroundColor: isDarkThemed ? undefined : theme.palette.neutralDark
|
8709
|
+
color: theme.chatPalette.modalTitleWhite,
|
8710
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundActive
|
8703
8711
|
},
|
8704
8712
|
'@media (max-width: 25rem)': {
|
8705
8713
|
display: 'none'
|
8706
8714
|
}
|
8707
8715
|
};
|
8708
8716
|
};
|
8717
|
+
/* @conditional-compile-remove(image-gallery) */
|
8709
8718
|
/**
|
8710
8719
|
* @private
|
8711
8720
|
*/
|
8712
|
-
const smallDownloadButtonContainerStyle = (theme
|
8721
|
+
const smallDownloadButtonContainerStyle = (theme) => {
|
8713
8722
|
return {
|
8714
8723
|
marginRight: '0.5rem',
|
8715
|
-
|
8716
|
-
// In dark theme, theme.palette.black is actually white.
|
8717
|
-
color: isDarkThemed ? theme.palette.black : theme.palette.white,
|
8724
|
+
color: theme.chatPalette.modalTitleWhite,
|
8718
8725
|
whiteSpace: 'nowrap',
|
8719
8726
|
':hover': {
|
8720
|
-
color:
|
8721
|
-
backgroundColor:
|
8727
|
+
color: theme.chatPalette.modalTitleWhite,
|
8728
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundHover
|
8722
8729
|
},
|
8723
8730
|
':active': {
|
8724
|
-
color:
|
8725
|
-
backgroundColor:
|
8731
|
+
color: theme.chatPalette.modalTitleWhite,
|
8732
|
+
backgroundColor: theme.chatPalette.modalButtonBackgroundActive
|
8726
8733
|
},
|
8727
8734
|
'@media (min-width: 25rem)': {
|
8728
8735
|
display: 'none'
|
@@ -8740,13 +8747,11 @@ const smallDownloadButtonContainerStyle = (theme, isDarkThemed) => {
|
|
8740
8747
|
const ImageGallery = (props) => {
|
8741
8748
|
const { isOpen, images, onImageDownloadButtonClicked, onDismiss, onError, startIndex = 0 } = props;
|
8742
8749
|
const theme = useTheme();
|
8743
|
-
const isDarkTheme = isDarkThemed(theme);
|
8744
8750
|
/* @conditional-compile-remove(image-gallery) */
|
8745
8751
|
const localeStrings = useLocale$1().strings.imageGallery;
|
8746
8752
|
const [isImageLoaded, setIsImageLoaded] = React.useState(true);
|
8747
|
-
const imageStyle = isImageLoaded ? normalImageStyle : brokenImageStyle(theme
|
8753
|
+
const imageStyle = isImageLoaded ? normalImageStyle : brokenImageStyle(theme);
|
8748
8754
|
if (images.length <= startIndex) {
|
8749
|
-
console.log('Unable to display Image Gallery due to startIndex is out of range.');
|
8750
8755
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
8751
8756
|
}
|
8752
8757
|
const image = images[startIndex];
|
@@ -8754,13 +8759,13 @@ const ImageGallery = (props) => {
|
|
8754
8759
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(headerStyle) },
|
8755
8760
|
React__default['default'].createElement(react.Stack, { className: react.mergeStyles(titleBarContainerStyle) },
|
8756
8761
|
image.titleIcon,
|
8757
|
-
React__default['default'].createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle$2(theme
|
8762
|
+
React__default['default'].createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle$2(theme)), "aria-label": image.title }, image.title)),
|
8758
8763
|
React__default['default'].createElement(react.Stack, { className: react.mergeStyles(controlBarContainerStyle) },
|
8759
|
-
React__default['default'].createElement(react.DefaultButton, { className: react.mergeStyles(downloadButtonStyle(theme
|
8764
|
+
React__default['default'].createElement(react.DefaultButton, { className: react.mergeStyles(downloadButtonStyle(theme)),
|
8760
8765
|
/* @conditional-compile-remove(image-gallery) */
|
8761
8766
|
text: localeStrings.downloadButtonLabel, onClick: () => onImageDownloadButtonClicked(image.imageUrl, image.saveAsName), onRenderIcon: () => React__default['default'].createElement(react.Icon, { iconName: downloadIcon.iconName, className: react.mergeStyles(downloadIconStyle) }), "aria-live": 'polite', "aria-label": localeStrings.downloadButtonLabel }),
|
8762
|
-
React__default['default'].createElement(react.IconButton, { iconProps: downloadIcon, className: react.mergeStyles(smallDownloadButtonContainerStyle(theme
|
8763
|
-
React__default['default'].createElement(react.IconButton, { iconProps: cancelIcon, className: react.mergeStyles(closeButtonStyles(theme
|
8767
|
+
React__default['default'].createElement(react.IconButton, { iconProps: downloadIcon, className: react.mergeStyles(smallDownloadButtonContainerStyle(theme)), onClick: () => onImageDownloadButtonClicked(image.imageUrl, image.saveAsName), "aria-label": localeStrings.downloadButtonLabel, "aria-live": 'polite' }),
|
8768
|
+
React__default['default'].createElement(react.IconButton, { iconProps: cancelIcon, className: react.mergeStyles(closeButtonStyles(theme)), onClick: onDismiss,
|
8764
8769
|
/* @conditional-compile-remove(image-gallery) */
|
8765
8770
|
ariaLabel: localeStrings.dismissButtonAriaLabel, "aria-live": 'polite' }))));
|
8766
8771
|
};
|
@@ -8781,7 +8786,7 @@ const ImageGallery = (props) => {
|
|
8781
8786
|
event.persist();
|
8782
8787
|
} }))));
|
8783
8788
|
};
|
8784
|
-
return (React__default['default'].createElement(react.Modal, { titleAriaId: image.title, isOpen: isOpen, onDismiss: onDismiss, overlay: { styles: Object.assign({}, overlayStyles(theme
|
8789
|
+
return (React__default['default'].createElement(react.Modal, { titleAriaId: image.title, isOpen: isOpen, onDismiss: onDismiss, overlay: { styles: Object.assign({}, overlayStyles(theme)) }, styles: { main: focusTrapZoneStyle, scrollableContent: scrollableContentStyle }, isDarkOverlay: true },
|
8785
8790
|
renderHeaderBar(),
|
8786
8791
|
renderBodyWithLightDismiss()));
|
8787
8792
|
};
|
@@ -11897,7 +11902,7 @@ const useRemoteVideoStreamLifecycleMaintainer = (props) => {
|
|
11897
11902
|
*/
|
11898
11903
|
const useVideoTileContextualMenuProps = (props) => {
|
11899
11904
|
var _a;
|
11900
|
-
const { remoteParticipant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem, toggleAnnouncerString } = props;
|
11905
|
+
const { remoteParticipant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString } = props;
|
11901
11906
|
const scalingMode = React.useMemo(() => {
|
11902
11907
|
var _a;
|
11903
11908
|
/* @conditional-compile-remove(pinned-participants) */
|
@@ -11965,6 +11970,7 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
11965
11970
|
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
11966
11971
|
},
|
11967
11972
|
onClick: () => {
|
11973
|
+
onUpdateScalingMode === null || onUpdateScalingMode === void 0 ? void 0 : onUpdateScalingMode(remoteParticipant.userId, 'Fit');
|
11968
11974
|
view === null || view === void 0 ? void 0 : view.updateScalingMode('Fit');
|
11969
11975
|
},
|
11970
11976
|
'data-ui-id': 'video-tile-fit-to-frame',
|
@@ -11981,6 +11987,7 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
11981
11987
|
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
11982
11988
|
},
|
11983
11989
|
onClick: () => {
|
11990
|
+
onUpdateScalingMode === null || onUpdateScalingMode === void 0 ? void 0 : onUpdateScalingMode(remoteParticipant.userId, 'Crop');
|
11984
11991
|
view === null || view === void 0 ? void 0 : view.updateScalingMode('Crop');
|
11985
11992
|
},
|
11986
11993
|
'data-ui-id': 'video-tile-fill-frame',
|
@@ -12000,6 +12007,7 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
12000
12007
|
isPinned,
|
12001
12008
|
onPinParticipant,
|
12002
12009
|
onUnpinParticipant,
|
12010
|
+
onUpdateScalingMode,
|
12003
12011
|
remoteParticipant.userId,
|
12004
12012
|
remoteParticipant.displayName,
|
12005
12013
|
disablePinMenuItem,
|
@@ -12437,7 +12445,7 @@ const bracketedParticipantString = (participantString, withBrackets) => {
|
|
12437
12445
|
const _RemoteVideoTile = React__default['default'].memo((props) => {
|
12438
12446
|
var _a;
|
12439
12447
|
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
12440
|
-
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem, toggleAnnouncerString, strings } = props;
|
12448
|
+
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings } = props;
|
12441
12449
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
12442
12450
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
12443
12451
|
isScreenSharingOn,
|
@@ -12469,6 +12477,7 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
12469
12477
|
isPinned,
|
12470
12478
|
onPinParticipant,
|
12471
12479
|
onUnpinParticipant,
|
12480
|
+
onUpdateScalingMode,
|
12472
12481
|
disablePinMenuItem,
|
12473
12482
|
toggleAnnouncerString
|
12474
12483
|
});
|
@@ -14906,6 +14915,15 @@ const VideoGallery = (props) => {
|
|
14906
14915
|
/* @conditional-compile-remove(pinned-participants) */
|
14907
14916
|
const [pinnedParticipantsState, setPinnedParticipantsState] = React__default['default'].useState([]);
|
14908
14917
|
/* @conditional-compile-remove(pinned-participants) */
|
14918
|
+
const [selectedScalingModeState, setselectedScalingModeState] = React__default['default'].useState({});
|
14919
|
+
/* @conditional-compile-remove(pinned-participants) */
|
14920
|
+
const onUpdateScalingMode = React.useCallback((remoteUserId, scalingMode) => {
|
14921
|
+
setselectedScalingModeState((current) => (Object.assign(Object.assign({}, current), { [remoteUserId]: {
|
14922
|
+
scalingMode,
|
14923
|
+
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored
|
14924
|
+
} })));
|
14925
|
+
}, [remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored]);
|
14926
|
+
/* @conditional-compile-remove(pinned-participants) */
|
14909
14927
|
React.useEffect(() => {
|
14910
14928
|
var _a;
|
14911
14929
|
(_a = props.pinnedParticipants) === null || _a === void 0 ? void 0 : _a.forEach((pinParticipant) => {
|
@@ -14995,10 +15013,16 @@ const VideoGallery = (props) => {
|
|
14995
15013
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
14996
15014
|
const remoteVideoStream = participant.videoStream;
|
14997
15015
|
/* @conditional-compile-remove(pinned-participants) */
|
15016
|
+
const selectedScalingMode = remoteVideoStream ? selectedScalingModeState[participant.userId] : undefined;
|
15017
|
+
/* @conditional-compile-remove(pinned-participants) */
|
14998
15018
|
const isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId);
|
14999
15019
|
const createViewOptions = () => {
|
15000
15020
|
var _a, _b;
|
15001
15021
|
/* @conditional-compile-remove(pinned-participants) */
|
15022
|
+
if (selectedScalingMode) {
|
15023
|
+
return selectedScalingMode;
|
15024
|
+
}
|
15025
|
+
/* @conditional-compile-remove(pinned-participants) */
|
15002
15026
|
return (remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.streamSize) &&
|
15003
15027
|
((_a = remoteVideoStream.streamSize) === null || _a === void 0 ? void 0 : _a.height) > ((_b = remoteVideoStream.streamSize) === null || _b === void 0 ? void 0 : _b.width)
|
15004
15028
|
? {
|
@@ -15025,6 +15049,8 @@ const VideoGallery = (props) => {
|
|
15025
15049
|
/* @conditional-compile-remove(pinned-participants) */
|
15026
15050
|
onUnpinParticipant: onUnpinParticipant,
|
15027
15051
|
/* @conditional-compile-remove(pinned-participants) */
|
15052
|
+
onUpdateScalingMode: onUpdateScalingMode,
|
15053
|
+
/* @conditional-compile-remove(pinned-participants) */
|
15028
15054
|
isPinned: isPinned,
|
15029
15055
|
/* @conditional-compile-remove(pinned-participants) */
|
15030
15056
|
disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES,
|
@@ -15038,12 +15064,14 @@ const VideoGallery = (props) => {
|
|
15038
15064
|
onRenderAvatar,
|
15039
15065
|
showMuteIndicator,
|
15040
15066
|
strings,
|
15041
|
-
/* @conditional-compile-remove(pinned-participants) */
|
15067
|
+
/* @conditional-compile-remove(pinned-participants) */ selectedScalingModeState,
|
15042
15068
|
/* @conditional-compile-remove(pinned-participants) */ remoteVideoTileMenuOptions,
|
15043
15069
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipants,
|
15044
15070
|
/* @conditional-compile-remove(pinned-participants) */ onPinParticipant,
|
15045
15071
|
/* @conditional-compile-remove(pinned-participants) */ onUnpinParticipant,
|
15046
|
-
/* @conditional-compile-remove(pinned-participants) */ toggleAnnouncerString
|
15072
|
+
/* @conditional-compile-remove(pinned-participants) */ toggleAnnouncerString,
|
15073
|
+
/* @conditional-compile-remove(pinned-participants) */ drawerMenuHostId,
|
15074
|
+
/* @conditional-compile-remove(pinned-participants) */ onUpdateScalingMode
|
15047
15075
|
]);
|
15048
15076
|
const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
|
15049
15077
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
@@ -17827,7 +17855,7 @@ const videoGallerySelector = reselect.createSelector([
|
|
17827
17855
|
/* @conditional-compile-remove(optimal-video-count) */
|
17828
17856
|
getOptimalVideoCount,
|
17829
17857
|
/* @conditional-compile-remove(rooms) */
|
17830
|
-
getRole,
|
17858
|
+
getRole$1,
|
17831
17859
|
/* @conditional-compile-remove(raise-hand) */
|
17832
17860
|
getLocalParticipantRaisedHand$1
|
17833
17861
|
], (screenShareRemoteParticipantId, remoteParticipants, localVideoStreams, isMuted, isScreenSharingOn, displayName, identifier, dominantSpeakers,
|
@@ -17954,7 +17982,7 @@ const participantListSelector = reselect.createSelector([
|
|
17954
17982
|
getIsScreenSharingOn,
|
17955
17983
|
getIsMuted,
|
17956
17984
|
/* @conditional-compile-remove(raise-hand) */ getLocalParticipantRaisedHand$1,
|
17957
|
-
getRole,
|
17985
|
+
getRole$1,
|
17958
17986
|
getParticipantCount
|
17959
17987
|
], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted,
|
17960
17988
|
/* @conditional-compile-remove(raise-hand) */
|
@@ -20275,6 +20303,10 @@ const COMPOSITE_ONLY_ICONS = {
|
|
20275
20303
|
LocalCameraSwitch: React__default['default'].createElement(reactIcons.CameraSwitch24Regular, null),
|
20276
20304
|
ControlBarChatButtonActive: React__default['default'].createElement(reactIcons.Chat20Filled, null),
|
20277
20305
|
ControlBarChatButtonInactive: React__default['default'].createElement(reactIcons.Chat20Regular, null),
|
20306
|
+
/* @conditional-compile-remove(capabilities) */
|
20307
|
+
ControlButtonCameraProhibited: React__default['default'].createElement(reactIcons.VideoProhibited20Filled, null),
|
20308
|
+
/* @conditional-compile-remove(capabilities) */
|
20309
|
+
ControlButtonMicProhibited: React__default['default'].createElement(reactIcons.MicProhibited20Filled, null),
|
20278
20310
|
ControlBarPeopleButton: React__default['default'].createElement(reactIcons.People20Regular, null),
|
20279
20311
|
MoreDrawerMicrophones: React__default['default'].createElement(reactIcons.Mic20Regular, null),
|
20280
20312
|
MoreDrawerPeople: React__default['default'].createElement(reactIcons.People20Regular, null),
|
@@ -20345,7 +20377,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
20345
20377
|
*/
|
20346
20378
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
20347
20379
|
|
20348
|
-
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",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",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",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",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:"Gallery options",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker layout",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic layout",moreButtonGalleryDefaultLayoutLabel:"Gallery layout",moreButtonGalleryFocusedContentLayoutLabel:"Focused content"};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
20380
|
+
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",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",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",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",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:"Gallery options",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker layout",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic layout",moreButtonGalleryDefaultLayoutLabel:"Gallery layout",moreButtonGalleryFocusedContentLayoutLabel:"Focused content",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."}}};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
20349
20381
|
|
20350
20382
|
var call$j={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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:"What language is being spoken?",captionsSettingsDropdownLabel:"Spoken language",captionsSettingsDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",captionsAvailableLanguageStrings:{"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"},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:"Gallery options",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker layout",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic layout",moreButtonGalleryDefaultLayoutLabel:"Gallery layout",moreButtonGalleryFocusedContentLayoutLabel:"Focused content"};var chat$j={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$j={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_GB = {call:call$j,chat:chat$j,callWithChat:callWithChat$j};
|
20351
20383
|
|
@@ -23107,16 +23139,22 @@ const usePropsFor$1 = (component) => {
|
|
23107
23139
|
* @private
|
23108
23140
|
*/
|
23109
23141
|
const Camera = (props) => {
|
23110
|
-
var _a;
|
23142
|
+
var _a, _b, _c;
|
23111
23143
|
const cameraButtonProps = usePropsFor$1(CameraButton);
|
23112
23144
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
23113
23145
|
/* @conditional-compile-remove(rooms) */
|
23114
23146
|
const adapter = useAdapter();
|
23115
23147
|
/* @conditional-compile-remove(rooms) */
|
23116
23148
|
const isRoomsCall = adapter.getState().isRoomsCall;
|
23149
|
+
/* @conditional-compile-remove(capabilities) */
|
23150
|
+
const turnVideoOnCapability = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.turnVideoOn;
|
23117
23151
|
return (React__default['default'].createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-camera-button" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: cameraButtonProps.disabled ||
|
23118
23152
|
props.disabled ||
|
23119
|
-
/* @conditional-compile-remove(rooms) */ (isRoomsCall && ((
|
23153
|
+
/* @conditional-compile-remove(rooms) */ (isRoomsCall && ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.role) === 'Unknown'),
|
23154
|
+
/* @conditional-compile-remove(capabilities) */
|
23155
|
+
onRenderOffIcon: turnVideoOnCapability && !turnVideoOnCapability.isPresent
|
23156
|
+
? () => React__default['default'].createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonCameraProhibited' })
|
23157
|
+
: undefined,
|
23120
23158
|
/* @conditional-compile-remove(video-background-effects) */
|
23121
23159
|
onShowVideoEffectsPicker: props.onShowVideoEffectsPicker, componentRef: props.componentRef })));
|
23122
23160
|
};
|
@@ -23258,6 +23296,11 @@ const getMicrophones = (state) => state.devices.microphones;
|
|
23258
23296
|
* @private
|
23259
23297
|
*/
|
23260
23298
|
const getCameras = (state) => state.devices.cameras;
|
23299
|
+
/* @conditional-compile-remove(capabilities) */
|
23300
|
+
/**
|
23301
|
+
* @private
|
23302
|
+
*/
|
23303
|
+
const getRole = (state) => { var _a; return (_a = state.call) === null || _a === void 0 ? void 0 : _a.role; };
|
23261
23304
|
/**
|
23262
23305
|
* @private
|
23263
23306
|
*/
|
@@ -23311,13 +23354,21 @@ const getCaptionsStatus = (state) => {
|
|
23311
23354
|
* @private
|
23312
23355
|
*/
|
23313
23356
|
const getIsTeamsCall = (state) => state.isTeamsCall;
|
23357
|
+
/* @conditional-compile-remove(capabilities) */
|
23358
|
+
/**
|
23359
|
+
* @private
|
23360
|
+
*/
|
23361
|
+
const getLatestCapabilitiesChangedInfo = (state) => {
|
23362
|
+
var _a, _b;
|
23363
|
+
return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.latestCapabilitiesChangeInfo;
|
23364
|
+
};
|
23314
23365
|
|
23315
23366
|
// Copyright (c) Microsoft Corporation.
|
23316
23367
|
/**
|
23317
23368
|
* @private
|
23318
23369
|
*/
|
23319
23370
|
const Microphone = (props) => {
|
23320
|
-
var _a;
|
23371
|
+
var _a, _b, _c;
|
23321
23372
|
const microphoneButtonProps = usePropsFor$1(MicrophoneButton);
|
23322
23373
|
const callStatus = useSelector$1(getCallStatus);
|
23323
23374
|
const isLocalMicrophoneEnabled = useSelector$1(getLocalMicrophoneEnabled);
|
@@ -23326,6 +23377,8 @@ const Microphone = (props) => {
|
|
23326
23377
|
const adapter = useAdapter();
|
23327
23378
|
/* @conditional-compile-remove(rooms) */
|
23328
23379
|
const isRoomsCall = adapter.getState().isRoomsCall;
|
23380
|
+
/* @conditional-compile-remove(capabilities) */
|
23381
|
+
const unmuteMicCapability = (_b = (_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.unmuteMic;
|
23329
23382
|
/**
|
23330
23383
|
* When call is in Lobby, microphone button should be disabled.
|
23331
23384
|
* This is due to to headless limitation where a call can not be muted/unmuted in lobby.
|
@@ -23348,7 +23401,11 @@ const Microphone = (props) => {
|
|
23348
23401
|
// tab focus on MicrophoneButton on page load
|
23349
23402
|
return (React__default['default'].createElement(MicrophoneButton, Object.assign({ "data-ui-id": "call-composite-microphone-button" }, microphoneButtonProps, { showLabel: props.displayType !== 'compact', styles: styles }, microphoneButtonStrings, { enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: microphoneButtonProps.disabled ||
|
23350
23403
|
props.disabled ||
|
23351
|
-
/* @conditional-compile-remove(rooms) */ (isRoomsCall && ((
|
23404
|
+
/* @conditional-compile-remove(rooms) */ (isRoomsCall && ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.role) === 'Unknown'),
|
23405
|
+
/* @conditional-compile-remove(capabilities) */
|
23406
|
+
onRenderOffIcon: unmuteMicCapability && !unmuteMicCapability.isPresent
|
23407
|
+
? () => React__default['default'].createElement(_HighContrastAwareIcon, { disabled: true, iconName: 'ControlButtonMicProhibited' })
|
23408
|
+
: undefined })));
|
23352
23409
|
};
|
23353
23410
|
|
23354
23411
|
// Copyright (c) Microsoft Corporation.
|
@@ -26190,12 +26247,91 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
|
26190
26247
|
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
26191
26248
|
};
|
26192
26249
|
|
26250
|
+
// Copyright (c) Microsoft Corporation.
|
26251
|
+
/* @conditional-compile-remove(capabilities) */
|
26252
|
+
/**
|
26253
|
+
* Notification bar for capabilities changed
|
26254
|
+
* @private
|
26255
|
+
*/
|
26256
|
+
const CapabilitiesChangedNotificationBar = (props) => {
|
26257
|
+
const locale = useLocale();
|
26258
|
+
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "capabilities-changed-notification-bar-stack" }, props.capabilitiesChangedNotifications.map((notification) => {
|
26259
|
+
const message = getCapabilityChangedNotificationString(notification, locale.strings.call.capabilityChangedNotification);
|
26260
|
+
if (!message) {
|
26261
|
+
return null;
|
26262
|
+
}
|
26263
|
+
const iconProps = getNotificationIconProps(notification);
|
26264
|
+
return (React__default['default'].createElement(react.MessageBar, { key: notification.capabilityName, styles: messageBarStyles, messageBarType: react.MessageBarType.warning, dismissIconProps: { iconName: 'ErrorBarClear' }, onDismiss: () => props.onDismissNotification(notification), messageBarIconProps: iconProps }, message));
|
26265
|
+
})));
|
26266
|
+
};
|
26267
|
+
/* @conditional-compile-remove(capabilities) */
|
26268
|
+
const getCapabilityChangedNotificationString = (notification, strings) => {
|
26269
|
+
var _a, _b, _c, _d, _e, _f;
|
26270
|
+
switch (notification.capabilityName) {
|
26271
|
+
case 'turnVideoOn':
|
26272
|
+
if (notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged') {
|
26273
|
+
return notification.isPresent
|
26274
|
+
? (_a = strings === null || strings === void 0 ? void 0 : strings.turnVideoOn) === null || _a === void 0 ? void 0 : _a.grantedDueToMeetingOption
|
26275
|
+
: (_b = strings === null || strings === void 0 ? void 0 : strings.turnVideoOn) === null || _b === void 0 ? void 0 : _b.lostDueToMeetingOption;
|
26276
|
+
}
|
26277
|
+
break;
|
26278
|
+
case 'unmuteMic':
|
26279
|
+
if (notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged') {
|
26280
|
+
return notification.isPresent
|
26281
|
+
? (_c = strings === null || strings === void 0 ? void 0 : strings.unmuteMic) === null || _c === void 0 ? void 0 : _c.grantedDueToMeetingOption
|
26282
|
+
: (_d = strings === null || strings === void 0 ? void 0 : strings.unmuteMic) === null || _d === void 0 ? void 0 : _d.lostDueToMeetingOption;
|
26283
|
+
}
|
26284
|
+
break;
|
26285
|
+
case 'shareScreen':
|
26286
|
+
if (notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Presenter') {
|
26287
|
+
return (_e = strings === null || strings === void 0 ? void 0 : strings.shareScreen) === null || _e === void 0 ? void 0 : _e.grantedDueToRoleChangeToPresenter;
|
26288
|
+
}
|
26289
|
+
if (!notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Attendee') {
|
26290
|
+
return (_f = strings === null || strings === void 0 ? void 0 : strings.shareScreen) === null || _f === void 0 ? void 0 : _f.lostDueToRoleChangeToAttendee;
|
26291
|
+
}
|
26292
|
+
break;
|
26293
|
+
}
|
26294
|
+
return undefined;
|
26295
|
+
};
|
26296
|
+
/* @conditional-compile-remove(capabilities) */
|
26297
|
+
const getNotificationIconProps = (notification) => {
|
26298
|
+
switch (notification.capabilityName) {
|
26299
|
+
case 'turnVideoOn':
|
26300
|
+
if (notification.isPresent) {
|
26301
|
+
return { iconName: 'ControlButtonCameraOn' };
|
26302
|
+
}
|
26303
|
+
return { iconName: 'ControlButtonCameraProhibited' };
|
26304
|
+
case 'unmuteMic':
|
26305
|
+
if (notification.isPresent) {
|
26306
|
+
return { iconName: 'ControlButtonMicOn' };
|
26307
|
+
}
|
26308
|
+
return { iconName: 'ControlButtonMicProhibited' };
|
26309
|
+
}
|
26310
|
+
return undefined;
|
26311
|
+
};
|
26312
|
+
/* @conditional-compile-remove(capabilities) */
|
26313
|
+
const messageBarStyles = {
|
26314
|
+
innerText: {
|
26315
|
+
alignSelf: 'center'
|
26316
|
+
},
|
26317
|
+
icon: {
|
26318
|
+
height: 0
|
26319
|
+
},
|
26320
|
+
content: {
|
26321
|
+
lineHeight: 'inherit'
|
26322
|
+
},
|
26323
|
+
dismissal: {
|
26324
|
+
height: 0,
|
26325
|
+
paddingTop: '0.8rem'
|
26326
|
+
}
|
26327
|
+
};
|
26328
|
+
|
26193
26329
|
// Copyright (c) Microsoft Corporation.
|
26194
26330
|
/**
|
26195
26331
|
* @private
|
26196
26332
|
*/
|
26197
26333
|
const CallArrangement = (props) => {
|
26198
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
26334
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
26199
26335
|
const containerClassName = React.useMemo(() => {
|
26200
26336
|
return props.mobileView ? containerStyleMobile : containerStyleDesktop;
|
26201
26337
|
}, [props.mobileView]);
|
@@ -26324,13 +26460,18 @@ const CallArrangement = (props) => {
|
|
26324
26460
|
const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);
|
26325
26461
|
const pipStyles = React.useMemo(() => getPipStyles(theme), [theme]);
|
26326
26462
|
const verticalControlBar = props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;
|
26463
|
+
/* @conditional-compile-remove(capabilities) */
|
26464
|
+
// Filter out shareScreen capability notifications if on mobile
|
26465
|
+
const filteredCapabilitesChangedNotifications = props.mobileView
|
26466
|
+
? (_c = props.capabilitiesChangedNotificationBarProps) === null || _c === void 0 ? void 0 : _c.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
|
26467
|
+
: (_d = props.capabilitiesChangedNotificationBarProps) === null || _d === void 0 ? void 0 : _d.capabilitiesChangedNotifications;
|
26327
26468
|
return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles), id: props.id },
|
26328
26469
|
React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
|
26329
26470
|
React__default['default'].createElement(react.Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
|
26330
|
-
((
|
26471
|
+
((_e = props.callControlProps) === null || _e === void 0 ? void 0 : _e.options) !== false && !isMobileWithActivePane && (React__default['default'].createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
|
26331
26472
|
zIndex: CONTROL_BAR_Z_INDEX,
|
26332
26473
|
padding: verticalControlBar ? '0.25rem' : 'unset'
|
26333
|
-
}) }, isLegacyCallControlEnabled((
|
26474
|
+
}) }, isLegacyCallControlEnabled((_f = props.callControlProps) === null || _f === void 0 ? void 0 : _f.options) ? (React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView,
|
26334
26475
|
/* @conditional-compile-remove(one-to-n-calling) */
|
26335
26476
|
peopleButtonChecked: isPeoplePaneOpen,
|
26336
26477
|
/* @conditional-compile-remove(one-to-n-calling) */
|
@@ -26351,7 +26492,7 @@ const CallArrangement = (props) => {
|
|
26351
26492
|
onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange,
|
26352
26493
|
/* @conditional-compile-remove(gallery-layouts) */
|
26353
26494
|
userSetGalleryLayout: props.userSetGalleryLayout, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef }))))),
|
26354
|
-
((
|
26495
|
+
((_g = props.callControlProps) === null || _g === void 0 ? void 0 : _g.options) !== false && showDrawer && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStylesValue },
|
26355
26496
|
React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
|
26356
26497
|
/* @conditional-compile-remove(PSTN-calls) */
|
26357
26498
|
onClickShowDialpad: alternateCallerId ? onClickShowDialpad : undefined,
|
@@ -26360,7 +26501,7 @@ const CallArrangement = (props) => {
|
|
26360
26501
|
/* @conditional-compile-remove(close-captions) */
|
26361
26502
|
isCaptionsSupported: isTeamsCall && hasJoinedCall }))),
|
26362
26503
|
/* @conditional-compile-remove(PSTN-calls) */
|
26363
|
-
((
|
26504
|
+
((_h = props.callControlProps) === null || _h === void 0 ? void 0 : _h.options) !== false && showDtmfDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStylesValue },
|
26364
26505
|
React__default['default'].createElement(SendDtmfDialpad, { isMobile: props.mobileView, strings: dialpadStrings, showDialpad: showDtmfDialpad, onDismissDialpad: onDismissDtmfDialpad }))),
|
26365
26506
|
React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },
|
26366
26507
|
React__default['default'].createElement(react.Stack.Item, { style: callCompositeContainerCSS },
|
@@ -26371,6 +26512,10 @@ const CallArrangement = (props) => {
|
|
26371
26512
|
React__default['default'].createElement(_ComplianceBanner, Object.assign({}, props.complianceBannerProps))),
|
26372
26513
|
props.errorBarProps !== false && (React__default['default'].createElement(react.Stack, { styles: bannerNotificationStyles },
|
26373
26514
|
React__default['default'].createElement(ErrorBar, Object.assign({}, props.errorBarProps, { onDismissError: props.onDismissError, activeErrorMessages: filteredLatestErrors })))),
|
26515
|
+
/* @conditional-compile-remove(capabilities) */
|
26516
|
+
props.capabilitiesChangedNotificationBarProps &&
|
26517
|
+
props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (React__default['default'].createElement(react.Stack, { styles: bannerNotificationStyles },
|
26518
|
+
React__default['default'].createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] })))),
|
26374
26519
|
canUnmute && !!props.mutedNotificationProps && (React__default['default'].createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps)))),
|
26375
26520
|
props.onRenderGalleryContent && props.onRenderGalleryContent(),
|
26376
26521
|
/* @conditional-compile-remove(close-captions) */
|
@@ -26380,7 +26525,7 @@ const CallArrangement = (props) => {
|
|
26380
26525
|
maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
|
26381
26526
|
? undefined
|
26382
26527
|
: togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
|
26383
|
-
isDisabled$3((
|
26528
|
+
isDisabled$3((_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 }),
|
26384
26529
|
props.mobileView && (React__default['default'].createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition })),
|
26385
26530
|
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles() },
|
26386
26531
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems }))))))));
|
@@ -26905,7 +27050,9 @@ const CallPage = (props) => {
|
|
26905
27050
|
/* @conditional-compile-remove(gallery-layouts) */
|
26906
27051
|
onUserSetGalleryLayoutChange: setUserSetGalleryLayout,
|
26907
27052
|
/* @conditional-compile-remove(gallery-layouts) */
|
26908
|
-
userSetGalleryLayout: userSetGalleryLayout
|
27053
|
+
userSetGalleryLayout: userSetGalleryLayout,
|
27054
|
+
/* @conditional-compile-remove(capabilities) */
|
27055
|
+
capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps }));
|
26909
27056
|
};
|
26910
27057
|
/**
|
26911
27058
|
* @private
|
@@ -28465,6 +28612,111 @@ const deviceCountSelector = reselect.createSelector([getCameras, getMicrophones]
|
|
28465
28612
|
};
|
28466
28613
|
});
|
28467
28614
|
|
28615
|
+
// Copyright (c) Microsoft Corporation.
|
28616
|
+
/* @conditional-compile-remove(capabilities) */
|
28617
|
+
/**
|
28618
|
+
* @private
|
28619
|
+
*/
|
28620
|
+
const capabilitiesChangedInfoAndRoleSelector = reselect__namespace.createSelector([getLatestCapabilitiesChangedInfo, getRole], (capabilitiesChangeInfo, participantRole) => {
|
28621
|
+
return { capabilitiesChangeInfo, participantRole };
|
28622
|
+
});
|
28623
|
+
|
28624
|
+
// Copyright (c) Microsoft Corporation.
|
28625
|
+
/* @conditional-compile-remove(capabilities) */
|
28626
|
+
/**
|
28627
|
+
* Create a record for when the notification was most recently dismissed for tracking dismissed notifications.
|
28628
|
+
*
|
28629
|
+
* @private
|
28630
|
+
*/
|
28631
|
+
const useTrackedCapabilityChangedNotifications = (capabilitiesChangedAndRoleInfo) => {
|
28632
|
+
const [trackedCapabilityChangedNotifications, setTrackedCapabilityChangedNotifications] = React.useState({});
|
28633
|
+
const activeNotifications = React.useRef({});
|
28634
|
+
// Take note of first capabilities changed reason
|
28635
|
+
const firstCapabilitiesChangedReason = React.useRef();
|
28636
|
+
React.useEffect(() => {
|
28637
|
+
var _a;
|
28638
|
+
if (firstCapabilitiesChangedReason.current === undefined) {
|
28639
|
+
firstCapabilitiesChangedReason.current = (_a = capabilitiesChangedAndRoleInfo.capabilitiesChangeInfo) === null || _a === void 0 ? void 0 : _a.reason;
|
28640
|
+
// Skip the first notifications if they are role related to be inline with Teams behavior
|
28641
|
+
if (firstCapabilitiesChangedReason.current === 'RoleChanged') {
|
28642
|
+
return;
|
28643
|
+
}
|
28644
|
+
}
|
28645
|
+
activeNotifications.current = updateLatestCapabilityChangedNotificationMap(capabilitiesChangedAndRoleInfo, activeNotifications.current);
|
28646
|
+
setTrackedCapabilityChangedNotifications((prev) => updateTrackedCapabilityChangedNotificationsWithActiveNotifications(prev, Object.values(activeNotifications.current)));
|
28647
|
+
}, [capabilitiesChangedAndRoleInfo]);
|
28648
|
+
const onDismissCapabilityChangedNotification = React.useCallback((notification) => {
|
28649
|
+
setTrackedCapabilityChangedNotifications((prev) => trackCapabilityChangedNotificationAsDismissed(notification.capabilityName, prev));
|
28650
|
+
}, []);
|
28651
|
+
const latestCapabilityChangedNotifications = React.useMemo(() => filterLatestCapabilityChangedNotifications(Object.values(activeNotifications.current), trackedCapabilityChangedNotifications), [trackedCapabilityChangedNotifications]);
|
28652
|
+
return {
|
28653
|
+
capabilitiesChangedNotifications: latestCapabilityChangedNotifications,
|
28654
|
+
onDismissNotification: onDismissCapabilityChangedNotification
|
28655
|
+
};
|
28656
|
+
};
|
28657
|
+
/* @conditional-compile-remove(capabilities) */
|
28658
|
+
/**
|
28659
|
+
* Take the set of active notifications, and filter to only those that are newer than previously dismissed notifications or have never been dismissed.
|
28660
|
+
*
|
28661
|
+
* @private
|
28662
|
+
*/
|
28663
|
+
const filterLatestCapabilityChangedNotifications = (activeNotifications, trackedNotifications) => {
|
28664
|
+
const filteredNotifications = activeNotifications.filter((activeNotification) => {
|
28665
|
+
const trackedNotification = trackedNotifications[activeNotification.capabilityName];
|
28666
|
+
return (!trackedNotification ||
|
28667
|
+
!trackedNotification.lastDismissedAt ||
|
28668
|
+
trackedNotification.lastDismissedAt < trackedNotification.mostRecentlyActive);
|
28669
|
+
});
|
28670
|
+
return filteredNotifications;
|
28671
|
+
};
|
28672
|
+
/* @conditional-compile-remove(capabilities) */
|
28673
|
+
/**
|
28674
|
+
* Maintain a record of the most recently active notification for each capability name.
|
28675
|
+
*
|
28676
|
+
* @private
|
28677
|
+
*/
|
28678
|
+
const updateTrackedCapabilityChangedNotificationsWithActiveNotifications = (existingTrackedNotifications, activeNotifications) => {
|
28679
|
+
var _a, _b;
|
28680
|
+
const trackedNotifications = {};
|
28681
|
+
// Only care about active notifications. If notifications are no longer active we do not track that they have been previously dismissed.
|
28682
|
+
for (const activeNotification of activeNotifications) {
|
28683
|
+
const existingTrackedNotification = existingTrackedNotifications[activeNotification.capabilityName];
|
28684
|
+
trackedNotifications[activeNotification.capabilityName] = {
|
28685
|
+
mostRecentlyActive: (_b = (_a = activeNotification.timestamp) !== null && _a !== void 0 ? _a : existingTrackedNotification === null || existingTrackedNotification === void 0 ? void 0 : existingTrackedNotification.mostRecentlyActive) !== null && _b !== void 0 ? _b : new Date(Date.now()),
|
28686
|
+
lastDismissedAt: existingTrackedNotification === null || existingTrackedNotification === void 0 ? void 0 : existingTrackedNotification.lastDismissedAt
|
28687
|
+
};
|
28688
|
+
}
|
28689
|
+
return trackedNotifications;
|
28690
|
+
};
|
28691
|
+
/* @conditional-compile-remove(capabilities) */
|
28692
|
+
/**
|
28693
|
+
* Create a record for when the notification was most recently dismissed for tracking dismissed notifications.
|
28694
|
+
*
|
28695
|
+
* @private
|
28696
|
+
*/
|
28697
|
+
const trackCapabilityChangedNotificationAsDismissed = (capabilityName, trackedNotifications) => {
|
28698
|
+
const now = new Date(Date.now());
|
28699
|
+
const existingNotification = trackedNotifications[capabilityName];
|
28700
|
+
return Object.assign(Object.assign({}, trackedNotifications), { [capabilityName]: Object.assign(Object.assign({}, (existingNotification || {})), { lastDismissedAt: now }) });
|
28701
|
+
};
|
28702
|
+
/* @conditional-compile-remove(capabilities) */
|
28703
|
+
const updateLatestCapabilityChangedNotificationMap = (capabilitiesChangedInfoAndRole, activeNotifications) => {
|
28704
|
+
if (!capabilitiesChangedInfoAndRole.capabilitiesChangeInfo) {
|
28705
|
+
return activeNotifications;
|
28706
|
+
}
|
28707
|
+
for (const [capabilityName, newCapabilityValue] of Object.entries(capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.newValue)) {
|
28708
|
+
const newCapabilityChangeNotification = {
|
28709
|
+
capabilityName: capabilityName,
|
28710
|
+
isPresent: newCapabilityValue.isPresent,
|
28711
|
+
changedReason: capabilitiesChangedInfoAndRole.capabilitiesChangeInfo.reason,
|
28712
|
+
role: capabilitiesChangedInfoAndRole.participantRole,
|
28713
|
+
timestamp: new Date(Date.now())
|
28714
|
+
};
|
28715
|
+
activeNotifications[capabilityName] = newCapabilityChangeNotification;
|
28716
|
+
}
|
28717
|
+
return activeNotifications;
|
28718
|
+
};
|
28719
|
+
|
28468
28720
|
// Copyright (c) Microsoft Corporation.
|
28469
28721
|
// Licensed under the MIT license.
|
28470
28722
|
var __awaiter$7 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
@@ -28522,6 +28774,10 @@ const MainScreen = (props) => {
|
|
28522
28774
|
React.useEffect(() => {
|
28523
28775
|
onSidePaneIdChange === null || onSidePaneIdChange === void 0 ? void 0 : onSidePaneIdChange(sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id);
|
28524
28776
|
}, [sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id, onSidePaneIdChange]);
|
28777
|
+
/* @conditional-compile-remove(capabilities) */
|
28778
|
+
const capabilitiesChangedInfoAndRole = useSelector$1(capabilitiesChangedInfoAndRoleSelector);
|
28779
|
+
/* @conditional-compile-remove(capabilities) */
|
28780
|
+
const capabilitiesChangedNotificationBarProps = useTrackedCapabilityChangedNotifications(capabilitiesChangedInfoAndRole);
|
28525
28781
|
// Track the last dismissed errors of any error kind to prevent errors from re-appearing on subsequent page navigation
|
28526
28782
|
// This works by tracking the most recent timestamp of any active error type.
|
28527
28783
|
// And then tracking when that error type was last dismissed.
|
@@ -28557,7 +28813,9 @@ const MainScreen = (props) => {
|
|
28557
28813
|
/* @conditional-compile-remove(call-readiness) */
|
28558
28814
|
onPermissionsTroubleshootingClick: (_b = props.options) === null || _b === void 0 ? void 0 : _b.onPermissionsTroubleshootingClick,
|
28559
28815
|
/* @conditional-compile-remove(call-readiness) */
|
28560
|
-
onNetworkingTroubleShootingClick: (_c = props.options) === null || _c === void 0 ? void 0 : _c.onNetworkingTroubleShootingClick
|
28816
|
+
onNetworkingTroubleShootingClick: (_c = props.options) === null || _c === void 0 ? void 0 : _c.onNetworkingTroubleShootingClick,
|
28817
|
+
/* @conditional-compile-remove(capabilities) */
|
28818
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
|
28561
28819
|
break;
|
28562
28820
|
case 'accessDeniedTeamsMeeting':
|
28563
28821
|
pageElement = (React__default['default'].createElement(NoticePage, { iconName: "NoticePageAccessDeniedTeamsMeeting", title: locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedTitle, moreDetails: locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails, dataUiId: 'access-denied-teams-meeting-page' }));
|
@@ -28577,20 +28835,28 @@ const MainScreen = (props) => {
|
|
28577
28835
|
break;
|
28578
28836
|
}
|
28579
28837
|
case 'lobby':
|
28580
|
-
pageElement = (React__default['default'].createElement(LobbyPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError
|
28838
|
+
pageElement = (React__default['default'].createElement(LobbyPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError,
|
28839
|
+
/* @conditional-compile-remove(capabilities) */
|
28840
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
|
28581
28841
|
break;
|
28582
28842
|
/* @conditional-compile-remove(call-transfer) */
|
28583
28843
|
case 'transferring':
|
28584
|
-
pageElement = (React__default['default'].createElement(TransferPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onRenderAvatar: onRenderAvatar, onFetchAvatarPersonaData: onFetchAvatarPersonaData, latestErrors: latestErrors, onDismissError: onDismissError
|
28844
|
+
pageElement = (React__default['default'].createElement(TransferPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onRenderAvatar: onRenderAvatar, onFetchAvatarPersonaData: onFetchAvatarPersonaData, latestErrors: latestErrors, onDismissError: onDismissError,
|
28845
|
+
/* @conditional-compile-remove(capabilities) */
|
28846
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
|
28585
28847
|
break;
|
28586
28848
|
case 'call':
|
28587
28849
|
pageElement = (React__default['default'].createElement(CallPage, { onRenderAvatar: onRenderAvatar, callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError,
|
28588
28850
|
/* @conditional-compile-remove(gallery-layouts) */
|
28589
|
-
galleryLayout: ((_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.galleryOptions) === null || _f === void 0 ? void 0 : _f.layout) ? props.options.galleryOptions.layout : 'floatingLocalVideo'
|
28851
|
+
galleryLayout: ((_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.galleryOptions) === null || _f === void 0 ? void 0 : _f.layout) ? props.options.galleryOptions.layout : 'floatingLocalVideo',
|
28852
|
+
/* @conditional-compile-remove(capabilities) */
|
28853
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
|
28590
28854
|
break;
|
28591
28855
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
28592
28856
|
case 'hold':
|
28593
|
-
pageElement = (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError
|
28857
|
+
pageElement = (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError,
|
28858
|
+
/* @conditional-compile-remove(capabilities) */
|
28859
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps })));
|
28594
28860
|
break;
|
28595
28861
|
}
|
28596
28862
|
/* @conditional-compile-remove(unsupported-browser) */
|