@azure/communication-react 1.22.0-beta.1 → 1.23.0-alpha-202412190017

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 (1219) hide show
  1. package/dist/communication-react.d.ts +828 -25
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CwxvsFHy.js → ChatMessageComponentAsRichTextEditBox-D2ei0WNw.js} +115 -41
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D2ei0WNw.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DMdQIGV5.js → RichTextSendBoxWrapper-LlHq8cir.js} +4 -2
  5. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-LlHq8cir.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/{index-D7R-o8dv.js → index-BQUPVlSA.js} +8041 -5485
  7. package/dist/dist-cjs/communication-react/index-BQUPVlSA.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +7 -1
  9. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/constants.js +1 -0
  15. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/dataConversion.js +1 -0
  18. package/dist/dist-esm/acs-ui-common/src/dataConversion.js.map +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/identifier.js +4 -1
  20. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  21. package/dist/dist-esm/acs-ui-common/src/index.js +3 -0
  22. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  23. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  24. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  25. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  26. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js +1 -1
  27. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js.map +1 -1
  28. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  29. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  30. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  31. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  32. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js +1 -4
  33. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js.map +1 -1
  34. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js +1 -4
  35. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js.map +1 -1
  36. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js +1 -4
  37. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js.map +1 -1
  38. package/dist/dist-esm/acs-ui-javascript-loaders/src/index.js.map +1 -1
  39. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js +6 -7
  40. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js.map +1 -1
  41. package/dist/dist-esm/acs-ui-javascript-loaders/src/utils.js +1 -1
  42. package/dist/dist-esm/acs-ui-javascript-loaders/src/utils.js.map +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +10 -5
  44. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +11 -0
  45. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +18 -8
  47. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  48. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.d.ts +18 -18
  49. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +12 -6
  50. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +20 -55
  52. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  53. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
  55. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +74 -9
  56. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +175 -65
  57. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  58. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +2 -2
  59. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  60. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +10 -7
  61. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  62. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +24 -9
  63. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  64. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  65. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  66. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +3 -2
  67. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +8 -1
  68. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  69. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  70. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.js +8 -2
  71. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.js.map +1 -1
  72. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +2 -3
  73. package/dist/dist-esm/calling-component-bindings/src/index.js +1 -1
  74. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  75. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +98 -62
  76. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  77. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +45 -12
  78. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  79. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  80. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  81. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js +6 -3
  82. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  83. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  84. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  85. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  86. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +18 -7
  87. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  88. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +2 -1
  89. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +14 -10
  90. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  91. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +6 -2
  92. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +48 -15
  93. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  94. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +32 -6
  95. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  97. package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js +15 -8
  98. package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js.map +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  100. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +65 -74
  101. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  102. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +106 -3
  103. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  104. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +15 -0
  105. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +194 -37
  106. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +7 -8
  108. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  109. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +99 -108
  110. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.d.ts +14 -0
  112. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js +207 -0
  113. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js.map +1 -0
  114. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  115. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  116. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +2 -0
  117. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +30 -8
  118. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  119. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.d.ts +1 -0
  120. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js +62 -0
  121. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
  122. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  123. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +6 -0
  124. package/dist/dist-esm/calling-stateful-client/src/Converter.js +32 -23
  125. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  126. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +58 -73
  127. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  128. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +14 -16
  129. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  130. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  131. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +9 -0
  132. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +53 -15
  133. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  134. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js +3 -0
  135. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js.map +1 -1
  136. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  137. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  138. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.d.ts +17 -0
  139. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js +29 -0
  140. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js.map +1 -0
  141. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +1 -3
  142. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  143. package/dist/dist-esm/calling-stateful-client/src/PPTLiveSubscriber.js.map +1 -1
  144. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  145. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  146. package/dist/dist-esm/calling-stateful-client/src/ReactionSubscriber.js.map +1 -1
  147. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js +6 -1
  148. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  149. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  150. package/dist/dist-esm/calling-stateful-client/src/SpotlightSubscriber.js.map +1 -1
  151. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +3 -2
  152. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +71 -64
  153. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  154. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +42 -24
  155. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  156. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +8 -11
  157. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  158. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  159. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +8 -8
  160. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  161. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js +14 -16
  162. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +1 -1
  163. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.d.ts +24 -0
  164. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js +71 -0
  165. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js.map +1 -0
  166. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.d.ts +18 -0
  167. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js +34 -0
  168. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js.map +1 -0
  169. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  170. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  171. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.d.ts +1 -0
  172. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +34 -3
  173. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  174. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +6 -7
  175. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  176. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +3 -0
  177. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  178. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  179. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js +4 -4
  180. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  181. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +2 -2
  182. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  183. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js +15 -15
  184. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  185. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  186. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +30 -12
  187. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  188. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  189. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js +1 -0
  190. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  191. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  192. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  193. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +44 -17
  194. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  195. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  196. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js +1 -1
  197. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  198. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  199. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +3 -7
  200. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  201. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js +3 -7
  202. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  203. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  204. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js +5 -2
  205. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js.map +1 -1
  206. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +10 -3
  207. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  208. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -1
  209. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  210. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +16 -22
  211. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  212. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  213. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +9 -11
  214. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  215. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  216. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js +4 -16
  217. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js.map +1 -1
  218. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js +57 -67
  219. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  220. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +114 -128
  221. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  222. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  223. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  224. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  225. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  226. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  227. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  228. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  229. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  230. package/dist/dist-esm/communication-react/src/api-summary.js.map +1 -1
  231. package/dist/dist-esm/communication-react/src/index.d.ts +16 -2
  232. package/dist/dist-esm/communication-react/src/index.js +15 -0
  233. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  234. package/dist/dist-esm/communication-react/src/javascript-loaders.js.map +1 -1
  235. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  236. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +3 -6
  237. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  238. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  240. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +4 -10
  241. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  242. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +1 -1
  243. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  244. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +1 -1
  245. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/components/Announcer.js +1 -1
  247. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +11 -11
  249. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
  250. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js +1 -1
  251. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js.map +1 -1
  252. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +14 -6
  253. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
  254. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js +21 -18
  255. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js.map +1 -1
  256. package/dist/dist-esm/react-components/src/components/CameraButton.js +13 -20
  257. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  258. package/dist/dist-esm/react-components/src/components/Caption.d.ts +2 -2
  259. package/dist/dist-esm/react-components/src/components/Caption.js +2 -2
  260. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +42 -11
  262. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +19 -11
  263. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  264. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.d.ts +86 -17
  265. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +54 -25
  266. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  267. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +2 -5
  268. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  269. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +37 -22
  270. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -1
  272. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js +25 -25
  273. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  274. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +36 -32
  275. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  276. package/dist/dist-esm/react-components/src/components/ChatMessage/DefaultSystemMessage.js +9 -5
  277. package/dist/dist-esm/react-components/src/components/ChatMessage/DefaultSystemMessage.js.map +1 -1
  278. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js +1 -1
  279. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -1
  280. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -1
  281. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +35 -9
  282. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  283. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.d.ts +1 -1
  284. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +46 -12
  285. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +42 -37
  287. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +7 -0
  289. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +13 -2
  290. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  291. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +121 -39
  292. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  293. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +1 -1
  294. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +47 -12
  295. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -1
  297. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +45 -12
  298. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  299. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +80 -15
  300. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  301. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +18 -18
  302. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  303. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +7 -4
  304. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  305. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +2 -2
  306. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  307. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  308. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  309. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  310. package/dist/dist-esm/react-components/src/components/ControlBar.js +10 -14
  311. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  312. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +14 -4
  313. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  314. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +5 -16
  315. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  316. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +11 -10
  317. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  318. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +22 -31
  319. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  320. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +15 -14
  321. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  322. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +41 -6
  323. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  324. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +12 -20
  325. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  326. package/dist/dist-esm/react-components/src/components/DevicesButton.js +19 -27
  327. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  328. package/dist/dist-esm/react-components/src/components/Dialpad/DTMFToneGenerator.js +12 -48
  329. package/dist/dist-esm/react-components/src/components/Dialpad/DTMFToneGenerator.js.map +1 -1
  330. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +45 -51
  331. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  332. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +4 -4
  333. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  334. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js +2 -6
  335. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  336. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +11 -9
  337. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  338. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +11 -23
  339. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  340. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +6 -4
  341. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  342. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js +11 -5
  343. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js.map +1 -1
  344. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  345. package/dist/dist-esm/react-components/src/components/EndCallButton.js +12 -13
  346. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  347. package/dist/dist-esm/react-components/src/components/ErrorBar.js +9 -5
  348. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  349. package/dist/dist-esm/react-components/src/components/ErrorBoundary.js +2 -6
  350. package/dist/dist-esm/react-components/src/components/ErrorBoundary.js.map +1 -1
  351. package/dist/dist-esm/react-components/src/components/GridLayout.js +37 -37
  352. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  353. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
  354. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  355. package/dist/dist-esm/react-components/src/components/HoldButton.js +1 -1
  356. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +7 -9
  358. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  359. package/dist/dist-esm/react-components/src/components/ImageOverlay.d.ts +4 -0
  360. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +13 -14
  361. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.js +26 -39
  363. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.js.map +1 -1
  364. package/dist/dist-esm/react-components/src/components/IncomingCallStack.js +5 -7
  365. package/dist/dist-esm/react-components/src/components/IncomingCallStack.js.map +1 -1
  366. package/dist/dist-esm/react-components/src/components/InputBoxButton.js +3 -10
  367. package/dist/dist-esm/react-components/src/components/InputBoxButton.js.map +1 -1
  368. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +8 -7
  369. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  370. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js +3 -5
  371. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  372. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +39 -22
  373. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +15 -23
  375. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  376. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js +4 -12
  377. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js.map +1 -1
  378. package/dist/dist-esm/react-components/src/components/MentionPopover.js +20 -13
  379. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  380. package/dist/dist-esm/react-components/src/components/MessageStatusIcon.js +2 -2
  381. package/dist/dist-esm/react-components/src/components/MessageStatusIcon.js.map +1 -1
  382. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  383. package/dist/dist-esm/react-components/src/components/MessageStatusIndicatorInternal.js +20 -33
  384. package/dist/dist-esm/react-components/src/components/MessageStatusIndicatorInternal.js.map +1 -1
  385. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +2 -2
  386. package/dist/dist-esm/react-components/src/components/MessageThread.js +106 -49
  387. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  388. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +16 -17
  389. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  390. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +94 -101
  391. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  392. package/dist/dist-esm/react-components/src/components/Notification.js +6 -14
  393. package/dist/dist-esm/react-components/src/components/Notification.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/NotificationStack.d.ts +6 -0
  395. package/dist/dist-esm/react-components/src/components/NotificationStack.js +13 -9
  396. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  397. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +15 -22
  398. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/ParticipantList.js +56 -50
  400. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  401. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +4 -0
  402. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +46 -32
  403. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  404. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js +3 -3
  405. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  406. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js +3 -3
  407. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/RTTDisclosureBanner.d.ts +28 -0
  409. package/dist/dist-esm/react-components/src/components/RTTDisclosureBanner.js +28 -0
  410. package/dist/dist-esm/react-components/src/components/RTTDisclosureBanner.js.map +1 -0
  411. package/dist/dist-esm/react-components/src/components/RTTModal.d.ts +39 -0
  412. package/dist/dist-esm/react-components/src/components/RTTModal.js +55 -0
  413. package/dist/dist-esm/react-components/src/components/RTTModal.js.map +1 -0
  414. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js +6 -12
  415. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/components/ReactionButton.js +24 -23
  417. package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
  418. package/dist/dist-esm/react-components/src/components/RealTimeText.d.ts +54 -0
  419. package/dist/dist-esm/react-components/src/components/RealTimeText.js +43 -0
  420. package/dist/dist-esm/react-components/src/components/RealTimeText.js.map +1 -0
  421. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +24 -16
  422. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  423. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +2 -2
  424. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  425. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +2 -2
  426. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  427. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js.map +1 -1
  428. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +25 -11
  429. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -1
  430. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.d.ts +9 -2
  431. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js +20 -2
  432. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js.map +1 -1
  433. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +2 -0
  434. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +14 -0
  435. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +1 -1
  436. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js +4 -2
  437. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js.map +1 -1
  439. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js +17 -3
  440. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js.map +1 -1
  441. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.d.ts +1 -0
  442. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js +13 -4
  443. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js.map +1 -1
  444. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +1 -0
  445. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +80 -29
  446. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  447. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +36 -11
  448. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  449. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +138 -32
  450. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  451. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +18 -16
  452. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  453. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +37 -26
  454. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
  455. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js +8 -10
  456. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js.map +1 -1
  457. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js +6 -3
  458. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js.map +1 -1
  459. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js +2 -2
  460. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js.map +1 -1
  461. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +6 -14
  462. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  463. package/dist/dist-esm/react-components/src/components/SendBox.js +70 -30
  464. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  465. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +17 -1
  466. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  467. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +3 -1
  468. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  469. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +10 -10
  470. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +8 -7
  471. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  472. package/dist/dist-esm/react-components/src/components/StreamMedia.js +14 -3
  473. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  474. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js +10 -3
  475. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js.map +1 -1
  476. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.styles.js.map +1 -1
  477. package/dist/dist-esm/react-components/src/components/Survey/SurveyTypes.js.map +1 -1
  478. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js +23 -23
  479. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js.map +1 -1
  480. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.styles.js.map +1 -1
  481. package/dist/dist-esm/react-components/src/components/SystemMessage.js +15 -6
  482. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  483. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +67 -22
  484. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  485. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +50 -48
  486. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  487. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +10 -10
  488. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  489. package/dist/dist-esm/react-components/src/components/TypingIndicator.js +9 -6
  490. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  491. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +2 -1
  492. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  493. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +2 -1
  494. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  495. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +9 -8
  496. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  497. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +2 -1
  498. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  499. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +19 -39
  500. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  501. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +3 -1
  502. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  503. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +9 -13
  504. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  505. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +8 -22
  506. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  507. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +6 -2
  508. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  509. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +19 -8
  510. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  511. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +15 -11
  512. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  513. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +40 -16
  514. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  515. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js +2 -2
  516. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js.map +1 -1
  517. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.d.ts +17 -0
  518. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +99 -0
  519. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -0
  520. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  521. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +4 -2
  522. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  523. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +6 -4
  524. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  525. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js +17 -11
  526. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -1
  527. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js +29 -24
  528. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -1
  529. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +8 -6
  530. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  531. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +2 -4
  532. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  533. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +34 -10
  534. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
  535. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +1 -6
  536. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  537. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +9 -34
  538. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  539. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +2 -11
  540. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  541. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  542. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  543. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -1
  544. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +1 -3
  545. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  546. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +10 -11
  547. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  548. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +22 -28
  549. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  550. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +11 -6
  551. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  552. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +38 -51
  553. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  554. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  555. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js.map +1 -1
  556. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +39 -31
  557. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  558. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +1 -1
  559. package/dist/dist-esm/react-components/src/components/VideoGallery.js +115 -26
  560. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  561. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +2 -0
  562. package/dist/dist-esm/react-components/src/components/VideoTile.js +51 -70
  563. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  564. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js +2 -2
  565. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  566. package/dist/dist-esm/react-components/src/components/index.d.ts +3 -0
  567. package/dist/dist-esm/react-components/src/components/index.js +12 -0
  568. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  569. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
  570. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js.map +1 -1
  571. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  572. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +8 -0
  573. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +31 -6
  574. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  575. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js +4 -2
  576. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  577. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +3 -10
  578. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  579. package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +0 -13
  580. package/dist/dist-esm/react-components/src/components/styles/Common.style.js +0 -13
  581. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  582. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  583. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  584. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  585. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  586. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  587. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.js +2 -5
  588. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.js.map +1 -1
  589. package/dist/dist-esm/react-components/src/components/styles/InputBoxButton.style.js.map +1 -1
  590. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +2 -5
  591. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  592. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
  593. package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js.map +1 -1
  594. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  595. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +5 -10
  596. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  597. package/dist/dist-esm/react-components/src/components/styles/Notification.styles.js.map +1 -1
  598. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +6 -4
  599. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  600. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  601. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.d.ts +6 -0
  602. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.js +17 -0
  603. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.js.map +1 -0
  604. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js +1 -3
  605. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
  606. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js +2 -2
  607. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js.map +1 -1
  608. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +12 -37
  609. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  610. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +8 -12
  611. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +1 -1
  612. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +2 -10
  613. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  614. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  615. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js.map +1 -1
  616. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +3 -6
  617. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  618. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  619. package/dist/dist-esm/react-components/src/components/styles/TeamsMeetingConferenceInfo.js.map +1 -1
  620. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +1 -2
  621. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  622. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  623. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  624. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +1 -2
  625. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  626. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +5 -19
  627. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  628. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +1 -1
  629. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  630. package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -1
  631. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +15 -4
  632. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  633. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +2 -2
  634. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +26 -10
  635. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
  636. package/dist/dist-esm/react-components/src/components/utils/Datetime.js +1 -4
  637. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  638. package/dist/dist-esm/react-components/src/components/utils/Logger.js.map +1 -1
  639. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +2 -1
  640. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +17 -8
  641. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +1 -1
  642. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js +26 -18
  643. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js.map +1 -1
  644. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +28 -12
  645. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  646. package/dist/dist-esm/react-components/src/components/utils/common.js +2 -0
  647. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  648. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  649. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  650. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +1 -1
  651. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +2 -5
  652. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  653. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  654. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  655. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  656. package/dist/dist-esm/react-components/src/components/utils/responsive.js +2 -2
  657. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  658. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +10 -1
  659. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  660. package/dist/dist-esm/react-components/src/components/utils.d.ts +2 -2
  661. package/dist/dist-esm/react-components/src/components/utils.js +46 -29
  662. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  663. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +8 -6
  664. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  665. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  666. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +2 -0
  667. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  668. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  669. package/dist/dist-esm/react-components/src/index.d.ts +3 -1
  670. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  671. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +25 -1
  672. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  673. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  674. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js.map +1 -1
  675. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +130 -3
  676. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js.map +1 -1
  677. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +130 -3
  678. package/dist/dist-esm/react-components/src/localization/locales/cy-GB/ComponentLocale.js.map +1 -1
  679. package/dist/dist-esm/react-components/src/localization/locales/cy-GB/strings.json +130 -3
  680. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js.map +1 -1
  681. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +130 -3
  682. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js.map +1 -1
  683. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +130 -3
  684. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +138 -3
  685. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js.map +1 -1
  686. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +130 -3
  687. package/dist/dist-esm/react-components/src/localization/locales/es-MX/ComponentLocale.js.map +1 -1
  688. package/dist/dist-esm/react-components/src/localization/locales/es-MX/strings.json +130 -3
  689. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js.map +1 -1
  690. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +130 -3
  691. package/dist/dist-esm/react-components/src/localization/locales/fr-CA/ComponentLocale.js.map +1 -1
  692. package/dist/dist-esm/react-components/src/localization/locales/fr-CA/strings.json +130 -3
  693. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js.map +1 -1
  694. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +130 -3
  695. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js.map +1 -1
  696. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +130 -3
  697. package/dist/dist-esm/react-components/src/localization/locales/index.js +1 -3
  698. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  699. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js.map +1 -1
  700. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +130 -3
  701. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js.map +1 -1
  702. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +130 -3
  703. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js.map +1 -1
  704. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +130 -3
  705. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js.map +1 -1
  706. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +130 -3
  707. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js.map +1 -1
  708. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +130 -3
  709. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js.map +1 -1
  710. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +130 -3
  711. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js.map +1 -1
  712. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +130 -3
  713. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js.map +1 -1
  714. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +130 -3
  715. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js.map +1 -1
  716. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +130 -3
  717. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js.map +1 -1
  718. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +130 -3
  719. package/dist/dist-esm/react-components/src/localization/locales/utils.js +1 -1
  720. package/dist/dist-esm/react-components/src/localization/locales/utils.js.map +1 -1
  721. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js.map +1 -1
  722. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +130 -3
  723. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js.map +1 -1
  724. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +130 -3
  725. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +3 -5
  726. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  727. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +2 -2
  728. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
  729. package/dist/dist-esm/react-components/src/theming/generateTheme.js +15 -1
  730. package/dist/dist-esm/react-components/src/theming/generateTheme.js.map +1 -1
  731. package/dist/dist-esm/react-components/src/theming/icons.d.ts +2 -0
  732. package/dist/dist-esm/react-components/src/theming/icons.js +76 -33
  733. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  734. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  735. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  736. package/dist/dist-esm/react-components/src/theming/themeDuplicates.js.map +1 -1
  737. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  738. package/dist/dist-esm/react-components/src/theming/themes.js +1 -0
  739. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  740. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -7
  741. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  742. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  743. package/dist/dist-esm/react-components/src/types/CallSurveyImprovementSuggestions.js.map +1 -1
  744. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.d.ts +4 -4
  745. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  746. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -1
  747. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  748. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  749. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  750. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  751. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  752. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +11 -0
  753. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  754. package/dist/dist-esm/react-components/src/types/ReactionTypes.js.map +1 -1
  755. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  756. package/dist/dist-esm/react-components/src/types/SurveyIssues.js.map +1 -1
  757. package/dist/dist-esm/react-components/src/types/SurveyIssuesHeadingStrings.js.map +1 -1
  758. package/dist/dist-esm/react-components/src/types/TogetherModeTypes.d.ts +38 -0
  759. package/dist/dist-esm/react-components/src/types/TogetherModeTypes.js +4 -0
  760. package/dist/dist-esm/react-components/src/types/TogetherModeTypes.js.map +1 -0
  761. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +8 -1
  762. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  763. package/dist/dist-esm/react-components/src/types/index.d.ts +1 -0
  764. package/dist/dist-esm/react-components/src/types/index.js +2 -0
  765. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  766. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  767. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +8 -1
  768. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +68 -50
  769. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  770. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  771. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +10 -5
  772. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +169 -63
  773. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  774. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +45 -1
  775. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +7 -1
  776. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  777. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  778. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +8 -3
  779. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  780. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  781. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +1 -3
  782. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  783. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  784. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +2 -2
  785. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  786. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  787. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.js +3 -3
  788. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.js.map +1 -1
  789. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.js +14 -9
  790. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.js.map +1 -1
  791. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +2 -0
  792. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +75 -40
  793. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  794. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +36 -60
  795. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  796. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +152 -135
  797. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  798. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +16 -20
  799. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  800. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +9 -7
  801. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  802. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +14 -4
  803. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  804. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +9 -7
  805. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  806. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +5 -4
  807. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  808. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +4 -4
  809. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  810. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +4 -4
  811. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  812. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +33 -22
  813. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  814. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +39 -23
  815. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  816. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +26 -30
  817. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  818. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +68 -41
  819. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  820. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js +2 -2
  821. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  822. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +12 -12
  823. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  824. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js +10 -32
  825. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js.map +1 -1
  826. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +29 -11
  827. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  828. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  829. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js +1 -1
  830. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useMeetingPhoneInfo.js.map +1 -1
  831. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +99 -69
  832. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  833. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +4 -4
  834. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  835. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +1 -1
  836. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  837. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SvgWithWordWrapping.js +3 -5
  838. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SvgWithWordWrapping.js.map +1 -1
  839. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +3 -1
  840. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  841. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +10 -7
  842. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  843. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +31 -15
  844. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  845. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +3 -1
  846. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  847. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +5 -2
  848. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  849. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -1
  850. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  851. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js +1 -1
  852. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  853. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js +1 -1
  854. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js.map +1 -1
  855. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -1
  856. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  857. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +5 -7
  858. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  859. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useCompositeStringsForNotificationStack.js +8 -1
  860. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useCompositeStringsForNotificationStack.js.map +1 -1
  861. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +42 -13
  862. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  863. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  864. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js +1 -1
  865. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  866. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  867. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  868. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -2
  869. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +11 -9
  870. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  871. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +87 -22
  872. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  873. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js +5 -13
  874. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js.map +1 -1
  875. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +14 -6
  876. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  877. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +17 -7
  878. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  879. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  880. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  881. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js +2 -2
  882. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js.map +1 -1
  883. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js +2 -2
  884. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js.map +1 -1
  885. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +20 -21
  886. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  887. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +16 -3
  888. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  889. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +2 -2
  890. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js +1 -1
  891. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  892. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +2 -1
  893. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  894. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +4 -0
  895. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  896. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +1 -1
  897. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  898. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +1 -1
  899. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +1 -4
  900. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -1
  901. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitySelector.d.ts +1 -1
  902. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitySelector.js +1 -1
  903. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitySelector.js.map +1 -1
  904. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +1 -1
  905. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  906. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +1 -1
  907. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js.map +1 -1
  908. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +2 -2
  909. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js +1 -1
  910. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  911. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +1 -1
  912. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +3 -1
  913. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  914. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.d.ts +1 -1
  915. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js +10 -4
  916. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js.map +1 -1
  917. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +4 -4
  918. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js +1 -1
  919. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  920. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +10 -10
  921. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +10 -2
  922. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  923. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +2 -2
  924. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +4 -4
  925. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  926. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +1 -1
  927. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +1 -1
  928. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  929. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +5 -5
  930. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +4 -4
  931. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  932. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +2 -2
  933. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js +1 -1
  934. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  935. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +5 -5
  936. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  937. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +1 -1
  938. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  939. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +2 -6
  940. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  941. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +41 -29
  942. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  943. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  944. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +1 -2
  945. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  946. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/DtmfDialpadPage.styles.js.map +1 -1
  947. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +2 -5
  948. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  949. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  950. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +2 -9
  951. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  952. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  953. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +2 -4
  954. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  955. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  956. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  957. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +1 -2
  958. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  959. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +6 -24
  960. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  961. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  962. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +1 -1
  963. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  964. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +2 -1
  965. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +37 -20
  966. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  967. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +19 -7
  968. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  969. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js +4 -2
  970. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  971. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +48 -30
  972. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  973. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  974. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js +15 -5
  975. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js.map +1 -1
  976. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/timerUtils.js +2 -2
  977. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/timerUtils.js.map +1 -1
  978. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js.map +1 -1
  979. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +96 -22
  980. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  981. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js +1 -1
  982. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  983. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js +9 -7
  984. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  985. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +6 -9
  986. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  987. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js +2 -2
  988. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  989. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  990. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +7 -2
  991. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +115 -38
  992. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  993. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +46 -3
  994. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  995. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +5 -0
  996. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +11 -0
  997. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  998. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -1
  999. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +8 -2
  1000. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  1001. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  1002. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  1003. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js +1 -1
  1004. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  1005. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +4 -1
  1006. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  1007. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js +1 -0
  1008. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  1009. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js +3 -5
  1010. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js.map +1 -1
  1011. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +9 -2
  1012. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  1013. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js +3 -5
  1014. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  1015. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +183 -90
  1016. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  1017. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +1 -1
  1018. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  1019. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +11 -7
  1020. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +1 -1
  1021. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +30 -22
  1022. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  1023. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  1024. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -2
  1025. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +47 -37
  1026. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  1027. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -2
  1028. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  1029. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  1030. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +12 -7
  1031. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
  1032. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +21 -6
  1033. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
  1034. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  1035. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js +1 -3
  1036. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  1037. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +17 -4
  1038. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  1039. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  1040. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +1 -1
  1041. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  1042. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  1043. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +2 -0
  1044. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  1045. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +3 -19
  1046. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  1047. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +9 -17
  1048. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  1049. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +24 -25
  1050. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  1051. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  1052. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.d.ts +1 -1
  1053. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js +8 -3
  1054. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js.map +1 -1
  1055. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +7 -3
  1056. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  1057. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +5 -14
  1058. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  1059. package/dist/dist-esm/react-composites/src/composites/common/{CaptionsBanner.d.ts → CallingCaptionsBanner.d.ts} +2 -2
  1060. package/dist/dist-esm/react-composites/src/composites/common/{CaptionsBanner.js → CallingCaptionsBanner.js} +20 -25
  1061. package/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsBanner.js.map +1 -0
  1062. package/dist/dist-esm/react-composites/src/composites/common/{CaptionsSettingsModal.d.ts → CallingCaptionsSettingsModal.d.ts} +2 -2
  1063. package/dist/dist-esm/react-composites/src/composites/common/{CaptionsSettingsModal.js → CallingCaptionsSettingsModal.js} +6 -9
  1064. package/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsSettingsModal.js.map +1 -0
  1065. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +9 -23
  1066. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  1067. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  1068. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js +3 -5
  1069. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js.map +1 -1
  1070. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +19 -26
  1071. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  1072. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js +1 -5
  1073. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  1074. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +86 -50
  1075. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  1076. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +39 -37
  1077. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  1078. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +111 -80
  1079. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  1080. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DtmfDialerButton.js +1 -1
  1081. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DtmfDialerButton.js.map +1 -1
  1082. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +1 -1
  1083. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  1084. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/Timer.js +2 -4
  1085. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/Timer.js.map +1 -1
  1086. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  1087. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js +5 -7
  1088. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js.map +1 -1
  1089. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +5 -0
  1090. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +102 -136
  1091. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  1092. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  1093. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +2 -0
  1094. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  1095. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js +5 -7
  1096. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js.map +1 -1
  1097. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  1098. package/dist/dist-esm/react-composites/src/composites/common/ExitSpotlightButton.js +1 -1
  1099. package/dist/dist-esm/react-composites/src/composites/common/ExitSpotlightButton.js.map +1 -1
  1100. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +1 -1
  1101. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -1
  1102. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +11 -9
  1103. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  1104. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +23 -12
  1105. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  1106. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  1107. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  1108. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +15 -16
  1109. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  1110. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +14 -10
  1111. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  1112. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +4 -0
  1113. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +1 -1
  1114. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +7 -0
  1115. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +26 -8
  1116. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  1117. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +7 -15
  1118. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  1119. package/dist/dist-esm/react-composites/src/composites/common/StarSurvey.js.map +1 -1
  1120. package/dist/dist-esm/react-composites/src/composites/common/Survey.js +19 -34
  1121. package/dist/dist-esm/react-composites/src/composites/common/Survey.js.map +1 -1
  1122. package/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js +2 -2
  1123. package/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js.map +1 -1
  1124. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +11 -8
  1125. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  1126. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js +1 -1
  1127. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js.map +1 -1
  1128. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +18 -13
  1129. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  1130. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  1131. package/dist/dist-esm/react-composites/src/composites/common/constants.js +1 -0
  1132. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  1133. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +4 -0
  1134. package/dist/dist-esm/react-composites/src/composites/common/icons.js +10 -4
  1135. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  1136. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependency.js +1 -3
  1137. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependency.js.map +1 -1
  1138. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependencyLazy.js +1 -3
  1139. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependencyLazy.js.map +1 -1
  1140. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  1141. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  1142. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  1143. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  1144. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +4 -10
  1145. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  1146. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +11 -44
  1147. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  1148. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +6 -29
  1149. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  1150. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +4 -22
  1151. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  1152. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js +15 -13
  1153. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js.map +1 -1
  1154. package/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.js.map +1 -1
  1155. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  1156. package/dist/dist-esm/react-composites/src/composites/common/types/FocusableElement.js.map +1 -1
  1157. package/dist/dist-esm/react-composites/src/composites/common/utils.js +20 -14
  1158. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  1159. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  1160. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js +2 -2
  1161. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  1162. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  1163. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -1
  1164. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +25 -1
  1165. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -1
  1166. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +25 -1
  1167. package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/CompositeLocale.js.map +1 -1
  1168. package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/strings.json +25 -1
  1169. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -1
  1170. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +25 -1
  1171. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -1
  1172. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +25 -1
  1173. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +25 -1
  1174. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -1
  1175. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +25 -1
  1176. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-MX/CompositeLocale.js.map +1 -1
  1177. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-MX/strings.json +25 -1
  1178. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -1
  1179. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +25 -1
  1180. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-CA/CompositeLocale.js.map +1 -1
  1181. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-CA/strings.json +25 -1
  1182. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -1
  1183. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +25 -1
  1184. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -1
  1185. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +25 -1
  1186. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  1187. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -1
  1188. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +25 -1
  1189. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -1
  1190. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +25 -1
  1191. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -1
  1192. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +25 -1
  1193. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -1
  1194. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +25 -1
  1195. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -1
  1196. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +25 -1
  1197. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -1
  1198. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +25 -1
  1199. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -1
  1200. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +25 -1
  1201. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -1
  1202. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +25 -1
  1203. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -1
  1204. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +25 -1
  1205. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -1
  1206. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +25 -1
  1207. package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js +1 -1
  1208. package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js.map +1 -1
  1209. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -1
  1210. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +25 -1
  1211. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -1
  1212. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +25 -1
  1213. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  1214. package/package.json +4 -4
  1215. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CwxvsFHy.js.map +0 -1
  1216. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-DMdQIGV5.js.map +0 -1
  1217. package/dist/dist-cjs/communication-react/index-D7R-o8dv.js.map +0 -1
  1218. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +0 -1
  1219. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +0 -1
@@ -25,13 +25,15 @@ export const getValidatedIndexInRange = (props) => {
25
25
  */
26
26
  export const findMentionTagForSelection = (tags, selection) => {
27
27
  let mentionTag = undefined;
28
- tags.every(tag => {
28
+ tags.every((tag) => {
29
29
  const closingTagInfo = getTagClosingTagInfo(tag);
30
30
  if (tag.plainTextBeginIndex !== undefined && tag.plainTextBeginIndex > selection) {
31
31
  // no need to check further as the selection is before the tag
32
32
  return false;
33
33
  }
34
- else if (tag.plainTextBeginIndex !== undefined && tag.plainTextBeginIndex <= selection && selection <= closingTagInfo.plainTextEndIndex) {
34
+ else if (tag.plainTextBeginIndex !== undefined &&
35
+ tag.plainTextBeginIndex <= selection &&
36
+ selection <= closingTagInfo.plainTextEndIndex) {
35
37
  // no need to check if tag doesn't contain selection
36
38
  if (tag.subTags !== undefined && tag.subTags.length !== 0) {
37
39
  const selectedTag = findMentionTagForSelection(tag.subTags, selection);
@@ -60,7 +62,10 @@ export const findNewSelectionIndexForMention = (props) => {
60
62
  var _a;
61
63
  const { tag, textValue, currentSelectionIndex, previousSelectionIndex } = props;
62
64
  // check if this is a mention tag and selection should be updated
63
- if (tag.tagType !== MSFT_MENTION_TAG || tag.plainTextBeginIndex === undefined || currentSelectionIndex === previousSelectionIndex || tag.plainTextEndIndex === undefined) {
65
+ if (tag.tagType !== MSFT_MENTION_TAG ||
66
+ tag.plainTextBeginIndex === undefined ||
67
+ currentSelectionIndex === previousSelectionIndex ||
68
+ tag.plainTextEndIndex === undefined) {
64
69
  return currentSelectionIndex;
65
70
  }
66
71
  let spaceIndex = 0;
@@ -163,12 +168,7 @@ const handleMentionTagUpdate = (props) => {
163
168
  lastProcessedHTMLIndex = tag.openTagIndex + tag.openTagBody.length + endChangeDiff;
164
169
  // processed change should not be changed as it should be added after the tag
165
170
  }
166
- return {
167
- result,
168
- updatedChange: processedChange,
169
- htmlIndex: lastProcessedHTMLIndex,
170
- plainTextSelectionEndIndex
171
- };
171
+ return { result, updatedChange: processedChange, htmlIndex: lastProcessedHTMLIndex, plainTextSelectionEndIndex };
172
172
  };
173
173
  /**
174
174
  * Get closing tag information if exists otherwise return information as for self closing tag
@@ -194,11 +194,7 @@ const getTagClosingTagInfo = (tag) => {
194
194
  closeTagIdx = tag.openTagIndex + tag.openTagBody.length;
195
195
  closeTagLength = 0;
196
196
  }
197
- return {
198
- plainTextEndIndex,
199
- closeTagIdx,
200
- closeTagLength
201
- };
197
+ return { plainTextEndIndex, closeTagIdx, closeTagLength };
202
198
  };
203
199
  /**
204
200
  * Go through the text and update it with the changed text
@@ -209,14 +205,13 @@ const getTagClosingTagInfo = (tag) => {
209
205
  */
210
206
  export const updateHTML = (props) => {
211
207
  const { htmlText, oldPlainText, tags, startIndex, oldPlainTextEndIndex, change, mentionTrigger } = props;
212
- if (tags.length === 0 || startIndex === 0 && oldPlainTextEndIndex === oldPlainText.length - 1) {
208
+ if (tags.length === 0 || (startIndex === 0 && oldPlainTextEndIndex === oldPlainText.length - 1)) {
213
209
  // no tags added yet or the whole text is changed
214
210
  const changeWithSkippedChars = escapeHTMLChars(change);
215
- const updatedHTML = escapeHTMLChars(oldPlainText.substring(0, startIndex)) + changeWithSkippedChars + escapeHTMLChars(oldPlainText.substring(oldPlainTextEndIndex));
216
- return {
217
- updatedHTML,
218
- updatedSelectionIndex: undefined
219
- };
211
+ const updatedHTML = escapeHTMLChars(oldPlainText.substring(0, startIndex)) +
212
+ changeWithSkippedChars +
213
+ escapeHTMLChars(oldPlainText.substring(oldPlainTextEndIndex));
214
+ return { updatedHTML, updatedSelectionIndex: undefined };
220
215
  }
221
216
  let result = '';
222
217
  let lastProcessedHTMLIndex = 0;
@@ -286,14 +281,18 @@ export const updateHTML = (props) => {
286
281
  // the change will be added at the beginning before the mention tag
287
282
  if (startIndex === closingTagInfo.plainTextEndIndex) {
288
283
  // non empty change at the end of the mention tag to be added after the mention tag
289
- result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) + processedChange;
284
+ result +=
285
+ htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) +
286
+ processedChange;
290
287
  changeNewEndIndex = closingTagInfo.plainTextEndIndex + unEscapeHtmlCharacters(processedChange).length;
291
288
  lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;
292
289
  processedChange = '';
293
290
  // the change is handled; exit
294
291
  break;
295
292
  }
296
- else if (startIndex > tag.plainTextBeginIndex && oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex && startIndex === oldPlainTextEndIndex) {
293
+ else if (startIndex > tag.plainTextBeginIndex &&
294
+ oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex &&
295
+ startIndex === oldPlainTextEndIndex) {
297
296
  // mention tag should be deleted when user tries to edit it in the middle
298
297
  result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;
299
298
  changeNewEndIndex = tag.plainTextBeginIndex + unEscapeHtmlCharacters(processedChange).length;
@@ -370,7 +369,9 @@ export const updateHTML = (props) => {
370
369
  else {
371
370
  // no subtags
372
371
  const startChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, startIndex);
373
- result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff) + processedChange;
372
+ result +=
373
+ htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff) +
374
+ processedChange;
374
375
  processedChange = '';
375
376
  if (oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex) {
376
377
  const endChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, oldPlainTextEndIndex);
@@ -424,8 +425,7 @@ export const updateHTML = (props) => {
424
425
  tags: tag.subTags,
425
426
  startIndex,
426
427
  oldPlainTextEndIndex,
427
- change: '',
428
- // the part of the tag should be just deleted without processedChange update and change will be added after this tag
428
+ change: '', // the part of the tag should be just deleted without processedChange update and change will be added after this tag
429
429
  mentionTrigger
430
430
  });
431
431
  result += stringBefore + updatedContent.updatedHTML;
@@ -461,8 +461,7 @@ export const updateHTML = (props) => {
461
461
  htmlText,
462
462
  oldPlainText,
463
463
  lastProcessedHTMLIndex,
464
- processedChange: '',
465
- // the part of mention should be just deleted without processedChange update
464
+ processedChange: '', // the part of mention should be just deleted without processedChange update
466
465
  change,
467
466
  tag,
468
467
  closeTagIdx: closingTagInfo.closeTagIdx,
@@ -486,8 +485,7 @@ export const updateHTML = (props) => {
486
485
  tags: tag.subTags,
487
486
  startIndex,
488
487
  oldPlainTextEndIndex,
489
- change: processedChange,
490
- // processedChange should be equal '' and the part of the tag should be deleted as the change was handled before this tag
488
+ change: processedChange, // processedChange should be equal '' and the part of the tag should be deleted as the change was handled before this tag
491
489
  mentionTrigger
492
490
  });
493
491
  processedChange = '';
@@ -495,7 +493,8 @@ export const updateHTML = (props) => {
495
493
  }
496
494
  else {
497
495
  // no subtags
498
- result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length) + processedChange;
496
+ result +=
497
+ htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length) + processedChange;
499
498
  processedChange = '';
500
499
  // oldPlainTextEndIndex already includes mentionTag length
501
500
  const endChangeDiff = getChangeDiff(oldPlainText, oldPlainTextEndIndex, closingTagInfo.plainTextEndIndex);
@@ -513,10 +512,13 @@ export const updateHTML = (props) => {
513
512
  const endChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, oldPlainTextEndIndex);
514
513
  if (startIndex >= closingTagInfo.plainTextEndIndex) {
515
514
  const startChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, startIndex);
516
- result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + startChangeDiff) + processedChange;
515
+ result +=
516
+ htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + startChangeDiff) + processedChange;
517
517
  }
518
518
  else {
519
- result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) + processedChange;
519
+ result +=
520
+ htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) +
521
+ processedChange;
520
522
  }
521
523
  processedChange = '';
522
524
  lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + endChangeDiff;
@@ -529,10 +531,7 @@ export const updateHTML = (props) => {
529
531
  // add the rest of the html string
530
532
  result += htmlText.substring(lastProcessedHTMLIndex);
531
533
  }
532
- return {
533
- updatedHTML: result,
534
- updatedSelectionIndex: changeNewEndIndex
535
- };
534
+ return { updatedHTML: result, updatedSelectionIndex: changeNewEndIndex };
536
535
  };
537
536
  /**
538
537
  * Given the oldText and newText, find the start index, old end index and new end index for the changes
@@ -615,11 +614,7 @@ export const findStringsDiffIndexes = (props) => {
615
614
  oldChangeEnd += 1;
616
615
  }
617
616
  }
618
- return {
619
- changeStart,
620
- oldChangeEnd,
621
- newChangeEnd
622
- };
617
+ return { changeStart, oldChangeEnd, newChangeEnd };
623
618
  };
624
619
  /**
625
620
  * Get the html string for the mention suggestion.
@@ -697,7 +692,10 @@ export const textToTagParser = (text, trigger) => {
697
692
  currentOpenTag.content = text.substring(currentOpenTag.openTagIndex + currentOpenTag.openTagBody.length, foundHtmlTag.startIdx);
698
693
  // Insert the plain text pieces for the sub tags
699
694
  if (currentOpenTag.tagType === MSFT_MENTION_TAG) {
700
- plainTextRepresentation = plainTextRepresentation.slice(0, currentOpenTag.plainTextBeginIndex) + trigger + plainTextRepresentation.slice(currentOpenTag.plainTextBeginIndex);
695
+ plainTextRepresentation =
696
+ plainTextRepresentation.slice(0, currentOpenTag.plainTextBeginIndex) +
697
+ trigger +
698
+ plainTextRepresentation.slice(currentOpenTag.plainTextBeginIndex);
701
699
  }
702
700
  const lastSubTag = (_a = currentOpenTag.subTags) === null || _a === void 0 ? void 0 : _a[currentOpenTag.subTags.length - 1];
703
701
  if (!currentOpenTag.subTags) {
@@ -713,16 +711,17 @@ export const textToTagParser = (text, trigger) => {
713
711
  addTag(currentOpenTag, tagParseStack, tags);
714
712
  }
715
713
  else {
716
- throw new Error('Unexpected close tag found. Got "' + closeTagType + '" but expected "' + ((_c = tagParseStack[tagParseStack.length - 1]) === null || _c === void 0 ? void 0 : _c.tagType) + '"');
714
+ throw new Error('Unexpected close tag found. Got "' +
715
+ closeTagType +
716
+ '" but expected "' +
717
+ ((_c = tagParseStack[tagParseStack.length - 1]) === null || _c === void 0 ? void 0 : _c.tagType) +
718
+ '"');
717
719
  }
718
720
  }
719
721
  // Update parsing index; move past the end of the close tag
720
722
  parseIndex = foundHtmlTag.startIdx + foundHtmlTag.content.length;
721
723
  } // While parseIndex < text.length loop
722
- return {
723
- tags,
724
- plainText: plainTextRepresentation
725
- };
724
+ return { tags, plainText: plainTextRepresentation };
726
725
  };
727
726
  const parseOpenTag = (tag, startIdx) => {
728
727
  var _a;
@@ -797,7 +796,10 @@ const addTag = (tag, parseStack, tags) => {
797
796
  const escapeHTMLChars = (text) => {
798
797
  const mentionRegex = new RegExp(`<${MSFT_MENTION_TAG}(.*?)>(.*?)</${MSFT_MENTION_TAG}>`, 'i');
799
798
  if (!text.match(mentionRegex)) {
800
- return text.replace(/&(?![A-Z]+;)/gi, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
799
+ return text
800
+ .replace(/&(?![A-Z]+;)/gi, '&amp;')
801
+ .replace(/</g, '&lt;')
802
+ .replace(/>/g, '&gt;');
801
803
  }
802
804
  return text;
803
805
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mentionTagUtils.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-components/src/components/TextFieldWithMention/mentionTagUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ComponentStrings } from '../../localization';\nimport { Mention } from '../MentionPopover';\nconst MSFT_MENTION_TAG = 'msft-mention';\n\n/**\n * Props for finding a valid index in range.\n *\n * @private\n */\ntype ValidatedIndexRangeProps = {\n min: number;\n max: number;\n currentValue?: number;\n};\n\n/**\n * Get validated value for index between min and max values. If currentValue is not defined, -1 will be used instead.\n *\n * @private\n * @param props - Props for finding a valid index in range.\n * @returns Valid index in the range.\n */\nexport const getValidatedIndexInRange = (props: ValidatedIndexRangeProps): number => {\n const {\n min,\n max,\n currentValue\n } = props;\n let updatedValue = currentValue ?? -1;\n updatedValue = Math.max(min, updatedValue);\n updatedValue = Math.min(updatedValue, max);\n return updatedValue;\n};\n\n/**\n * Find mention tag for selection if exists.\n *\n * @private\n * @param tags - Existing list of tags.\n * @param selection - Selection index.\n * @returns Mention tag if exists, otherwise undefined.\n */\nexport const findMentionTagForSelection = (tags: TagData[], selection: number): TagData | undefined => {\n let mentionTag: TagData | undefined = undefined;\n tags.every(tag => {\n const closingTagInfo = getTagClosingTagInfo(tag);\n if (tag.plainTextBeginIndex !== undefined && tag.plainTextBeginIndex > selection) {\n // no need to check further as the selection is before the tag\n return false;\n } else if (tag.plainTextBeginIndex !== undefined && tag.plainTextBeginIndex <= selection && selection <= closingTagInfo.plainTextEndIndex) {\n // no need to check if tag doesn't contain selection\n if (tag.subTags !== undefined && tag.subTags.length !== 0) {\n const selectedTag = findMentionTagForSelection(tag.subTags, selection);\n if (selectedTag !== undefined) {\n mentionTag = selectedTag;\n return false;\n }\n } else if (tag.tagType === MSFT_MENTION_TAG) {\n mentionTag = tag;\n return false;\n }\n }\n return true;\n });\n return mentionTag;\n};\n\n/**\n * Props for finding new selection index for mention\n *\n * @private\n */\ntype NewSelectionIndexForMentionProps = {\n tag: TagData;\n textValue: string;\n currentSelectionIndex: number;\n previousSelectionIndex: number;\n};\n\n/**\n * Find a new the selection index.\n *\n * @private\n * @param props - Props for finding new selection index for mention.\n * @returns New selection index if it is inside of a mention tag, otherwise the current selection.\n */\nexport const findNewSelectionIndexForMention = (props: NewSelectionIndexForMentionProps): number => {\n const {\n tag,\n textValue,\n currentSelectionIndex,\n previousSelectionIndex\n } = props;\n // check if this is a mention tag and selection should be updated\n if (tag.tagType !== MSFT_MENTION_TAG || tag.plainTextBeginIndex === undefined || currentSelectionIndex === previousSelectionIndex || tag.plainTextEndIndex === undefined) {\n return currentSelectionIndex;\n }\n let spaceIndex = 0;\n if (currentSelectionIndex <= previousSelectionIndex) {\n // the cursor is moved to the left, find the last index before the cursor\n spaceIndex = textValue.lastIndexOf(' ', currentSelectionIndex ?? 0);\n if (spaceIndex === -1) {\n // no space before the selection, use the beginning of the tag\n spaceIndex = tag.plainTextBeginIndex;\n }\n } else {\n // the cursor is moved to the right, find the fist index after the cursor\n spaceIndex = textValue.indexOf(' ', currentSelectionIndex ?? 0);\n if (spaceIndex === -1) {\n // no space after the selection, use the end of the tag\n spaceIndex = tag.plainTextEndIndex ?? tag.plainTextBeginIndex;\n }\n }\n spaceIndex = getValidatedIndexInRange({\n min: tag.plainTextBeginIndex,\n max: tag.plainTextEndIndex,\n currentValue: spaceIndex\n });\n return spaceIndex;\n};\n\n/**\n * Props for mention update HTML function\n *\n * @private\n */\ntype MentionTagUpdateProps = {\n htmlText: string;\n oldPlainText: string;\n lastProcessedHTMLIndex: number;\n processedChange: string;\n change: string;\n tag: TagData;\n closeTagIdx: number;\n closeTagLength: number;\n plainTextEndIndex: number;\n startIndex: number;\n oldPlainTextEndIndex: number;\n mentionTagLength: number;\n};\n\n/**\n * Result for mention update HTML function\n *\n * @private\n */\ntype MentionTagUpdateResult = {\n result: string;\n updatedChange: string;\n htmlIndex: number;\n plainTextSelectionEndIndex?: number;\n};\n\n/**\n * Handle mention tag edit and by word deleting\n *\n * @private\n * @param props - Props for mention update HTML function.\n * @returns Updated texts and indexes.\n */\nconst handleMentionTagUpdate = (props: MentionTagUpdateProps): MentionTagUpdateResult => {\n const {\n htmlText,\n oldPlainText,\n change,\n tag,\n closeTagIdx,\n closeTagLength,\n plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n } = props;\n let processedChange = props.processedChange;\n let lastProcessedHTMLIndex = props.lastProcessedHTMLIndex;\n if (tag.tagType !== MSFT_MENTION_TAG || tag.plainTextBeginIndex === undefined) {\n // not a mention tag\n return {\n result: '',\n updatedChange: processedChange,\n htmlIndex: lastProcessedHTMLIndex,\n plainTextSelectionEndIndex: undefined\n };\n }\n let result = '';\n let plainTextSelectionEndIndex: number | undefined;\n let rangeStart: number;\n let rangeEnd: number;\n // check if space symbol is handled in case if string looks like '<1 2 3>'\n let isSpaceLengthHandled = false;\n rangeStart = oldPlainText.lastIndexOf(' ', startIndex);\n if (rangeStart !== -1 && rangeStart !== undefined && rangeStart > tag.plainTextBeginIndex) {\n isSpaceLengthHandled = true;\n }\n rangeEnd = oldPlainText.indexOf(' ', oldPlainTextEndIndex);\n if (rangeEnd === -1 || rangeEnd === undefined) {\n // check if space symbol is not found\n rangeEnd = plainTextEndIndex;\n } else if (!isSpaceLengthHandled) {\n // +1 to include the space symbol\n rangeEnd += 1;\n }\n isSpaceLengthHandled = true;\n if (rangeStart === -1 || rangeStart === undefined || rangeStart < tag.plainTextBeginIndex) {\n // rangeStart should be at least equal to tag.plainTextBeginIndex\n rangeStart = tag.plainTextBeginIndex;\n }\n if (rangeEnd > plainTextEndIndex) {\n // rangeEnd should be at most equal to plainTextEndIndex\n rangeEnd = plainTextEndIndex;\n }\n if (rangeStart === tag.plainTextBeginIndex && rangeEnd === plainTextEndIndex) {\n // the whole tag should be removed\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n plainTextSelectionEndIndex = tag.plainTextBeginIndex + change.length;\n processedChange = '';\n lastProcessedHTMLIndex = closeTagIdx + closeTagLength;\n } else {\n // only part of the tag should be removed\n let startChangeDiff = 0;\n let endChangeDiff = 0;\n // need to check only rangeStart > tag.plainTextBeginIndex as when rangeStart === tag.plainTextBeginIndex startChangeDiff = 0 and mentionTagLength shouldn't be subtracted\n if (rangeStart > tag.plainTextBeginIndex) {\n startChangeDiff = rangeStart - tag.plainTextBeginIndex - mentionTagLength;\n }\n endChangeDiff = rangeEnd - tag.plainTextBeginIndex - mentionTagLength;\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff);\n if (startIndex < tag.plainTextBeginIndex) {\n // if the change is before the tag, the selection should start from startIndex (rangeStart will be equal to tag.plainTextBeginIndex)\n plainTextSelectionEndIndex = startIndex + change.length;\n } else {\n // if the change is inside the tag, the selection should start with rangeStart\n plainTextSelectionEndIndex = rangeStart + change.length;\n }\n lastProcessedHTMLIndex = tag.openTagIndex + tag.openTagBody.length + endChangeDiff;\n // processed change should not be changed as it should be added after the tag\n }\n return {\n result,\n updatedChange: processedChange,\n htmlIndex: lastProcessedHTMLIndex,\n plainTextSelectionEndIndex\n };\n};\n\n/**\n * Closing tag information\n *\n * @private\n */\ntype ClosingTagInfoResult = {\n plainTextEndIndex: number;\n closeTagIdx: number;\n closeTagLength: number;\n};\n\n/**\n * Get closing tag information if exists otherwise return information as for self closing tag\n *\n * @private\n * @param tag - Tag data.\n * @returns Closing tag information for the provided tag.\n */\nconst getTagClosingTagInfo = (tag: TagData): ClosingTagInfoResult => {\n let plainTextEndIndex = 0;\n let closeTagIdx = 0;\n let closeTagLength = 0;\n if (tag.plainTextEndIndex !== undefined && tag.closingTagIndex !== undefined) {\n // close tag exists\n plainTextEndIndex = tag.plainTextEndIndex;\n closeTagIdx = tag.closingTagIndex;\n // tag.tagType.length + </>\n closeTagLength = tag.tagType.length + 3;\n } else if (tag.plainTextBeginIndex !== undefined) {\n // no close tag\n plainTextEndIndex = tag.plainTextBeginIndex;\n closeTagIdx = tag.openTagIndex + tag.openTagBody.length;\n closeTagLength = 0;\n }\n return {\n plainTextEndIndex,\n closeTagIdx,\n closeTagLength\n };\n};\n\n/**\n * Props for update HTML function\n *\n * @private\n */\ntype UpdateHTMLProps = {\n htmlText: string;\n oldPlainText: string;\n tags: TagData[];\n startIndex: number;\n oldPlainTextEndIndex: number;\n change: string;\n mentionTrigger: string;\n};\n\n/**\n * Go through the text and update it with the changed text\n *\n * @private\n * @param props - Props for update HTML function.\n * @returns Updated HTML and selection index if the selection index should be set.\n */\nexport const updateHTML = (props: UpdateHTMLProps): {\n updatedHTML: string;\n updatedSelectionIndex?: number;\n} => {\n const {\n htmlText,\n oldPlainText,\n tags,\n startIndex,\n oldPlainTextEndIndex,\n change,\n mentionTrigger\n } = props;\n if (tags.length === 0 || startIndex === 0 && oldPlainTextEndIndex === oldPlainText.length - 1) {\n // no tags added yet or the whole text is changed\n const changeWithSkippedChars = escapeHTMLChars(change);\n const updatedHTML = escapeHTMLChars(oldPlainText.substring(0, startIndex)) + changeWithSkippedChars + escapeHTMLChars(oldPlainText.substring(oldPlainTextEndIndex));\n return {\n updatedHTML,\n updatedSelectionIndex: undefined\n };\n }\n let result = '';\n let lastProcessedHTMLIndex = 0;\n // the value can be updated with empty string when the change covers more than 1 place (tag + before or after the tag)\n // in this case change won't be added as part of the tag\n // e.g.: change is before and partially in tag => change will be added before the tag and outdated text in the tag will be removed\n // e.g.: change is after and partially in tag => change will be added after the tag and outdated text in the tag will be removed\n // e.g.: change is on the beginning of the tag => change will be added before the tag\n // e.g.: change is on the end of the tag => change will be added to the tag if it's not mention and after the tag if it's mention\n let processedChange = escapeHTMLChars(change);\n\n // end tag plain text index of the last processed tag\n let lastProcessedPlainTextTagEndIndex = 0;\n // as some tags/text can be removed fully, selection should be updated correctly\n let changeNewEndIndex: number | undefined;\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i];\n if (tag?.plainTextBeginIndex === undefined) {\n continue;\n }\n // all plain text indexes includes trigger length for the mention that shouldn't be included in\n // htmlText.substring because html strings don't include the trigger\n // mentionTagLength will be set only for mention tag, otherwise should be 0\n let mentionTagLength = 0;\n let isMentionTag = false;\n if (tag.tagType === MSFT_MENTION_TAG) {\n mentionTagLength = mentionTrigger.length;\n isMentionTag = true;\n }\n if (startIndex <= tag.plainTextBeginIndex) {\n // change start is before the open tag\n // Math.max(lastProcessedPlainTextTagEndIndex, startIndex) is used as startIndex may not be in [[previous tag].plainTextEndIndex - tag.plainTextBeginIndex] range\n const startChangeDiff = getChangeDiff(oldPlainText, Math.max(lastProcessedPlainTextTagEndIndex, startIndex), tag.plainTextBeginIndex);\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex - startChangeDiff) + processedChange;\n processedChange = '';\n if (oldPlainTextEndIndex <= tag.plainTextBeginIndex) {\n // the whole change is before tag start\n // mentionTag length can be ignored here as the change is before the tag\n const endChangeDiff = getChangeDiff(oldPlainText, oldPlainTextEndIndex, tag.plainTextBeginIndex);\n lastProcessedHTMLIndex = tag.openTagIndex - endChangeDiff;\n // the change is handled; exit\n break;\n } else {\n // change continues in the tag\n lastProcessedHTMLIndex = tag.openTagIndex;\n // proceed to the next check\n }\n }\n const closingTagInfo = getTagClosingTagInfo(tag);\n if (startIndex <= closingTagInfo.plainTextEndIndex) {\n // change started before the end tag\n if (startIndex <= tag.plainTextBeginIndex && oldPlainTextEndIndex === closingTagInfo.plainTextEndIndex) {\n // the change is a tag or starts before the tag\n // tag should be removed, no matter if there are sub-tags\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n processedChange = '';\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // the change is handled; exit\n break;\n } else if (startIndex >= tag.plainTextBeginIndex && oldPlainTextEndIndex <= closingTagInfo.plainTextEndIndex) {\n // the change is between the tag\n if (isMentionTag) {\n if (change !== '') {\n // case for startIndex === tag.plainTextBeginIndex and closingTagInfo.plainTextEndIndex === startIndex\n // is handled in startIndex <= tag.plainTextBeginIndex condition check\n // the change will be added at the beginning before the mention tag\n if (startIndex === closingTagInfo.plainTextEndIndex) {\n // non empty change at the end of the mention tag to be added after the mention tag\n result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) + processedChange;\n changeNewEndIndex = closingTagInfo.plainTextEndIndex + unEscapeHtmlCharacters(processedChange).length;\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n processedChange = '';\n // the change is handled; exit\n break;\n } else if (startIndex > tag.plainTextBeginIndex && oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex && startIndex === oldPlainTextEndIndex) {\n // mention tag should be deleted when user tries to edit it in the middle\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n changeNewEndIndex = tag.plainTextBeginIndex + unEscapeHtmlCharacters(processedChange).length;\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n processedChange = '';\n // the change is handled; exit\n break;\n } else {\n // the selection for more that 1 symbol when 1 of the ends is included\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange,\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n processedChange = updateMentionTagResult.updatedChange;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // proceed with the next calculations\n }\n } else {\n // When change is empty, it means that this change is a deletion\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange,\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n processedChange = updateMentionTagResult.updatedChange;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // the change is handled; exit\n break;\n }\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: processedChange,\n mentionTrigger\n });\n result += stringBefore + updatedContent.updatedHTML;\n changeNewEndIndex = updatedContent.updatedSelectionIndex;\n // the change is handled; exit\n break;\n } else {\n // no subtags\n const startChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, startIndex);\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff) + processedChange;\n processedChange = '';\n if (oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex) {\n const endChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, oldPlainTextEndIndex);\n lastProcessedHTMLIndex = tag.openTagIndex + tag.openTagBody.length + endChangeDiff;\n } else if (oldPlainTextEndIndex === closingTagInfo.plainTextEndIndex) {\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n }\n // the change is handled; exit\n break;\n }\n } else if (startIndex > tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change started in the tag but finishes somewhere further\n if (isMentionTag) {\n if (startIndex === closingTagInfo.plainTextEndIndex) {\n // the change should be handled out of mention tag\n // as startIndex === closingTagInfo.plainTextEndIndex and oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex\n result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength);\n // no need to handle plainTextSelectionEndIndex as the change will be added later\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n } else {\n // part of the mention tag was changed/deleted\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange: '',\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // no need to handle plainTextSelectionEndIndex as the change will be added later\n }\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: '',\n // the part of the tag should be just deleted without processedChange update and change will be added after this tag\n mentionTrigger\n });\n result += stringBefore + updatedContent.updatedHTML;\n } else {\n // no subtags\n const startChangeDiff = startIndex - tag.plainTextBeginIndex - mentionTagLength;\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n }\n // proceed with the next calculations\n } else if (startIndex < tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change starts before the tag and finishes after it\n // tag should be removed, no matter if there are subtags\n // no need to save anything between lastProcessedHTMLIndex and closeTagIdx + closeTagLength\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // proceed with the next calculations\n } else if (startIndex === tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change starts in the tag and finishes after it\n // tag should be removed, no matter if there are subtags\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex);\n // processedChange shouldn't be updated as it will be added after the tag\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // proceed with the next calculations\n } else if (startIndex < tag.plainTextBeginIndex && oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex) {\n // the change starts before the tag and ends in a tag\n if (isMentionTag) {\n // mention tag\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange: '',\n // the part of mention should be just deleted without processedChange update\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n result += updateMentionTagResult.result;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: processedChange,\n // processedChange should be equal '' and the part of the tag should be deleted as the change was handled before this tag\n mentionTrigger\n });\n processedChange = '';\n result += stringBefore + updatedContent.updatedHTML;\n } else {\n // no subtags\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length) + processedChange;\n processedChange = '';\n // oldPlainTextEndIndex already includes mentionTag length\n const endChangeDiff = getChangeDiff(oldPlainText, oldPlainTextEndIndex, closingTagInfo.plainTextEndIndex);\n // as change may be before the end of the tag, we need to add the rest of the tag\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx - endChangeDiff;\n }\n // the change is handled; exit\n break;\n }\n lastProcessedPlainTextTagEndIndex = closingTagInfo.plainTextEndIndex;\n }\n if (i === tags.length - 1 && oldPlainTextEndIndex >= closingTagInfo.plainTextEndIndex) {\n // the last tag should handle the end of the change if needed\n // oldPlainTextEndIndex already includes mentionTag length\n const endChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, oldPlainTextEndIndex);\n if (startIndex >= closingTagInfo.plainTextEndIndex) {\n const startChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, startIndex);\n result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + startChangeDiff) + processedChange;\n } else {\n result += htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) + processedChange;\n }\n processedChange = '';\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + endChangeDiff;\n // the change is handled; exit\n // break is not required here as this is the last element but added for consistency\n break;\n }\n }\n if (lastProcessedHTMLIndex < htmlText.length) {\n // add the rest of the html string\n result += htmlText.substring(lastProcessedHTMLIndex);\n }\n return {\n updatedHTML: result,\n updatedSelectionIndex: changeNewEndIndex\n };\n};\n\n/**\n * Props for finding strings diff indexes\n *\n * @private\n */\ntype DiffIndexesProps = {\n // the old text\n oldText: string;\n // the new text\n newText: string;\n // the start of previous selection, should be a valid position in the input field\n previousSelectionStart: number;\n // the end of previous selection, should be a valid position in the input field\n previousSelectionEnd: number;\n // the start of current selection, should be a valid position in the input field\n currentSelectionStart: number;\n // the end of current selection, should be a valid position in the input field\n currentSelectionEnd: number;\n};\n\n/**\n * Result of finding strings diff indexes function\n *\n * @private\n */\ntype DiffIndexesResult = {\n changeStart: number;\n oldChangeEnd: number;\n newChangeEnd: number;\n};\n\n/**\n * Given the oldText and newText, find the start index, old end index and new end index for the changes\n *\n * @private\n * @param props - Props for finding stings diff indexes function.\n * @returns Indexes for change start and ends in new and old texts. The old and new end indexes are exclusive.\n */\nexport const findStringsDiffIndexes = (props: DiffIndexesProps): DiffIndexesResult => {\n const {\n oldText,\n newText,\n previousSelectionStart,\n previousSelectionEnd,\n currentSelectionStart,\n currentSelectionEnd\n } = props;\n const newTextLength = newText.length;\n const oldTextLength = oldText.length;\n // let changeStart = 0;\n let newChangeEnd = newTextLength;\n let oldChangeEnd = oldTextLength;\n const previousSelectionStartValue = previousSelectionStart > -1 ? previousSelectionStart : oldTextLength;\n const previousSelectionEndValue = previousSelectionEnd > -1 ? previousSelectionEnd : oldTextLength;\n const currentSelectionStartValue = currentSelectionStart > -1 ? currentSelectionStart : newTextLength;\n const currentSelectionEndValue = currentSelectionEnd > -1 ? currentSelectionEnd : newTextLength;\n const changeStart = Math.min(previousSelectionStartValue, previousSelectionEndValue, currentSelectionStartValue, currentSelectionEndValue, newTextLength, oldTextLength);\n if (oldTextLength < newTextLength) {\n //insert or replacement\n if (oldTextLength === changeStart) {\n // when change was at the end of string\n // change is found\n newChangeEnd = newTextLength;\n oldChangeEnd = oldTextLength;\n } else {\n for (let i = 0; i < newTextLength && oldTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive\n newChangeEnd += 1;\n oldChangeEnd += 1;\n }\n } else if (oldTextLength > newTextLength) {\n //deletion or replacement\n if (newTextLength === changeStart) {\n // when change was at the end of string\n // change is found\n newChangeEnd = newTextLength;\n oldChangeEnd = oldTextLength;\n } else {\n for (let i = 0; i < oldTextLength && newTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive\n newChangeEnd += 1;\n oldChangeEnd += 1;\n }\n } else {\n // replacement\n for (let i = 0; i < oldTextLength && oldTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive if they aren't equal to the length of the string\n if (newChangeEnd !== newText.length) {\n newChangeEnd += 1;\n }\n if (oldChangeEnd !== oldText.length) {\n oldChangeEnd += 1;\n }\n }\n return {\n changeStart,\n oldChangeEnd,\n newChangeEnd\n };\n};\n\n/**\n * Get the html string for the mention suggestion.\n *\n * @private\n * @param suggestion - The mention suggestion.\n * @param localeStrings - The locale strings.\n * @returns The html string for the mention suggestion.\n */\nexport const htmlStringForMentionSuggestion = (suggestion: Mention, localeStrings: ComponentStrings): string => {\n const idHTML = ' id=\"' + suggestion.id + '\"';\n const displayText = getDisplayNameForMentionSuggestion(suggestion, localeStrings);\n return '<' + MSFT_MENTION_TAG + idHTML + '>' + displayText + '</' + MSFT_MENTION_TAG + '>';\n};\n\n/**\n * Get display name for the mention suggestion.\n *\n * @private\n *\n * @param suggestion - The mention suggestion.\n * @param localeStrings - The locale strings.\n * @returns The display name for the mention suggestion or display name placeholder if display name is empty.\n */\nexport const getDisplayNameForMentionSuggestion = (suggestion: Mention, localeStrings: ComponentStrings): string => {\n const displayNamePlaceholder = localeStrings.participantItem.displayNamePlaceholder;\n return suggestion.displayText !== '' ? suggestion.displayText : displayNamePlaceholder ?? '';\n};\n\n/**\n * Tag data for a HTML tag in the string\n *\n * @private\n */\nexport type TagData = {\n tagType: string; // The type of tag (e.g. msft-mention)\n openTagIndex: number; // Start of the tag relative to the parent content\n openTagBody: string; // Complete open tag body\n content?: string; // All content between the open and close tags\n closingTagIndex?: number; // Start of the close tag relative to the parent content\n subTags?: TagData[]; // Any child tags\n plainTextBeginIndex?: number; // Absolute index of the open tag start should be in plain text\n plainTextEndIndex?: number; // Absolute index of the close tag start should be in plain text\n};\ntype HtmlTagType = 'open' | 'close' | 'self-closing';\ntype HtmlTag = {\n content: string;\n startIdx: number;\n type: HtmlTagType;\n};\n\n/**\n * Parse the text and return the tags and the plain text in one go\n * @private\n * @param text - The text to parse for HTML tags\n * @param trigger The trigger to show for the mention tag in plain text\n *\n * @returns An array of tags and the plain text representation\n */\nexport const textToTagParser = (text: string, trigger: string): {\n tags: TagData[];\n plainText: string;\n} => {\n const tags: TagData[] = []; // Tags passed back to the caller\n const tagParseStack: TagData[] = []; // Local stack to use while parsing\n\n let plainTextRepresentation = '';\n let parseIndex = 0;\n while (parseIndex < text.length) {\n const foundHtmlTag = findNextHtmlTag(text, parseIndex);\n if (!foundHtmlTag) {\n if (parseIndex !== 0) {\n // Add the remaining text to the plain text representation\n const newText = text.substring(parseIndex);\n plainTextRepresentation += unEscapeHtmlCharacters(newText);\n } else {\n plainTextRepresentation = unEscapeHtmlCharacters(text);\n }\n break;\n }\n if (foundHtmlTag.type === 'open' || foundHtmlTag.type === 'self-closing') {\n const nextTag = parseOpenTag(foundHtmlTag.content, foundHtmlTag.startIdx);\n // Add the plain text between the last tag and this one found\n plainTextRepresentation += unEscapeHtmlCharacters(text.substring(parseIndex, foundHtmlTag.startIdx));\n nextTag.plainTextBeginIndex = plainTextRepresentation.length;\n if (foundHtmlTag.type === 'open') {\n tagParseStack.push(nextTag);\n } else {\n nextTag.content = '';\n nextTag.plainTextBeginIndex = plainTextRepresentation.length;\n nextTag.plainTextEndIndex = plainTextRepresentation.length;\n addTag(nextTag, tagParseStack, tags);\n }\n }\n if (foundHtmlTag.type === 'close') {\n const currentOpenTag = tagParseStack.pop();\n const closeTagType = foundHtmlTag.content.substring(2, foundHtmlTag.content.length - 1).toLowerCase();\n if (currentOpenTag && currentOpenTag.tagType === closeTagType) {\n // Tag startIdx is absolute to the text. This is updated later to be relative to the parent tag\n currentOpenTag.content = text.substring(currentOpenTag.openTagIndex + currentOpenTag.openTagBody.length, foundHtmlTag.startIdx);\n\n // Insert the plain text pieces for the sub tags\n if (currentOpenTag.tagType === MSFT_MENTION_TAG) {\n plainTextRepresentation = plainTextRepresentation.slice(0, currentOpenTag.plainTextBeginIndex) + trigger + plainTextRepresentation.slice(currentOpenTag.plainTextBeginIndex);\n }\n const lastSubTag = currentOpenTag.subTags?.[currentOpenTag.subTags.length - 1];\n if (!currentOpenTag.subTags) {\n plainTextRepresentation += unEscapeHtmlCharacters(currentOpenTag.content);\n } else if (lastSubTag) {\n // Add text after the last tag\n const startOfRemainingText = (lastSubTag?.closingTagIndex ?? lastSubTag.openTagIndex) + lastSubTag.tagType.length + 3;\n const trailingText = currentOpenTag.content.substring(startOfRemainingText);\n plainTextRepresentation += unEscapeHtmlCharacters(trailingText);\n }\n currentOpenTag.plainTextEndIndex = plainTextRepresentation.length;\n addTag(currentOpenTag, tagParseStack, tags);\n } else {\n throw new Error('Unexpected close tag found. Got \"' + closeTagType + '\" but expected \"' + tagParseStack[tagParseStack.length - 1]?.tagType + '\"');\n }\n }\n\n // Update parsing index; move past the end of the close tag\n parseIndex = foundHtmlTag.startIdx + foundHtmlTag.content.length;\n } // While parseIndex < text.length loop\n\n return {\n tags,\n plainText: plainTextRepresentation\n };\n};\nconst parseOpenTag = (tag: string, startIdx: number): TagData => {\n let tagType = tag.substring(1, tag.length - 1);\n tagType = tagType.split(' ')[0] ?? tagType;\n tagType = tagType.toLowerCase().replace('/', '');\n return {\n tagType,\n openTagIndex: startIdx,\n openTagBody: tag\n };\n};\nconst findNextHtmlTag = (text: string, startIndex: number): HtmlTag | undefined => {\n const tagStartIndex = text.indexOf('<', startIndex);\n if (tagStartIndex === -1) {\n // No more tags\n return undefined;\n }\n const tagEndIndex = text.indexOf('>', tagStartIndex);\n if (tagEndIndex === -1) {\n // No close tag\n return undefined;\n }\n const tag = text.substring(tagStartIndex, tagEndIndex + 1);\n let type: HtmlTagType = 'open';\n if (tag[1] === '/') {\n type = 'close';\n } else if (tag[tag.length - 2] === '/') {\n type = 'self-closing';\n }\n return {\n content: tag,\n startIdx: tagStartIndex,\n type\n };\n};\nconst addTag = (tag: TagData, parseStack: TagData[], tags: TagData[]): void => {\n // Add as sub-tag to the parent stack tag, if there is one\n const parentTag = parseStack[parseStack.length - 1];\n if (parentTag) {\n // Adjust the open tag index to be relative to the parent tag\n const parentContentStartIdx = parentTag.openTagIndex + parentTag.openTagBody.length;\n const relativeIdx = tag.openTagIndex - parentContentStartIdx;\n tag.openTagIndex = relativeIdx;\n }\n if (!tag.closingTagIndex) {\n // If the tag is self-closing, the close tag is the same as the open tag\n if (tag.openTagBody[tag.openTagBody.length - 2] === '/') {\n tag.closingTagIndex = tag.openTagIndex;\n } else {\n // Otherwise, the close tag index is the open tag index + the open tag body + the content length\n tag.closingTagIndex = tag.openTagIndex + tag.openTagBody.length + (tag.content ?? []).length;\n }\n }\n\n // Put the tag where it belongs\n if (!parentTag) {\n tags.push(tag);\n } else {\n if (!parentTag.subTags) {\n parentTag.subTags = [tag];\n } else {\n parentTag.subTags.push(tag);\n }\n }\n};\n\n// We should revisit this in the future when we support other text such as rich text editing.\nconst escapeHTMLChars = (text: string): string => {\n const mentionRegex = new RegExp(`<${MSFT_MENTION_TAG}(.*?)>(.*?)</${MSFT_MENTION_TAG}>`, 'i');\n if (!text.match(mentionRegex)) {\n return text.replace(/&(?![A-Z]+;)/gi, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n }\n return text;\n};\nconst getChangeDiff = (plainText: string, startIndex: number, endIndex: number): number => {\n return endIndex - startIndex + getLengthDiffForEscapedHtmlChars(plainText, startIndex, endIndex);\n};\nconst getLengthDiffForEscapedHtmlChars = (text: string, startIndex: number, endIndex: number): number => {\n const subText = text.substring(startIndex, endIndex);\n const escapedAngleBracketCount = subText.match(/(<)|(>)/g)?.length || 0;\n let escapedCharLength = escapedAngleBracketCount * ('&lt;'.length - '<'.length);\n const escapedAmpersandCount = subText.match(/&/g)?.length || 0;\n escapedCharLength += escapedAmpersandCount * ('&amp;'.length - '&'.length);\n return escapedCharLength;\n};\nconst unEscapeHtmlCharacters = (text: string): string => {\n return text.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&');\n};"]}
1
+ {"version":3,"file":"mentionTagUtils.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/TextFieldWithMention/mentionTagUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ComponentStrings } from '../../localization';\nimport { Mention } from '../MentionPopover';\n\nconst MSFT_MENTION_TAG = 'msft-mention';\n\n/**\n * Props for finding a valid index in range.\n *\n * @private\n */\ntype ValidatedIndexRangeProps = {\n min: number;\n max: number;\n currentValue?: number;\n};\n\n/**\n * Get validated value for index between min and max values. If currentValue is not defined, -1 will be used instead.\n *\n * @private\n * @param props - Props for finding a valid index in range.\n * @returns Valid index in the range.\n */\nexport const getValidatedIndexInRange = (props: ValidatedIndexRangeProps): number => {\n const { min, max, currentValue } = props;\n let updatedValue = currentValue ?? -1;\n updatedValue = Math.max(min, updatedValue);\n updatedValue = Math.min(updatedValue, max);\n return updatedValue;\n};\n\n/**\n * Find mention tag for selection if exists.\n *\n * @private\n * @param tags - Existing list of tags.\n * @param selection - Selection index.\n * @returns Mention tag if exists, otherwise undefined.\n */\nexport const findMentionTagForSelection = (tags: TagData[], selection: number): TagData | undefined => {\n let mentionTag: TagData | undefined = undefined;\n tags.every((tag) => {\n const closingTagInfo = getTagClosingTagInfo(tag);\n if (tag.plainTextBeginIndex !== undefined && tag.plainTextBeginIndex > selection) {\n // no need to check further as the selection is before the tag\n return false;\n } else if (\n tag.plainTextBeginIndex !== undefined &&\n tag.plainTextBeginIndex <= selection &&\n selection <= closingTagInfo.plainTextEndIndex\n ) {\n // no need to check if tag doesn't contain selection\n if (tag.subTags !== undefined && tag.subTags.length !== 0) {\n const selectedTag = findMentionTagForSelection(tag.subTags, selection);\n if (selectedTag !== undefined) {\n mentionTag = selectedTag;\n return false;\n }\n } else if (tag.tagType === MSFT_MENTION_TAG) {\n mentionTag = tag;\n return false;\n }\n }\n return true;\n });\n return mentionTag;\n};\n\n/**\n * Props for finding new selection index for mention\n *\n * @private\n */\ntype NewSelectionIndexForMentionProps = {\n tag: TagData;\n textValue: string;\n currentSelectionIndex: number;\n previousSelectionIndex: number;\n};\n\n/**\n * Find a new the selection index.\n *\n * @private\n * @param props - Props for finding new selection index for mention.\n * @returns New selection index if it is inside of a mention tag, otherwise the current selection.\n */\nexport const findNewSelectionIndexForMention = (props: NewSelectionIndexForMentionProps): number => {\n const { tag, textValue, currentSelectionIndex, previousSelectionIndex } = props;\n // check if this is a mention tag and selection should be updated\n if (\n tag.tagType !== MSFT_MENTION_TAG ||\n tag.plainTextBeginIndex === undefined ||\n currentSelectionIndex === previousSelectionIndex ||\n tag.plainTextEndIndex === undefined\n ) {\n return currentSelectionIndex;\n }\n let spaceIndex = 0;\n if (currentSelectionIndex <= previousSelectionIndex) {\n // the cursor is moved to the left, find the last index before the cursor\n spaceIndex = textValue.lastIndexOf(' ', currentSelectionIndex ?? 0);\n if (spaceIndex === -1) {\n // no space before the selection, use the beginning of the tag\n spaceIndex = tag.plainTextBeginIndex;\n }\n } else {\n // the cursor is moved to the right, find the fist index after the cursor\n spaceIndex = textValue.indexOf(' ', currentSelectionIndex ?? 0);\n if (spaceIndex === -1) {\n // no space after the selection, use the end of the tag\n spaceIndex = tag.plainTextEndIndex ?? tag.plainTextBeginIndex;\n }\n }\n spaceIndex = getValidatedIndexInRange({\n min: tag.plainTextBeginIndex,\n max: tag.plainTextEndIndex,\n currentValue: spaceIndex\n });\n return spaceIndex;\n};\n\n/**\n * Props for mention update HTML function\n *\n * @private\n */\ntype MentionTagUpdateProps = {\n htmlText: string;\n oldPlainText: string;\n lastProcessedHTMLIndex: number;\n processedChange: string;\n change: string;\n tag: TagData;\n closeTagIdx: number;\n closeTagLength: number;\n plainTextEndIndex: number;\n startIndex: number;\n oldPlainTextEndIndex: number;\n mentionTagLength: number;\n};\n\n/**\n * Result for mention update HTML function\n *\n * @private\n */\ntype MentionTagUpdateResult = {\n result: string;\n updatedChange: string;\n htmlIndex: number;\n plainTextSelectionEndIndex?: number;\n};\n\n/**\n * Handle mention tag edit and by word deleting\n *\n * @private\n * @param props - Props for mention update HTML function.\n * @returns Updated texts and indexes.\n */\nconst handleMentionTagUpdate = (props: MentionTagUpdateProps): MentionTagUpdateResult => {\n const {\n htmlText,\n oldPlainText,\n change,\n tag,\n closeTagIdx,\n closeTagLength,\n plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n } = props;\n let processedChange = props.processedChange;\n let lastProcessedHTMLIndex = props.lastProcessedHTMLIndex;\n if (tag.tagType !== MSFT_MENTION_TAG || tag.plainTextBeginIndex === undefined) {\n // not a mention tag\n return {\n result: '',\n updatedChange: processedChange,\n htmlIndex: lastProcessedHTMLIndex,\n plainTextSelectionEndIndex: undefined\n };\n }\n let result = '';\n let plainTextSelectionEndIndex: number | undefined;\n let rangeStart: number;\n let rangeEnd: number;\n // check if space symbol is handled in case if string looks like '<1 2 3>'\n let isSpaceLengthHandled = false;\n rangeStart = oldPlainText.lastIndexOf(' ', startIndex);\n if (rangeStart !== -1 && rangeStart !== undefined && rangeStart > tag.plainTextBeginIndex) {\n isSpaceLengthHandled = true;\n }\n rangeEnd = oldPlainText.indexOf(' ', oldPlainTextEndIndex);\n if (rangeEnd === -1 || rangeEnd === undefined) {\n // check if space symbol is not found\n rangeEnd = plainTextEndIndex;\n } else if (!isSpaceLengthHandled) {\n // +1 to include the space symbol\n rangeEnd += 1;\n }\n isSpaceLengthHandled = true;\n\n if (rangeStart === -1 || rangeStart === undefined || rangeStart < tag.plainTextBeginIndex) {\n // rangeStart should be at least equal to tag.plainTextBeginIndex\n rangeStart = tag.plainTextBeginIndex;\n }\n if (rangeEnd > plainTextEndIndex) {\n // rangeEnd should be at most equal to plainTextEndIndex\n rangeEnd = plainTextEndIndex;\n }\n if (rangeStart === tag.plainTextBeginIndex && rangeEnd === plainTextEndIndex) {\n // the whole tag should be removed\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n plainTextSelectionEndIndex = tag.plainTextBeginIndex + change.length;\n processedChange = '';\n lastProcessedHTMLIndex = closeTagIdx + closeTagLength;\n } else {\n // only part of the tag should be removed\n let startChangeDiff = 0;\n let endChangeDiff = 0;\n // need to check only rangeStart > tag.plainTextBeginIndex as when rangeStart === tag.plainTextBeginIndex startChangeDiff = 0 and mentionTagLength shouldn't be subtracted\n if (rangeStart > tag.plainTextBeginIndex) {\n startChangeDiff = rangeStart - tag.plainTextBeginIndex - mentionTagLength;\n }\n endChangeDiff = rangeEnd - tag.plainTextBeginIndex - mentionTagLength;\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff);\n\n if (startIndex < tag.plainTextBeginIndex) {\n // if the change is before the tag, the selection should start from startIndex (rangeStart will be equal to tag.plainTextBeginIndex)\n plainTextSelectionEndIndex = startIndex + change.length;\n } else {\n // if the change is inside the tag, the selection should start with rangeStart\n plainTextSelectionEndIndex = rangeStart + change.length;\n }\n lastProcessedHTMLIndex = tag.openTagIndex + tag.openTagBody.length + endChangeDiff;\n // processed change should not be changed as it should be added after the tag\n }\n return { result, updatedChange: processedChange, htmlIndex: lastProcessedHTMLIndex, plainTextSelectionEndIndex };\n};\n\n/**\n * Closing tag information\n *\n * @private\n */\ntype ClosingTagInfoResult = {\n plainTextEndIndex: number;\n closeTagIdx: number;\n closeTagLength: number;\n};\n\n/**\n * Get closing tag information if exists otherwise return information as for self closing tag\n *\n * @private\n * @param tag - Tag data.\n * @returns Closing tag information for the provided tag.\n */\nconst getTagClosingTagInfo = (tag: TagData): ClosingTagInfoResult => {\n let plainTextEndIndex = 0;\n let closeTagIdx = 0;\n let closeTagLength = 0;\n if (tag.plainTextEndIndex !== undefined && tag.closingTagIndex !== undefined) {\n // close tag exists\n plainTextEndIndex = tag.plainTextEndIndex;\n closeTagIdx = tag.closingTagIndex;\n // tag.tagType.length + </>\n closeTagLength = tag.tagType.length + 3;\n } else if (tag.plainTextBeginIndex !== undefined) {\n // no close tag\n plainTextEndIndex = tag.plainTextBeginIndex;\n closeTagIdx = tag.openTagIndex + tag.openTagBody.length;\n closeTagLength = 0;\n }\n return { plainTextEndIndex, closeTagIdx, closeTagLength };\n};\n\n/**\n * Props for update HTML function\n *\n * @private\n */\ntype UpdateHTMLProps = {\n htmlText: string;\n oldPlainText: string;\n tags: TagData[];\n startIndex: number;\n oldPlainTextEndIndex: number;\n change: string;\n mentionTrigger: string;\n};\n\n/**\n * Go through the text and update it with the changed text\n *\n * @private\n * @param props - Props for update HTML function.\n * @returns Updated HTML and selection index if the selection index should be set.\n */\nexport const updateHTML = (props: UpdateHTMLProps): { updatedHTML: string; updatedSelectionIndex?: number } => {\n const { htmlText, oldPlainText, tags, startIndex, oldPlainTextEndIndex, change, mentionTrigger } = props;\n if (tags.length === 0 || (startIndex === 0 && oldPlainTextEndIndex === oldPlainText.length - 1)) {\n // no tags added yet or the whole text is changed\n const changeWithSkippedChars = escapeHTMLChars(change);\n const updatedHTML =\n escapeHTMLChars(oldPlainText.substring(0, startIndex)) +\n changeWithSkippedChars +\n escapeHTMLChars(oldPlainText.substring(oldPlainTextEndIndex));\n return { updatedHTML, updatedSelectionIndex: undefined };\n }\n let result = '';\n let lastProcessedHTMLIndex = 0;\n // the value can be updated with empty string when the change covers more than 1 place (tag + before or after the tag)\n // in this case change won't be added as part of the tag\n // e.g.: change is before and partially in tag => change will be added before the tag and outdated text in the tag will be removed\n // e.g.: change is after and partially in tag => change will be added after the tag and outdated text in the tag will be removed\n // e.g.: change is on the beginning of the tag => change will be added before the tag\n // e.g.: change is on the end of the tag => change will be added to the tag if it's not mention and after the tag if it's mention\n let processedChange = escapeHTMLChars(change);\n\n // end tag plain text index of the last processed tag\n let lastProcessedPlainTextTagEndIndex = 0;\n // as some tags/text can be removed fully, selection should be updated correctly\n let changeNewEndIndex: number | undefined;\n\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i];\n if (tag?.plainTextBeginIndex === undefined) {\n continue;\n }\n // all plain text indexes includes trigger length for the mention that shouldn't be included in\n // htmlText.substring because html strings don't include the trigger\n // mentionTagLength will be set only for mention tag, otherwise should be 0\n let mentionTagLength = 0;\n let isMentionTag = false;\n if (tag.tagType === MSFT_MENTION_TAG) {\n mentionTagLength = mentionTrigger.length;\n isMentionTag = true;\n }\n if (startIndex <= tag.plainTextBeginIndex) {\n // change start is before the open tag\n // Math.max(lastProcessedPlainTextTagEndIndex, startIndex) is used as startIndex may not be in [[previous tag].plainTextEndIndex - tag.plainTextBeginIndex] range\n const startChangeDiff = getChangeDiff(\n oldPlainText,\n Math.max(lastProcessedPlainTextTagEndIndex, startIndex),\n tag.plainTextBeginIndex\n );\n\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex - startChangeDiff) + processedChange;\n processedChange = '';\n if (oldPlainTextEndIndex <= tag.plainTextBeginIndex) {\n // the whole change is before tag start\n // mentionTag length can be ignored here as the change is before the tag\n const endChangeDiff = getChangeDiff(oldPlainText, oldPlainTextEndIndex, tag.plainTextBeginIndex);\n lastProcessedHTMLIndex = tag.openTagIndex - endChangeDiff;\n // the change is handled; exit\n break;\n } else {\n // change continues in the tag\n lastProcessedHTMLIndex = tag.openTagIndex;\n // proceed to the next check\n }\n }\n const closingTagInfo = getTagClosingTagInfo(tag);\n if (startIndex <= closingTagInfo.plainTextEndIndex) {\n // change started before the end tag\n if (startIndex <= tag.plainTextBeginIndex && oldPlainTextEndIndex === closingTagInfo.plainTextEndIndex) {\n // the change is a tag or starts before the tag\n // tag should be removed, no matter if there are sub-tags\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n processedChange = '';\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // the change is handled; exit\n break;\n } else if (startIndex >= tag.plainTextBeginIndex && oldPlainTextEndIndex <= closingTagInfo.plainTextEndIndex) {\n // the change is between the tag\n if (isMentionTag) {\n if (change !== '') {\n // case for startIndex === tag.plainTextBeginIndex and closingTagInfo.plainTextEndIndex === startIndex\n // is handled in startIndex <= tag.plainTextBeginIndex condition check\n // the change will be added at the beginning before the mention tag\n if (startIndex === closingTagInfo.plainTextEndIndex) {\n // non empty change at the end of the mention tag to be added after the mention tag\n result +=\n htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) +\n processedChange;\n changeNewEndIndex = closingTagInfo.plainTextEndIndex + unEscapeHtmlCharacters(processedChange).length;\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n processedChange = '';\n // the change is handled; exit\n break;\n } else if (\n startIndex > tag.plainTextBeginIndex &&\n oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex &&\n startIndex === oldPlainTextEndIndex\n ) {\n // mention tag should be deleted when user tries to edit it in the middle\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex) + processedChange;\n changeNewEndIndex = tag.plainTextBeginIndex + unEscapeHtmlCharacters(processedChange).length;\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n\n processedChange = '';\n // the change is handled; exit\n break;\n } else {\n // the selection for more that 1 symbol when 1 of the ends is included\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange,\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n processedChange = updateMentionTagResult.updatedChange;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // proceed with the next calculations\n }\n } else {\n // When change is empty, it means that this change is a deletion\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange,\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n processedChange = updateMentionTagResult.updatedChange;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // the change is handled; exit\n break;\n }\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: processedChange,\n mentionTrigger\n });\n result += stringBefore + updatedContent.updatedHTML;\n changeNewEndIndex = updatedContent.updatedSelectionIndex;\n // the change is handled; exit\n break;\n } else {\n // no subtags\n const startChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, startIndex);\n result +=\n htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length + startChangeDiff) +\n processedChange;\n processedChange = '';\n if (oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex) {\n const endChangeDiff = getChangeDiff(oldPlainText, tag.plainTextBeginIndex, oldPlainTextEndIndex);\n lastProcessedHTMLIndex = tag.openTagIndex + tag.openTagBody.length + endChangeDiff;\n } else if (oldPlainTextEndIndex === closingTagInfo.plainTextEndIndex) {\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n }\n // the change is handled; exit\n break;\n }\n } else if (startIndex > tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change started in the tag but finishes somewhere further\n if (isMentionTag) {\n if (startIndex === closingTagInfo.plainTextEndIndex) {\n // the change should be handled out of mention tag\n // as startIndex === closingTagInfo.plainTextEndIndex and oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex\n result += htmlText.substring(\n lastProcessedHTMLIndex,\n closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength\n );\n // no need to handle plainTextSelectionEndIndex as the change will be added later\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n } else {\n // part of the mention tag was changed/deleted\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange: '',\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n result += updateMentionTagResult.result;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n // no need to handle plainTextSelectionEndIndex as the change will be added later\n }\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: '', // the part of the tag should be just deleted without processedChange update and change will be added after this tag\n mentionTrigger\n });\n result += stringBefore + updatedContent.updatedHTML;\n } else {\n // no subtags\n const startChangeDiff = startIndex - tag.plainTextBeginIndex - mentionTagLength;\n result += htmlText.substring(\n lastProcessedHTMLIndex,\n tag.openTagIndex + tag.openTagBody.length + startChangeDiff\n );\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n }\n // proceed with the next calculations\n } else if (startIndex < tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change starts before the tag and finishes after it\n // tag should be removed, no matter if there are subtags\n // no need to save anything between lastProcessedHTMLIndex and closeTagIdx + closeTagLength\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // proceed with the next calculations\n } else if (startIndex === tag.plainTextBeginIndex && oldPlainTextEndIndex > closingTagInfo.plainTextEndIndex) {\n // the change starts in the tag and finishes after it\n // tag should be removed, no matter if there are subtags\n result += htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex);\n // processedChange shouldn't be updated as it will be added after the tag\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength;\n // proceed with the next calculations\n } else if (startIndex < tag.plainTextBeginIndex && oldPlainTextEndIndex < closingTagInfo.plainTextEndIndex) {\n // the change starts before the tag and ends in a tag\n if (isMentionTag) {\n // mention tag\n const updateMentionTagResult = handleMentionTagUpdate({\n htmlText,\n oldPlainText,\n lastProcessedHTMLIndex,\n processedChange: '', // the part of mention should be just deleted without processedChange update\n change,\n tag,\n closeTagIdx: closingTagInfo.closeTagIdx,\n closeTagLength: closingTagInfo.closeTagLength,\n plainTextEndIndex: closingTagInfo.plainTextEndIndex,\n startIndex,\n oldPlainTextEndIndex,\n mentionTagLength\n });\n changeNewEndIndex = updateMentionTagResult.plainTextSelectionEndIndex;\n result += updateMentionTagResult.result;\n lastProcessedHTMLIndex = updateMentionTagResult.htmlIndex;\n } else if (tag.subTags !== undefined && tag.subTags.length !== 0 && tag.content !== undefined) {\n // with subtags\n const stringBefore = htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length);\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx;\n const updatedContent = updateHTML({\n htmlText: tag.content,\n oldPlainText,\n tags: tag.subTags,\n startIndex,\n oldPlainTextEndIndex,\n change: processedChange, // processedChange should be equal '' and the part of the tag should be deleted as the change was handled before this tag\n mentionTrigger\n });\n processedChange = '';\n result += stringBefore + updatedContent.updatedHTML;\n } else {\n // no subtags\n result +=\n htmlText.substring(lastProcessedHTMLIndex, tag.openTagIndex + tag.openTagBody.length) + processedChange;\n processedChange = '';\n // oldPlainTextEndIndex already includes mentionTag length\n const endChangeDiff = getChangeDiff(oldPlainText, oldPlainTextEndIndex, closingTagInfo.plainTextEndIndex);\n // as change may be before the end of the tag, we need to add the rest of the tag\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx - endChangeDiff;\n }\n // the change is handled; exit\n break;\n }\n lastProcessedPlainTextTagEndIndex = closingTagInfo.plainTextEndIndex;\n }\n\n if (i === tags.length - 1 && oldPlainTextEndIndex >= closingTagInfo.plainTextEndIndex) {\n // the last tag should handle the end of the change if needed\n // oldPlainTextEndIndex already includes mentionTag length\n const endChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, oldPlainTextEndIndex);\n if (startIndex >= closingTagInfo.plainTextEndIndex) {\n const startChangeDiff = getChangeDiff(oldPlainText, closingTagInfo.plainTextEndIndex, startIndex);\n result +=\n htmlText.substring(\n lastProcessedHTMLIndex,\n closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + startChangeDiff\n ) + processedChange;\n } else {\n result +=\n htmlText.substring(lastProcessedHTMLIndex, closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength) +\n processedChange;\n }\n processedChange = '';\n lastProcessedHTMLIndex = closingTagInfo.closeTagIdx + closingTagInfo.closeTagLength + endChangeDiff;\n // the change is handled; exit\n // break is not required here as this is the last element but added for consistency\n break;\n }\n }\n if (lastProcessedHTMLIndex < htmlText.length) {\n // add the rest of the html string\n result += htmlText.substring(lastProcessedHTMLIndex);\n }\n return { updatedHTML: result, updatedSelectionIndex: changeNewEndIndex };\n};\n\n/**\n * Props for finding strings diff indexes\n *\n * @private\n */\ntype DiffIndexesProps = {\n // the old text\n oldText: string;\n // the new text\n newText: string;\n // the start of previous selection, should be a valid position in the input field\n previousSelectionStart: number;\n // the end of previous selection, should be a valid position in the input field\n previousSelectionEnd: number;\n // the start of current selection, should be a valid position in the input field\n currentSelectionStart: number;\n // the end of current selection, should be a valid position in the input field\n currentSelectionEnd: number;\n};\n\n/**\n * Result of finding strings diff indexes function\n *\n * @private\n */\ntype DiffIndexesResult = {\n changeStart: number;\n oldChangeEnd: number;\n newChangeEnd: number;\n};\n\n/**\n * Given the oldText and newText, find the start index, old end index and new end index for the changes\n *\n * @private\n * @param props - Props for finding stings diff indexes function.\n * @returns Indexes for change start and ends in new and old texts. The old and new end indexes are exclusive.\n */\nexport const findStringsDiffIndexes = (props: DiffIndexesProps): DiffIndexesResult => {\n const { oldText, newText, previousSelectionStart, previousSelectionEnd, currentSelectionStart, currentSelectionEnd } =\n props;\n const newTextLength = newText.length;\n const oldTextLength = oldText.length;\n // let changeStart = 0;\n let newChangeEnd = newTextLength;\n let oldChangeEnd = oldTextLength;\n const previousSelectionStartValue = previousSelectionStart > -1 ? previousSelectionStart : oldTextLength;\n const previousSelectionEndValue = previousSelectionEnd > -1 ? previousSelectionEnd : oldTextLength;\n const currentSelectionStartValue = currentSelectionStart > -1 ? currentSelectionStart : newTextLength;\n const currentSelectionEndValue = currentSelectionEnd > -1 ? currentSelectionEnd : newTextLength;\n const changeStart = Math.min(\n previousSelectionStartValue,\n previousSelectionEndValue,\n currentSelectionStartValue,\n currentSelectionEndValue,\n newTextLength,\n oldTextLength\n );\n\n if (oldTextLength < newTextLength) {\n //insert or replacement\n if (oldTextLength === changeStart) {\n // when change was at the end of string\n // change is found\n newChangeEnd = newTextLength;\n oldChangeEnd = oldTextLength;\n } else {\n for (let i = 0; i < newTextLength && oldTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive\n newChangeEnd += 1;\n oldChangeEnd += 1;\n }\n } else if (oldTextLength > newTextLength) {\n //deletion or replacement\n if (newTextLength === changeStart) {\n // when change was at the end of string\n // change is found\n newChangeEnd = newTextLength;\n oldChangeEnd = oldTextLength;\n } else {\n for (let i = 0; i < oldTextLength && newTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive\n newChangeEnd += 1;\n oldChangeEnd += 1;\n }\n } else {\n // replacement\n for (let i = 0; i < oldTextLength && oldTextLength - i >= changeStart; i++) {\n newChangeEnd = newTextLength - i - 1;\n oldChangeEnd = oldTextLength - i - 1;\n\n if (newText[newChangeEnd] !== oldText[oldChangeEnd]) {\n // change is found\n break;\n }\n }\n // make indexes exclusive if they aren't equal to the length of the string\n if (newChangeEnd !== newText.length) {\n newChangeEnd += 1;\n }\n if (oldChangeEnd !== oldText.length) {\n oldChangeEnd += 1;\n }\n }\n return { changeStart, oldChangeEnd, newChangeEnd };\n};\n\n/**\n * Get the html string for the mention suggestion.\n *\n * @private\n * @param suggestion - The mention suggestion.\n * @param localeStrings - The locale strings.\n * @returns The html string for the mention suggestion.\n */\nexport const htmlStringForMentionSuggestion = (suggestion: Mention, localeStrings: ComponentStrings): string => {\n const idHTML = ' id=\"' + suggestion.id + '\"';\n const displayText = getDisplayNameForMentionSuggestion(suggestion, localeStrings);\n return '<' + MSFT_MENTION_TAG + idHTML + '>' + displayText + '</' + MSFT_MENTION_TAG + '>';\n};\n\n/**\n * Get display name for the mention suggestion.\n *\n * @private\n *\n * @param suggestion - The mention suggestion.\n * @param localeStrings - The locale strings.\n * @returns The display name for the mention suggestion or display name placeholder if display name is empty.\n */\nexport const getDisplayNameForMentionSuggestion = (suggestion: Mention, localeStrings: ComponentStrings): string => {\n const displayNamePlaceholder = localeStrings.participantItem.displayNamePlaceholder;\n return suggestion.displayText !== '' ? suggestion.displayText : displayNamePlaceholder ?? '';\n};\n\n/**\n * Tag data for a HTML tag in the string\n *\n * @private\n */\nexport type TagData = {\n tagType: string; // The type of tag (e.g. msft-mention)\n openTagIndex: number; // Start of the tag relative to the parent content\n openTagBody: string; // Complete open tag body\n content?: string; // All content between the open and close tags\n closingTagIndex?: number; // Start of the close tag relative to the parent content\n subTags?: TagData[]; // Any child tags\n plainTextBeginIndex?: number; // Absolute index of the open tag start should be in plain text\n plainTextEndIndex?: number; // Absolute index of the close tag start should be in plain text\n};\n\ntype HtmlTagType = 'open' | 'close' | 'self-closing';\n\ntype HtmlTag = {\n content: string;\n startIdx: number;\n type: HtmlTagType;\n};\n\n/**\n * Parse the text and return the tags and the plain text in one go\n * @private\n * @param text - The text to parse for HTML tags\n * @param trigger The trigger to show for the mention tag in plain text\n *\n * @returns An array of tags and the plain text representation\n */\nexport const textToTagParser = (text: string, trigger: string): { tags: TagData[]; plainText: string } => {\n const tags: TagData[] = []; // Tags passed back to the caller\n const tagParseStack: TagData[] = []; // Local stack to use while parsing\n\n let plainTextRepresentation = '';\n\n let parseIndex = 0;\n while (parseIndex < text.length) {\n const foundHtmlTag = findNextHtmlTag(text, parseIndex);\n\n if (!foundHtmlTag) {\n if (parseIndex !== 0) {\n // Add the remaining text to the plain text representation\n const newText = text.substring(parseIndex);\n plainTextRepresentation += unEscapeHtmlCharacters(newText);\n } else {\n plainTextRepresentation = unEscapeHtmlCharacters(text);\n }\n break;\n }\n\n if (foundHtmlTag.type === 'open' || foundHtmlTag.type === 'self-closing') {\n const nextTag = parseOpenTag(foundHtmlTag.content, foundHtmlTag.startIdx);\n // Add the plain text between the last tag and this one found\n plainTextRepresentation += unEscapeHtmlCharacters(text.substring(parseIndex, foundHtmlTag.startIdx));\n nextTag.plainTextBeginIndex = plainTextRepresentation.length;\n\n if (foundHtmlTag.type === 'open') {\n tagParseStack.push(nextTag);\n } else {\n nextTag.content = '';\n nextTag.plainTextBeginIndex = plainTextRepresentation.length;\n nextTag.plainTextEndIndex = plainTextRepresentation.length;\n addTag(nextTag, tagParseStack, tags);\n }\n }\n\n if (foundHtmlTag.type === 'close') {\n const currentOpenTag = tagParseStack.pop();\n const closeTagType = foundHtmlTag.content.substring(2, foundHtmlTag.content.length - 1).toLowerCase();\n\n if (currentOpenTag && currentOpenTag.tagType === closeTagType) {\n // Tag startIdx is absolute to the text. This is updated later to be relative to the parent tag\n currentOpenTag.content = text.substring(\n currentOpenTag.openTagIndex + currentOpenTag.openTagBody.length,\n foundHtmlTag.startIdx\n );\n\n // Insert the plain text pieces for the sub tags\n if (currentOpenTag.tagType === MSFT_MENTION_TAG) {\n plainTextRepresentation =\n plainTextRepresentation.slice(0, currentOpenTag.plainTextBeginIndex) +\n trigger +\n plainTextRepresentation.slice(currentOpenTag.plainTextBeginIndex);\n }\n\n const lastSubTag = currentOpenTag.subTags?.[currentOpenTag.subTags.length - 1];\n if (!currentOpenTag.subTags) {\n plainTextRepresentation += unEscapeHtmlCharacters(currentOpenTag.content);\n } else if (lastSubTag) {\n // Add text after the last tag\n const startOfRemainingText =\n (lastSubTag?.closingTagIndex ?? lastSubTag.openTagIndex) + lastSubTag.tagType.length + 3;\n const trailingText = currentOpenTag.content.substring(startOfRemainingText);\n plainTextRepresentation += unEscapeHtmlCharacters(trailingText);\n }\n\n currentOpenTag.plainTextEndIndex = plainTextRepresentation.length;\n addTag(currentOpenTag, tagParseStack, tags);\n } else {\n throw new Error(\n 'Unexpected close tag found. Got \"' +\n closeTagType +\n '\" but expected \"' +\n tagParseStack[tagParseStack.length - 1]?.tagType +\n '\"'\n );\n }\n }\n\n // Update parsing index; move past the end of the close tag\n parseIndex = foundHtmlTag.startIdx + foundHtmlTag.content.length;\n } // While parseIndex < text.length loop\n\n return { tags, plainText: plainTextRepresentation };\n};\n\nconst parseOpenTag = (tag: string, startIdx: number): TagData => {\n let tagType = tag.substring(1, tag.length - 1);\n tagType = tagType.split(' ')[0] ?? tagType;\n tagType = tagType.toLowerCase().replace('/', '');\n return {\n tagType,\n openTagIndex: startIdx,\n openTagBody: tag\n };\n};\n\nconst findNextHtmlTag = (text: string, startIndex: number): HtmlTag | undefined => {\n const tagStartIndex = text.indexOf('<', startIndex);\n if (tagStartIndex === -1) {\n // No more tags\n return undefined;\n }\n const tagEndIndex = text.indexOf('>', tagStartIndex);\n if (tagEndIndex === -1) {\n // No close tag\n return undefined;\n }\n const tag = text.substring(tagStartIndex, tagEndIndex + 1);\n let type: HtmlTagType = 'open';\n if (tag[1] === '/') {\n type = 'close';\n } else if (tag[tag.length - 2] === '/') {\n type = 'self-closing';\n }\n return {\n content: tag,\n startIdx: tagStartIndex,\n type\n };\n};\n\nconst addTag = (tag: TagData, parseStack: TagData[], tags: TagData[]): void => {\n // Add as sub-tag to the parent stack tag, if there is one\n const parentTag = parseStack[parseStack.length - 1];\n\n if (parentTag) {\n // Adjust the open tag index to be relative to the parent tag\n const parentContentStartIdx = parentTag.openTagIndex + parentTag.openTagBody.length;\n const relativeIdx = tag.openTagIndex - parentContentStartIdx;\n tag.openTagIndex = relativeIdx;\n }\n\n if (!tag.closingTagIndex) {\n // If the tag is self-closing, the close tag is the same as the open tag\n if (tag.openTagBody[tag.openTagBody.length - 2] === '/') {\n tag.closingTagIndex = tag.openTagIndex;\n } else {\n // Otherwise, the close tag index is the open tag index + the open tag body + the content length\n tag.closingTagIndex = tag.openTagIndex + tag.openTagBody.length + (tag.content ?? []).length;\n }\n }\n\n // Put the tag where it belongs\n if (!parentTag) {\n tags.push(tag);\n } else {\n if (!parentTag.subTags) {\n parentTag.subTags = [tag];\n } else {\n parentTag.subTags.push(tag);\n }\n }\n};\n\n// We should revisit this in the future when we support other text such as rich text editing.\nconst escapeHTMLChars = (text: string): string => {\n const mentionRegex = new RegExp(`<${MSFT_MENTION_TAG}(.*?)>(.*?)</${MSFT_MENTION_TAG}>`, 'i');\n if (!text.match(mentionRegex)) {\n return text\n .replace(/&(?![A-Z]+;)/gi, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n }\n return text;\n};\n\nconst getChangeDiff = (plainText: string, startIndex: number, endIndex: number): number => {\n return endIndex - startIndex + getLengthDiffForEscapedHtmlChars(plainText, startIndex, endIndex);\n};\n\nconst getLengthDiffForEscapedHtmlChars = (text: string, startIndex: number, endIndex: number): number => {\n const subText = text.substring(startIndex, endIndex);\n const escapedAngleBracketCount = subText.match(/(<)|(>)/g)?.length || 0;\n let escapedCharLength = escapedAngleBracketCount * ('&lt;'.length - '<'.length);\n const escapedAmpersandCount = subText.match(/&/g)?.length || 0;\n escapedCharLength += escapedAmpersandCount * ('&amp;'.length - '&'.length);\n return escapedCharLength;\n};\n\nconst unEscapeHtmlCharacters = (text: string): string => {\n return text.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&');\n};\n"]}
@@ -25,23 +25,23 @@ export const _TroubleshootingGuideErrorBar = (props) => {
25
25
  // Without this behaviour, this `useEffect` block would cause a render loop.
26
26
  useEffect(() => setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors)), [props.activeErrorMessages, dismissedErrors]);
27
27
  const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors);
28
- return React.createElement(Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error, i) => {
29
- const devicePermissionErrorBar = React.createElement("div", null,
28
+ return (React.createElement(Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error, i) => {
29
+ const devicePermissionErrorBar = (React.createElement("div", null,
30
30
  strings[error.type],
31
31
  ' ',
32
- onPermissionsTroubleshootingClick && React.createElement(Link, { onClick: () => {
32
+ onPermissionsTroubleshootingClick && (React.createElement(Link, { onClick: () => {
33
33
  onPermissionsTroubleshootingClick(permissionsState);
34
34
  } },
35
- React.createElement("span", { className: messageBarLinkStyles(theme, true) }, troubleshootingGuideStrings.devicePermissionLinkText)));
36
- const networkErrorBar = React.createElement("div", null,
35
+ React.createElement("span", { className: messageBarLinkStyles(theme, true) }, troubleshootingGuideStrings.devicePermissionLinkText)))));
36
+ const networkErrorBar = (React.createElement("div", null,
37
37
  strings[error.type],
38
38
  ' ',
39
- onNetworkingTroubleshootingClick && React.createElement(Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
40
- React.createElement("span", { className: messageBarLinkStyles(theme, true) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)));
41
- return React.createElement(MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: `${error.type} ${i}`, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle(theme), onClick: () => {
39
+ onNetworkingTroubleshootingClick && (React.createElement(Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
40
+ React.createElement("span", { className: messageBarLinkStyles(theme, true) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
41
+ return (React.createElement(MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: `${error.type} ${i}`, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle(theme), onClick: () => {
42
42
  setDismissedErrors(dismissError(dismissedErrors, error));
43
- }, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false, "aria-role": "alert", "aria-live": "assertive" }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar));
44
- }));
43
+ }, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false, "aria-role": "alert", "aria-live": "assertive" }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
44
+ })));
45
45
  };
46
46
  const showErrorBar = (errorType, devicePermissionErrorBar, networkErrorBar) => {
47
47
  if (errorType === 'callNetworkQualityLow') {