@azure/communication-react 1.5.1-alpha-202304040013 → 1.5.1-beta.2

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 (184) hide show
  1. package/CHANGELOG.beta.md +76 -1
  2. package/CHANGELOG.json +621 -0
  3. package/dist/communication-react.d.ts +160 -192
  4. package/dist/dist-cjs/communication-react/index.js +1615 -2195
  5. package/dist/dist-cjs/communication-react/index.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/chat-component-bindings/src/messageThreadSelector.js +2 -29
  9. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  10. package/dist/dist-esm/chat-component-bindings/src/utils/constants.d.ts +0 -4
  11. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js +0 -4
  12. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  13. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +26 -32
  14. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  15. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +1 -6
  16. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  17. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +0 -1
  18. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  19. package/dist/dist-esm/communication-react/src/index.d.ts +0 -2
  20. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +29 -31
  22. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +1 -2
  24. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +13 -11
  25. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +1 -2
  27. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +20 -34
  28. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +2 -11
  30. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +9 -47
  31. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  32. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +0 -7
  33. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +1 -5
  34. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -10
  36. package/dist/dist-esm/react-components/src/components/MessageThread.js +36 -57
  37. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -1
  39. package/dist/dist-esm/react-components/src/components/index.js +0 -1
  40. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.d.ts +13 -0
  42. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.js +35 -0
  43. package/dist/dist-esm/react-components/src/components/styles/CaptionsBanner.style.js.map +1 -0
  44. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +0 -5
  45. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +0 -28
  46. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +4 -6
  48. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +1 -1
  49. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  51. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +116 -11
  53. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +115 -10
  54. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +1 -3
  55. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +115 -10
  56. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +116 -11
  57. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +115 -10
  58. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +115 -10
  59. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +115 -10
  60. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +115 -10
  61. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +116 -11
  62. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +115 -10
  63. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +116 -11
  64. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +115 -10
  65. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +115 -10
  66. package/dist/dist-esm/react-components/src/theming/icons.d.ts +0 -1
  67. package/dist/dist-esm/react-components/src/theming/icons.js +0 -8
  68. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  69. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -20
  70. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +0 -20
  72. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -7
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +2 -14
  75. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  76. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +0 -8
  77. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +20 -93
  79. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +1 -1
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +3 -9
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +1 -3
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts +1 -1
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -1
  92. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  93. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +2 -2
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -19
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts +1 -5
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +0 -20
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +87 -5
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +75 -15
  106. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +5 -7
  107. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  108. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts +28 -0
  109. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +194 -0
  110. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -0
  111. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite}/CustomButton.d.ts +16 -19
  112. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite}/CustomButton.js +4 -4
  113. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +1 -0
  114. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite}/PeopleButton.d.ts +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite}/PeopleButton.js +3 -3
  116. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.js.map +1 -0
  117. package/dist/dist-esm/react-composites/src/composites/{common/Drawer → CallWithChatComposite}/PreparedMoreDrawer.d.ts +2 -2
  118. package/dist/dist-esm/react-composites/src/composites/{common/Drawer → CallWithChatComposite}/PreparedMoreDrawer.js +5 -5
  119. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.js.map +1 -0
  120. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +0 -2
  121. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +1 -7
  122. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +0 -10
  124. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  125. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +0 -2
  126. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +1 -7
  127. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  128. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite/components}/DesktopMoreButton.d.ts +2 -2
  129. package/dist/dist-esm/react-composites/src/composites/{common/ControlBar → CallWithChatComposite/components}/DesktopMoreButton.js +3 -3
  130. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +1 -0
  131. package/dist/dist-esm/react-composites/src/composites/{common/Drawer → CallWithChatComposite/components}/MoreDrawer.d.ts +2 -2
  132. package/dist/dist-esm/react-composites/src/composites/{common/Drawer → CallWithChatComposite/components}/MoreDrawer.js +5 -4
  133. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -0
  134. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts +1 -1
  135. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +0 -3
  137. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -6
  138. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  139. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +0 -1
  140. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +0 -11
  141. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  142. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts +1 -4
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +1 -29
  144. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  145. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +0 -2
  146. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +3 -88
  147. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  148. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -7
  149. package/dist/dist-esm/react-composites/src/composites/common/icons.js +1 -7
  150. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  151. package/dist/dist-esm/react-composites/src/composites/index.d.ts +0 -3
  152. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  153. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +17 -3
  154. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +17 -3
  155. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +0 -5
  156. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +17 -3
  157. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +17 -3
  158. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +17 -3
  159. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +17 -3
  160. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +17 -3
  161. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +17 -3
  162. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +17 -3
  163. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +17 -3
  164. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +17 -3
  165. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +17 -3
  166. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +17 -3
  167. package/package.json +10 -10
  168. package/dist/dist-esm/react-components/src/components/Caption.d.ts +0 -21
  169. package/dist/dist-esm/react-components/src/components/Caption.js +0 -32
  170. package/dist/dist-esm/react-components/src/components/Caption.js.map +0 -1
  171. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +0 -21
  172. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +0 -41
  173. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +0 -1
  174. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +0 -30
  175. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +0 -253
  176. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +0 -1
  177. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +0 -1
  178. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +0 -1
  179. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +0 -1
  180. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +0 -1
  181. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +0 -1
  182. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +0 -165
  183. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js +0 -4
  184. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +0 -1
@@ -41,11 +41,6 @@ export declare const FailedMyChatMessageContainer: ComponentSlotStyle;
41
41
  * @private
42
42
  */
43
43
  export declare const defaultChatMessageContainer: (theme: Theme) => ComponentSlotStyle;
44
- /**
45
- * @private
46
- * @conditional-compile-remove(data-loss-prevention)
47
- */
48
- export declare const defaultBlockedMessageStyleContainer: (theme: Theme) => ComponentSlotStyle;
49
44
  /**
50
45
  * @private
51
46
  */
@@ -142,34 +142,6 @@ export const defaultChatMessageContainer = (theme) => ({
142
142
  // This makes message bubble show border in high contrast mode making each message distinguishable
143
143
  border: '1px solid transparent'
144
144
  });
145
- /**
146
- * @private
147
- * @conditional-compile-remove(data-loss-prevention)
148
- */
149
- export const defaultBlockedMessageStyleContainer = (theme) => ({
150
- maxWidth: '100%',
151
- minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,
152
- marginRight: '0rem',
153
- color: theme.palette.neutralSecondary,
154
- '& i': {
155
- paddingTop: '0.25rem'
156
- },
157
- '& p': {
158
- // Deal with awkward padding seen in messages from Teams.
159
- // For more info see https://github.com/Azure/communication-ui-library/pull/1507
160
- marginBlock: '0.125rem',
161
- paddingRight: '0.75rem',
162
- fontStyle: 'italic'
163
- },
164
- '& a': {
165
- marginBlock: '0.125rem',
166
- fontStyle: 'normal',
167
- color: theme.palette.themePrimary,
168
- textDecoration: 'none'
169
- },
170
- // This makes message bubble show border in high contrast mode making each message distinguishable
171
- border: '1px solid transparent'
172
- });
173
145
  /**
174
146
  * @private
175
147
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MessageThread.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/MessageThread.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IButtonStyles, mergeStyles, Theme } from '@fluentui/react';\nimport { ComponentSlotStyle } from '@fluentui/react-northstar';\nimport { CSSProperties } from 'react';\nimport { MESSAGE_STATUS_INDICATOR_SIZE_REM } from './MessageStatusIndicator.styles';\n\n// Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI\n// that can contain a message and a timestamp.\nconst CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM = 6.25;\n\n// Chat messages should span just short of the width of the container.\n// When calculating the width of a message we also must take into account\n// the width of the avatar/gutter and the gap between the message and avatar/gutter.\nconst AVATAR_WIDTH_REM = 2;\nconst AVATAR_MESSAGE_GAP_REM = 0.5;\nconst MESSAGE_AMOUNT_OUT_FROM_EDGE_REM = 2;\n\n// Avatars should display on top of chat messages when the chat thread is narrow\nconst MESSAGE_AVATAR_OVERLAP_REM = 0.425;\nconst CHAT_MESSAGE_ZINDEX = 1;\nconst AVATAR_ZINDEX = 2;\n// new message button should be on top of chat message\nconst NEW_MESSAGE_BUTTON_ZINDEX = 2;\n\n/**\n * @private\n */\nexport const messageThreadContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n position: 'relative',\n alignSelf: 'center'\n});\n\n/**\n * @private\n */\nexport const noMessageStatusStyle = mergeStyles({\n // This should match the size of the message status indicator icon to ensure\n // multiple messages sent by the user are aligned correctly.\n width: `${MESSAGE_STATUS_INDICATOR_SIZE_REM}rem`\n});\n\n/**\n * @private\n */\nexport const chatStyle: ComponentSlotStyle = {\n paddingBottom: '0.5rem',\n paddingTop: '0.8rem',\n border: 'none',\n overflow: 'auto',\n // `height: 100%` ensures that the Chat component covers 100% of it's parents height\n // to prevent intermittent scrollbars when gifs are present in the chat.\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const newMessageButtonContainerStyle = mergeStyles({\n position: 'absolute',\n zIndex: NEW_MESSAGE_BUTTON_ZINDEX,\n bottom: 0,\n right: '1.5rem'\n});\n\n/**\n * @private\n */\nexport const chatMessageStyle: CSSProperties = {\n overflowY: 'hidden'\n};\n\n/**\n * @private\n */\nexport const chatMessageDateStyle: CSSProperties = {\n fontWeight: 600\n};\n\n/**\n * @private\n */\nexport const defaultChatItemMessageContainer = (overlapAvatarAndMessage: boolean): ComponentSlotStyle => {\n const messageAvatarGap = overlapAvatarAndMessage ? -MESSAGE_AVATAR_OVERLAP_REM : AVATAR_MESSAGE_GAP_REM;\n return {\n marginRight: '0rem',\n marginLeft: `${messageAvatarGap}rem`,\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM + messageAvatarGap}rem)`,\n zIndex: CHAT_MESSAGE_ZINDEX\n };\n};\n\n/**\n * @private\n */\nexport const defaultMyChatMessageContainer: ComponentSlotStyle = {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginLeft: '0rem',\n // This makes message bubble show border in high contrast mode making each message distinguishable\n border: '1px solid transparent'\n};\n\n/**\n * @private\n */\nexport const FailedMyChatMessageContainer: ComponentSlotStyle = {\n ...defaultChatItemMessageContainer,\n backgroundColor: 'rgba(168, 0, 0, 0.2)'\n};\n\n/**\n * @private\n */\nexport const defaultChatMessageContainer = (theme: Theme): ComponentSlotStyle => ({\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n '& img': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n marginBlock: '0.125rem'\n },\n '& blockquote': {\n backgroundColor: theme.palette.white,\n clear: 'left',\n minHeight: '2.25rem',\n width: 'fit-content',\n margin: '7px 0px',\n padding: '7px 15px',\n border: 'solid',\n borderRadius: '4px',\n borderWidth: '1px',\n borderColor: theme.palette.neutralQuaternary,\n borderLeftWidth: '4px'\n },\n '& table': {\n backgroundColor: theme.palette.white,\n border: theme.palette.neutralQuaternary,\n borderCollapse: 'collapse',\n tableLayout: 'auto',\n width: '100%',\n\n '& tr': {\n border: `1px solid ${theme.palette.neutralQuaternary}`,\n\n '& td': {\n border: `1px solid ${theme.palette.neutralQuaternary}`,\n wordBreak: 'normal',\n padding: '0px 5px'\n }\n }\n },\n // This makes message bubble show border in high contrast mode making each message distinguishable\n border: '1px solid transparent'\n});\n\n/**\n * @private\n * @conditional-compile-remove(data-loss-prevention)\n */\nexport const defaultBlockedMessageStyleContainer = (theme: Theme): ComponentSlotStyle => ({\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n color: theme.palette.neutralSecondary,\n\n '& i': {\n paddingTop: '0.25rem'\n },\n\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n marginBlock: '0.125rem',\n paddingRight: '0.75rem',\n fontStyle: 'italic'\n },\n\n '& a': {\n marginBlock: '0.125rem',\n fontStyle: 'normal',\n color: theme.palette.themePrimary,\n textDecoration: 'none'\n },\n // This makes message bubble show border in high contrast mode making each message distinguishable\n border: '1px solid transparent'\n});\n\n/**\n * @private\n */\nexport const gutterWithAvatar: ComponentSlotStyle = {\n width: `${AVATAR_WIDTH_REM}`,\n position: 'relative',\n float: 'left',\n display: 'block',\n visibility: 'visible',\n zIndex: AVATAR_ZINDEX\n};\n\n/**\n * @private\n */\nexport const gutterWithHiddenAvatar: ComponentSlotStyle = {\n ...gutterWithAvatar,\n visibility: 'hidden',\n // we use this hidden avatar just as a width placeholder\n // the placeholder is needed for responsive bubble width\n height: 0\n};\n\n/**\n * @private\n */\nexport const messageStatusContainerStyle = (mine: boolean): string =>\n mergeStyles({\n marginLeft: mine ? '0.25rem' : '0rem'\n });\n\n/**\n * @private\n */\nexport const newMessageButtonStyle = mergeStyles({\n float: 'right',\n width: 'fit-content'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n\n/**\n * @private\n */\nexport const loadPreviousMessageButtonStyle = mergeStyles({\n border: 'none',\n minHeight: '1.5rem',\n '&:hover': { background: 'none' },\n '&:active': { background: 'none' }\n});\n\n/**\n * @private\n */\nexport const DownIconStyle = mergeStyles({\n marginRight: '0.5em'\n});\n"]}
1
+ {"version":3,"file":"MessageThread.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/MessageThread.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IButtonStyles, mergeStyles, Theme } from '@fluentui/react';\nimport { ComponentSlotStyle } from '@fluentui/react-northstar';\nimport { CSSProperties } from 'react';\nimport { MESSAGE_STATUS_INDICATOR_SIZE_REM } from './MessageStatusIndicator.styles';\n\n// Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI\n// that can contain a message and a timestamp.\nconst CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM = 6.25;\n\n// Chat messages should span just short of the width of the container.\n// When calculating the width of a message we also must take into account\n// the width of the avatar/gutter and the gap between the message and avatar/gutter.\nconst AVATAR_WIDTH_REM = 2;\nconst AVATAR_MESSAGE_GAP_REM = 0.5;\nconst MESSAGE_AMOUNT_OUT_FROM_EDGE_REM = 2;\n\n// Avatars should display on top of chat messages when the chat thread is narrow\nconst MESSAGE_AVATAR_OVERLAP_REM = 0.425;\nconst CHAT_MESSAGE_ZINDEX = 1;\nconst AVATAR_ZINDEX = 2;\n// new message button should be on top of chat message\nconst NEW_MESSAGE_BUTTON_ZINDEX = 2;\n\n/**\n * @private\n */\nexport const messageThreadContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n position: 'relative',\n alignSelf: 'center'\n});\n\n/**\n * @private\n */\nexport const noMessageStatusStyle = mergeStyles({\n // This should match the size of the message status indicator icon to ensure\n // multiple messages sent by the user are aligned correctly.\n width: `${MESSAGE_STATUS_INDICATOR_SIZE_REM}rem`\n});\n\n/**\n * @private\n */\nexport const chatStyle: ComponentSlotStyle = {\n paddingBottom: '0.5rem',\n paddingTop: '0.8rem',\n border: 'none',\n overflow: 'auto',\n // `height: 100%` ensures that the Chat component covers 100% of it's parents height\n // to prevent intermittent scrollbars when gifs are present in the chat.\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const newMessageButtonContainerStyle = mergeStyles({\n position: 'absolute',\n zIndex: NEW_MESSAGE_BUTTON_ZINDEX,\n bottom: 0,\n right: '1.5rem'\n});\n\n/**\n * @private\n */\nexport const chatMessageStyle: CSSProperties = {\n overflowY: 'hidden'\n};\n\n/**\n * @private\n */\nexport const chatMessageDateStyle: CSSProperties = {\n fontWeight: 600\n};\n\n/**\n * @private\n */\nexport const defaultChatItemMessageContainer = (overlapAvatarAndMessage: boolean): ComponentSlotStyle => {\n const messageAvatarGap = overlapAvatarAndMessage ? -MESSAGE_AVATAR_OVERLAP_REM : AVATAR_MESSAGE_GAP_REM;\n return {\n marginRight: '0rem',\n marginLeft: `${messageAvatarGap}rem`,\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM + messageAvatarGap}rem)`,\n zIndex: CHAT_MESSAGE_ZINDEX\n };\n};\n\n/**\n * @private\n */\nexport const defaultMyChatMessageContainer: ComponentSlotStyle = {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginLeft: '0rem',\n // This makes message bubble show border in high contrast mode making each message distinguishable\n border: '1px solid transparent'\n};\n\n/**\n * @private\n */\nexport const FailedMyChatMessageContainer: ComponentSlotStyle = {\n ...defaultChatItemMessageContainer,\n backgroundColor: 'rgba(168, 0, 0, 0.2)'\n};\n\n/**\n * @private\n */\nexport const defaultChatMessageContainer = (theme: Theme): ComponentSlotStyle => ({\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n '& img': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n marginBlock: '0.125rem'\n },\n '& blockquote': {\n backgroundColor: theme.palette.white,\n clear: 'left',\n minHeight: '2.25rem',\n width: 'fit-content',\n margin: '7px 0px',\n padding: '7px 15px',\n border: 'solid',\n borderRadius: '4px',\n borderWidth: '1px',\n borderColor: theme.palette.neutralQuaternary,\n borderLeftWidth: '4px'\n },\n '& table': {\n backgroundColor: theme.palette.white,\n border: theme.palette.neutralQuaternary,\n borderCollapse: 'collapse',\n tableLayout: 'auto',\n width: '100%',\n\n '& tr': {\n border: `1px solid ${theme.palette.neutralQuaternary}`,\n\n '& td': {\n border: `1px solid ${theme.palette.neutralQuaternary}`,\n wordBreak: 'normal',\n padding: '0px 5px'\n }\n }\n },\n // This makes message bubble show border in high contrast mode making each message distinguishable\n border: '1px solid transparent'\n});\n\n/**\n * @private\n */\nexport const gutterWithAvatar: ComponentSlotStyle = {\n width: `${AVATAR_WIDTH_REM}`,\n position: 'relative',\n float: 'left',\n display: 'block',\n visibility: 'visible',\n zIndex: AVATAR_ZINDEX\n};\n\n/**\n * @private\n */\nexport const gutterWithHiddenAvatar: ComponentSlotStyle = {\n ...gutterWithAvatar,\n visibility: 'hidden',\n // we use this hidden avatar just as a width placeholder\n // the placeholder is needed for responsive bubble width\n height: 0\n};\n\n/**\n * @private\n */\nexport const messageStatusContainerStyle = (mine: boolean): string =>\n mergeStyles({\n marginLeft: mine ? '0.25rem' : '0rem'\n });\n\n/**\n * @private\n */\nexport const newMessageButtonStyle = mergeStyles({\n float: 'right',\n width: 'fit-content'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n\n/**\n * @private\n */\nexport const loadPreviousMessageButtonStyle = mergeStyles({\n border: 'none',\n minHeight: '1.5rem',\n '&:hover': { background: 'none' },\n '&:active': { background: 'none' }\n});\n\n/**\n * @private\n */\nexport const DownIconStyle = mergeStyles({\n marginRight: '0.5em'\n});\n"]}
@@ -1,9 +1,4 @@
1
1
  import { ChatMessage, ReadReceiptsBySenderId } from '../..';
2
- import { BlockedMessage } from '../../types/ChatMessage';
3
- declare const _default: (message: ChatMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage, readReceiptsBySenderId: ReadReceiptsBySenderId) => {
4
- id: string;
5
- displayName: string;
6
- }[];
7
2
  /**
8
3
  * @private
9
4
  *logic: Looking at message A, how do we know it's read number?
@@ -18,5 +13,8 @@ declare const _default: (message: ChatMessage | /* @conditional-compile-remove(d
18
13
  *
19
14
  * if MessageId of B is larger than message Id of A, then B is created after A
20
15
  * if the last read message is created after the message A is sent, then user should have read message A as well */
21
- export default _default;
16
+ export declare const getParticipantsWhoHaveReadMessage: (message: ChatMessage, readReceiptsBySenderId: ReadReceiptsBySenderId) => {
17
+ id: string;
18
+ displayName: string;
19
+ }[];
22
20
  //# sourceMappingURL=getParticipantsWhoHaveReadMessage.d.ts.map
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * if MessageId of B is larger than message Id of A, then B is created after A
14
14
  * if the last read message is created after the message A is sent, then user should have read message A as well */
15
- export default (message, readReceiptsBySenderId) => {
15
+ export const getParticipantsWhoHaveReadMessage = (message, readReceiptsBySenderId) => {
16
16
  return (Object.entries(readReceiptsBySenderId)
17
17
  // Filter to only read receipts that match the message OR the participant has read a different message after this message has been created
18
18
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -1 +1 @@
1
- {"version":3,"file":"getParticipantsWhoHaveReadMessage.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/getParticipantsWhoHaveReadMessage.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;mHAamH;AACnH,eAAe,CACb,OAA6F,EAC7F,sBAA8C,EACP,EAAE;IACzC,OAAO,CACL,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACpC,0IAA0I;QAC1I,6DAA6D;SAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC;QAC/E,gDAAgD;QAChD,6DAA6D;SAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,EAAE,CAAC;QACxF,iCAAiC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAC9E,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { ChatMessage, ReadReceiptsBySenderId } from '../..';\n\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { BlockedMessage } from '../../types/ChatMessage';\n\n/**\n * @private\n *logic: Looking at message A, how do we know it's read number?\n * Assumption: if user read the latest message, user has read all messages before that\n * ReadReceipt behaviour: read receipt is only sent to the last message\n *\n * If participant read a message that is sent later than message A, then the participant has read message A\n * How do we check if the message is sent later than message A?\n * We compare if the messageID of the last read message is larger than or equal to the message A's id\n * Because messageID is the creation timestamp of each message\n * Timestamps are in epoch time so lecixographical ordering is the same as time ordering.\n *\n * if MessageId of B is larger than message Id of A, then B is created after A\n * if the last read message is created after the message A is sent, then user should have read message A as well */\nexport default (\n message: ChatMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage,\n readReceiptsBySenderId: ReadReceiptsBySenderId\n): { id: string; displayName: string }[] => {\n return (\n Object.entries(readReceiptsBySenderId)\n // Filter to only read receipts that match the message OR the participant has read a different message after this message has been created\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, readReceipt]) => readReceipt.lastReadMessage >= message.messageId)\n // make sure the person is not removed from chat\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, readReceipt]) => readReceipt.displayName && readReceipt.displayName !== '')\n // Map properties to useful array\n .map(([id, readReceipt]) => ({ id, displayName: readReceipt.displayName }))\n );\n};\n"]}
1
+ {"version":3,"file":"getParticipantsWhoHaveReadMessage.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/utils/getParticipantsWhoHaveReadMessage.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;mHAamH;AACnH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,OAAoB,EACpB,sBAA8C,EACP,EAAE;IACzC,OAAO,CACL,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACpC,0IAA0I;QAC1I,6DAA6D;SAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC;QAC/E,gDAAgD;QAChD,6DAA6D;SAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,EAAE,CAAC;QACxF,iCAAiC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAC9E,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { ChatMessage, ReadReceiptsBySenderId } from '../..';\n\n/**\n * @private\n *logic: Looking at message A, how do we know it's read number?\n * Assumption: if user read the latest message, user has read all messages before that\n * ReadReceipt behaviour: read receipt is only sent to the last message\n *\n * If participant read a message that is sent later than message A, then the participant has read message A\n * How do we check if the message is sent later than message A?\n * We compare if the messageID of the last read message is larger than or equal to the message A's id\n * Because messageID is the creation timestamp of each message\n * Timestamps are in epoch time so lecixographical ordering is the same as time ordering.\n *\n * if MessageId of B is larger than message Id of A, then B is created after A\n * if the last read message is created after the message A is sent, then user should have read message A as well */\nexport const getParticipantsWhoHaveReadMessage = (\n message: ChatMessage,\n readReceiptsBySenderId: ReadReceiptsBySenderId\n): { id: string; displayName: string }[] => {\n return (\n Object.entries(readReceiptsBySenderId)\n // Filter to only read receipts that match the message OR the participant has read a different message after this message has been created\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, readReceipt]) => readReceipt.lastReadMessage >= message.messageId)\n // make sure the person is not removed from chat\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, readReceipt]) => readReceipt.displayName && readReceipt.displayName !== '')\n // Map properties to useful array\n .map(([id, readReceipt]) => ({ id, displayName: readReceipt.displayName }))\n );\n};\n"]}
@@ -8,5 +8,4 @@ export * from './theming';
8
8
  export { _PermissionsProvider, presenterPermissions, consumerPermissions, _usePermissions, _getPermissions } from './permissions';
9
9
  export type { _Permissions, _PermissionsProviderProps, Role } from './permissions';
10
10
  export type { BaseCustomStyles, CallParticipantListParticipant, ChatMessage, CommunicationParticipant, ContentSystemMessage, CreateVideoStreamViewResult, CustomAvatarOptions, CustomMessage, Message, MessageAttachedStatus, MessageCommon, MessageContentType, OnRenderAvatarCallback, ParticipantAddedSystemMessage, ParticipantListParticipant, ParticipantRemovedSystemMessage, ParticipantState, ReadReceiptsBySenderId, SystemMessage, SystemMessageCommon, TopicUpdatedSystemMessage, VideoGalleryLocalParticipant, VideoGalleryParticipant, VideoGalleryRemoteParticipant, VideoGalleryStream, VideoStreamOptions, ViewScalingMode } from './types';
11
- export type { BlockedMessage } from './types';
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,WAAW,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,eAAe,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from './components';\nexport { _IdentifierProvider } from './identifiers';\nexport type { _Identifiers, _IdentifierProviderProps } from './identifiers';\nexport * from './localization/locales';\nexport { LocalizationProvider } from './localization';\nexport type { ComponentStrings, ComponentLocale, LocalizationProviderProps } from './localization';\nexport * from './theming';\n\n/* @conditional-compile-remove(rooms) */\nexport {\n _PermissionsProvider,\n presenterPermissions,\n consumerPermissions,\n _usePermissions,\n _getPermissions\n} from './permissions';\n/* @conditional-compile-remove(rooms) */\nexport type { _Permissions, _PermissionsProviderProps, Role } from './permissions';\n\nexport type {\n BaseCustomStyles,\n CallParticipantListParticipant,\n ChatMessage,\n CommunicationParticipant,\n ContentSystemMessage,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n OnRenderAvatarCallback,\n ParticipantAddedSystemMessage,\n ParticipantListParticipant,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ReadReceiptsBySenderId,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoStreamOptions,\n ViewScalingMode\n} from './types';\n\n/* @conditional-compile-remove(data-loss-prevention) */\nexport type { BlockedMessage } from './types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../react-components/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,WAAW,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,eAAe,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from './components';\nexport { _IdentifierProvider } from './identifiers';\nexport type { _Identifiers, _IdentifierProviderProps } from './identifiers';\nexport * from './localization/locales';\nexport { LocalizationProvider } from './localization';\nexport type { ComponentStrings, ComponentLocale, LocalizationProviderProps } from './localization';\nexport * from './theming';\n\n/* @conditional-compile-remove(rooms) */\nexport {\n _PermissionsProvider,\n presenterPermissions,\n consumerPermissions,\n _usePermissions,\n _getPermissions\n} from './permissions';\n/* @conditional-compile-remove(rooms) */\nexport type { _Permissions, _PermissionsProviderProps, Role } from './permissions';\n\nexport type {\n BaseCustomStyles,\n CallParticipantListParticipant,\n ChatMessage,\n CommunicationParticipant,\n ContentSystemMessage,\n CreateVideoStreamViewResult,\n CustomAvatarOptions,\n CustomMessage,\n Message,\n MessageAttachedStatus,\n MessageCommon,\n MessageContentType,\n OnRenderAvatarCallback,\n ParticipantAddedSystemMessage,\n ParticipantListParticipant,\n ParticipantRemovedSystemMessage,\n ParticipantState,\n ReadReceiptsBySenderId,\n SystemMessage,\n SystemMessageCommon,\n TopicUpdatedSystemMessage,\n VideoGalleryLocalParticipant,\n VideoGalleryParticipant,\n VideoGalleryRemoteParticipant,\n VideoGalleryStream,\n VideoStreamOptions,\n ViewScalingMode\n} from './types';\n"]}
@@ -5,8 +5,7 @@
5
5
  "removeButtonLabel": "Entfernen",
6
6
  "sharingIconLabel": "Teilen",
7
7
  "mutedIconLabel": "Stumm geschaltet",
8
- "displayNamePlaceholder": "Unbenannter Teilnehmer",
9
- "participantStateConnecting": "Anrufen...",
8
+ "displayNamePlaceholder": "Teilnehmer ohne Namen",
10
9
  "participantStateRinging": "Anrufen...",
11
10
  "participantStateHold": "In der Warteschleife"
12
11
  },
@@ -54,7 +53,10 @@
54
53
  "onSplitButtonAriaLabel": "Kamera und Kameraoptionen deaktivieren",
55
54
  "offSplitButtonAriaLabel": "Kamera und Kameraoptionen aktivieren",
56
55
  "cameraActionTurnedOnAnnouncement": "Ihre Kamera wurde eingeschaltet.",
57
- "cameraActionTurnedOffAnnouncement": "Ihre Kamera wurde ausgeschaltet."
56
+ "cameraActionTurnedOffAnnouncement": "Ihre Kamera wurde ausgeschaltet.",
57
+ "onSplitButtonPrimaryActionCamera": "Kamera ausschalten",
58
+ "offSplitButtonPrimaryActionCamera": "Kamera einschalten",
59
+ "cameraPrimaryActionSplitButtonTitle": "Kamera verwenden"
58
60
  },
59
61
  "microphoneButton": {
60
62
  "onLabel": "Stumm schalten",
@@ -70,7 +72,10 @@
70
72
  "onSplitButtonAriaLabel": "Mikrofon- und Audiooptionen stummschalten",
71
73
  "offSplitButtonAriaLabel": "Stummschaltung von Mikrofon- und Audiooptionen aufheben",
72
74
  "microphoneActionTurnedOnAnnouncement": "Ihr Mikrofon wurde eingeschaltet.",
73
- "microphoneActionTurnedOffAnnouncement": "Ihr Mikrofon wurde ausgeschaltet."
75
+ "microphoneActionTurnedOffAnnouncement": "Ihr Mikrofon wurde ausgeschaltet.",
76
+ "offSplitButtonMicrophonePrimaryAction": "Mikrofonstummschaltung aufheben",
77
+ "onSplitButtonMicrophonePrimaryAction": "Mikrofon stummschalten",
78
+ "micPrimaryActionSplitButtonTitle": "Mikrofon verwenden"
74
79
  },
75
80
  "devicesButton": {
76
81
  "label": "Geräte",
@@ -90,7 +95,8 @@
90
95
  "menuHeader": "In diesem Anruf",
91
96
  "participantsListButtonLabel": "{numParticipants} Personen",
92
97
  "muteAllButtonLabel": "Alle stumm schalten",
93
- "copyInviteLinkButtonLabel": "Einladungslink kopieren"
98
+ "copyInviteLinkButtonLabel": "Einladungslink kopieren",
99
+ "copyInviteLinkActionedAriaLabel": "Einladungslink kopiert"
94
100
  },
95
101
  "screenShareButton": {
96
102
  "onLabel": "Präsentation beenden",
@@ -146,11 +152,13 @@
146
152
  "callNoSpeakerFound": "Keine Lautsprecher oder Kopfhörer gefunden. Schließen Sie ein Audiogerät an, um den Anruf zu hören.",
147
153
  "callNoMicrophoneFound": "Es wurden keine Mikrofone gefunden. Schließen Sie ein Audioeingabegerät an.",
148
154
  "callMicrophoneAccessDenied": "Auf das Mikrofon kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",
155
+ "callMicrophoneAccessDeniedSafari": "Auf das Mikrofon kann nicht zugegriffen werden. Aktualisieren Sie die Seite, um Berechtigungen zuzulassen, oder überprüfen Sie die Einstellungen dieses Browsers, und stellen Sie sicher, dass die Berechtigungen für diese Website aktiviert sind.",
149
156
  "callMicrophoneMutedBySystem": "Sie werden von Ihrem System stummgeschaltet.",
150
157
  "callMicrophoneUnmutedBySystem": "Ihr Mikrofon wurde wiederhergestellt, und Ihr System hat die Stummschaltung aufgehoben.",
151
158
  "callMacOsMicrophoneAccessDenied": "Auf das Mikrofon kann nicht zugegriffen werden. Erteilen Sie die Mikrofonberechtigung in Ihren macOS-Datenschutzeinstellungen.",
152
159
  "callLocalVideoFreeze": "Die Netzwerkbandbreite ist schlecht. Ihr Video wird möglicherweise für andere Personen während des Anrufs angehalten angezeigt.",
153
160
  "callCameraAccessDenied": "Auf die Kamera kann nicht zugegriffen werden. Klicken Sie auf die Sperre in der Adressleiste, um dieser Webseite Berechtigungen zu erteilen.",
161
+ "callCameraAccessDeniedSafari": "Auf die Kamera kann nicht zugegriffen werden. Aktualisieren Sie die Seite, um Berechtigungen zuzulassen, oder überprüfen Sie die Einstellungen dieses Browsers, und stellen Sie sicher, dass die Berechtigungen für diese Website aktiviert sind.",
154
162
  "callCameraAlreadyInUse": "Auf die Kamera kann nicht zugegriffen werden. Sie wird möglicherweise bereits von einer anderen Anwendung verwendet.",
155
163
  "callVideoStoppedBySystem": "Ihr Video wurde von Ihrem System beendet.",
156
164
  "callVideoRecoveredBySystem": "Ihr Video wurde fortgesetzt.",
@@ -158,7 +166,9 @@
158
166
  "callMacOsScreenShareAccessDenied": "MacOS blockiert die Bildschirmfreigabe. Aktualisieren Sie Ihre Datenschutzeinstellungen, damit dieser Browser Ihren Bildschirm aufzeichnen kann.",
159
167
  "dismissButtonAriaLabel": "Schließen",
160
168
  "failedToJoinCallGeneric": "Fehler bei der Teilnahme am Anruf.",
161
- "failedToJoinCallInvalidMeetingLink": "Teilnahme an Besprechung nicht möglich. Ungültiger Link."
169
+ "failedToJoinCallInvalidMeetingLink": "Teilnahme an Besprechung nicht möglich. Ungültiger Link.",
170
+ "startScreenSharingGeneric": "Beim Starten der Bildschirmfreigabe ist ein Problem aufgetreten.",
171
+ "cameraFrozenForRemoteParticipants": "Benutzer im Anruf haben Probleme, Ihr Video zu sehen. Überprüfen Sie Ihre Geräte und Ihr Netzwerk."
162
172
  },
163
173
  "videoGallery": {
164
174
  "screenIsBeingSharedMessage": "Sie teilen Ihren Bildschirm",
@@ -167,7 +177,16 @@
167
177
  "localVideoCameraSwitcherLabel": "Kamera wechseln",
168
178
  "localVideoMovementLabel": "Verschiebbare lokale Videokachel",
169
179
  "localVideoSelectedDescription": "{cameraName} ausgewählt",
170
- "displayNamePlaceholder": "Unbenannter Teilnehmer"
180
+ "displayNamePlaceholder": "Teilnehmer ohne Namen",
181
+ "fitRemoteParticipantToFrame": "An Rahmen anpassen",
182
+ "fillRemoteParticipantFrame": "Rahmen ausfüllen",
183
+ "pinParticipantForMe": "Für mich anheften",
184
+ "pinParticipantForMeLimitReached": "Anheften (Limit erreicht)",
185
+ "unpinParticipantForMe": "Lösen",
186
+ "pinParticipantMenuItemAriaLabel": "{participantName} anheften",
187
+ "unpinParticipantMenuItemAriaLabel": "{participantName} lösen",
188
+ "pinnedParticipantAnnouncementAriaLabel": "{participantName} angeheftet",
189
+ "unpinnedParticipantAnnouncementAriaLabel": "{participantName} gelöst"
171
190
  },
172
191
  "dialpad": {
173
192
  "placeholderText": "Telefonnummer eingeben",
@@ -180,20 +199,102 @@
180
199
  "tooltipOffContent": "Anruf halten"
181
200
  },
182
201
  "videoTile": {
183
- "participantStateConnecting": "Anrufen...",
184
202
  "participantStateRinging": "Anrufen...",
185
203
  "participantStateHold": "In der Warteschleife"
186
204
  },
187
- "SitePermissions": {
205
+ "CameraAndMicrophoneSitePermissionsRequest": {
188
206
  "primaryText": "Zulassen, dass {appName} Ihre Kamera und Ihr Mikrofon verwendet",
189
207
  "secondaryText": "So können die Teilnehmer Sie sehen und hören.",
190
208
  "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
191
- "primaryButtonText": "Zugriff erlauben"
209
+ "primaryButtonText": "Ohne Kamera und Mikrofon fortfahren",
210
+ "ariaLabel": "Zugriff auf Kamera und Mikrofon zulassen"
211
+ },
212
+ "CameraSitePermissionsRequest": {
213
+ "primaryText": "{appName} die Verwendung Ihrer Kamera erlauben",
214
+ "secondaryText": "So können die Teilnehmer Sie sehen.",
215
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
216
+ "primaryButtonText": "Ohne Kamera fortfahren",
217
+ "ariaLabel": "Kamerazugriff zulassen"
218
+ },
219
+ "MicrophoneSitePermissionsRequest": {
220
+ "primaryText": "{appName} die Verwendung Ihres Mikrofons erlauben",
221
+ "secondaryText": "So können die Teilnehmer Sie hören.",
222
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
223
+ "primaryButtonText": "Ohne Mikrofon fortfahren",
224
+ "ariaLabel": "Mikrofonzugriff zulassen"
225
+ },
226
+ "CameraAndMicrophoneSitePermissionsCheck": {
227
+ "primaryText": "Überprüfen des Kamera- und Mikrofonzugriffs",
228
+ "secondaryText": "Zugriff bei Aufforderung zulassen. Dies ist so, dass Teilnehmer Sie sehen und hören können.",
229
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
230
+ "primaryButtonText": "Ohne Kamera und Mikrofon fortfahren",
231
+ "ariaLabel": "Überprüfen des Kamera- und Mikrofonzugriffs. Erlauben Sie den Zugriff, wenn Sie aufgefordert werden."
232
+ },
233
+ "CameraSitePermissionsCheck": {
234
+ "primaryText": "Überprüfung des Kamerazugriffs",
235
+ "secondaryText": "Zugriff bei Aufforderung zulassen. Dies ist so, dass Teilnehmer Sie sehen können.",
236
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
237
+ "primaryButtonText": "Ohne Kamera fortfahren",
238
+ "ariaLabel": "Überprüfen des Kamerazugriffs. Erlauben Sie den Zugriff, wenn Sie aufgefordert werden."
239
+ },
240
+ "MicrophoneSitePermissionsCheck": {
241
+ "primaryText": "Überprüfen des Mikrofonzugriffs",
242
+ "secondaryText": "Zugriff bei Aufforderung zulassen. Dies ist so, dass Teilnehmer Sie hören können.",
243
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung",
244
+ "primaryButtonText": "Ohne Mikrofon fortfahren",
245
+ "ariaLabel": "Der Mikrofonzugriff wird überprüft. Erlauben Sie den Zugriff, wenn Sie aufgefordert werden."
246
+ },
247
+ "CameraAndMicrophoneSitePermissionsDenied": {
248
+ "primaryText": "Auf Kamera und Mikrofon kann nicht zugegriffen werden",
249
+ "secondaryText": "Klicken Sie auf das Schlosssymbol in der Adressleiste, um dieser Webseite Mikrofonberechtigungen zu erteilen. Möglicherweise ist eine Seitenaktualisierung erforderlich.",
250
+ "primaryButtonText": "Ohne Kamera und Mikrofon fortfahren",
251
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
252
+ },
253
+ "CameraAndMicrophoneSitePermissionsDeniedSafari": {
254
+ "primaryText": "Auf Kamera und Mikrofon kann nicht zugegriffen werden",
255
+ "secondaryText": "Aktualisieren Sie die Seite, um Berechtigungen zuzulassen, oder überprüfen Sie die Einstellungen dieses Browsers und stellen Sie sicher, dass die Berechtigungen für diese Website aktiviert sind.",
256
+ "primaryButtonText": "Ohne Kamera und Mikrofon fortfahren",
257
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
258
+ },
259
+ "CameraSitePermissionsDenied": {
260
+ "primaryText": "Auf die Kamera kann nicht zugegriffen werden",
261
+ "secondaryText": "Klicken Sie auf das Schlosssymbol in der Adressleiste, um dieser Webseite Kameraberechtigungen zu erteilen. Möglicherweise ist eine Seitenaktualisierung erforderlich.",
262
+ "primaryButtonText": "Ohne Kamera fortfahren",
263
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
264
+ },
265
+ "MicrophoneSitePermissionsDenied": {
266
+ "primaryText": "Auf das Mikrofon kann nicht zugegriffen werden",
267
+ "secondaryText": "Klicken Sie auf das Schlosssymbol in der Adressleiste, um dieser Webseite Mikrofonberechtigungen zu erteilen. Möglicherweise ist eine Seitenaktualisierung erforderlich.",
268
+ "primaryButtonText": "Ohne Mikrofon fortfahren",
269
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
270
+ },
271
+ "CameraSitePermissionsDeniedSafari": {
272
+ "primaryText": "Auf die Kamera kann nicht zugegriffen werden",
273
+ "secondaryText": "Aktualisieren Sie die Seite, um Berechtigungen zuzulassen, oder überprüfen Sie die Einstellungen dieses Browsers und stellen Sie sicher, dass die Berechtigungen für diese Website aktiviert sind.",
274
+ "primaryButtonText": "Ohne Kamera fortfahren",
275
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
276
+ },
277
+ "MicrophoneSitePermissionsDeniedSafari": {
278
+ "primaryText": "Auf das Mikrofon kann nicht zugegriffen werden",
279
+ "secondaryText": "Aktualisieren Sie die Seite, um Berechtigungen zuzulassen, oder überprüfen Sie die Einstellungen dieses Browsers und stellen Sie sicher, dass die Berechtigungen für diese Website aktiviert sind.",
280
+ "primaryButtonText": "Ohne Mikrofon fortfahren",
281
+ "linkText": "Benötigen Sie Hilfe? Hilfe zur Problembehandlung"
192
282
  },
193
283
  "UnsupportedBrowser": {
194
284
  "primaryText": "Der Browser wird nicht unterstützt.",
195
285
  "secondaryText": "Bitte nehmen Sie über einen kompatiblen Browser an diesem Anruf teil.",
196
- "moreHelpLink": "Weitere Hilfe"
286
+ "moreHelpLinkText": "Kompatibilitätsanforderungen anzeigen"
287
+ },
288
+ "UnsupportedBrowserVersion": {
289
+ "primaryText": "Browserupdate erforderlich",
290
+ "secondaryText": "Um einen optimalen Anruf zu gewährleisten, aktualisieren Sie Ihren Browser, und versuchen Sie dann erneut, an dem Anruf teilzunehmen.",
291
+ "moreHelpLinkText": "Kompatibilitätsanforderungen anzeigen",
292
+ "continueAnywayButtonText": "Anruf ohne Aktualisierung starten"
293
+ },
294
+ "UnsupportedOperatingSystem": {
295
+ "primaryText": "Das Betriebssystem wird nicht unterstützt.",
296
+ "secondaryText": "Nehmen Sie an diesem Anruf teil, indem Sie ein Gerät mit einem kompatiblen Betriebssystem verwenden.",
297
+ "moreHelpLinkText": "Kompatibilitätsanforderungen anzeigen"
197
298
  },
198
299
  "BrowserPermissionDenied": {
199
300
  "primaryText": "Kamera oder Mikrofon kann nicht verwendet werden",
@@ -215,5 +316,9 @@
215
316
  "step2DigitText": "2",
216
317
  "step3DigitText": "3",
217
318
  "step4DigitText": "4"
319
+ },
320
+ "VerticalGallery": {
321
+ "leftNavButtonAriaLabel": "Vorherige Seite",
322
+ "rightNavButtonAriaLabel": "Nächste Seite"
218
323
  }
219
324
  }
@@ -6,7 +6,6 @@
6
6
  "sharingIconLabel": "Sharing",
7
7
  "mutedIconLabel": "Muted",
8
8
  "displayNamePlaceholder": "Unnamed participant",
9
- "participantStateConnecting": "Calling...",
10
9
  "participantStateRinging": "Calling...",
11
10
  "participantStateHold": "On hold"
12
11
  },
@@ -54,7 +53,10 @@
54
53
  "onSplitButtonAriaLabel": "Turn off camera and camera options",
55
54
  "offSplitButtonAriaLabel": "Turn on camera and camera options",
56
55
  "cameraActionTurnedOnAnnouncement": "Your camera has been turned on",
57
- "cameraActionTurnedOffAnnouncement": "Your camera has been turned off"
56
+ "cameraActionTurnedOffAnnouncement": "Your camera has been turned off",
57
+ "onSplitButtonPrimaryActionCamera": "Turn off camera",
58
+ "offSplitButtonPrimaryActionCamera": "Turn on camera",
59
+ "cameraPrimaryActionSplitButtonTitle": "Use camera"
58
60
  },
59
61
  "microphoneButton": {
60
62
  "onLabel": "Mute",
@@ -70,7 +72,10 @@
70
72
  "onSplitButtonAriaLabel": "Mute microphone and audio options",
71
73
  "offSplitButtonAriaLabel": "Unmute microphone and audio options",
72
74
  "microphoneActionTurnedOnAnnouncement": "Your microphone has been turned on",
73
- "microphoneActionTurnedOffAnnouncement": "Your microphone has been turned off"
75
+ "microphoneActionTurnedOffAnnouncement": "Your microphone has been turned off",
76
+ "offSplitButtonMicrophonePrimaryAction": "Unmute microphone",
77
+ "onSplitButtonMicrophonePrimaryAction": "Mute microphone",
78
+ "micPrimaryActionSplitButtonTitle": "Use microphone"
74
79
  },
75
80
  "devicesButton": {
76
81
  "label": "Devices",
@@ -90,7 +95,8 @@
90
95
  "menuHeader": "In this call",
91
96
  "participantsListButtonLabel": "{numParticipants} people",
92
97
  "muteAllButtonLabel": "Mute all",
93
- "copyInviteLinkButtonLabel": "Copy invite link"
98
+ "copyInviteLinkButtonLabel": "Copy invite link",
99
+ "copyInviteLinkActionedAriaLabel": "Invite link copied"
94
100
  },
95
101
  "screenShareButton": {
96
102
  "onLabel": "Stop presenting",
@@ -146,11 +152,13 @@
146
152
  "callNoSpeakerFound": "No speakers or headphones found. Connect an audio device to hear the call.",
147
153
  "callNoMicrophoneFound": "No microphones found. Connect an audio input device.",
148
154
  "callMicrophoneAccessDenied": "Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",
155
+ "callMicrophoneAccessDeniedSafari": "Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
149
156
  "callMicrophoneMutedBySystem": "You are muted by your system.",
150
157
  "callMicrophoneUnmutedBySystem": "Your microphone recovered and you were unmuted by your system.",
151
158
  "callMacOsMicrophoneAccessDenied": "Unable to access microphone. Grant microphone permission in your macOS privacy settings.",
152
159
  "callLocalVideoFreeze": "Network bandwidth is poor. Your video may appear paused for others on the call.",
153
160
  "callCameraAccessDenied": "Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",
161
+ "callCameraAccessDeniedSafari": "Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
154
162
  "callCameraAlreadyInUse": "Unable to access camera. It may already be in use by another application.",
155
163
  "callVideoStoppedBySystem": "Your video has been stopped by your system.",
156
164
  "callVideoRecoveredBySystem": "Your video has resumed.",
@@ -158,7 +166,9 @@
158
166
  "callMacOsScreenShareAccessDenied": "MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",
159
167
  "dismissButtonAriaLabel": "Close",
160
168
  "failedToJoinCallGeneric": "Failed to join call.",
161
- "failedToJoinCallInvalidMeetingLink": "Unable to join Meeting. Invalid Link."
169
+ "failedToJoinCallInvalidMeetingLink": "Unable to join Meeting. Invalid Link.",
170
+ "startScreenSharingGeneric": "There was an issue starting screen share.",
171
+ "cameraFrozenForRemoteParticipants": "Users in the call are having issues seeing your video. Please check your devices and network."
162
172
  },
163
173
  "videoGallery": {
164
174
  "screenIsBeingSharedMessage": "You are sharing your screen",
@@ -167,7 +177,16 @@
167
177
  "localVideoCameraSwitcherLabel": "Switch camera",
168
178
  "localVideoMovementLabel": "Movable Local Video Tile",
169
179
  "localVideoSelectedDescription": "{cameraName} selected",
170
- "displayNamePlaceholder": "Unnamed participant"
180
+ "displayNamePlaceholder": "Unnamed participant",
181
+ "fitRemoteParticipantToFrame": "Fit to frame",
182
+ "fillRemoteParticipantFrame": "Fill frame",
183
+ "pinParticipantForMe": "Pin for me",
184
+ "pinParticipantForMeLimitReached": "Pin (limit reached)",
185
+ "unpinParticipantForMe": "Unpin",
186
+ "pinParticipantMenuItemAriaLabel": "Pin {participantName}",
187
+ "unpinParticipantMenuItemAriaLabel": "Unpin {participantName}",
188
+ "pinnedParticipantAnnouncementAriaLabel": "Pinned {participantName}",
189
+ "unpinnedParticipantAnnouncementAriaLabel": "Unpinned {participantName}"
171
190
  },
172
191
  "dialpad": {
173
192
  "placeholderText": "Enter phone number",
@@ -180,20 +199,102 @@
180
199
  "tooltipOffContent": "Hold call"
181
200
  },
182
201
  "videoTile": {
183
- "participantStateConnecting": "Calling...",
184
202
  "participantStateRinging": "Calling...",
185
203
  "participantStateHold": "On hold"
186
204
  },
187
- "SitePermissions": {
205
+ "CameraAndMicrophoneSitePermissionsRequest": {
188
206
  "primaryText": "Allow {appName} to use your camera and microphone",
189
207
  "secondaryText": "This is so participants can see and hear you.",
190
208
  "linkText": "Need help? Get troubleshooting help",
191
- "primaryButtonText": "Allow Access"
209
+ "primaryButtonText": "Continue without camera and microphone",
210
+ "ariaLabel": "Allow camera and microphone access"
211
+ },
212
+ "CameraSitePermissionsRequest": {
213
+ "primaryText": "Allow {appName} to use your camera",
214
+ "secondaryText": "This is so participants can see you.",
215
+ "linkText": "Need help? Get troubleshooting help",
216
+ "primaryButtonText": "Continue without camera",
217
+ "ariaLabel": "Allow camera access"
218
+ },
219
+ "MicrophoneSitePermissionsRequest": {
220
+ "primaryText": "Allow {appName} to use your microphone",
221
+ "secondaryText": "This is so participants can hear you.",
222
+ "linkText": "Need help? Get troubleshooting help",
223
+ "primaryButtonText": "Continue without microphone",
224
+ "ariaLabel": "Allow microphone access"
225
+ },
226
+ "CameraAndMicrophoneSitePermissionsCheck": {
227
+ "primaryText": "Checking for camera and microphone access",
228
+ "secondaryText": "Allow access if prompted. This is so participants can see and hear you.",
229
+ "linkText": "Need help? Get troubleshooting help",
230
+ "primaryButtonText": "Continue without camera and microphone",
231
+ "ariaLabel": "Checking for camera and microphone access. Allow access if prompted."
232
+ },
233
+ "CameraSitePermissionsCheck": {
234
+ "primaryText": "Checking for camera access",
235
+ "secondaryText": "Allow access if prompted. This is so participants can see you.",
236
+ "linkText": "Need help? Get troubleshooting help",
237
+ "primaryButtonText": "Continue without camera",
238
+ "ariaLabel": "Checking for camera access. Allow access if prompted."
239
+ },
240
+ "MicrophoneSitePermissionsCheck": {
241
+ "primaryText": "Checking for microphone access",
242
+ "secondaryText": "Allow access if prompted. This is so participants can hear you.",
243
+ "linkText": "Need help? Get troubleshooting help",
244
+ "primaryButtonText": "Continue without microphone",
245
+ "ariaLabel": "Checking for microphone access. Allow access if prompted."
246
+ },
247
+ "CameraAndMicrophoneSitePermissionsDenied": {
248
+ "primaryText": "Unable to access camera and microphone",
249
+ "secondaryText": "Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",
250
+ "primaryButtonText": "Continue without camera and microphone",
251
+ "linkText": "Need help? Get troubleshooting help"
252
+ },
253
+ "CameraAndMicrophoneSitePermissionsDeniedSafari": {
254
+ "primaryText": "Unable to access camera and microphone",
255
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
256
+ "primaryButtonText": "Continue without camera and microphone",
257
+ "linkText": "Need help? Get troubleshooting help"
258
+ },
259
+ "CameraSitePermissionsDenied": {
260
+ "primaryText": "Unable to access camera",
261
+ "secondaryText": "Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",
262
+ "primaryButtonText": "Continue without camera",
263
+ "linkText": "Need help? Get troubleshooting help"
264
+ },
265
+ "MicrophoneSitePermissionsDenied": {
266
+ "primaryText": "Unable to access microphone",
267
+ "secondaryText": "Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",
268
+ "primaryButtonText": "Continue without microphone",
269
+ "linkText": "Need help? Get troubleshooting help"
270
+ },
271
+ "CameraSitePermissionsDeniedSafari": {
272
+ "primaryText": "Unable to access camera",
273
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
274
+ "primaryButtonText": "Continue without camera",
275
+ "linkText": "Need help? Get troubleshooting help"
276
+ },
277
+ "MicrophoneSitePermissionsDeniedSafari": {
278
+ "primaryText": "Unable to access microphone",
279
+ "secondaryText": "Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",
280
+ "primaryButtonText": "Continue without microphone",
281
+ "linkText": "Need help? Get troubleshooting help"
192
282
  },
193
283
  "UnsupportedBrowser": {
194
284
  "primaryText": "Browser not supported",
195
285
  "secondaryText": "Please join this call using a compatible browser.",
196
- "moreHelpLink": "More help"
286
+ "moreHelpLinkText": "See compatibility requirements"
287
+ },
288
+ "UnsupportedBrowserVersion": {
289
+ "primaryText": "Browser update needed",
290
+ "secondaryText": "To ensure the best call possible, please update your browser and then try joining the call again.",
291
+ "moreHelpLinkText": "See compatibility requirements",
292
+ "continueAnywayButtonText": "Start call without updating"
293
+ },
294
+ "UnsupportedOperatingSystem": {
295
+ "primaryText": "Operating system not supported",
296
+ "secondaryText": "Please join this call using a device with a compatible operating system.",
297
+ "moreHelpLinkText": "See compatibility requirements"
197
298
  },
198
299
  "BrowserPermissionDenied": {
199
300
  "primaryText": "Can't use your camera or microphone",
@@ -215,5 +316,9 @@
215
316
  "step2DigitText": "2",
216
317
  "step3DigitText": "3",
217
318
  "step4DigitText": "4"
319
+ },
320
+ "VerticalGallery": {
321
+ "leftNavButtonAriaLabel": "previous page",
322
+ "rightNavButtonAriaLabel": "next page"
218
323
  }
219
324
  }
@@ -132,9 +132,7 @@
132
132
  "editBoxSubmitButton": "Submit",
133
133
  "messageReadCount": "Read by {messageReadByCount} of {remoteParticipantsCount}",
134
134
  "actionMenuMoreOptions": "More Options",
135
- "downloadFile": "Download file",
136
- "blockedWarningText": "This message was deleted due to organizational policy.",
137
- "blockedWarningLinkText": "Details"
135
+ "downloadFile": "Download file"
138
136
  },
139
137
  "errorBar": {
140
138
  "unableToReachChatService": "You are offline",