@azure/communication-react 1.8.1-alpha-202309300012 → 1.8.1-alpha-202310050013
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 -9
- package/dist/dist-cjs/communication-react/index.js +921 -490
- 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/react-components/src/components/CaptionsBanner.js +5 -7
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +5 -22
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +2 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +2 -3
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +0 -5
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +17 -13
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +9 -0
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +79 -20
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ImageGallery.js +8 -16
- package/dist/dist-esm/react-components/src/components/ImageGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +9 -8
- package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +15 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +114 -93
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/SystemMessage.js +1 -1
- package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VerticalGallery.js +1 -1
- package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +4 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +6 -6
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +4 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +4 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +6 -6
- package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +2 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +4 -4
- 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 +5 -7
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +24 -9
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.d.ts +3 -2
- package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js +10 -6
- package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.d.ts +0 -4
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +0 -10
- package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +8 -2
- package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +10 -19
- package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +129 -119
- package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +8 -2
- package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js +1 -1
- package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.d.ts +12 -0
- package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js +37 -0
- package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/utils/Datetime.d.ts +7 -8
- package/dist/dist-esm/react-components/src/components/utils/Datetime.js +9 -31
- package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -2
- package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.d.ts +3 -4
- package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +40 -52
- package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.d.ts +22 -0
- package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +29 -0
- package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -0
- package/dist/dist-esm/react-components/src/theming/themeDuplicates.d.ts +29 -0
- package/dist/dist-esm/react-components/src/theming/themeDuplicates.js +121 -0
- package/dist/dist-esm/react-components/src/theming/themeDuplicates.js.map +1 -0
- package/dist/dist-esm/react-components/src/theming/v9ThemeShim.d.ts +12 -0
- package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +206 -0
- package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -0
- package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +2 -2
- package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -1
- 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/MediaGallery.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +31 -28
- 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 +22 -17
- 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 +3 -3
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +5 -5
- package/package.json +12 -11
- package/dist/dist-esm/northstar-wrapper/src/index.js +0 -2
- package/dist/dist-esm/northstar-wrapper/src/index.js.LICENSE.txt +0 -41
@@ -0,0 +1,206 @@
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
2
|
+
// Licensed under the MIT License.
|
3
|
+
import { webLightTheme } from '@fluentui/react-components';
|
4
|
+
import { blackAlpha, whiteAlpha, grey, grey10Alpha, grey12Alpha } from './themeDuplicates';
|
5
|
+
// These mappings are required for createV9Theme
|
6
|
+
// For more info, check https://react.fluentui.dev/iframe.html?viewMode=docs&id=concepts-migration-from-v8-components-theme-migration--page#compatible-themes
|
7
|
+
/**
|
8
|
+
* Creates v9 color tokens from a v8 palette.
|
9
|
+
*/
|
10
|
+
const mapAliasColors = (palette, inverted) => {
|
11
|
+
return {
|
12
|
+
colorNeutralForeground1: palette.neutralPrimary,
|
13
|
+
colorNeutralForeground1Hover: palette.neutralPrimary,
|
14
|
+
colorNeutralForeground1Pressed: palette.neutralPrimary,
|
15
|
+
colorNeutralForeground1Selected: palette.neutralPrimary,
|
16
|
+
colorNeutralForeground2: palette.neutralSecondary,
|
17
|
+
colorNeutralForeground2Hover: palette.neutralPrimary,
|
18
|
+
colorNeutralForeground2Pressed: palette.neutralPrimary,
|
19
|
+
colorNeutralForeground2Selected: palette.neutralPrimary,
|
20
|
+
colorNeutralForeground2BrandHover: palette.themePrimary,
|
21
|
+
colorNeutralForeground2BrandPressed: palette.themeDarkAlt,
|
22
|
+
colorNeutralForeground2BrandSelected: palette.themePrimary,
|
23
|
+
colorNeutralForeground3: palette.neutralTertiary,
|
24
|
+
colorNeutralForeground3Hover: palette.neutralSecondary,
|
25
|
+
colorNeutralForeground3Pressed: palette.neutralSecondary,
|
26
|
+
colorNeutralForeground3Selected: palette.neutralSecondary,
|
27
|
+
colorNeutralForeground3BrandHover: palette.themePrimary,
|
28
|
+
colorNeutralForeground3BrandPressed: palette.themeDarkAlt,
|
29
|
+
colorNeutralForeground3BrandSelected: palette.themePrimary,
|
30
|
+
colorNeutralForeground4: palette.neutralQuaternary,
|
31
|
+
colorNeutralForegroundDisabled: palette.neutralTertiaryAlt,
|
32
|
+
colorNeutralForegroundInvertedDisabled: whiteAlpha[40],
|
33
|
+
colorBrandForegroundLink: palette.themeDarkAlt,
|
34
|
+
colorBrandForegroundLinkHover: palette.themeDark,
|
35
|
+
colorBrandForegroundLinkPressed: palette.themeDarker,
|
36
|
+
colorBrandForegroundLinkSelected: palette.themeDarkAlt,
|
37
|
+
colorNeutralForeground2Link: palette.neutralSecondary,
|
38
|
+
colorNeutralForeground2LinkHover: palette.neutralPrimary,
|
39
|
+
colorNeutralForeground2LinkPressed: palette.neutralPrimary,
|
40
|
+
colorNeutralForeground2LinkSelected: palette.neutralPrimary,
|
41
|
+
colorCompoundBrandForeground1: palette.themePrimary,
|
42
|
+
colorCompoundBrandForeground1Hover: palette.themeDarkAlt,
|
43
|
+
colorCompoundBrandForeground1Pressed: palette.themeDark,
|
44
|
+
colorBrandForeground1: palette.themePrimary,
|
45
|
+
colorBrandForeground2: palette.themeDarkAlt,
|
46
|
+
colorBrandForeground2Hover: palette.themeDarkAlt,
|
47
|
+
colorBrandForeground2Pressed: palette.themeDarkAlt,
|
48
|
+
colorNeutralForeground1Static: palette.neutralPrimary,
|
49
|
+
colorNeutralForegroundInverted: palette.white,
|
50
|
+
colorNeutralForegroundInvertedHover: palette.white,
|
51
|
+
colorNeutralForegroundInvertedPressed: palette.white,
|
52
|
+
colorNeutralForegroundInvertedSelected: palette.white,
|
53
|
+
colorNeutralForegroundOnBrand: palette.white,
|
54
|
+
colorNeutralForegroundStaticInverted: palette.white,
|
55
|
+
colorNeutralForegroundInvertedLink: palette.white,
|
56
|
+
colorNeutralForegroundInvertedLinkHover: palette.white,
|
57
|
+
colorNeutralForegroundInvertedLinkPressed: palette.white,
|
58
|
+
colorNeutralForegroundInvertedLinkSelected: palette.white,
|
59
|
+
colorNeutralForegroundInverted2: palette.white,
|
60
|
+
colorBrandForegroundInverted: palette.themeSecondary,
|
61
|
+
colorBrandForegroundInvertedHover: palette.themeTertiary,
|
62
|
+
colorBrandForegroundInvertedPressed: palette.themeSecondary,
|
63
|
+
colorBrandForegroundOnLight: palette.themePrimary,
|
64
|
+
colorBrandForegroundOnLightHover: palette.themeDarkAlt,
|
65
|
+
colorBrandForegroundOnLightPressed: palette.themeDark,
|
66
|
+
colorBrandForegroundOnLightSelected: palette.themeDark,
|
67
|
+
colorNeutralBackground1: palette.white,
|
68
|
+
colorNeutralBackground1Hover: palette.neutralLighter,
|
69
|
+
colorNeutralBackground1Pressed: palette.neutralQuaternaryAlt,
|
70
|
+
colorNeutralBackground1Selected: palette.neutralLight,
|
71
|
+
colorNeutralBackground2: palette.neutralLighterAlt,
|
72
|
+
colorNeutralBackground2Hover: palette.neutralLighter,
|
73
|
+
colorNeutralBackground2Pressed: palette.neutralQuaternaryAlt,
|
74
|
+
colorNeutralBackground2Selected: palette.neutralLight,
|
75
|
+
colorNeutralBackground3: palette.neutralLighter,
|
76
|
+
colorNeutralBackground3Hover: palette.neutralLight,
|
77
|
+
colorNeutralBackground3Pressed: palette.neutralQuaternary,
|
78
|
+
colorNeutralBackground3Selected: palette.neutralQuaternaryAlt,
|
79
|
+
colorNeutralBackground4: palette.neutralLighter,
|
80
|
+
colorNeutralBackground4Hover: palette.neutralLighterAlt,
|
81
|
+
colorNeutralBackground4Pressed: palette.neutralLighter,
|
82
|
+
colorNeutralBackground4Selected: palette.white,
|
83
|
+
colorNeutralBackground5: palette.neutralLight,
|
84
|
+
colorNeutralBackground5Hover: palette.neutralLighter,
|
85
|
+
colorNeutralBackground5Pressed: palette.neutralLighter,
|
86
|
+
colorNeutralBackground5Selected: palette.neutralLighterAlt,
|
87
|
+
colorNeutralBackground6: palette.neutralLight,
|
88
|
+
colorNeutralBackgroundStatic: grey[20],
|
89
|
+
colorNeutralBackgroundInverted: palette.neutralSecondary,
|
90
|
+
colorNeutralBackgroundAlpha: inverted ? grey10Alpha[50] : whiteAlpha[50],
|
91
|
+
colorNeutralBackgroundAlpha2: inverted ? grey12Alpha[70] : whiteAlpha[80],
|
92
|
+
colorSubtleBackground: 'transparent',
|
93
|
+
colorSubtleBackgroundHover: palette.neutralLighter,
|
94
|
+
colorSubtleBackgroundPressed: palette.neutralQuaternaryAlt,
|
95
|
+
colorSubtleBackgroundSelected: palette.neutralLight,
|
96
|
+
colorSubtleBackgroundLightAlphaHover: inverted ? whiteAlpha[10] : whiteAlpha[80],
|
97
|
+
colorSubtleBackgroundLightAlphaPressed: inverted ? whiteAlpha[5] : whiteAlpha[50],
|
98
|
+
colorSubtleBackgroundLightAlphaSelected: 'transparent',
|
99
|
+
colorSubtleBackgroundInverted: 'transparent',
|
100
|
+
colorSubtleBackgroundInvertedHover: blackAlpha[10],
|
101
|
+
colorSubtleBackgroundInvertedPressed: blackAlpha[30],
|
102
|
+
colorSubtleBackgroundInvertedSelected: blackAlpha[20],
|
103
|
+
colorTransparentBackground: 'transparent',
|
104
|
+
colorTransparentBackgroundHover: 'transparent',
|
105
|
+
colorTransparentBackgroundPressed: 'transparent',
|
106
|
+
colorTransparentBackgroundSelected: 'transparent',
|
107
|
+
colorNeutralBackgroundDisabled: palette.neutralLighter,
|
108
|
+
colorNeutralBackgroundInvertedDisabled: whiteAlpha[10],
|
109
|
+
colorNeutralStencil1: palette.neutralLight,
|
110
|
+
colorNeutralStencil2: palette.neutralLighterAlt,
|
111
|
+
colorNeutralStencil1Alpha: inverted ? whiteAlpha[10] : blackAlpha[10],
|
112
|
+
colorNeutralStencil2Alpha: inverted ? whiteAlpha[5] : blackAlpha[5],
|
113
|
+
colorBackgroundOverlay: blackAlpha[40],
|
114
|
+
colorScrollbarOverlay: blackAlpha[50],
|
115
|
+
colorBrandBackground: palette.themePrimary,
|
116
|
+
colorBrandBackgroundHover: palette.themeDarkAlt,
|
117
|
+
colorBrandBackgroundPressed: palette.themeDarker,
|
118
|
+
colorBrandBackgroundSelected: palette.themeDark,
|
119
|
+
colorCompoundBrandBackground: palette.themePrimary,
|
120
|
+
colorCompoundBrandBackgroundHover: palette.themeDarkAlt,
|
121
|
+
colorCompoundBrandBackgroundPressed: palette.themeDark,
|
122
|
+
colorBrandBackgroundStatic: palette.themePrimary,
|
123
|
+
colorBrandBackground2: palette.themeLighterAlt,
|
124
|
+
colorBrandBackground2Hover: palette.themeLighterAlt,
|
125
|
+
colorBrandBackground2Pressed: palette.themeLighterAlt,
|
126
|
+
colorBrandBackgroundInverted: palette.white,
|
127
|
+
colorBrandBackgroundInvertedHover: palette.themeLighterAlt,
|
128
|
+
colorBrandBackgroundInvertedPressed: palette.themeLight,
|
129
|
+
colorBrandBackgroundInvertedSelected: palette.themeLighter,
|
130
|
+
colorNeutralStrokeAccessible: palette.neutralSecondary,
|
131
|
+
colorNeutralStrokeAccessibleHover: palette.neutralSecondary,
|
132
|
+
colorNeutralStrokeAccessiblePressed: palette.neutralSecondary,
|
133
|
+
colorNeutralStrokeAccessibleSelected: palette.themePrimary,
|
134
|
+
colorNeutralStroke1: palette.neutralQuaternary,
|
135
|
+
colorNeutralStroke1Hover: palette.neutralTertiaryAlt,
|
136
|
+
colorNeutralStroke1Pressed: palette.neutralTertiaryAlt,
|
137
|
+
colorNeutralStroke1Selected: palette.neutralTertiaryAlt,
|
138
|
+
colorNeutralStroke2: palette.neutralQuaternaryAlt,
|
139
|
+
colorNeutralStroke3: palette.neutralLighter,
|
140
|
+
colorNeutralStrokeSubtle: palette.neutralQuaternaryAlt,
|
141
|
+
colorNeutralStrokeOnBrand: palette.white,
|
142
|
+
colorNeutralStrokeOnBrand2: palette.white,
|
143
|
+
colorNeutralStrokeOnBrand2Hover: palette.white,
|
144
|
+
colorNeutralStrokeOnBrand2Pressed: palette.white,
|
145
|
+
colorNeutralStrokeOnBrand2Selected: palette.white,
|
146
|
+
colorBrandStroke1: palette.themePrimary,
|
147
|
+
colorBrandStroke2: palette.themeLight,
|
148
|
+
colorBrandStroke2Hover: palette.themeLight,
|
149
|
+
colorBrandStroke2Pressed: palette.themeLight,
|
150
|
+
colorBrandStroke2Contrast: palette.themeLight,
|
151
|
+
colorCompoundBrandStroke: palette.themePrimary,
|
152
|
+
colorCompoundBrandStrokeHover: palette.themeDarkAlt,
|
153
|
+
colorCompoundBrandStrokePressed: palette.themeDark,
|
154
|
+
colorNeutralStrokeDisabled: palette.neutralQuaternaryAlt,
|
155
|
+
colorNeutralStrokeInvertedDisabled: whiteAlpha[40],
|
156
|
+
colorTransparentStroke: 'transparent',
|
157
|
+
colorTransparentStrokeInteractive: 'transparent',
|
158
|
+
colorTransparentStrokeDisabled: 'transparent',
|
159
|
+
colorNeutralStrokeAlpha: inverted ? whiteAlpha[10] : blackAlpha[5],
|
160
|
+
colorNeutralStrokeAlpha2: whiteAlpha[20],
|
161
|
+
colorStrokeFocus1: palette.white,
|
162
|
+
colorStrokeFocus2: palette.black,
|
163
|
+
colorNeutralShadowAmbient: 'rgba(0,0,0,0.12)',
|
164
|
+
colorNeutralShadowKey: 'rgba(0,0,0,0.14)',
|
165
|
+
colorNeutralShadowAmbientLighter: 'rgba(0,0,0,0.06)',
|
166
|
+
colorNeutralShadowKeyLighter: 'rgba(0,0,0,0.07)',
|
167
|
+
colorNeutralShadowAmbientDarker: 'rgba(0,0,0,0.20)',
|
168
|
+
colorNeutralShadowKeyDarker: 'rgba(0,0,0,0.24)',
|
169
|
+
colorBrandShadowAmbient: 'rgba(0,0,0,0.30)',
|
170
|
+
colorBrandShadowKey: 'rgba(0,0,0,0.25)'
|
171
|
+
};
|
172
|
+
};
|
173
|
+
/**
|
174
|
+
* Creates v9 shadow tokens from v8 effects.
|
175
|
+
*/
|
176
|
+
const mapShadowTokens = (effects) => {
|
177
|
+
return {
|
178
|
+
shadow4: effects.elevation4,
|
179
|
+
shadow8: effects.elevation8,
|
180
|
+
shadow16: effects.elevation16,
|
181
|
+
shadow64: effects.elevation64
|
182
|
+
};
|
183
|
+
};
|
184
|
+
/**
|
185
|
+
* Creates v9 border radius tokens from v8 effects
|
186
|
+
*/
|
187
|
+
const mapBorderRadiusTokens = (effects) => {
|
188
|
+
return {
|
189
|
+
borderRadiusSmall: effects.roundedCorner2,
|
190
|
+
borderRadiusMedium: effects.roundedCorner4,
|
191
|
+
borderRadiusLarge: effects.roundedCorner6
|
192
|
+
};
|
193
|
+
};
|
194
|
+
/**
|
195
|
+
* Creates a v9 theme from a v8 theme and base v9 theme.
|
196
|
+
* FluentUI webLightTheme is used in case if no baseThemeV9 is provided.
|
197
|
+
*
|
198
|
+
* @private
|
199
|
+
*/
|
200
|
+
export const createV9Theme = (themeV8, baseThemeV9) => {
|
201
|
+
const baseTheme = baseThemeV9 !== null && baseThemeV9 !== void 0 ? baseThemeV9 : webLightTheme;
|
202
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLink: themeV8.palette.themePrimary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker,
|
203
|
+
// Fix for an issue with black borders for iOS that are added with 'after' selector
|
204
|
+
colorStrokeFocus2: 'transparent' });
|
205
|
+
};
|
206
|
+
//# sourceMappingURL=v9ThemeShim.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"v9ThemeShim.js","sourceRoot":"","sources":["../../../../../../react-components/src/theming/v9ThemeShim.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IEffects, IPalette, Theme as ThemeV8 } from '@fluentui/react';\nimport {\n BorderRadiusTokens,\n ColorTokens,\n ShadowTokens,\n Theme as ThemeV9,\n webLightTheme\n} from '@fluentui/react-components';\nimport { blackAlpha, whiteAlpha, grey, grey10Alpha, grey12Alpha } from './themeDuplicates';\n\n// These mappings are required for createV9Theme\n// For more info, check https://react.fluentui.dev/iframe.html?viewMode=docs&id=concepts-migration-from-v8-components-theme-migration--page#compatible-themes\n\n/**\n * Creates v9 color tokens from a v8 palette.\n */\nconst mapAliasColors = (palette: IPalette, inverted: boolean): ColorTokens => {\n return {\n colorNeutralForeground1: palette.neutralPrimary,\n colorNeutralForeground1Hover: palette.neutralPrimary,\n colorNeutralForeground1Pressed: palette.neutralPrimary,\n colorNeutralForeground1Selected: palette.neutralPrimary,\n colorNeutralForeground2: palette.neutralSecondary,\n colorNeutralForeground2Hover: palette.neutralPrimary,\n colorNeutralForeground2Pressed: palette.neutralPrimary,\n colorNeutralForeground2Selected: palette.neutralPrimary,\n colorNeutralForeground2BrandHover: palette.themePrimary,\n colorNeutralForeground2BrandPressed: palette.themeDarkAlt,\n colorNeutralForeground2BrandSelected: palette.themePrimary,\n colorNeutralForeground3: palette.neutralTertiary,\n colorNeutralForeground3Hover: palette.neutralSecondary,\n colorNeutralForeground3Pressed: palette.neutralSecondary,\n colorNeutralForeground3Selected: palette.neutralSecondary,\n colorNeutralForeground3BrandHover: palette.themePrimary,\n colorNeutralForeground3BrandPressed: palette.themeDarkAlt,\n colorNeutralForeground3BrandSelected: palette.themePrimary,\n colorNeutralForeground4: palette.neutralQuaternary,\n colorNeutralForegroundDisabled: palette.neutralTertiaryAlt,\n colorNeutralForegroundInvertedDisabled: whiteAlpha[40],\n colorBrandForegroundLink: palette.themeDarkAlt,\n colorBrandForegroundLinkHover: palette.themeDark,\n colorBrandForegroundLinkPressed: palette.themeDarker,\n colorBrandForegroundLinkSelected: palette.themeDarkAlt,\n colorNeutralForeground2Link: palette.neutralSecondary,\n colorNeutralForeground2LinkHover: palette.neutralPrimary,\n colorNeutralForeground2LinkPressed: palette.neutralPrimary,\n colorNeutralForeground2LinkSelected: palette.neutralPrimary,\n colorCompoundBrandForeground1: palette.themePrimary,\n colorCompoundBrandForeground1Hover: palette.themeDarkAlt,\n colorCompoundBrandForeground1Pressed: palette.themeDark,\n colorBrandForeground1: palette.themePrimary,\n colorBrandForeground2: palette.themeDarkAlt,\n colorBrandForeground2Hover: palette.themeDarkAlt,\n colorBrandForeground2Pressed: palette.themeDarkAlt,\n colorNeutralForeground1Static: palette.neutralPrimary,\n colorNeutralForegroundInverted: palette.white,\n colorNeutralForegroundInvertedHover: palette.white,\n colorNeutralForegroundInvertedPressed: palette.white,\n colorNeutralForegroundInvertedSelected: palette.white,\n colorNeutralForegroundOnBrand: palette.white,\n colorNeutralForegroundStaticInverted: palette.white,\n colorNeutralForegroundInvertedLink: palette.white,\n colorNeutralForegroundInvertedLinkHover: palette.white,\n colorNeutralForegroundInvertedLinkPressed: palette.white,\n colorNeutralForegroundInvertedLinkSelected: palette.white,\n colorNeutralForegroundInverted2: palette.white,\n colorBrandForegroundInverted: palette.themeSecondary,\n colorBrandForegroundInvertedHover: palette.themeTertiary,\n colorBrandForegroundInvertedPressed: palette.themeSecondary,\n colorBrandForegroundOnLight: palette.themePrimary,\n colorBrandForegroundOnLightHover: palette.themeDarkAlt,\n colorBrandForegroundOnLightPressed: palette.themeDark,\n colorBrandForegroundOnLightSelected: palette.themeDark,\n colorNeutralBackground1: palette.white,\n colorNeutralBackground1Hover: palette.neutralLighter,\n colorNeutralBackground1Pressed: palette.neutralQuaternaryAlt,\n colorNeutralBackground1Selected: palette.neutralLight,\n colorNeutralBackground2: palette.neutralLighterAlt,\n colorNeutralBackground2Hover: palette.neutralLighter,\n colorNeutralBackground2Pressed: palette.neutralQuaternaryAlt,\n colorNeutralBackground2Selected: palette.neutralLight,\n colorNeutralBackground3: palette.neutralLighter,\n colorNeutralBackground3Hover: palette.neutralLight,\n colorNeutralBackground3Pressed: palette.neutralQuaternary,\n colorNeutralBackground3Selected: palette.neutralQuaternaryAlt,\n colorNeutralBackground4: palette.neutralLighter,\n colorNeutralBackground4Hover: palette.neutralLighterAlt,\n colorNeutralBackground4Pressed: palette.neutralLighter,\n colorNeutralBackground4Selected: palette.white,\n colorNeutralBackground5: palette.neutralLight,\n colorNeutralBackground5Hover: palette.neutralLighter,\n colorNeutralBackground5Pressed: palette.neutralLighter,\n colorNeutralBackground5Selected: palette.neutralLighterAlt,\n colorNeutralBackground6: palette.neutralLight,\n colorNeutralBackgroundStatic: grey[20],\n colorNeutralBackgroundInverted: palette.neutralSecondary,\n colorNeutralBackgroundAlpha: inverted ? grey10Alpha[50] : whiteAlpha[50],\n colorNeutralBackgroundAlpha2: inverted ? grey12Alpha[70] : whiteAlpha[80],\n colorSubtleBackground: 'transparent',\n colorSubtleBackgroundHover: palette.neutralLighter,\n colorSubtleBackgroundPressed: palette.neutralQuaternaryAlt,\n colorSubtleBackgroundSelected: palette.neutralLight,\n colorSubtleBackgroundLightAlphaHover: inverted ? whiteAlpha[10] : whiteAlpha[80],\n colorSubtleBackgroundLightAlphaPressed: inverted ? whiteAlpha[5] : whiteAlpha[50],\n colorSubtleBackgroundLightAlphaSelected: 'transparent',\n colorSubtleBackgroundInverted: 'transparent',\n colorSubtleBackgroundInvertedHover: blackAlpha[10],\n colorSubtleBackgroundInvertedPressed: blackAlpha[30],\n colorSubtleBackgroundInvertedSelected: blackAlpha[20],\n colorTransparentBackground: 'transparent',\n colorTransparentBackgroundHover: 'transparent',\n colorTransparentBackgroundPressed: 'transparent',\n colorTransparentBackgroundSelected: 'transparent',\n colorNeutralBackgroundDisabled: palette.neutralLighter,\n colorNeutralBackgroundInvertedDisabled: whiteAlpha[10],\n colorNeutralStencil1: palette.neutralLight,\n colorNeutralStencil2: palette.neutralLighterAlt,\n colorNeutralStencil1Alpha: inverted ? whiteAlpha[10] : blackAlpha[10],\n colorNeutralStencil2Alpha: inverted ? whiteAlpha[5] : blackAlpha[5],\n colorBackgroundOverlay: blackAlpha[40],\n colorScrollbarOverlay: blackAlpha[50],\n colorBrandBackground: palette.themePrimary,\n colorBrandBackgroundHover: palette.themeDarkAlt,\n colorBrandBackgroundPressed: palette.themeDarker,\n colorBrandBackgroundSelected: palette.themeDark,\n colorCompoundBrandBackground: palette.themePrimary,\n colorCompoundBrandBackgroundHover: palette.themeDarkAlt,\n colorCompoundBrandBackgroundPressed: palette.themeDark,\n colorBrandBackgroundStatic: palette.themePrimary,\n colorBrandBackground2: palette.themeLighterAlt,\n colorBrandBackground2Hover: palette.themeLighterAlt,\n colorBrandBackground2Pressed: palette.themeLighterAlt,\n colorBrandBackgroundInverted: palette.white,\n colorBrandBackgroundInvertedHover: palette.themeLighterAlt,\n colorBrandBackgroundInvertedPressed: palette.themeLight,\n colorBrandBackgroundInvertedSelected: palette.themeLighter,\n colorNeutralStrokeAccessible: palette.neutralSecondary,\n colorNeutralStrokeAccessibleHover: palette.neutralSecondary,\n colorNeutralStrokeAccessiblePressed: palette.neutralSecondary,\n colorNeutralStrokeAccessibleSelected: palette.themePrimary,\n colorNeutralStroke1: palette.neutralQuaternary,\n colorNeutralStroke1Hover: palette.neutralTertiaryAlt,\n colorNeutralStroke1Pressed: palette.neutralTertiaryAlt,\n colorNeutralStroke1Selected: palette.neutralTertiaryAlt,\n colorNeutralStroke2: palette.neutralQuaternaryAlt,\n colorNeutralStroke3: palette.neutralLighter,\n colorNeutralStrokeSubtle: palette.neutralQuaternaryAlt,\n colorNeutralStrokeOnBrand: palette.white,\n colorNeutralStrokeOnBrand2: palette.white,\n colorNeutralStrokeOnBrand2Hover: palette.white,\n colorNeutralStrokeOnBrand2Pressed: palette.white,\n colorNeutralStrokeOnBrand2Selected: palette.white,\n colorBrandStroke1: palette.themePrimary,\n colorBrandStroke2: palette.themeLight,\n colorBrandStroke2Hover: palette.themeLight,\n colorBrandStroke2Pressed: palette.themeLight,\n colorBrandStroke2Contrast: palette.themeLight,\n colorCompoundBrandStroke: palette.themePrimary,\n colorCompoundBrandStrokeHover: palette.themeDarkAlt,\n colorCompoundBrandStrokePressed: palette.themeDark,\n colorNeutralStrokeDisabled: palette.neutralQuaternaryAlt,\n colorNeutralStrokeInvertedDisabled: whiteAlpha[40],\n colorTransparentStroke: 'transparent',\n colorTransparentStrokeInteractive: 'transparent',\n colorTransparentStrokeDisabled: 'transparent',\n colorNeutralStrokeAlpha: inverted ? whiteAlpha[10] : blackAlpha[5],\n colorNeutralStrokeAlpha2: whiteAlpha[20],\n colorStrokeFocus1: palette.white,\n colorStrokeFocus2: palette.black,\n colorNeutralShadowAmbient: 'rgba(0,0,0,0.12)',\n colorNeutralShadowKey: 'rgba(0,0,0,0.14)',\n colorNeutralShadowAmbientLighter: 'rgba(0,0,0,0.06)',\n colorNeutralShadowKeyLighter: 'rgba(0,0,0,0.07)',\n colorNeutralShadowAmbientDarker: 'rgba(0,0,0,0.20)',\n colorNeutralShadowKeyDarker: 'rgba(0,0,0,0.24)',\n colorBrandShadowAmbient: 'rgba(0,0,0,0.30)',\n colorBrandShadowKey: 'rgba(0,0,0,0.25)'\n };\n};\n\n/**\n * Creates v9 shadow tokens from v8 effects.\n */\nconst mapShadowTokens = (effects: IEffects): Partial<ShadowTokens> => {\n return {\n shadow4: effects.elevation4,\n shadow8: effects.elevation8,\n shadow16: effects.elevation16,\n shadow64: effects.elevation64\n };\n};\n\n/**\n * Creates v9 border radius tokens from v8 effects\n */\nconst mapBorderRadiusTokens = (effects: IEffects): Partial<BorderRadiusTokens> => {\n return {\n borderRadiusSmall: effects.roundedCorner2,\n borderRadiusMedium: effects.roundedCorner4,\n borderRadiusLarge: effects.roundedCorner6\n };\n};\n\n/**\n * Creates a v9 theme from a v8 theme and base v9 theme.\n * FluentUI webLightTheme is used in case if no baseThemeV9 is provided.\n *\n * @private\n */\nexport const createV9Theme = (themeV8: ThemeV8, baseThemeV9?: ThemeV9): ThemeV9 & { errorText: string } => {\n const baseTheme = baseThemeV9 ?? webLightTheme;\n return {\n ...baseTheme,\n ...mapAliasColors(themeV8.palette, themeV8.isInverted),\n ...mapShadowTokens(themeV8.effects),\n ...mapBorderRadiusTokens(themeV8.effects),\n colorBrandBackground2: themeV8.palette.themeLight, // updated from palette.themeLighterAlt\n colorBrandBackground2Hover: themeV8.palette.themeLight, // updated from palette.themeLighterAlt\n colorBrandBackground2Pressed: themeV8.palette.themeLight, // updated from palette.themeLighterAlt\n colorStatusWarningBackground3: '#D83B01',\n errorText: themeV8.semanticColors.errorText,\n colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary,\n colorNeutralForeground2: themeV8.palette.neutralSecondary,\n colorBrandForegroundLink: themeV8.palette.themePrimary,\n colorBrandForegroundLinkHover: themeV8.palette.themeDarker,\n // Fix for an issue with black borders for iOS that are added with 'after' selector\n colorStrokeFocus2: 'transparent'\n };\n};\n"]}
|
@@ -3,8 +3,8 @@ import { CommunicationParticipant } from './CommunicationParticipant';
|
|
3
3
|
import { FileMetadata } from '../components/FileDownloadCards';
|
4
4
|
/**
|
5
5
|
* Indicate whether a chat message should be displayed merged with the message before / after it.
|
6
|
-
*
|
7
|
-
*
|
6
|
+
* If `true`, the message will be appear grouped with the message before it.
|
7
|
+
* 'top' and 'bottom' are used to indicate that the message is the start or end of a group.
|
8
8
|
*
|
9
9
|
* @public
|
10
10
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChatMessage.js","sourceRoot":"","sources":["../../../../../../react-components/src/types/ChatMessage.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { MessageStatus } from '@internal/acs-ui-common';\nimport { CommunicationParticipant } from './CommunicationParticipant';\n/* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata } from '../components/FileDownloadCards';\n\n/**\n * Indicate whether a chat message should be displayed merged with the message before / after it.\n
|
1
|
+
{"version":3,"file":"ChatMessage.js","sourceRoot":"","sources":["../../../../../../react-components/src/types/ChatMessage.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { MessageStatus } from '@internal/acs-ui-common';\nimport { CommunicationParticipant } from './CommunicationParticipant';\n/* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata } from '../components/FileDownloadCards';\n\n/**\n * Indicate whether a chat message should be displayed merged with the message before / after it.\n * If `true`, the message will be appear grouped with the message before it.\n * 'top' and 'bottom' are used to indicate that the message is the start or end of a group.\n *\n * @public\n */\nexport type MessageAttachedStatus = 'bottom' | 'top' | boolean;\n\n/**\n * Supported types of chat message content.\n *\n * @public\n */\nexport type MessageContentType = 'text' | 'html' | 'richtext/html' | 'unknown';\n\n/**\n * Discriminated union of all messages.\n *\n * The `messageType` field specializes into union variants.\n *\n * @public\n */\nexport type Message =\n | ChatMessage\n | SystemMessage\n | CustomMessage\n | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage;\n\n/**\n * Discriminated union of all system messages.\n *\n * The `systemMessageType` field specializes into union variants.\n *\n * @public\n */\nexport type SystemMessage =\n | ParticipantAddedSystemMessage\n | ParticipantRemovedSystemMessage\n | TopicUpdatedSystemMessage\n | ContentSystemMessage;\n\n/**\n * A chat message.\n *\n * @public\n */\nexport interface ChatMessage extends MessageCommon {\n messageType: 'chat';\n content?: string;\n editedOn?: Date;\n deletedOn?: Date;\n senderId?: string;\n senderDisplayName?: string;\n status?: MessageStatus;\n failureReason?: string;\n attached?: MessageAttachedStatus;\n mine?: boolean;\n clientMessageId?: string;\n contentType: MessageContentType;\n /**\n * A metadata field for the message.\n * {@link @azure/communication-chat#ChatMessage.metadata}\n */\n metadata?: Record<string, string>;\n /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n /**\n * @beta\n * A list of files attached to the message.\n * {@link FileMetadata}\n */\n attachedFilesMetadata?: FileMetadata[];\n}\n\n/**\n * A system message notifying that a participant was added to the chat thread.\n *\n * @public\n */\nexport interface ParticipantAddedSystemMessage extends SystemMessageCommon {\n systemMessageType: 'participantAdded';\n\n participants: CommunicationParticipant[];\n}\n\n/**\n * A system message notifying that a participant was removed from the chat thread.\n *\n * @public\n */\nexport interface ParticipantRemovedSystemMessage extends SystemMessageCommon {\n systemMessageType: 'participantRemoved';\n\n participants: CommunicationParticipant[];\n}\n\n/**\n * A system message notifying that the chat thread topic was updated.\n *\n * @public\n */\nexport interface TopicUpdatedSystemMessage extends SystemMessageCommon {\n systemMessageType: 'topicUpdated';\n\n topic: string;\n}\n\n/**\n * A system message with arbitary content.\n *\n * @public\n */\nexport interface ContentSystemMessage extends SystemMessageCommon {\n systemMessageType: 'content';\n\n content: string;\n}\n\n/* @conditional-compile-remove(data-loss-prevention) */\n/**\n * Content blocked message type.\n *\n * Content blocked messages will rendered default value, but applications can provide custom strings and icon to renderers.\n *\n * @beta\n */\nexport interface BlockedMessage extends MessageCommon {\n messageType: 'blocked';\n warningText?: string;\n linkText?: string;\n link?: string;\n deletedOn?: Date;\n senderId?: string;\n senderDisplayName?: string;\n status?: MessageStatus;\n attached?: MessageAttachedStatus;\n mine?: boolean;\n}\n\n/**\n * A custom message type.\n *\n * Custom messages are not rendered by default, but applications can provide custom renderers for them.\n *\n * @public\n */\nexport interface CustomMessage extends MessageCommon {\n messageType: 'custom';\n\n content: string;\n}\n\n/**\n * Common properties of all system messages.\n *\n * @public\n */\nexport interface SystemMessageCommon extends MessageCommon {\n messageType: 'system';\n iconName: string;\n}\n\n/**\n * Common properties of all message types.\n *\n * @public\n */\nexport interface MessageCommon {\n messageId: string;\n // ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`\n createdOn: Date;\n}\n\"../../../acs-ui-common/src\""]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CallComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallComposite/CallComposite.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport {\n ActiveErrorMessage,\n ErrorBar,\n OnRenderAvatarCallback,\n ParticipantMenuItemsCallback,\n useTheme\n} from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallCompositeIcons } from '../common/icons';\nimport { CompositeLocale, useLocale } from '../localization';\nimport { CommonCallAdapter } from './adapter/CallAdapter';\nimport { CallAdapterProvider, useAdapter } from './adapter/CallAdapterProvider';\nimport { CallPage } from './pages/CallPage';\nimport { ConfigurationPage } from './pages/ConfigurationPage';\nimport { NoticePage } from './pages/NoticePage';\nimport { useSelector } from './hooks/useSelector';\nimport { getEndedCall, getPage } from './selectors/baseSelectors';\nimport { LobbyPage } from './pages/LobbyPage';\n/* @conditional-compile-remove(call-transfer) */\nimport { TransferPage } from './pages/TransferPage';\nimport {\n leavingPageStyle,\n mainScreenContainerStyleDesktop,\n mainScreenContainerStyleMobile\n} from './styles/CallComposite.styles';\nimport { CallControlOptions } from './types/CallControlOptions';\n\nimport { LayerHost, mergeStyles } from '@fluentui/react';\nimport { modalLayerHostStyle } from '../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useId } from '@fluentui/react-hooks';\n/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { HoldPage } from './pages/HoldPage';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserPage } from './pages/UnsupportedBrowser';\nimport { PermissionConstraints } from '@azure/communication-calling';\n/* @conditional-compile-remove(rooms) */\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { MobileChatSidePaneTabHeaderProps } from '../common/TabHeader';\nimport { InjectedSidePaneProps, SidePaneProvider, SidePaneRenderer } from './components/SidePane/SidePaneProvider';\nimport { CallState } from '@internal/calling-stateful-client';\nimport { filterLatestErrors, trackErrorAsDismissed, updateTrackedErrorsWithActiveErrors } from './utils';\nimport { TrackedErrors } from './types/ErrorTracking';\nimport { usePropsFor } from './hooks/usePropsFor';\nimport { deviceCountSelector } from './selectors/deviceCountSelector';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(capabilities) */\nimport { capabilitiesChangedInfoAndRoleSelector } from './selectors/capabilitiesChangedInfoAndRoleSelector';\n/* @conditional-compile-remove(capabilities) */\nimport { useTrackedCapabilityChangedNotifications } from './utils/TrackCapabilityChangedNotifications';\n\n/**\n * Props for {@link CallComposite}.\n *\n * @public\n */\nexport interface CallCompositeProps extends BaseCompositeProps<CallCompositeIcons> {\n /**\n * An adapter provides logic and data to the composite.\n * Composite can also be controlled using the adapter.\n */\n adapter: CommonCallAdapter;\n /**\n * Optimizes the composite form factor for either desktop or mobile.\n * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.\n * @defaultValue 'desktop'\n */\n formFactor?: 'desktop' | 'mobile';\n /**\n * URL to invite new participants to the current call. If this is supplied, a button appears in the Participants\n * Button flyout menu.\n */\n callInvitationUrl?: string;\n /**\n * Flags to enable/disable or customize UI elements of the {@link CallComposite}.\n */\n options?: CallCompositeOptions;\n}\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * Device Checks.\n * Choose whether or not to block starting a call depending on camera and microphone permission options.\n *\n * @beta\n */\nexport interface DeviceCheckOptions {\n /**\n * Camera Permission prompts for your call.\n * 'required' - requires the permission to be allowed before permitting the user join the call.\n * 'optional' - permission can be disallowed and the user is still permitted to join the call.\n * 'doNotPrompt' - permission is not required and the user is not prompted to allow the permission.\n */\n camera: 'required' | 'optional' | 'doNotPrompt';\n /**\n * Microphone permission prompts for your call.\n * 'required' - requires the permission to be allowed before permitting the user join the call.\n * 'optional' - permission can be disallowed and the user is still permitted to join the call.\n * 'doNotPrompt' - permission is not required and the user is not prompted to allow the permission.\n */\n microphone: 'required' | 'optional' | 'doNotPrompt';\n}\n\n/* @conditional-compile-remove(pinned-participants) */\n/**\n * Menu options for remote video tiles in {@link VideoGallery}.\n *\n * @public\n */\nexport interface RemoteVideoTileMenuOptions {\n /**\n * If set to true, remote video tiles in the VideoGallery will not have menu options\n *\n * @defaultValue false\n */\n isHidden?: boolean;\n}\n\n/* @conditional-compile-remove(click-to-call) */ /* @conditional-compile-remove(rooms) */\n/**\n * Options for the local video tile in the Call composite.\n *\n * @beta\n */\nexport interface LocalVideoTileOptions {\n /**\n * Position of the local video tile. If unset will render the local tile in the floating local position.\n *\n * @defaultValue 'floating'\n * @remarks 'grid' - local video tile will be rendered in the grid view of the videoGallery.\n * 'floating' - local video tile will be rendered in the floating position and will observe overflow gallery\n * local video tile rules and be docked in the bottom corner.\n * This does not affect the Configuration screen or the side pane Picture in Picture in Picture view.\n */\n position?: 'grid' | 'floating';\n}\n/**\n * Optional features of the {@link CallComposite}.\n *\n * @public\n */\nexport type CallCompositeOptions = {\n /**\n * Surface Azure Communication Services backend errors in the UI with {@link @azure/communication-react#ErrorBar}.\n * Hide or show the error bar.\n * @defaultValue true\n */\n errorBar?: boolean;\n /**\n * Hide or Customize the control bar element.\n * Can be customized by providing an object of type {@link @azure/communication-react#CallControlOptions}.\n * @defaultValue true\n */\n callControls?: boolean | CallControlOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Device permissions check options for your call.\n * Here you can choose what device permissions you prompt the user for,\n * as well as what device permissions must be accepted before starting a call.\n */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * unable to grant your site the required permissions for the call.\n *\n * @example\n * ```ts\n * onPermissionsTroubleshootingClick: () =>\n * window.open('https://contoso.com/permissions-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'further troubleshooting' link.\n */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * having network issues when connecting to the call.\n *\n * @example\n * ```ts\n * onNetworkingTroubleShootingClick?: () =>\n * window.open('https://contoso.com/network-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'network troubleshooting' link.\n */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n /**\n * Callback you may provide to supply users with a provided page to showcase supported browsers by ACS.\n *\n * @example\n * ```ts\n * onBrowserTroubleShootingClick?: () =>\n * window.open('https://contoso.com/browser-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a unsupported browser page.\n */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n /* @conditional-compile-remove(pinned-participants) */\n /**\n * Remote participant video tile menu options\n */\n remoteVideoTileMenuOptions?: RemoteVideoTileMenuOptions;\n /* @conditional-compile-remove(click-to-call) */\n /**\n * Options for controlling the local video tile.\n *\n * @remarks if 'false' the local video tile will not be rendered.\n */\n localVideoTile?: boolean | LocalVideoTileOptions;\n /* @conditional-compile-remove(gallery-layouts) */\n /**\n * Options for controlling the starting layout of the composite's video gallery\n */\n galleryOptions?: {\n /**\n * Layout for the gallery when the call starts\n */\n layout?: VideoGalleryLayout;\n };\n};\n\ntype MainScreenProps = {\n mobileView: boolean;\n modalLayerHostId: string;\n onRenderAvatar?: OnRenderAvatarCallback;\n callInvitationUrl?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n options?: CallCompositeOptions;\n overrideSidePane?: InjectedSidePaneProps;\n onSidePaneIdChange?: (sidePaneId: string | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n};\n\nconst isShowing = (overrideSidePane?: InjectedSidePaneProps): boolean => {\n return !!overrideSidePane?.isActive;\n};\n\nconst MainScreen = (props: MainScreenProps): JSX.Element => {\n const adapter = useAdapter();\n const { camerasCount, microphonesCount } = useSelector(deviceCountSelector);\n const hasCameras = camerasCount > 0;\n const hasMicrophones = microphonesCount > 0;\n\n useEffect(() => {\n (async () => {\n const constrain = getQueryOptions({\n /* @conditional-compile-remove(rooms) */ role: adapter.getState().call?.role\n });\n await adapter.askDevicePermission(constrain);\n adapter.queryCameras();\n adapter.queryMicrophones();\n adapter.querySpeakers();\n })();\n }, [\n adapter,\n // Ensure we re-ask for permissions if the number of devices goes from 0 -> n during a call\n // as we cannot request permissions when there are no devices.\n hasCameras,\n hasMicrophones\n ]);\n\n const { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;\n const page = useSelector(getPage);\n const endedCall = useSelector(getEndedCall);\n\n const [sidePaneRenderer, setSidePaneRenderer] = React.useState<SidePaneRenderer | undefined>();\n const [injectedSidePaneProps, setInjectedSidePaneProps] = React.useState<InjectedSidePaneProps>();\n\n /* @conditional-compile-remove(gallery-layouts) */\n const [userSetGalleryLayout, setUserSetGalleryLayout] = useState<VideoGalleryLayout>(\n props.options?.galleryOptions?.layout ?? 'floatingLocalVideo'\n );\n /* @conditional-compile-remove(gallery-layouts) */\n const [userSetOverflowGalleryPosition, setUserSetOverflowGalleryPosition] = useState<'Responsive' | 'HorizontalTop'>(\n 'Responsive'\n );\n\n const overridePropsRef = useRef<InjectedSidePaneProps | undefined>(props.overrideSidePane);\n useEffect(() => {\n setInjectedSidePaneProps(props.overrideSidePane);\n // When the injected side pane is opened, clear the previous side pane active state.\n // this ensures when the injected side pane is \"closed\", the previous side pane is not \"re-opened\".\n if (!isShowing(overridePropsRef.current) && isShowing(props.overrideSidePane)) {\n setSidePaneRenderer(undefined);\n }\n overridePropsRef.current = props.overrideSidePane;\n }, [props.overrideSidePane]);\n\n const onSidePaneIdChange = props.onSidePaneIdChange;\n useEffect(() => {\n onSidePaneIdChange?.(sidePaneRenderer?.id);\n }, [sidePaneRenderer?.id, onSidePaneIdChange]);\n\n /* @conditional-compile-remove(capabilities) */\n const capabilitiesChangedInfoAndRole = useSelector(capabilitiesChangedInfoAndRoleSelector);\n\n /* @conditional-compile-remove(capabilities) */\n const capabilitiesChangedNotificationBarProps =\n useTrackedCapabilityChangedNotifications(capabilitiesChangedInfoAndRole);\n\n // Track the last dismissed errors of any error kind to prevent errors from re-appearing on subsequent page navigation\n // This works by tracking the most recent timestamp of any active error type.\n // And then tracking when that error type was last dismissed.\n const activeErrors = usePropsFor(ErrorBar).activeErrorMessages;\n const [trackedErrors, setTrackedErrors] = useState<TrackedErrors>({} as TrackedErrors);\n useEffect(() => {\n setTrackedErrors((prev) => updateTrackedErrorsWithActiveErrors(prev, activeErrors));\n }, [activeErrors]);\n const onDismissError = useCallback((error: ActiveErrorMessage) => {\n setTrackedErrors((prev) => trackErrorAsDismissed(error.type, prev));\n }, []);\n const latestErrors = useMemo(() => filterLatestErrors(activeErrors, trackedErrors), [activeErrors, trackedErrors]);\n\n const locale = useLocale();\n const palette = useTheme().palette;\n const leavePageStyle = useMemo(() => leavingPageStyle(palette), [palette]);\n\n let pageElement: JSX.Element | undefined;\n /* @conditional-compile-remove(rooms) */\n switch (page) {\n case 'roomNotFound':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedRoomsCall\"\n title={locale.strings.call.roomNotFoundTitle}\n moreDetails={locale.strings.call.roomNotFoundDetails}\n dataUiId={'room-not-found-page'}\n />\n );\n break;\n case 'deniedPermissionToRoom':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedRoomsCall\"\n title={locale.strings.call.deniedPermissionToRoomTitle}\n moreDetails={locale.strings.call.deniedPermissionToRoomDetails}\n dataUiId={'not-invited-to-room-page'}\n />\n );\n break;\n }\n switch (page) {\n case 'configuration':\n pageElement = (\n <ConfigurationPage\n mobileView={props.mobileView}\n startCallHandler={(): void => {\n adapter.joinCall();\n }}\n updateSidePaneRenderer={setSidePaneRenderer}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n modalLayerHostId={props.modalLayerHostId}\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks={props.options?.deviceChecks}\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick={props.options?.onPermissionsTroubleshootingClick}\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick={props.options?.onNetworkingTroubleShootingClick}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n case 'accessDeniedTeamsMeeting':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedTeamsMeeting\"\n title={locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedTitle}\n moreDetails={locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails}\n dataUiId={'access-denied-teams-meeting-page'}\n />\n );\n break;\n case 'removedFromCall':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageRemovedFromCall\"\n title={locale.strings.call.removedFromCallTitle}\n moreDetails={locale.strings.call.removedFromCallMoreDetails}\n dataUiId={'removed-from-call-page'}\n />\n );\n break;\n case 'joinCallFailedDueToNoNetwork':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageJoinCallFailedDueToNoNetwork\"\n title={locale.strings.call.failedToJoinCallDueToNoNetworkTitle}\n moreDetails={locale.strings.call.failedToJoinCallDueToNoNetworkMoreDetails}\n dataUiId={'join-call-failed-due-to-no-network-page'}\n />\n );\n break;\n case 'leaving':\n pageElement = (\n <NoticePage\n title={locale.strings.call.leavingCallTitle ?? 'Leaving...'}\n dataUiId={'leaving-page'}\n pageStyle={leavePageStyle}\n disableStartCallButton={true}\n />\n );\n break;\n case 'leftCall': {\n const { title, moreDetails, disableStartCallButton } = getEndedCallStrings(locale, endedCall);\n pageElement = (\n <NoticePage\n iconName=\"NoticePageLeftCall\"\n title={title}\n moreDetails={moreDetails}\n dataUiId={'left-call-page'}\n disableStartCallButton={disableStartCallButton}\n />\n );\n break;\n }\n case 'lobby':\n pageElement = (\n <LobbyPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n /* @conditional-compile-remove(call-transfer) */\n case 'transferring':\n pageElement = (\n <TransferPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onRenderAvatar={onRenderAvatar}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n case 'call':\n pageElement = (\n <CallPage\n onRenderAvatar={onRenderAvatar}\n callInvitationURL={callInvitationUrl}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout={userSetGalleryLayout}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange={setUserSetGalleryLayout}\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition={setUserSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n case 'hold':\n pageElement = (\n <>\n {\n <HoldPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n }\n </>\n );\n break;\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n switch (page) {\n case 'unsupportedEnvironment':\n pageElement = (\n <>\n {\n /* @conditional-compile-remove(unsupported-browser) */\n <UnsupportedBrowserPage\n onTroubleshootingClick={props.options?.onEnvironmentInfoTroubleshootingClick}\n environmentInfo={adapter.getState().environmentInfo}\n />\n }\n </>\n );\n break;\n }\n\n if (!pageElement) {\n throw new Error('Invalid call composite page');\n }\n\n return (\n <SidePaneProvider sidePaneRenderer={sidePaneRenderer} overrideSidePane={injectedSidePaneProps}>\n {pageElement}\n </SidePaneProvider>\n );\n};\n\n/**\n * A customizable UI composite for calling experience.\n *\n * @remarks Call composite min width/height are as follow:\n * - mobile: 17.5rem x 21rem (280px x 336px, with default rem at 16px)\n * - desktop: 30rem x 22rem (480px x 352px, with default rem at 16px)\n *\n * @public\n */\nexport const CallComposite = (props: CallCompositeProps): JSX.Element => <CallCompositeInner {...props} />;\n\n/**\n * @private\n */\nexport interface InternalCallCompositeProps {\n overrideSidePane?: InjectedSidePaneProps;\n onSidePaneIdChange?: (sidePaneId: string | undefined) => void;\n\n // legacy property to avoid breaking change\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n}\n\n/** @private */\nexport const CallCompositeInner = (props: CallCompositeProps & InternalCallCompositeProps): JSX.Element => {\n const {\n adapter,\n callInvitationUrl,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n formFactor = 'desktop'\n } = props;\n\n const mobileView = formFactor === 'mobile';\n\n const modalLayerHostId = useId('modalLayerhost');\n const mainScreenContainerClassName = useMemo(() => {\n return mobileView ? mainScreenContainerStyleMobile : mainScreenContainerStyleDesktop;\n }, [mobileView]);\n\n return (\n <div className={mainScreenContainerClassName}>\n <BaseProvider {...props}>\n <CallAdapterProvider adapter={adapter}>\n <MainScreen\n callInvitationUrl={callInvitationUrl}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n mobileView={mobileView}\n modalLayerHostId={modalLayerHostId}\n options={options}\n onSidePaneIdChange={props.onSidePaneIdChange}\n overrideSidePane={props.overrideSidePane}\n mobileChatTabHeader={props.mobileChatTabHeader}\n />\n {\n // This layer host is for ModalLocalAndRemotePIP in SidePane. This LayerHost cannot be inside the SidePane\n // because when the SidePane is hidden, ie. style property display is 'none', it takes up no space. This causes problems when dragging\n // the Modal because the draggable bounds thinks it has no space and will always return to its initial position after dragging.\n // Additionally, this layer host cannot be in the Call Arrangement as it needs to be rendered before useMinMaxDragPosition() in\n // common/utils useRef is called.\n // Warning: this is fragile and works because the call arrangement page is only rendered after the call has connected and thus this\n // LayerHost will be guaranteed to have rendered (and subsequently mounted in the DOM). This ensures the DOM element will be available\n // before the call to `document.getElementById(modalLayerHostId)` is made.\n <LayerHost id={modalLayerHostId} className={mergeStyles(modalLayerHostStyle)} />\n }\n </CallAdapterProvider>\n </BaseProvider>\n </div>\n );\n};\n\nconst getQueryOptions = (options: {\n /* @conditional-compile-remove(rooms) */ role?: ParticipantRole;\n}): PermissionConstraints => {\n /* @conditional-compile-remove(rooms) */\n if (options.role === 'Consumer') {\n return {\n video: false,\n audio: true\n };\n }\n return { video: true, audio: true };\n};\n\nconst getEndedCallStrings = (\n locale: CompositeLocale,\n endedCall?: CallState\n): { title: string; moreDetails?: string; disableStartCallButton: boolean } => {\n let title = locale.strings.call.leftCallTitle;\n let moreDetails = locale.strings.call.leftCallMoreDetails;\n let disableStartCallButton = false;\n /* @conditional-compile-remove(teams-adhoc-call) */\n switch (endedCall?.callEndReason?.subCode) {\n case 10037:\n if (locale.strings.call.participantCouldNotBeReachedTitle) {\n title = locale.strings.call.participantCouldNotBeReachedTitle;\n moreDetails = locale.strings.call.participantCouldNotBeReachedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10124:\n if (locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle) {\n title = locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle;\n moreDetails = locale.strings.call.permissionToReachTargetParticipantNotAllowedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10119:\n if (locale.strings.call.unableToResolveTenantTitle) {\n title = locale.strings.call.unableToResolveTenantTitle;\n moreDetails = locale.strings.call.unableToResolveTenantMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10044:\n if (locale.strings.call.participantIdIsMalformedTitle) {\n title = locale.strings.call.participantIdIsMalformedTitle;\n moreDetails = locale.strings.call.participantIdIsMalformedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n }\n return { title, moreDetails, disableStartCallButton };\n};\n\"../../../../calling-component-bindings/src\"\"../../../../react-components/src\"\"../../../../calling-stateful-client/src\""]}
|
1
|
+
{"version":3,"file":"CallComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallComposite/CallComposite.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport {\n ActiveErrorMessage,\n ErrorBar,\n OnRenderAvatarCallback,\n ParticipantMenuItemsCallback,\n useTheme\n} from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallCompositeIcons } from '../common/icons';\nimport { CompositeLocale, useLocale } from '../localization';\nimport { CommonCallAdapter } from './adapter/CallAdapter';\nimport { CallAdapterProvider, useAdapter } from './adapter/CallAdapterProvider';\nimport { CallPage } from './pages/CallPage';\nimport { ConfigurationPage } from './pages/ConfigurationPage';\nimport { NoticePage } from './pages/NoticePage';\nimport { useSelector } from './hooks/useSelector';\nimport { getEndedCall, getPage } from './selectors/baseSelectors';\nimport { LobbyPage } from './pages/LobbyPage';\n/* @conditional-compile-remove(call-transfer) */\nimport { TransferPage } from './pages/TransferPage';\nimport {\n leavingPageStyle,\n mainScreenContainerStyleDesktop,\n mainScreenContainerStyleMobile\n} from './styles/CallComposite.styles';\nimport { CallControlOptions } from './types/CallControlOptions';\n\nimport { LayerHost, mergeStyles } from '@fluentui/react';\nimport { modalLayerHostStyle } from '../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useId } from '@fluentui/react-hooks';\n/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { HoldPage } from './pages/HoldPage';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { UnsupportedBrowserPage } from './pages/UnsupportedBrowser';\nimport { PermissionConstraints } from '@azure/communication-calling';\n/* @conditional-compile-remove(rooms) */\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { MobileChatSidePaneTabHeaderProps } from '../common/TabHeader';\nimport { InjectedSidePaneProps, SidePaneProvider, SidePaneRenderer } from './components/SidePane/SidePaneProvider';\nimport { CallState } from '@internal/calling-stateful-client';\nimport { filterLatestErrors, trackErrorAsDismissed, updateTrackedErrorsWithActiveErrors } from './utils';\nimport { TrackedErrors } from './types/ErrorTracking';\nimport { usePropsFor } from './hooks/usePropsFor';\nimport { deviceCountSelector } from './selectors/deviceCountSelector';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(capabilities) */\nimport { capabilitiesChangedInfoAndRoleSelector } from './selectors/capabilitiesChangedInfoAndRoleSelector';\n/* @conditional-compile-remove(capabilities) */\nimport { useTrackedCapabilityChangedNotifications } from './utils/TrackCapabilityChangedNotifications';\n\n/**\n * Props for {@link CallComposite}.\n *\n * @public\n */\nexport interface CallCompositeProps extends BaseCompositeProps<CallCompositeIcons> {\n /**\n * An adapter provides logic and data to the composite.\n * Composite can also be controlled using the adapter.\n */\n adapter: CommonCallAdapter;\n /**\n * Optimizes the composite form factor for either desktop or mobile.\n * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.\n * @defaultValue 'desktop'\n */\n formFactor?: 'desktop' | 'mobile';\n /**\n * URL to invite new participants to the current call. If this is supplied, a button appears in the Participants\n * Button flyout menu.\n */\n callInvitationUrl?: string;\n /**\n * Flags to enable/disable or customize UI elements of the {@link CallComposite}.\n */\n options?: CallCompositeOptions;\n}\n\n/* @conditional-compile-remove(call-readiness) */\n/**\n * Device Checks.\n * Choose whether or not to block starting a call depending on camera and microphone permission options.\n *\n * @beta\n */\nexport interface DeviceCheckOptions {\n /**\n * Camera Permission prompts for your call.\n * 'required' - requires the permission to be allowed before permitting the user join the call.\n * 'optional' - permission can be disallowed and the user is still permitted to join the call.\n * 'doNotPrompt' - permission is not required and the user is not prompted to allow the permission.\n */\n camera: 'required' | 'optional' | 'doNotPrompt';\n /**\n * Microphone permission prompts for your call.\n * 'required' - requires the permission to be allowed before permitting the user join the call.\n * 'optional' - permission can be disallowed and the user is still permitted to join the call.\n * 'doNotPrompt' - permission is not required and the user is not prompted to allow the permission.\n */\n microphone: 'required' | 'optional' | 'doNotPrompt';\n}\n\n/* @conditional-compile-remove(pinned-participants) */\n/**\n * Menu options for remote video tiles in {@link VideoGallery}.\n *\n * @public\n */\nexport interface RemoteVideoTileMenuOptions {\n /**\n * If set to true, remote video tiles in the VideoGallery will not have menu options\n *\n * @defaultValue false\n */\n isHidden?: boolean;\n}\n\n/* @conditional-compile-remove(click-to-call) */ /* @conditional-compile-remove(rooms) */\n/**\n * Options for the local video tile in the Call composite.\n *\n * @beta\n */\nexport interface LocalVideoTileOptions {\n /**\n * Position of the local video tile. If unset will render the local tile in the floating local position.\n *\n * @defaultValue 'floating'\n * @remarks 'grid' - local video tile will be rendered in the grid view of the videoGallery.\n * 'floating' - local video tile will be rendered in the floating position and will observe overflow gallery\n * local video tile rules and be docked in the bottom corner.\n * This does not affect the Configuration screen or the side pane Picture in Picture in Picture view.\n */\n position?: 'grid' | 'floating';\n}\n/**\n * Optional features of the {@link CallComposite}.\n *\n * @public\n */\nexport type CallCompositeOptions = {\n /**\n * Surface Azure Communication Services backend errors in the UI with {@link @azure/communication-react#ErrorBar}.\n * Hide or show the error bar.\n * @defaultValue true\n */\n errorBar?: boolean;\n /**\n * Hide or Customize the control bar element.\n * Can be customized by providing an object of type {@link @azure/communication-react#CallControlOptions}.\n * @defaultValue true\n */\n callControls?: boolean | CallControlOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Device permissions check options for your call.\n * Here you can choose what device permissions you prompt the user for,\n * as well as what device permissions must be accepted before starting a call.\n */\n deviceChecks?: DeviceCheckOptions;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * unable to grant your site the required permissions for the call.\n *\n * @example\n * ```ts\n * onPermissionsTroubleshootingClick: () =>\n * window.open('https://contoso.com/permissions-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'further troubleshooting' link.\n */\n onPermissionsTroubleshootingClick?: (permissionsState: {\n camera: PermissionState;\n microphone: PermissionState;\n }) => void;\n /* @conditional-compile-remove(call-readiness) */\n /**\n * Callback you may provide to supply users with further steps to troubleshoot why they have been\n * having network issues when connecting to the call.\n *\n * @example\n * ```ts\n * onNetworkingTroubleShootingClick?: () =>\n * window.open('https://contoso.com/network-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a 'network troubleshooting' link.\n */\n onNetworkingTroubleShootingClick?: () => void;\n /* @conditional-compile-remove(unsupported-browser) */\n /**\n * Callback you may provide to supply users with a provided page to showcase supported browsers by ACS.\n *\n * @example\n * ```ts\n * onBrowserTroubleShootingClick?: () =>\n * window.open('https://contoso.com/browser-troubleshooting', '_blank');\n * ```\n *\n * @remarks\n * if this is not supplied, the composite will not show a unsupported browser page.\n */\n onEnvironmentInfoTroubleshootingClick?: () => void;\n /* @conditional-compile-remove(pinned-participants) */\n /**\n * Remote participant video tile menu options\n */\n remoteVideoTileMenuOptions?: RemoteVideoTileMenuOptions;\n /* @conditional-compile-remove(click-to-call) */\n /**\n * Options for controlling the local video tile.\n *\n * @remarks if 'false' the local video tile will not be rendered.\n */\n localVideoTile?: boolean | LocalVideoTileOptions;\n /* @conditional-compile-remove(gallery-layouts) */\n /**\n * Options for controlling the starting layout of the composite's video gallery\n */\n galleryOptions?: {\n /**\n * Layout for the gallery when the call starts\n */\n layout?: VideoGalleryLayout;\n };\n};\n\ntype MainScreenProps = {\n mobileView: boolean;\n modalLayerHostId: string;\n onRenderAvatar?: OnRenderAvatarCallback;\n callInvitationUrl?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n options?: CallCompositeOptions;\n overrideSidePane?: InjectedSidePaneProps;\n onSidePaneIdChange?: (sidePaneId: string | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n};\n\nconst isShowing = (overrideSidePane?: InjectedSidePaneProps): boolean => {\n return !!overrideSidePane?.isActive;\n};\n\nconst MainScreen = (props: MainScreenProps): JSX.Element => {\n const adapter = useAdapter();\n const { camerasCount, microphonesCount } = useSelector(deviceCountSelector);\n const hasCameras = camerasCount > 0;\n const hasMicrophones = microphonesCount > 0;\n\n useEffect(() => {\n (async () => {\n const constrain = getQueryOptions({\n /* @conditional-compile-remove(rooms) */ role: adapter.getState().call?.role\n });\n await adapter.askDevicePermission(constrain);\n adapter.queryCameras();\n adapter.queryMicrophones();\n adapter.querySpeakers();\n })();\n }, [\n adapter,\n // Ensure we re-ask for permissions if the number of devices goes from 0 -> n during a call\n // as we cannot request permissions when there are no devices.\n hasCameras,\n hasMicrophones\n ]);\n\n const { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;\n const page = useSelector(getPage);\n const endedCall = useSelector(getEndedCall);\n\n const [sidePaneRenderer, setSidePaneRenderer] = React.useState<SidePaneRenderer | undefined>();\n const [injectedSidePaneProps, setInjectedSidePaneProps] = React.useState<InjectedSidePaneProps>();\n\n /* @conditional-compile-remove(gallery-layouts) */\n const [userSetGalleryLayout, setUserSetGalleryLayout] = useState<VideoGalleryLayout>(\n props.options?.galleryOptions?.layout ?? 'floatingLocalVideo'\n );\n /* @conditional-compile-remove(gallery-layouts) */\n const [userSetOverflowGalleryPosition, setUserSetOverflowGalleryPosition] = useState<'Responsive' | 'horizontalTop'>(\n 'Responsive'\n );\n\n const overridePropsRef = useRef<InjectedSidePaneProps | undefined>(props.overrideSidePane);\n useEffect(() => {\n setInjectedSidePaneProps(props.overrideSidePane);\n // When the injected side pane is opened, clear the previous side pane active state.\n // this ensures when the injected side pane is \"closed\", the previous side pane is not \"re-opened\".\n if (!isShowing(overridePropsRef.current) && isShowing(props.overrideSidePane)) {\n setSidePaneRenderer(undefined);\n }\n overridePropsRef.current = props.overrideSidePane;\n }, [props.overrideSidePane]);\n\n const onSidePaneIdChange = props.onSidePaneIdChange;\n useEffect(() => {\n onSidePaneIdChange?.(sidePaneRenderer?.id);\n }, [sidePaneRenderer?.id, onSidePaneIdChange]);\n\n /* @conditional-compile-remove(capabilities) */\n const capabilitiesChangedInfoAndRole = useSelector(capabilitiesChangedInfoAndRoleSelector);\n\n /* @conditional-compile-remove(capabilities) */\n const capabilitiesChangedNotificationBarProps =\n useTrackedCapabilityChangedNotifications(capabilitiesChangedInfoAndRole);\n\n // Track the last dismissed errors of any error kind to prevent errors from re-appearing on subsequent page navigation\n // This works by tracking the most recent timestamp of any active error type.\n // And then tracking when that error type was last dismissed.\n const activeErrors = usePropsFor(ErrorBar).activeErrorMessages;\n const [trackedErrors, setTrackedErrors] = useState<TrackedErrors>({} as TrackedErrors);\n useEffect(() => {\n setTrackedErrors((prev) => updateTrackedErrorsWithActiveErrors(prev, activeErrors));\n }, [activeErrors]);\n const onDismissError = useCallback((error: ActiveErrorMessage) => {\n setTrackedErrors((prev) => trackErrorAsDismissed(error.type, prev));\n }, []);\n const latestErrors = useMemo(() => filterLatestErrors(activeErrors, trackedErrors), [activeErrors, trackedErrors]);\n\n const locale = useLocale();\n const palette = useTheme().palette;\n const leavePageStyle = useMemo(() => leavingPageStyle(palette), [palette]);\n\n let pageElement: JSX.Element | undefined;\n /* @conditional-compile-remove(rooms) */\n switch (page) {\n case 'roomNotFound':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedRoomsCall\"\n title={locale.strings.call.roomNotFoundTitle}\n moreDetails={locale.strings.call.roomNotFoundDetails}\n dataUiId={'room-not-found-page'}\n />\n );\n break;\n case 'deniedPermissionToRoom':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedRoomsCall\"\n title={locale.strings.call.deniedPermissionToRoomTitle}\n moreDetails={locale.strings.call.deniedPermissionToRoomDetails}\n dataUiId={'not-invited-to-room-page'}\n />\n );\n break;\n }\n switch (page) {\n case 'configuration':\n pageElement = (\n <ConfigurationPage\n mobileView={props.mobileView}\n startCallHandler={(): void => {\n adapter.joinCall();\n }}\n updateSidePaneRenderer={setSidePaneRenderer}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n modalLayerHostId={props.modalLayerHostId}\n /* @conditional-compile-remove(call-readiness) */\n deviceChecks={props.options?.deviceChecks}\n /* @conditional-compile-remove(call-readiness) */\n onPermissionsTroubleshootingClick={props.options?.onPermissionsTroubleshootingClick}\n /* @conditional-compile-remove(call-readiness) */\n onNetworkingTroubleShootingClick={props.options?.onNetworkingTroubleShootingClick}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n case 'accessDeniedTeamsMeeting':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageAccessDeniedTeamsMeeting\"\n title={locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedTitle}\n moreDetails={locale.strings.call.failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails}\n dataUiId={'access-denied-teams-meeting-page'}\n />\n );\n break;\n case 'removedFromCall':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageRemovedFromCall\"\n title={locale.strings.call.removedFromCallTitle}\n moreDetails={locale.strings.call.removedFromCallMoreDetails}\n dataUiId={'removed-from-call-page'}\n />\n );\n break;\n case 'joinCallFailedDueToNoNetwork':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageJoinCallFailedDueToNoNetwork\"\n title={locale.strings.call.failedToJoinCallDueToNoNetworkTitle}\n moreDetails={locale.strings.call.failedToJoinCallDueToNoNetworkMoreDetails}\n dataUiId={'join-call-failed-due-to-no-network-page'}\n />\n );\n break;\n case 'leaving':\n pageElement = (\n <NoticePage\n title={locale.strings.call.leavingCallTitle ?? 'Leaving...'}\n dataUiId={'leaving-page'}\n pageStyle={leavePageStyle}\n disableStartCallButton={true}\n />\n );\n break;\n case 'leftCall': {\n const { title, moreDetails, disableStartCallButton } = getEndedCallStrings(locale, endedCall);\n pageElement = (\n <NoticePage\n iconName=\"NoticePageLeftCall\"\n title={title}\n moreDetails={moreDetails}\n dataUiId={'left-call-page'}\n disableStartCallButton={disableStartCallButton}\n />\n );\n break;\n }\n case 'lobby':\n pageElement = (\n <LobbyPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n /* @conditional-compile-remove(call-transfer) */\n case 'transferring':\n pageElement = (\n <TransferPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n onRenderAvatar={onRenderAvatar}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n case 'call':\n pageElement = (\n <CallPage\n onRenderAvatar={onRenderAvatar}\n callInvitationURL={callInvitationUrl}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout={userSetGalleryLayout}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange={setUserSetGalleryLayout}\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition={setUserSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n );\n break;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n case 'hold':\n pageElement = (\n <>\n {\n <HoldPage\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n options={props.options}\n updateSidePaneRenderer={setSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={latestErrors}\n onDismissError={onDismissError}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={capabilitiesChangedNotificationBarProps}\n />\n }\n </>\n );\n break;\n }\n\n /* @conditional-compile-remove(unsupported-browser) */\n switch (page) {\n case 'unsupportedEnvironment':\n pageElement = (\n <>\n {\n /* @conditional-compile-remove(unsupported-browser) */\n <UnsupportedBrowserPage\n onTroubleshootingClick={props.options?.onEnvironmentInfoTroubleshootingClick}\n environmentInfo={adapter.getState().environmentInfo}\n />\n }\n </>\n );\n break;\n }\n\n if (!pageElement) {\n throw new Error('Invalid call composite page');\n }\n\n return (\n <SidePaneProvider sidePaneRenderer={sidePaneRenderer} overrideSidePane={injectedSidePaneProps}>\n {pageElement}\n </SidePaneProvider>\n );\n};\n\n/**\n * A customizable UI composite for calling experience.\n *\n * @remarks Call composite min width/height are as follow:\n * - mobile: 17.5rem x 21rem (280px x 336px, with default rem at 16px)\n * - desktop: 30rem x 22rem (480px x 352px, with default rem at 16px)\n *\n * @public\n */\nexport const CallComposite = (props: CallCompositeProps): JSX.Element => <CallCompositeInner {...props} />;\n\n/**\n * @private\n */\nexport interface InternalCallCompositeProps {\n overrideSidePane?: InjectedSidePaneProps;\n onSidePaneIdChange?: (sidePaneId: string | undefined) => void;\n\n // legacy property to avoid breaking change\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n}\n\n/** @private */\nexport const CallCompositeInner = (props: CallCompositeProps & InternalCallCompositeProps): JSX.Element => {\n const {\n adapter,\n callInvitationUrl,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n formFactor = 'desktop'\n } = props;\n\n const mobileView = formFactor === 'mobile';\n\n const modalLayerHostId = useId('modalLayerhost');\n const mainScreenContainerClassName = useMemo(() => {\n return mobileView ? mainScreenContainerStyleMobile : mainScreenContainerStyleDesktop;\n }, [mobileView]);\n\n return (\n <div className={mainScreenContainerClassName}>\n <BaseProvider {...props}>\n <CallAdapterProvider adapter={adapter}>\n <MainScreen\n callInvitationUrl={callInvitationUrl}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n mobileView={mobileView}\n modalLayerHostId={modalLayerHostId}\n options={options}\n onSidePaneIdChange={props.onSidePaneIdChange}\n overrideSidePane={props.overrideSidePane}\n mobileChatTabHeader={props.mobileChatTabHeader}\n />\n {\n // This layer host is for ModalLocalAndRemotePIP in SidePane. This LayerHost cannot be inside the SidePane\n // because when the SidePane is hidden, ie. style property display is 'none', it takes up no space. This causes problems when dragging\n // the Modal because the draggable bounds thinks it has no space and will always return to its initial position after dragging.\n // Additionally, this layer host cannot be in the Call Arrangement as it needs to be rendered before useMinMaxDragPosition() in\n // common/utils useRef is called.\n // Warning: this is fragile and works because the call arrangement page is only rendered after the call has connected and thus this\n // LayerHost will be guaranteed to have rendered (and subsequently mounted in the DOM). This ensures the DOM element will be available\n // before the call to `document.getElementById(modalLayerHostId)` is made.\n <LayerHost id={modalLayerHostId} className={mergeStyles(modalLayerHostStyle)} />\n }\n </CallAdapterProvider>\n </BaseProvider>\n </div>\n );\n};\n\nconst getQueryOptions = (options: {\n /* @conditional-compile-remove(rooms) */ role?: ParticipantRole;\n}): PermissionConstraints => {\n /* @conditional-compile-remove(rooms) */\n if (options.role === 'Consumer') {\n return {\n video: false,\n audio: true\n };\n }\n return { video: true, audio: true };\n};\n\nconst getEndedCallStrings = (\n locale: CompositeLocale,\n endedCall?: CallState\n): { title: string; moreDetails?: string; disableStartCallButton: boolean } => {\n let title = locale.strings.call.leftCallTitle;\n let moreDetails = locale.strings.call.leftCallMoreDetails;\n let disableStartCallButton = false;\n /* @conditional-compile-remove(teams-adhoc-call) */\n switch (endedCall?.callEndReason?.subCode) {\n case 10037:\n if (locale.strings.call.participantCouldNotBeReachedTitle) {\n title = locale.strings.call.participantCouldNotBeReachedTitle;\n moreDetails = locale.strings.call.participantCouldNotBeReachedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10124:\n if (locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle) {\n title = locale.strings.call.permissionToReachTargetParticipantNotAllowedTitle;\n moreDetails = locale.strings.call.permissionToReachTargetParticipantNotAllowedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10119:\n if (locale.strings.call.unableToResolveTenantTitle) {\n title = locale.strings.call.unableToResolveTenantTitle;\n moreDetails = locale.strings.call.unableToResolveTenantMoreDetails;\n disableStartCallButton = true;\n }\n break;\n case 10044:\n if (locale.strings.call.participantIdIsMalformedTitle) {\n title = locale.strings.call.participantIdIsMalformedTitle;\n moreDetails = locale.strings.call.participantIdIsMalformedMoreDetails;\n disableStartCallButton = true;\n }\n break;\n }\n return { title, moreDetails, disableStartCallButton };\n};\n\"../../../../calling-component-bindings/src\"\"../../../../react-components/src\"\"../../../../calling-stateful-client/src\""]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts
CHANGED
@@ -25,7 +25,7 @@ export interface CallArrangementProps {
|
|
25
25
|
mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;
|
26
26
|
latestErrors: ActiveErrorMessage[];
|
27
27
|
onDismissError: (error: ActiveErrorMessage) => void;
|
28
|
-
onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | '
|
28
|
+
onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;
|
29
29
|
onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;
|
30
30
|
userSetGalleryLayout?: VideoGalleryLayout;
|
31
31
|
capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;
|