@azure/communication-react 1.5.1-alpha-202305250013 → 1.5.1-alpha-202305260013
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 +8 -0
- package/dist/dist-cjs/communication-react/index.js +199 -164
- 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.d.ts +2 -0
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +6 -0
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +5 -2
- package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +4 -0
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +9 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +2 -1
- package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +2 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +9 -0
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +8 -6
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +11 -4
- package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +26 -22
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +9 -2
- package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +3 -4
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +6 -0
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts +10 -0
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +10 -0
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +1 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +13 -5
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +0 -3
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +0 -3
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +1 -8
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -1
- package/package.json +8 -8
@@ -165,7 +165,7 @@ const _toCommunicationIdentifier = (id) => {
|
|
165
165
|
// Copyright (c) Microsoft Corporation.
|
166
166
|
// Licensed under the MIT license.
|
167
167
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
168
|
-
var telemetryVersion = '1.5.1-alpha-
|
168
|
+
var telemetryVersion = '1.5.1-alpha-202305260013';
|
169
169
|
|
170
170
|
// Copyright (c) Microsoft Corporation.
|
171
171
|
/**
|
@@ -392,6 +392,12 @@ const getCaptionsStatus = (state, props) => {
|
|
392
392
|
};
|
393
393
|
/* @conditional-compile-remove(close-captions) */
|
394
394
|
/** @private */
|
395
|
+
const getStartCaptionsInProgress = (state, props) => {
|
396
|
+
var _a;
|
397
|
+
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.startCaptionsInProgress;
|
398
|
+
};
|
399
|
+
/* @conditional-compile-remove(close-captions) */
|
400
|
+
/** @private */
|
395
401
|
const getCurrentCaptionLanguage = (state, props) => {
|
396
402
|
var _a;
|
397
403
|
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.currentCaptionLanguage;
|
@@ -1025,7 +1031,7 @@ const _changeSpokenLanguageSelector = reselect__namespace.createSelector([getSup
|
|
1025
1031
|
*
|
1026
1032
|
* @internal
|
1027
1033
|
*/
|
1028
|
-
const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions, getCaptionsStatus], (captions, isCaptionsFeatureActive) => {
|
1034
|
+
const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions, getCaptionsStatus, getStartCaptionsInProgress], (captions, isCaptionsFeatureActive, startCaptionsInProgress) => {
|
1029
1035
|
// Following Teams app logic, no matter how many 'Partial' captions come,
|
1030
1036
|
// we only pick first one according to start time, and all the other partial captions will be filtered out
|
1031
1037
|
// This will give customers a stable captions experience when others talking over the dominant speaker
|
@@ -1044,7 +1050,8 @@ const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions,
|
|
1044
1050
|
});
|
1045
1051
|
return {
|
1046
1052
|
captions: captionsInfo !== null && captionsInfo !== void 0 ? captionsInfo : [],
|
1047
|
-
isCaptionsOn: isCaptionsFeatureActive !== null && isCaptionsFeatureActive !== void 0 ? isCaptionsFeatureActive : false
|
1053
|
+
isCaptionsOn: isCaptionsFeatureActive !== null && isCaptionsFeatureActive !== void 0 ? isCaptionsFeatureActive : false,
|
1054
|
+
startCaptionsInProgress: startCaptionsInProgress !== null && startCaptionsInProgress !== void 0 ? startCaptionsInProgress : false
|
1048
1055
|
};
|
1049
1056
|
});
|
1050
1057
|
/* @conditional-compile-remove(close-captions) */
|
@@ -1448,7 +1455,8 @@ function convertSdkCallToDeclarativeCall(call) {
|
|
1448
1455
|
supportedCaptionLanguages: [],
|
1449
1456
|
currentCaptionLanguage: '',
|
1450
1457
|
currentSpokenLanguage: '',
|
1451
|
-
isCaptionsFeatureActive: false
|
1458
|
+
isCaptionsFeatureActive: false,
|
1459
|
+
startCaptionsInProgress: false
|
1452
1460
|
}
|
1453
1461
|
};
|
1454
1462
|
}
|
@@ -2101,6 +2109,15 @@ class CallContext$2 {
|
|
2101
2109
|
});
|
2102
2110
|
}
|
2103
2111
|
/* @conditional-compile-remove(close-captions) */
|
2112
|
+
setStartCaptionsInProgress(callId, startCaptionsInProgress) {
|
2113
|
+
this.modifyState((draft) => {
|
2114
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2115
|
+
if (call) {
|
2116
|
+
call.captionsFeature.startCaptionsInProgress = startCaptionsInProgress;
|
2117
|
+
}
|
2118
|
+
});
|
2119
|
+
}
|
2120
|
+
/* @conditional-compile-remove(close-captions) */
|
2104
2121
|
setSelectedSpokenLanguage(callId, spokenLanguage) {
|
2105
2122
|
this.modifyState((draft) => {
|
2106
2123
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -3690,8 +3707,8 @@ class ProxyTeamsCaptionsFeature {
|
|
3690
3707
|
case 'startCaptions':
|
3691
3708
|
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$B(this, void 0, void 0, function* () {
|
3692
3709
|
var _a, _b;
|
3710
|
+
this._context.setStartCaptionsInProgress(this._call.id, true);
|
3693
3711
|
const ret = yield target.startCaptions(...args);
|
3694
|
-
this._context.setIsCaptionActive(this._call.id, true);
|
3695
3712
|
this._context.setSelectedSpokenLanguage(this._call.id, (_b = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.spokenLanguage) !== null && _b !== void 0 ? _b : 'en-us');
|
3696
3713
|
return ret;
|
3697
3714
|
}), 'Call.feature');
|
@@ -3699,6 +3716,7 @@ class ProxyTeamsCaptionsFeature {
|
|
3699
3716
|
return this._context.withAsyncErrorTeedToState((...args) => __awaiter$B(this, void 0, void 0, function* () {
|
3700
3717
|
const ret = yield target.stopCaptions(...args);
|
3701
3718
|
this._context.setIsCaptionActive(this._call.id, false);
|
3719
|
+
this._context.setStartCaptionsInProgress(this._call.id, false);
|
3702
3720
|
return ret;
|
3703
3721
|
}), 'Call.feature');
|
3704
3722
|
case 'setSpokenLanguage':
|
@@ -5028,7 +5046,7 @@ function chunk(options, itemsPerRow) {
|
|
5028
5046
|
/**
|
5029
5047
|
* @private
|
5030
5048
|
*/
|
5031
|
-
const defaultSpokenLanguage
|
5049
|
+
const defaultSpokenLanguage = 'en-us';
|
5032
5050
|
|
5033
5051
|
// Copyright (c) Microsoft Corporation.
|
5034
5052
|
/**
|
@@ -8159,6 +8177,16 @@ const chatMessageMenuStyle = react.mergeStyles({
|
|
8159
8177
|
cursor: 'pointer',
|
8160
8178
|
overflow: 'hidden'
|
8161
8179
|
});
|
8180
|
+
/**
|
8181
|
+
* @private
|
8182
|
+
*/
|
8183
|
+
const chatMessageEditContainerStyle = {
|
8184
|
+
margin: 0,
|
8185
|
+
padding: 0,
|
8186
|
+
maxWidth: 'unset',
|
8187
|
+
minWidth: 'unset',
|
8188
|
+
backgroundColor: 'transparent'
|
8189
|
+
};
|
8162
8190
|
/**
|
8163
8191
|
* Styles that can be applied to ensure flyout items have the minimum touch target size.
|
8164
8192
|
*
|
@@ -8247,31 +8275,34 @@ const ChatMessageComponentAsEditBox = (props) => {
|
|
8247
8275
|
setAttachedFilesMetadata(attachedFilesMetadata === null || attachedFilesMetadata === void 0 ? void 0 : attachedFilesMetadata.filter((file) => file.name !== fileId));
|
8248
8276
|
} }))));
|
8249
8277
|
}, [attachedFilesMetadata]);
|
8250
|
-
|
8251
|
-
|
8252
|
-
|
8253
|
-
|
8254
|
-
|
8255
|
-
|
8256
|
-
|
8257
|
-
onSubmit(textValue, message.metadata, {
|
8258
|
-
attachedFilesMetadata
|
8259
|
-
});
|
8260
|
-
}, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles,
|
8261
|
-
/* @conditional-compile-remove(mention) */
|
8262
|
-
mentionLookupOptions: mentionLookupOptions },
|
8263
|
-
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
|
8264
|
-
onCancel && onCancel(message.messageId);
|
8265
|
-
}, id: 'dismissIconWrapper' }),
|
8266
|
-
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
|
8278
|
+
const getContent = () => {
|
8279
|
+
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(borderAndBoxShadowStyle({
|
8280
|
+
theme,
|
8281
|
+
hasErrorMessage: message.failureReason !== undefined,
|
8282
|
+
disabled: false
|
8283
|
+
})) },
|
8284
|
+
React__default['default'].createElement(InputBoxComponent, { inlineChildren: props.inlineEditButtons, id: 'editbox', textFieldRef: editTextFieldRef, inputClassName: editBoxStyle(props.inlineEditButtons), placeholderText: strings.editBoxPlaceholderText, textValue: textValue, onChange: setText, onEnterKeyDown: () => {
|
8267
8285
|
submitEnabled &&
|
8268
8286
|
onSubmit(textValue, message.metadata, {
|
8269
8287
|
attachedFilesMetadata
|
8270
8288
|
});
|
8271
|
-
|
8272
|
-
|
8273
|
-
|
8274
|
-
|
8289
|
+
}, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles,
|
8290
|
+
/* @conditional-compile-remove(mention) */
|
8291
|
+
mentionLookupOptions: mentionLookupOptions },
|
8292
|
+
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
|
8293
|
+
onCancel && onCancel(message.messageId);
|
8294
|
+
}, id: 'dismissIconWrapper' }),
|
8295
|
+
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
|
8296
|
+
submitEnabled &&
|
8297
|
+
onSubmit(textValue, message.metadata, {
|
8298
|
+
attachedFilesMetadata
|
8299
|
+
});
|
8300
|
+
e.stopPropagation();
|
8301
|
+
}, id: 'submitIconWrapper' })),
|
8302
|
+
message.failureReason && (React__default['default'].createElement("div", { className: react.mergeStyles(chatMessageFailedTagStyle(theme), { padding: '0.5rem' }) }, message.failureReason)),
|
8303
|
+
onRenderFileUploads()));
|
8304
|
+
};
|
8305
|
+
return React__default['default'].createElement(i.Message, { styles: chatMessageEditContainerStyle, content: getContent() });
|
8275
8306
|
};
|
8276
8307
|
const isMessageTooLong = (messageText) => messageText.length > MAXIMUM_LENGTH_OF_MESSAGE;
|
8277
8308
|
const isMessageEmpty = (messageText, attachedFilesMetadata) => messageText.trim().length === 0 && attachedFilesMetadata.length === 0;
|
@@ -10825,8 +10856,7 @@ const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
|
|
10825
10856
|
const DefaultPlaceholder = (props) => {
|
10826
10857
|
const { text, noVideoAvailableAriaLabel, coinSize, hidePersonaDetails } = props;
|
10827
10858
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
10828
|
-
React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
|
10829
|
-
React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }))));
|
10859
|
+
React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles }, coinSize && (React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false })))));
|
10830
10860
|
};
|
10831
10861
|
const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
|
10832
10862
|
/* @conditional-compile-remove(pinned-participants) */
|
@@ -10863,7 +10893,7 @@ const VideoTile = (props) => {
|
|
10863
10893
|
const [isHovered, setIsHovered] = React.useState(false);
|
10864
10894
|
/* @conditional-compile-remove(pinned-participants) */
|
10865
10895
|
const [isFocused, setIsFocused] = React.useState(false);
|
10866
|
-
const [personaSize, setPersonaSize] = React.useState(
|
10896
|
+
const [personaSize, setPersonaSize] = React.useState();
|
10867
10897
|
const videoTileRef = React.useRef(null);
|
10868
10898
|
const locale = useLocale$1();
|
10869
10899
|
const theme = useTheme();
|
@@ -10947,7 +10977,7 @@ const VideoTile = (props) => {
|
|
10947
10977
|
}) }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions))))),
|
10948
10978
|
(canShowLabel || participantStateString) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle, tokens: tileInfoContainerTokens },
|
10949
10979
|
React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
|
10950
|
-
canShowLabel && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName, style: { color: participantStateString ? theme.palette.neutralSecondary : 'inherit' } }, displayName)),
|
10980
|
+
canShowLabel && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName, style: { color: participantStateString ? theme.palette.neutralSecondary : 'inherit' }, "data-ui-id": "video-tile-display-name" }, displayName)),
|
10951
10981
|
participantStateString && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(theme)) }, bracketedParticipantString(participantStateString, !!canShowLabel))),
|
10952
10982
|
showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
10953
10983
|
React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
|
@@ -15581,6 +15611,12 @@ const captionContainerClassName = react.mergeStyles({
|
|
15581
15611
|
* @private
|
15582
15612
|
*/
|
15583
15613
|
const captionsBannerClassName = react.mergeStyles(Object.assign({ height: _pxToRem(100), overflowY: 'auto', overflowX: 'hidden' }, scrollbarStyles));
|
15614
|
+
/**
|
15615
|
+
* @private
|
15616
|
+
*/
|
15617
|
+
const loadingBannerClassName = react.mergeStyles({
|
15618
|
+
height: _pxToRem(100)
|
15619
|
+
});
|
15584
15620
|
/**
|
15585
15621
|
* @private
|
15586
15622
|
*/
|
@@ -15629,7 +15665,7 @@ const _Caption = (props) => {
|
|
15629
15665
|
* A component for displaying a CaptionsBanner with user icon, displayName and captions text.
|
15630
15666
|
*/
|
15631
15667
|
const _CaptionsBanner = (props) => {
|
15632
|
-
const { captions, isCaptionsOn, onRenderAvatar } = props;
|
15668
|
+
const { captions, isCaptionsOn, startCaptionsInProgress, onRenderAvatar, strings } = props;
|
15633
15669
|
const captionsScrollDivRef = React.useRef(null);
|
15634
15670
|
const [isAtBottomOfScroll, setIsAtBottomOfScroll] = React.useState(true);
|
15635
15671
|
const scrollToBottom = () => {
|
@@ -15658,12 +15694,14 @@ const _CaptionsBanner = (props) => {
|
|
15658
15694
|
scrollToBottom();
|
15659
15695
|
}
|
15660
15696
|
}, [captions, isAtBottomOfScroll]);
|
15661
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
15662
|
-
React__default['default'].createElement(c, { innerRef: captionsScrollDivRef },
|
15697
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, startCaptionsInProgress && (React__default['default'].createElement(react.FocusZone, { as: "ul", className: captionsContainerClassName },
|
15698
|
+
isCaptionsOn && (React__default['default'].createElement(c, { innerRef: captionsScrollDivRef },
|
15663
15699
|
React__default['default'].createElement(react.Stack, { verticalAlign: "start", className: captionsBannerClassName }, captions.map((caption) => {
|
15664
15700
|
return (React__default['default'].createElement("div", { key: caption.id, className: captionContainerClassName, "data-is-focusable": true },
|
15665
15701
|
React__default['default'].createElement(_Caption, Object.assign({}, caption, { onRenderAvatar: onRenderAvatar }))));
|
15666
|
-
}))))
|
15702
|
+
})))),
|
15703
|
+
!isCaptionsOn && (React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: loadingBannerClassName, "data-is-focusable": true },
|
15704
|
+
React__default['default'].createElement(react.Spinner, { label: strings === null || strings === void 0 ? void 0 : strings.captionsBannerSpinnerText, ariaLive: "assertive", labelPosition: "right" })))))));
|
15667
15705
|
};
|
15668
15706
|
|
15669
15707
|
// Copyright (c) Microsoft Corporation.
|
@@ -15777,14 +15815,24 @@ const _CaptionsSettingsModal = (props) => {
|
|
15777
15815
|
const { supportedSpokenLanguages, currentSpokenLanguage, isCaptionsFeatureActive, showModal, onSetSpokenLanguage, onDismissCaptionsSettings, onStartCaptions, strings, captionsAvailableLanguageStrings } = props;
|
15778
15816
|
const theme = react.useTheme();
|
15779
15817
|
const [selectedItem, setSelectedItem] = React.useState({
|
15780
|
-
key: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage
|
15781
|
-
text: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage
|
15818
|
+
key: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage,
|
15819
|
+
text: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage
|
15782
15820
|
});
|
15821
|
+
const [hasSetSpokenLanguage, setHasSetSpokenLanguage] = React.useState(false);
|
15783
15822
|
const onDismiss = React.useCallback(() => {
|
15784
15823
|
if (onDismissCaptionsSettings) {
|
15785
15824
|
onDismissCaptionsSettings();
|
15786
15825
|
}
|
15787
15826
|
}, [onDismissCaptionsSettings]);
|
15827
|
+
React.useEffect(() => {
|
15828
|
+
// set spoken language when start captions with a spoken language specified.
|
15829
|
+
// this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language
|
15830
|
+
if (isCaptionsFeatureActive && !hasSetSpokenLanguage) {
|
15831
|
+
onSetSpokenLanguage(selectedItem.key.toString());
|
15832
|
+
// we only need to call set spoken language once when first starting captions
|
15833
|
+
setHasSetSpokenLanguage(true);
|
15834
|
+
}
|
15835
|
+
}, [isCaptionsFeatureActive, onSetSpokenLanguage, selectedItem.key, hasSetSpokenLanguage]);
|
15788
15836
|
const onConfirm = React.useCallback(() => __awaiter$p(void 0, void 0, void 0, function* () {
|
15789
15837
|
const languageCode = selectedItem.key.toString();
|
15790
15838
|
if (isCaptionsFeatureActive) {
|
@@ -15792,9 +15840,6 @@ const _CaptionsSettingsModal = (props) => {
|
|
15792
15840
|
}
|
15793
15841
|
else {
|
15794
15842
|
yield onStartCaptions({ spokenLanguage: languageCode });
|
15795
|
-
// set spoken language when start captions with a spoken language specified.
|
15796
|
-
// this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language
|
15797
|
-
onSetSpokenLanguage(languageCode);
|
15798
15843
|
}
|
15799
15844
|
onDismiss();
|
15800
15845
|
}), [onDismiss, isCaptionsFeatureActive, onSetSpokenLanguage, onStartCaptions, selectedItem.key]);
|
@@ -15816,7 +15861,7 @@ const _CaptionsSettingsModal = (props) => {
|
|
15816
15861
|
}), []);
|
15817
15862
|
const CaptionsSettingsComponent = React.useCallback(() => {
|
15818
15863
|
return (React__default['default'].createElement(react.Stack, null,
|
15819
|
-
React__default['default'].createElement(react.Dropdown, { label: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsDropdownLabel, selectedKey: selectedItem ? selectedItem.key : undefined, onChange: onChange, calloutProps: calloutProps, placeholder: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage
|
15864
|
+
React__default['default'].createElement(react.Dropdown, { label: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsDropdownLabel, selectedKey: selectedItem ? selectedItem.key : undefined, onChange: onChange, calloutProps: calloutProps, placeholder: currentSpokenLanguage !== '' ? currentSpokenLanguage : defaultSpokenLanguage, options: dropdownOptions, styles: dropdownStyles }),
|
15820
15865
|
React__default['default'].createElement(react.Text, { className: dropdownInfoTextStyle(theme) }, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsDropdownInfoText)));
|
15821
15866
|
}, [
|
15822
15867
|
calloutProps,
|
@@ -18330,7 +18375,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
18330
18375
|
*/
|
18331
18376
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
18332
18377
|
|
18333
|
-
var call$d={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",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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"}};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",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_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
18378
|
+
var call$d={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",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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..."};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",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_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
18334
18379
|
|
18335
18380
|
var call$c={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",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",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"}};var chat$c={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$c={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$c,chat:chat$c,callWithChat:callWithChat$c};
|
18336
18381
|
|
@@ -20742,9 +20787,6 @@ const CaptionsBannerMoreButton = (props) => {
|
|
20742
20787
|
yield startCaptionsButtonHandlers.onStartCaptions({
|
20743
20788
|
spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
|
20744
20789
|
});
|
20745
|
-
// set spoken language when start captions with a spoken language specified.
|
20746
|
-
// this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language
|
20747
|
-
startCaptionsButtonHandlers.onSetSpokenLanguage(startCaptionsButtonProps.currentSpokenLanguage);
|
20748
20790
|
}), [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);
|
20749
20791
|
/* @conditional-compile-remove(close-captions) */
|
20750
20792
|
moreButtonContextualMenuItems.push({
|
@@ -20824,15 +20866,21 @@ const CaptionsBanner = (props) => {
|
|
20824
20866
|
right: 0,
|
20825
20867
|
top: 0
|
20826
20868
|
});
|
20869
|
+
/* @conditional-compile-remove(close-captions) */
|
20870
|
+
const strings = useLocale().strings.call;
|
20871
|
+
/* @conditional-compile-remove(close-captions) */
|
20872
|
+
const captionsBannerStrings = {
|
20873
|
+
captionsBannerSpinnerText: strings.captionsBannerSpinnerText
|
20874
|
+
};
|
20827
20875
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
20828
20876
|
/* @conditional-compile-remove(close-captions) */ isCaptionsSettingsOpen && (React__default['default'].createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: isCaptionsSettingsOpen, onDismissCaptionsSettings: onDismissCaptionsSettings })),
|
20829
|
-
/* @conditional-compile-remove(close-captions) */
|
20830
|
-
|
20877
|
+
/* @conditional-compile-remove(close-captions) */
|
20878
|
+
React__default['default'].createElement("div", { className: containerClassName },
|
20831
20879
|
React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
|
20832
20880
|
React__default['default'].createElement(react.Stack.Item, { style: { width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth } },
|
20833
|
-
React__default['default'].createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers)))),
|
20834
|
-
!props.isMobile && (React__default['default'].createElement("div", { className: floatingChildClassName },
|
20835
|
-
React__default['default'].createElement(CaptionsBannerMoreButton, { onCaptionsSettingsClick: onClickCaptionsSettings }))))))
|
20881
|
+
React__default['default'].createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers, { strings: captionsBannerStrings })))),
|
20882
|
+
!props.isMobile && captionsBannerProps.isCaptionsOn && (React__default['default'].createElement("div", { className: floatingChildClassName },
|
20883
|
+
React__default['default'].createElement(CaptionsBannerMoreButton, { onCaptionsSettingsClick: onClickCaptionsSettings }))))));
|
20836
20884
|
};
|
20837
20885
|
|
20838
20886
|
// Copyright (c) Microsoft Corporation.
|
@@ -21605,9 +21653,6 @@ const DesktopMoreButton = (props) => {
|
|
21605
21653
|
yield startCaptionsButtonHandlers.onStartCaptions({
|
21606
21654
|
spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
|
21607
21655
|
});
|
21608
|
-
// set spoken language when start captions with a spoken language specified.
|
21609
|
-
// this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language
|
21610
|
-
startCaptionsButtonHandlers.onSetSpokenLanguage(startCaptionsButtonProps.currentSpokenLanguage);
|
21611
21656
|
}), [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);
|
21612
21657
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
|
21613
21658
|
const moreButtonStrings = React.useMemo(() => ({
|
@@ -22092,109 +22137,6 @@ const callStatusSelector = reselect.createSelector([getCallStatus, getIsScreenSh
|
|
22092
22137
|
};
|
22093
22138
|
});
|
22094
22139
|
|
22095
|
-
// Copyright (c) Microsoft Corporation.
|
22096
|
-
/**
|
22097
|
-
* Default Modal PIP related pixel measurements used for ModalLocalAndremotePIP and common/utils.
|
22098
|
-
*
|
22099
|
-
* @private
|
22100
|
-
*/
|
22101
|
-
const MODAL_PIP_DEFAULT_PX = {
|
22102
|
-
rightPositionPx: 16,
|
22103
|
-
topPositionPx: 52,
|
22104
|
-
widthPx: 88,
|
22105
|
-
heightPx: 128
|
22106
|
-
};
|
22107
|
-
/**
|
22108
|
-
* @private
|
22109
|
-
*/
|
22110
|
-
const getPipStyles = (theme) => ({
|
22111
|
-
modal: {
|
22112
|
-
main: Object.assign(Object.assign({ borderRadius: theme.effects.roundedCorner4, boxShadow: theme.effects.elevation8,
|
22113
|
-
// Above the message thread / people pane.
|
22114
|
-
zIndex: 2 }, (theme.rtl
|
22115
|
-
? { left: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) }
|
22116
|
-
: { right: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) })), { top: _pxToRem(MODAL_PIP_DEFAULT_PX.topPositionPx) })
|
22117
|
-
}
|
22118
|
-
});
|
22119
|
-
/**
|
22120
|
-
* @private
|
22121
|
-
*/
|
22122
|
-
const PIPContainerStyle = {
|
22123
|
-
root: { position: 'absolute', width: '100%', height: '100%', pointerEvents: 'none' }
|
22124
|
-
};
|
22125
|
-
/**
|
22126
|
-
* @private
|
22127
|
-
*/
|
22128
|
-
const hiddenStyle = react.concatStyleSets(PIPContainerStyle, { root: { display: 'none' } });
|
22129
|
-
/**
|
22130
|
-
* @private
|
22131
|
-
*/
|
22132
|
-
const modalStyle = {
|
22133
|
-
main: {
|
22134
|
-
minWidth: 'min-content',
|
22135
|
-
minHeight: 'min-content',
|
22136
|
-
position: 'absolute',
|
22137
|
-
overflow: 'hidden',
|
22138
|
-
// pointer events for root Modal div set to auto to make LocalAndRemotePIP interactive
|
22139
|
-
pointerEvents: 'auto',
|
22140
|
-
touchAction: 'none'
|
22141
|
-
},
|
22142
|
-
root: {
|
22143
|
-
width: '100%',
|
22144
|
-
height: '100%',
|
22145
|
-
// pointer events for root Modal div set to none to make descendants interactive
|
22146
|
-
pointerEvents: 'none'
|
22147
|
-
}
|
22148
|
-
};
|
22149
|
-
/**
|
22150
|
-
* Styles for layer host to bound the modal wrapping PiPiP in the mobile pane.
|
22151
|
-
* @private
|
22152
|
-
*/
|
22153
|
-
const modalLayerHostStyle = {
|
22154
|
-
display: 'flex',
|
22155
|
-
position: 'absolute',
|
22156
|
-
left: 0,
|
22157
|
-
top: 0,
|
22158
|
-
width: '100%',
|
22159
|
-
height: '100%',
|
22160
|
-
overflow: 'hidden',
|
22161
|
-
zIndex: '100000',
|
22162
|
-
// pointer events for layerHost set to none to make descendants interactive
|
22163
|
-
pointerEvents: 'none'
|
22164
|
-
};
|
22165
|
-
|
22166
|
-
// Copyright (c) Microsoft Corporation.
|
22167
|
-
/**
|
22168
|
-
* @private
|
22169
|
-
*/
|
22170
|
-
// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410
|
22171
|
-
const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
22172
|
-
const modalHostRef = React.useRef(document.getElementById(modalLayerHostId));
|
22173
|
-
const modalHostWidth = _useContainerWidth(modalHostRef);
|
22174
|
-
const modalHostHeight = _useContainerHeight(modalHostRef);
|
22175
|
-
const minDragPosition = React.useMemo(() => modalHostWidth === undefined
|
22176
|
-
? undefined
|
22177
|
-
: {
|
22178
|
-
x: rtl
|
22179
|
-
? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx
|
22180
|
-
: MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,
|
22181
|
-
y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx
|
22182
|
-
}, [modalHostWidth, rtl]);
|
22183
|
-
const maxDragPosition = React.useMemo(() => modalHostWidth === undefined || modalHostHeight === undefined
|
22184
|
-
? undefined
|
22185
|
-
: {
|
22186
|
-
x: rtl
|
22187
|
-
? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx
|
22188
|
-
: MODAL_PIP_DEFAULT_PX.rightPositionPx,
|
22189
|
-
y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx
|
22190
|
-
}, [modalHostHeight, modalHostWidth, rtl]);
|
22191
|
-
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
22192
|
-
};
|
22193
|
-
/**
|
22194
|
-
* @private
|
22195
|
-
*/
|
22196
|
-
const defaultSpokenLanguage = 'en-us';
|
22197
|
-
|
22198
22140
|
// Copyright (c) Microsoft Corporation.
|
22199
22141
|
/**
|
22200
22142
|
* @private
|
@@ -22418,18 +22360,13 @@ const MoreDrawer = (props) => {
|
|
22418
22360
|
/* @conditional-compile-remove(close-captions) */
|
22419
22361
|
const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = React.useState(false);
|
22420
22362
|
/* @conditional-compile-remove(close-captions) */
|
22421
|
-
const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState(startCaptionsButtonProps.currentSpokenLanguage
|
22422
|
-
? defaultSpokenLanguage
|
22423
|
-
: startCaptionsButtonProps.currentSpokenLanguage);
|
22363
|
+
const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState(startCaptionsButtonProps.currentSpokenLanguage);
|
22424
22364
|
/* @conditional-compile-remove(close-captions) */
|
22425
22365
|
const onToggleChange = React.useCallback(() => __awaiter$b(void 0, void 0, void 0, function* () {
|
22426
22366
|
if (!startCaptionsButtonProps.checked) {
|
22427
22367
|
yield startCaptionsButtonHandlers.onStartCaptions({
|
22428
22368
|
spokenLanguage: currentSpokenLanguage
|
22429
22369
|
});
|
22430
|
-
// set spoken language when start captions with a spoken language specified.
|
22431
|
-
// this is to fix the bug when a second user starts captions with a new spoken language, captions bot ignore that spoken language
|
22432
|
-
startCaptionsButtonHandlers.onSetSpokenLanguage(currentSpokenLanguage);
|
22433
22370
|
}
|
22434
22371
|
else {
|
22435
22372
|
startCaptionsButtonHandlers.onStopCaptions();
|
@@ -23617,6 +23554,77 @@ const localAndRemotePIPSelector = reselect__namespace.createSelector([getDisplay
|
|
23617
23554
|
};
|
23618
23555
|
});
|
23619
23556
|
|
23557
|
+
// Copyright (c) Microsoft Corporation.
|
23558
|
+
/**
|
23559
|
+
* Default Modal PIP related pixel measurements used for ModalLocalAndremotePIP and common/utils.
|
23560
|
+
*
|
23561
|
+
* @private
|
23562
|
+
*/
|
23563
|
+
const MODAL_PIP_DEFAULT_PX = {
|
23564
|
+
rightPositionPx: 16,
|
23565
|
+
topPositionPx: 52,
|
23566
|
+
widthPx: 88,
|
23567
|
+
heightPx: 128
|
23568
|
+
};
|
23569
|
+
/**
|
23570
|
+
* @private
|
23571
|
+
*/
|
23572
|
+
const getPipStyles = (theme) => ({
|
23573
|
+
modal: {
|
23574
|
+
main: Object.assign(Object.assign({ borderRadius: theme.effects.roundedCorner4, boxShadow: theme.effects.elevation8,
|
23575
|
+
// Above the message thread / people pane.
|
23576
|
+
zIndex: 2 }, (theme.rtl
|
23577
|
+
? { left: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) }
|
23578
|
+
: { right: _pxToRem(MODAL_PIP_DEFAULT_PX.rightPositionPx) })), { top: _pxToRem(MODAL_PIP_DEFAULT_PX.topPositionPx) })
|
23579
|
+
}
|
23580
|
+
});
|
23581
|
+
/**
|
23582
|
+
* @private
|
23583
|
+
*/
|
23584
|
+
const PIPContainerStyle = {
|
23585
|
+
root: { position: 'absolute', width: '100%', height: '100%', pointerEvents: 'none' }
|
23586
|
+
};
|
23587
|
+
/**
|
23588
|
+
* @private
|
23589
|
+
*/
|
23590
|
+
const hiddenStyle = react.concatStyleSets(PIPContainerStyle, { root: { display: 'none' } });
|
23591
|
+
/**
|
23592
|
+
* @private
|
23593
|
+
*/
|
23594
|
+
const modalStyle = {
|
23595
|
+
main: {
|
23596
|
+
minWidth: 'min-content',
|
23597
|
+
minHeight: 'min-content',
|
23598
|
+
position: 'absolute',
|
23599
|
+
overflow: 'hidden',
|
23600
|
+
// pointer events for root Modal div set to auto to make LocalAndRemotePIP interactive
|
23601
|
+
pointerEvents: 'auto',
|
23602
|
+
touchAction: 'none'
|
23603
|
+
},
|
23604
|
+
root: {
|
23605
|
+
width: '100%',
|
23606
|
+
height: '100%',
|
23607
|
+
// pointer events for root Modal div set to none to make descendants interactive
|
23608
|
+
pointerEvents: 'none'
|
23609
|
+
}
|
23610
|
+
};
|
23611
|
+
/**
|
23612
|
+
* Styles for layer host to bound the modal wrapping PiPiP in the mobile pane.
|
23613
|
+
* @private
|
23614
|
+
*/
|
23615
|
+
const modalLayerHostStyle = {
|
23616
|
+
display: 'flex',
|
23617
|
+
position: 'absolute',
|
23618
|
+
left: 0,
|
23619
|
+
top: 0,
|
23620
|
+
width: '100%',
|
23621
|
+
height: '100%',
|
23622
|
+
overflow: 'hidden',
|
23623
|
+
zIndex: '100000',
|
23624
|
+
// pointer events for layerHost set to none to make descendants interactive
|
23625
|
+
pointerEvents: 'none'
|
23626
|
+
};
|
23627
|
+
|
23620
23628
|
// Copyright (c) Microsoft Corporation.
|
23621
23629
|
/**
|
23622
23630
|
* Drag options for Modal in {@link ModalLocalAndRemotePIP} component
|
@@ -23663,6 +23671,34 @@ const ModalLocalAndRemotePIP = (props) => {
|
|
23663
23671
|
!props.hidden && localAndRemotePIP)));
|
23664
23672
|
};
|
23665
23673
|
|
23674
|
+
// Copyright (c) Microsoft Corporation.
|
23675
|
+
/**
|
23676
|
+
* @private
|
23677
|
+
*/
|
23678
|
+
// Use document.getElementById until Fluent's Stack supports componentRef property: https://github.com/microsoft/fluentui/issues/20410
|
23679
|
+
const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
|
23680
|
+
const modalHostRef = React.useRef(document.getElementById(modalLayerHostId));
|
23681
|
+
const modalHostWidth = _useContainerWidth(modalHostRef);
|
23682
|
+
const modalHostHeight = _useContainerHeight(modalHostRef);
|
23683
|
+
const minDragPosition = React.useMemo(() => modalHostWidth === undefined
|
23684
|
+
? undefined
|
23685
|
+
: {
|
23686
|
+
x: rtl
|
23687
|
+
? -1 * MODAL_PIP_DEFAULT_PX.rightPositionPx
|
23688
|
+
: MODAL_PIP_DEFAULT_PX.rightPositionPx - modalHostWidth + MODAL_PIP_DEFAULT_PX.widthPx,
|
23689
|
+
y: -1 * MODAL_PIP_DEFAULT_PX.topPositionPx
|
23690
|
+
}, [modalHostWidth, rtl]);
|
23691
|
+
const maxDragPosition = React.useMemo(() => modalHostWidth === undefined || modalHostHeight === undefined
|
23692
|
+
? undefined
|
23693
|
+
: {
|
23694
|
+
x: rtl
|
23695
|
+
? modalHostWidth - MODAL_PIP_DEFAULT_PX.rightPositionPx - MODAL_PIP_DEFAULT_PX.widthPx
|
23696
|
+
: MODAL_PIP_DEFAULT_PX.rightPositionPx,
|
23697
|
+
y: modalHostHeight - MODAL_PIP_DEFAULT_PX.topPositionPx - MODAL_PIP_DEFAULT_PX.heightPx
|
23698
|
+
}, [modalHostHeight, modalHostWidth, rtl]);
|
23699
|
+
return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
|
23700
|
+
};
|
23701
|
+
|
23666
23702
|
// Copyright (c) Microsoft Corporation.
|
23667
23703
|
/**
|
23668
23704
|
* @private
|
@@ -24028,8 +24064,7 @@ const MediaGallery = (props) => {
|
|
24028
24064
|
}, [cameraSwitcherCallback, cameraSwitcherCameras]);
|
24029
24065
|
const onRenderAvatar = React.useCallback((userId, options) => {
|
24030
24066
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
24031
|
-
React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', maxHeight: '100%' } } },
|
24032
|
-
React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))));
|
24067
|
+
React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', maxHeight: '100%' } } }, (options === null || options === void 0 ? void 0 : options.coinSize) && (React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }))))));
|
24033
24068
|
}, [props.onFetchAvatarPersonaData]);
|
24034
24069
|
useLocalVideoStartTrigger(!!props.isVideoStreamOn);
|
24035
24070
|
/* @conditional-compile-remove(pinned-participants) */
|