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
@@ -14,7 +14,7 @@ function determineDirection(dir, language) {
14
14
  return 'ltr';
15
15
  }
16
16
 
17
- export default function useDirection() {
17
+ export default function useDirection(): ['auto' | 'ltr' | 'rtl'] {
18
18
  const [dir] = useDirFromProps();
19
19
  const [language] = useLanguage();
20
20
  const determinedDirection = useMemo(() => determineDirection(dir, language), [dir, language]);
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useDisabled() {
3
+ export default function useDisabled(): [boolean] {
4
4
  return [useWebChatAPIContext().disabled];
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useDismissNotification() {
3
+ export default function useDismissNotification(): (id: string) => void {
4
4
  return useWebChatAPIContext().dismissNotification;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useEmitTypingIndicator() {
3
+ export default function useEmitTypingIndicator(): () => void {
4
4
  return useWebChatAPIContext().emitTypingIndicator;
5
5
  }
@@ -0,0 +1,3 @@
1
+ import useGetActivityByKey from '../providers/ActivityKeyer/useGetActivityByKey';
2
+
3
+ export default useGetActivityByKey;
@@ -0,0 +1,3 @@
1
+ import useGetHasAcknowledgedByActivityKey from '../providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey';
2
+
3
+ export default useGetHasAcknowledgedByActivityKey;
@@ -0,0 +1,3 @@
1
+ import useGetKeyByActivity from '../providers/ActivityKeyer/useGetKeyByActivity';
2
+
3
+ export default useGetKeyByActivity;
@@ -0,0 +1,3 @@
1
+ import useGetKeyByActivityId from '../providers/ActivityKeyer/useGetKeyByActivityId';
2
+
3
+ export default useGetKeyByActivityId;
@@ -0,0 +1,20 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+ import { useMemo } from 'react';
3
+
4
+ import useStyleOptions from './useStyleOptions';
5
+
6
+ export default function useGetSendTimeoutForActivity(): ({ activity }: { activity: DirectLineActivity }) => number {
7
+ const [{ sendTimeout, sendTimeoutForAttachments }] = useStyleOptions();
8
+
9
+ return useMemo(
10
+ () =>
11
+ ({ activity }) => {
12
+ if (typeof sendTimeout === 'function') {
13
+ return sendTimeout(activity);
14
+ }
15
+
16
+ return activity.attachments && activity.attachments.length ? sendTimeoutForAttachments : sendTimeout;
17
+ },
18
+ [sendTimeout, sendTimeoutForAttachments]
19
+ );
20
+ }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useGrammars() {
3
+ export default function useGrammars(): [any] {
4
4
  return [useWebChatAPIContext().grammars];
5
5
  }
@@ -0,0 +1,10 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
4
+
5
+ export default function useGroupActivities(): ({ activities }: { activities: DirectLineActivity[] }) => {
6
+ sender: DirectLineActivity[][];
7
+ status: DirectLineActivity[][];
8
+ } {
9
+ return useWebChatAPIContext().groupActivities;
10
+ }
@@ -1,6 +1,6 @@
1
1
  import useStyleOptions from './useStyleOptions';
2
2
 
3
- export default function useGroupTimestamp() {
3
+ export default function useGroupTimestamp(): [boolean | number] {
4
4
  const [{ groupTimestamp }] = useStyleOptions();
5
5
 
6
6
  return [groupTimestamp];
@@ -1,7 +1,7 @@
1
1
  import useLocalizedStrings from './internal/useLocalizedStrings';
2
2
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
3
 
4
- export default function useLanguage(options) {
4
+ export default function useLanguage(options?: 'speech'): [string] {
5
5
  const { language } = useWebChatAPIContext();
6
6
  const localizedStrings = useLocalizedStrings();
7
7
 
@@ -0,0 +1,3 @@
1
+ import useLastAcknowledgedActivityKey from '../providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey';
2
+
3
+ export default useLastAcknowledgedActivityKey;
@@ -0,0 +1,3 @@
1
+ import useLastReadActivityKey from '../providers/ActivityAcknowledgement/useLastReadActivityKey';
2
+
3
+ export default useLastReadActivityKey;
@@ -2,7 +2,8 @@ import { useSelector } from './internal/WebChatReduxContext';
2
2
 
3
3
  let showDeprecationNotes = true;
4
4
 
5
- export default function useLastTypingAt() {
5
+ /** @deprecated Please use "useActiveTyping" instead. */
6
+ export default function useLastTypingAt(): [{ [userId: string]: number }] {
6
7
  if (showDeprecationNotes) {
7
8
  console.warn(
8
9
  'botframework-webchat: "useLastTypingAt" is deprecated. Please use "useActiveTyping" instead. This hook will be removed on or after 2022-02-16.'
@@ -2,7 +2,9 @@ import useLanguage from './useLanguage';
2
2
 
3
3
  import { localize } from '../localization/Localize';
4
4
 
5
- export default function useLocalize(text, ...args) {
5
+ // TODO: Remove on or after 2022-02-12.
6
+ /** @deprecated Please use "useLocalizer" instead. */
7
+ export default function useLocalize(text: string, ...args: string[]): boolean | string {
6
8
  const [language] = useLanguage();
7
9
 
8
10
  // TODO: [P3] Use useMemo to cache the result.
@@ -4,7 +4,8 @@ import getLocaleString from '../localization/getLocaleString';
4
4
 
5
5
  let deprecationNotesShown;
6
6
 
7
- export default function useLocalizeDate(date) {
7
+ /** @deprecated Please use useDateFormatter() instead. */
8
+ export default function useLocalizeDate(date: Date | number | string): string {
8
9
  if (!deprecationNotesShown) {
9
10
  console.warn(
10
11
  'botframework-webchat: useLocalizeDate() is deprecated. Please use the useDateFormatter() hooks instead. This hook will be removed on or after 2022-02-12.'
@@ -1,3 +1,4 @@
1
+ import { isForbiddenPropertyName } from 'botframework-webchat-core';
1
2
  import { useCallback } from 'react';
2
3
 
3
4
  import getAllLocalizedStrings from '../localization/getAllLocalizedStrings';
@@ -7,22 +8,37 @@ import isObject from '../utils/isObject';
7
8
 
8
9
  const DEFAULT_STRINGS = getAllLocalizedStrings()['en-US'];
9
10
 
10
- export default function useLocalizer({ plural } = {}) {
11
+ type Plural = {
12
+ zero?: string;
13
+ one?: string;
14
+ two?: string;
15
+ few?: string;
16
+ many?: string;
17
+ other: string;
18
+ };
19
+
20
+ export default function useLocalizer({ plural }: { plural?: boolean } = {}) {
11
21
  const [globalize] = useLocalizedGlobalize();
12
22
  const localizedStrings = useLocalizedStrings();
13
23
 
14
24
  return useCallback(
15
- (id, ...args) => {
25
+ (id: string | Plural, ...args: [(number | string)?, ...string[]]) => {
26
+ let stringId = id as string;
27
+
16
28
  if (plural) {
17
- if (!isObject(id)) {
29
+ const pluralId = id as Plural;
30
+
31
+ if (!isObject(pluralId)) {
18
32
  throw new Error('useLocalizer: Plural string must pass "id" as a map instead of string.');
19
- } else if (typeof id.other !== 'string') {
33
+ } else if (typeof pluralId.other !== 'string') {
20
34
  throw new Error('useLocalizer: Plural string must have "id.other" of string.');
21
35
  } else if (typeof args[0] !== 'number') {
22
36
  throw new Error('useLocalizer: Plural string must have first argument as a number.');
23
37
  }
24
38
 
25
39
  for (const pluralForm of ['zero', 'one', 'two', 'few', 'many']) {
40
+ // Mitigation through allowlisting.
41
+ // eslint-disable-next-line security/detect-object-injection
26
42
  const type = typeof id[pluralForm];
27
43
 
28
44
  if (type !== 'string' && type !== 'undefined') {
@@ -42,14 +58,16 @@ export default function useLocalizer({ plural } = {}) {
42
58
  );
43
59
  }
44
60
 
45
- id = id[globalize.plural(args[0])] || id.other;
61
+ stringId = pluralId[globalize.plural(args[0])] || pluralId.other;
46
62
  } else if (typeof id !== 'string') {
47
63
  throw new Error('useLocalizer: "id" must be a string.');
48
64
  }
49
65
 
50
66
  return Object.entries(args).reduce(
51
67
  (str, [index, arg]) => str.replace(`$${+index + 1}`, arg),
52
- localizedStrings[id] || DEFAULT_STRINGS[id] || ''
68
+ // Mitigation through denylisting.
69
+ // eslint-disable-next-line security/detect-object-injection
70
+ isForbiddenPropertyName(stringId) ? '' : localizedStrings[stringId] || DEFAULT_STRINGS[stringId] || ''
53
71
  );
54
72
  },
55
73
  [globalize, localizedStrings, plural]
@@ -1,8 +1,9 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
1
2
  import { useCallback } from 'react';
2
3
 
3
4
  import useMarkActivity from './internal/useMarkActivity';
4
5
 
5
- export default function useMarkActivityAsSpoken() {
6
+ export default function useMarkActivityAsSpoken(): (activity: DirectLineActivity) => void {
6
7
  const markActivity = useMarkActivity();
7
8
 
8
9
  return useCallback(activity => markActivity(activity, 'speak', false), [markActivity]);
@@ -0,0 +1,3 @@
1
+ import useMarkActivityKeyAsRead from '../providers/ActivityAcknowledgement/useMarkActivityKeyAsRead';
2
+
3
+ export default useMarkActivityKeyAsRead;
@@ -0,0 +1,3 @@
1
+ import useMarkAllAsAcknowledged from '../providers/ActivityAcknowledgement/useMarkAllAsAcknowledged';
2
+
3
+ export default useMarkAllAsAcknowledged;
@@ -1,5 +1,6 @@
1
1
  import { useSelector } from './internal/WebChatReduxContext';
2
+ import Notification from '../types/Notification';
2
3
 
3
- export default function useNotifications() {
4
+ export default function useNotifications(): [Notification[]] {
4
5
  return [useSelector(({ notifications }) => notifications)];
5
6
  }
@@ -0,0 +1,6 @@
1
+ import { PerformCardAction } from '../types/CardActionMiddleware';
2
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
+
4
+ export default function usePerformCardAction(): PerformCardAction {
5
+ return useWebChatAPIContext().onCardAction;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+ import Observable from 'core-js/features/observable';
3
+
4
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
5
+
6
+ export default function usePostActivity(): (activity: DirectLineActivity) => Observable<string> {
7
+ return useWebChatAPIContext().postActivity;
8
+ }
@@ -1,5 +1,5 @@
1
1
  import { useSelector } from './internal/WebChatReduxContext';
2
2
 
3
- export default function useReferenceGrammarID() {
3
+ export default function useReferenceGrammarID(): [string] {
4
4
  return [useSelector(({ referenceGrammarID }) => referenceGrammarID)];
5
5
  }
@@ -6,7 +6,7 @@ import useDateFormatter from './useDateFormatter';
6
6
  import useLocalizedGlobalize from './internal/useLocalizedGlobalize';
7
7
  import useLocalizer from './useLocalizer';
8
8
 
9
- export default function useRelativeTimeFormatter() {
9
+ export default function useRelativeTimeFormatter(): (dateOrString: Date | string) => string {
10
10
  const formatDate = useDateFormatter();
11
11
  const localize = useLocalizer();
12
12
  const [globalize] = useLocalizedGlobalize();
@@ -17,6 +17,7 @@ import useCreateActivityRendererInternal from './internal/useCreateActivityRende
17
17
 
18
18
  let showDeprecationNotes = true;
19
19
 
20
+ /** @deprecated Please use `useCreateActivityRenderer()` instead. */
20
21
  export default function useRenderActivity(renderAttachment) {
21
22
  if (showDeprecationNotes) {
22
23
  console.warn(
@@ -33,19 +34,20 @@ export default function useRenderActivity(renderAttachment) {
33
34
  const createActivityRenderer = useCreateActivityRendererInternal(renderAttachment);
34
35
 
35
36
  return useMemo(
36
- () => (renderActivityArg, renderOptions = {}) => {
37
- const { activity } = renderActivityArg || {};
37
+ () =>
38
+ (renderActivityArg, renderOptions = {}) => {
39
+ const { activity } = renderActivityArg || {};
38
40
 
39
- if (!activity) {
40
- throw new Error(
41
- 'botframework-webchat: First argument passed to the callback of useRenderActivity() must contain an "activity" property.'
42
- );
43
- }
41
+ if (!activity) {
42
+ throw new Error(
43
+ 'botframework-webchat: First argument passed to the callback of useRenderActivity() must contain an "activity" property.'
44
+ );
45
+ }
44
46
 
45
- const renderActivity = createActivityRenderer(renderActivityArg);
47
+ const renderActivity = createActivityRenderer(renderActivityArg);
46
48
 
47
- return !!renderActivity && renderActivity(renderOptions);
48
- },
49
+ return !!renderActivity && renderActivity(renderOptions);
50
+ },
49
51
  [createActivityRenderer]
50
52
  );
51
53
  }
@@ -16,6 +16,7 @@ import useCreateActivityStatusRenderer from './useCreateActivityStatusRenderer';
16
16
 
17
17
  let showDeprecationNotes = true;
18
18
 
19
+ /** @deprecated Please use `useCreateActivityStatusRenderer()` instead. */
19
20
  export default function useRenderActivityStatus({ activity, nextVisibleActivity }) {
20
21
  if (showDeprecationNotes) {
21
22
  console.warn(
@@ -2,6 +2,7 @@ import useCreateAvatarRenderer from './useCreateAvatarRenderer';
2
2
 
3
3
  let showDeprecationNotes = true;
4
4
 
5
+ /** @deprecated Please use "useRenderAvatar()" instead. */
5
6
  export default function useRenderAvatar({ activity }) {
6
7
  if (showDeprecationNotes) {
7
8
  console.warn(
@@ -1,5 +1,6 @@
1
+ import { RenderToast } from '../types/ToastMiddleware';
1
2
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
3
 
3
- export default function useRenderToast() {
4
+ export default function useRenderToast(): RenderToast {
4
5
  return useWebChatAPIContext().toastRenderer;
5
6
  }
@@ -0,0 +1,6 @@
1
+ import { RenderTypingIndicator } from '../types/TypingIndicatorMiddleware';
2
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
+
4
+ export default function useRenderTypingIndicator(): RenderTypingIndicator {
5
+ return useWebChatAPIContext().typingIndicatorRenderer;
6
+ }
@@ -1,6 +1,6 @@
1
1
  import { useSelector } from './internal/WebChatReduxContext';
2
2
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
3
 
4
- export default function useSendBoxValue() {
4
+ export default function useSendBoxValue(): [string, (value: string) => void] {
5
5
  return [useSelector(({ sendBoxValue }) => sendBoxValue), useWebChatAPIContext().setSendBox];
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useSendEvent() {
3
+ export default function useSendEvent(): (name: string, value: any) => void {
4
4
  return useWebChatAPIContext().sendEvent;
5
5
  }
@@ -5,7 +5,7 @@ import { useCallback } from 'react';
5
5
  import useTrackEvent from './useTrackEvent';
6
6
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
7
7
 
8
- export default function useSendFiles() {
8
+ export default function useSendFiles(): (files: File[]) => void {
9
9
  const { sendFiles } = useWebChatAPIContext();
10
10
  const trackEvent = useTrackEvent();
11
11
 
@@ -0,0 +1,9 @@
1
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
+
3
+ export default function useSendMessage(): (
4
+ text: string,
5
+ method?: string,
6
+ { channelData }?: { channelData?: any }
7
+ ) => void {
8
+ return useWebChatAPIContext().sendMessage;
9
+ }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useSendMessageBack() {
3
+ export default function useSendMessageBack(): (value: any, text?: string, displayText?: string) => void {
4
4
  return useWebChatAPIContext().sendMessageBack;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useSendPostBack() {
3
+ export default function useSendPostBack(): (value?: any) => void {
4
4
  return useWebChatAPIContext().sendPostBack;
5
5
  }
@@ -1,8 +1,11 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+
1
3
  import useGetSendTimeoutForActivity from './useGetSendTimeoutForActivity';
2
4
 
3
5
  let showDeprecationNotes = true;
4
6
 
5
- export default function useSendTimeoutForActivity(activity) {
7
+ /** @deprecated Please use "useGetSendTimeoutForActivity()" instead. */
8
+ export default function useSendTimeoutForActivity(activity: DirectLineActivity) {
6
9
  if (showDeprecationNotes) {
7
10
  console.warn(
8
11
  'botframework-webchat: "useSendTimeoutForActivity" is deprecated and will be removed on or after 2022-07-28. Please use "useGetSendTimeoutForActivity()" instead.'
@@ -1,5 +1,5 @@
1
1
  import { useSelector } from './internal/WebChatReduxContext';
2
2
 
3
- export default function useSendTypingIndicator() {
3
+ export default function useSendTypingIndicator(): [boolean] {
4
4
  return [useSelector(({ sendTypingIndicator }) => sendTypingIndicator)];
5
5
  }
@@ -0,0 +1,6 @@
1
+ import Notification from '../types/Notification';
2
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
+
4
+ export default function useSetNotification(): (notification: Notification) => void {
5
+ return useWebChatAPIContext().setNotification;
6
+ }
@@ -3,7 +3,7 @@ import { useCallback } from 'react';
3
3
  import { useSelector } from './internal/WebChatReduxContext';
4
4
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
5
5
 
6
- export default function useShouldSpeakIncomingActivity() {
6
+ export default function useShouldSpeakIncomingActivity(): [boolean, (value: boolean) => void] {
7
7
  const { startSpeakingActivity, stopSpeakingActivity } = useWebChatAPIContext();
8
8
 
9
9
  return [
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useStartDictate() {
3
+ export default function useStartDictate(): () => void {
4
4
  return useWebChatAPIContext().startDictate;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useStopDictate() {
3
+ export default function useStopDictate(): () => void {
4
4
  return useWebChatAPIContext().stopDictate;
5
5
  }
@@ -0,0 +1,6 @@
1
+ import { StrictStyleOptions } from '../StyleOptions';
2
+ import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
+
4
+ export default function useStyleOptions(): [StrictStyleOptions] {
5
+ return [useWebChatAPIContext().styleOptions];
6
+ }
@@ -3,18 +3,15 @@ import { useCallback } from 'react';
3
3
  import useTrackEvent from './useTrackEvent';
4
4
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
5
5
 
6
- export default function useSubmitSendBox() {
6
+ export default function useSubmitSendBox(): (method?: string, { channelData }?: { channelData: any }) => void {
7
7
  const { submitSendBox } = useWebChatAPIContext();
8
8
  const trackEvent = useTrackEvent();
9
9
 
10
10
  return useCallback(
11
- (...args) => {
12
- // We cannot use spread operator as it broken in Angular.
13
- const method = args[0] || 'keyboard';
14
-
11
+ (method: string, { channelData }: { channelData?: any } = {}) => {
15
12
  trackEvent('submitSendBox', method);
16
13
 
17
- return submitSendBox(...args);
14
+ return submitSendBox(method, channelData && { channelData });
18
15
  },
19
16
  [submitSendBox, trackEvent]
20
17
  );
@@ -1,9 +1,13 @@
1
+ import { DirectLineSuggestedAction } from 'botframework-webchat-core';
1
2
  import { useCallback } from 'react';
2
3
 
3
4
  import { useSelector } from './internal/WebChatReduxContext';
4
5
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
5
6
 
6
- export default function useSuggestedActions() {
7
+ export default function useSuggestedActions(): [
8
+ DirectLineSuggestedAction[],
9
+ (suggestedActions: DirectLineSuggestedAction[]) => void
10
+ ] {
7
11
  const value = useSelector(({ suggestedActions }) => suggestedActions);
8
12
  const { clearSuggestedActions } = useWebChatAPIContext();
9
13
 
@@ -0,0 +1,9 @@
1
+ import { DirectLineActivity } from 'botframework-webchat-core';
2
+
3
+ import useStyleOptions from './useStyleOptions';
4
+
5
+ export default function useTimeoutForSend(): [number | ((activity: DirectLineActivity) => number)] {
6
+ const [{ sendTimeout }] = useStyleOptions();
7
+
8
+ return [sendTimeout];
9
+ }
@@ -1,6 +1,6 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useTrackDimension() {
3
+ export default function useTrackDimension(): (name: string, data: any) => void {
4
4
  const { trackDimension } = useWebChatAPIContext();
5
5
 
6
6
  return trackDimension;
@@ -9,7 +9,15 @@ function isNonNegativeFiniteNumberOrString(value) {
9
9
  return (typeof value === 'number' && isFinite(value) && value >= 0) || typeof value === 'string';
10
10
  }
11
11
 
12
- export default function useTrackEvent() {
12
+ type TrackEventFunction = {
13
+ (name: string, data: any): void;
14
+ debug: (name: string, data: any) => void;
15
+ error: (name: string, data: any) => void;
16
+ info: (name: string, data: any) => void;
17
+ warn: (name: string, data: any) => void;
18
+ };
19
+
20
+ export default function useTrackEvent(): TrackEventFunction {
13
21
  const { onTelemetry } = useWebChatAPIContext();
14
22
  const readTelemetryDimensions = useReadTelemetryDimensions();
15
23
 
@@ -40,7 +48,7 @@ export default function useTrackEvent() {
40
48
  );
41
49
 
42
50
  return useMemo(() => {
43
- const info = trackEvent.bind(null, 'info');
51
+ const info: TrackEventFunction = trackEvent.bind(null, 'info');
44
52
 
45
53
  info.debug = trackEvent.bind(null, 'debug');
46
54
  info.error = trackEvent.bind(null, 'error');
@@ -4,7 +4,7 @@ import createCustomEvent from '../utils/createCustomEvent';
4
4
  import useReadTelemetryDimensions from './internal/useReadTelemetryDimensions';
5
5
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
6
6
 
7
- export default function useTrackException() {
7
+ export default function useTrackException(): (error: Error, fatal: boolean) => void {
8
8
  const { onTelemetry } = useWebChatAPIContext();
9
9
  const readTelemetryDimensions = useReadTelemetryDimensions();
10
10
 
@@ -6,7 +6,10 @@ import useReadTelemetryDimensions from './internal/useReadTelemetryDimensions';
6
6
  import useTrackException from './useTrackException';
7
7
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
8
8
 
9
- export default function useTrackTiming() {
9
+ export default function useTrackTiming<T>(): (
10
+ name: string,
11
+ functionOrPromise: (() => T) | Promise<T>
12
+ ) => Promise<T | void> {
10
13
  const { onTelemetry } = useWebChatAPIContext();
11
14
  const readTelemetryDimensions = useReadTelemetryDimensions();
12
15
  const trackException = useTrackException();
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useUserID() {
3
+ export default function useUserID(): [string] {
4
4
  return [useWebChatAPIContext().userID];
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
2
2
 
3
- export default function useUsername() {
3
+ export default function useUsername(): [string] {
4
4
  return [useWebChatAPIContext().username];
5
5
  }
@@ -1,7 +1,10 @@
1
1
  import { useCallback } from 'react';
2
+
2
3
  import useWebChatAPIContext from './internal/useWebChatAPIContext';
3
4
 
4
- export default function useVoiceSelector(activity) {
5
+ export default function useVoiceSelector(
6
+ activity
7
+ ): (voices: typeof window.SpeechSynthesisVoice[]) => typeof window.SpeechSynthesisVoice {
5
8
  const context = useWebChatAPIContext();
6
9
 
7
10
  return useCallback(voices => context.selectVoice(voices, activity), [activity, context]);