@azure/communication-react 1.24.0-alpha-202501310016 → 1.24.0-alpha-202502040016
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 +25 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js → ChatMessageComponentAsRichTextEditBox-AkTSmAsd.js} +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js.map → ChatMessageComponentAsRichTextEditBox-AkTSmAsd.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DTWPl1yi.js → RichTextSendBoxWrapper-B3Xe7mdR.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DTWPl1yi.js.map → RichTextSendBoxWrapper-B3Xe7mdR.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-B8uYcMR8.js → index-CNpitKVB.js} +279 -524
- package/dist/dist-cjs/communication-react/index-CNpitKVB.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +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/communication-react/src/index.d.ts +1 -2
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -7
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.js +11 -23
- package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -18
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js +24 -40
- package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +1 -3
- package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.d.ts +3 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js +4 -72
- package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.d.ts +0 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +4 -17
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +1 -20
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +26 -3
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +11 -36
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +1 -2
- package/dist/dist-esm/react-components/src/components/VideoTile.js +6 -39
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.d.ts +10 -1
- package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js +34 -5
- package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils.js +1 -13
- package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
- package/dist/dist-esm/react-components/src/index.d.ts +1 -1
- package/dist/dist-esm/react-components/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +45 -22
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +45 -22
- package/dist/dist-esm/react-components/src/localization/locales/cy-GB/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +43 -20
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/es-MX/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/fr-CA/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +45 -22
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +45 -22
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +44 -21
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +44 -21
- package/dist/dist-esm/react-components/src/theming/icons.js +0 -6
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +0 -21
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +24 -38
- 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.js +5 -23
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +1 -85
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +0 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -8
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +16 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +16 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +0 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +39 -5
- 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 +38 -8
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-MX/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-CA/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +19 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +19 -0
- package/package.json +4 -4
- package/dist/dist-cjs/communication-react/index-B8uYcMR8.js.map +0 -1
@@ -21,6 +21,11 @@ export const REACTION_TRAVEL_HEIGHT = 0.35 * REM_TO_PX_MULTIPLIER;
|
|
21
21
|
*/
|
22
22
|
export const REACTION_MAX_TRAVEL_HEIGHT = 0.5 * REM_TO_PX_MULTIPLIER;
|
23
23
|
/* @conditional-compile-remove(together-mode) */
|
24
|
+
/**
|
25
|
+
* The maximum width for displaying the participant's display name.
|
26
|
+
*/
|
27
|
+
export const MAX_DISPLAY_NAME_WIDTH = 150;
|
28
|
+
/* @conditional-compile-remove(together-mode) */
|
24
29
|
/**
|
25
30
|
* Sets the seating position for a participant in Together Mode.
|
26
31
|
*
|
@@ -145,15 +150,25 @@ export const togetherModeParticipantStatusContainer = (backgroundColor, borderRa
|
|
145
150
|
* @private
|
146
151
|
*/
|
147
152
|
export const togetherModeParticipantDisplayName = (isParticipantHovered, participantSeatingWidth, color) => {
|
148
|
-
|
153
|
+
// expands the display name width when participant is hovered or clicked on else make it 70% of the participant seating width
|
154
|
+
const width = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
|
155
|
+
? 'fit-content'
|
156
|
+
: _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER);
|
157
|
+
// For smaller displays, the display name is hidden only participant is hovered or clicked on for mobile view
|
158
|
+
const showDisplayName = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
|
159
|
+
? 'inline-block'
|
160
|
+
: 'none';
|
149
161
|
return {
|
150
162
|
textOverflow: 'ellipsis',
|
151
|
-
flexGrow: 1, // Allow text to grow within available space
|
152
|
-
overflow: isParticipantHovered ? 'visible' : 'hidden',
|
153
163
|
whiteSpace: 'nowrap',
|
154
164
|
textAlign: 'center',
|
155
165
|
color,
|
156
|
-
|
166
|
+
overflow: isParticipantHovered ? 'visible' : 'hidden',
|
167
|
+
width,
|
168
|
+
display: showDisplayName,
|
169
|
+
fontSize: `${_pxToRem(13)}`,
|
170
|
+
lineHeight: `${_pxToRem(20)}`,
|
171
|
+
maxWidth: isParticipantHovered ? 'fit-content' : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER)
|
157
172
|
};
|
158
173
|
};
|
159
174
|
/* @conditional-compile-remove(together-mode) */
|
@@ -162,7 +177,7 @@ export const togetherModeParticipantDisplayName = (isParticipantHovered, partici
|
|
162
177
|
*/
|
163
178
|
export const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSize, participantSeatWidth) => {
|
164
179
|
const participantSeatWidthInPixel = parseFloat(participantSeatWidth) * REM_TO_PX_MULTIPLIER;
|
165
|
-
const emojiScaledSizeInPercent = (emojiScaledSize / participantSeatWidthInPixel) * 100;
|
180
|
+
const emojiScaledSizeInPercent = 100 - (emojiScaledSize / participantSeatWidthInPixel) * 100;
|
166
181
|
return {
|
167
182
|
width: `${emojiSize}`,
|
168
183
|
position: 'absolute',
|
@@ -170,4 +185,18 @@ export const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSi
|
|
170
185
|
left: `${emojiScaledSizeInPercent / 2}%`
|
171
186
|
};
|
172
187
|
};
|
188
|
+
/* @conditional-compile-remove(together-mode) */
|
189
|
+
/**
|
190
|
+
* The style for the transition of the participant status container in Together Mode.
|
191
|
+
* @private
|
192
|
+
*/
|
193
|
+
export const participantStatusTransitionStyle = {
|
194
|
+
position: 'absolute',
|
195
|
+
bottom: `${_pxToRem(2)}`,
|
196
|
+
width: 'fit-content',
|
197
|
+
textAlign: 'center',
|
198
|
+
transform: 'translate(-50%)',
|
199
|
+
transition: 'width 0.3s ease, transform 0.3s ease',
|
200
|
+
left: '50%'
|
201
|
+
};
|
173
202
|
//# sourceMappingURL=TogetherMode.styles.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TogetherMode.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/TogetherMode.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(together-mode) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(together-mode) */\nimport { VideoGalleryTogetherModeSeatingInfo } from '../../types/TogetherModeTypes';\n/* @conditional-compile-remove(together-mode) */\nimport { IStackStyles } from '@fluentui/react';\n/* @conditional-compile-remove(together-mode) */\nimport { CSSProperties } from 'react';\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Multiplier to convert rem units to pixels.\n */\nexport const REM_TO_PX_MULTIPLIER = 16;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The travel height for reactions in Together Mode.\n * The reaction move overlay uses pixel units, so the seat position height, defined in rem, needs to be converted to pixels\n */\nexport const REACTION_TRAVEL_HEIGHT = 0.35 * REM_TO_PX_MULTIPLIER;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Defines the maximum travel height for reactions in Together Mode.\n * Ensures the reaction animation does not exceed the center point from the top.\n * Since the reaction move overlay uses pixel units, the seat position height (defined in rem) must be converted to pixels.\n */\nexport const REACTION_MAX_TRAVEL_HEIGHT = 0.5 * REM_TO_PX_MULTIPLIER;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Interface for defining the coordinates of a seat in Together Mode.\n */\nexport interface TogetherModeParticipantSeatPosition {\n height: string;\n width: string;\n left: string;\n top: string;\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Interface for defining the style of a seat position in Together Mode.\n */\nexport interface TogetherModeSeatStyle {\n seatPosition: TogetherModeParticipantSeatPosition;\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Sets the seating position for a participant in Together Mode.\n *\n * @param seatingPosition - The seating position information.\n * @returns The style object for the seating position.\n */\nexport function setParticipantSeatingPosition(\n seatingPosition: VideoGalleryTogetherModeSeatingInfo\n): TogetherModeParticipantSeatPosition {\n return {\n width: _pxToRem(seatingPosition.width),\n height: _pxToRem(seatingPosition.height),\n left: _pxToRem(seatingPosition.left),\n top: _pxToRem(seatingPosition.top)\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Return a style bucket based on the number of active sprites.\n * For example, the first three reactions should appear at maximum\n * height, width, and opacity.\n * @private\n */\nexport function setTogetherModeSeatPositionStyle(\n seatingPosition: VideoGalleryTogetherModeSeatingInfo\n): TogetherModeSeatStyle {\n return {\n seatPosition: setParticipantSeatingPosition(seatingPosition)\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The style for the Together Mode meeting overlay.\n */\nexport const togetherModeMeetingOverlayStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: '0',\n left: '0'\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Generates the overlay style for a participant in Together Mode.\n *\n * @param seatingPosition - The seating position information.\n * @returns The style object for the participant overlay.\n */\nexport function getTogetherModeParticipantOverlayStyle(seatingPositionStyle: TogetherModeSeatStyle): CSSProperties {\n return {\n ...seatingPositionStyle.seatPosition,\n position: 'absolute'\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n// Function to map a value from one range to another\nconst mapRange = (value: number, inMin: number, inMax: number, outMin: number, outMax: number): number => {\n return outMin + ((value - inMin) * (outMax - outMin)) / (inMax - inMin);\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Calculate the reaction emoji scaled size based on width and height of the participant seat width and height.\n * This is needed when the browser is resized and the participant seat width and height changes.\n *\n * @param width - The width of the element.\n * @param height - The height of the element.\n * @returns The scaled size.\n */\nexport const calculateScaledSize = (width: number, height: number): number => {\n // Maximum participant seat width and height\n const maxSize = 600;\n // Minimum participant seat width and height\n const minSize = 200;\n // Minimum scaled width and height of the reaction emoji\n const minScaledSize = 35;\n // Maximum scaled width and height of the reaction emoji\n const maxScaledSize = 70;\n\n // Use width or height to determine scaling factor\n const size = Math.min(width, height);\n\n // Map the size to the desired range\n return mapRange(size, minSize, maxSize, minScaledSize, maxScaledSize);\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeStreamRootStyle: IStackStyles = {\n root: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n top: 0,\n left: 0\n }\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeIconStyle = (): CSSProperties => {\n return {\n width: _pxToRem(20),\n flexShrink: 0\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The style for the container holding the display name, raiseHand, spotlight and mute icons.\n * @private\n */\nexport const togetherModeParticipantStatusContainer = (\n backgroundColor: string,\n borderRadius: string\n): CSSProperties => {\n return {\n backgroundColor,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: _pxToRem(2),\n margin: '0 auto', // Centers the container\n padding: `0 ${_pxToRem(5)}`,\n borderRadius,\n width: 'fit-content'\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeParticipantDisplayName = (\n isParticipantHovered: boolean,\n participantSeatingWidth: number,\n color: string\n): CSSProperties => {\n const MIN_DISPLAY_NAME_WIDTH = 100;\n return {\n textOverflow: 'ellipsis',\n flexGrow: 1, // Allow text to grow within available space\n overflow: isParticipantHovered ? 'visible' : 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n color,\n display: isParticipantHovered || participantSeatingWidth > MIN_DISPLAY_NAME_WIDTH ? 'inline-block' : 'none' // Completely remove the element when hidden\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeParticipantEmojiSpriteStyle = (\n emojiSize: number,\n emojiScaledSize: number,\n participantSeatWidth: string\n): CSSProperties => {\n const participantSeatWidthInPixel = parseFloat(participantSeatWidth) * REM_TO_PX_MULTIPLIER;\n const emojiScaledSizeInPercent = (emojiScaledSize / participantSeatWidthInPixel) * 100;\n return {\n width: `${emojiSize}`,\n position: 'absolute',\n // Center the emoji sprite within the participant seat\n left: `${emojiScaledSizeInPercent / 2}%`\n };\n};\n"]}
|
1
|
+
{"version":3,"file":"TogetherMode.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/TogetherMode.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* @conditional-compile-remove(together-mode) */\nimport { _pxToRem } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(together-mode) */\nimport { VideoGalleryTogetherModeSeatingInfo } from '../../types/TogetherModeTypes';\n/* @conditional-compile-remove(together-mode) */\nimport { IStackStyles } from '@fluentui/react';\n/* @conditional-compile-remove(together-mode) */\nimport { CSSProperties } from 'react';\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Multiplier to convert rem units to pixels.\n */\nexport const REM_TO_PX_MULTIPLIER = 16;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The travel height for reactions in Together Mode.\n * The reaction move overlay uses pixel units, so the seat position height, defined in rem, needs to be converted to pixels\n */\nexport const REACTION_TRAVEL_HEIGHT = 0.35 * REM_TO_PX_MULTIPLIER;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Defines the maximum travel height for reactions in Together Mode.\n * Ensures the reaction animation does not exceed the center point from the top.\n * Since the reaction move overlay uses pixel units, the seat position height (defined in rem) must be converted to pixels.\n */\nexport const REACTION_MAX_TRAVEL_HEIGHT = 0.5 * REM_TO_PX_MULTIPLIER;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The maximum width for displaying the participant's display name.\n */\nexport const MAX_DISPLAY_NAME_WIDTH = 150;\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Interface for defining the coordinates of a seat in Together Mode.\n */\nexport interface TogetherModeParticipantSeatPosition {\n height: string;\n width: string;\n left: string;\n top: string;\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Interface for defining the style of a seat position in Together Mode.\n */\nexport interface TogetherModeSeatStyle {\n seatPosition: TogetherModeParticipantSeatPosition;\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Sets the seating position for a participant in Together Mode.\n *\n * @param seatingPosition - The seating position information.\n * @returns The style object for the seating position.\n */\nexport function setParticipantSeatingPosition(\n seatingPosition: VideoGalleryTogetherModeSeatingInfo\n): TogetherModeParticipantSeatPosition {\n return {\n width: _pxToRem(seatingPosition.width),\n height: _pxToRem(seatingPosition.height),\n left: _pxToRem(seatingPosition.left),\n top: _pxToRem(seatingPosition.top)\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Return a style bucket based on the number of active sprites.\n * For example, the first three reactions should appear at maximum\n * height, width, and opacity.\n * @private\n */\nexport function setTogetherModeSeatPositionStyle(\n seatingPosition: VideoGalleryTogetherModeSeatingInfo\n): TogetherModeSeatStyle {\n return {\n seatPosition: setParticipantSeatingPosition(seatingPosition)\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The style for the Together Mode meeting overlay.\n */\nexport const togetherModeMeetingOverlayStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: '0',\n left: '0'\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Generates the overlay style for a participant in Together Mode.\n *\n * @param seatingPosition - The seating position information.\n * @returns The style object for the participant overlay.\n */\nexport function getTogetherModeParticipantOverlayStyle(seatingPositionStyle: TogetherModeSeatStyle): CSSProperties {\n return {\n ...seatingPositionStyle.seatPosition,\n position: 'absolute'\n };\n}\n\n/* @conditional-compile-remove(together-mode) */\n// Function to map a value from one range to another\nconst mapRange = (value: number, inMin: number, inMax: number, outMin: number, outMax: number): number => {\n return outMin + ((value - inMin) * (outMax - outMin)) / (inMax - inMin);\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * Calculate the reaction emoji scaled size based on width and height of the participant seat width and height.\n * This is needed when the browser is resized and the participant seat width and height changes.\n *\n * @param width - The width of the element.\n * @param height - The height of the element.\n * @returns The scaled size.\n */\nexport const calculateScaledSize = (width: number, height: number): number => {\n // Maximum participant seat width and height\n const maxSize = 600;\n // Minimum participant seat width and height\n const minSize = 200;\n // Minimum scaled width and height of the reaction emoji\n const minScaledSize = 35;\n // Maximum scaled width and height of the reaction emoji\n const maxScaledSize = 70;\n\n // Use width or height to determine scaling factor\n const size = Math.min(width, height);\n\n // Map the size to the desired range\n return mapRange(size, minSize, maxSize, minScaledSize, maxScaledSize);\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeStreamRootStyle: IStackStyles = {\n root: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n top: 0,\n left: 0\n }\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeIconStyle = (): CSSProperties => {\n return {\n width: _pxToRem(20),\n flexShrink: 0\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The style for the container holding the display name, raiseHand, spotlight and mute icons.\n * @private\n */\nexport const togetherModeParticipantStatusContainer = (\n backgroundColor: string,\n borderRadius: string\n): CSSProperties => {\n return {\n backgroundColor,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: _pxToRem(2),\n margin: '0 auto', // Centers the container\n padding: `0 ${_pxToRem(5)}`,\n borderRadius,\n width: 'fit-content'\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeParticipantDisplayName = (\n isParticipantHovered: boolean,\n participantSeatingWidth: number,\n color: string\n): React.CSSProperties => {\n // expands the display name width when participant is hovered or clicked on else make it 70% of the participant seating width\n const width =\n isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH\n ? 'fit-content'\n : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER);\n\n // For smaller displays, the display name is hidden only participant is hovered or clicked on for mobile view\n const showDisplayName =\n isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH\n ? 'inline-block'\n : 'none';\n\n return {\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n color,\n overflow: isParticipantHovered ? 'visible' : 'hidden',\n width,\n display: showDisplayName,\n fontSize: `${_pxToRem(13)}`,\n lineHeight: `${_pxToRem(20)}`,\n maxWidth: isParticipantHovered ? 'fit-content' : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER)\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * @private\n */\nexport const togetherModeParticipantEmojiSpriteStyle = (\n emojiSize: number,\n emojiScaledSize: number,\n participantSeatWidth: string\n): CSSProperties => {\n const participantSeatWidthInPixel = parseFloat(participantSeatWidth) * REM_TO_PX_MULTIPLIER;\n const emojiScaledSizeInPercent = 100 - (emojiScaledSize / participantSeatWidthInPixel) * 100;\n return {\n width: `${emojiSize}`,\n position: 'absolute',\n // Center the emoji sprite within the participant seat\n left: `${emojiScaledSizeInPercent / 2}%`\n };\n};\n\n/* @conditional-compile-remove(together-mode) */\n/**\n * The style for the transition of the participant status container in Together Mode.\n * @private\n */\nexport const participantStatusTransitionStyle: CSSProperties = {\n position: 'absolute',\n bottom: `${_pxToRem(2)}`,\n width: 'fit-content',\n textAlign: 'center',\n transform: 'translate(-50%)',\n transition: 'width 0.3s ease, transform 0.3s ease',\n left: '50%'\n};\n"]}
|
@@ -295,13 +295,9 @@ export const customNotificationIconName = {
|
|
295
295
|
breakoutRoomJoined: 'NotificationBarBreakoutRoomJoined',
|
296
296
|
/* @conditional-compile-remove(breakout-rooms) */
|
297
297
|
breakoutRoomClosingSoon: 'NotificationBarBreakoutRoomClosingSoon',
|
298
|
-
/* @conditional-compile-remove(media-access) */
|
299
298
|
capabilityTurnVideoOnPresent: 'ControlButtonCameraOff',
|
300
|
-
/* @conditional-compile-remove(media-access) */
|
301
299
|
capabilityTurnVideoOnAbsent: 'ControlButtonCameraProhibited',
|
302
|
-
/* @conditional-compile-remove(media-access) */
|
303
300
|
capabilityUnmuteMicPresent: 'ControlButtonMicOff',
|
304
|
-
/* @conditional-compile-remove(media-access) */
|
305
301
|
capabilityUnmuteMicAbsent: 'ControlButtonMicProhibited',
|
306
302
|
/* @conditional-compile-remove(together-mode) */
|
307
303
|
togetherModeStarted: 'NotificationBarTogetherModeIcon',
|
@@ -358,19 +354,13 @@ export const nullToUndefined = (value) => (value === null ? undefined : value);
|
|
358
354
|
/**
|
359
355
|
* @private
|
360
356
|
*/
|
361
|
-
export const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings,
|
362
|
-
/* @conditional-compile-remove(media-access) */
|
363
|
-
isMicDisabled,
|
364
|
-
/* @conditional-compile-remove(media-access) */
|
365
|
-
isCameraDisabled) => {
|
357
|
+
export const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings, isMicDisabled, isCameraDisabled) => {
|
366
358
|
const mutedState = isMuted
|
367
359
|
? strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantMutedStateMutedAriaLabel
|
368
360
|
: strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantMutedStateUnmutedAriaLabel;
|
369
361
|
const handRaisedState = isHandRaised ? strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantHandRaisedAriaLabel : undefined;
|
370
362
|
const isSpeakingState = isSpeaking ? strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantIsSpeakingAriaLabel : undefined;
|
371
|
-
/* @conditional-compile-remove(media-access) */
|
372
363
|
const micDisabledState = isMicDisabled ? strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantMicDisabledAriaLabel : undefined;
|
373
|
-
/* @conditional-compile-remove(media-access) */
|
374
364
|
const cameraDisabledState = isCameraDisabled ? strings === null || strings === void 0 ? void 0 : strings.moreOptionsParticipantCameraDisabledAriaLabel : undefined;
|
375
365
|
const description = (strings === null || strings === void 0 ? void 0 : strings.moreOptionsButtonAriaLabel)
|
376
366
|
? _formatString(strings === null || strings === void 0 ? void 0 : strings.moreOptionsButtonAriaLabel, {
|
@@ -379,9 +369,7 @@ isCameraDisabled) => {
|
|
379
369
|
isHandRaised: handRaisedState !== null && handRaisedState !== void 0 ? handRaisedState : ' ',
|
380
370
|
state: state !== null && state !== void 0 ? state : ' ',
|
381
371
|
isSpeaking: isSpeakingState !== null && isSpeakingState !== void 0 ? isSpeakingState : ' ',
|
382
|
-
/* @conditional-compile-remove(media-access) */
|
383
372
|
micDisabledState: micDisabledState !== null && micDisabledState !== void 0 ? micDisabledState : ' ',
|
384
|
-
/* @conditional-compile-remove(media-access) */
|
385
373
|
cameraDisabledState: cameraDisabledState !== null && cameraDisabledState !== void 0 ? cameraDisabledState : ' '
|
386
374
|
})
|
387
375
|
: '';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IIconProps, MessageBarType } from '@fluentui/react';\nimport { ActiveErrorMessage, ErrorType } from './ErrorBar';\nimport { SupportedSpokenLanguage } from '../types';\nimport { ActiveNotification, NotificationType } from './NotificationStack';\nimport { VideoTileStrings } from './VideoTile';\nimport { _formatString } from '@internal/acs-ui-common';\n\n/**\n * @private\n *\n * @param fileName\n * @param length\n * @returns string\n */\nexport const truncatedFileName = (fileName: string, length: number): string => {\n return fileName.substring(0, length).trimEnd() + (fileName.length > length ? '... ' : '');\n};\n\n/**\n * @private\n *\n * @param fileName\n * @returns string\n */\nexport const extension = (fileName: string): string => fileName.split('.').pop() || '';\n\n/**\n * @private\n */\nexport interface DismissedError {\n type: ErrorType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n */\nexport interface DismissedNotification {\n type: NotificationType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n * @param dismissedErrors\n * @param toDismiss\n * @returns DismissedError[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissError = (dismissedErrors: DismissedError[], toDismiss: ActiveErrorMessage): DismissedError[] => {\n const now = new Date(Date.now());\n for (const error of dismissedErrors) {\n if (error.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n error.dismissedAt = now;\n error.activeSince = toDismiss.timestamp;\n return Array.from(dismissedErrors);\n }\n }\n\n const toDismissTimestamp = toDismiss.timestamp ?? now;\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedErrors,\n {\n type: toDismiss.type,\n // the error time could be sometimes later than the button click time, which cause the dismiss not working\n // so we set the dismiss time to the later one\n dismissedAt: now > toDismissTimestamp ? now : toDismissTimestamp,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveErrors = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[]\n): DismissedError[] => {\n const active = new Map();\n for (const message of activeErrorMessages) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedError): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedErrors.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedErrors.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedErrors;\n};\n\n/**\n * @private\n * @param dismissedNotifications\n * @param toDismiss\n * @returns DismissedNotification[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissNotification = (\n dismissedNotifications: DismissedNotification[],\n toDismiss: ActiveNotification\n): DismissedNotification[] => {\n const now = new Date(Date.now());\n for (const notification of dismissedNotifications) {\n if (notification.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n notification.dismissedAt = now;\n notification.activeSince = toDismiss.timestamp;\n return Array.from(dismissedNotifications);\n }\n }\n\n const toDismissTimestamp = toDismiss.timestamp ?? now;\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedNotifications,\n {\n type: toDismiss.type,\n // the error time could be sometimes later than the button click time, which cause the dismiss not working\n // so we set the dismiss time to the later one\n dismissedAt: now > toDismissTimestamp ? now : toDismissTimestamp,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeNotifications\n * @param dismissedNotifications\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveNotifications = (\n activeNotifications: ActiveNotification[],\n dismissedNotifications: DismissedNotification[]\n): DismissedNotification[] => {\n const active = new Map();\n for (const message of activeNotifications) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedNotification): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedNotifications.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedNotifications.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedNotifications;\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns ActiveErrorMessage[]\n */\nexport const errorsToShow = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[],\n mountTimestamp?: Date\n): ActiveErrorMessage[] => {\n const dismissed: Map<ErrorType, DismissedError> = new Map();\n for (const error of dismissedErrors) {\n dismissed.set(error.type, error);\n }\n\n return activeErrorMessages.filter((error) => {\n if (mountTimestamp && error.timestamp && mountTimestamp > error.timestamp) {\n // Error has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(error.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!error.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return error.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param activeNotifications\n * @param dismissedNotifications\n * @returns ActiveNotification[]\n */\nexport const notificationsToShow = (\n activeNotifications: ActiveNotification[],\n dismissedNotifications: DismissedNotification[],\n mountTimestamp?: Date\n): ActiveNotification[] => {\n const dismissed: Map<NotificationType, DismissedNotification> = new Map();\n for (const notification of dismissedNotifications) {\n dismissed.set(notification.type, notification);\n }\n\n return activeNotifications.filter((notification) => {\n if (mountTimestamp && notification.timestamp && mountTimestamp > notification.timestamp) {\n // Notification has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(notification.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!notification.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return notification.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param errorType\n * @returns MessageBarType\n */\nexport const messageBarType = (errorType: ErrorType): MessageBarType => {\n switch (errorType) {\n case 'callNetworkQualityLow':\n case 'callNoSpeakerFound':\n case 'callNoMicrophoneFound':\n case 'callMicrophoneAccessDenied':\n case 'callMicrophoneAccessDeniedSafari':\n case 'callMicrophoneMutedBySystem':\n case 'callMicrophoneUnmutedBySystem':\n case 'callMacOsMicrophoneAccessDenied':\n case 'callLocalVideoFreeze':\n case 'callCameraAccessDenied':\n case 'callCameraAccessDeniedSafari':\n case 'callCameraAlreadyInUse':\n case 'callVideoStoppedBySystem':\n case 'callVideoRecoveredBySystem':\n case 'callMacOsCameraAccessDenied':\n case 'callMacOsScreenShareAccessDenied':\n case 'startScreenShareGeneric':\n case 'cameraFrozenForRemoteParticipants':\n return MessageBarType.warning;\n default:\n return MessageBarType.error;\n }\n};\n\n/**\n * @private\n * @param errorType\n * @returns IIconProps | undefined\n */\nexport const messageBarIconProps = (errorType: ErrorType): IIconProps | undefined => {\n const iconName = customIconName[errorType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customIconName: Partial<{ [key in ErrorType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'\n};\n\n/**\n * @private\n * @param NotificationType\n * @returns IIconProps | undefined\n */\nexport const NotificationIconProps = (notificationType: NotificationType): IIconProps | undefined => {\n const iconName = customNotificationIconName[notificationType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customNotificationIconName: Partial<{ [key in NotificationType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n teamsMeetingCallNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied',\n mutedByRemoteParticipant: 'ErrorBarMutedByRemoteParticipant',\n speakingWhileMuted: 'ErrorBarCallMicrophoneMutedBySystem',\n recordingStarted: 'NotificationBarRecording',\n transcriptionStarted: 'NotificationBarRecording',\n recordingStopped: 'NotificationBarRecording',\n transcriptionStopped: 'NotificationBarRecording',\n recordingAndTranscriptionStarted: 'NotificationBarRecording',\n recordingAndTranscriptionStopped: 'NotificationBarRecording',\n recordingStoppedStillTranscribing: 'NotificationBarRecording',\n transcriptionStoppedStillRecording: 'NotificationBarRecording',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomOpened: 'NotificationBarBreakoutRoomOpened',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomOpenedPromptJoin: 'NotificationBarBreakoutRoomPromptJoin',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomChanged: 'NotificationBarBreakoutRoomChanged',\n /* @conditional-compile-remove(breakout-rooms) */\n breakoutRoomJoined: 'NotificationBarBreakoutRoomJoined',\n /* @conditional-compile-remove(breakout-rooms) */\n breakoutRoomClosingSoon: 'NotificationBarBreakoutRoomClosingSoon',\n /* @conditional-compile-remove(media-access) */\n capabilityTurnVideoOnPresent: 'ControlButtonCameraOff',\n /* @conditional-compile-remove(media-access) */\n capabilityTurnVideoOnAbsent: 'ControlButtonCameraProhibited',\n /* @conditional-compile-remove(media-access) */\n capabilityUnmuteMicPresent: 'ControlButtonMicOff',\n /* @conditional-compile-remove(media-access) */\n capabilityUnmuteMicAbsent: 'ControlButtonMicProhibited',\n /* @conditional-compile-remove(together-mode) */\n togetherModeStarted: 'NotificationBarTogetherModeIcon',\n /* @conditional-compile-remove(together-mode) */\n togetherModeEnded: 'NotificationBarTogetherModeIcon'\n};\n\n/**\n * @private\n */\nexport const isValidString = (string: string | undefined): string is string => {\n return !!string && string.length > 0;\n};\n\n/**\n * Chunk an array into rows of a given size.\n * @private\n */\nexport function chunk<T>(options: T[], itemsPerRow: number): T[][] {\n const rows: T[][] = [];\n let currentRow: T[] = [];\n for (const option of options) {\n currentRow.push(option);\n if (currentRow.length === itemsPerRow) {\n rows.push(currentRow);\n currentRow = [];\n }\n }\n if (currentRow.length > 0) {\n rows.push(currentRow);\n }\n return rows;\n}\n\n/**\n * @private\n */\nexport const defaultSpokenLanguage: SupportedSpokenLanguage = 'en-us';\n\n/**\n * @private\n */\nconst SAFARI_COMPOSITION_KEYCODE = 229;\n/**\n * Determine if the press of the enter key is from a composition session or not (Safari only)\n *\n * @private\n */\nexport const isEnterKeyEventFromCompositionSession = (e: KeyboardEvent): boolean => {\n // Uses KeyCode 229 and which code 229 to determine if the press of the enter key is from a composition session or not (the code check is needed for Safari only, for everything else e.isComposing check is enough)\n const isComposing =\n e.isComposing || e.keyCode === SAFARI_COMPOSITION_KEYCODE || e.which === SAFARI_COMPOSITION_KEYCODE;\n return isComposing && e.key === 'Enter';\n};\n\n/**\n * @private\n */\nexport const nullToUndefined = <T>(value: T | null): T | undefined => (value === null ? undefined : value);\n\n/**\n * @private\n */\nexport const formatMoreButtonAriaDescription = (\n displayName?: string,\n isMuted?: boolean,\n isHandRaised?: boolean,\n state?: string,\n isSpeaking?: boolean,\n strings?: VideoTileStrings,\n /* @conditional-compile-remove(media-access) */\n isMicDisabled?: boolean,\n /* @conditional-compile-remove(media-access) */\n isCameraDisabled?: boolean\n): string => {\n const mutedState = isMuted\n ? strings?.moreOptionsParticipantMutedStateMutedAriaLabel\n : strings?.moreOptionsParticipantMutedStateUnmutedAriaLabel;\n const handRaisedState = isHandRaised ? strings?.moreOptionsParticipantHandRaisedAriaLabel : undefined;\n const isSpeakingState = isSpeaking ? strings?.moreOptionsParticipantIsSpeakingAriaLabel : undefined;\n /* @conditional-compile-remove(media-access) */\n const micDisabledState = isMicDisabled ? strings?.moreOptionsParticipantMicDisabledAriaLabel : undefined;\n /* @conditional-compile-remove(media-access) */\n const cameraDisabledState = isCameraDisabled ? strings?.moreOptionsParticipantCameraDisabledAriaLabel : undefined;\n const description = strings?.moreOptionsButtonAriaLabel\n ? _formatString(strings?.moreOptionsButtonAriaLabel, {\n displayName: displayName ?? ' ',\n isMuted: mutedState ?? ' ',\n isHandRaised: handRaisedState ?? ' ',\n state: state ?? ' ',\n isSpeaking: isSpeakingState ?? ' ',\n /* @conditional-compile-remove(media-access) */\n micDisabledState: micDisabledState ?? ' ',\n /* @conditional-compile-remove(media-access) */\n cameraDisabledState: cameraDisabledState ?? ' '\n })\n : '';\n\n return description;\n};\n"]}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../react-components/src/components/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IIconProps, MessageBarType } from '@fluentui/react';\nimport { ActiveErrorMessage, ErrorType } from './ErrorBar';\nimport { SupportedSpokenLanguage } from '../types';\nimport { ActiveNotification, NotificationType } from './NotificationStack';\nimport { VideoTileStrings } from './VideoTile';\nimport { _formatString } from '@internal/acs-ui-common';\n\n/**\n * @private\n *\n * @param fileName\n * @param length\n * @returns string\n */\nexport const truncatedFileName = (fileName: string, length: number): string => {\n return fileName.substring(0, length).trimEnd() + (fileName.length > length ? '... ' : '');\n};\n\n/**\n * @private\n *\n * @param fileName\n * @returns string\n */\nexport const extension = (fileName: string): string => fileName.split('.').pop() || '';\n\n/**\n * @private\n */\nexport interface DismissedError {\n type: ErrorType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n */\nexport interface DismissedNotification {\n type: NotificationType;\n dismissedAt: Date;\n activeSince?: Date;\n}\n\n/**\n * @private\n * @param dismissedErrors\n * @param toDismiss\n * @returns DismissedError[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissError = (dismissedErrors: DismissedError[], toDismiss: ActiveErrorMessage): DismissedError[] => {\n const now = new Date(Date.now());\n for (const error of dismissedErrors) {\n if (error.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n error.dismissedAt = now;\n error.activeSince = toDismiss.timestamp;\n return Array.from(dismissedErrors);\n }\n }\n\n const toDismissTimestamp = toDismiss.timestamp ?? now;\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedErrors,\n {\n type: toDismiss.type,\n // the error time could be sometimes later than the button click time, which cause the dismiss not working\n // so we set the dismiss time to the later one\n dismissedAt: now > toDismissTimestamp ? now : toDismissTimestamp,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveErrors = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[]\n): DismissedError[] => {\n const active = new Map();\n for (const message of activeErrorMessages) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedError): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedErrors.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedErrors.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedErrors;\n};\n\n/**\n * @private\n * @param dismissedNotifications\n * @param toDismiss\n * @returns DismissedNotification[]\n * Always returns a new Array so that the state variable is updated, trigerring a render.\n */\nexport const dismissNotification = (\n dismissedNotifications: DismissedNotification[],\n toDismiss: ActiveNotification\n): DismissedNotification[] => {\n const now = new Date(Date.now());\n for (const notification of dismissedNotifications) {\n if (notification.type === toDismiss.type) {\n // Bump the timestamp for latest dismissal of this error to now.\n notification.dismissedAt = now;\n notification.activeSince = toDismiss.timestamp;\n return Array.from(dismissedNotifications);\n }\n }\n\n const toDismissTimestamp = toDismiss.timestamp ?? now;\n\n // Record that this error was dismissed for the first time right now.\n return [\n ...dismissedNotifications,\n {\n type: toDismiss.type,\n // the error time could be sometimes later than the button click time, which cause the dismiss not working\n // so we set the dismiss time to the later one\n dismissedAt: now > toDismissTimestamp ? now : toDismissTimestamp,\n activeSince: toDismiss.timestamp\n }\n ];\n};\n\n/**\n * @private\n * @param activeNotifications\n * @param dismissedNotifications\n * @returns DismissedError[]\n * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.\n */\nexport const dropDismissalsForInactiveNotifications = (\n activeNotifications: ActiveNotification[],\n dismissedNotifications: DismissedNotification[]\n): DismissedNotification[] => {\n const active = new Map();\n for (const message of activeNotifications) {\n active.set(message.type, message);\n }\n\n // For an error such that:\n // * It was previously active, and dismissed.\n // * It did not have a timestamp associated with it.\n // * It is no longer active.\n //\n // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.\n const shouldDeleteDismissal = (dismissed: DismissedNotification): boolean =>\n dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;\n\n if (dismissedNotifications.some((dismissed) => shouldDeleteDismissal(dismissed))) {\n return dismissedNotifications.filter((dismissed) => !shouldDeleteDismissal(dismissed));\n }\n return dismissedNotifications;\n};\n\n/**\n * @private\n * @param activeErrorMessages\n * @param dismissedErrors\n * @returns ActiveErrorMessage[]\n */\nexport const errorsToShow = (\n activeErrorMessages: ActiveErrorMessage[],\n dismissedErrors: DismissedError[],\n mountTimestamp?: Date\n): ActiveErrorMessage[] => {\n const dismissed: Map<ErrorType, DismissedError> = new Map();\n for (const error of dismissedErrors) {\n dismissed.set(error.type, error);\n }\n\n return activeErrorMessages.filter((error) => {\n if (mountTimestamp && error.timestamp && mountTimestamp > error.timestamp) {\n // Error has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(error.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!error.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return error.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param activeNotifications\n * @param dismissedNotifications\n * @returns ActiveNotification[]\n */\nexport const notificationsToShow = (\n activeNotifications: ActiveNotification[],\n dismissedNotifications: DismissedNotification[],\n mountTimestamp?: Date\n): ActiveNotification[] => {\n const dismissed: Map<NotificationType, DismissedNotification> = new Map();\n for (const notification of dismissedNotifications) {\n dismissed.set(notification.type, notification);\n }\n\n return activeNotifications.filter((notification) => {\n if (mountTimestamp && notification.timestamp && mountTimestamp > notification.timestamp) {\n // Notification has a timestamp and it is older than when the component was mounted.\n return false;\n }\n\n const dismissal = dismissed.get(notification.type);\n if (!dismissal) {\n // This error was never dismissed.\n return true;\n }\n if (!notification.timestamp) {\n // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.\n return false;\n }\n // Error has an associated timestamp, so compare with last dismissal.\n return notification.timestamp > dismissal.dismissedAt;\n });\n};\n\n/**\n * @private\n * @param errorType\n * @returns MessageBarType\n */\nexport const messageBarType = (errorType: ErrorType): MessageBarType => {\n switch (errorType) {\n case 'callNetworkQualityLow':\n case 'callNoSpeakerFound':\n case 'callNoMicrophoneFound':\n case 'callMicrophoneAccessDenied':\n case 'callMicrophoneAccessDeniedSafari':\n case 'callMicrophoneMutedBySystem':\n case 'callMicrophoneUnmutedBySystem':\n case 'callMacOsMicrophoneAccessDenied':\n case 'callLocalVideoFreeze':\n case 'callCameraAccessDenied':\n case 'callCameraAccessDeniedSafari':\n case 'callCameraAlreadyInUse':\n case 'callVideoStoppedBySystem':\n case 'callVideoRecoveredBySystem':\n case 'callMacOsCameraAccessDenied':\n case 'callMacOsScreenShareAccessDenied':\n case 'startScreenShareGeneric':\n case 'cameraFrozenForRemoteParticipants':\n return MessageBarType.warning;\n default:\n return MessageBarType.error;\n }\n};\n\n/**\n * @private\n * @param errorType\n * @returns IIconProps | undefined\n */\nexport const messageBarIconProps = (errorType: ErrorType): IIconProps | undefined => {\n const iconName = customIconName[errorType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customIconName: Partial<{ [key in ErrorType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'\n};\n\n/**\n * @private\n * @param NotificationType\n * @returns IIconProps | undefined\n */\nexport const NotificationIconProps = (notificationType: NotificationType): IIconProps | undefined => {\n const iconName = customNotificationIconName[notificationType];\n return iconName ? { iconName } : undefined;\n};\n\n/**\n * @private\n */\nexport const customNotificationIconName: Partial<{ [key in NotificationType]: string }> = {\n callNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n teamsMeetingCallNetworkQualityLow: 'ErrorBarCallNetworkQualityLow',\n callNoSpeakerFound: 'ErrorBarCallNoSpeakerFound',\n callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',\n callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneAccessDeniedSafari: 'ErrorBarCallMicrophoneAccessDenied',\n callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',\n callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',\n callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',\n callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',\n callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',\n callCameraAccessDeniedSafari: 'ErrorBarCallCameraAccessDenied',\n callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',\n callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',\n callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',\n callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied',\n mutedByRemoteParticipant: 'ErrorBarMutedByRemoteParticipant',\n speakingWhileMuted: 'ErrorBarCallMicrophoneMutedBySystem',\n recordingStarted: 'NotificationBarRecording',\n transcriptionStarted: 'NotificationBarRecording',\n recordingStopped: 'NotificationBarRecording',\n transcriptionStopped: 'NotificationBarRecording',\n recordingAndTranscriptionStarted: 'NotificationBarRecording',\n recordingAndTranscriptionStopped: 'NotificationBarRecording',\n recordingStoppedStillTranscribing: 'NotificationBarRecording',\n transcriptionStoppedStillRecording: 'NotificationBarRecording',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomOpened: 'NotificationBarBreakoutRoomOpened',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomOpenedPromptJoin: 'NotificationBarBreakoutRoomPromptJoin',\n /* @conditional-compile-remove(breakout-rooms) */\n assignedBreakoutRoomChanged: 'NotificationBarBreakoutRoomChanged',\n /* @conditional-compile-remove(breakout-rooms) */\n breakoutRoomJoined: 'NotificationBarBreakoutRoomJoined',\n /* @conditional-compile-remove(breakout-rooms) */\n breakoutRoomClosingSoon: 'NotificationBarBreakoutRoomClosingSoon',\n capabilityTurnVideoOnPresent: 'ControlButtonCameraOff',\n capabilityTurnVideoOnAbsent: 'ControlButtonCameraProhibited',\n capabilityUnmuteMicPresent: 'ControlButtonMicOff',\n capabilityUnmuteMicAbsent: 'ControlButtonMicProhibited',\n /* @conditional-compile-remove(together-mode) */\n togetherModeStarted: 'NotificationBarTogetherModeIcon',\n /* @conditional-compile-remove(together-mode) */\n togetherModeEnded: 'NotificationBarTogetherModeIcon'\n};\n\n/**\n * @private\n */\nexport const isValidString = (string: string | undefined): string is string => {\n return !!string && string.length > 0;\n};\n\n/**\n * Chunk an array into rows of a given size.\n * @private\n */\nexport function chunk<T>(options: T[], itemsPerRow: number): T[][] {\n const rows: T[][] = [];\n let currentRow: T[] = [];\n for (const option of options) {\n currentRow.push(option);\n if (currentRow.length === itemsPerRow) {\n rows.push(currentRow);\n currentRow = [];\n }\n }\n if (currentRow.length > 0) {\n rows.push(currentRow);\n }\n return rows;\n}\n\n/**\n * @private\n */\nexport const defaultSpokenLanguage: SupportedSpokenLanguage = 'en-us';\n\n/**\n * @private\n */\nconst SAFARI_COMPOSITION_KEYCODE = 229;\n/**\n * Determine if the press of the enter key is from a composition session or not (Safari only)\n *\n * @private\n */\nexport const isEnterKeyEventFromCompositionSession = (e: KeyboardEvent): boolean => {\n // Uses KeyCode 229 and which code 229 to determine if the press of the enter key is from a composition session or not (the code check is needed for Safari only, for everything else e.isComposing check is enough)\n const isComposing =\n e.isComposing || e.keyCode === SAFARI_COMPOSITION_KEYCODE || e.which === SAFARI_COMPOSITION_KEYCODE;\n return isComposing && e.key === 'Enter';\n};\n\n/**\n * @private\n */\nexport const nullToUndefined = <T>(value: T | null): T | undefined => (value === null ? undefined : value);\n\n/**\n * @private\n */\nexport const formatMoreButtonAriaDescription = (\n displayName?: string,\n isMuted?: boolean,\n isHandRaised?: boolean,\n state?: string,\n isSpeaking?: boolean,\n strings?: VideoTileStrings,\n isMicDisabled?: boolean,\n isCameraDisabled?: boolean\n): string => {\n const mutedState = isMuted\n ? strings?.moreOptionsParticipantMutedStateMutedAriaLabel\n : strings?.moreOptionsParticipantMutedStateUnmutedAriaLabel;\n const handRaisedState = isHandRaised ? strings?.moreOptionsParticipantHandRaisedAriaLabel : undefined;\n const isSpeakingState = isSpeaking ? strings?.moreOptionsParticipantIsSpeakingAriaLabel : undefined;\n const micDisabledState = isMicDisabled ? strings?.moreOptionsParticipantMicDisabledAriaLabel : undefined;\n const cameraDisabledState = isCameraDisabled ? strings?.moreOptionsParticipantCameraDisabledAriaLabel : undefined;\n const description = strings?.moreOptionsButtonAriaLabel\n ? _formatString(strings?.moreOptionsButtonAriaLabel, {\n displayName: displayName ?? ' ',\n isMuted: mutedState ?? ' ',\n isHandRaised: handRaisedState ?? ' ',\n state: state ?? ' ',\n isSpeaking: isSpeakingState ?? ' ',\n micDisabledState: micDisabledState ?? ' ',\n cameraDisabledState: cameraDisabledState ?? ' '\n })\n : '';\n\n return description;\n};\n"]}
|
@@ -30,6 +30,7 @@ export type { ComponentStrings, ComponentLocale, LocalizationProviderProps } fro
|
|
30
30
|
export * from './theming';
|
31
31
|
export * from './theming/generateTheme';
|
32
32
|
export type { BaseCustomStyles, CallParticipantListParticipant, ChatMessage, CommunicationParticipant, ComponentSlotStyle, ContentSystemMessage, CreateVideoStreamViewResult, CustomAvatarOptions, CustomMessage, Message, MessageAttachedStatus, MessageCommon, MessageContentType, OnRenderAvatarCallback, ParticipantAddedSystemMessage, ParticipantListParticipant, ParticipantRemovedSystemMessage, ParticipantState, ReadReceiptsBySenderId, SystemMessage, SystemMessageCommon, TopicUpdatedSystemMessage, VideoGalleryLocalParticipant, VideoGalleryParticipant, VideoGalleryRemoteParticipant, VideoGalleryStream, VideoStreamOptions, ViewScalingMode } from './types';
|
33
|
+
export type { TogetherModeStreamViewResult, VideoGalleryTogetherModeParticipantPosition, VideoGalleryTogetherModeSeatingInfo, VideoGalleryTogetherModeStreams, TogetherModeStreamOptions } from './types';
|
33
34
|
export type { RaisedHand } from './types';
|
34
35
|
export type { Spotlight } from './types';
|
35
36
|
export type { Reaction, ReactionResources, ReactionSprite } from './types';
|
@@ -39,6 +40,5 @@ export type { BlockedMessage } from './types';
|
|
39
40
|
export type { SurveyIssues } from './types';
|
40
41
|
export type { SurveyIssuesHeadingStrings } from './types';
|
41
42
|
export type { CallSurveyImprovementSuggestions } from './types';
|
42
|
-
export type { TogetherModeStreamViewResult, VideoGalleryTogetherModeParticipantPosition, VideoGalleryTogetherModeSeatingInfo, VideoGalleryTogetherModeStreams, TogetherModeStreamOptions } from './types';
|
43
43
|
export type { MediaAccess } from './types';
|
44
44
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AAsDxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from './components';\nexport { _IdentifierProvider } from './identifiers';\nexport type { _Identifiers, _IdentifierProviderProps } from './identifiers';\nexport * from './localization/locales';\nexport { LocalizationProvider } from './localization';\nexport { COMPONENT_LOCALE_EN_GB } from './localization/locales/en-GB/ComponentLocale';\nexport { COMPONENT_LOCALE_AR_SA } from './localization/locales/ar-SA/ComponentLocale';\nexport { COMPONENT_LOCALE_CS_CZ } from './localization/locales/cs-CZ/ComponentLocale';\nexport { COMPONENT_LOCALE_CY_GB } from './localization/locales/cy-GB/ComponentLocale';\nexport { COMPONENT_LOCALE_DE_DE } from './localization/locales/de-DE/ComponentLocale';\nexport { COMPONENT_LOCALE_ES_ES } from './localization/locales/es-ES/ComponentLocale';\nexport { COMPONENT_LOCALE_ES_MX } from './localization/locales/es-MX/ComponentLocale';\nexport { COMPONENT_LOCALE_FI_FI } from './localization/locales/fi-FI/ComponentLocale';\nexport { COMPONENT_LOCALE_FR_FR } from './localization/locales/fr-FR/ComponentLocale';\nexport { COMPONENT_LOCALE_FR_CA } from './localization/locales/fr-CA/ComponentLocale';\nexport { COMPONENT_LOCALE_HE_IL } from './localization/locales/he-IL/ComponentLocale';\nexport { COMPONENT_LOCALE_IT_IT } from './localization/locales/it-IT/ComponentLocale';\nexport { COMPONENT_LOCALE_JA_JP } from './localization/locales/ja-JP/ComponentLocale';\nexport { COMPONENT_LOCALE_KO_KR } from './localization/locales/ko-KR/ComponentLocale';\nexport { COMPONENT_LOCALE_NB_NO } from './localization/locales/nb-NO/ComponentLocale';\nexport { COMPONENT_LOCALE_NL_NL } from './localization/locales/nl-NL/ComponentLocale';\nexport { COMPONENT_LOCALE_PL_PL } from './localization/locales/pl-PL/ComponentLocale';\nexport { COMPONENT_LOCALE_PT_BR } from './localization/locales/pt-BR/ComponentLocale';\nexport { COMPONENT_LOCALE_RU_RU } from './localization/locales/ru-RU/ComponentLocale';\nexport { COMPONENT_LOCALE_SV_SE } from './localization/locales/sv-SE/ComponentLocale';\nexport { COMPONENT_LOCALE_TR_TR } from './localization/locales/tr-TR/ComponentLocale';\nexport { COMPONENT_LOCALE_ZH_CN } from './localization/locales/zh-CN/ComponentLocale';\nexport { COMPONENT_LOCALE_ZH_TW } from './localization/locales/zh-TW/ComponentLocale';\nexport type { ComponentStrings, ComponentLocale, LocalizationProviderProps } from './localization';\nexport * from './theming';\nexport * from './theming/generateTheme';\n\nexport type {\n BaseCustomStyles,\n CallParticipantListParticipant,\n ChatMessage,\n CommunicationParticipant,\n ComponentSlotStyle,\n ContentSystemMessage,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n OnRenderAvatarCallback,\n ParticipantAddedSystemMessage,\n ParticipantListParticipant,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ReadReceiptsBySenderId,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoStreamOptions,\n ViewScalingMode\n} from './types';\n\n/* @conditional-compile-remove(together-mode) */\nexport type {\n TogetherModeStreamViewResult,\n VideoGalleryTogetherModeParticipantPosition,\n VideoGalleryTogetherModeSeatingInfo,\n VideoGalleryTogetherModeStreams,\n TogetherModeStreamOptions\n} from './types';\n\nexport type { RaisedHand } from './types';\n\nexport type { Spotlight } from './types';\n\nexport type { Reaction, ReactionResources, ReactionSprite } from './types';\n\nexport type {\n SpokenLanguageStrings,\n CaptionLanguageStrings,\n SupportedSpokenLanguage,\n SupportedCaptionLanguage\n} from './types';\nexport { _spokenLanguageToCaptionLanguage } from './types';\n\n/* @conditional-compile-remove(data-loss-prevention) */\nexport type { BlockedMessage } from './types';\n\nexport type { SurveyIssues } from './types';\n\nexport type { SurveyIssuesHeadingStrings } from './types';\n\nexport type { CallSurveyImprovementSuggestions } from './types';\n\nexport type { MediaAccess } from './types';\n"]}
|
@@ -9,9 +9,11 @@
|
|
9
9
|
"displayNamePlaceholder": "مشارك غير مسمى",
|
10
10
|
"participantStateRinging": "يتم الآن الاتصال...",
|
11
11
|
"participantStateHold": "قيد الانتظار",
|
12
|
-
"participantItemAriaLabel": "{displayName}
|
13
|
-
"participantItemWithMoreOptionsAriaLabel": "{displayName}، {handRaisedState}، {mutedState}، {sharingState}، {connectionState}،
|
14
|
-
"attendeeRole": "الحضور"
|
12
|
+
"participantItemAriaLabel": "{displayName}, {handRaisedState}, {mutedState}, {micDisabledState}, {cameraDisabledState}, {sharingState}, {connectionState}",
|
13
|
+
"participantItemWithMoreOptionsAriaLabel": "{displayName}، {handRaisedState}، {mutedState}، {micDisabledState}، {cameraDisabledState}، {sharingState}، {connectionState}، خيارات إضافية",
|
14
|
+
"attendeeRole": "الحضور",
|
15
|
+
"micDisabledIconLabel": "تم تعطيل الميكروفون",
|
16
|
+
"cameraDisabledIconLabel": "تم تعطيل الكاميرا"
|
15
17
|
},
|
16
18
|
"ParticipantList": {
|
17
19
|
"overflowParticipantCount": "+{overflowCount} من الأشخاص الإضافيين"
|
@@ -69,16 +71,26 @@
|
|
69
71
|
"richTextBulletedListAppliedAnnouncement": "تم تطبيق قائمة نقطية",
|
70
72
|
"richTextNumberedListAppliedAnnouncement": "تطبيق قائمة ذات تعداد رقمي"
|
71
73
|
},
|
72
|
-
"
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"
|
77
|
-
"
|
78
|
-
"
|
74
|
+
"realTimeTextModal": {
|
75
|
+
"realTimeTextModalAriaLabel": "تشغيل مربع حوار عرض الكتابة في الوقت الحقيقي (RTT) المشروط",
|
76
|
+
"realTimeTextModalTitle": "هل تريد تشغيل عرض الكتابة في الوقت الحقيقي؟",
|
77
|
+
"realTimeTextModalText": "سيتم تشغيل النص في الوقت الحقيقي (RTT) لكل شخص في الاجتماع.",
|
78
|
+
"realTimeTextConfirmButtonLabel": "تشغيل",
|
79
|
+
"realTimeTextCancelButtonLabel": "إلغاء الأمر",
|
80
|
+
"realTimeTextCloseModalButtonAriaLabel": "إغلاق مربع حوار عرض الكتابة في الوقت الحقيقي (RTT) المشروط"
|
79
81
|
},
|
80
82
|
"captionsBanner": {
|
81
|
-
"captionsBannerSpinnerText": "يتم الآن بدء التسميات التوضيحية..."
|
83
|
+
"captionsBannerSpinnerText": "يتم الآن بدء التسميات التوضيحية...",
|
84
|
+
"realTimeTextInputBoxDefaultText": "اكتب رسالة في الوقت الحقيقي",
|
85
|
+
"realTimeTextInputErrorMessage": "لا يمكن أن تتجاوز الرسالة 2000 حرف",
|
86
|
+
"realTimeTextBannerTitle": "عرض الكتابة في الوقت الحقيقي (RTT)",
|
87
|
+
"realTimeTextBannerContent": "تم تمكين RTT (نص الوقت الحقيقي) لجميع المشاركين طوال مدة الاجتماع.",
|
88
|
+
"realTimeTextBannerLinkLabel": "تعرّف على المزيد",
|
89
|
+
"captionsOnlyContainerTitle": "نص الكلام",
|
90
|
+
"realTimeTextOnlyContainerTitle": "نص حقيقي",
|
91
|
+
"captionsAndRealTimeTextContainerTitle": "التسميات التوضيحية والنص في الوقت الحقيقي",
|
92
|
+
"expandButtonAriaLabel": "توسيع",
|
93
|
+
"minimizeButtonAriaLabel": "طي"
|
82
94
|
},
|
83
95
|
"mentionPopover": {
|
84
96
|
"mentionPopoverHeader": "الاقتراحات"
|
@@ -86,7 +98,7 @@
|
|
86
98
|
"imageOverlay": {
|
87
99
|
"downloadButtonLabel": "تنزيل",
|
88
100
|
"dismissButtonAriaLabel": "إغلاق",
|
89
|
-
"overlayVisibleMessage": "
|
101
|
+
"overlayVisibleMessage": "تراكب تفاصيل الصور"
|
90
102
|
},
|
91
103
|
"messageStatusIndicator": {
|
92
104
|
"deliveredAriaLabel": "تم إرسال الرسالة",
|
@@ -195,8 +207,8 @@
|
|
195
207
|
"applauseReactionTooltipContent": "تصفيق",
|
196
208
|
"surprisedReactionTooltipContent": "مندهش"
|
197
209
|
},
|
198
|
-
"
|
199
|
-
"isTypingText": "
|
210
|
+
"realTimeText": {
|
211
|
+
"isTypingText": "عرض الكتابة في الوقت الحقيقي (RTT) قيد الكتابة"
|
200
212
|
},
|
201
213
|
"captionsSettingsModal": {
|
202
214
|
"captionsSettingsModalTitle": "إعدادات التسميات التوضيحية",
|
@@ -292,6 +304,10 @@
|
|
292
304
|
"tooltipOnContent": "تعطيل نص الكلام",
|
293
305
|
"tooltipOffContent": "تمكين نص الكلام"
|
294
306
|
},
|
307
|
+
"startRealTimeTextButton": {
|
308
|
+
"label": "تشغيل RTT لهذه المكالمة",
|
309
|
+
"tooltipOffContent": "تشغيل RTT لهذه المكالمة"
|
310
|
+
},
|
295
311
|
"messageThread": {
|
296
312
|
"yesterday": "أمس",
|
297
313
|
"sunday": "الأحد",
|
@@ -308,7 +324,9 @@
|
|
308
324
|
"resendMessage": "محاولة الإرسال مرة أخرى",
|
309
325
|
"failToSendTag": "فشل الإرسال",
|
310
326
|
"editedTag": "تم التحرير",
|
311
|
-
"liveAuthorIntro": "
|
327
|
+
"liveAuthorIntro": "رسالة من {author}",
|
328
|
+
"editedMessageLiveAuthorIntro": "تم تحرير الرسالة من {author}",
|
329
|
+
"editedMessageLocalUserLiveAuthorIntro": "رسالة محررة",
|
312
330
|
"messageContentAriaText": "{status} {author} قال {message}",
|
313
331
|
"messageContentMineAriaText": "{status} أنت قولت {message}",
|
314
332
|
"editBoxTextLimit": "تجاوزت رسالتك الحد الأقصى لعدد الأحرف {limitNumber}",
|
@@ -616,6 +634,14 @@
|
|
616
634
|
"title": "تم تعطيل الميكروفون",
|
617
635
|
"message": "لم يعد بإمكانك إلغاء كتم الصوت.",
|
618
636
|
"dismissButtonAriaLabel": "إغلاق"
|
637
|
+
},
|
638
|
+
"togetherModeStarted": {
|
639
|
+
"title": "تم بدء وضع التجميع",
|
640
|
+
"dismissButtonAriaLabel": "إغلاق"
|
641
|
+
},
|
642
|
+
"togetherModeEnded": {
|
643
|
+
"title": "تم إنهاء وضع التجميع",
|
644
|
+
"dismissButtonAriaLabel": "إغلاق"
|
619
645
|
}
|
620
646
|
},
|
621
647
|
"videoGallery": {
|
@@ -668,11 +694,13 @@
|
|
668
694
|
"participantStateRinging": "يتم الآن الاتصال...",
|
669
695
|
"participantReconnecting": "يتم الآن إعادة الاتصال...",
|
670
696
|
"participantStateHold": "قيد الانتظار",
|
671
|
-
"moreOptionsButtonAriaLabel": "خيارات إضافية {displayName} {isMuted} {isHandRaised} {state} {isSpeaking}",
|
697
|
+
"moreOptionsButtonAriaLabel": "خيارات إضافية {displayName} {isMuted} {micDisabledState} {cameraDisabledState} {isHandRaised} {state} {isSpeaking}",
|
672
698
|
"moreOptionsParticipantMutedStateMutedAriaLabel": "مكتوم الصوت",
|
673
699
|
"moreOptionsParticipantMutedStateUnmutedAriaLabel": "غير مكتوم الصوت",
|
674
700
|
"moreOptionsParticipantHandRaisedAriaLabel": "يد مرفوعة",
|
675
|
-
"moreOptionsParticipantIsSpeakingAriaLabel": "يتحدث"
|
701
|
+
"moreOptionsParticipantIsSpeakingAriaLabel": "يتحدث",
|
702
|
+
"moreOptionsParticipantMicDisabledAriaLabel": "تم تعطيل الميكروفون",
|
703
|
+
"moreOptionsParticipantCameraDisabledAriaLabel": "تم تعطيل الكاميرا"
|
676
704
|
},
|
677
705
|
"CameraAndMicrophoneSitePermissionsRequest": {
|
678
706
|
"primaryText": "السماح {appName} باستخدام الكاميرا والميكروفون لديك",
|
@@ -813,10 +841,5 @@
|
|
813
841
|
"incomingCallNotificationRejectButtonLabel": "رفض",
|
814
842
|
"incomingCallNotificationAccceptWithVideoButtonLabel": "قبول مع الفيديو",
|
815
843
|
"incomingCallNotificationDismissButtonAriaLabel": "تجاهل"
|
816
|
-
},
|
817
|
-
"rttDisclosureBanner": {
|
818
|
-
"bannerTitle": "عرض الكتابة في الوقت الحقيقي (RTT)",
|
819
|
-
"bannerContent": "تم تمكين RTT (نص الوقت الحقيقي) لجميع المشاركين طوال مدة الاجتماع.",
|
820
|
-
"bannerLinkLabel": "تعرّف على المزيد"
|
821
844
|
}
|
822
845
|
}
|