@azure/communication-react 1.5.1-alpha-202306090015 → 1.5.1-alpha-202306100013

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.
Files changed (89) hide show
  1. package/dist/communication-react.d.ts +107 -37
  2. package/dist/dist-cjs/communication-react/index.js +237 -94
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/identifier.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  8. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  10. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  12. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -1
  13. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +1 -1
  15. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -1
  17. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/MentionPopover.js +1 -1
  19. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +1 -0
  21. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +1 -0
  22. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +6 -2
  24. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/VideoGallery.js +2 -1
  26. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js +4 -1
  28. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +332 -0
  30. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +332 -0
  31. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +332 -0
  32. package/dist/dist-esm/react-components/src/localization/locales/index.d.ts +36 -0
  33. package/dist/dist-esm/react-components/src/localization/locales/index.js +42 -0
  34. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +332 -0
  36. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +332 -0
  37. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +332 -0
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +4 -2
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +5 -5
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +35 -16
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +8 -18
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +2 -6
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +16 -0
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +5 -11
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -2
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +2 -2
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +2 -2
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -1
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js +0 -3
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -2
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  67. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -5
  68. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +3 -11
  69. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -11
  71. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +3 -5
  73. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +2 -8
  74. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -2
  76. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  77. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +2 -0
  78. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +16 -5
  79. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +194 -0
  81. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +194 -0
  82. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +194 -0
  83. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts +36 -0
  84. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js +61 -1
  85. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +194 -0
  87. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +194 -0
  88. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +194 -0
  89. package/package.json +10 -8
@@ -0,0 +1,332 @@
1
+ {
2
+ "participantItem": {
3
+ "isMeText": "(du)",
4
+ "menuTitle": "Fler alternativ",
5
+ "removeButtonLabel": "Ta bort",
6
+ "sharingIconLabel": "Delar",
7
+ "mutedIconLabel": "Ljudet är avstängt",
8
+ "displayNamePlaceholder": "Namnlös deltagare",
9
+ "participantStateRinging": "Ringer...",
10
+ "participantStateHold": "Parkerat"
11
+ },
12
+ "typingIndicator": {
13
+ "singleUser": "{user} skriver...",
14
+ "multipleUsers": "{users} skriver...",
15
+ "multipleUsersAbbreviateOne": "{users} och 1 annan skriver...",
16
+ "multipleUsersAbbreviateMany": "{users} och {numOthers} andra skriver...",
17
+ "delimiter": ", "
18
+ },
19
+ "sendBox": {
20
+ "placeholderText": "Skriv ett meddelande",
21
+ "textTooLong": "Meddelandelängden överskrider maxgränsen.",
22
+ "sendButtonAriaLabel": "Skicka meddelande",
23
+ "fileUploadsPendingError": "Uppladdning pågår... Vänta.",
24
+ "removeFile": "Ta bort filen",
25
+ "uploading": "Laddar upp",
26
+ "uploadCompleted": "Uppladdningen har slutförts"
27
+ },
28
+ "mentionPopover": {
29
+ "mentionPopoverHeader": "Förslag"
30
+ },
31
+ "messageStatusIndicator": {
32
+ "deliveredAriaLabel": "Meddelandet har skickats",
33
+ "deliveredTooltipText": "Skickat",
34
+ "seenAriaLabel": "Meddelande som andra ser",
35
+ "seenTooltipText": "Sett",
36
+ "readByTooltipText": "Läst av {messageThreadReadCount} av {remoteParticipantsCount}",
37
+ "sendingAriaLabel": "Meddelandet skickas",
38
+ "sendingTooltipText": "Skickar",
39
+ "failedToSendAriaLabel": "Meddelandet skickades inte",
40
+ "failedToSendTooltipText": "Inte skickat"
41
+ },
42
+ "endCallButton": {
43
+ "label": "Lämna",
44
+ "tooltipContent": "Lämna samtal"
45
+ },
46
+ "cameraButton": {
47
+ "onLabel": "Inaktivera",
48
+ "offLabel": "Aktivera",
49
+ "tooltipDisabledContent": "Kameran är inaktiverad",
50
+ "tooltipOnContent": "Stäng av kameran",
51
+ "tooltipOffContent": "Aktivera kameran",
52
+ "tooltipVideoLoadingContent": "Videon läses in",
53
+ "cameraMenuTitle": "Kamera",
54
+ "cameraMenuTooltip": "Välj kamera",
55
+ "cameraButtonSplitRoleDescription": "Delningsknapp",
56
+ "onSplitButtonAriaLabel": "Inaktivera kamera- och kameraalternativ",
57
+ "offSplitButtonAriaLabel": "Aktivera kamera- och kameraalternativ",
58
+ "cameraActionTurnedOnAnnouncement": "Kameran har aktiverats",
59
+ "cameraActionTurnedOffAnnouncement": "Kameran har stängts av",
60
+ "onSplitButtonPrimaryActionCamera": "Stäng av kameran",
61
+ "offSplitButtonPrimaryActionCamera": "Aktivera kameran",
62
+ "cameraPrimaryActionSplitButtonTitle": "Använd kamera",
63
+ "videoEffectsMenuItemTitle": "Effekter"
64
+ },
65
+ "microphoneButton": {
66
+ "onLabel": "Mikrofon av",
67
+ "offLabel": "Mikrofon på",
68
+ "tooltipDisabledContent": "Mikrofonen är inaktiverad",
69
+ "tooltipOnContent": "Stäng av mikrofonen",
70
+ "tooltipOffContent": "Slå på mikrofonen",
71
+ "microphoneMenuTitle": "Mikrofon",
72
+ "microphoneMenuTooltip": "Välj mikrofon",
73
+ "speakerMenuTitle": "Högtalare",
74
+ "speakerMenuTooltip": "Välj högtalare",
75
+ "microphoneButtonSplitRoleDescription": "Delningsknapp",
76
+ "onSplitButtonAriaLabel": "Ljud av mikrofon och ljudalternativ",
77
+ "offSplitButtonAriaLabel": "Slå på ljudet för mikrofon och ljudalternativ",
78
+ "microphoneActionTurnedOnAnnouncement": "Mikrofonen har aktiverats",
79
+ "microphoneActionTurnedOffAnnouncement": "Mikrofonen har inaktiverats",
80
+ "offSplitButtonMicrophonePrimaryAction": "Slå på mikrofonen",
81
+ "onSplitButtonMicrophonePrimaryAction": "Stäng av mikrofonen",
82
+ "micPrimaryActionSplitButtonTitle": "Använd mikrofon"
83
+ },
84
+ "devicesButton": {
85
+ "label": "Enheter",
86
+ "tooltipContent": "Hantera enheter",
87
+ "cameraMenuTitle": "Kamera",
88
+ "cameraMenuTooltip": "Välj kamera",
89
+ "audioDeviceMenuTitle": "Ljudenhet",
90
+ "audioDeviceMenuTooltip": "Välj ljudenhet",
91
+ "microphoneMenuTitle": "Mikrofon",
92
+ "microphoneMenuTooltip": "Välj mikrofon",
93
+ "speakerMenuTitle": "Högtalare",
94
+ "speakerMenuTooltip": "Välj högtalare"
95
+ },
96
+ "participantsButton": {
97
+ "label": "Personer",
98
+ "tooltipContent": "Visa deltagare",
99
+ "menuHeader": "I det här samtalet",
100
+ "participantsListButtonLabel": "{numParticipants} personer",
101
+ "muteAllButtonLabel": "Ljud av för alla",
102
+ "copyInviteLinkButtonLabel": "Kopiera inbjudningslänk",
103
+ "copyInviteLinkActionedAriaLabel": "Inbjudningslänken har kopierats"
104
+ },
105
+ "screenShareButton": {
106
+ "onLabel": "Sluta presentera",
107
+ "offLabel": "Present",
108
+ "tooltipDisabledContent": "Presentationen är inaktiverad",
109
+ "tooltipOnContent": "Visar din skärm",
110
+ "tooltipOffContent": "Dela skärmen"
111
+ },
112
+ "messageThread": {
113
+ "yesterday": "I går",
114
+ "sunday": "Söndag",
115
+ "monday": "Måndag",
116
+ "tuesday": "Tisdag",
117
+ "wednesday": "Onsdag",
118
+ "thursday": "Torsdag",
119
+ "friday": "Fredag",
120
+ "saturday": "Lördag",
121
+ "participantJoined": "gick med i chatten.",
122
+ "participantLeft": "lämnade chatten.",
123
+ "editMessage": "Redigera",
124
+ "removeMessage": "Ta bort",
125
+ "resendMessage": "Försök skicka igen",
126
+ "failToSendTag": "Inte skickat",
127
+ "editedTag": "Redigerad",
128
+ "liveAuthorIntro": "{author} säger",
129
+ "messageContentAriaText": "{author} sa {message}",
130
+ "messageContentMineAriaText": "Du sa {message}",
131
+ "editBoxTextLimit": "Meddelandet överskrider gränsen på {limitNumber} tecken",
132
+ "editBoxPlaceholderText": "Redigera meddelandet",
133
+ "newMessagesIndicator": "Nya meddelanden",
134
+ "noDisplayNameSub": "Inget namn",
135
+ "editBoxCancelButton": "Avbryt",
136
+ "editBoxSubmitButton": "Skicka",
137
+ "messageReadCount": "Läst av {messageReadByCount} av {remoteParticipantsCount}",
138
+ "actionMenuMoreOptions": "Fler alternativ",
139
+ "downloadFile": "Ladda ner fil",
140
+ "blockedWarningText": "Det här meddelandet har tagits bort på grund av en organisationsprincip.",
141
+ "blockedWarningLinkText": "Information",
142
+ "fileCardGroupMessage": "The message has {fileCount} attachment"
143
+ },
144
+ "errorBar": {
145
+ "unableToReachChatService": "Du är offline",
146
+ "accessDenied": "Det går inte att komma åt chatttjänster – kontrollera de angivna autentiseringsuppgifterna",
147
+ "userNotInChatThread": "Du är inte längre i den här chatttråden",
148
+ "sendMessageNotInChatThread": "Det gick inte att skicka meddelandet eftersom du inte längre är i den här chatttråden",
149
+ "sendMessageGeneric": "Meddelandet inte skickat",
150
+ "callingNetworkFailure": "Störande anslutningssamtal – du verkar vara offline",
151
+ "startVideoGeneric": "Det gick inte att starta videon",
152
+ "stopVideoGeneric": "Det gick inte att stoppa videon",
153
+ "muteGeneric": "Det gick inte att stänga av mikrofonen",
154
+ "unmuteGeneric": "Det gick inte att slå på mikrofonen",
155
+ "speakingWhileMuted": "Mikrofonens ljud har stängts av",
156
+ "startScreenShareGeneric": "Det gick inte att starta skärmdelning",
157
+ "stopScreenShareGeneric": "Det gick inte att stoppa skärmdelning",
158
+ "callNetworkQualityLow": "Nätverkskvaliteten är låg.",
159
+ "callNoSpeakerFound": "Inga högtalare eller hörlurar hittades. Anslut en ljudenhet för att höra samtalet.",
160
+ "callNoMicrophoneFound": "Inga mikrofoner hittades. Anslut en ljudinmatningsenhet.",
161
+ "callMicrophoneAccessDenied": "Det går inte att komma åt mikrofonen. Klicka på låset i adressfältet om du vill bevilja behörighet till den här webbsidan.",
162
+ "callMicrophoneAccessDeniedSafari": "Det går inte att komma åt mikrofonen. Uppdatera sidan om du vill tillåta behörigheter, eller kontrollera webbläsarens inställningar och kontrollera att behörigheter är aktiverade för den här webbplatsen.",
163
+ "callMicrophoneMutedBySystem": "Du är avstängt av systemet.",
164
+ "callMicrophoneUnmutedBySystem": "Mikrofonen har återställts och datorn har slagit på ljudet.",
165
+ "callMacOsMicrophoneAccessDenied": "Det går inte att komma åt mikrofonen. Bevilja mikrofonbehörighet i dina sekretessinställningar för macOS.",
166
+ "callLocalVideoFreeze": "Nätverksbandbredden är dålig. Din video kan visas pausad för andra i samtalet.",
167
+ "callCameraAccessDenied": "Det går inte att komma åt kameran. Klicka på låset i adressfältet om du vill bevilja behörighet till den här webbsidan.",
168
+ "callCameraAccessDeniedSafari": "Det går inte att komma åt kameran. Uppdatera sidan om du vill tillåta behörigheter, eller kontrollera webbläsarens inställningar och kontrollera att behörigheter är aktiverade för den här webbplatsen.",
169
+ "callCameraAlreadyInUse": "Det går inte att komma åt kameran. Den kanske redan används av ett annat program.",
170
+ "callVideoStoppedBySystem": "Din video har stoppats av systemet.",
171
+ "callVideoRecoveredBySystem": "Videon har återupptagits.",
172
+ "callMacOsCameraAccessDenied": "MacOS blockerar åtkomsten till kameran. Uppdatera dina sekretessinställningar så att den här webbläsaren får åtkomst till kameran.",
173
+ "callMacOsScreenShareAccessDenied": "MacOS blockerar skärmdelning. Uppdatera dina sekretessinställningar så att den här webbläsaren kan spela in din skärm.",
174
+ "dismissButtonAriaLabel": "Stäng",
175
+ "failedToJoinCallGeneric": "Det gick inte att ansluta till samtalet.",
176
+ "failedToJoinCallInvalidMeetingLink": "Det går inte att ansluta till mötet. Ogiltig länk.",
177
+ "startScreenSharingGeneric": "Det uppstod ett problem när skärmdelningen skulle startas.",
178
+ "cameraFrozenForRemoteParticipants": "Användare i samtalet har problem med att se din video. Kontrollera dina enheter och nätverk.",
179
+ "unableToStartVideoEffect": "Det går inte att tillämpa videoeffekten."
180
+ },
181
+ "videoGallery": {
182
+ "screenIsBeingSharedMessage": "Du delar din skärm",
183
+ "screenShareLoadingMessage": "Läser in {participant}s skärm",
184
+ "localVideoLabel": "Du",
185
+ "localVideoCameraSwitcherLabel": "Växla kamera",
186
+ "localVideoMovementLabel": "Flyttbar lokal videopanel",
187
+ "localVideoSelectedDescription": "{cameraName} har valts",
188
+ "displayNamePlaceholder": "Namnlös deltagare",
189
+ "fitRemoteParticipantToFrame": "Anpassa till ruta",
190
+ "fillRemoteParticipantFrame": "Fyll ruta",
191
+ "pinParticipantForMe": "Fäst åt mig",
192
+ "pinParticipantForMeLimitReached": "Fäst (gränsen har nåtts)",
193
+ "unpinParticipantForMe": "Ta bort",
194
+ "pinParticipantMenuItemAriaLabel": "Fäst {participantName}",
195
+ "unpinParticipantMenuItemAriaLabel": "Ta bort {participantName}",
196
+ "pinnedParticipantAnnouncementAriaLabel": "Fäst {participantName}",
197
+ "unpinnedParticipantAnnouncementAriaLabel": "Borttagen {participantName}"
198
+ },
199
+ "dialpad": {
200
+ "placeholderText": "Ange telefonnummer",
201
+ "deleteButtonAriaLabel": "Ta bort"
202
+ },
203
+ "holdButton": {
204
+ "onLabel": "Återuppta",
205
+ "offLabel": "Bevarande",
206
+ "tooltipOnContent": "Återuppta samtal",
207
+ "tooltipOffContent": "Parkera samtal"
208
+ },
209
+ "videoTile": {
210
+ "participantStateRinging": "Ringer...",
211
+ "participantStateHold": "Parkerat"
212
+ },
213
+ "CameraAndMicrophoneSitePermissionsRequest": {
214
+ "primaryText": "Tillåt {appName} använda kameran och mikrofonen",
215
+ "secondaryText": "Det här är så att deltagarna kan se och höra dig.",
216
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
217
+ "primaryButtonText": "Fortsätt utan kamera och mikrofon",
218
+ "ariaLabel": "Tillåt kamera- och mikrofonåtkomst"
219
+ },
220
+ "CameraSitePermissionsRequest": {
221
+ "primaryText": "Tillåt {appName} att använda kameran",
222
+ "secondaryText": "Det här är så att deltagarna kan se dig.",
223
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
224
+ "primaryButtonText": "Fortsätt utan kamera",
225
+ "ariaLabel": "Tillåt kameraåtkomst"
226
+ },
227
+ "MicrophoneSitePermissionsRequest": {
228
+ "primaryText": "Tillåt {appName} att använda mikrofonen",
229
+ "secondaryText": "Det här är så att deltagarna kan höra dig.",
230
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
231
+ "primaryButtonText": "Fortsätt utan mikrofon",
232
+ "ariaLabel": "Tillåt mikrofonåtkomst"
233
+ },
234
+ "CameraAndMicrophoneSitePermissionsCheck": {
235
+ "primaryText": "Söker efter åtkomst till kameran och mikrofonen",
236
+ "secondaryText": "Tillåt åtkomst om du uppmanas till det. Det här är så att deltagarna kan se och höra dig.",
237
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
238
+ "primaryButtonText": "Fortsätt utan kamera och mikrofon",
239
+ "ariaLabel": "Söker efter åtkomst till kameran och mikrofonen. Tillåt åtkomst om du uppmanas att göra det."
240
+ },
241
+ "CameraSitePermissionsCheck": {
242
+ "primaryText": "Söker efter kameraåtkomst",
243
+ "secondaryText": "Tillåt åtkomst om du uppmanas att göra det. Det här är så att deltagarna kan se dig.",
244
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
245
+ "primaryButtonText": "Fortsätt utan kamera",
246
+ "ariaLabel": "Söker efter kameraåtkomst. Tillåt åtkomst om du uppmanas att göra det."
247
+ },
248
+ "MicrophoneSitePermissionsCheck": {
249
+ "primaryText": "Söker efter mikrofonåtkomst",
250
+ "secondaryText": "Tillåt åtkomst om du uppmanas till det. Det här är så att deltagarna kan höra dig.",
251
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
252
+ "primaryButtonText": "Fortsätt utan mikrofon",
253
+ "ariaLabel": "Söker efter mikrofonåtkomst. Tillåt åtkomst om du uppmanas att göra det."
254
+ },
255
+ "CameraAndMicrophoneSitePermissionsDenied": {
256
+ "primaryText": "Det går inte att komma åt kameran och mikrofonen",
257
+ "secondaryText": "Klicka på låsikonen i adressfältet om du vill bevilja mikrofonbehörighet till den här webbsidan. Det kan krävas en siduppdatering.",
258
+ "primaryButtonText": "Fortsätt utan kamera och mikrofon",
259
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
260
+ },
261
+ "CameraAndMicrophoneSitePermissionsDeniedSafari": {
262
+ "primaryText": "Det går inte att komma åt kameran och mikrofonen",
263
+ "secondaryText": "Uppdatera sidan om du vill tillåta behörigheter, eller kontrollera webbläsarens inställningar och kontrollera att behörigheter är aktiverade för den här webbplatsen.",
264
+ "primaryButtonText": "Fortsätt utan kamera och mikrofon",
265
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
266
+ },
267
+ "CameraSitePermissionsDenied": {
268
+ "primaryText": "Det går inte att komma åt kameran",
269
+ "secondaryText": "Klicka på låsikonen i adressfältet om du vill bevilja kamerabehörigheter till den här webbsidan. Det kan krävas en siduppdatering.",
270
+ "primaryButtonText": "Fortsätt utan kamera",
271
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
272
+ },
273
+ "MicrophoneSitePermissionsDenied": {
274
+ "primaryText": "Det går inte att komma åt mikrofonen",
275
+ "secondaryText": "Klicka på låsikonen i adressfältet om du vill bevilja mikrofonbehörighet till den här webbsidan. Det kan krävas en siduppdatering.",
276
+ "primaryButtonText": "Fortsätt utan mikrofon",
277
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
278
+ },
279
+ "CameraSitePermissionsDeniedSafari": {
280
+ "primaryText": "Det går inte att komma åt kameran",
281
+ "secondaryText": "Uppdatera sidan om du vill tillåta behörigheter, eller kontrollera webbläsarens inställningar och kontrollera att behörigheter är aktiverade för den här webbplatsen.",
282
+ "primaryButtonText": "Fortsätt utan kamera",
283
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
284
+ },
285
+ "MicrophoneSitePermissionsDeniedSafari": {
286
+ "primaryText": "Det går inte att komma åt mikrofonen",
287
+ "secondaryText": "Uppdatera sidan om du vill tillåta behörigheter, eller kontrollera webbläsarens inställningar och kontrollera att behörigheter är aktiverade för den här webbplatsen.",
288
+ "primaryButtonText": "Fortsätt utan mikrofon",
289
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
290
+ },
291
+ "UnsupportedBrowser": {
292
+ "primaryText": "Webbläsaren stöds inte",
293
+ "secondaryText": "Anslut till samtalet med en kompatibel webbläsare.",
294
+ "moreHelpLinkText": "Se kompatibilitetskrav"
295
+ },
296
+ "UnsupportedBrowserVersion": {
297
+ "primaryText": "Uppdatering av webbläsare krävs",
298
+ "secondaryText": "Uppdatera webbläsaren och försök sedan ansluta till samtalet igen för att säkerställa bästa möjliga samtal.",
299
+ "moreHelpLinkText": "Se kompatibilitetskrav",
300
+ "continueAnywayButtonText": "Starta samtal utan att uppdatera"
301
+ },
302
+ "UnsupportedOperatingSystem": {
303
+ "primaryText": "Operativsystemet stöds inte",
304
+ "secondaryText": "Anslut till det här samtalet med en enhet med ett kompatibelt operativsystem.",
305
+ "moreHelpLinkText": "Se kompatibilitetskrav"
306
+ },
307
+ "BrowserPermissionDenied": {
308
+ "primaryText": "Det går inte att använda kameran eller mikrofonen",
309
+ "secondaryText": "Din webbläsare kanske inte har åtkomst till din kamera eller mikrofon. Åtgärda detta genom att öppna Systeminställningar.",
310
+ "primaryButtonText": "Försök igen",
311
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning"
312
+ },
313
+ "BrowserPermissionDeniedIOS": {
314
+ "primaryText": "Tillåt mikrofonåtkomst för att fortsätta",
315
+ "secondaryText": "Så att andra deltagare kan höra dig.",
316
+ "primaryButtonText": "Försök igen",
317
+ "imageAltText": "Behörighetsplats för mikrofon och kameraenhet för iOS",
318
+ "linkText": "Behöver du hjälp? Få hjälp med felsökning",
319
+ "step1Text": "Gå till appen Inställningar",
320
+ "step2Text": "Rulla ned till inställningarna för den här webbläsaren",
321
+ "step3Text": "Aktivera mikrofon (kamera valfritt)",
322
+ "step4Text": "Försök ansluta till samtalet igen",
323
+ "step1DigitText": "1",
324
+ "step2DigitText": "2",
325
+ "step3DigitText": "3",
326
+ "step4DigitText": "4"
327
+ },
328
+ "VerticalGallery": {
329
+ "leftNavButtonAriaLabel": "föregående sida",
330
+ "rightNavButtonAriaLabel": "nästa sida"
331
+ }
332
+ }
@@ -83,7 +83,7 @@ export interface LocalVideoTileOptions {
83
83
  * 'hidden' - local video tile will not be rendered.
84
84
  * This does not affect the Configuration screen or the side pane Picture in Picture in Picture view.
85
85
  */
86
- position?: 'grid' | 'floating' | 'hidden';
86
+ position?: 'grid' | 'floating';
87
87
  }
88
88
  /**
89
89
  * Optional features of the {@link CallComposite}.
@@ -159,8 +159,10 @@ export declare type CallCompositeOptions = {
159
159
  remoteVideoTileMenu?: RemoteVideoTileMenuOptions;
160
160
  /**
161
161
  * Options for controlling the local video tile.
162
+ *
163
+ * @remarks if 'false' the local video tile will not be rendered.
162
164
  */
163
- localVideoTileOptions?: LocalVideoTileOptions;
165
+ localVideoTile?: boolean | LocalVideoTileOptions;
164
166
  };
165
167
  /**
166
168
  * A customizable UI composite for calling experience.
@@ -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 { OnRenderAvatarCallback, ParticipantMenuItemsCallback, useTheme } from '@internal/react-components';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallCompositeIcons } from '../common/icons';\nimport { 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 { getPage } from './selectors/baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } 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\n/* @conditional-compile-remove(rooms) */\nimport { _PermissionsProvider, Role, _getPermissions } from '@internal/react-components';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { LayerHost, mergeStyles } from '@fluentui/react';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\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';\nimport { MobileChatSidePaneTabHeaderProps } from '../common/TabHeader';\nimport { InjectedSidePaneProps, SidePaneProvider, SidePaneRenderer } from './components/SidePane/SidePaneProvider';\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 * @beta\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) */\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 * 'hidden' - local video tile will not be rendered.\n * This does not affect the Configuration screen or the side pane Picture in Picture in Picture view.\n */\n position?: 'grid' | 'floating' | 'hidden';\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 remoteVideoTileMenu?: RemoteVideoTileMenuOptions;\n /* @conditional-compile-remove(click-to-call) */\n /**\n * Options for controlling the local video tile.\n */\n localVideoTileOptions?: LocalVideoTileOptions;\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 /* @conditional-compile-remove(rooms) */\n roleHint?: Role;\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 { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;\n const page = useSelector(getPage);\n\n const [sidePaneRenderer, setSidePaneRenderer] = React.useState<SidePaneRenderer | undefined>();\n const [injectedSidePaneProps, setInjectedSidePaneProps] = React.useState<InjectedSidePaneProps>();\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 const adapter = useAdapter();\n const locale = useLocale();\n const palette = useTheme().palette;\n const leavePageStyle = useMemo(() => leavingPageStyle(palette), [palette]);\n\n /* @conditional-compile-remove(rooms) */\n const role = useSelector(getRole);\n\n let pageElement: JSX.Element | undefined;\n /* @conditional-compile-remove(rooms) */\n switch (page) {\n case 'roomNotFound':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageInvalidRoom\"\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=\"NoticePageInvalidRoom\"\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 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 />\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 pageElement = (\n <NoticePage\n iconName=\"NoticePageLeftCall\"\n title={locale.strings.call.leftCallTitle}\n moreDetails={locale.strings.call.leftCallMoreDetails}\n dataUiId={'left-call-page'}\n />\n );\n break;\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 />\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 />\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 />\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 />\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 /* @conditional-compile-remove(rooms) */\n const permissions = _getPermissions(role === 'Unknown' || role === undefined ? props.roleHint : role);\n\n // default retElement for stable version\n let retElement = pageElement;\n /* @conditional-compile-remove(rooms) */\n retElement = <_PermissionsProvider permissions={permissions}>{pageElement}</_PermissionsProvider>;\n\n return (\n <SidePaneProvider sidePaneRenderer={sidePaneRenderer} overrideSidePane={injectedSidePaneProps}>\n {retElement}\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 /* @conditional-compile-remove(rooms) */\n const roleHint = adapter.getState().roleHint;\n\n useEffect(() => {\n (async () => {\n const constrain = getQueryOptions({\n /* @conditional-compile-remove(rooms) */ role: roleHint\n });\n await adapter.askDevicePermission(constrain);\n adapter.queryCameras();\n adapter.queryMicrophones();\n adapter.querySpeakers();\n })();\n }, [adapter, /* @conditional-compile-remove(rooms) */ roleHint]);\n\n const mobileView = formFactor === 'mobile';\n\n const modalLayerHostId = useId('modalLayerhost');\n\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 /* @conditional-compile-remove(rooms) */\n roleHint={roleHint}\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) @conditional-compile-remove(call-readiness) */\n <LayerHost id={modalLayerHostId} className={mergeStyles(modalLayerHostStyle)} />\n }\n </CallAdapterProvider>\n </BaseProvider>\n </div>\n );\n};\n\nconst getQueryOptions = (options: { /* @conditional-compile-remove(rooms) */ role?: Role }): 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\"../../../../calling-component-bindings/src\"\"../../../../react-components/src\""]}
1
+ {"version":3,"file":"CallComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallComposite/CallComposite.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAGlC,OAAO,EAAwD,QAAQ,EAAE,yCAAmC;AAC5G,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,+BAA+B,CAAC;AAGvC,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAQ,eAAe,EAAE,yCAAmC;AACzF,2FAA2F;AAC3F,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,2FAA2F;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,mDAAmD,CAAC,6CAA6C;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,sDAAsD;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAyB,gBAAgB,EAAoB,MAAM,wCAAwC,CAAC;AA6LnH,MAAM,SAAS,GAAG,CAAC,gBAAwC,EAAW,EAAE;IACtE,OAAO,CAAC,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,QAAQ,CAAA,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAe,EAAE;;IACzD,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,GAAG,KAAK,CAAC;IAC3G,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAgC,CAAC;IAC/F,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAyB,CAAC;IAElG,MAAM,gBAAgB,GAAG,MAAM,CAAoC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3F,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjD,oFAAoF;QACpF,mGAAmG;QACnG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YAC7E,mBAAmB,CAAC,SAAS,CAAC,CAAC;SAChC;QACD,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACpD,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE7B,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3E,wCAAwC;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,WAAoC,CAAC;IACzC,wCAAwC;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,cAAc;YACjB,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,uBAAuB,EAChC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAC5C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EACpD,QAAQ,EAAE,qBAAqB,GAC/B,CACH,CAAC;YACF,MAAM;QACR,KAAK,wBAAwB;YAC3B,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,uBAAuB,EAChC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EACtD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAC9D,QAAQ,EAAE,0BAA0B,GACpC,CACH,CAAC;YACF,MAAM;KACT;IACD,QAAQ,IAAI,EAAE;QACZ,KAAK,eAAe;YAClB,WAAW,GAAG,CACZ,oBAAC,iBAAiB,IAChB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,GAAS,EAAE;oBAC3B,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC,EACD,sBAAsB,EAAE,mBAAmB,EAC3C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,iDAAiD;gBACjD,YAAY,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY;gBACzC,iDAAiD;gBACjD,iCAAiC,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,iCAAiC;gBACnF,iDAAiD;gBACjD,gCAAgC,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,gCAAgC,GACjF,CACH,CAAC;YACF,MAAM;QACR,KAAK,0BAA0B;YAC7B,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,oCAAoC,EAC7C,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAC1E,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qDAAqD,EACtF,QAAQ,EAAE,kCAAkC,GAC5C,CACH,CAAC;YACF,MAAM;QACR,KAAK,iBAAiB;YACpB,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,2BAA2B,EACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAC/C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAC3D,QAAQ,EAAE,wBAAwB,GAClC,CACH,CAAC;YACF,MAAM;QACR,KAAK,8BAA8B;YACjC,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,wCAAwC,EACjD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAC9D,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAC1E,QAAQ,EAAE,yCAAyC,GACnD,CACH,CAAC;YACF,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,KAAK,EAAE,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,mCAAI,YAAY,EAC3D,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,cAAc,EACzB,sBAAsB,EAAE,IAAI,GAC5B,CACH,CAAC;YACF,MAAM;QACR,KAAK,UAAU;YACb,WAAW,GAAG,CACZ,oBAAC,UAAU,IACT,QAAQ,EAAC,oBAAoB,EAC7B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EACxC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EACpD,QAAQ,EAAE,gBAAgB,GAC1B,CACH,CAAC;YACF,MAAM;QACR,KAAK,OAAO;YACV,WAAW,GAAG,CACZ,oBAAC,SAAS,IACR,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,mBAAmB,EAC3C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C,CACH,CAAC;YACF,MAAM;QACR,gDAAgD;QAChD,KAAK,cAAc;YACjB,WAAW,GAAG,CACZ,oBAAC,YAAY,IACX,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,mBAAmB,EAC3C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,cAAc,EAAE,cAAc,EAC9B,wBAAwB,EAAE,wBAAwB,GAClD,CACH,CAAC;YACF,MAAM;QACR,KAAK,MAAM;YACT,WAAW,GAAG,CACZ,oBAAC,QAAQ,IACP,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,2BAA2B,EACxD,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,mBAAmB,EAC3C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C,CACH,CAAC;YACF,MAAM;QACR,6CAA6C,CAAC,mDAAmD;QACjG,KAAK,MAAM;YACT,WAAW,GAAG,CACZ,0CAEI,oBAAC,QAAQ,IACP,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,sBAAsB,EAAE,mBAAmB,EAC3C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C,CAEH,CACJ,CAAC;YACF,MAAM;KACT;IAED,sDAAsD;IACtD,QAAQ,IAAI,EAAE;QACZ,KAAK,wBAAwB;YAC3B,WAAW,GAAG,CACZ;YAEI,sDAAsD;YACtD,oBAAC,sBAAsB,IACrB,sBAAsB,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,qCAAqC,EAC5E,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,eAAe,GACnD,CAEH,CACJ,CAAC;YACF,MAAM;KACT;IAED,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtG,wCAAwC;IACxC,IAAI,UAAU,GAAG,WAAW,CAAC;IAC7B,wCAAwC;IACxC,UAAU,GAAG,oBAAC,oBAAoB,IAAC,WAAW,EAAE,WAAW,IAAG,WAAW,CAAwB,CAAC;IAElG,OAAO,CACL,oBAAC,gBAAgB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,IAC1F,UAAU,CACM,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE,CAAC,oBAAC,kBAAkB,oBAAK,KAAK,EAAI,CAAC;AAa3G,eAAe;AACf,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAsD,EAAe,EAAE;IACxG,MAAM,EACJ,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,OAAO,EACP,UAAU,GAAG,SAAS,EACvB,GAAG,KAAK,CAAC;IAEV,wCAAwC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,GAAS,EAAE;YACV,MAAM,SAAS,GAAG,eAAe,CAAC;gBAChC,wCAAwC,CAAC,IAAI,EAAE,QAAQ;aACxD,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC7C,OAAO,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,CAAC,CAAA,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,EAAE,wCAAwC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,UAAU,KAAK,QAAQ,CAAC;IAE3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEjD,MAAM,4BAA4B,GAAG,OAAO,CAAC,GAAG,EAAE;QAChD,OAAO,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,+BAA+B,CAAC;IACvF,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL,6BAAK,SAAS,EAAE,4BAA4B;QAC1C,oBAAC,YAAY,oBAAK,KAAK;YACrB,oBAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO;gBACnC,oBAAC,UAAU,IACT,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,2BAA2B,EACxD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO;oBAChB,wCAAwC;oBACxC,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C;gBAEA,0GAA0G;gBAC1G,sIAAsI;gBACtI,+HAA+H;gBAC/H,+HAA+H;gBAC/H,iCAAiC;gBACjC,mIAAmI;gBACnI,sIAAsI;gBACtI,0EAA0E;gBAC1E,uIAAuI;gBACvI,oBAAC,SAAS,IAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAI,CAE9D,CACT,CACX,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAiE,EAAyB,EAAE;IACnH,wCAAwC;IACxC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;QAC/B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC;KACH;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { OnRenderAvatarCallback, ParticipantMenuItemsCallback, useTheme } from '@internal/react-components';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { BaseProvider, BaseCompositeProps } from '../common/BaseComposite';\nimport { CallCompositeIcons } from '../common/icons';\nimport { 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 { getPage } from './selectors/baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } 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\n/* @conditional-compile-remove(rooms) */\nimport { _PermissionsProvider, Role, _getPermissions } from '@internal/react-components';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { LayerHost, mergeStyles } from '@fluentui/react';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\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';\nimport { MobileChatSidePaneTabHeaderProps } from '../common/TabHeader';\nimport { InjectedSidePaneProps, SidePaneProvider, SidePaneRenderer } from './components/SidePane/SidePaneProvider';\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 * @beta\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) */\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 * 'hidden' - local video tile will not be rendered.\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 remoteVideoTileMenu?: 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};\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 /* @conditional-compile-remove(rooms) */\n roleHint?: Role;\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 { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;\n const page = useSelector(getPage);\n\n const [sidePaneRenderer, setSidePaneRenderer] = React.useState<SidePaneRenderer | undefined>();\n const [injectedSidePaneProps, setInjectedSidePaneProps] = React.useState<InjectedSidePaneProps>();\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 const adapter = useAdapter();\n const locale = useLocale();\n const palette = useTheme().palette;\n const leavePageStyle = useMemo(() => leavingPageStyle(palette), [palette]);\n\n /* @conditional-compile-remove(rooms) */\n const role = useSelector(getRole);\n\n let pageElement: JSX.Element | undefined;\n /* @conditional-compile-remove(rooms) */\n switch (page) {\n case 'roomNotFound':\n pageElement = (\n <NoticePage\n iconName=\"NoticePageInvalidRoom\"\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=\"NoticePageInvalidRoom\"\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 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 />\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 pageElement = (\n <NoticePage\n iconName=\"NoticePageLeftCall\"\n title={locale.strings.call.leftCallTitle}\n moreDetails={locale.strings.call.leftCallMoreDetails}\n dataUiId={'left-call-page'}\n />\n );\n break;\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 />\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 />\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 />\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 />\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 /* @conditional-compile-remove(rooms) */\n const permissions = _getPermissions(role === 'Unknown' || role === undefined ? props.roleHint : role);\n\n // default retElement for stable version\n let retElement = pageElement;\n /* @conditional-compile-remove(rooms) */\n retElement = <_PermissionsProvider permissions={permissions}>{pageElement}</_PermissionsProvider>;\n\n return (\n <SidePaneProvider sidePaneRenderer={sidePaneRenderer} overrideSidePane={injectedSidePaneProps}>\n {retElement}\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 /* @conditional-compile-remove(rooms) */\n const roleHint = adapter.getState().roleHint;\n\n useEffect(() => {\n (async () => {\n const constrain = getQueryOptions({\n /* @conditional-compile-remove(rooms) */ role: roleHint\n });\n await adapter.askDevicePermission(constrain);\n adapter.queryCameras();\n adapter.queryMicrophones();\n adapter.querySpeakers();\n })();\n }, [adapter, /* @conditional-compile-remove(rooms) */ roleHint]);\n\n const mobileView = formFactor === 'mobile';\n\n const modalLayerHostId = useId('modalLayerhost');\n\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 /* @conditional-compile-remove(rooms) */\n roleHint={roleHint}\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) @conditional-compile-remove(call-readiness) */\n <LayerHost id={modalLayerHostId} className={mergeStyles(modalLayerHostStyle)} />\n }\n </CallAdapterProvider>\n </BaseProvider>\n </div>\n );\n};\n\nconst getQueryOptions = (options: { /* @conditional-compile-remove(rooms) */ role?: Role }): 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\"../../../../calling-component-bindings/src\"\"../../../../react-components/src\""]}
@@ -1,14 +1,13 @@
1
1
  import { StatefulCallClient, StatefulDeviceManager, TeamsCall, TeamsCallAgent as BetaTeamsCallAgent } from "../../../../../calling-stateful-client/src";
2
2
  import { CallAgent, GroupCallLocator, TeamsMeetingLinkLocator, AudioDeviceInfo, VideoDeviceInfo, PermissionConstraints, PropertyChangedEvent, StartCallOptions, Call } from '@azure/communication-calling';
3
3
  import { StartCaptionsOptions } from '@azure/communication-calling';
4
- import { BackgroundBlurConfig, BackgroundReplacementConfig } from '@azure/communication-calling-effects';
5
4
  import { TeamsCallAgent } from '@azure/communication-calling';
6
5
  import { RoomCallLocator } from '@azure/communication-calling';
7
6
  import { AddPhoneNumberOptions, DtmfTone } from '@azure/communication-calling';
8
7
  import { CommonCallAdapter, CallEndedListener, CallIdChangedListener, CallAdapterState, DisplayNameChangedListener, IsMutedChangedListener, IsLocalScreenSharingActiveChangedListener, IsSpeakingChangedListener, ParticipantsJoinedListener, ParticipantsLeftListener, DiagnosticChangedEventListner, CallAdapter } from './CallAdapter';
9
8
  import { TransferRequestedListener } from './CallAdapter';
10
9
  import { CaptionsReceivedListener, IsCaptionsActiveChangedListener } from './CallAdapter';
11
- import { VideoBackgroundImage, SelectedVideoBackgroundEffect } from './CallAdapter';
10
+ import { VideoBackgroundImage, VideoBackgroundEffect } from './CallAdapter';
12
11
  import { TeamsCallAdapter } from './CallAdapter';
13
12
  import { CreateVideoStreamViewResult, VideoStreamOptions } from "../../../../../react-components/src";
14
13
  import { Role } from "../../../../../react-components/src";
@@ -61,13 +60,14 @@ export declare class AzureCommunicationCallAdapter<AgentType extends CallAgent |
61
60
  startScreenShare(): Promise<void>;
62
61
  stopScreenShare(): Promise<void>;
63
62
  allowUnsupportedBrowserVersion(): void;
64
- blurVideoBackground(backgroundBlurConfig?: BackgroundBlurConfig): Promise<void>;
65
- replaceVideoBackground(backgroundReplacementConfig: BackgroundReplacementConfig): Promise<void>;
63
+ startVideoBackgroundEffect(videoBackgroundEffect: VideoBackgroundEffect): Promise<void>;
66
64
  stopVideoBackgroundEffects(): Promise<void>;
67
65
  updateBackgroundPickerImages(backgroundImages: VideoBackgroundImage[]): void;
68
- updateSelectedVideoBackgroundEffect(selectedVideoBackground: SelectedVideoBackgroundEffect): void;
66
+ updateSelectedVideoBackgroundEffect(selectedVideoBackground: VideoBackgroundEffect): void;
69
67
  startCall(participants: string[] | CommunicationIdentifier[], options?: StartCallOptions): CallTypeOf<AgentType> | undefined;
70
68
  private processNewCall;
69
+ private isBlurEffect;
70
+ private isReplacementEffect;
71
71
  removeParticipant(userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier): Promise<void>;
72
72
  addParticipant(participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void>;
73
73
  addParticipant(participant: CommunicationUserIdentifier): Promise<void>;