botframework-webchat-component 4.14.1 → 4.15.2-main.20220413.af6e8a3

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 (411) hide show
  1. package/.eslintrc.yml +4 -106
  2. package/.prettierrc.yml +1 -1
  3. package/lib/Activity/CarouselFilmStrip.js +1 -1
  4. package/lib/Activity/CarouselFilmStripAttachment.js +1 -1
  5. package/lib/Activity/CarouselLayout.js +3 -3
  6. package/lib/Activity/Speak.d.ts +2 -2
  7. package/lib/Activity/Speak.d.ts.map +1 -1
  8. package/lib/Activity/Speak.js +15 -8
  9. package/lib/Activity/StackedLayout.d.ts +5 -3
  10. package/lib/Activity/StackedLayout.d.ts.map +1 -1
  11. package/lib/Activity/StackedLayout.js +16 -21
  12. package/lib/Attachment/FileAttachment.js +2 -2
  13. package/lib/Attachment/FileContent.d.ts.map +1 -1
  14. package/lib/Attachment/FileContent.js +11 -1
  15. package/lib/BasicSendBox.d.ts.map +1 -1
  16. package/lib/BasicSendBox.js +8 -9
  17. package/lib/BasicToast.js +1 -1
  18. package/lib/BasicToaster.js +6 -3
  19. package/lib/BasicTranscript.d.ts +7 -0
  20. package/lib/BasicTranscript.d.ts.map +1 -0
  21. package/lib/BasicTranscript.js +386 -728
  22. package/lib/BasicTypingIndicator.d.ts +2 -1
  23. package/lib/BasicTypingIndicator.d.ts.map +1 -1
  24. package/lib/BasicTypingIndicator.js +12 -4
  25. package/lib/Composer.d.ts.map +1 -1
  26. package/lib/Composer.js +37 -32
  27. package/lib/ConnectivityStatus/Connecting.js +1 -1
  28. package/lib/Dictation.js +1 -1
  29. package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +1 -1
  30. package/lib/Middleware/Activity/createCoreMiddleware.js +9 -12
  31. package/lib/Middleware/ActivityStatus/SendStatus/SendFailedRetry.js +1 -1
  32. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts +2 -2
  33. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts.map +1 -1
  34. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.js +5 -4
  35. package/lib/Middleware/ActivityStatus/Timestamp.d.ts +2 -2
  36. package/lib/Middleware/ActivityStatus/Timestamp.d.ts.map +1 -1
  37. package/lib/Middleware/ActivityStatus/Timestamp.js +4 -2
  38. package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +20 -17
  39. package/lib/Middleware/Attachment/createCoreMiddleware.js +2 -5
  40. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +1 -1
  41. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +1 -1
  42. package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +1 -1
  43. package/lib/Middleware/Avatar/createCoreMiddleware.js +2 -3
  44. package/lib/Middleware/CardAction/createCoreMiddleware.js +10 -3
  45. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +1 -1
  46. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +1 -1
  47. package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +1 -1
  48. package/lib/Middleware/Toast/createCoreMiddleware.js +1 -1
  49. package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +1 -1
  50. package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +8 -6
  51. package/lib/ReactWebChat.js +2 -2
  52. package/lib/ScreenReaderActivity.js +15 -6
  53. package/lib/ScreenReaderText.d.ts +9 -0
  54. package/lib/ScreenReaderText.d.ts.map +1 -0
  55. package/lib/ScreenReaderText.js +22 -8
  56. package/lib/SendBox/AutoResizeTextArea.js +1 -1
  57. package/lib/SendBox/DictationInterims.js +1 -1
  58. package/lib/SendBox/IconButton.d.ts +11 -0
  59. package/lib/SendBox/IconButton.d.ts.map +1 -0
  60. package/lib/SendBox/IconButton.js +26 -6
  61. package/lib/SendBox/MicrophoneButton.js +2 -2
  62. package/lib/SendBox/SendButton.js +2 -2
  63. package/lib/SendBox/SuggestedAction.d.ts +17 -0
  64. package/lib/SendBox/SuggestedAction.d.ts.map +1 -0
  65. package/lib/SendBox/SuggestedAction.js +26 -17
  66. package/lib/SendBox/SuggestedActions.d.ts.map +1 -1
  67. package/lib/SendBox/SuggestedActions.js +26 -9
  68. package/lib/SendBox/TextBox.js +4 -4
  69. package/lib/SendBox/UploadButton.js +4 -4
  70. package/lib/Styles/StyleSet/BasicTranscript.d.ts +13 -5
  71. package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +1 -1
  72. package/lib/Styles/StyleSet/BasicTranscript.js +21 -9
  73. package/lib/Styles/StyleSet/Bubble.d.ts.map +1 -1
  74. package/lib/Styles/StyleSet/Bubble.js +3 -3
  75. package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +1 -1
  76. package/lib/Styles/StyleSet/CarouselFilmStrip.js +3 -3
  77. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +1 -1
  78. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +3 -3
  79. package/lib/Styles/StyleSet/KeyboardHelp.d.ts +123 -0
  80. package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +1 -0
  81. package/lib/Styles/StyleSet/KeyboardHelp.js +145 -0
  82. package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +1 -1
  83. package/lib/Styles/StyleSet/ScrollToEndButton.js +2 -2
  84. package/lib/Styles/StyleSet/SendBoxButton.d.ts +56 -10
  85. package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +1 -1
  86. package/lib/Styles/StyleSet/SendBoxButton.js +76 -12
  87. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +1 -1
  88. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +1 -1
  89. package/lib/Styles/StyleSet/SendBoxTextBox.js +3 -3
  90. package/lib/Styles/StyleSet/StackedLayout.d.ts.map +1 -1
  91. package/lib/Styles/StyleSet/StackedLayout.js +1 -1
  92. package/lib/Styles/StyleSet/SuggestedAction.d.ts +73 -28
  93. package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +1 -1
  94. package/lib/Styles/StyleSet/SuggestedAction.js +116 -41
  95. package/lib/Styles/StyleSet/SuggestedActions.d.ts +13 -6
  96. package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +1 -1
  97. package/lib/Styles/StyleSet/SuggestedActions.js +13 -6
  98. package/lib/Styles/createStyleSet.d.ts +324 -55
  99. package/lib/Styles/createStyleSet.d.ts.map +1 -1
  100. package/lib/Styles/createStyleSet.js +6 -3
  101. package/lib/Styles/mirrorStyle.js +12 -3
  102. package/lib/Toast/NotificationIcon.js +7 -3
  103. package/lib/Toast/createToastMiddleware.d.ts.map +1 -1
  104. package/lib/Toast/createToastMiddleware.js +1 -1
  105. package/lib/Transcript/ActivityRow.d.ts +9 -0
  106. package/lib/Transcript/ActivityRow.d.ts.map +1 -0
  107. package/lib/Transcript/ActivityRow.js +159 -0
  108. package/lib/Transcript/ActivityTextAlt.js +57 -0
  109. package/lib/Transcript/FocusTrap.d.ts +8 -0
  110. package/lib/Transcript/FocusTrap.d.ts.map +1 -0
  111. package/lib/Transcript/FocusTrap.js +74 -0
  112. package/lib/Transcript/KeyboardHelp.d.ts +4 -0
  113. package/lib/Transcript/KeyboardHelp.d.ts.map +1 -0
  114. package/lib/Transcript/KeyboardHelp.js +550 -0
  115. package/lib/Transcript/LiveRegionTranscript.d.ts +8 -0
  116. package/lib/Transcript/LiveRegionTranscript.d.ts.map +1 -0
  117. package/lib/Transcript/LiveRegionTranscript.js +229 -0
  118. package/lib/Transcript/types.d.ts +2 -0
  119. package/lib/Transcript/types.d.ts.map +1 -0
  120. package/lib/Transcript/types.js +2 -0
  121. package/lib/Transcript/useActivityAccessibleName.d.ts +4 -0
  122. package/lib/Transcript/useActivityAccessibleName.d.ts.map +1 -0
  123. package/lib/Transcript/useActivityAccessibleName.js +97 -0
  124. package/lib/Transcript/useTypistNames.d.ts +3 -0
  125. package/lib/Transcript/useTypistNames.d.ts.map +1 -0
  126. package/lib/Transcript/useTypistNames.js +61 -0
  127. package/lib/Utils/AccessKeySink/Surface.js +1 -1
  128. package/lib/Utils/AccessibleButton.d.ts +11 -0
  129. package/lib/Utils/AccessibleButton.d.ts.map +1 -0
  130. package/lib/Utils/AccessibleButton.js +12 -7
  131. package/lib/Utils/AccessibleInputText.js +1 -1
  132. package/lib/Utils/AccessibleTextArea.js +1 -1
  133. package/lib/Utils/CroppedImage.js +1 -1
  134. package/lib/Utils/FocusRedirector.d.ts +9 -0
  135. package/lib/Utils/FocusRedirector.d.ts.map +1 -0
  136. package/lib/Utils/FocusRedirector.js +17 -14
  137. package/lib/Utils/InlineMarkdown.js +15 -8
  138. package/lib/Utils/TypeFocusSink/FocusBox.js +1 -1
  139. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +2 -0
  140. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +1 -0
  141. package/lib/Utils/TypeFocusSink/inputtableKey.js +5 -2
  142. package/lib/Utils/activityAltText.d.ts +8 -0
  143. package/lib/Utils/activityAltText.d.ts.map +1 -0
  144. package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +2 -2
  145. package/lib/Utils/createCustomEvent.js +8 -2
  146. package/lib/Utils/detectBrowser.js +4 -2
  147. package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +1 -1
  148. package/lib/Utils/downscaleImageToDataURL/index.js +1 -1
  149. package/lib/Utils/findAncestor.js +17 -0
  150. package/lib/Utils/getActivityUniqueId.js +4 -2
  151. package/lib/Utils/intersectionOf.d.ts +5 -0
  152. package/lib/Utils/intersectionOf.d.ts.map +1 -0
  153. package/lib/Utils/intersectionOf.js +17 -2
  154. package/lib/Utils/isZeroOrPositive.d.ts +5 -0
  155. package/lib/Utils/isZeroOrPositive.d.ts.map +1 -0
  156. package/lib/Utils/isZeroOrPositive.js +4 -1
  157. package/lib/Utils/mapMap.js +9 -2
  158. package/lib/Utils/readDataURIToBlob.js +1 -1
  159. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +7 -0
  160. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +1 -0
  161. package/lib/Utils/scrollIntoViewWithBlockNearest.js +48 -0
  162. package/lib/Utils/shallowEquals.js +7 -3
  163. package/lib/Utils/supportPseudoClass.d.ts +2 -0
  164. package/lib/Utils/supportPseudoClass.d.ts.map +1 -0
  165. package/lib/Utils/supportPseudoClass.js +23 -0
  166. package/lib/Utils/tabbableElements.d.ts +2 -0
  167. package/lib/Utils/tabbableElements.d.ts.map +1 -0
  168. package/lib/Utils/tabbableElements.js +2 -2
  169. package/lib/connectToWebChat.js +15 -7
  170. package/lib/hooks/index.js +24 -24
  171. package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +8 -7
  172. package/lib/hooks/internal/useChanged.js +8 -1
  173. package/lib/hooks/internal/useDispatchScrollPosition.js +3 -7
  174. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +2 -0
  175. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +1 -0
  176. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +15 -0
  177. package/lib/hooks/internal/useFocusVisible.d.ts +3 -0
  178. package/lib/hooks/internal/useFocusVisible.d.ts.map +1 -0
  179. package/lib/hooks/internal/useFocusVisible.js +48 -0
  180. package/lib/hooks/internal/useMemoWithPrevious.d.ts +3 -0
  181. package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +1 -0
  182. package/lib/hooks/internal/useMemoWithPrevious.js +22 -0
  183. package/lib/hooks/internal/useMemoize.d.ts +14 -0
  184. package/lib/hooks/internal/useMemoize.d.ts.map +1 -0
  185. package/lib/hooks/internal/useMemoize.js +11 -2
  186. package/lib/hooks/internal/useObserveFocusVisible.d.ts +3 -0
  187. package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +1 -0
  188. package/lib/hooks/internal/useObserveFocusVisible.js +208 -0
  189. package/lib/hooks/internal/usePrevious.d.ts +2 -0
  190. package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
  191. package/lib/hooks/internal/usePrevious.js +18 -0
  192. package/lib/hooks/internal/useStateRef.d.ts +3 -0
  193. package/lib/hooks/internal/useStateRef.d.ts.map +1 -0
  194. package/lib/hooks/internal/useStateRef.js +40 -0
  195. package/lib/hooks/internal/useValueRef.d.ts +3 -0
  196. package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
  197. package/lib/hooks/internal/useValueRef.js +25 -0
  198. package/lib/hooks/useFocus.d.ts +1 -1
  199. package/lib/hooks/useFocus.d.ts.map +1 -1
  200. package/lib/hooks/useFocus.js +1 -1
  201. package/lib/hooks/useObserveTranscriptFocus.d.ts +2 -2
  202. package/lib/hooks/useObserveTranscriptFocus.d.ts.map +1 -1
  203. package/lib/hooks/useObserveTranscriptFocus.js +1 -1
  204. package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +1 -1
  205. package/lib/hooks/useRenderMarkdownAsHTML.js +1 -1
  206. package/lib/hooks/useScrollTo.d.ts.map +1 -1
  207. package/lib/hooks/useScrollTo.js +1 -1
  208. package/lib/hooks/useScrollToEnd.d.ts.map +1 -1
  209. package/lib/hooks/useScrollToEnd.js +1 -1
  210. package/lib/hooks/useSendFiles.d.ts.map +1 -1
  211. package/lib/hooks/useSendFiles.js +4 -4
  212. package/lib/index.d.ts +13 -3
  213. package/lib/index.d.ts.map +1 -1
  214. package/lib/index.js +20 -18
  215. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +5 -0
  216. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +1 -0
  217. package/lib/providers/ActivityTree/ActivityTreeComposer.js +86 -0
  218. package/lib/providers/ActivityTree/private/Context.d.ts +9 -0
  219. package/lib/providers/ActivityTree/private/Context.d.ts.map +1 -0
  220. package/lib/providers/ActivityTree/private/Context.js +13 -0
  221. package/lib/providers/ActivityTree/private/types.d.ts +10 -0
  222. package/lib/providers/ActivityTree/private/types.d.ts.map +1 -0
  223. package/lib/providers/ActivityTree/private/types.js +2 -0
  224. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +4 -0
  225. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +1 -0
  226. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +58 -0
  227. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +5 -0
  228. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +1 -0
  229. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +166 -0
  230. package/lib/providers/ActivityTree/private/useContext.d.ts +3 -0
  231. package/lib/providers/ActivityTree/private/useContext.d.ts.map +1 -0
  232. package/lib/providers/ActivityTree/private/useContext.js +24 -0
  233. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +8 -0
  234. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +1 -0
  235. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +17 -0
  236. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +37 -0
  237. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +1 -0
  238. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +160 -0
  239. package/lib/providers/LiveRegionTwin/private/Context.d.ts +10 -0
  240. package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +1 -0
  241. package/lib/providers/LiveRegionTwin/private/Context.js +13 -0
  242. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +12 -0
  243. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +1 -0
  244. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +100 -0
  245. package/lib/providers/LiveRegionTwin/private/types.d.ts +8 -0
  246. package/lib/providers/LiveRegionTwin/private/types.d.ts.map +1 -0
  247. package/lib/providers/LiveRegionTwin/private/types.js +2 -0
  248. package/lib/providers/LiveRegionTwin/private/useContext.d.ts +3 -0
  249. package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +1 -0
  250. package/lib/providers/LiveRegionTwin/private/useContext.js +24 -0
  251. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +2 -0
  252. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +1 -0
  253. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +24 -0
  254. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +3 -0
  255. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +1 -0
  256. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +15 -0
  257. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +8 -0
  258. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +1 -0
  259. package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +20 -0
  260. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +7 -0
  261. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +1 -0
  262. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +184 -0
  263. package/lib/providers/TranscriptFocus/private/Context.d.ts +12 -0
  264. package/lib/providers/TranscriptFocus/private/Context.d.ts.map +1 -0
  265. package/lib/providers/TranscriptFocus/private/Context.js +13 -0
  266. package/lib/providers/TranscriptFocus/private/useContext.d.ts +2 -0
  267. package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +1 -0
  268. package/lib/providers/TranscriptFocus/private/useContext.js +24 -0
  269. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +2 -0
  270. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +1 -0
  271. package/lib/providers/TranscriptFocus/useActiveDescendantId.js +15 -0
  272. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +8 -0
  273. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +1 -0
  274. package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +21 -0
  275. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +2 -0
  276. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +1 -0
  277. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +15 -0
  278. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +2 -0
  279. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +1 -0
  280. package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +15 -0
  281. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +2 -0
  282. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +1 -0
  283. package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +15 -0
  284. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +2 -0
  285. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +1 -0
  286. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +15 -0
  287. package/package.json +30 -33
  288. package/src/Activity/CarouselFilmStripAttachment.js +0 -1
  289. package/src/Activity/Speak.tsx +21 -18
  290. package/src/Activity/StackedLayout.tsx +30 -35
  291. package/src/Attachment/FileAttachment.js +1 -1
  292. package/src/Attachment/FileContent.tsx +12 -0
  293. package/src/BasicSendBox.tsx +3 -2
  294. package/src/BasicToaster.js +5 -1
  295. package/src/BasicTranscript.tsx +894 -0
  296. package/src/BasicTypingIndicator.tsx +3 -2
  297. package/src/Composer.tsx +41 -29
  298. package/src/Middleware/Activity/createCoreMiddleware.tsx +47 -46
  299. package/src/Middleware/ActivityStatus/SendStatus/SendStatus.tsx +5 -3
  300. package/src/Middleware/ActivityStatus/Timestamp.tsx +5 -3
  301. package/src/Middleware/ActivityStatus/createSendStatusMiddleware.js +2 -0
  302. package/src/Middleware/Attachment/createCoreMiddleware.tsx +28 -28
  303. package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.tsx +25 -23
  304. package/src/Middleware/Avatar/createCoreMiddleware.tsx +9 -8
  305. package/src/Middleware/CardAction/createCoreMiddleware.js +9 -2
  306. package/src/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.ts +11 -9
  307. package/src/Middleware/Toast/createCoreMiddleware.tsx +12 -10
  308. package/src/Middleware/TypingIndicator/createCoreMiddleware.tsx +8 -2
  309. package/src/ScreenReaderActivity.js +18 -3
  310. package/src/{ScreenReaderText.js → ScreenReaderText.tsx} +27 -9
  311. package/src/SendBox/{IconButton.js → IconButton.tsx} +19 -3
  312. package/src/SendBox/{SuggestedAction.js → SuggestedAction.tsx} +72 -35
  313. package/src/SendBox/SuggestedActions.tsx +48 -21
  314. package/src/Styles/StyleSet/BasicTranscript.ts +34 -20
  315. package/src/Styles/StyleSet/Bubble.ts +0 -1
  316. package/src/Styles/StyleSet/CarouselFilmStrip.ts +12 -10
  317. package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +4 -3
  318. package/src/Styles/StyleSet/KeyboardHelp.ts +157 -0
  319. package/src/Styles/StyleSet/ScrollToEndButton.ts +1 -1
  320. package/src/Styles/StyleSet/SendBoxButton.ts +84 -13
  321. package/src/Styles/StyleSet/SendBoxTextBox.ts +1 -2
  322. package/src/Styles/StyleSet/StackedLayout.ts +13 -11
  323. package/src/Styles/StyleSet/SuggestedAction.ts +129 -42
  324. package/src/Styles/StyleSet/SuggestedActions.ts +13 -5
  325. package/src/Styles/createStyleSet.ts +2 -1
  326. package/src/Styles/mirrorStyle.js +10 -2
  327. package/src/Toast/NotificationIcon.js +4 -1
  328. package/src/Toast/createToastMiddleware.tsx +4 -1
  329. package/src/Transcript/ActivityRow.tsx +123 -0
  330. package/src/Transcript/ActivityTextAlt.tsx +31 -0
  331. package/src/Transcript/FocusTrap.tsx +64 -0
  332. package/src/Transcript/KeyboardHelp.tsx +282 -0
  333. package/src/Transcript/LiveRegionTranscript.tsx +196 -0
  334. package/src/Transcript/types.ts +1 -0
  335. package/src/Transcript/useActivityAccessibleName.ts +84 -0
  336. package/src/Transcript/useTypistNames.ts +37 -0
  337. package/src/Utils/{AccessibleButton.js → AccessibleButton.tsx} +19 -4
  338. package/src/Utils/{FocusRedirector.js → FocusRedirector.tsx} +21 -8
  339. package/src/Utils/InlineMarkdown.js +18 -2
  340. package/src/Utils/TypeFocusSink/inputtableKey.ts +5 -1
  341. package/src/Utils/createCustomEvent.js +7 -1
  342. package/src/Utils/detectBrowser.js +2 -1
  343. package/src/Utils/findAncestor.ts +12 -0
  344. package/src/Utils/getActivityUniqueId.ts +5 -0
  345. package/src/Utils/intersectionOf.ts +14 -0
  346. package/src/Utils/isZeroOrPositive.ts +7 -0
  347. package/src/Utils/mapMap.js +7 -1
  348. package/src/Utils/scrollIntoViewWithBlockNearest.ts +20 -0
  349. package/src/Utils/shallowEquals.js +8 -1
  350. package/src/Utils/supportPseudoClass.ts +17 -0
  351. package/src/Utils/{tabbableElements.js → tabbableElements.ts} +6 -5
  352. package/src/connectToWebChat.js +11 -4
  353. package/src/hooks/internal/BypassSpeechSynthesisPonyfill.js +3 -1
  354. package/src/hooks/internal/useChanged.ts +17 -0
  355. package/src/hooks/internal/useDispatchScrollPosition.js +1 -3
  356. package/src/hooks/internal/useDispatchTranscriptFocusByActivityKey.ts +5 -0
  357. package/src/hooks/internal/useFocusVisible.ts +22 -0
  358. package/src/hooks/internal/useMemoWithPrevious.ts +16 -0
  359. package/src/hooks/internal/useMemoize.spec.js +1 -1
  360. package/src/hooks/internal/useMemoize.ts +53 -0
  361. package/src/hooks/internal/useObserveFocusVisible.ts +252 -0
  362. package/src/hooks/internal/usePrevious.ts +12 -0
  363. package/src/hooks/internal/useStateRef.ts +31 -0
  364. package/src/hooks/internal/useValueRef.ts +22 -0
  365. package/src/hooks/useFocus.ts +1 -1
  366. package/src/hooks/useObserveTranscriptFocus.ts +2 -2
  367. package/src/hooks/useRenderMarkdownAsHTML.ts +4 -5
  368. package/src/hooks/useScrollTo.ts +4 -3
  369. package/src/hooks/useScrollToEnd.ts +4 -3
  370. package/src/hooks/useSendFiles.ts +7 -5
  371. package/src/index.ts +0 -1
  372. package/src/providers/ActivityTree/ActivityTreeComposer.tsx +74 -0
  373. package/src/providers/ActivityTree/private/Context.ts +12 -0
  374. package/src/providers/ActivityTree/private/types.ts +12 -0
  375. package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +64 -0
  376. package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +135 -0
  377. package/src/providers/ActivityTree/private/useContext.ts +15 -0
  378. package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +16 -0
  379. package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +161 -0
  380. package/src/providers/LiveRegionTwin/private/Context.ts +15 -0
  381. package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +80 -0
  382. package/src/providers/LiveRegionTwin/private/types.ts +10 -0
  383. package/src/providers/LiveRegionTwin/private/useContext.ts +15 -0
  384. package/src/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.ts +13 -0
  385. package/src/providers/LiveRegionTwin/private/useStaticElementEntries.ts +7 -0
  386. package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +12 -0
  387. package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +180 -0
  388. package/src/providers/TranscriptFocus/private/Context.ts +16 -0
  389. package/src/providers/TranscriptFocus/private/useContext.ts +13 -0
  390. package/src/providers/TranscriptFocus/useActiveDescendantId.ts +5 -0
  391. package/src/providers/TranscriptFocus/useFocusByActivityKey.ts +14 -0
  392. package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +5 -0
  393. package/src/providers/TranscriptFocus/useFocusedActivityKey.ts +5 -0
  394. package/src/providers/TranscriptFocus/useFocusedExplicitly.ts +5 -0
  395. package/src/providers/TranscriptFocus/useGetDescendantIdByActivityKey.ts +5 -0
  396. package/.eslintignore +0 -1
  397. package/lib/Middleware/GroupActivities/createCoreMiddleware.js +0 -69
  398. package/lib/Utils/findLastIndex.js +0 -32
  399. package/lib/hooks/internal/useAcknowledgedActivity.js +0 -90
  400. package/lib/hooks/internal/useDispatchTranscriptFocus.js +0 -19
  401. package/src/BasicTranscript.js +0 -1139
  402. package/src/Middleware/GroupActivities/createCoreMiddleware.js +0 -57
  403. package/src/Utils/findLastIndex.js +0 -11
  404. package/src/Utils/findLastIndex.spec.js +0 -31
  405. package/src/Utils/getActivityUniqueId.js +0 -3
  406. package/src/Utils/intersectionOf.js +0 -11
  407. package/src/Utils/isZeroOrPositive.js +0 -4
  408. package/src/hooks/internal/useAcknowledgedActivity.js +0 -65
  409. package/src/hooks/internal/useChanged.js +0 -10
  410. package/src/hooks/internal/useDispatchTranscriptFocus.js +0 -7
  411. package/src/hooks/internal/useMemoize.js +0 -37
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _mathRandom = _interopRequireDefault(require("math-random"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _LiveRegionTwinComposer = _interopRequireDefault(require("../providers/LiveRegionTwin/LiveRegionTwinComposer"));
21
+
22
+ var _ScreenReaderActivity = _interopRequireDefault(require("../ScreenReaderActivity"));
23
+
24
+ var _tabbableElements = _interopRequireDefault(require("../Utils/tabbableElements"));
25
+
26
+ var _useActivityTreeWithRenderer = _interopRequireDefault(require("../providers/ActivityTree/useActivityTreeWithRenderer"));
27
+
28
+ var _useQueueStaticElement = _interopRequireDefault(require("../providers/LiveRegionTwin/useQueueStaticElement"));
29
+
30
+ var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
31
+
32
+ var _useTypistNames3 = _interopRequireDefault(require("./useTypistNames"));
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+
40
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
41
+
42
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
+
44
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
45
+
46
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
47
+
48
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
49
+
50
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
51
+
52
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
+
54
+ var useGetKeyByActivity = _botframeworkWebchatApi.hooks.useGetKeyByActivity,
55
+ useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer,
56
+ useStyleOptions = _botframeworkWebchatApi.hooks.useStyleOptions;
57
+ var ROOT_STYLE = {
58
+ '&.webchat__live-region-transcript': {
59
+ '& .webchat__live-region-transcript__interactive-note, & .webchat__live-region-transcript__text-element': {
60
+ color: 'transparent',
61
+ height: 1,
62
+ overflow: 'hidden',
63
+ position: 'absolute',
64
+ top: 0,
65
+ whiteSpace: 'nowrap',
66
+ width: 1
67
+ }
68
+ }
69
+ };
70
+ /**
71
+ * Checks if the rendering activity is presentational or not. Returns `true` if presentational, otherwise, `false`.
72
+ *
73
+ * Presentational activity, will be rendered visually but not going through screen reader.
74
+ */
75
+
76
+ function isPresentational(activity) {
77
+ var _channelData$messageB, _activity$attachments;
78
+
79
+ if (activity.type !== 'message') {
80
+ return;
81
+ }
82
+
83
+ var channelData = activity.channelData; // "Fallback text" includes both message text and narratives for attachments.
84
+ // Emptying out "fallback text" essentially mute for both message and attachments.
85
+
86
+ var fallbackText = channelData === null || channelData === void 0 ? void 0 : channelData['webchat:fallback-text'];
87
+
88
+ if (typeof fallbackText === 'string') {
89
+ return !fallbackText;
90
+ } // If there are "displayText" (MessageBack), "text", or any attachments, there are something to narrate.
91
+
92
+
93
+ return !(channelData !== null && channelData !== void 0 && (_channelData$messageB = channelData.messageBack) !== null && _channelData$messageB !== void 0 && _channelData$messageB.displayText || activity.text || (_activity$attachments = activity.attachments) !== null && _activity$attachments !== void 0 && _activity$attachments.length);
94
+ }
95
+
96
+ var LiveRegionTranscriptCore = function LiveRegionTranscriptCore(_ref) {
97
+ var activityElementMapRef = _ref.activityElementMapRef;
98
+
99
+ var _useActivityTreeWithR = (0, _useActivityTreeWithRenderer.default)({
100
+ flat: true
101
+ }),
102
+ _useActivityTreeWithR2 = _slicedToArray(_useActivityTreeWithR, 1),
103
+ flattenedActivityTree = _useActivityTreeWithR2[0];
104
+
105
+ var _useTypistNames = (0, _useTypistNames3.default)(),
106
+ _useTypistNames2 = _slicedToArray(_useTypistNames, 1),
107
+ typistNames = _useTypistNames2[0];
108
+
109
+ var getKeyByActivity = useGetKeyByActivity();
110
+ var localize = useLocalizer();
111
+ var queueStaticElement = (0, _useQueueStaticElement.default)();
112
+ var liveRegionInteractiveLabelAlt = localize('TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT');
113
+ var liveRegionInteractiveWithLinkLabelAlt = localize('TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT');
114
+ var typingIndicator = !!typistNames.length && localize(typistNames.length > 1 ? 'TYPING_INDICATOR_MULTIPLE_TEXT' : 'TYPING_INDICATOR_SINGLE_TEXT', typistNames[0]);
115
+ var renderingActivities = (0, _react.useMemo)(function () {
116
+ return Object.freeze(flattenedActivityTree.reduce(function (intermediate, _ref2) {
117
+ var activity = _ref2.activity;
118
+ return intermediate.set(getKeyByActivity(activity), activity);
119
+ }, new Map()));
120
+ }, [flattenedActivityTree, getKeyByActivity]);
121
+ var prevRenderingActivitiesRef = (0, _react.useRef)();
122
+ (0, _react.useEffect)(function () {
123
+ var prevRenderingActivities = prevRenderingActivitiesRef.current;
124
+ var appendedActivities = []; // Bottom-up, find activities which are recently appended (i.e. new activity will have a new key).
125
+ // We only consider new activities added to the bottom of the chat history.
126
+ // Based on how `aria-relevant="additions"` works, activities that are updated, deleted, or reordered, should be ignored.
127
+
128
+ var _iterator = _createForOfIteratorHelper(Array.from(renderingActivities.entries()).reverse()),
129
+ _step;
130
+
131
+ try {
132
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
133
+ var _step$value = _slicedToArray(_step.value, 2),
134
+ key = _step$value[0],
135
+ activity = _step$value[1];
136
+
137
+ if (prevRenderingActivities !== null && prevRenderingActivities !== void 0 && prevRenderingActivities.has(key)) {
138
+ break;
139
+ }
140
+
141
+ appendedActivities.unshift({
142
+ activity: activity,
143
+ key: key
144
+ });
145
+ isPresentational(activity) || queueStaticElement( /*#__PURE__*/_react.default.createElement(_ScreenReaderActivity.default, {
146
+ activity: activity
147
+ }));
148
+ }
149
+ } catch (err) {
150
+ _iterator.e(err);
151
+ } finally {
152
+ _iterator.f();
153
+ }
154
+
155
+ var hasNewLink = appendedActivities.some(function (_ref3) {
156
+ var _activityElementMapRe;
157
+
158
+ var key = _ref3.key;
159
+ return (_activityElementMapRe = activityElementMapRef.current.get(key)) === null || _activityElementMapRe === void 0 ? void 0 : _activityElementMapRe.querySelector('a');
160
+ });
161
+ var hasNewWidget = appendedActivities.some(function (_ref4) {
162
+ var _activityElementMapRe2;
163
+
164
+ var key = _ref4.key;
165
+ return !!(0, _tabbableElements.default)((_activityElementMapRe2 = activityElementMapRef.current.get(key)) === null || _activityElementMapRe2 === void 0 ? void 0 : _activityElementMapRe2.querySelector('.webchat__basic-transcript__activity-body')).length;
166
+ });
167
+
168
+ if (hasNewLink || hasNewWidget) {
169
+ // eslint-disable-next-line no-magic-numbers
170
+ var labelId = "webchat__live-region-transcript__interactive-note--".concat((0, _mathRandom.default)().toString(36).substr(2, 5));
171
+ queueStaticElement(
172
+ /*#__PURE__*/
173
+ // Inside ARIA live region:
174
+ // - Edge + Narrator:
175
+ // - It read if `aria-labelledby` or `aria-label` is set;
176
+ // - It read nothing if `aria-labelledby` or `aria-label` are not set (in this case, it read "note").
177
+ // - Safari + VoiceOver and Chrome + NVDA:
178
+ // - They read its content and ignore `aria-labelledby` or `aria-label`
179
+ // - They will not read if it is simply <div aria-label="Something" /> without content (self-closing tag).
180
+ // For best compatibility, we need both `aria-labelledby` and contented <div>.
181
+ _react.default.createElement("div", {
182
+ "aria-atomic": "true",
183
+ "aria-labelledby": labelId,
184
+ className: "webchat__live-region-transcript__interactive-note",
185
+ role: "note"
186
+ }, /*#__PURE__*/_react.default.createElement("span", {
187
+ id: labelId
188
+ }, hasNewLink ? liveRegionInteractiveWithLinkLabelAlt : liveRegionInteractiveLabelAlt)));
189
+ }
190
+
191
+ prevRenderingActivitiesRef.current = renderingActivities;
192
+ }, [activityElementMapRef, getKeyByActivity, liveRegionInteractiveLabelAlt, liveRegionInteractiveWithLinkLabelAlt, prevRenderingActivitiesRef, queueStaticElement, renderingActivities]);
193
+ (0, _react.useEffect)(function () {
194
+ typingIndicator && queueStaticElement(typingIndicator);
195
+ }, [queueStaticElement, typingIndicator]);
196
+ return null;
197
+ };
198
+
199
+ var LiveRegionTranscript = function LiveRegionTranscript(_ref5) {
200
+ var activityElementMapRef = _ref5.activityElementMapRef;
201
+
202
+ var _useStyleOptions = useStyleOptions(),
203
+ _useStyleOptions2 = _slicedToArray(_useStyleOptions, 1),
204
+ internalLiveRegionFadeAfter = _useStyleOptions2[0].internalLiveRegionFadeAfter;
205
+
206
+ var localize = useLocalizer();
207
+ var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
208
+ var transcriptRoleDescription = localize('TRANSCRIPT_ARIA_ROLE_ALT');
209
+ return /*#__PURE__*/_react.default.createElement(_LiveRegionTwinComposer.default, {
210
+ "aria-roledescription": transcriptRoleDescription,
211
+ className: (0, _classnames.default)('webchat__live-region-transcript', rootClassName),
212
+ fadeAfter: internalLiveRegionFadeAfter,
213
+ role: "log",
214
+ textElementClassName: "webchat__live-region-transcript__text-element"
215
+ }, /*#__PURE__*/_react.default.createElement(LiveRegionTranscriptCore, {
216
+ activityElementMapRef: activityElementMapRef
217
+ }));
218
+ };
219
+
220
+ LiveRegionTranscript.propTypes = {
221
+ // PropTypes cannot be fully expressed in TypeScript.
222
+ // @ts-ignore
223
+ activityElementMapRef: _propTypes.default.shape({
224
+ current: _propTypes.default.instanceOf(Map)
225
+ }).isRequired
226
+ };
227
+ var _default = LiveRegionTranscript;
228
+ exports.default = _default;
229
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UcmFuc2NyaXB0L0xpdmVSZWdpb25UcmFuc2NyaXB0LnRzeCJdLCJuYW1lcyI6WyJ1c2VHZXRLZXlCeUFjdGl2aXR5IiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiY29sb3IiLCJoZWlnaHQiLCJvdmVyZmxvdyIsInBvc2l0aW9uIiwidG9wIiwid2hpdGVTcGFjZSIsIndpZHRoIiwiaXNQcmVzZW50YXRpb25hbCIsImFjdGl2aXR5IiwidHlwZSIsImNoYW5uZWxEYXRhIiwiZmFsbGJhY2tUZXh0IiwibWVzc2FnZUJhY2siLCJkaXNwbGF5VGV4dCIsInRleHQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsIkxpdmVSZWdpb25UcmFuc2NyaXB0Q29yZSIsImFjdGl2aXR5RWxlbWVudE1hcFJlZiIsImZsYXQiLCJmbGF0dGVuZWRBY3Rpdml0eVRyZWUiLCJ0eXBpc3ROYW1lcyIsImdldEtleUJ5QWN0aXZpdHkiLCJsb2NhbGl6ZSIsInF1ZXVlU3RhdGljRWxlbWVudCIsImxpdmVSZWdpb25JbnRlcmFjdGl2ZUxhYmVsQWx0IiwibGl2ZVJlZ2lvbkludGVyYWN0aXZlV2l0aExpbmtMYWJlbEFsdCIsInR5cGluZ0luZGljYXRvciIsInJlbmRlcmluZ0FjdGl2aXRpZXMiLCJPYmplY3QiLCJmcmVlemUiLCJyZWR1Y2UiLCJpbnRlcm1lZGlhdGUiLCJzZXQiLCJNYXAiLCJwcmV2UmVuZGVyaW5nQWN0aXZpdGllc1JlZiIsInByZXZSZW5kZXJpbmdBY3Rpdml0aWVzIiwiY3VycmVudCIsImFwcGVuZGVkQWN0aXZpdGllcyIsIkFycmF5IiwiZnJvbSIsImVudHJpZXMiLCJyZXZlcnNlIiwia2V5IiwiaGFzIiwidW5zaGlmdCIsImhhc05ld0xpbmsiLCJzb21lIiwiZ2V0IiwicXVlcnlTZWxlY3RvciIsImhhc05ld1dpZGdldCIsImxhYmVsSWQiLCJ0b1N0cmluZyIsInN1YnN0ciIsIkxpdmVSZWdpb25UcmFuc2NyaXB0IiwiaW50ZXJuYWxMaXZlUmVnaW9uRmFkZUFmdGVyIiwicm9vdENsYXNzTmFtZSIsInRyYW5zY3JpcHRSb2xlRGVzY3JpcHRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzaGFwZSIsImluc3RhbmNlT2YiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBLElBQVFBLG1CQUFSLEdBQStEQyw2QkFBL0QsQ0FBUUQsbUJBQVI7QUFBQSxJQUE2QkUsWUFBN0IsR0FBK0RELDZCQUEvRCxDQUE2QkMsWUFBN0I7QUFBQSxJQUEyQ0MsZUFBM0MsR0FBK0RGLDZCQUEvRCxDQUEyQ0UsZUFBM0M7QUFFQSxJQUFNQyxVQUFVLEdBQUc7QUFDakIsdUNBQXFDO0FBQ25DLDhHQUEwRztBQUN4R0MsTUFBQUEsS0FBSyxFQUFFLGFBRGlHO0FBRXhHQyxNQUFBQSxNQUFNLEVBQUUsQ0FGZ0c7QUFHeEdDLE1BQUFBLFFBQVEsRUFBRSxRQUg4RjtBQUl4R0MsTUFBQUEsUUFBUSxFQUFFLFVBSjhGO0FBS3hHQyxNQUFBQSxHQUFHLEVBQUUsQ0FMbUc7QUFNeEdDLE1BQUFBLFVBQVUsRUFBRSxRQU40RjtBQU94R0MsTUFBQUEsS0FBSyxFQUFFO0FBUGlHO0FBRHZFO0FBRHBCLENBQW5CO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxTQUFTQyxnQkFBVCxDQUEwQkMsUUFBMUIsRUFBOEQ7QUFBQTs7QUFDNUQsTUFBSUEsUUFBUSxDQUFDQyxJQUFULEtBQWtCLFNBQXRCLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQsTUFBUUMsV0FBUixHQUF3QkYsUUFBeEIsQ0FBUUUsV0FBUixDQUw0RCxDQU81RDtBQUNBOztBQUNBLE1BQU1DLFlBQVksR0FBR0QsV0FBSCxhQUFHQSxXQUFILHVCQUFHQSxXQUFXLENBQUcs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J2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgcmFuZG9tIGZyb20gJ21hdGgtcmFuZG9tJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRkMsIFJlZk9iamVjdCwgVkZDIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBXZWJDaGF0QWN0aXZpdHkgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IExpdmVSZWdpb25Ud2luQ29tcG9zZXIgZnJvbSAnLi4vcHJvdmlkZXJzL0xpdmVSZWdpb25Ud2luL0xpdmVSZWdpb25Ud2luQ29tcG9zZXInO1xuaW1wb3J0IFNjcmVlblJlYWRlckFjdGl2aXR5IGZyb20gJy4uL1NjcmVlblJlYWRlckFjdGl2aXR5JztcbmltcG9ydCB0YWJiYWJsZUVsZW1lbnRzIGZyb20gJy4uL1V0aWxzL3RhYmJhYmxlRWxlbWVudHMnO1xuaW1wb3J0IHVzZUFjdGl2aXR5VHJlZVdpdGhSZW5kZXJlciBmcm9tICcuLi9wcm92aWRlcnMvQWN0aXZpdHlUcmVlL3VzZUFjdGl2aXR5VHJlZVdpdGhSZW5kZXJlcic7XG5pbXBvcnQgdXNlUXVldWVTdGF0aWNFbGVtZW50IGZyb20gJy4uL3Byb3ZpZGVycy9MaXZlUmVnaW9uVHdpbi91c2VRdWV1ZVN0YXRpY0VsZW1lbnQnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0JztcbmltcG9ydCB1c2VUeXBpc3ROYW1lcyBmcm9tICcuL3VzZVR5cGlzdE5hbWVzJztcblxuaW1wb3J0IHR5cGUgeyBBY3Rpdml0eUVsZW1lbnRNYXAgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgeyB1c2VHZXRLZXlCeUFjdGl2aXR5LCB1c2VMb2NhbGl6ZXIsIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX2xpdmUtcmVnaW9uLXRyYW5zY3JpcHQnOiB7XG4gICAgJyYgLndlYmNoYXRfX2xpdmUtcmVnaW9uLXRyYW5zY3JpcHRfX2ludGVyYWN0aXZlLW5vdGUsICYgLndlYmNoYXRfX2xpdmUtcmVnaW9uLXRyYW5zY3JpcHRfX3RleHQtZWxlbWVudCc6IHtcbiAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgaGVpZ2h0OiAxLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0b3A6IDAsXG4gICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgIHdpZHRoOiAxXG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcmVuZGVyaW5nIGFjdGl2aXR5IGlzIHByZXNlbnRhdGlvbmFsIG9yIG5vdC4gUmV0dXJucyBgdHJ1ZWAgaWYgcHJlc2VudGF0aW9uYWwsIG90aGVyd2lzZSwgYGZhbHNlYC5cbiAqXG4gKiBQcmVzZW50YXRpb25hbCBhY3Rpdml0eSwgd2lsbCBiZSByZW5kZXJlZCB2aXN1YWxseSBidXQgbm90IGdvaW5nIHRocm91Z2ggc2NyZWVuIHJlYWRlci5cbiAqL1xuZnVuY3Rpb24gaXNQcmVzZW50YXRpb25hbChhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5KTogYm9vbGVhbiB7XG4gIGlmIChhY3Rpdml0eS50eXBlICE9PSAnbWVzc2FnZScpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IGNoYW5uZWxEYXRhIH0gPSBhY3Rpdml0eTtcblxuICAvLyBcIkZhbGxiYWNrIHRleHRcIiBpbmNsdWRlcyBib3RoIG1lc3NhZ2UgdGV4dCBhbmQgbmFycmF0aXZlcyBmb3IgYXR0YWNobWVudHMuXG4gIC8vIEVtcHR5aW5nIG91dCBcImZhbGxiYWNrIHRleHRcIiBlc3NlbnRpYWxseSBtdXRlIGZvciBib3RoIG1lc3NhZ2UgYW5kIGF0dGFjaG1lbnRzLlxuICBjb25zdCBmYWxsYmFja1RleHQgPSBjaGFubmVsRGF0YT8uWyd3ZWJjaGF0OmZhbGxiYWNrLXRleHQnXTtcblxuICBpZiAodHlwZW9mIGZhbGxiYWNrVGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gIWZhbGxiYWNrVGV4dDtcbiAgfVxuXG4gIC8vIElmIHRoZXJlIGFyZSBcImRpc3BsYXlUZXh0XCIgKE1lc3NhZ2VCYWNrKSwgXCJ0ZXh0XCIsIG9yIGFueSBhdHRhY2htZW50cywgdGhlcmUgYXJlIHNvbWV0aGluZyB0byBuYXJyYXRlLlxuICByZXR1cm4gIShjaGFubmVsRGF0YT8ubWVzc2FnZUJhY2s/LmRpc3BsYXlUZXh0IHx8IGFjdGl2aXR5LnRleHQgfHwgYWN0aXZpdHkuYXR0YWNobWVudHM/Lmxlbmd0aCk7XG59XG5cbnR5cGUgUmVuZGVyaW5nQWN0aXZpdGllcyA9IE1hcDxzdHJpbmcsIFdlYkNoYXRBY3Rpdml0eT47XG5cbnR5cGUgTGl2ZVJlZ2lvblRyYW5zY3JpcHRDb3JlUHJvcHMgPSB7XG4gIGFjdGl2aXR5RWxlbWVudE1hcFJlZjogUmVmT2JqZWN0PEFjdGl2aXR5RWxlbWVudE1hcD47XG59O1xuXG5jb25zdCBMaXZlUmVnaW9uVHJhbnNjcmlwdENvcmU6IEZDPExpdmVSZWdpb25UcmFuc2NyaXB0Q29yZVByb3BzPiA9ICh7IGFjdGl2aXR5RWxlbWVudE1hcFJlZiB9KSA9PiB7XG4gIGNvbnN0IFtmbGF0dGVuZWRBY3Rpdml0eVRyZWVdID0gdXNlQWN0aXZpdHlUcmVlV2l0aFJlbmRlcmVyKHsgZmxhdDogdHJ1ZSB9KTtcbiAgY29uc3QgW3R5cGlzdE5hbWVzXSA9IHVzZVR5cGlzdE5hbWVzKCk7XG4gIGNvbnN0IGdldEtleUJ5QWN0aXZpdHkgPSB1c2VHZXRLZXlCeUFjdGl2aXR5KCk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IHF1ZXVlU3RhdGljRWxlbWVudCA9IHVzZVF1ZXVlU3RhdGljRWxlbWVudCgpO1xuXG4gIGNvbnN0IGxpdmVSZWdpb25JbnRlcmFjdGl2ZUxhYmVsQWx0ID0gbG9jYWxpemUoJ1RSQU5TQ1JJUFRfTElWRV9SRUdJT05fSU5URVJBQ1RJVkVfTEFCRUxfQUxUJyk7XG4gIGNvbnN0IGxpdmVSZWdpb25JbnRlcmFjdGl2ZVdpdGhMaW5rTGFiZWxBbHQgPSBsb2NhbGl6ZSgnVFJBTlNDUklQVF9MSVZFX1JFR0lPTl9JTlRFUkFDVElWRV9XSVRIX0xJTktTX0xBQkVMX0FMVCcpO1xuICBjb25zdCB0eXBpbmdJbmRpY2F0b3IgPVxuICAgICEhdHlwaXN0TmFtZXMubGVuZ3RoICYmXG4gICAgbG9jYWxpemUoXG4gICAgICB0eXBpc3ROYW1lcy5sZW5ndGggPiAxID8gJ1RZUElOR19JTkRJQ0FUT1JfTVVMVElQTEVfVEVYVCcgOiAnVFlQSU5HX0lORElDQVRPUl9TSU5HTEVfVEVYVCcsXG4gICAgICB0eXBpc3ROYW1lc1swXVxuICAgICk7XG5cbiAgY29uc3QgcmVuZGVyaW5nQWN0aXZpdGllcyA9IHVzZU1lbW88UmVhZG9ubHk8UmVuZGVyaW5nQWN0aXZpdGllcz4+KFxuICAgICgpID0+XG4gICAgICBPYmplY3QuZnJlZXplKFxuICAgICAgICBmbGF0dGVuZWRBY3Rpdml0eVRyZWUucmVkdWNlPFJlbmRlcmluZ0FjdGl2aXRpZXM+KFxuICAgICAgICAgIChpbnRlcm1lZGlhdGUsIHsgYWN0aXZpdHkgfSkgPT4gaW50ZXJtZWRpYXRlLnNldChnZXRLZXlCeUFjdGl2aXR5KGFjdGl2aXR5KSwgYWN0aXZpdHkpLFxuICAgICAgICAgIG5ldyBNYXA8c3RyaW5nLCBXZWJDaGF0QWN0aXZpdHk+KClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICBbZmxhdHRlbmVkQWN0aXZpdHlUcmVlLCBnZXRLZXlCeUFjdGl2aXR5XVxuICApO1xuXG4gIGNvbnN0IHByZXZSZW5kZXJpbmdBY3Rpdml0aWVzUmVmID0gdXNlUmVmPFJlYWRvbmx5PFJlbmRlcmluZ0FjdGl2aXRpZXM+PigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50OiBwcmV2UmVuZGVyaW5nQWN0aXZpdGllcyB9ID0gcHJldlJlbmRlcmluZ0FjdGl2aXRpZXNSZWY7XG4gICAgY29uc3QgYXBwZW5kZWRBY3Rpdml0aWVzOiB7IGFjdGl2aXR5OiBXZWJDaGF0QWN0aXZpdHk7IGtleTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgLy8gQm90dG9tLXVwLCBmaW5kIGFjdGl2aXRpZXMgd2hpY2ggYXJlIHJlY2VudGx5IGFwcGVuZGVkIChpLmUuIG5ldyBhY3Rpdml0eSB3aWxsIGhhdmUgYSBuZXcga2V5KS5cbiAgICAvLyBXZSBvbmx5IGNvbnNpZGVyIG5ldyBhY3Rpdml0aWVzIGFkZGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIGNoYXQgaGlzdG9yeS5cbiAgICAvLyBCYXNlZCBvbiBob3cgYGFyaWEtcmVsZXZhbnQ9XCJhZGRpdGlvbnNcImAgd29ya3MsIGFjdGl2aXRpZXMgdGhhdCBhcmUgdXBkYXRlZCwgZGVsZXRlZCwgb3IgcmVvcmRlcmVkLCBzaG91bGQgYmUgaWdub3JlZC5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGFjdGl2aXR5XSBvZiBBcnJheS5mcm9tKHJlbmRlcmluZ0FjdGl2aXRpZXMuZW50cmllcygpKS5yZXZlcnNlKCkpIHtcbiAgICAgIGlmIChwcmV2UmVuZGVyaW5nQWN0aXZpdGllcz8uaGFzKGtleSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGFwcGVuZGVkQWN0aXZpdGllcy51bnNoaWZ0KHsgYWN0aXZpdHksIGtleSB9KTtcblxuICAgICAgaXNQcmVzZW50YXRpb25hbChhY3Rpdml0eSkgfHwgcXVldWVTdGF0aWNFbGVtZW50KDxTY3JlZW5SZWFkZXJBY3Rpdml0eSBhY3Rpdml0eT17YWN0aXZpdHl9IC8+KTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNOZXdMaW5rID0gYXBwZW5kZWRBY3Rpdml0aWVzLnNvbWUoKHsga2V5IH0pID0+IGFjdGl2aXR5RWxlbWVudE1hcFJlZi5jdXJyZW50LmdldChrZXkpPy5xdWVyeVNlbGVjdG9yKCdhJykpO1xuXG4gICAgY29uc3QgaGFzTmV3V2lkZ2V0ID0gYXBwZW5kZWRBY3Rpdml0aWVzLnNvbWUoXG4gICAgICAoeyBrZXkgfSkgPT5cbiAgICAgICAgISF0YWJiYWJsZUVsZW1lbnRzKFxuICAgICAgICAgIGFjdGl2aXR5RWxlbWVudE1hcFJlZi5jdXJyZW50LmdldChrZXkpPy5xdWVyeVNlbGVjdG9yKCcud2ViY2hhdF9fYmFzaWMtdHJhbnNjcmlwdF9fYWN0aXZpdHktYm9keScpXG4gICAgICAgICkubGVuZ3RoXG4gICAgKTtcblxuICAgIGlmIChoYXNOZXdMaW5rIHx8IGhhc05ld1dpZGdldCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgIGNvbnN0IGxhYmVsSWQgPSBgd2ViY2hhdF9fbGl2ZS1yZWdpb24tdHJhbnNjcmlwdF9faW50ZXJhY3RpdmUtbm90ZS0tJHtyYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDUpfWA7XG5cbiAgICAgIHF1ZXVlU3RhdGljRWxlbWVudChcbiAgICAgICAgLy8gSW5zaWRlIEFSSUEgbGl2ZSByZWdpb246XG4gICAgICAgIC8vIC0gRWRnZSArIE5hcnJhdG9yOlxuICAgICAgICAvLyAgIC0gSXQgcmVhZCBpZiBgYXJpYS1sYWJlbGxlZGJ5YCBvciBgYXJpYS1sYWJlbGAgaXMgc2V0O1xuICAgICAgICAvLyAgIC0gSXQgcmVhZCBub3RoaW5nIGlmIGBhcmlhLWxhYmVsbGVkYnlgIG9yIGBhcmlhLWxhYmVsYCBhcmUgbm90IHNldCAoaW4gdGhpcyBjYXNlLCBpdCByZWFkIFwibm90ZVwiKS5cbiAgICAgICAgLy8gLSBTYWZhcmkgKyBWb2ljZU92ZXIgYW5kIENocm9tZSArIE5WREE6XG4gICAgICAgIC8vICAgLSBUaGV5IHJlYWQgaXRzIGNvbnRlbnQgYW5kIGlnbm9yZSBgYXJpYS1sYWJlbGxlZGJ5YCBvciBgYXJpYS1sYWJlbGBcbiAgICAgICAgLy8gICAtIFRoZXkgd2lsbCBub3QgcmVhZCBpZiBpdCBpcyBzaW1wbHkgPGRpdiBhcmlhLWxhYmVsPVwiU29tZXRoaW5nXCIgLz4gd2l0aG91dCBjb250ZW50IChzZWxmLWNsb3NpbmcgdGFnKS5cbiAgICAgICAgLy8gRm9yIGJlc3QgY29tcGF0aWJpbGl0eSwgd2UgbmVlZCBib3RoIGBhcmlhLWxhYmVsbGVkYnlgIGFuZCBjb250ZW50ZWQgPGRpdj4uXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17bGFiZWxJZH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19saXZlLXJlZ2lvbi10cmFuc2NyaXB0X19pbnRlcmFjdGl2ZS1ub3RlXCJcbiAgICAgICAgICByb2xlPVwibm90ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7LyogXCJpZFwiIGlzIHJlcXVpcmVkIGZvciBcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiICovfVxuICAgICAgICAgIHsvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZm9yYmlkLWRvbS1wcm9wcyAqL31cbiAgICAgICAgICA8c3BhbiBpZD17bGFiZWxJZH0+e2hhc05ld0xpbmsgPyBsaXZlUmVnaW9uSW50ZXJhY3RpdmVXaXRoTGlua0xhYmVsQWx0IDogbGl2ZVJlZ2lvbkludGVyYWN0aXZlTGFiZWxBbHR9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJldlJlbmRlcmluZ0FjdGl2aXRpZXNSZWYuY3VycmVudCA9IHJlbmRlcmluZ0FjdGl2aXRpZXM7XG4gIH0sIFtcbiAgICBhY3Rpdml0eUVsZW1lbnRNYXBSZWYsXG4gICAgZ2V0S2V5QnlBY3Rpdml0eSxcbiAgICBsaXZlUmVnaW9uSW50ZXJhY3RpdmVMYWJlbEFsdCxcbiAgICBsaXZlUmVnaW9uSW50ZXJhY3RpdmVXaXRoTGlua0xhYmVsQWx0LFxuICAgIHByZXZSZW5kZXJpbmdBY3Rpdml0aWVzUmVmLFxuICAgIHF1ZXVlU3RhdGljRWxlbWVudCxcbiAgICByZW5kZXJpbmdBY3Rpdml0aWVzXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdHlwaW5nSW5kaWNhdG9yICYmIHF1ZXVlU3RhdGljRWxlbWVudCh0eXBpbmdJbmRpY2F0b3IpO1xuICB9LCBbcXVldWVTdGF0aWNFbGVtZW50LCB0eXBpbmdJbmRpY2F0b3JdKTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbnR5cGUgTGl2ZVJlZ2lvblRyYW5zY3JpcHRQcm9wcyA9IHtcbiAgYWN0aXZpdHlFbGVtZW50TWFwUmVmOiBSZWZPYmplY3Q8QWN0aXZpdHlFbGVtZW50TWFwPjtcbn07XG5cbmNvbnN0IExpdmVSZWdpb25UcmFuc2NyaXB0OiBWRkM8TGl2ZVJlZ2lvblRyYW5zY3JpcHRQcm9wcz4gPSAoeyBhY3Rpdml0eUVsZW1lbnRNYXBSZWYgfSkgPT4ge1xuICBjb25zdCBbeyBpbnRlcm5hbExpdmVSZWdpb25GYWRlQWZ0ZXIgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCB0cmFuc2NyaXB0Um9sZURlc2NyaXB0aW9uID0gbG9jYWxpemUoJ1RSQU5TQ1JJUFRfQVJJQV9ST0xFX0FMVCcpO1xuXG4gIHJldHVybiAoXG4gICAgPExpdmVSZWdpb25Ud2luQ29tcG9zZXJcbiAgICAgIGFyaWEtcm9sZWRlc2NyaXB0aW9uPXt0cmFuc2NyaXB0Um9sZURlc2NyaXB0aW9ufVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCd3ZWJjaGF0X19saXZlLXJlZ2lvbi10cmFuc2NyaXB0Jywgcm9vdENsYXNzTmFtZSl9XG4gICAgICBmYWRlQWZ0ZXI9e2ludGVybmFsTGl2ZVJlZ2lvbkZhZGVBZnRlcn1cbiAgICAgIHJvbGU9XCJsb2dcIlxuICAgICAgdGV4dEVsZW1lbnRDbGFzc05hbWU9XCJ3ZWJjaGF0X19saXZlLXJlZ2lvbi10cmFuc2NyaXB0X190ZXh0LWVsZW1lbnRcIlxuICAgID5cbiAgICAgIDxMaXZlUmVnaW9uVHJhbnNjcmlwdENvcmUgYWN0aXZpdHlFbGVtZW50TWFwUmVmPXthY3Rpdml0eUVsZW1lbnRNYXBSZWZ9IC8+XG4gICAgPC9MaXZlUmVnaW9uVHdpbkNvbXBvc2VyPlxuICApO1xufTtcblxuTGl2ZVJlZ2lvblRyYW5zY3JpcHQucHJvcFR5cGVzID0ge1xuICAvLyBQcm9wVHlwZXMgY2Fubm90IGJlIGZ1bGx5IGV4cHJlc3NlZCBpbiBUeXBlU2NyaXB0LlxuICAvLyBAdHMtaWdub3JlXG4gIGFjdGl2aXR5RWxlbWVudE1hcFJlZjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjdXJyZW50OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihNYXApXG4gIH0pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExpdmVSZWdpb25UcmFuc2NyaXB0O1xuIl19
@@ -0,0 +1,2 @@
1
+ export declare type ActivityElementMap = Map<string, HTMLElement>;
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Transcript/types.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOltdfQ==
@@ -0,0 +1,4 @@
1
+ import type { RefObject } from 'react';
2
+ import type { WebChatActivity } from 'botframework-webchat-core';
3
+ export default function useActivityAccessibleName(activity: WebChatActivity, bodyRef: RefObject<HTMLElement>): string[];
4
+ //# sourceMappingURL=useActivityAccessibleName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActivityAccessibleName.d.ts","sourceRoot":"","sources":["../../src/Transcript/useActivityAccessibleName.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAsBjE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,YA0D3G"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useActivityAccessibleName;
7
+
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
10
+ var _react = require("react");
11
+
12
+ var _activityAltText = _interopRequireDefault(require("../Utils/activityAltText"));
13
+
14
+ var _tabbableElements = _interopRequireDefault(require("../Utils/tabbableElements"));
15
+
16
+ var _useRenderMarkdownAsHTML = _interopRequireDefault(require("../hooks/useRenderMarkdownAsHTML"));
17
+
18
+ var _useValueRef = _interopRequireDefault(require("../hooks/internal/useValueRef"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+
24
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+
26
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
+
28
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
+
30
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
31
+
32
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
+
34
+ var InteractiveType;
35
+
36
+ (function (InteractiveType) {
37
+ InteractiveType[InteractiveType["LINK"] = 0] = "LINK";
38
+ InteractiveType[InteractiveType["WIDGET"] = 1] = "WIDGET";
39
+ })(InteractiveType || (InteractiveType = {}));
40
+
41
+ var useAvatarForBot = _botframeworkWebchatApi.hooks.useAvatarForBot,
42
+ useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer;
43
+ var ACTIVITY_NUM_ATTACHMENTS_ALT_IDS = {
44
+ few: 'ACTIVITY_NUM_ATTACHMENTS_FEW_ALT',
45
+ many: 'ACTIVITY_NUM_ATTACHMENTS_MANY_ALT',
46
+ one: 'ACTIVITY_NUM_ATTACHMENTS_ONE_ALT',
47
+ other: 'ACTIVITY_NUM_ATTACHMENTS_OTHER_ALT',
48
+ two: 'ACTIVITY_NUM_ATTACHMENTS_TWO_ALT'
49
+ };
50
+
51
+ function useActivityAccessibleName(activity, bodyRef) {
52
+ var _activity$from, _activity$attachments;
53
+
54
+ var _useAvatarForBot = useAvatarForBot(),
55
+ _useAvatarForBot2 = _slicedToArray(_useAvatarForBot, 1),
56
+ botInitials = _useAvatarForBot2[0].initials;
57
+
58
+ var _useState = (0, _react.useState)(false),
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ interactiveType = _useState2[0],
61
+ setInteractiveType = _useState2[1];
62
+
63
+ var fromSelf = ((_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === 'user';
64
+ var localize = useLocalizer();
65
+ var localizeWithPlural = useLocalizer({
66
+ plural: true
67
+ });
68
+ var numAttachments = activity.type === 'message' ? ((_activity$attachments = activity.attachments) === null || _activity$attachments === void 0 ? void 0 : _activity$attachments.length) || 0 : 0;
69
+ var renderMarkdownAsHTML = (0, _useRenderMarkdownAsHTML.default)();
70
+ var activityInteractiveAlt = localize('ACTIVITY_INTERACTIVE_LABEL_ALT'); // "Click to interact."
71
+
72
+ var activityInteractiveWithLinkAlt = localize('ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT'); // "Click to interact."
73
+
74
+ var greetingAlt = (0, _react.useMemo)(function () {
75
+ return (fromSelf ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')).replace(/[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]{2,}/g, ' ');
76
+ }, [botInitials, fromSelf, localize]);
77
+ var interactiveTypeRef = (0, _useValueRef.default)(interactiveType);
78
+ var messageTextAlt = (0, _react.useMemo)(function () {
79
+ return (0, _activityAltText.default)(activity, renderMarkdownAsHTML);
80
+ }, [activity, renderMarkdownAsHTML]);
81
+ var numAttachmentsAlt = (0, _react.useMemo)(function () {
82
+ return numAttachments ? localizeWithPlural(ACTIVITY_NUM_ATTACHMENTS_ALT_IDS, numAttachments) : '';
83
+ }, [localizeWithPlural, numAttachments]);
84
+ var accessibleName = (0, _react.useMemo)( // We are concatenating in a single string for Safari. If we split it up, Safari will only narrate the first section.
85
+ function () {
86
+ return "".concat(greetingAlt, " ").concat(messageTextAlt, " ").concat(numAttachmentsAlt, " ").concat(interactiveType === InteractiveType.LINK ? activityInteractiveWithLinkAlt : interactiveType === InteractiveType.WIDGET ? activityInteractiveAlt : '');
87
+ }, [activityInteractiveAlt, activityInteractiveWithLinkAlt, greetingAlt, interactiveType, messageTextAlt, numAttachmentsAlt]);
88
+ (0, _react.useEffect)(function () {
89
+ var _bodyRef$current;
90
+
91
+ var hasLinks = !!((_bodyRef$current = bodyRef.current) !== null && _bodyRef$current !== void 0 && _bodyRef$current.querySelector('a'));
92
+ var hasWidgets = !!(0, _tabbableElements.default)(bodyRef.current).length;
93
+ interactiveTypeRef.current !== hasWidgets && setInteractiveType(hasLinks ? InteractiveType.LINK : hasWidgets ? InteractiveType.WIDGET : false);
94
+ }, [bodyRef, interactiveTypeRef, setInteractiveType]);
95
+ return [accessibleName];
96
+ }
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UcmFuc2NyaXB0L3VzZUFjdGl2aXR5QWNjZXNzaWJsZU5hbWUudHMiXSwibmFtZXMiOlsiSW50ZXJhY3RpdmVUeXBlIiwidXNlQXZhdGFyRm9yQm90IiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJBQ1RJVklUWV9OVU1fQVRUQUNITUVOVFNfQUxUX0lEUyIsImZldyIsIm1hbnkiLCJvbmUiLCJvdGhlciIsInR3byIsInVzZUFjdGl2aXR5QWNjZXNzaWJsZU5hbWUiLCJhY3Rpdml0eSIsImJvZHlSZWYiLCJib3RJbml0aWFscyIsImluaXRpYWxzIiwiaW50ZXJhY3RpdmVUeXBlIiwic2V0SW50ZXJhY3RpdmVUeXBlIiwiZnJvbVNlbGYiLCJmcm9tIiwicm9sZSIsImxvY2FsaXplIiwibG9jYWxpemVXaXRoUGx1cmFsIiwicGx1cmFsIiwibnVtQXR0YWNobWVudHMiLCJ0eXBlIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJyZW5kZXJNYXJrZG93bkFzSFRNTCIsImFjdGl2aXR5SW50ZXJhY3RpdmVBbHQiLCJhY3Rpdml0eUludGVyYWN0aXZlV2l0aExpbmtBbHQiLCJncmVldGluZ0FsdCIsInJlcGxhY2UiLCJpbnRlcmFjdGl2ZVR5cGVSZWYiLCJtZXNzYWdlVGV4dEFsdCIsIm51bUF0dGFjaG1lbnRzQWx0IiwiYWNjZXNzaWJsZU5hbWUiLCJMSU5LIiwiV0lER0VUIiwiaGFzTGlua3MiLCJjdXJyZW50IiwicXVlcnlTZWxlY3RvciIsImhhc1dpZGdldHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztJQUVLQSxlOztXQUFBQSxlO0FBQUFBLEVBQUFBLGUsQ0FBQUEsZTtBQUFBQSxFQUFBQSxlLENBQUFBLGU7R0FBQUEsZSxLQUFBQSxlOztBQUtMLElBQVFDLGVBQVIsR0FBMENDLDZCQUExQyxDQUFRRCxlQUFSO0FBQUEsSUFBeUJFLFlBQXpCLEdBQTBDRCw2QkFBMUMsQ0FBeUJDLFlBQXpCO0FBRUEsSUFBTUMsZ0NBQWdDLEdBQUc7QUFDdkNDLEVBQUFBLEdBQUcsRUFBRSxrQ0FEa0M7QUFFdkNDLEVBQUFBLElBQUksRUFBRSxtQ0FGaUM7QUFHdkNDLEVBQUFBLEdBQUcsRUFBRSxrQ0FIa0M7QUFJdkNDLEVBQUFBLEtBQUssRUFBRSxvQ0FKZ0M7QUFLdkNDLEVBQUFBLEdBQUcsRUFBRTtBQUxrQyxDQUF6Qzs7QUFRZSxTQUFTQyx5QkFBVCxDQUFtQ0MsUUFBbkMsRUFBOERDLE9BQTlELEVBQStGO0FBQUE7O0FBQzVHLHlCQUFvQ1gsZUFBZSxFQUFuRDtBQUFBO0FBQUEsTUFBbUJZLFdBQW5CLHdCQUFTQyxRQUFUOztBQUNBLGtCQUE4QyxxQkFBa0MsS0FBbEMsQ0FBOUM7QUFBQTtBQUFBLE1BQU9DLGVBQVA7QUFBQSxNQUF3QkMsa0JBQXhCOztBQUNBLE1BQU1DLFFBQVEsR0FBRyxtQkFBQU4sUUFBUSxDQUFDTyxJQUFULGtFQUFlQyxJQUFmLE1BQXdCLE1BQXpDO0FBQ0EsTUFBTUMsUUFBUSxHQUFHakIsWUFBWSxFQUE3QjtBQUNBLE1BQU1rQixrQkFBa0IsR0FBR2xCLFlBQVksQ0FBQztBQUFFbUIsSUFBQUEsTUFBTSxFQUFFO0FBQVYsR0FBRCxDQUF2QztBQUNBLE1BQU1DLGNBQWMsR0FBR1osUUFBUSxDQUFDYSxJQUFULEtBQWtCLFNBQWxCLEdBQThCLDBCQUFBYixRQUFRLENBQUNjLFdBQVQsZ0ZBQXNCQyxNQUF0QixLQUFnQyxDQUE5RCxHQUFrRSxDQUF6RjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLHVDQUE3QjtBQUVBLE1BQU1DLHNCQUFzQixHQUFHUixRQUFRLENBQUMsZ0NBQUQsQ0FBdkMsQ0FUNEcsQ0FTakM7O0FBQzNFLE1BQU1TLDhCQUE4QixHQUFHVCxRQUFRLENBQUMsMkNBQUQsQ0FBL0MsQ0FWNEcsQ0FVZDs7QUFDOUYsTUFBTVUsV0FBVyxHQUFHLG9CQUNsQjtBQUFBLFdBQ0UsQ0FBQ2IsUUFBUSxHQUFHRyxRQUFRLENBQUMsdUJBQUQsQ0FBWCxHQUF1Q0EsUUFBUSxDQUFDLHVCQUFELEVBQTBCUCxXQUFXLElBQUksRUFBekMsQ0FBeEQsRUFBc0drQixPQUF0RyxDQUNFLDBFQURGLEVBRUUsR0FGRixDQURGO0FBQUEsR0FEa0IsRUFNbEIsQ0FBQ2xCLFdBQUQsRUFBY0ksUUFBZCxFQUF3QkcsUUFBeEIsQ0FOa0IsQ0FBcEI7QUFRQSxNQUFNWSxrQkFBa0IsR0FBRywwQkFBWWpCLGVBQVosQ0FBM0I7QUFDQSxNQUFNa0IsY0FBYyxHQUFHLG9CQUNyQjtBQUFBLFdBQU0sOEJBQWdCdEIsUUFBaEIsRUFBMEJnQixvQkFBMUIsQ0FBTjtBQUFBLEdBRHFCLEVBRXJCLENBQUNoQixRQUFELEVBQVdnQixvQkFBWCxDQUZxQixDQUF2QjtBQUlBLE1BQU1PLGlCQUFpQixHQUFHLG9CQUN4QjtBQUFBLFdBQU9YLGNBQWMsR0FBR0Ysa0JBQWtCLENBQUNqQixnQ0FBRCxFQUFtQ21CLGNBQW5DLENBQXJCLEdBQTBFLEVBQS9GO0FBQUEsR0FEd0IsRUFFeEIsQ0FBQ0Ysa0JBQUQsRUFBcUJFLGNBQXJCLENBRndCLENBQTFCO0FBS0EsTUFBTVksY0FBYyxHQUFHLHFCQUNyQjtBQUNBO0FBQUEscUJBQ0tMLFdBREwsY0FDb0JHLGNBRHBCLGNBQ3NDQyxpQkFEdEMsY0FFSW5CLGVBQWUsS0FBS2YsZUFBZSxDQUFDb0MsSUFBcEMsR0FDSVAsOEJBREosR0FFSWQsZUFBZSxLQUFLZixlQUFlLENBQUNxQyxNQUFwQyxHQUNBVCxzQkFEQSxHQUVBLEVBTlI7QUFBQSxHQUZxQixFQVVyQixDQUNFQSxzQkFERixFQUVFQyw4QkFGRixFQUdFQyxXQUhGLEVBSUVmLGVBSkYsRUFLRWtCLGNBTEYsRUFNRUMsaUJBTkYsQ0FWcUIsQ0FBdkI7QUFvQkEsd0JBQVUsWUFBTTtBQUFBOztBQUNkLFFBQU1JLFFBQVEsR0FBRyxDQUFDLHNCQUFDMUIsT0FBTyxDQUFDMkIsT0FBVCw2Q0FBQyxpQkFBaUJDLGFBQWpCLENBQStCLEdBQS9CLENBQUQsQ0FBbEI7QUFDQSxRQUFNQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLCtCQUFpQjdCLE9BQU8sQ0FBQzJCLE9BQXpCLEVBQWtDYixNQUF2RDtBQUVBTSxJQUFBQSxrQkFBa0IsQ0FBQ08sT0FBbkIsS0FBK0JFLFVBQS9CLElBQ0V6QixrQkFBa0IsQ0FBQ3NCLFFBQVEsR0FBR3RDLGVBQWUsQ0FBQ29DLElBQW5CLEdBQTBCSyxVQUFVLEdBQUd6QyxlQUFlLENBQUNxQyxNQUFuQixHQUE0QixLQUF6RSxDQURwQjtBQUVELEdBTkQsRUFNRyxDQUFDekIsT0FBRCxFQUFVb0Isa0JBQVYsRUFBOEJoQixrQkFBOUIsQ0FOSDtBQVFBLFNBQU8sQ0FBQ21CLGNBQUQsQ0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IFdlYkNoYXRBY3Rpdml0eSB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5pbXBvcnQgYWN0aXZpdHlBbHRUZXh0IGZyb20gJy4uL1V0aWxzL2FjdGl2aXR5QWx0VGV4dCc7XG5pbXBvcnQgdGFiYmFibGVFbGVtZW50cyBmcm9tICcuLi9VdGlscy90YWJiYWJsZUVsZW1lbnRzJztcbmltcG9ydCB1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCBmcm9tICcuLi9ob29rcy91c2VSZW5kZXJNYXJrZG93bkFzSFRNTCc7XG5pbXBvcnQgdXNlVmFsdWVSZWYgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlVmFsdWVSZWYnO1xuXG5lbnVtIEludGVyYWN0aXZlVHlwZSB7XG4gIExJTkssXG4gIFdJREdFVFxufVxuXG5jb25zdCB7IHVzZUF2YXRhckZvckJvdCwgdXNlTG9jYWxpemVyIH0gPSBob29rcztcblxuY29uc3QgQUNUSVZJVFlfTlVNX0FUVEFDSE1FTlRTX0FMVF9JRFMgPSB7XG4gIGZldzogJ0FDVElWSVRZX05VTV9BVFRBQ0hNRU5UU19GRVdfQUxUJyxcbiAgbWFueTogJ0FDVElWSVRZX05VTV9BVFRBQ0hNRU5UU19NQU5ZX0FMVCcsXG4gIG9uZTogJ0FDVElWSVRZX05VTV9BVFRBQ0hNRU5UU19PTkVfQUxUJyxcbiAgb3RoZXI6ICdBQ1RJVklUWV9OVU1fQVRUQUNITUVOVFNfT1RIRVJfQUxUJyxcbiAgdHdvOiAnQUNUSVZJVFlfTlVNX0FUVEFDSE1FTlRTX1RXT19BTFQnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VBY3Rpdml0eUFjY2Vzc2libGVOYW1lKGFjdGl2aXR5OiBXZWJDaGF0QWN0aXZpdHksIGJvZHlSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4pIHtcbiAgY29uc3QgW3sgaW5pdGlhbHM6IGJvdEluaXRpYWxzIH1dID0gdXNlQXZhdGFyRm9yQm90KCk7XG4gIGNvbnN0IFtpbnRlcmFjdGl2ZVR5cGUsIHNldEludGVyYWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxJbnRlcmFjdGl2ZVR5cGUgfCBmYWxzZT4oZmFsc2UpO1xuICBjb25zdCBmcm9tU2VsZiA9IGFjdGl2aXR5LmZyb20/LnJvbGUgPT09ICd1c2VyJztcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3QgbG9jYWxpemVXaXRoUGx1cmFsID0gdXNlTG9jYWxpemVyKHsgcGx1cmFsOiB0cnVlIH0pO1xuICBjb25zdCBudW1BdHRhY2htZW50cyA9IGFjdGl2aXR5LnR5cGUgPT09ICdtZXNzYWdlJyA/IGFjdGl2aXR5LmF0dGFjaG1lbnRzPy5sZW5ndGggfHwgMCA6IDA7XG4gIGNvbnN0IHJlbmRlck1hcmtkb3duQXNIVE1MID0gdXNlUmVuZGVyTWFya2Rvd25Bc0hUTUwoKTtcblxuICBjb25zdCBhY3Rpdml0eUludGVyYWN0aXZlQWx0ID0gbG9jYWxpemUoJ0FDVElWSVRZX0lOVEVSQUNUSVZFX0xBQkVMX0FMVCcpOyAvLyBcIkNsaWNrIHRvIGludGVyYWN0LlwiXG4gIGNvbnN0IGFjdGl2aXR5SW50ZXJhY3RpdmVXaXRoTGlua0FsdCA9IGxvY2FsaXplKCdBQ1RJVklUWV9JTlRFUkFDVElWRV9XSVRIX0xJTktTX0xBQkVMX0FMVCcpOyAvLyBcIkNsaWNrIHRvIGludGVyYWN0LlwiXG4gIGNvbnN0IGdyZWV0aW5nQWx0ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKGZyb21TZWxmID8gbG9jYWxpemUoJ0FDVElWSVRZX1lPVV9TQUlEX0FMVCcpIDogbG9jYWxpemUoJ0FDVElWSVRZX0JPVF9TQUlEX0FMVCcsIGJvdEluaXRpYWxzIHx8ICcnKSkucmVwbGFjZShcbiAgICAgICAgL1xcc3syLH0vZ3UsXG4gICAgICAgICcgJ1xuICAgICAgKSxcbiAgICBbYm90SW5pdGlhbHMsIGZyb21TZWxmLCBsb2NhbGl6ZV1cbiAgKTtcbiAgY29uc3QgaW50ZXJhY3RpdmVUeXBlUmVmID0gdXNlVmFsdWVSZWYoaW50ZXJhY3RpdmVUeXBlKTtcbiAgY29uc3QgbWVzc2FnZVRleHRBbHQgPSB1c2VNZW1vKFxuICAgICgpID0+IGFjdGl2aXR5QWx0VGV4dChhY3Rpdml0eSwgcmVuZGVyTWFya2Rvd25Bc0hUTUwpLFxuICAgIFthY3Rpdml0eSwgcmVuZGVyTWFya2Rvd25Bc0hUTUxdXG4gICk7XG4gIGNvbnN0IG51bUF0dGFjaG1lbnRzQWx0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAobnVtQXR0YWNobWVudHMgPyBsb2NhbGl6ZVdpdGhQbHVyYWwoQUNUSVZJVFlfTlVNX0FUVEFDSE1FTlRTX0FMVF9JRFMsIG51bUF0dGFjaG1lbnRzKSA6ICcnKSxcbiAgICBbbG9jYWxpemVXaXRoUGx1cmFsLCBudW1BdHRhY2htZW50c11cbiAgKTtcblxuICBjb25zdCBhY2Nlc3NpYmxlTmFtZSA9IHVzZU1lbW8oXG4gICAgLy8gV2UgYXJlIGNvbmNhdGVuYXRpbmcgaW4gYSBzaW5nbGUgc3RyaW5nIGZvciBTYWZhcmkuIElmIHdlIHNwbGl0IGl0IHVwLCBTYWZhcmkgd2lsbCBvbmx5IG5hcnJhdGUgdGhlIGZpcnN0IHNlY3Rpb24uXG4gICAgKCkgPT5cbiAgICAgIGAke2dyZWV0aW5nQWx0fSAke21lc3NhZ2VUZXh0QWx0fSAke251bUF0dGFjaG1lbnRzQWx0fSAke1xuICAgICAgICBpbnRlcmFjdGl2ZVR5cGUgPT09IEludGVyYWN0aXZlVHlwZS5MSU5LXG4gICAgICAgICAgPyBhY3Rpdml0eUludGVyYWN0aXZlV2l0aExpbmtBbHRcbiAgICAgICAgICA6IGludGVyYWN0aXZlVHlwZSA9PT0gSW50ZXJhY3RpdmVUeXBlLldJREdFVFxuICAgICAgICAgID8gYWN0aXZpdHlJbnRlcmFjdGl2ZUFsdFxuICAgICAgICAgIDogJydcbiAgICAgIH1gLFxuICAgIFtcbiAgICAgIGFjdGl2aXR5SW50ZXJhY3RpdmVBbHQsXG4gICAgICBhY3Rpdml0eUludGVyYWN0aXZlV2l0aExpbmtBbHQsXG4gICAgICBncmVldGluZ0FsdCxcbiAgICAgIGludGVyYWN0aXZlVHlwZSxcbiAgICAgIG1lc3NhZ2VUZXh0QWx0LFxuICAgICAgbnVtQXR0YWNobWVudHNBbHRcbiAgICBdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYXNMaW5rcyA9ICEhYm9keVJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKCdhJyk7XG4gICAgY29uc3QgaGFzV2lkZ2V0cyA9ICEhdGFiYmFibGVFbGVtZW50cyhib2R5UmVmLmN1cnJlbnQpLmxlbmd0aDtcblxuICAgIGludGVyYWN0aXZlVHlwZVJlZi5jdXJyZW50ICE9PSBoYXNXaWRnZXRzICYmXG4gICAgICBzZXRJbnRlcmFjdGl2ZVR5cGUoaGFzTGlua3MgPyBJbnRlcmFjdGl2ZVR5cGUuTElOSyA6IGhhc1dpZGdldHMgPyBJbnRlcmFjdGl2ZVR5cGUuV0lER0VUIDogZmFsc2UpO1xuICB9LCBbYm9keVJlZiwgaW50ZXJhY3RpdmVUeXBlUmVmLCBzZXRJbnRlcmFjdGl2ZVR5cGVdKTtcblxuICByZXR1cm4gW2FjY2Vzc2libGVOYW1lXTtcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ /** Gets names of users who are actively typing, sorted by the time they started typing. */
2
+ export default function useTypistNames(): readonly [readonly string[]];
3
+ //# sourceMappingURL=useTypistNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTypistNames.d.ts","sourceRoot":"","sources":["../../src/Transcript/useTypistNames.ts"],"names":[],"mappings":"AASA,2FAA2F;AAC3F,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,CA0BrE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useTypistNames;
7
+
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
10
+ var _react = require("react");
11
+
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+
24
+ var useActiveTyping = _botframeworkWebchatApi.hooks.useActiveTyping;
25
+
26
+ function arrayEquals(x, y) {
27
+ return x.length === y.length && x.every(function (value, index) {
28
+ return y[+index] === value;
29
+ });
30
+ }
31
+ /** Gets names of users who are actively typing, sorted by the time they started typing. */
32
+
33
+
34
+ function useTypistNames() {
35
+ var _useActiveTyping = useActiveTyping(),
36
+ _useActiveTyping2 = _slicedToArray(_useActiveTyping, 1),
37
+ activeTyping = _useActiveTyping2[0];
38
+
39
+ var prevTypistNamesStateRef = (0, _react.useRef)(Object.freeze([Object.freeze([])]));
40
+ var activeTypingFromOthersValues = Object.values(activeTyping).filter(function (_ref) {
41
+ var role = _ref.role;
42
+ return role !== 'user';
43
+ }); // Sort the list by the first typist.
44
+
45
+ var sortedActiveTypingFromOthersValues = activeTypingFromOthersValues.sort(function (_ref2, _ref3) {
46
+ var x = _ref2.at;
47
+ var y = _ref3.at;
48
+ return x - y;
49
+ });
50
+ var typistNamesState = Object.freeze([Object.freeze(sortedActiveTypingFromOthersValues.map(function (_ref4) {
51
+ var name = _ref4.name;
52
+ return name;
53
+ }))]);
54
+ var prevTypistNamesState = prevTypistNamesStateRef.current;
55
+ var nextTypistNamesState = arrayEquals(typistNamesState[0], prevTypistNamesState[0]) ? prevTypistNamesState : typistNamesState;
56
+ (0, _react.useEffect)(function () {
57
+ prevTypistNamesStateRef.current = nextTypistNamesState;
58
+ }, [prevTypistNamesStateRef, nextTypistNamesState]);
59
+ return nextTypistNamesState;
60
+ }
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UcmFuc2NyaXB0L3VzZVR5cGlzdE5hbWVzLnRzIl0sIm5hbWVzIjpbInVzZUFjdGl2ZVR5cGluZyIsImhvb2tzIiwiYXJyYXlFcXVhbHMiLCJ4IiwieSIsImxlbmd0aCIsImV2ZXJ5IiwidmFsdWUiLCJpbmRleCIsInVzZVR5cGlzdE5hbWVzIiwiYWN0aXZlVHlwaW5nIiwicHJldlR5cGlzdE5hbWVzU3RhdGVSZWYiLCJPYmplY3QiLCJmcmVlemUiLCJhY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzIiwidmFsdWVzIiwiZmlsdGVyIiwicm9sZSIsInNvcnRlZEFjdGl2ZVR5cGluZ0Zyb21PdGhlcnNWYWx1ZXMiLCJzb3J0IiwiYXQiLCJ0eXBpc3ROYW1lc1N0YXRlIiwibWFwIiwibmFtZSIsInByZXZUeXBpc3ROYW1lc1N0YXRlIiwiY3VycmVudCIsIm5leHRUeXBpc3ROYW1lc1N0YXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsZUFBUixHQUE0QkMsNkJBQTVCLENBQVFELGVBQVI7O0FBRUEsU0FBU0UsV0FBVCxDQUF3QkMsQ0FBeEIsRUFBeUNDLENBQXpDLEVBQW1FO0FBQ2pFLFNBQU9ELENBQUMsQ0FBQ0UsTUFBRixLQUFhRCxDQUFDLENBQUNDLE1BQWYsSUFBeUJGLENBQUMsQ0FBQ0csS0FBRixDQUFRLFVBQUNDLEtBQUQsRUFBUUMsS0FBUjtBQUFBLFdBQWtCSixDQUFDLENBQUMsQ0FBQ0ksS0FBRixDQUFELEtBQWNELEtBQWhDO0FBQUEsR0FBUixDQUFoQztBQUNEO0FBRUQ7OztBQUNlLFNBQVNFLGNBQVQsR0FBd0Q7QUFDckUseUJBQXVCVCxlQUFlLEVBQXRDO0FBQUE7QUFBQSxNQUFPVSxZQUFQOztBQUNBLE1BQU1DLHVCQUF1QixHQUFHLG1CQUM5QkMsTUFBTSxDQUFDQyxNQUFQLENBQWMsQ0FBQ0QsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxDQUFELENBQWQsQ0FEOEIsQ0FBaEM7QUFJQSxNQUFNQyw0QkFBNEIsR0FBR0YsTUFBTSxDQUFDRyxNQUFQLENBQWNMLFlBQWQsRUFBNEJNLE1BQTVCLENBQW1DO0FBQUEsUUFBR0MsSUFBSCxRQUFHQSxJQUFIO0FBQUEsV0FBY0EsSUFBSSxLQUFLLE1BQXZCO0FBQUEsR0FBbkMsQ0FBckMsQ0FOcUUsQ0FRckU7O0FBQ0EsTUFBTUMsa0NBQWtDLEdBQUdKLDRCQUE0QixDQUFDSyxJQUE3QixDQUFrQztBQUFBLFFBQU9oQixDQUFQLFNBQUdpQixFQUFIO0FBQUEsUUFBa0JoQixDQUFsQixTQUFjZ0IsRUFBZDtBQUFBLFdBQTBCakIsQ0FBQyxHQUFHQyxDQUE5QjtBQUFBLEdBQWxDLENBQTNDO0FBRUEsTUFBTWlCLGdCQUE4QyxHQUFHVCxNQUFNLENBQUNDLE1BQVAsQ0FBYyxDQUNuRUQsTUFBTSxDQUFDQyxNQUFQLENBQWNLLGtDQUFrQyxDQUFDSSxHQUFuQyxDQUF1QztBQUFBLFFBQUdDLElBQUgsU0FBR0EsSUFBSDtBQUFBLFdBQWNBLElBQWQ7QUFBQSxHQUF2QyxDQUFkLENBRG1FLENBQWQsQ0FBdkQ7QUFJQSxNQUFpQkMsb0JBQWpCLEdBQTBDYix1QkFBMUMsQ0FBUWMsT0FBUjtBQUVBLE1BQU1DLG9CQUFvQixHQUFHeEIsV0FBVyxDQUFDbUIsZ0JBQWdCLENBQUMsQ0FBRCxDQUFqQixFQUFzQkcsb0JBQW9CLENBQUMsQ0FBRCxDQUExQyxDQUFYLEdBQ3pCQSxvQkFEeUIsR0FFekJILGdCQUZKO0FBSUEsd0JBQVUsWUFBTTtBQUNkVixJQUFBQSx1QkFBdUIsQ0FBQ2MsT0FBeEIsR0FBa0NDLG9CQUFsQztBQUNELEdBRkQsRUFFRyxDQUFDZix1QkFBRCxFQUEwQmUsb0JBQTFCLENBRkg7QUFJQSxTQUFPQSxvQkFBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgeyB1c2VBY3RpdmVUeXBpbmcgfSA9IGhvb2tzO1xuXG5mdW5jdGlvbiBhcnJheUVxdWFsczxUPih4OiByZWFkb25seSBUW10sIHk6IHJlYWRvbmx5IFRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4geC5sZW5ndGggPT09IHkubGVuZ3RoICYmIHguZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4geVsraW5kZXhdID09PSB2YWx1ZSk7XG59XG5cbi8qKiBHZXRzIG5hbWVzIG9mIHVzZXJzIHdobyBhcmUgYWN0aXZlbHkgdHlwaW5nLCBzb3J0ZWQgYnkgdGhlIHRpbWUgdGhleSBzdGFydGVkIHR5cGluZy4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVR5cGlzdE5hbWVzKCk6IHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV0ge1xuICBjb25zdCBbYWN0aXZlVHlwaW5nXSA9IHVzZUFjdGl2ZVR5cGluZygpO1xuICBjb25zdCBwcmV2VHlwaXN0TmFtZXNTdGF0ZVJlZiA9IHVzZVJlZjxyZWFkb25seSBbcmVhZG9ubHkgc3RyaW5nW11dPihcbiAgICBPYmplY3QuZnJlZXplKFtPYmplY3QuZnJlZXplKFtdIGFzIHN0cmluZ1tdKV0pIGFzIFtyZWFkb25seSBzdHJpbmdbXV1cbiAgKTtcblxuICBjb25zdCBhY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzID0gT2JqZWN0LnZhbHVlcyhhY3RpdmVUeXBpbmcpLmZpbHRlcigoeyByb2xlIH0pID0+IHJvbGUgIT09ICd1c2VyJyk7XG5cbiAgLy8gU29ydCB0aGUgbGlzdCBieSB0aGUgZmlyc3QgdHlwaXN0LlxuICBjb25zdCBzb3J0ZWRBY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzID0gYWN0aXZlVHlwaW5nRnJvbU90aGVyc1ZhbHVlcy5zb3J0KCh7IGF0OiB4IH0sIHsgYXQ6IHkgfSkgPT4geCAtIHkpO1xuXG4gIGNvbnN0IHR5cGlzdE5hbWVzU3RhdGU6IHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV0gPSBPYmplY3QuZnJlZXplKFtcbiAgICBPYmplY3QuZnJlZXplKHNvcnRlZEFjdGl2ZVR5cGluZ0Zyb21PdGhlcnNWYWx1ZXMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpXG4gIF0pIGFzIHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV07XG5cbiAgY29uc3QgeyBjdXJyZW50OiBwcmV2VHlwaXN0TmFtZXNTdGF0ZSB9ID0gcHJldlR5cGlzdE5hbWVzU3RhdGVSZWY7XG5cbiAgY29uc3QgbmV4dFR5cGlzdE5hbWVzU3RhdGUgPSBhcnJheUVxdWFscyh0eXBpc3ROYW1lc1N0YXRlWzBdLCBwcmV2VHlwaXN0TmFtZXNTdGF0ZVswXSlcbiAgICA/IHByZXZUeXBpc3ROYW1lc1N0YXRlXG4gICAgOiB0eXBpc3ROYW1lc1N0YXRlO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcHJldlR5cGlzdE5hbWVzU3RhdGVSZWYuY3VycmVudCA9IG5leHRUeXBpc3ROYW1lc1N0YXRlO1xuICB9LCBbcHJldlR5cGlzdE5hbWVzU3RhdGVSZWYsIG5leHRUeXBpc3ROYW1lc1N0YXRlXSk7XG5cbiAgcmV0dXJuIG5leHRUeXBpc3ROYW1lc1N0YXRlO1xufVxuIl19
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -0,0 +1,11 @@
1
+ import React, { MouseEventHandler, ReactNode } from 'react';
2
+ declare const AccessibleButton: React.ForwardRefExoticComponent<{
3
+ 'aria-hidden'?: boolean;
4
+ children?: ReactNode;
5
+ disabled?: boolean;
6
+ onClick?: MouseEventHandler<HTMLButtonElement>;
7
+ tabIndex?: number;
8
+ type: 'button';
9
+ } & React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
10
+ export default AccessibleButton;
11
+ //# sourceMappingURL=AccessibleButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessibleButton.d.ts","sourceRoot":"","sources":["../../src/Utils/AccessibleButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAc,iBAAiB,EAAE,SAAS,EAAU,MAAM,OAAO,CAAC;AA+BhF,QAAA,MAAM,gBAAgB;oBA1BJ,OAAO;eACZ,SAAS;eACT,OAAO;cACR,kBAAkB,iBAAiB,CAAC;eACnC,MAAM;UACX,QAAQ;2FAyCf,CAAC;AAuBF,eAAe,gBAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- var _excluded = ["aria-hidden", "disabled", "onClick", "tabIndex"];
14
+ var _excluded = ["aria-hidden", "children", "disabled", "onClick", "tabIndex"];
15
15
 
16
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
17
 
@@ -27,7 +27,9 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
27
27
 
28
28
  var PREVENT_DEFAULT_HANDLER = function PREVENT_DEFAULT_HANDLER(event) {
29
29
  return event.preventDefault();
30
- }; // Differences between <button> and <AccessibleButton>:
30
+ };
31
+
32
+ // Differences between <button> and <AccessibleButton>:
31
33
  // - Disable behavior
32
34
  // - When the widget is disabled
33
35
  // - Set "aria-disabled" attribute to "true"
@@ -43,10 +45,9 @@ var PREVENT_DEFAULT_HANDLER = function PREVENT_DEFAULT_HANDLER(event) {
43
45
  // - Modify all code that check disabled through "disabled" attribute to use aria-disabled="true" instead
44
46
  // - aria-disabled="true" is the source of truth
45
47
  // - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget
46
-
47
-
48
48
  var AccessibleButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) {
49
49
  var ariaHidden = _ref['aria-hidden'],
50
+ children = _ref.children,
50
51
  disabled = _ref.disabled,
51
52
  onClick = _ref.onClick,
52
53
  tabIndex = _ref.tabIndex,
@@ -62,10 +63,11 @@ var AccessibleButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwa
62
63
  tabIndex: disabled ? -1 : tabIndex
63
64
  }, props, {
64
65
  type: "button"
65
- }));
66
+ }), children);
66
67
  });
67
68
  AccessibleButton.defaultProps = {
68
69
  'aria-hidden': undefined,
70
+ children: undefined,
69
71
  disabled: undefined,
70
72
  onClick: undefined,
71
73
  tabIndex: undefined
@@ -73,11 +75,14 @@ AccessibleButton.defaultProps = {
73
75
  AccessibleButton.displayName = 'AccessibleButton';
74
76
  AccessibleButton.propTypes = {
75
77
  'aria-hidden': _propTypes.default.bool,
78
+ children: _propTypes.default.any,
76
79
  disabled: _propTypes.default.bool,
77
80
  onClick: _propTypes.default.func,
78
81
  tabIndex: _propTypes.default.number,
82
+ // TypeScript class is not mappable to PropTypes.oneOf(['button'])
83
+ // @ts-ignore
79
84
  type: _propTypes.default.oneOf(['button']).isRequired
80
85
  };
81
86
  var _default = AccessibleButton;
82
87
  exports.default = _default;
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlQnV0dG9uLmpzIl0sIm5hbWVzIjpbIlBSRVZFTlRfREVGQVVMVF9IQU5ETEVSIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsIkFjY2Vzc2libGVCdXR0b24iLCJmb3J3YXJkZWRSZWYiLCJhcmlhSGlkZGVuIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwidGFiSW5kZXgiLCJwcm9wcyIsInRhcmdldFJlZiIsInJlZiIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImZ1bmMiLCJudW1iZXIiLCJ0eXBlIiwib25lT2YiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBMEIsQ0FBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsY0FBTixFQUFKO0FBQUEsQ0FBckMsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNQyxnQkFBZ0IsZ0JBQUcsdUJBQ3ZCLGdCQUF1RUMsWUFBdkUsRUFBd0Y7QUFBQSxNQUF0RUMsVUFBc0UsUUFBckYsYUFBcUY7QUFBQSxNQUExREMsUUFBMEQsUUFBMURBLFFBQTBEO0FBQUEsTUFBaERDLE9BQWdELFFBQWhEQSxPQUFnRDtBQUFBLE1BQXZDQyxRQUF1QyxRQUF2Q0EsUUFBdUM7QUFBQSxNQUExQkMsS0FBMEI7O0FBQ3RGLE1BQU1DLFNBQVMsR0FBRyxvQkFBbEI7QUFFQSxNQUFNQyxHQUFHLEdBQUdQLFlBQVksSUFBSU0sU0FBNUI7QUFFQSxzQkFDRTtBQUNFLHFCQUFlSixRQUFRLElBQUlNLFNBRDdCO0FBRUUsbUJBQWFQLFVBRmY7QUFHRSxJQUFBLE9BQU8sRUFBRUMsUUFBUSxHQUFHTix1QkFBSCxHQUE2Qk8sT0FIaEQ7QUFJRSxJQUFBLEdBQUcsRUFBRUksR0FKUDtBQUtFLElBQUEsUUFBUSxFQUFFTCxRQUFRLEdBQUcsQ0FBQyxDQUFKLEdBQVFFO0FBTDVCLEtBTU1DLEtBTk47QUFPRSxJQUFBLElBQUksRUFBQztBQVBQLEtBREY7QUFXRCxDQWpCc0IsQ0FBekI7QUFvQkFOLGdCQUFnQixDQUFDVSxZQUFqQixHQUFnQztBQUM5QixpQkFBZUQsU0FEZTtBQUU5Qk4sRUFBQUEsUUFBUSxFQUFFTSxTQUZvQjtBQUc5QkwsRUFBQUEsT0FBTyxFQUFFSyxTQUhxQjtBQUk5QkosRUFBQUEsUUFBUSxFQUFFSTtBQUpvQixDQUFoQztBQU9BVCxnQkFBZ0IsQ0FBQ1csV0FBakIsR0FBK0Isa0JBQS9CO0FBRUFYLGdCQUFnQixDQUFDWSxTQUFqQixHQUE2QjtBQUMzQixpQkFBZUMsbUJBQVVDLElBREU7QUFFM0JYLEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVDLElBRk87QUFHM0JWLEVBQUFBLE9BQU8sRUFBRVMsbUJBQVVFLElBSFE7QUFJM0JWLEVBQUFBLFFBQVEsRUFBRVEsbUJBQVVHLE1BSk87QUFLM0JDLEVBQUFBLElBQUksRUFBRUosbUJBQVVLLEtBQVYsQ0FBZ0IsQ0FBQyxRQUFELENBQWhCLEVBQTRCQztBQUxQLENBQTdCO2VBUWVuQixnQiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWy0xXSB9XSAqL1xuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgUFJFVkVOVF9ERUZBVUxUX0hBTkRMRVIgPSBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDxidXR0b24+IGFuZCA8QWNjZXNzaWJsZUJ1dHRvbj46XG4vLyAtIERpc2FibGUgYmVoYXZpb3Jcbi8vICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWRcbi8vICAgICAtIFNldCBcImFyaWEtZGlzYWJsZWRcIiBhdHRyaWJ1dGUgdG8gXCJ0cnVlXCJcbi8vICAgICAtIFNldCBcInJlYWRvbmx5XCIgYXR0cmlidXRlXG4vLyAgICAgLSBTZXQgXCJ0YWJJbmRleFwiIHRvIC0xXG4vLyAgICAgLSBSZW1vdmUgXCJvbkNsaWNrXCIgaGFuZGxlclxuLy8gICAtIFdoeSB0aGlzIGlzIG5lZWRlZFxuLy8gICAgIC0gQnJvd3NlciBjb21wYXRpYmlsaXR5OiB3aGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGRpZmZlcmVudCBicm93c2VyIHNlbmQgZm9jdXMgdG8gZGlmZmVyZW50IHBsYWNlc1xuLy8gICAgIC0gV2hlbiB0aGUgd2lkZ2V0IGJlY29tZSBkaXNhYmxlZCwgaXQncyByZWFzb25hYmxlIHRvIGtlZXAgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIHdpZGdldCBmb3IgYW4gZXh0ZW5kZWQgcGVyaW9kIG9mIHRpbWVcbi8vICAgICAgIC0gV2hlbiB0aGUgdXNlciBwcmVzc2VzIFRBQiBhZnRlciB0aGUgY3VycmVudCB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0IHNob3VsZCBqdW1wIHRvIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCB3aWRnZXRcblxuLy8gRGV2ZWxvcGVycyB1c2luZyB0aGlzIGFjY2Vzc2libGUgd2lkZ2V0IHdpbGwgbmVlZCB0bzpcbi8vIC0gU3R5bGUgdGhlIGRpc2FibGVkIHdpZGdldCB0aGVtc2VsdmVzLCB1c2luZyBDU1MgcXVlcnkgYDpkaXNhYmxlZCwgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHt9YFxuLy8gLSBNb2RpZnkgYWxsIGNvZGUgdGhhdCBjaGVjayBkaXNhYmxlZCB0aHJvdWdoIFwiZGlzYWJsZWRcIiBhdHRyaWJ1dGUgdG8gdXNlIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgaW5zdGVhZFxuLy8gICAtIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgaXMgdGhlIHNvdXJjZSBvZiB0cnV0aFxuLy8gLSBJZiB0aGUgd2lkZ2V0IGlzIGNvbnRhaW5lZCBieSBhIDxmb3JtPiwgdGhlIGRldmVsb3BlciBuZWVkIHRvIGZpbHRlciBvdXQgc29tZSBgb25TdWJtaXRgIGV2ZW50IGNhdXNlZCBieSB0aGlzIHdpZGdldFxuXG5jb25zdCBBY2Nlc3NpYmxlQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgKHsgJ2FyaWEtaGlkZGVuJzogYXJpYUhpZGRlbiwgZGlzYWJsZWQsIG9uQ2xpY2ssIHRhYkluZGV4LCAuLi5wcm9wcyB9LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB1c2VSZWYoKTtcblxuICAgIGNvbnN0IHJlZiA9IGZvcndhcmRlZFJlZiB8fCB0YXJnZXRSZWY7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZCB8fCB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgICBvbkNsaWNrPXtkaXNhYmxlZCA/IFBSRVZFTlRfREVGQVVMVF9IQU5ETEVSIDogb25DbGlja31cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHRhYkluZGV4PXtkaXNhYmxlZCA/IC0xIDogdGFiSW5kZXh9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkFjY2Vzc2libGVCdXR0b24uZGVmYXVsdFByb3BzID0ge1xuICAnYXJpYS1oaWRkZW4nOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIG9uQ2xpY2s6IHVuZGVmaW5lZCxcbiAgdGFiSW5kZXg6IHVuZGVmaW5lZFxufTtcblxuQWNjZXNzaWJsZUJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdBY2Nlc3NpYmxlQnV0dG9uJztcblxuQWNjZXNzaWJsZUJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gICdhcmlhLWhpZGRlbic6IFByb3BUeXBlcy5ib29sLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFsnYnV0dG9uJ10pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjY2Vzc2libGVCdXR0b247XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlQnV0dG9uLnRzeCJdLCJuYW1lcyI6WyJQUkVWRU5UX0RFRkFVTFRfSEFORExFUiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJBY2Nlc3NpYmxlQnV0dG9uIiwiZm9yd2FyZGVkUmVmIiwiYXJpYUhpZGRlbiIsImNoaWxkcmVuIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwidGFiSW5kZXgiLCJwcm9wcyIsInRhcmdldFJlZiIsInJlZiIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImFueSIsImZ1bmMiLCJudW1iZXIiLCJ0eXBlIiwib25lT2YiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBMEIsQ0FBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsY0FBTixFQUFKO0FBQUEsQ0FBckM7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQyxnQkFBZ0IsZ0JBQUcsdUJBQ3ZCLGdCQUFpRkMsWUFBakYsRUFBa0c7QUFBQSxNQUFoRkMsVUFBZ0YsUUFBL0YsYUFBK0Y7QUFBQSxNQUFwRUMsUUFBb0UsUUFBcEVBLFFBQW9FO0FBQUEsTUFBMURDLFFBQTBELFFBQTFEQSxRQUEwRDtBQUFBLE1BQWhEQyxPQUFnRCxRQUFoREEsT0FBZ0Q7QUFBQSxNQUF2Q0MsUUFBdUMsUUFBdkNBLFFBQXVDO0FBQUEsTUFBMUJDLEtBQTBCOztBQUNoRyxNQUFNQyxTQUFTLEdBQUcsb0JBQWxCO0FBRUEsTUFBTUMsR0FBRyxHQUFHUixZQUFZLElBQUlPLFNBQTVCO0FBRUEsc0JBQ0U7QUFDRSxxQkFBZUosUUFBUSxJQUFJTSxTQUQ3QjtBQUVFLG1CQUFhUixVQUZmO0FBR0UsSUFBQSxPQUFPLEVBQUVFLFFBQVEsR0FBR1AsdUJBQUgsR0FBNkJRLE9BSGhEO0FBSUUsSUFBQSxHQUFHLEVBQUVJLEdBSlA7QUFLRSxJQUFBLFFBQVEsRUFBRUwsUUFBUSxHQUFHLENBQUMsQ0FBSixHQUFRRTtBQUw1QixLQU1NQyxLQU5OO0FBT0UsSUFBQSxJQUFJLEVBQUM7QUFQUCxNQVNHSixRQVRILENBREY7QUFhRCxDQW5Cc0IsQ0FBekI7QUFzQkFILGdCQUFnQixDQUFDVyxZQUFqQixHQUFnQztBQUM5QixpQkFBZUQsU0FEZTtBQUU5QlAsRUFBQUEsUUFBUSxFQUFFTyxTQUZvQjtBQUc5Qk4sRUFBQUEsUUFBUSxFQUFFTSxTQUhvQjtBQUk5QkwsRUFBQUEsT0FBTyxFQUFFSyxTQUpxQjtBQUs5QkosRUFBQUEsUUFBUSxFQUFFSTtBQUxvQixDQUFoQztBQVFBVixnQkFBZ0IsQ0FBQ1ksV0FBakIsR0FBK0Isa0JBQS9CO0FBRUFaLGdCQUFnQixDQUFDYSxTQUFqQixHQUE2QjtBQUMzQixpQkFBZUMsbUJBQVVDLElBREU7QUFFM0JaLEVBQUFBLFFBQVEsRUFBRVcsbUJBQVVFLEdBRk87QUFHM0JaLEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVDLElBSE87QUFJM0JWLEVBQUFBLE9BQU8sRUFBRVMsbUJBQVVHLElBSlE7QUFLM0JYLEVBQUFBLFFBQVEsRUFBRVEsbUJBQVVJLE1BTE87QUFNM0I7QUFDQTtBQUNBQyxFQUFBQSxJQUFJLEVBQUVMLG1CQUFVTSxLQUFWLENBQWdCLENBQUMsUUFBRCxDQUFoQixFQUE0QkM7QUFSUCxDQUE3QjtlQVdlckIsZ0IiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFstMV0gfV0gKi9cblxuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFBSRVZFTlRfREVGQVVMVF9IQU5ETEVSID0gZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxudHlwZSBBY2Nlc3NpYmxlQnV0dG9uUHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgdHlwZTogJ2J1dHRvbic7XG59ICYgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDxidXR0b24+IGFuZCA8QWNjZXNzaWJsZUJ1dHRvbj46XG4vLyAtIERpc2FibGUgYmVoYXZpb3Jcbi8vICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWRcbi8vICAgICAtIFNldCBcImFyaWEtZGlzYWJsZWRcIiBhdHRyaWJ1dGUgdG8gXCJ0cnVlXCJcbi8vICAgICAtIFNldCBcInJlYWRvbmx5XCIgYXR0cmlidXRlXG4vLyAgICAgLSBTZXQgXCJ0YWJJbmRleFwiIHRvIC0xXG4vLyAgICAgLSBSZW1vdmUgXCJvbkNsaWNrXCIgaGFuZGxlclxuLy8gICAtIFdoeSB0aGlzIGlzIG5lZWRlZFxuLy8gICAgIC0gQnJvd3NlciBjb21wYXRpYmlsaXR5OiB3aGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGRpZmZlcmVudCBicm93c2VyIHNlbmQgZm9jdXMgdG8gZGlmZmVyZW50IHBsYWNlc1xuLy8gICAgIC0gV2hlbiB0aGUgd2lkZ2V0IGJlY29tZSBkaXNhYmxlZCwgaXQncyByZWFzb25hYmxlIHRvIGtlZXAgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIHdpZGdldCBmb3IgYW4gZXh0ZW5kZWQgcGVyaW9kIG9mIHRpbWVcbi8vICAgICAgIC0gV2hlbiB0aGUgdXNlciBwcmVzc2VzIFRBQiBhZnRlciB0aGUgY3VycmVudCB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0IHNob3VsZCBqdW1wIHRvIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCB3aWRnZXRcblxuLy8gRGV2ZWxvcGVycyB1c2luZyB0aGlzIGFjY2Vzc2libGUgd2lkZ2V0IHdpbGwgbmVlZCB0bzpcbi8vIC0gU3R5bGUgdGhlIGRpc2FibGVkIHdpZGdldCB0aGVtc2VsdmVzLCB1c2luZyBDU1MgcXVlcnkgYDpkaXNhYmxlZCwgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHt9YFxuLy8gLSBNb2RpZnkgYWxsIGNvZGUgdGhhdCBjaGVjayBkaXNhYmxlZCB0aHJvdWdoIFwiZGlzYWJsZWRcIiBhdHRyaWJ1dGUgdG8gdXNlIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgaW5zdGVhZFxuLy8gICAtIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgaXMgdGhlIHNvdXJjZSBvZiB0cnV0aFxuLy8gLSBJZiB0aGUgd2lkZ2V0IGlzIGNvbnRhaW5lZCBieSBhIDxmb3JtPiwgdGhlIGRldmVsb3BlciBuZWVkIHRvIGZpbHRlciBvdXQgc29tZSBgb25TdWJtaXRgIGV2ZW50IGNhdXNlZCBieSB0aGlzIHdpZGdldFxuXG5jb25zdCBBY2Nlc3NpYmxlQnV0dG9uID0gZm9yd2FyZFJlZjxIVE1MQnV0dG9uRWxlbWVudCwgQWNjZXNzaWJsZUJ1dHRvblByb3BzPihcbiAgKHsgJ2FyaWEtaGlkZGVuJzogYXJpYUhpZGRlbiwgY2hpbGRyZW4sIGRpc2FibGVkLCBvbkNsaWNrLCB0YWJJbmRleCwgLi4ucHJvcHMgfSwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdXNlUmVmKCk7XG5cbiAgICBjb25zdCByZWYgPSBmb3J3YXJkZWRSZWYgfHwgdGFyZ2V0UmVmO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgICAgb25DbGljaz17ZGlzYWJsZWQgPyBQUkVWRU5UX0RFRkFVTFRfSEFORExFUiA6IG9uQ2xpY2t9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB0YWJJbmRleD17ZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4fVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2J1dHRvbj5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgJ2FyaWEtaGlkZGVuJzogdW5kZWZpbmVkLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBkaXNhYmxlZDogdW5kZWZpbmVkLFxuICBvbkNsaWNrOiB1bmRlZmluZWQsXG4gIHRhYkluZGV4OiB1bmRlZmluZWRcbn07XG5cbkFjY2Vzc2libGVCdXR0b24uZGlzcGxheU5hbWUgPSAnQWNjZXNzaWJsZUJ1dHRvbic7XG5cbkFjY2Vzc2libGVCdXR0b24ucHJvcFR5cGVzID0ge1xuICAnYXJpYS1oaWRkZW4nOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIHRhYkluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAvLyBUeXBlU2NyaXB0IGNsYXNzIGlzIG5vdCBtYXBwYWJsZSB0byBQcm9wVHlwZXMub25lT2YoWydidXR0b24nXSlcbiAgLy8gQHRzLWlnbm9yZVxuICB0eXBlOiBQcm9wVHlwZXMub25lT2YoWydidXR0b24nXSkuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWNjZXNzaWJsZUJ1dHRvbjtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true