botframework-webchat-api 4.13.0 → 4.15.0

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 (689) hide show
  1. package/.eslintrc.yml +4 -100
  2. package/.prettierrc.yml +1 -1
  3. package/lib/StyleOptions.d.ts +270 -15
  4. package/lib/StyleOptions.d.ts.map +1 -1
  5. package/lib/defaultStyleOptions.d.ts +4 -0
  6. package/lib/defaultStyleOptions.d.ts.map +1 -0
  7. package/lib/defaultStyleOptions.js +73 -16
  8. package/lib/hooks/Composer.d.ts +71 -0
  9. package/lib/hooks/Composer.d.ts.map +1 -0
  10. package/lib/hooks/Composer.js +122 -90
  11. package/lib/hooks/index.d.ts +74 -0
  12. package/lib/hooks/index.d.ts.map +1 -0
  13. package/lib/hooks/index.js +89 -1
  14. package/lib/hooks/internal/ErrorBox.js +2 -2
  15. package/lib/hooks/internal/Tracker.d.ts +4 -0
  16. package/lib/hooks/internal/Tracker.d.ts.map +1 -0
  17. package/lib/hooks/internal/WebChatAPIContext.d.ts +81 -0
  18. package/lib/hooks/internal/WebChatAPIContext.d.ts.map +1 -0
  19. package/lib/hooks/internal/WebChatAPIContext.js +2 -4
  20. package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts +4 -0
  21. package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +1 -0
  22. package/lib/hooks/internal/useCreateActivityRendererInternal.js +1 -1
  23. package/lib/hooks/internal/useDebugDeps.js +11 -5
  24. package/lib/hooks/internal/useDownscaleImageToDataURL.js +1 -1
  25. package/lib/hooks/internal/useErrorBoxClass.js +1 -1
  26. package/lib/hooks/internal/useForceRender.js +2 -2
  27. package/lib/hooks/internal/useLocalizedStrings.js +1 -1
  28. package/lib/hooks/internal/usePrevious.d.ts +2 -0
  29. package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
  30. package/lib/hooks/internal/usePrevious.js +17 -0
  31. package/lib/hooks/internal/useReadTelemetryDimensions.js +2 -2
  32. package/lib/hooks/internal/useTimePassed.js +2 -2
  33. package/lib/hooks/internal/useTracker.js +2 -2
  34. package/lib/hooks/internal/useValueRef.d.ts +3 -0
  35. package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
  36. package/lib/hooks/internal/useValueRef.js +24 -0
  37. package/lib/hooks/middleware/UserlandBoundary.js +4 -4
  38. package/lib/hooks/middleware/applyMiddleware.js +6 -6
  39. package/lib/hooks/middleware/concatMiddleware.d.ts +6 -0
  40. package/lib/hooks/middleware/concatMiddleware.d.ts.map +1 -0
  41. package/lib/hooks/middleware/concatMiddleware.js +3 -3
  42. package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts +3 -0
  43. package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +1 -0
  44. package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +6 -8
  45. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts +5 -0
  46. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +1 -0
  47. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +1 -1
  48. package/lib/hooks/useActiveTyping.d.ts +6 -0
  49. package/lib/hooks/useActiveTyping.d.ts.map +1 -0
  50. package/lib/hooks/useActiveTyping.js +4 -4
  51. package/lib/hooks/useActivities.d.ts +3 -0
  52. package/lib/hooks/useActivities.d.ts.map +1 -0
  53. package/lib/hooks/useActivities.js +1 -1
  54. package/lib/hooks/useActivityKeys.d.ts +3 -0
  55. package/lib/hooks/useActivityKeys.d.ts.map +1 -0
  56. package/lib/hooks/useActivityKeys.js +14 -0
  57. package/lib/hooks/useActivityKeysByRead.d.ts +3 -0
  58. package/lib/hooks/useActivityKeysByRead.d.ts.map +1 -0
  59. package/lib/hooks/useActivityKeysByRead.js +14 -0
  60. package/lib/hooks/useAvatarForBot.d.ts +5 -0
  61. package/lib/hooks/useAvatarForBot.d.ts.map +1 -0
  62. package/lib/hooks/useAvatarForBot.js +2 -2
  63. package/lib/hooks/useAvatarForUser.d.ts +5 -0
  64. package/lib/hooks/useAvatarForUser.d.ts.map +1 -0
  65. package/lib/hooks/useAvatarForUser.js +2 -2
  66. package/lib/hooks/useByteFormatter.d.ts +2 -0
  67. package/lib/hooks/useByteFormatter.d.ts.map +1 -0
  68. package/lib/hooks/useByteFormatter.js +2 -2
  69. package/lib/hooks/useConnectivityStatus.d.ts +2 -0
  70. package/lib/hooks/useConnectivityStatus.d.ts.map +1 -0
  71. package/lib/hooks/useConnectivityStatus.js +1 -1
  72. package/lib/hooks/useCreateActivityRenderer.d.ts +3 -0
  73. package/lib/hooks/useCreateActivityRenderer.d.ts.map +1 -0
  74. package/lib/hooks/useCreateActivityRenderer.js +1 -2
  75. package/lib/hooks/useCreateActivityStatusRenderer.d.ts +9 -0
  76. package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +1 -0
  77. package/lib/hooks/useCreateActivityStatusRenderer.js +6 -4
  78. package/lib/hooks/useCreateAvatarRenderer.d.ts +6 -0
  79. package/lib/hooks/useCreateAvatarRenderer.d.ts.map +1 -0
  80. package/lib/hooks/useCreateAvatarRenderer.js +2 -2
  81. package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts +3 -0
  82. package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts.map +1 -0
  83. package/lib/hooks/useCreateScrollToEndButtonRenderer.js +15 -0
  84. package/lib/hooks/useDateFormatter.d.ts +2 -0
  85. package/lib/hooks/useDateFormatter.d.ts.map +1 -0
  86. package/lib/hooks/useDateFormatter.js +2 -2
  87. package/lib/hooks/useDebouncedNotifications.d.ts +13 -0
  88. package/lib/hooks/useDebouncedNotifications.d.ts.map +1 -0
  89. package/lib/hooks/useDebouncedNotifications.js +7 -7
  90. package/lib/hooks/useDictateInterims.d.ts +2 -0
  91. package/lib/hooks/useDictateInterims.d.ts.map +1 -0
  92. package/lib/hooks/useDictateInterims.js +1 -1
  93. package/lib/hooks/useDictateState.d.ts +2 -0
  94. package/lib/hooks/useDictateState.d.ts.map +1 -0
  95. package/lib/hooks/useDictateState.js +1 -1
  96. package/lib/hooks/useDirection.d.ts +2 -0
  97. package/lib/hooks/useDirection.d.ts.map +1 -0
  98. package/lib/hooks/useDirection.js +2 -2
  99. package/lib/hooks/useDisabled.d.ts +2 -0
  100. package/lib/hooks/useDisabled.d.ts.map +1 -0
  101. package/lib/hooks/useDisabled.js +1 -1
  102. package/lib/hooks/useDismissNotification.d.ts +2 -0
  103. package/lib/hooks/useDismissNotification.d.ts.map +1 -0
  104. package/lib/hooks/useDismissNotification.js +1 -1
  105. package/lib/hooks/useEmitTypingIndicator.d.ts +2 -0
  106. package/lib/hooks/useEmitTypingIndicator.d.ts.map +1 -0
  107. package/lib/hooks/useEmitTypingIndicator.js +1 -1
  108. package/lib/hooks/useGetActivityByKey.d.ts +3 -0
  109. package/lib/hooks/useGetActivityByKey.d.ts.map +1 -0
  110. package/lib/hooks/useGetActivityByKey.js +14 -0
  111. package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts +3 -0
  112. package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
  113. package/lib/hooks/useGetHasAcknowledgedByActivityKey.js +14 -0
  114. package/lib/hooks/useGetKeyByActivity.d.ts +3 -0
  115. package/lib/hooks/useGetKeyByActivity.d.ts.map +1 -0
  116. package/lib/hooks/useGetKeyByActivity.js +14 -0
  117. package/lib/hooks/useGetKeyByActivityId.d.ts +3 -0
  118. package/lib/hooks/useGetKeyByActivityId.d.ts.map +1 -0
  119. package/lib/hooks/useGetKeyByActivityId.js +14 -0
  120. package/lib/hooks/useGetSendTimeoutForActivity.d.ts +5 -0
  121. package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +1 -0
  122. package/lib/hooks/useGetSendTimeoutForActivity.js +2 -2
  123. package/lib/hooks/useGrammars.d.ts +2 -0
  124. package/lib/hooks/useGrammars.d.ts.map +1 -0
  125. package/lib/hooks/useGrammars.js +1 -1
  126. package/lib/hooks/useGroupActivities.d.ts +8 -0
  127. package/lib/hooks/useGroupActivities.d.ts.map +1 -0
  128. package/lib/hooks/useGroupActivities.js +1 -1
  129. package/lib/hooks/useGroupTimestamp.d.ts +2 -0
  130. package/lib/hooks/useGroupTimestamp.d.ts.map +1 -0
  131. package/lib/hooks/useGroupTimestamp.js +2 -2
  132. package/lib/hooks/useLanguage.d.ts +2 -0
  133. package/lib/hooks/useLanguage.d.ts.map +1 -0
  134. package/lib/hooks/useLanguage.js +1 -1
  135. package/lib/hooks/useLastAcknowledgedActivityKey.d.ts +3 -0
  136. package/lib/hooks/useLastAcknowledgedActivityKey.d.ts.map +1 -0
  137. package/lib/hooks/useLastAcknowledgedActivityKey.js +14 -0
  138. package/lib/hooks/useLastReadActivityKey.d.ts +3 -0
  139. package/lib/hooks/useLastReadActivityKey.d.ts.map +1 -0
  140. package/lib/hooks/useLastReadActivityKey.js +14 -0
  141. package/lib/hooks/useLastTypingAt.d.ts +5 -0
  142. package/lib/hooks/useLastTypingAt.d.ts.map +1 -0
  143. package/lib/hooks/useLastTypingAt.js +2 -1
  144. package/lib/hooks/useLocalize.d.ts +3 -0
  145. package/lib/hooks/useLocalize.d.ts.map +1 -0
  146. package/lib/hooks/useLocalize.js +5 -2
  147. package/lib/hooks/useLocalizeDate.d.ts +3 -0
  148. package/lib/hooks/useLocalizeDate.d.ts.map +1 -0
  149. package/lib/hooks/useLocalizeDate.js +3 -2
  150. package/lib/hooks/useLocalizer.d.ts +13 -0
  151. package/lib/hooks/useLocalizer.d.ts.map +1 -0
  152. package/lib/hooks/useLocalizer.js +16 -6
  153. package/lib/hooks/useMarkActivityAsSpoken.d.ts +3 -0
  154. package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +1 -0
  155. package/lib/hooks/useMarkActivityAsSpoken.js +1 -1
  156. package/lib/hooks/useMarkActivityKeyAsRead.d.ts +3 -0
  157. package/lib/hooks/useMarkActivityKeyAsRead.d.ts.map +1 -0
  158. package/lib/hooks/useMarkActivityKeyAsRead.js +14 -0
  159. package/lib/hooks/useMarkAllAsAcknowledged.d.ts +3 -0
  160. package/lib/hooks/useMarkAllAsAcknowledged.d.ts.map +1 -0
  161. package/lib/hooks/useMarkAllAsAcknowledged.js +14 -0
  162. package/lib/hooks/useNotifications.d.ts +3 -0
  163. package/lib/hooks/useNotifications.d.ts.map +1 -0
  164. package/lib/hooks/useNotifications.js +1 -1
  165. package/lib/hooks/usePerformCardAction.d.ts +3 -0
  166. package/lib/hooks/usePerformCardAction.d.ts.map +1 -0
  167. package/lib/hooks/usePerformCardAction.js +1 -1
  168. package/lib/hooks/usePostActivity.d.ts +4 -0
  169. package/lib/hooks/usePostActivity.d.ts.map +1 -0
  170. package/lib/hooks/usePostActivity.js +1 -1
  171. package/lib/hooks/useReferenceGrammarID.d.ts +2 -0
  172. package/lib/hooks/useReferenceGrammarID.d.ts.map +1 -0
  173. package/lib/hooks/useReferenceGrammarID.js +1 -1
  174. package/lib/hooks/useRelativeTimeFormatter.d.ts +2 -0
  175. package/lib/hooks/useRelativeTimeFormatter.d.ts.map +1 -0
  176. package/lib/hooks/useRelativeTimeFormatter.js +2 -2
  177. package/lib/hooks/useRenderActivity.js +2 -1
  178. package/lib/hooks/useRenderActivityStatus.js +2 -1
  179. package/lib/hooks/useRenderAttachment.js +1 -1
  180. package/lib/hooks/useRenderAvatar.js +2 -1
  181. package/lib/hooks/useRenderToast.d.ts +3 -0
  182. package/lib/hooks/useRenderToast.d.ts.map +1 -0
  183. package/lib/hooks/useRenderToast.js +1 -1
  184. package/lib/hooks/useRenderTypingIndicator.d.ts +3 -0
  185. package/lib/hooks/useRenderTypingIndicator.d.ts.map +1 -0
  186. package/lib/hooks/useRenderTypingIndicator.js +1 -1
  187. package/lib/hooks/useSendBoxValue.d.ts +2 -0
  188. package/lib/hooks/useSendBoxValue.d.ts.map +1 -0
  189. package/lib/hooks/useSendBoxValue.js +1 -1
  190. package/lib/hooks/useSendEvent.d.ts +2 -0
  191. package/lib/hooks/useSendEvent.d.ts.map +1 -0
  192. package/lib/hooks/useSendEvent.js +1 -1
  193. package/lib/hooks/useSendFiles.d.ts +2 -0
  194. package/lib/hooks/useSendFiles.d.ts.map +1 -0
  195. package/lib/hooks/useSendFiles.js +1 -1
  196. package/lib/hooks/useSendMessage.d.ts +4 -0
  197. package/lib/hooks/useSendMessage.d.ts.map +1 -0
  198. package/lib/hooks/useSendMessage.js +1 -1
  199. package/lib/hooks/useSendMessageBack.d.ts +2 -0
  200. package/lib/hooks/useSendMessageBack.d.ts.map +1 -0
  201. package/lib/hooks/useSendMessageBack.js +1 -1
  202. package/lib/hooks/useSendPostBack.d.ts +2 -0
  203. package/lib/hooks/useSendPostBack.d.ts.map +1 -0
  204. package/lib/hooks/useSendPostBack.js +1 -1
  205. package/lib/hooks/useSendTimeoutForActivity.d.ts +4 -0
  206. package/lib/hooks/useSendTimeoutForActivity.d.ts.map +1 -0
  207. package/lib/hooks/useSendTimeoutForActivity.js +2 -1
  208. package/lib/hooks/useSendTypingIndicator.d.ts +2 -0
  209. package/lib/hooks/useSendTypingIndicator.d.ts.map +1 -0
  210. package/lib/hooks/useSendTypingIndicator.js +1 -1
  211. package/lib/hooks/useSetNotification.d.ts +3 -0
  212. package/lib/hooks/useSetNotification.d.ts.map +1 -0
  213. package/lib/hooks/useSetNotification.js +1 -1
  214. package/lib/hooks/useShouldSpeakIncomingActivity.d.ts +2 -0
  215. package/lib/hooks/useShouldSpeakIncomingActivity.d.ts.map +1 -0
  216. package/lib/hooks/useShouldSpeakIncomingActivity.js +1 -1
  217. package/lib/hooks/useStartDictate.d.ts +2 -0
  218. package/lib/hooks/useStartDictate.d.ts.map +1 -0
  219. package/lib/hooks/useStartDictate.js +1 -1
  220. package/lib/hooks/useStopDictate.d.ts +2 -0
  221. package/lib/hooks/useStopDictate.d.ts.map +1 -0
  222. package/lib/hooks/useStopDictate.js +1 -1
  223. package/lib/hooks/useStyleOptions.d.ts +3 -0
  224. package/lib/hooks/useStyleOptions.d.ts.map +1 -0
  225. package/lib/hooks/useStyleOptions.js +1 -1
  226. package/lib/hooks/useSubmitSendBox.d.ts +4 -0
  227. package/lib/hooks/useSubmitSendBox.d.ts.map +1 -0
  228. package/lib/hooks/useSubmitSendBox.js +8 -5
  229. package/lib/hooks/useSuggestedActions.d.ts +6 -0
  230. package/lib/hooks/useSuggestedActions.d.ts.map +1 -0
  231. package/lib/hooks/useSuggestedActions.js +1 -1
  232. package/lib/hooks/useTimeoutForSend.d.ts +3 -0
  233. package/lib/hooks/useTimeoutForSend.d.ts.map +1 -0
  234. package/lib/hooks/useTimeoutForSend.js +2 -2
  235. package/lib/hooks/useTrackDimension.d.ts +2 -0
  236. package/lib/hooks/useTrackDimension.d.ts.map +1 -0
  237. package/lib/hooks/useTrackDimension.js +1 -1
  238. package/lib/hooks/useTrackEvent.d.ts +10 -0
  239. package/lib/hooks/useTrackEvent.d.ts.map +1 -0
  240. package/lib/hooks/useTrackEvent.js +1 -1
  241. package/lib/hooks/useTrackException.d.ts +2 -0
  242. package/lib/hooks/useTrackException.d.ts.map +1 -0
  243. package/lib/hooks/useTrackException.js +2 -2
  244. package/lib/hooks/useTrackTiming.d.ts +2 -0
  245. package/lib/hooks/useTrackTiming.d.ts.map +1 -0
  246. package/lib/hooks/useTrackTiming.js +1 -1
  247. package/lib/hooks/useUserID.d.ts +2 -0
  248. package/lib/hooks/useUserID.d.ts.map +1 -0
  249. package/lib/hooks/useUserID.js +1 -1
  250. package/lib/hooks/useUsername.d.ts +2 -0
  251. package/lib/hooks/useUsername.d.ts.map +1 -0
  252. package/lib/hooks/useUsername.js +1 -1
  253. package/lib/hooks/useVoiceSelector.d.ts +2 -0
  254. package/lib/hooks/useVoiceSelector.d.ts.map +1 -0
  255. package/lib/hooks/useVoiceSelector.js +1 -1
  256. package/lib/hooks/utils/ErrorBoundary.js +4 -4
  257. package/lib/hooks/utils/observableToPromise.d.ts +3 -0
  258. package/lib/hooks/utils/observableToPromise.d.ts.map +1 -0
  259. package/lib/hooks/utils/observableToPromise.js +1 -1
  260. package/lib/index.d.ts +20 -4
  261. package/lib/index.d.ts.map +1 -1
  262. package/lib/index.js +10 -10
  263. package/lib/localization/Localize.d.ts +10 -0
  264. package/lib/localization/Localize.d.ts.map +1 -0
  265. package/lib/localization/Localize.js +18 -12
  266. package/lib/localization/ar-SA.json +24 -4
  267. package/lib/localization/bg-BG.json +24 -4
  268. package/lib/localization/ca-ES.json +24 -4
  269. package/lib/localization/cs-CZ.json +24 -4
  270. package/lib/localization/da-DK.json +24 -4
  271. package/lib/localization/de-DE.json +24 -4
  272. package/lib/localization/el-GR.json +24 -4
  273. package/lib/localization/en-US.json +30 -7
  274. package/lib/localization/es-ES.json +24 -4
  275. package/lib/localization/et-EE.json +24 -4
  276. package/lib/localization/eu-ES.json +24 -4
  277. package/lib/localization/fi-FI.json +24 -4
  278. package/lib/localization/fr-FR.json +24 -4
  279. package/lib/localization/getAllLocalizedStrings.d.ts +6 -0
  280. package/lib/localization/getAllLocalizedStrings.d.ts.map +1 -0
  281. package/lib/localization/getAllLocalizedStrings.js +1 -1
  282. package/lib/localization/getLocaleString.d.ts +2 -0
  283. package/lib/localization/getLocaleString.d.ts.map +1 -0
  284. package/lib/localization/getLocaleString.js +3 -3
  285. package/lib/localization/getRTLList.d.ts +2 -0
  286. package/lib/localization/getRTLList.d.ts.map +1 -0
  287. package/lib/localization/getRTLList.js +1 -1
  288. package/lib/localization/gl-ES.json +24 -4
  289. package/lib/localization/he-IL.json +24 -4
  290. package/lib/localization/hi-IN.json +24 -4
  291. package/lib/localization/hr-HR.json +24 -4
  292. package/lib/localization/hu-HU.json +24 -4
  293. package/lib/localization/id-ID.json +24 -4
  294. package/lib/localization/it-IT.json +24 -4
  295. package/lib/localization/ja-JP.json +24 -4
  296. package/lib/localization/kk-KZ.json +24 -4
  297. package/lib/localization/ko-KR.json +24 -4
  298. package/lib/localization/lt-LT.json +24 -4
  299. package/lib/localization/lv-LV.json +24 -4
  300. package/lib/localization/mergeLocalizedStrings.d.ts +7 -0
  301. package/lib/localization/mergeLocalizedStrings.d.ts.map +1 -0
  302. package/lib/localization/mergeLocalizedStrings.js +14 -7
  303. package/lib/localization/ms-MY.json +24 -4
  304. package/lib/localization/nb-NO.json +24 -4
  305. package/lib/localization/nl-NL.json +24 -4
  306. package/lib/localization/pl-PL.json +24 -4
  307. package/lib/localization/pt-BR.json +24 -4
  308. package/lib/localization/pt-PT.json +24 -4
  309. package/lib/localization/ro-RO.json +24 -4
  310. package/lib/localization/ru-RU.json +24 -4
  311. package/lib/localization/sk-SK.json +24 -4
  312. package/lib/localization/sl-SI.json +24 -4
  313. package/lib/localization/sr-Cyrl-CS.json +24 -4
  314. package/lib/localization/sr-Latn-CS.json +24 -4
  315. package/lib/localization/sv-SE.json +24 -4
  316. package/lib/localization/th-TH.json +24 -4
  317. package/lib/localization/tr-TR.json +24 -4
  318. package/lib/localization/uk-UA.json +24 -4
  319. package/lib/localization/vi-VN.json +24 -4
  320. package/lib/localization/yue.json +27 -7
  321. package/lib/localization/zh-CN.json +24 -4
  322. package/lib/localization/zh-HK.json +24 -4
  323. package/lib/localization/zh-TW.json +24 -4
  324. package/lib/normalizeStyleOptions.d.ts +3 -0
  325. package/lib/normalizeStyleOptions.d.ts.map +1 -0
  326. package/lib/normalizeStyleOptions.js +85 -5
  327. package/lib/patchStyleOptionsFromDeprecatedProps.js +1 -2
  328. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts +5 -0
  329. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts.map +1 -0
  330. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.js +184 -0
  331. package/lib/providers/ActivityAcknowledgement/private/Context.d.ts +13 -0
  332. package/lib/providers/ActivityAcknowledgement/private/Context.d.ts.map +1 -0
  333. package/lib/providers/ActivityAcknowledgement/private/Context.js +13 -0
  334. package/lib/providers/ActivityAcknowledgement/private/types.d.ts +6 -0
  335. package/lib/providers/ActivityAcknowledgement/private/types.d.ts.map +1 -0
  336. package/lib/providers/ActivityAcknowledgement/private/types.js +2 -0
  337. package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts +3 -0
  338. package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts.map +1 -0
  339. package/lib/providers/ActivityAcknowledgement/private/useContext.js +24 -0
  340. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts +5 -0
  341. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts.map +1 -0
  342. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.js +18 -0
  343. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts +2 -0
  344. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
  345. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.js +15 -0
  346. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts +2 -0
  347. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts.map +1 -0
  348. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.js +15 -0
  349. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts +2 -0
  350. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts.map +1 -0
  351. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.js +15 -0
  352. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts +2 -0
  353. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts.map +1 -0
  354. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.js +15 -0
  355. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts +2 -0
  356. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts.map +1 -0
  357. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.js +15 -0
  358. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts +18 -0
  359. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts.map +1 -0
  360. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.js +153 -0
  361. package/lib/providers/ActivityKeyer/private/Context.d.ts +12 -0
  362. package/lib/providers/ActivityKeyer/private/Context.d.ts.map +1 -0
  363. package/lib/providers/ActivityKeyer/private/Context.js +13 -0
  364. package/lib/providers/ActivityKeyer/private/getActivityId.d.ts +3 -0
  365. package/lib/providers/ActivityKeyer/private/getActivityId.d.ts.map +1 -0
  366. package/lib/providers/ActivityKeyer/private/getActivityId.js +11 -0
  367. package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts +3 -0
  368. package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts.map +1 -0
  369. package/lib/providers/ActivityKeyer/private/getClientActivityId.js +13 -0
  370. package/lib/providers/ActivityKeyer/private/uniqueId.d.ts +2 -0
  371. package/lib/providers/ActivityKeyer/private/uniqueId.d.ts.map +1 -0
  372. package/lib/providers/ActivityKeyer/private/uniqueId.js +18 -0
  373. package/lib/providers/ActivityKeyer/private/useContext.d.ts +3 -0
  374. package/lib/providers/ActivityKeyer/private/useContext.d.ts.map +1 -0
  375. package/lib/providers/ActivityKeyer/private/useContext.js +24 -0
  376. package/lib/providers/ActivityKeyer/useActivityKeys.d.ts +2 -0
  377. package/lib/providers/ActivityKeyer/useActivityKeys.d.ts.map +1 -0
  378. package/lib/providers/ActivityKeyer/useActivityKeys.js +15 -0
  379. package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts +3 -0
  380. package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts.map +1 -0
  381. package/lib/providers/ActivityKeyer/useGetActivityByKey.js +15 -0
  382. package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts +3 -0
  383. package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts.map +1 -0
  384. package/lib/providers/ActivityKeyer/useGetKeyByActivity.js +15 -0
  385. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts +2 -0
  386. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts.map +1 -0
  387. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.js +15 -0
  388. package/lib/tsconfig.json +3 -1
  389. package/lib/types/ActivityMiddleware.d.ts +25 -0
  390. package/lib/types/ActivityMiddleware.d.ts.map +1 -0
  391. package/lib/types/ActivityMiddleware.js +2 -0
  392. package/lib/types/ActivityStatusMiddleware.d.ts +18 -0
  393. package/lib/types/ActivityStatusMiddleware.d.ts.map +1 -0
  394. package/lib/types/ActivityStatusMiddleware.js +2 -0
  395. package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +14 -0
  396. package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +1 -0
  397. package/lib/types/AttachmentForScreenReaderMiddleware.js +2 -0
  398. package/lib/types/AttachmentMiddleware.d.ts +12 -0
  399. package/lib/types/AttachmentMiddleware.d.ts.map +1 -0
  400. package/lib/types/AttachmentMiddleware.js +2 -0
  401. package/lib/types/AvatarMiddleware.d.ts +15 -0
  402. package/lib/types/AvatarMiddleware.d.ts.map +1 -0
  403. package/lib/types/AvatarMiddleware.js +2 -0
  404. package/lib/types/CardActionMiddleware.d.ts +19 -0
  405. package/lib/types/CardActionMiddleware.d.ts.map +1 -0
  406. package/lib/types/CardActionMiddleware.js +2 -0
  407. package/lib/types/ComponentMiddleware.d.ts +31 -0
  408. package/lib/types/ComponentMiddleware.d.ts.map +1 -0
  409. package/lib/types/ComponentMiddleware.js +2 -0
  410. package/lib/types/FunctionMiddleware.d.ts +6 -0
  411. package/lib/types/FunctionMiddleware.d.ts.map +1 -0
  412. package/lib/types/FunctionMiddleware.js +2 -0
  413. package/lib/types/GroupActivitiesMiddleware.d.ts +22 -0
  414. package/lib/types/GroupActivitiesMiddleware.d.ts.map +1 -0
  415. package/lib/types/GroupActivitiesMiddleware.js +2 -0
  416. package/lib/types/LocalizedStrings.d.ts +5 -0
  417. package/lib/types/LocalizedStrings.d.ts.map +1 -0
  418. package/lib/types/LocalizedStrings.js +2 -0
  419. package/lib/types/Notification.d.ts +10 -0
  420. package/lib/types/Notification.d.ts.map +1 -0
  421. package/lib/types/Notification.js +2 -0
  422. package/lib/types/PrecompiledGlobalize.d.ts +13 -0
  423. package/lib/types/PrecompiledGlobalize.d.ts.map +1 -0
  424. package/lib/types/PrecompiledGlobalize.js +2 -0
  425. package/lib/types/ScrollToEndButtonMiddleware.d.ts +30 -0
  426. package/lib/types/ScrollToEndButtonMiddleware.d.ts.map +1 -0
  427. package/lib/types/ScrollToEndButtonMiddleware.js +2 -0
  428. package/lib/types/SendState.d.ts +3 -0
  429. package/lib/types/SendState.d.ts.map +1 -0
  430. package/lib/types/SendState.js +2 -0
  431. package/lib/types/TelemetryMeasurementEvent.d.ts +31 -0
  432. package/lib/types/TelemetryMeasurementEvent.d.ts.map +1 -0
  433. package/lib/types/TelemetryMeasurementEvent.js +2 -0
  434. package/lib/types/ToastMiddleware.d.ts +11 -0
  435. package/lib/types/ToastMiddleware.d.ts.map +1 -0
  436. package/lib/types/ToastMiddleware.js +2 -0
  437. package/lib/types/Typing.d.ts +8 -0
  438. package/lib/types/Typing.d.ts.map +1 -0
  439. package/lib/types/Typing.js +2 -0
  440. package/lib/types/TypingIndicatorMiddleware.d.ts +17 -0
  441. package/lib/types/TypingIndicatorMiddleware.d.ts.map +1 -0
  442. package/lib/types/TypingIndicatorMiddleware.js +2 -0
  443. package/lib/types/WebSpeechPonyfill.d.ts +18 -0
  444. package/lib/types/WebSpeechPonyfill.d.ts.map +1 -0
  445. package/lib/types/WebSpeechPonyfill.js +2 -0
  446. package/lib/types/WebSpeechPonyfillFactory.d.ts +6 -0
  447. package/lib/types/WebSpeechPonyfillFactory.d.ts.map +1 -0
  448. package/lib/types/WebSpeechPonyfillFactory.js +2 -0
  449. package/lib/utils/createCustomEvent.d.ts +4 -0
  450. package/lib/utils/createCustomEvent.d.ts.map +1 -0
  451. package/lib/utils/createCustomEvent.js +9 -3
  452. package/lib/utils/findLastIndex.d.ts +2 -0
  453. package/lib/utils/findLastIndex.d.ts.map +1 -0
  454. package/lib/utils/findLastIndex.js +32 -0
  455. package/lib/utils/findMin.d.ts +7 -0
  456. package/lib/utils/findMin.d.ts.map +1 -0
  457. package/lib/utils/findMin.js +3 -3
  458. package/lib/utils/isObject.js +1 -1
  459. package/lib/utils/mapMap.d.ts +6 -0
  460. package/lib/utils/mapMap.d.ts.map +1 -0
  461. package/lib/utils/mapMap.js +10 -3
  462. package/lib/utils/normalizeLanguage.d.ts +2 -0
  463. package/lib/utils/normalizeLanguage.d.ts.map +1 -0
  464. package/lib/utils/normalizeLanguage.js +1 -1
  465. package/lib/utils/randomId.d.ts +2 -0
  466. package/lib/utils/randomId.d.ts.map +1 -0
  467. package/lib/utils/randomId.js +1 -1
  468. package/lib/utils/warnOnce.js +17 -0
  469. package/package.json +25 -32
  470. package/scripts/createPrecompiledGlobalize.mjs +44 -0
  471. package/src/StyleOptions.ts +332 -15
  472. package/src/defaultStyleOptions.ts +75 -15
  473. package/src/hooks/Composer.tsx +224 -145
  474. package/src/hooks/{index.js → index.ts} +22 -0
  475. package/src/hooks/internal/WebChatAPIContext.ts +68 -3
  476. package/src/hooks/internal/useCreateActivityRendererInternal.ts +46 -0
  477. package/src/hooks/internal/useDebugDeps.js +9 -2
  478. package/src/hooks/internal/usePrevious.ts +11 -0
  479. package/src/hooks/internal/useValueRef.ts +21 -0
  480. package/src/hooks/middleware/applyMiddleware.js +2 -3
  481. package/src/hooks/middleware/concatMiddleware.spec.js +4 -6
  482. package/src/hooks/middleware/concatMiddleware.ts +27 -0
  483. package/src/hooks/middleware/createDefaultCardActionMiddleware.ts +42 -0
  484. package/src/hooks/middleware/{createDefaultGroupActivitiesMiddleware.js → createDefaultGroupActivitiesMiddleware.ts} +20 -12
  485. package/src/hooks/{useActiveTyping.js → useActiveTyping.ts} +13 -9
  486. package/src/hooks/useActivities.ts +7 -0
  487. package/src/hooks/useActivityKeys.ts +3 -0
  488. package/src/hooks/useActivityKeysByRead.ts +3 -0
  489. package/src/hooks/{useAvatarForBot.js → useAvatarForBot.ts} +1 -1
  490. package/src/hooks/{useAvatarForUser.js → useAvatarForUser.ts} +1 -1
  491. package/src/hooks/{useByteFormatter.js → useByteFormatter.ts} +1 -1
  492. package/src/hooks/{useConnectivityStatus.js → useConnectivityStatus.ts} +1 -1
  493. package/src/hooks/{useCreateActivityRenderer.js → useCreateActivityRenderer.ts} +2 -3
  494. package/src/hooks/{useCreateActivityStatusRenderer.js → useCreateActivityStatusRenderer.tsx} +27 -11
  495. package/src/hooks/useCreateAvatarRenderer.ts +39 -0
  496. package/src/hooks/useCreateScrollToEndButtonRenderer.ts +6 -0
  497. package/src/hooks/useDateFormatter.ts +14 -0
  498. package/src/hooks/useDebouncedNotifications.spec.js +2 -0
  499. package/src/hooks/{useDebouncedNotifications.js → useDebouncedNotifications.ts} +10 -2
  500. package/src/hooks/{useDictateInterims.js → useDictateInterims.ts} +1 -1
  501. package/src/hooks/{useDictateState.js → useDictateState.ts} +1 -1
  502. package/src/hooks/{useDirection.js → useDirection.ts} +1 -1
  503. package/src/hooks/{useDisabled.js → useDisabled.ts} +1 -1
  504. package/src/hooks/{useDismissNotification.js → useDismissNotification.ts} +1 -1
  505. package/src/hooks/{useEmitTypingIndicator.js → useEmitTypingIndicator.ts} +1 -1
  506. package/src/hooks/useGetActivityByKey.ts +3 -0
  507. package/src/hooks/useGetHasAcknowledgedByActivityKey.ts +3 -0
  508. package/src/hooks/useGetKeyByActivity.ts +3 -0
  509. package/src/hooks/useGetKeyByActivityId.ts +3 -0
  510. package/src/hooks/useGetSendTimeoutForActivity.ts +20 -0
  511. package/src/hooks/{useGrammars.js → useGrammars.ts} +1 -1
  512. package/src/hooks/useGroupActivities.ts +10 -0
  513. package/src/hooks/{useGroupTimestamp.js → useGroupTimestamp.ts} +1 -1
  514. package/src/hooks/{useLanguage.js → useLanguage.ts} +1 -1
  515. package/src/hooks/useLastAcknowledgedActivityKey.ts +3 -0
  516. package/src/hooks/useLastReadActivityKey.ts +3 -0
  517. package/src/hooks/{useLastTypingAt.js → useLastTypingAt.ts} +2 -1
  518. package/src/hooks/{useLocalize.js → useLocalize.ts} +3 -1
  519. package/src/hooks/{useLocalizeDate.js → useLocalizeDate.ts} +2 -1
  520. package/src/hooks/{useLocalizer.js → useLocalizer.ts} +24 -6
  521. package/src/hooks/{useMarkActivityAsSpoken.js → useMarkActivityAsSpoken.ts} +2 -1
  522. package/src/hooks/useMarkActivityKeyAsRead.ts +3 -0
  523. package/src/hooks/useMarkAllAsAcknowledged.ts +3 -0
  524. package/src/hooks/{useNotifications.js → useNotifications.ts} +2 -1
  525. package/src/hooks/usePerformCardAction.ts +6 -0
  526. package/src/hooks/usePostActivity.ts +8 -0
  527. package/src/hooks/{useReferenceGrammarID.js → useReferenceGrammarID.ts} +1 -1
  528. package/src/hooks/{useRelativeTimeFormatter.js → useRelativeTimeFormatter.ts} +1 -1
  529. package/src/hooks/useRenderActivity.js +12 -10
  530. package/src/hooks/useRenderActivityStatus.js +1 -0
  531. package/src/hooks/useRenderAvatar.js +1 -0
  532. package/src/hooks/{useRenderToast.js → useRenderToast.ts} +2 -1
  533. package/src/hooks/useRenderTypingIndicator.ts +6 -0
  534. package/src/hooks/{useSendBoxValue.js → useSendBoxValue.ts} +1 -1
  535. package/src/hooks/{useSendEvent.js → useSendEvent.ts} +1 -1
  536. package/src/hooks/{useSendFiles.js → useSendFiles.ts} +1 -1
  537. package/src/hooks/useSendMessage.ts +9 -0
  538. package/src/hooks/{useSendMessageBack.js → useSendMessageBack.ts} +1 -1
  539. package/src/hooks/{useSendPostBack.js → useSendPostBack.ts} +1 -1
  540. package/src/hooks/{useSendTimeoutForActivity.js → useSendTimeoutForActivity.ts} +4 -1
  541. package/src/hooks/{useSendTypingIndicator.js → useSendTypingIndicator.ts} +1 -1
  542. package/src/hooks/useSetNotification.ts +6 -0
  543. package/src/hooks/{useShouldSpeakIncomingActivity.js → useShouldSpeakIncomingActivity.ts} +1 -1
  544. package/src/hooks/{useStartDictate.js → useStartDictate.ts} +1 -1
  545. package/src/hooks/{useStopDictate.js → useStopDictate.ts} +1 -1
  546. package/src/hooks/useStyleOptions.ts +6 -0
  547. package/src/hooks/{useSubmitSendBox.js → useSubmitSendBox.ts} +3 -6
  548. package/src/hooks/{useSuggestedActions.js → useSuggestedActions.ts} +5 -1
  549. package/src/hooks/useTimeoutForSend.ts +9 -0
  550. package/src/hooks/{useTrackDimension.js → useTrackDimension.ts} +1 -1
  551. package/src/hooks/{useTrackEvent.js → useTrackEvent.ts} +10 -2
  552. package/src/hooks/{useTrackException.js → useTrackException.ts} +1 -1
  553. package/src/hooks/{useTrackTiming.js → useTrackTiming.ts} +4 -1
  554. package/src/hooks/{useUserID.js → useUserID.ts} +1 -1
  555. package/src/hooks/{useUsername.js → useUsername.ts} +1 -1
  556. package/src/hooks/{useVoiceSelector.js → useVoiceSelector.ts} +4 -1
  557. package/src/hooks/utils/{observableToPromise.js → observableToPromise.ts} +5 -3
  558. package/src/index.ts +51 -0
  559. package/src/localization/Localize.spec.js +2 -0
  560. package/src/localization/{Localize.js → Localize.ts} +15 -8
  561. package/src/localization/ar-SA.json +24 -4
  562. package/src/localization/bg-BG.json +24 -4
  563. package/src/localization/ca-ES.json +24 -4
  564. package/src/localization/cs-CZ.json +24 -4
  565. package/src/localization/da-DK.json +24 -4
  566. package/src/localization/de-DE.json +24 -4
  567. package/src/localization/el-GR.json +24 -4
  568. package/src/localization/en-US.json +30 -7
  569. package/src/localization/es-ES.json +24 -4
  570. package/src/localization/et-EE.json +24 -4
  571. package/src/localization/eu-ES.json +24 -4
  572. package/src/localization/fi-FI.json +24 -4
  573. package/src/localization/fr-FR.json +24 -4
  574. package/src/localization/getAllLocalizedStrings.spec.js +3 -1
  575. package/src/localization/{getAllLocalizedStrings.js → getAllLocalizedStrings.ts} +2 -1
  576. package/src/localization/getLocaleString.spec.js +4 -2
  577. package/src/localization/{getLocaleString.js → getLocaleString.ts} +2 -2
  578. package/src/localization/{getRTLList.js → getRTLList.ts} +1 -1
  579. package/src/localization/gl-ES.json +24 -4
  580. package/src/localization/he-IL.json +24 -4
  581. package/src/localization/hi-IN.json +24 -4
  582. package/src/localization/hr-HR.json +24 -4
  583. package/src/localization/hu-HU.json +24 -4
  584. package/src/localization/id-ID.json +24 -4
  585. package/src/localization/it-IT.json +24 -4
  586. package/src/localization/ja-JP.json +24 -4
  587. package/src/localization/kk-KZ.json +24 -4
  588. package/src/localization/ko-KR.json +24 -4
  589. package/src/localization/lt-LT.json +24 -4
  590. package/src/localization/lv-LV.json +24 -4
  591. package/src/localization/mergeLocalizedStrings.ts +20 -0
  592. package/src/localization/ms-MY.json +24 -4
  593. package/src/localization/nb-NO.json +24 -4
  594. package/src/localization/nl-NL.json +24 -4
  595. package/src/localization/pl-PL.json +24 -4
  596. package/src/localization/pt-BR.json +24 -4
  597. package/src/localization/pt-PT.json +24 -4
  598. package/src/localization/ro-RO.json +24 -4
  599. package/src/localization/ru-RU.json +24 -4
  600. package/src/localization/sk-SK.json +24 -4
  601. package/src/localization/sl-SI.json +24 -4
  602. package/src/localization/sr-Cyrl-CS.json +24 -4
  603. package/src/localization/sr-Latn-CS.json +24 -4
  604. package/src/localization/sv-SE.json +24 -4
  605. package/src/localization/th-TH.json +24 -4
  606. package/src/localization/tr-TR.json +24 -4
  607. package/src/localization/uk-UA.json +24 -4
  608. package/src/localization/vi-VN.json +24 -4
  609. package/src/localization/yue.json +27 -7
  610. package/src/localization/zh-CN.json +24 -4
  611. package/src/localization/zh-HK.json +24 -4
  612. package/src/localization/zh-TW.json +24 -4
  613. package/src/normalizeStyleOptions.ts +113 -2
  614. package/src/patchStyleOptionsFromDeprecatedProps.js +0 -2
  615. package/src/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.tsx +180 -0
  616. package/src/providers/ActivityAcknowledgement/private/Context.ts +18 -0
  617. package/src/providers/ActivityAcknowledgement/private/types.ts +6 -0
  618. package/src/providers/ActivityAcknowledgement/private/useContext.ts +19 -0
  619. package/src/providers/ActivityAcknowledgement/useActivityKeysByRead.tsx +8 -0
  620. package/src/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.ts +5 -0
  621. package/src/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.ts +5 -0
  622. package/src/providers/ActivityAcknowledgement/useLastReadActivityKey.ts +5 -0
  623. package/src/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.ts +5 -0
  624. package/src/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.ts +5 -0
  625. package/src/providers/ActivityKeyer/ActivityKeyerComposer.tsx +151 -0
  626. package/src/providers/ActivityKeyer/private/Context.ts +14 -0
  627. package/src/providers/ActivityKeyer/private/getActivityId.ts +5 -0
  628. package/src/providers/ActivityKeyer/private/getClientActivityId.ts +5 -0
  629. package/src/providers/ActivityKeyer/private/uniqueId.ts +8 -0
  630. package/src/providers/ActivityKeyer/private/useContext.ts +15 -0
  631. package/src/providers/ActivityKeyer/useActivityKeys.ts +5 -0
  632. package/src/providers/ActivityKeyer/useGetActivityByKey.ts +7 -0
  633. package/src/providers/ActivityKeyer/useGetKeyByActivity.ts +7 -0
  634. package/src/providers/ActivityKeyer/useGetKeyByActivityId.ts +5 -0
  635. package/src/tsconfig.json +3 -1
  636. package/src/types/ActivityMiddleware.ts +38 -0
  637. package/src/types/ActivityStatusMiddleware.ts +28 -0
  638. package/src/types/AttachmentForScreenReaderMiddleware.ts +24 -0
  639. package/src/types/AttachmentMiddleware.ts +16 -0
  640. package/src/types/AvatarMiddleware.ts +20 -0
  641. package/src/types/CardActionMiddleware.ts +21 -0
  642. package/src/types/ComponentMiddleware.ts +42 -0
  643. package/src/types/FunctionMiddleware.ts +13 -0
  644. package/src/types/GroupActivitiesMiddleware.ts +24 -0
  645. package/src/types/LocalizedStrings.ts +5 -0
  646. package/src/types/Notification.ts +10 -0
  647. package/src/types/PrecompiledGlobalize.ts +9 -0
  648. package/src/types/ScrollToEndButtonMiddleware.ts +34 -0
  649. package/src/types/SendState.ts +3 -0
  650. package/src/types/TelemetryMeasurementEvent.ts +44 -0
  651. package/src/types/ToastMiddleware.ts +16 -0
  652. package/src/types/Typing.ts +8 -0
  653. package/src/types/TypingIndicatorMiddleware.ts +18 -0
  654. package/src/types/WebSpeechPonyfill.ts +24 -0
  655. package/src/types/WebSpeechPonyfillFactory.ts +5 -0
  656. package/src/utils/createCustomEvent.ts +28 -0
  657. package/src/utils/findLastIndex.spec.js +31 -0
  658. package/src/utils/findLastIndex.ts +11 -0
  659. package/src/utils/findMin.spec.js +2 -0
  660. package/src/utils/{findMin.js → findMin.ts} +3 -3
  661. package/src/utils/mapMap.spec.js +2 -0
  662. package/src/utils/mapMap.ts +16 -0
  663. package/src/utils/{normalizeLanguage.js → normalizeLanguage.ts} +1 -1
  664. package/src/utils/{randomId.js → randomId.ts} +1 -1
  665. package/src/utils/warnOnce.ts +10 -0
  666. package/.eslintignore +0 -9
  667. package/lib/hooks/utils/singleToArray.js +0 -11
  668. package/scripts/createPrecompiledGlobalize.js +0 -41
  669. package/src/hooks/internal/useCreateActivityRendererInternal.js +0 -41
  670. package/src/hooks/middleware/concatMiddleware.js +0 -19
  671. package/src/hooks/middleware/createDefaultCardActionMiddleware.js +0 -36
  672. package/src/hooks/useActivities.js +0 -5
  673. package/src/hooks/useCreateAvatarRenderer.js +0 -32
  674. package/src/hooks/useDateFormatter.js +0 -13
  675. package/src/hooks/useGetSendTimeoutForActivity.js +0 -18
  676. package/src/hooks/useGroupActivities.js +0 -5
  677. package/src/hooks/usePerformCardAction.js +0 -5
  678. package/src/hooks/usePostActivity.js +0 -5
  679. package/src/hooks/useRenderTypingIndicator.js +0 -5
  680. package/src/hooks/useSendMessage.js +0 -5
  681. package/src/hooks/useSetNotification.js +0 -5
  682. package/src/hooks/useStyleOptions.js +0 -5
  683. package/src/hooks/useTimeoutForSend.js +0 -7
  684. package/src/hooks/utils/singleToArray.js +0 -3
  685. package/src/index.js +0 -10
  686. package/src/index.tsx +0 -10
  687. package/src/localization/mergeLocalizedStrings.js +0 -10
  688. package/src/utils/createCustomEvent.js +0 -17
  689. package/src/utils/mapMap.js +0 -7
@@ -0,0 +1,151 @@
1
+ import PropTypes from 'prop-types';
2
+ import React, { useCallback, useMemo, useRef } from 'react';
3
+
4
+ import type { DirectLineActivity } from 'botframework-webchat-core';
5
+ import type { FC } from 'react';
6
+
7
+ import ActivityKeyerContext, { ActivityKeyerContextType } from './private/Context';
8
+ import getActivityId from './private/getActivityId';
9
+ import getClientActivityId from './private/getClientActivityId';
10
+ import uniqueId from './private/uniqueId';
11
+ import useActivities from '../../hooks/useActivities';
12
+ import useActivityKeyerContext from './private/useContext';
13
+
14
+ type ActivityIdToKeyMap = Map<string, string>;
15
+ type ActivityToKeyMap = Map<DirectLineActivity, string>;
16
+ type ClientActivityIdToKeyMap = Map<string, string>;
17
+ type KeyToActivityMap = Map<string, DirectLineActivity>;
18
+
19
+ /**
20
+ * React context composer component to assign a perma-key to every activity.
21
+ * This will support both `useGetActivityByKey` and `useGetKeyByActivity` custom hooks.
22
+ *
23
+ * Today, `activity.id` is only guaranteed for activity from others.
24
+ * Not all activities sent by the local user has `activity.id`.
25
+ *
26
+ * To track outgoing activities, we added `activity.channelData.clientActivityId`.
27
+ *
28
+ * This component will create a local key, which can be used to track both
29
+ * incoming and outgoing activities in a consistent way.
30
+ *
31
+ * Local key are only persisted in memory. On refresh, they will be a new random key.
32
+ */
33
+ const ActivityKeyerComposer: FC<{}> = ({ children }) => {
34
+ const existingContext = useActivityKeyerContext(false);
35
+
36
+ if (existingContext) {
37
+ throw new Error('botframework-webchat internal: <ActivityKeyerComposer> should not be nested.');
38
+ }
39
+
40
+ const [activities] = useActivities();
41
+ const activityIdToKeyMapRef = useRef<Readonly<ActivityIdToKeyMap>>(Object.freeze(new Map()));
42
+ const activityToKeyMapRef = useRef<Readonly<ActivityToKeyMap>>(Object.freeze(new Map()));
43
+ const clientActivityIdToKeyMapRef = useRef<Readonly<ClientActivityIdToKeyMap>>(Object.freeze(new Map()));
44
+ const keyToActivityMapRef = useRef<Readonly<KeyToActivityMap>>(Object.freeze(new Map()));
45
+
46
+ // TODO: [P1] `useMemoWithPrevious` to check and cache the resulting array if it hasn't changed.
47
+ const activityKeysState = useMemo<readonly [readonly string[]]>(() => {
48
+ const { current: activityIdToKeyMap } = activityIdToKeyMapRef;
49
+ const { current: activityToKeyMap } = activityToKeyMapRef;
50
+ const { current: clientActivityIdToKeyMap } = clientActivityIdToKeyMapRef;
51
+ const nextActivityIdToKeyMap: ActivityIdToKeyMap = new Map();
52
+ const nextActivityKeys: string[] = [];
53
+ const nextActivityToKeyMap: ActivityToKeyMap = new Map();
54
+ const nextClientActivityIdToKeyMap: ClientActivityIdToKeyMap = new Map();
55
+ const nextKeyToActivityMap: KeyToActivityMap = new Map();
56
+
57
+ activities.forEach(activity => {
58
+ const activityId = getActivityId(activity);
59
+ const clientActivityId = getClientActivityId(activity);
60
+
61
+ const key =
62
+ (clientActivityId && clientActivityIdToKeyMap.get(clientActivityId)) ||
63
+ (activityId && activityIdToKeyMap.get(activityId)) ||
64
+ activityToKeyMap.get(activity) ||
65
+ uniqueId();
66
+
67
+ activityId && nextActivityIdToKeyMap.set(activityId, key);
68
+ clientActivityId && nextClientActivityIdToKeyMap.set(clientActivityId, key);
69
+ nextActivityToKeyMap.set(activity, key);
70
+ nextKeyToActivityMap.set(key, activity);
71
+ nextActivityKeys.push(key);
72
+ });
73
+
74
+ activityIdToKeyMapRef.current = Object.freeze(nextActivityIdToKeyMap);
75
+ activityToKeyMapRef.current = Object.freeze(nextActivityToKeyMap);
76
+ clientActivityIdToKeyMapRef.current = Object.freeze(nextClientActivityIdToKeyMap);
77
+ keyToActivityMapRef.current = Object.freeze(nextKeyToActivityMap);
78
+
79
+ // `nextActivityKeys` could potentially same as `prevActivityKeys` despite reference differences, we should memoize it.
80
+ return Object.freeze([Object.freeze(nextActivityKeys)]) as readonly [readonly string[]];
81
+ }, [activities, activityIdToKeyMapRef, activityToKeyMapRef, clientActivityIdToKeyMapRef, keyToActivityMapRef]);
82
+
83
+ const getActivityByKey: (key?: string) => DirectLineActivity | undefined = useCallback(
84
+ (key?: string): DirectLineActivity | undefined => key && keyToActivityMapRef.current.get(key),
85
+ [keyToActivityMapRef]
86
+ );
87
+
88
+ const getKeyByActivity: (activity?: DirectLineActivity) => string | undefined = useCallback(
89
+ (activity?: DirectLineActivity) => activity && activityToKeyMapRef.current.get(activity),
90
+ [activityToKeyMapRef]
91
+ );
92
+
93
+ const getKeyByActivityId: (activityId?: string) => string | undefined = useCallback(
94
+ (activityId?: string) => activityId && activityIdToKeyMapRef.current.get(activityId),
95
+ [activityIdToKeyMapRef]
96
+ );
97
+
98
+ const contextValue = useMemo<ActivityKeyerContextType>(
99
+ () => ({
100
+ activityKeysState,
101
+ getActivityByKey,
102
+ getKeyByActivity,
103
+ getKeyByActivityId
104
+ }),
105
+ [activityKeysState, getActivityByKey, getKeyByActivity, getKeyByActivityId]
106
+ );
107
+
108
+ const { length: numActivities } = activities;
109
+
110
+ if (activityIdToKeyMapRef.current.size > numActivities) {
111
+ console.warn(
112
+ 'botframework-webchat internal assertion: "activityIdToKeyMap.size" should be equal or less than "activities.length".'
113
+ );
114
+ }
115
+
116
+ if (activityToKeyMapRef.current.size !== numActivities) {
117
+ console.warn(
118
+ 'botframework-webchat internal assertion: "activityToKeyMap.size" should be same as "activities.length".'
119
+ );
120
+ }
121
+
122
+ if (clientActivityIdToKeyMapRef.current.size > numActivities) {
123
+ console.warn(
124
+ 'botframework-webchat internal assertion: "clientActivityIdToKeyMap.size" should be equal or less than "activities.length".'
125
+ );
126
+ }
127
+
128
+ if (keyToActivityMapRef.current.size !== numActivities) {
129
+ console.warn(
130
+ 'botframework-webchat internal assertion: "keyToActivityMap.size" should be same as "activities.length".'
131
+ );
132
+ }
133
+
134
+ if (activityKeysState[0].length !== numActivities) {
135
+ console.warn(
136
+ 'botframework-webchat internal assertion: "activityKeys.length" should be same as "activities.length".'
137
+ );
138
+ }
139
+
140
+ return <ActivityKeyerContext.Provider value={contextValue}>{children}</ActivityKeyerContext.Provider>;
141
+ };
142
+
143
+ ActivityKeyerComposer.defaultProps = {
144
+ children: undefined
145
+ };
146
+
147
+ ActivityKeyerComposer.propTypes = {
148
+ children: PropTypes.any
149
+ };
150
+
151
+ export default ActivityKeyerComposer;
@@ -0,0 +1,14 @@
1
+ import { createContext } from 'react';
2
+
3
+ import type { DirectLineActivity } from 'botframework-webchat-core';
4
+
5
+ type ActivityKeyerContextType = {
6
+ activityKeysState: readonly [readonly string[]];
7
+ getActivityByKey: (key?: string) => DirectLineActivity | undefined;
8
+ getKeyByActivity: (activity?: DirectLineActivity) => string | undefined;
9
+ getKeyByActivityId: (activityKey?: string) => string | undefined;
10
+ };
11
+
12
+ export default createContext<ActivityKeyerContextType>(undefined);
13
+
14
+ export type { ActivityKeyerContextType };
@@ -0,0 +1,5 @@
1
+ import type { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ export default function getActivityId(activity: DirectLineActivity): string {
4
+ return activity.id;
5
+ }
@@ -0,0 +1,5 @@
1
+ import type { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ export default function getClientActivityId(activity: DirectLineActivity): string {
4
+ return activity.channelData?.clientActivityID;
5
+ }
@@ -0,0 +1,8 @@
1
+ import random from 'math-random';
2
+
3
+ // This format ID must be compatible with HTML "className" and "id" attribute.
4
+ // It will be suffixed as "webchat__activity--{id}".
5
+ export default function uniqueId(): string {
6
+ // eslint-disable-next-line no-magic-numbers
7
+ return random().toString(36).substring(2, 7);
8
+ }
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+
3
+ import ActivityKeyerContext from './Context';
4
+
5
+ import type { ActivityKeyerContextType } from './Context';
6
+
7
+ export default function useActivityKeyerContext(thrownOnUndefined = true): ActivityKeyerContextType {
8
+ const contextValue = useContext(ActivityKeyerContext);
9
+
10
+ if (thrownOnUndefined && !contextValue) {
11
+ throw new Error('botframework-webchat internal: This hook can only be used under <ActivityKeyerComposer>.');
12
+ }
13
+
14
+ return contextValue;
15
+ }
@@ -0,0 +1,5 @@
1
+ import useActivityKeyerContext from './private/useContext';
2
+
3
+ export default function useActivityKeys(): readonly [readonly string[]] {
4
+ return useActivityKeyerContext().activityKeysState;
5
+ }
@@ -0,0 +1,7 @@
1
+ import type { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import useActivityKeyerContext from './private/useContext';
4
+
5
+ export default function useGetActivityByKey(): (key?: string) => DirectLineActivity | undefined {
6
+ return useActivityKeyerContext().getActivityByKey;
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import useActivityKeyerContext from './private/useContext';
4
+
5
+ export default function useGetKeyByActivity(): (activity?: DirectLineActivity) => string | undefined {
6
+ return useActivityKeyerContext().getKeyByActivity;
7
+ }
@@ -0,0 +1,5 @@
1
+ import useActivityKeyerContext from './private/useContext';
2
+
3
+ export default function useGetKeyByActivityId(): (activityId?: string) => string | undefined {
4
+ return useActivityKeyerContext().getKeyByActivityId;
5
+ }
package/src/tsconfig.json CHANGED
@@ -4,12 +4,14 @@
4
4
  "declaration": true,
5
5
  "declarationDir": "../lib",
6
6
  "declarationMap": true,
7
+ "downlevelIteration": true,
7
8
  "emitDeclarationOnly": true,
8
9
  "jsx": "react",
9
10
  "preserveWatchOutput": true,
10
11
  "pretty": true,
12
+ "resolveJsonModule": true, // Required for localization files
11
13
  "skipLibCheck": true,
12
14
  "sourceMap": true
13
15
  },
14
- "files": ["index.tsx"]
16
+ "files": ["index.ts"]
15
17
  }
@@ -0,0 +1,38 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+ import { ReactNode } from 'react';
3
+
4
+ import { AvatarComponentFactory } from './AvatarMiddleware';
5
+ import { RenderAttachment } from './AttachmentMiddleware';
6
+
7
+ type ActivityProps = {
8
+ hideTimestamp: boolean;
9
+ renderActivityStatus: ({ hideTimestamp: boolean }) => ReactNode;
10
+ renderAvatar: AvatarComponentFactory;
11
+ showCallout: boolean;
12
+ };
13
+
14
+ type ActivityComponent = (props: ActivityProps) => Exclude<ReactNode, boolean>;
15
+
16
+ type ActivityComponentFactoryOptions = {
17
+ activity: DirectLineActivity;
18
+ nextVisibleActivity: DirectLineActivity;
19
+ };
20
+
21
+ type ActivityComponentFactory = (options: ActivityComponentFactoryOptions) => ActivityComponent | false;
22
+
23
+ // TODO: [P2] This is inherited from our older signature (pre-hook) which requires passing "renderAttachment" argument.
24
+ // With hooks, the middleware should not need "renderAttachment", they can grab it from "useCreateAttachmentRenderer" hook.
25
+ type LegacyRenderActivity = (
26
+ renderAttachment: RenderAttachment,
27
+ { hideTimestamp, renderActivityStatus, renderAvatar, showCallout }: ActivityProps
28
+ ) => Exclude<ReactNode, boolean>;
29
+
30
+ type LegacyActivityRenderer = (options: ActivityComponentFactoryOptions) => LegacyRenderActivity | false;
31
+
32
+ // The middleware created by the web developer, are using the legacy signature (with "renderAttachment" argument).
33
+ type ActivityEnhancer = (next: LegacyActivityRenderer) => LegacyActivityRenderer;
34
+ type ActivityMiddleware = () => ActivityEnhancer;
35
+
36
+ export default ActivityMiddleware;
37
+
38
+ export type { ActivityComponentFactory, LegacyActivityRenderer };
@@ -0,0 +1,28 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+ import { ReactNode } from 'react';
3
+
4
+ import SendState from './SendState';
5
+
6
+ // TODO: Migrate this legacy middleware signature.
7
+ type RenderActivityStatusOptions = {
8
+ activity: DirectLineActivity;
9
+ hideTimestamp: boolean;
10
+ sendState: SendState;
11
+
12
+ // "nextVisibleActivity" is for backward compatibility, please remove this line on or after 2022-07-22.
13
+ /** @deprecated */
14
+ nextVisibleActivity: DirectLineActivity;
15
+
16
+ // "sameTimestampGroup" is for backward compatibility, please remove this line on or after 2022-07-22.
17
+ /** @deprecated */
18
+ sameTimestampGroup: boolean;
19
+ };
20
+
21
+ type RenderActivityStatus = (options: RenderActivityStatusOptions) => ReactNode;
22
+
23
+ type ActivityStatusEnhancer = (next: RenderActivityStatus) => RenderActivityStatus;
24
+ type ActivityStatusMiddleware = () => ActivityStatusEnhancer;
25
+
26
+ export default ActivityStatusMiddleware;
27
+
28
+ export type { RenderActivityStatus };
@@ -0,0 +1,24 @@
1
+ import { DirectLineActivity, DirectLineAttachment } from 'botframework-webchat-core';
2
+
3
+ // TODO: We should consider using a prop for "attachmentMiddleware" to render for screen reader, instead of having another middleware.
4
+
5
+ import ComponentMiddleware, { ComponentFactory } from './ComponentMiddleware';
6
+
7
+ type AttachmentForScreenReaderComponentFactoryOptions = [
8
+ {
9
+ activity: DirectLineActivity;
10
+ attachment: DirectLineAttachment;
11
+ }
12
+ ];
13
+
14
+ type AttachmentForScreenReaderComponentFactory = ComponentFactory<AttachmentForScreenReaderComponentFactoryOptions, {}>;
15
+
16
+ type AttachmentForScreenReaderMiddleware = ComponentMiddleware<
17
+ [],
18
+ AttachmentForScreenReaderComponentFactoryOptions,
19
+ {}
20
+ >;
21
+
22
+ export default AttachmentForScreenReaderMiddleware;
23
+
24
+ export type { AttachmentForScreenReaderComponentFactory };
@@ -0,0 +1,16 @@
1
+ import { DirectLineActivity, DirectLineAttachment } from 'botframework-webchat-core';
2
+ import { ReactNode } from 'react';
3
+
4
+ type AttachmentProps = {
5
+ activity: DirectLineActivity;
6
+ attachment: DirectLineAttachment;
7
+ };
8
+
9
+ type RenderAttachment = (props?: AttachmentProps) => ReactNode;
10
+
11
+ type AttachmentEnhancer = (next: RenderAttachment) => RenderAttachment;
12
+ type AttachmentMiddleware = () => AttachmentEnhancer;
13
+
14
+ export default AttachmentMiddleware;
15
+
16
+ export type { RenderAttachment };
@@ -0,0 +1,20 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import { StrictStyleOptions } from '../StyleOptions';
4
+ import ComponentMiddleware, { ComponentFactory } from './ComponentMiddleware';
5
+
6
+ type AvatarComponentFactoryArguments = [
7
+ {
8
+ activity: DirectLineActivity;
9
+ fromUser: boolean;
10
+ styleOptions: StrictStyleOptions;
11
+ }
12
+ ];
13
+
14
+ type AvatarComponentFactory = ComponentFactory<AvatarComponentFactoryArguments, {}>;
15
+
16
+ type AvatarMiddleware = ComponentMiddleware<[], AvatarComponentFactoryArguments, {}>;
17
+
18
+ export default AvatarMiddleware;
19
+
20
+ export type { AvatarComponentFactory };
@@ -0,0 +1,21 @@
1
+ import { DirectLineCardAction } from 'botframework-webchat-core';
2
+
3
+ import FunctionMiddleware from './FunctionMiddleware';
4
+
5
+ type PerformCardAction = (cardAction: DirectLineCardAction, { target: EventTarget }?) => void;
6
+
7
+ type CardActionMiddleware = FunctionMiddleware<
8
+ [{ dispatch: (action: any) => void }],
9
+ [
10
+ {
11
+ cardAction: DirectLineCardAction;
12
+ getSignInUrl?: () => string;
13
+ target: any;
14
+ }
15
+ ],
16
+ {}
17
+ >;
18
+
19
+ export default CardActionMiddleware;
20
+
21
+ export { PerformCardAction };
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ type OnScreenReactNode = Exclude<ReactNode, boolean | null | undefined>;
4
+
5
+ /**
6
+ * Renders a UI component by returning a React component, or `false`, if nothing should be rendered.
7
+ *
8
+ * @returns {(React.FC|false)} Returns a React component to render, or `false`, if nothing should be rendered.
9
+ */
10
+ type ComponentFactory<TComponentFactoryArguments extends any[], TProps> = (
11
+ ...args: TComponentFactoryArguments
12
+ ) => ((props?: TProps) => OnScreenReactNode) | false;
13
+
14
+ /**
15
+ * Enhances a UI component through decoration, replacement, or removal.
16
+ */
17
+ type ComponentEnhancer<TComponentFactoryArguments extends any[], TProps> = (
18
+ next: ComponentFactory<TComponentFactoryArguments, TProps>
19
+ ) => ComponentFactory<TComponentFactoryArguments, TProps>;
20
+
21
+ /**
22
+ * Middleware for rendering a UI component.
23
+ *
24
+ * The middleware is a series of enhancers that are chained through functional composition. Each enhancer can:
25
+ *
26
+ * - Decorate: call the next enhancer to get its React component, then decorate it through UI composition
27
+ * - Replace: return a React component without calling the next enhancer
28
+ * - Remove: return `false` without calling the next enhancer
29
+ *
30
+ * The signature of the middleware is:
31
+ *
32
+ * ```
33
+ * (...args: SetupArguments) => (next: Enhancer) => (...args: ComponentFactoryArguments) => false | React.FC<Props>
34
+ * ```
35
+ */
36
+ type ComponentMiddleware<TSetupArguments extends any[], TComponentFactoryArguments extends any[], TProps> = (
37
+ ...args: TSetupArguments
38
+ ) => ComponentEnhancer<TComponentFactoryArguments, TProps>;
39
+
40
+ export default ComponentMiddleware;
41
+
42
+ export { ComponentEnhancer, ComponentFactory };
@@ -0,0 +1,13 @@
1
+ type CallFunction<TArguments extends any[], TResult> = (...args: TArguments) => TResult;
2
+
3
+ type FunctionEnhancer<TCallArguments extends any[], TResult> = (
4
+ next: CallFunction<TCallArguments, TResult>
5
+ ) => CallFunction<TCallArguments, TResult>;
6
+
7
+ type FunctionMiddleware<TSetupArguments extends any[], TCallArguments extends any[], TResult> = (
8
+ ...args: TSetupArguments
9
+ ) => FunctionEnhancer<TCallArguments, TResult>;
10
+
11
+ export default FunctionMiddleware;
12
+
13
+ export type { CallFunction, FunctionEnhancer };
@@ -0,0 +1,24 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import FunctionMiddleware, { CallFunction } from './FunctionMiddleware';
4
+
5
+ type GroupActivities = CallFunction<
6
+ [{ activities: DirectLineActivity[] }],
7
+ {
8
+ sender: DirectLineActivity[][];
9
+ status: DirectLineActivity[][];
10
+ }
11
+ >;
12
+
13
+ type GroupActivitiesMiddleware = FunctionMiddleware<
14
+ [],
15
+ [{ activities: DirectLineActivity[] }],
16
+ {
17
+ sender: DirectLineActivity[][];
18
+ status: DirectLineActivity[][];
19
+ }
20
+ >;
21
+
22
+ export default GroupActivitiesMiddleware;
23
+
24
+ export { GroupActivities };
@@ -0,0 +1,5 @@
1
+ // boolean is for flags (e.g. support of speech-to-text or text-to-speech).
2
+ // Look at "overrides.json" for details.
3
+ type LocalizedStrings = { [stringId: string]: boolean | string };
4
+
5
+ export default LocalizedStrings;
@@ -0,0 +1,10 @@
1
+ type Notification = {
2
+ alt: string;
3
+ data?: any;
4
+ id: string;
5
+ level: string;
6
+ message?: string;
7
+ timestamp?: number;
8
+ };
9
+
10
+ export default Notification;
@@ -0,0 +1,9 @@
1
+ type PrecompiledGlobalize = {
2
+ dateFormatter: ({ skeleton }: { skeleton: 'MMMMdhm' }) => string;
3
+ relativeTimeFormatter: (format: 'hour' | 'minute') => string;
4
+ unitFormatter:
5
+ | ((unit: 'byte', options: { form: 'long' }) => string)
6
+ | ((unit: 'kilobyte' | 'megabyte' | 'gigabyte', options: { form: 'short' }) => string);
7
+ };
8
+
9
+ export default PrecompiledGlobalize;
@@ -0,0 +1,34 @@
1
+ import { StrictStyleOptions } from '../StyleOptions';
2
+ import ComponentMiddleware, { ComponentFactory } from './ComponentMiddleware';
3
+
4
+ /**
5
+ * @type {object}
6
+ * @property {boolean} atEnd - `true`, if the transcript scroll view is at the end, otherwise, `false`.
7
+ * @property {object} styleOptions - Normalized style options.
8
+ * @property {boolean} unread - `true`, if there are unread messages in the transcripts, otherwise, `false`.
9
+ */
10
+ type ScrollToEndButtonComponentArguments = [
11
+ {
12
+ atEnd: boolean;
13
+ styleOptions: StrictStyleOptions;
14
+ unread: boolean;
15
+ }
16
+ ];
17
+
18
+ /**
19
+ * @type {object}
20
+ * @property {function} onClick - The callback function to call when the user click on the button.
21
+ */
22
+ type ScrollToEndButtonProps = {
23
+ onClick: () => any;
24
+ };
25
+
26
+ /**
27
+ * The middleware for rendering scroll to end button.
28
+ */
29
+ type ScrollToEndButtonMiddleware = ComponentMiddleware<[], ScrollToEndButtonComponentArguments, ScrollToEndButtonProps>;
30
+ type ScrollToEndButtonComponentFactory = ComponentFactory<ScrollToEndButtonComponentArguments, ScrollToEndButtonProps>;
31
+
32
+ export default ScrollToEndButtonMiddleware;
33
+
34
+ export { ScrollToEndButtonComponentFactory };
@@ -0,0 +1,3 @@
1
+ type SendState = 'sending' | 'send failed' | 'sent';
2
+
3
+ export default SendState;
@@ -0,0 +1,44 @@
1
+ type BaseTelemetryMeasurementEvent = {
2
+ dimension?: any;
3
+ };
4
+
5
+ type TelemetryEventMeasurementEvent = BaseTelemetryMeasurementEvent & {
6
+ type: 'event';
7
+ name: string;
8
+ level: 'debug' | 'info' | 'warn' | 'error';
9
+ data?: number | string | { [key: string]: number | string };
10
+ };
11
+
12
+ type TelemetryExceptionMeasurementEvent = BaseTelemetryMeasurementEvent & {
13
+ type: 'exception';
14
+ error: Error;
15
+ fatal: boolean;
16
+ };
17
+
18
+ type TelemetryTimingStartMeasurementEvent = BaseTelemetryMeasurementEvent & {
19
+ type: 'timingstart';
20
+ name: string;
21
+ timingId: string;
22
+ };
23
+
24
+ type TelemetryTimingEndMeasurementEvent = BaseTelemetryMeasurementEvent & {
25
+ type: 'timingend';
26
+ name: string;
27
+ timingId: string;
28
+ duration: number;
29
+ };
30
+
31
+ type TelemetryMeasurementEvent =
32
+ | TelemetryEventMeasurementEvent
33
+ | TelemetryExceptionMeasurementEvent
34
+ | TelemetryTimingStartMeasurementEvent
35
+ | TelemetryTimingEndMeasurementEvent;
36
+
37
+ export default TelemetryMeasurementEvent;
38
+
39
+ export {
40
+ TelemetryEventMeasurementEvent,
41
+ TelemetryExceptionMeasurementEvent,
42
+ TelemetryTimingStartMeasurementEvent,
43
+ TelemetryTimingEndMeasurementEvent
44
+ };
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ import Notification from './Notification';
4
+
5
+ type ToastProps = {
6
+ notification: Notification;
7
+ };
8
+
9
+ type RenderToast = (props: ToastProps) => ReactNode;
10
+
11
+ type ToastEnhancer = (next: RenderToast) => RenderToast;
12
+ type ToastMiddleware = () => ToastEnhancer;
13
+
14
+ export default ToastMiddleware;
15
+
16
+ export type { RenderToast };
@@ -0,0 +1,8 @@
1
+ type Typing = {
2
+ at: number;
3
+ expireAt: number;
4
+ name: string;
5
+ role: 'bot' | 'user';
6
+ };
7
+
8
+ export default Typing;
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ import Typing from './Typing';
4
+
5
+ type TypingIndicatorProps = {
6
+ activeTyping: { [id: string]: Typing };
7
+ typing: { [id: string]: Typing };
8
+ visible: boolean;
9
+ };
10
+
11
+ type RenderTypingIndicator = (props: TypingIndicatorProps) => ReactNode;
12
+
13
+ type TypingIndicatorEnhancer = (next: RenderTypingIndicator) => RenderTypingIndicator;
14
+ type TypingIndicatorMiddleware = () => TypingIndicatorEnhancer;
15
+
16
+ export default TypingIndicatorMiddleware;
17
+
18
+ export type { RenderTypingIndicator };