botframework-webchat-component 4.13.0 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/.eslintrc.yml +4 -100
  2. package/.prettierrc.yml +1 -1
  3. package/lib/Activity/Avatar.d.ts +10 -0
  4. package/lib/Activity/Avatar.d.ts.map +1 -0
  5. package/lib/Activity/Avatar.js +2 -1
  6. package/lib/Activity/Bubble.d.ts +11 -0
  7. package/lib/Activity/Bubble.d.ts.map +1 -0
  8. package/lib/Activity/Bubble.js +2 -2
  9. package/lib/Activity/CarouselFilmStrip.js +21 -31
  10. package/lib/Activity/CarouselFilmStripAttachment.js +120 -0
  11. package/lib/Activity/CarouselLayout.js +5 -5
  12. package/lib/Activity/Speak.d.ts +10 -0
  13. package/lib/Activity/Speak.d.ts.map +1 -0
  14. package/lib/Activity/Speak.js +11 -13
  15. package/lib/Activity/StackedLayout.d.ts +18 -0
  16. package/lib/Activity/StackedLayout.d.ts.map +1 -0
  17. package/lib/Activity/StackedLayout.js +19 -15
  18. package/lib/Assets/TypingAnimation.js +2 -2
  19. package/lib/Attachment/Assets/DownloadIcon.js +3 -1
  20. package/lib/Attachment/AudioAttachment.js +2 -2
  21. package/lib/Attachment/AudioContent.d.ts +11 -0
  22. package/lib/Attachment/AudioContent.d.ts.map +1 -0
  23. package/lib/Attachment/AudioContent.js +4 -4
  24. package/lib/Attachment/FileAttachment.js +2 -2
  25. package/lib/Attachment/FileContent.d.ts +10 -0
  26. package/lib/Attachment/FileContent.d.ts.map +1 -0
  27. package/lib/Attachment/FileContent.js +14 -9
  28. package/lib/Attachment/HTMLVideoContent.d.ts +11 -0
  29. package/lib/Attachment/HTMLVideoContent.d.ts.map +1 -0
  30. package/lib/Attachment/HTMLVideoContent.js +2 -2
  31. package/lib/Attachment/ImageContent.d.ts +8 -0
  32. package/lib/Attachment/ImageContent.d.ts.map +1 -0
  33. package/lib/Attachment/ImageContent.js +2 -2
  34. package/lib/Attachment/TextContent.d.ts +8 -0
  35. package/lib/Attachment/TextContent.d.ts.map +1 -0
  36. package/lib/Attachment/TextContent.js +4 -4
  37. package/lib/Attachment/VideoAttachment.js +2 -2
  38. package/lib/Attachment/VideoContent.d.ts +11 -0
  39. package/lib/Attachment/VideoContent.d.ts.map +1 -0
  40. package/lib/Attachment/VideoContent.js +1 -1
  41. package/lib/Attachment/VimeoContent.d.ts +10 -0
  42. package/lib/Attachment/VimeoContent.d.ts.map +1 -0
  43. package/lib/Attachment/VimeoContent.js +8 -8
  44. package/lib/Attachment/YouTubeContent.d.ts +10 -0
  45. package/lib/Attachment/YouTubeContent.d.ts.map +1 -0
  46. package/lib/Attachment/YouTubeContent.js +5 -5
  47. package/lib/Avatar/ImageAvatar.js +2 -2
  48. package/lib/Avatar/InitialsAvatar.js +2 -2
  49. package/lib/BasicConnectivityStatus.js +2 -2
  50. package/lib/BasicSendBox.d.ts +9 -0
  51. package/lib/BasicSendBox.d.ts.map +1 -0
  52. package/lib/BasicSendBox.js +7 -6
  53. package/lib/BasicToast.js +4 -4
  54. package/lib/BasicToaster.js +8 -5
  55. package/lib/BasicTranscript.d.ts +7 -0
  56. package/lib/BasicTranscript.d.ts.map +1 -0
  57. package/lib/BasicTranscript.js +406 -743
  58. package/lib/BasicTypingIndicator.d.ts +6 -0
  59. package/lib/BasicTypingIndicator.d.ts.map +1 -0
  60. package/lib/BasicTypingIndicator.js +13 -5
  61. package/lib/BasicWebChat.d.ts +9 -0
  62. package/lib/BasicWebChat.d.ts.map +1 -0
  63. package/lib/BasicWebChat.js +6 -4
  64. package/lib/Composer.d.ts +23 -0
  65. package/lib/Composer.d.ts.map +1 -0
  66. package/lib/Composer.js +65 -82
  67. package/lib/ConnectivityStatus/Assets/ErrorNotificationIcon.js +2 -2
  68. package/lib/ConnectivityStatus/Assets/SpinnerAnimation.js +2 -2
  69. package/lib/ConnectivityStatus/Assets/WarningNotificationIcon.js +2 -2
  70. package/lib/ConnectivityStatus/Connected.js +1 -1
  71. package/lib/ConnectivityStatus/Connecting.js +4 -4
  72. package/lib/ConnectivityStatus/FailedToConnect.js +2 -2
  73. package/lib/ConnectivityStatus/JavaScriptError.js +2 -2
  74. package/lib/Dictation.js +13 -4
  75. package/lib/ErrorBox.d.ts +8 -0
  76. package/lib/ErrorBox.d.ts.map +1 -0
  77. package/lib/ErrorBox.js +2 -2
  78. package/lib/Middleware/Activity/createCoreMiddleware.d.ts +3 -0
  79. package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +1 -0
  80. package/lib/Middleware/Activity/createCoreMiddleware.js +1 -1
  81. package/lib/Middleware/ActivityStatus/AbsoluteTime.js +1 -1
  82. package/lib/Middleware/ActivityStatus/RelativeTime.js +1 -1
  83. package/lib/Middleware/ActivityStatus/SendStatus/SendFailedRetry.js +3 -3
  84. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts +11 -0
  85. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts.map +1 -0
  86. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.js +5 -5
  87. package/lib/Middleware/ActivityStatus/Timestamp.d.ts +9 -0
  88. package/lib/Middleware/ActivityStatus/Timestamp.d.ts.map +1 -0
  89. package/lib/Middleware/ActivityStatus/Timestamp.js +2 -2
  90. package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts +3 -0
  91. package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts.map +1 -0
  92. package/lib/Middleware/ActivityStatus/createCoreMiddleware.js +1 -1
  93. package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +21 -16
  94. package/lib/Middleware/ActivityStatus/createTimestampMiddleware.js +1 -1
  95. package/lib/Middleware/Attachment/createCoreMiddleware.d.ts +3 -0
  96. package/lib/Middleware/Attachment/createCoreMiddleware.d.ts.map +1 -0
  97. package/lib/Middleware/Attachment/createCoreMiddleware.js +10 -13
  98. package/lib/Middleware/AttachmentForScreenReader/AudioAttachment.js +1 -1
  99. package/lib/Middleware/AttachmentForScreenReader/FileAttachment.js +1 -1
  100. package/lib/Middleware/AttachmentForScreenReader/ImageAttachment.js +1 -1
  101. package/lib/Middleware/AttachmentForScreenReader/TextAttachment.js +1 -1
  102. package/lib/Middleware/AttachmentForScreenReader/VideoAttachment.js +1 -1
  103. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts +3 -0
  104. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +1 -0
  105. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +9 -5
  106. package/lib/Middleware/Avatar/createCoreMiddleware.d.ts +11 -0
  107. package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +1 -0
  108. package/lib/Middleware/Avatar/createCoreMiddleware.js +3 -4
  109. package/lib/Middleware/CardAction/createCoreMiddleware.js +11 -4
  110. package/lib/Middleware/GroupActivities/createCoreMiddleware.js +1 -1
  111. package/lib/Middleware/ScrollToEndButton/ScrollToEndButton.js +71 -0
  112. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts +3 -0
  113. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +1 -0
  114. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +27 -0
  115. package/lib/Middleware/Toast/createCoreMiddleware.d.ts +4 -0
  116. package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +1 -0
  117. package/lib/Middleware/Toast/createCoreMiddleware.js +1 -1
  118. package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts +3 -0
  119. package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +1 -0
  120. package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +9 -6
  121. package/lib/ReactWebChat.d.ts +10 -0
  122. package/lib/ReactWebChat.d.ts.map +1 -0
  123. package/lib/ReactWebChat.js +19 -7
  124. package/lib/ScreenReaderActivity.js +76 -48
  125. package/lib/ScreenReaderText.d.ts +9 -0
  126. package/lib/ScreenReaderText.d.ts.map +1 -0
  127. package/lib/ScreenReaderText.js +22 -8
  128. package/lib/SendBox/Assets/AttachmentIcon.js +3 -1
  129. package/lib/SendBox/Assets/MicrophoneIcon.js +3 -1
  130. package/lib/SendBox/Assets/SendIcon.js +2 -2
  131. package/lib/SendBox/AutoResizeTextArea.d.ts +23 -0
  132. package/lib/SendBox/AutoResizeTextArea.d.ts.map +1 -0
  133. package/lib/SendBox/AutoResizeTextArea.js +6 -6
  134. package/lib/SendBox/DictationInterims.d.ts +9 -0
  135. package/lib/SendBox/DictationInterims.d.ts.map +1 -0
  136. package/lib/SendBox/DictationInterims.js +3 -3
  137. package/lib/SendBox/IconButton.d.ts +11 -0
  138. package/lib/SendBox/IconButton.d.ts.map +1 -0
  139. package/lib/SendBox/IconButton.js +27 -7
  140. package/lib/SendBox/MicrophoneButton.d.ts +11 -0
  141. package/lib/SendBox/MicrophoneButton.d.ts.map +1 -0
  142. package/lib/SendBox/MicrophoneButton.js +25 -24
  143. package/lib/SendBox/SendButton.d.ts +9 -0
  144. package/lib/SendBox/SendButton.d.ts.map +1 -0
  145. package/lib/SendBox/SendButton.js +8 -6
  146. package/lib/SendBox/SuggestedAction.d.ts +17 -0
  147. package/lib/SendBox/SuggestedAction.d.ts.map +1 -0
  148. package/lib/SendBox/SuggestedAction.js +29 -24
  149. package/lib/SendBox/SuggestedActions.d.ts +5 -0
  150. package/lib/SendBox/SuggestedActions.d.ts.map +1 -0
  151. package/lib/SendBox/SuggestedActions.js +33 -13
  152. package/lib/SendBox/TextBox.d.ts +28 -0
  153. package/lib/SendBox/TextBox.d.ts.map +1 -0
  154. package/lib/SendBox/TextBox.js +13 -8
  155. package/lib/SendBox/UploadButton.d.ts +9 -0
  156. package/lib/SendBox/UploadButton.d.ts.map +1 -0
  157. package/lib/SendBox/UploadButton.js +6 -6
  158. package/lib/Styles/StyleSet/Activities.d.ts +5 -0
  159. package/lib/Styles/StyleSet/Activities.d.ts.map +1 -0
  160. package/lib/Styles/StyleSet/AudioAttachment.d.ts +6 -0
  161. package/lib/Styles/StyleSet/AudioAttachment.d.ts.map +1 -0
  162. package/lib/Styles/StyleSet/AudioContent.d.ts +4 -0
  163. package/lib/Styles/StyleSet/AudioContent.d.ts.map +1 -0
  164. package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts +37 -0
  165. package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts.map +1 -0
  166. package/lib/Styles/StyleSet/Avatar.d.ts +9 -0
  167. package/lib/Styles/StyleSet/Avatar.d.ts.map +1 -0
  168. package/lib/Styles/StyleSet/BasicTranscript.d.ts +85 -0
  169. package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +1 -0
  170. package/lib/Styles/StyleSet/BasicTranscript.js +21 -9
  171. package/lib/Styles/StyleSet/Bubble.d.ts +5 -0
  172. package/lib/Styles/StyleSet/Bubble.d.ts.map +1 -0
  173. package/lib/Styles/StyleSet/Bubble.js +2 -2
  174. package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts +5 -0
  175. package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +1 -0
  176. package/lib/Styles/StyleSet/CarouselFilmStrip.js +2 -18
  177. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts +3 -0
  178. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +1 -0
  179. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +63 -0
  180. package/lib/Styles/StyleSet/CarouselFlipper.d.ts +27 -0
  181. package/lib/Styles/StyleSet/CarouselFlipper.d.ts.map +1 -0
  182. package/lib/Styles/StyleSet/ConnectivityNotification.d.ts +13 -0
  183. package/lib/Styles/StyleSet/ConnectivityNotification.d.ts.map +1 -0
  184. package/lib/Styles/StyleSet/DictationInterims.d.ts +13 -0
  185. package/lib/Styles/StyleSet/DictationInterims.d.ts.map +1 -0
  186. package/lib/Styles/StyleSet/ErrorBox.d.ts +33 -0
  187. package/lib/Styles/StyleSet/ErrorBox.d.ts.map +1 -0
  188. package/lib/Styles/StyleSet/ErrorNotification.d.ts +23 -0
  189. package/lib/Styles/StyleSet/ErrorNotification.d.ts.map +1 -0
  190. package/lib/Styles/StyleSet/FileContent.d.ts +32 -0
  191. package/lib/Styles/StyleSet/FileContent.d.ts.map +1 -0
  192. package/lib/Styles/StyleSet/ImageAvatar.d.ts +7 -0
  193. package/lib/Styles/StyleSet/ImageAvatar.d.ts.map +1 -0
  194. package/lib/Styles/StyleSet/InitialsAvatar.d.ts +19 -0
  195. package/lib/Styles/StyleSet/InitialsAvatar.d.ts.map +1 -0
  196. package/lib/Styles/StyleSet/KeyboardHelp.d.ts +123 -0
  197. package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +1 -0
  198. package/lib/Styles/StyleSet/KeyboardHelp.js +145 -0
  199. package/lib/Styles/StyleSet/MicrophoneButton.d.ts +13 -0
  200. package/lib/Styles/StyleSet/MicrophoneButton.d.ts.map +1 -0
  201. package/lib/Styles/StyleSet/Root.d.ts +8 -0
  202. package/lib/Styles/StyleSet/Root.d.ts.map +1 -0
  203. package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +36 -0
  204. package/lib/Styles/StyleSet/ScrollToEndButton.d.ts.map +1 -0
  205. package/lib/Styles/StyleSet/ScrollToEndButton.js +36 -34
  206. package/lib/Styles/StyleSet/SendBox.d.ts +24 -0
  207. package/lib/Styles/StyleSet/SendBox.d.ts.map +1 -0
  208. package/lib/Styles/StyleSet/SendBoxButton.d.ts +79 -0
  209. package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +1 -0
  210. package/lib/Styles/StyleSet/SendBoxButton.js +76 -12
  211. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +41 -0
  212. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +1 -0
  213. package/lib/Styles/StyleSet/SendBoxTextBox.js +3 -3
  214. package/lib/Styles/StyleSet/SendStatus.d.ts +8 -0
  215. package/lib/Styles/StyleSet/SendStatus.d.ts.map +1 -0
  216. package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts +11 -0
  217. package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts.map +1 -0
  218. package/lib/Styles/StyleSet/SpinnerAnimation.d.ts +15 -0
  219. package/lib/Styles/StyleSet/SpinnerAnimation.d.ts.map +1 -0
  220. package/lib/Styles/StyleSet/StackedLayout.d.ts +63 -0
  221. package/lib/Styles/StyleSet/StackedLayout.d.ts.map +1 -0
  222. package/lib/Styles/StyleSet/StackedLayout.js +1 -1
  223. package/lib/Styles/StyleSet/SuggestedAction.d.ts +94 -0
  224. package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +1 -0
  225. package/lib/Styles/StyleSet/SuggestedAction.js +116 -41
  226. package/lib/Styles/StyleSet/SuggestedActions.d.ts +125 -0
  227. package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +1 -0
  228. package/lib/Styles/StyleSet/SuggestedActions.js +13 -6
  229. package/lib/Styles/StyleSet/TextContent.d.ts +28 -0
  230. package/lib/Styles/StyleSet/TextContent.d.ts.map +1 -0
  231. package/lib/Styles/StyleSet/Toast.d.ts +65 -0
  232. package/lib/Styles/StyleSet/Toast.d.ts.map +1 -0
  233. package/lib/Styles/StyleSet/Toaster.d.ts +111 -0
  234. package/lib/Styles/StyleSet/Toaster.d.ts.map +1 -0
  235. package/lib/Styles/StyleSet/TypingAnimation.d.ts +8 -0
  236. package/lib/Styles/StyleSet/TypingAnimation.d.ts.map +1 -0
  237. package/lib/Styles/StyleSet/TypingIndicator.d.ts +11 -0
  238. package/lib/Styles/StyleSet/TypingIndicator.d.ts.map +1 -0
  239. package/lib/Styles/StyleSet/UploadButton.d.ts +14 -0
  240. package/lib/Styles/StyleSet/UploadButton.d.ts.map +1 -0
  241. package/lib/Styles/StyleSet/VideoAttachment.d.ts +2 -0
  242. package/lib/Styles/StyleSet/VideoAttachment.d.ts.map +1 -0
  243. package/lib/Styles/StyleSet/VideoContent.d.ts +6 -0
  244. package/lib/Styles/StyleSet/VideoContent.d.ts.map +1 -0
  245. package/lib/Styles/StyleSet/VimeoContent.d.ts +7 -0
  246. package/lib/Styles/StyleSet/VimeoContent.d.ts.map +1 -0
  247. package/lib/Styles/StyleSet/WarningNotification.d.ts +22 -0
  248. package/lib/Styles/StyleSet/WarningNotification.d.ts.map +1 -0
  249. package/lib/Styles/StyleSet/YouTubeContent.d.ts +7 -0
  250. package/lib/Styles/StyleSet/YouTubeContent.d.ts.map +1 -0
  251. package/lib/Styles/createStyleSet.d.ts +1372 -0
  252. package/lib/Styles/createStyleSet.d.ts.map +1 -0
  253. package/lib/Styles/createStyleSet.js +47 -41
  254. package/lib/Styles/mirrorStyle.js +13 -4
  255. package/lib/Toast/CollapseIcon.js +3 -1
  256. package/lib/Toast/DismissIcon.js +3 -1
  257. package/lib/Toast/ExpandIcon.js +3 -1
  258. package/lib/Toast/NotificationIcon.js +7 -3
  259. package/lib/Toast/createToastMiddleware.d.ts +4 -0
  260. package/lib/Toast/createToastMiddleware.d.ts.map +1 -0
  261. package/lib/Toast/createToastMiddleware.js +2 -2
  262. package/lib/Transcript/ActivityRow.d.ts +9 -0
  263. package/lib/Transcript/ActivityRow.d.ts.map +1 -0
  264. package/lib/Transcript/ActivityRow.js +157 -0
  265. package/lib/Transcript/ActivityTextAlt.js +57 -0
  266. package/lib/Transcript/FocusTrap.d.ts +8 -0
  267. package/lib/Transcript/FocusTrap.d.ts.map +1 -0
  268. package/lib/Transcript/FocusTrap.js +74 -0
  269. package/lib/Transcript/KeyboardHelp.d.ts +4 -0
  270. package/lib/Transcript/KeyboardHelp.d.ts.map +1 -0
  271. package/lib/Transcript/KeyboardHelp.js +550 -0
  272. package/lib/Transcript/LiveRegionTranscript.d.ts +8 -0
  273. package/lib/Transcript/LiveRegionTranscript.d.ts.map +1 -0
  274. package/lib/Transcript/LiveRegionTranscript.js +214 -0
  275. package/lib/Transcript/types.d.ts +2 -0
  276. package/lib/Transcript/types.d.ts.map +1 -0
  277. package/lib/Transcript/types.js +2 -0
  278. package/lib/Transcript/useActivityAccessibleName.d.ts +4 -0
  279. package/lib/Transcript/useActivityAccessibleName.d.ts.map +1 -0
  280. package/lib/Transcript/useActivityAccessibleName.js +97 -0
  281. package/lib/Utils/AccessKeySink/Surface.js +7 -5
  282. package/lib/Utils/AccessibleButton.d.ts +11 -0
  283. package/lib/Utils/AccessibleButton.d.ts.map +1 -0
  284. package/lib/Utils/AccessibleButton.js +15 -8
  285. package/lib/Utils/AccessibleInputText.d.ts +21 -0
  286. package/lib/Utils/AccessibleInputText.d.ts.map +1 -0
  287. package/lib/Utils/AccessibleInputText.js +29 -25
  288. package/lib/Utils/AccessibleTextArea.d.ts +20 -0
  289. package/lib/Utils/AccessibleTextArea.d.ts.map +1 -0
  290. package/lib/Utils/AccessibleTextArea.js +35 -24
  291. package/lib/Utils/CroppedImage.js +2 -2
  292. package/lib/Utils/Fade.js +2 -2
  293. package/lib/Utils/FocusRedirector.d.ts +9 -0
  294. package/lib/Utils/FocusRedirector.d.ts.map +1 -0
  295. package/lib/Utils/FocusRedirector.js +18 -15
  296. package/lib/Utils/InlineMarkdown.js +17 -10
  297. package/lib/Utils/TypeFocusSink/FocusBox.js +6 -4
  298. package/lib/Utils/TypeFocusSink/getTabIndex.d.ts +2 -0
  299. package/lib/Utils/TypeFocusSink/getTabIndex.d.ts.map +1 -0
  300. package/lib/Utils/TypeFocusSink/getTabIndex.js +1 -1
  301. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +2 -0
  302. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +1 -0
  303. package/lib/Utils/TypeFocusSink/inputtableKey.js +5 -2
  304. package/lib/Utils/TypeFocusSink/navigableEvent.js +1 -1
  305. package/lib/Utils/activityAltText.d.ts +8 -0
  306. package/lib/Utils/activityAltText.d.ts.map +1 -0
  307. package/lib/Utils/activityAltText.js +100 -0
  308. package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +1 -1
  309. package/lib/Utils/createCustomEvent.js +9 -3
  310. package/lib/Utils/debounce.js +1 -1
  311. package/lib/Utils/detectBrowser.js +4 -2
  312. package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +3 -3
  313. package/lib/Utils/downscaleImageToDataURL/index.js +2 -2
  314. package/lib/Utils/filterMap.js +1 -1
  315. package/lib/Utils/findAncestor.js +17 -0
  316. package/lib/Utils/getActivityUniqueId.js +4 -2
  317. package/lib/Utils/intersectionOf.d.ts +5 -0
  318. package/lib/Utils/intersectionOf.d.ts.map +1 -0
  319. package/lib/Utils/intersectionOf.js +17 -2
  320. package/lib/Utils/isZeroOrPositive.d.ts +5 -0
  321. package/lib/Utils/isZeroOrPositive.d.ts.map +1 -0
  322. package/lib/Utils/isZeroOrPositive.js +4 -1
  323. package/lib/Utils/mapMap.js +10 -3
  324. package/lib/Utils/readDataURIToBlob.js +3 -3
  325. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +7 -0
  326. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +1 -0
  327. package/lib/Utils/scrollIntoViewWithBlockNearest.js +48 -0
  328. package/lib/Utils/shallowEquals.js +7 -3
  329. package/lib/Utils/singleToArray.js +1 -1
  330. package/lib/Utils/supportPseudoClass.d.ts +2 -0
  331. package/lib/Utils/supportPseudoClass.d.ts.map +1 -0
  332. package/lib/Utils/supportPseudoClass.js +23 -0
  333. package/lib/Utils/tabbableElements.d.ts +2 -0
  334. package/lib/Utils/tabbableElements.d.ts.map +1 -0
  335. package/lib/Utils/tabbableElements.js +2 -2
  336. package/lib/connectToWebChat.js +17 -7
  337. package/lib/hooks/index.d.ts +21 -0
  338. package/lib/hooks/index.d.ts.map +1 -0
  339. package/lib/hooks/index.js +25 -25
  340. package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +100 -41
  341. package/lib/hooks/internal/UITracker.js +2 -2
  342. package/lib/hooks/internal/useChanged.js +8 -1
  343. package/lib/hooks/internal/useDispatchScrollPosition.js +3 -7
  344. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +2 -0
  345. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +1 -0
  346. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +15 -0
  347. package/lib/hooks/internal/useEnterKeyHint.js +1 -1
  348. package/lib/hooks/internal/useFocusVisible.d.ts +3 -0
  349. package/lib/hooks/internal/useFocusVisible.d.ts.map +1 -0
  350. package/lib/hooks/internal/useFocusVisible.js +48 -0
  351. package/lib/hooks/internal/useForceRender.js +2 -2
  352. package/lib/hooks/internal/useForceRenderAtInterval.js +2 -2
  353. package/lib/hooks/internal/useInternalRenderMarkdownInline.js +1 -1
  354. package/lib/hooks/internal/useLocalizeAccessKey.js +2 -2
  355. package/lib/hooks/internal/useMemoWithPrevious.d.ts +3 -0
  356. package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +1 -0
  357. package/lib/hooks/internal/useMemoWithPrevious.js +22 -0
  358. package/lib/hooks/internal/useMemoize.d.ts +14 -0
  359. package/lib/hooks/internal/useMemoize.d.ts.map +1 -0
  360. package/lib/hooks/internal/useMemoize.js +12 -3
  361. package/lib/hooks/internal/useNavigatorPlatform.js +1 -1
  362. package/lib/hooks/internal/useNonce.js +1 -1
  363. package/lib/hooks/internal/useObserveFocusVisible.d.ts +3 -0
  364. package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +1 -0
  365. package/lib/hooks/internal/useObserveFocusVisible.js +208 -0
  366. package/lib/hooks/internal/usePrevious.d.ts +2 -0
  367. package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
  368. package/lib/hooks/internal/usePrevious.js +18 -0
  369. package/lib/hooks/internal/useRegisterFocusSendBox.js +1 -1
  370. package/lib/hooks/internal/useRegisterFocusTranscript.js +1 -1
  371. package/lib/hooks/internal/useRegisterScrollRelative.js +1 -1
  372. package/lib/hooks/internal/useRegisterScrollTo.js +1 -1
  373. package/lib/hooks/internal/useRegisterScrollToEnd.js +1 -1
  374. package/lib/hooks/internal/useReplaceEmoticon.js +2 -2
  375. package/lib/hooks/internal/useResumeAudioContext.js +33 -0
  376. package/lib/hooks/internal/useScrollRelative.js +1 -1
  377. package/lib/hooks/internal/useSettableDictateAbortable.js +1 -1
  378. package/lib/hooks/internal/useStateRef.d.ts +3 -0
  379. package/lib/hooks/internal/useStateRef.d.ts.map +1 -0
  380. package/lib/hooks/internal/useStateRef.js +40 -0
  381. package/lib/hooks/internal/useSuggestedActionsAccessKey.js +1 -1
  382. package/lib/hooks/internal/useUniqueId.d.ts +2 -0
  383. package/lib/hooks/internal/useUniqueId.d.ts.map +1 -0
  384. package/lib/hooks/internal/useUniqueId.js +1 -1
  385. package/lib/hooks/internal/useValueRef.d.ts +3 -0
  386. package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
  387. package/lib/hooks/internal/useValueRef.js +25 -0
  388. package/lib/hooks/useDictateAbortable.d.ts +2 -0
  389. package/lib/hooks/useDictateAbortable.d.ts.map +1 -0
  390. package/lib/hooks/useDictateAbortable.js +2 -2
  391. package/lib/hooks/useFocus.d.ts +2 -0
  392. package/lib/hooks/useFocus.d.ts.map +1 -0
  393. package/lib/hooks/useFocus.js +1 -1
  394. package/lib/hooks/useFocusSendBox.d.ts +3 -0
  395. package/lib/hooks/useFocusSendBox.d.ts.map +1 -0
  396. package/lib/hooks/useFocusSendBox.js +2 -1
  397. package/lib/hooks/useObserveScrollPosition.d.ts +3 -0
  398. package/lib/hooks/useObserveScrollPosition.d.ts.map +1 -0
  399. package/lib/hooks/useObserveScrollPosition.js +2 -2
  400. package/lib/hooks/useObserveTranscriptFocus.d.ts +5 -0
  401. package/lib/hooks/useObserveTranscriptFocus.d.ts.map +1 -0
  402. package/lib/hooks/useObserveTranscriptFocus.js +2 -2
  403. package/lib/hooks/useRenderMarkdownAsHTML.d.ts +5 -0
  404. package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +1 -0
  405. package/lib/hooks/useRenderMarkdownAsHTML.js +2 -2
  406. package/lib/hooks/useScrollDown.d.ts +4 -0
  407. package/lib/hooks/useScrollDown.d.ts.map +1 -0
  408. package/lib/hooks/useScrollDown.js +1 -1
  409. package/lib/hooks/useScrollTo.d.ts +5 -0
  410. package/lib/hooks/useScrollTo.d.ts.map +1 -0
  411. package/lib/hooks/useScrollTo.js +1 -1
  412. package/lib/hooks/useScrollToEnd.d.ts +2 -0
  413. package/lib/hooks/useScrollToEnd.d.ts.map +1 -0
  414. package/lib/hooks/useScrollToEnd.js +1 -1
  415. package/lib/hooks/useScrollUp.d.ts +4 -0
  416. package/lib/hooks/useScrollUp.d.ts.map +1 -0
  417. package/lib/hooks/useScrollUp.js +1 -1
  418. package/lib/hooks/useSendFiles.d.ts +2 -0
  419. package/lib/hooks/useSendFiles.d.ts.map +1 -0
  420. package/lib/hooks/useSendFiles.js +3 -3
  421. package/lib/hooks/useStyleSet.d.ts +2 -0
  422. package/lib/hooks/useStyleSet.d.ts.map +1 -0
  423. package/lib/hooks/useStyleSet.js +1 -1
  424. package/lib/hooks/useWebSpeechPonyfill.d.ts +3 -0
  425. package/lib/hooks/useWebSpeechPonyfill.d.ts.map +1 -0
  426. package/lib/hooks/useWebSpeechPonyfill.js +1 -1
  427. package/lib/index.d.ts +219 -22
  428. package/lib/index.d.ts.map +1 -1
  429. package/lib/index.js +22 -20
  430. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +5 -0
  431. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +1 -0
  432. package/lib/providers/ActivityTree/ActivityTreeComposer.js +86 -0
  433. package/lib/providers/ActivityTree/private/Context.d.ts +9 -0
  434. package/lib/providers/ActivityTree/private/Context.d.ts.map +1 -0
  435. package/lib/providers/ActivityTree/private/Context.js +13 -0
  436. package/lib/providers/ActivityTree/private/types.d.ts +10 -0
  437. package/lib/providers/ActivityTree/private/types.d.ts.map +1 -0
  438. package/lib/providers/ActivityTree/private/types.js +2 -0
  439. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +4 -0
  440. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +1 -0
  441. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +58 -0
  442. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +5 -0
  443. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +1 -0
  444. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +166 -0
  445. package/lib/providers/ActivityTree/private/useContext.d.ts +3 -0
  446. package/lib/providers/ActivityTree/private/useContext.d.ts.map +1 -0
  447. package/lib/providers/ActivityTree/private/useContext.js +24 -0
  448. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +8 -0
  449. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +1 -0
  450. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +17 -0
  451. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +35 -0
  452. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +1 -0
  453. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +156 -0
  454. package/lib/providers/LiveRegionTwin/private/Context.d.ts +10 -0
  455. package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +1 -0
  456. package/lib/providers/LiveRegionTwin/private/Context.js +13 -0
  457. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +11 -0
  458. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +1 -0
  459. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +86 -0
  460. package/lib/providers/LiveRegionTwin/private/types.d.ts +8 -0
  461. package/lib/providers/LiveRegionTwin/private/types.d.ts.map +1 -0
  462. package/lib/providers/LiveRegionTwin/private/types.js +2 -0
  463. package/lib/providers/LiveRegionTwin/private/useContext.d.ts +3 -0
  464. package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +1 -0
  465. package/lib/providers/LiveRegionTwin/private/useContext.js +24 -0
  466. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +2 -0
  467. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +1 -0
  468. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +24 -0
  469. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +3 -0
  470. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +1 -0
  471. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +15 -0
  472. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +8 -0
  473. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +1 -0
  474. package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +20 -0
  475. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +7 -0
  476. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +1 -0
  477. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +184 -0
  478. package/lib/providers/TranscriptFocus/private/Context.d.ts +12 -0
  479. package/lib/providers/TranscriptFocus/private/Context.d.ts.map +1 -0
  480. package/lib/providers/TranscriptFocus/private/Context.js +13 -0
  481. package/lib/providers/TranscriptFocus/private/useContext.d.ts +2 -0
  482. package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +1 -0
  483. package/lib/providers/TranscriptFocus/private/useContext.js +24 -0
  484. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +2 -0
  485. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +1 -0
  486. package/lib/providers/TranscriptFocus/useActiveDescendantId.js +15 -0
  487. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +8 -0
  488. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +1 -0
  489. package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +21 -0
  490. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +2 -0
  491. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +1 -0
  492. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +15 -0
  493. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +2 -0
  494. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +1 -0
  495. package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +15 -0
  496. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +2 -0
  497. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +1 -0
  498. package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +15 -0
  499. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +2 -0
  500. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +1 -0
  501. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +15 -0
  502. package/lib/tsconfig.json +1 -1
  503. package/lib/types/ScrollPosition.d.ts +6 -0
  504. package/lib/types/ScrollPosition.d.ts.map +1 -0
  505. package/lib/types/ScrollPosition.js +2 -0
  506. package/package.json +33 -40
  507. package/src/Activity/{Avatar.js → Avatar.tsx} +9 -2
  508. package/src/Activity/{Bubble.js → Bubble.tsx} +10 -2
  509. package/src/Activity/CarouselFilmStrip.js +20 -29
  510. package/src/Activity/CarouselFilmStripAttachment.js +91 -0
  511. package/src/Activity/{Speak.js → Speak.tsx} +12 -5
  512. package/src/Activity/{StackedLayout.js → StackedLayout.tsx} +46 -20
  513. package/src/Attachment/Assets/DownloadIcon.js +8 -1
  514. package/src/Attachment/{AudioContent.js → AudioContent.tsx} +12 -3
  515. package/src/Attachment/FileAttachment.js +1 -1
  516. package/src/Attachment/{FileContent.js → FileContent.tsx} +22 -7
  517. package/src/Attachment/{HTMLVideoContent.js → HTMLVideoContent.tsx} +10 -2
  518. package/src/Attachment/{ImageContent.js → ImageContent.tsx} +7 -2
  519. package/src/Attachment/{TextContent.js → TextContent.tsx} +14 -7
  520. package/src/Attachment/{VideoContent.js → VideoContent.tsx} +10 -2
  521. package/src/Attachment/{VimeoContent.js → VimeoContent.tsx} +15 -8
  522. package/src/Attachment/{YouTubeContent.js → YouTubeContent.tsx} +12 -5
  523. package/src/{BasicSendBox.js → BasicSendBox.tsx} +9 -5
  524. package/src/BasicToaster.js +9 -5
  525. package/src/BasicTranscript.tsx +878 -0
  526. package/src/{BasicTypingIndicator.js → BasicTypingIndicator.tsx} +4 -3
  527. package/src/{BasicWebChat.js → BasicWebChat.tsx} +13 -4
  528. package/src/{Composer.js → Composer.tsx} +82 -71
  529. package/src/Dictation.js +13 -4
  530. package/src/{ErrorBox.js → ErrorBox.tsx} +7 -2
  531. package/src/Middleware/Activity/createCoreMiddleware.tsx +78 -0
  532. package/src/Middleware/ActivityStatus/SendStatus/{SendStatus.js → SendStatus.tsx} +8 -3
  533. package/src/Middleware/ActivityStatus/{Timestamp.js → Timestamp.tsx} +8 -2
  534. package/src/Middleware/ActivityStatus/{createCoreMiddleware.js → createCoreMiddleware.tsx} +3 -1
  535. package/src/Middleware/ActivityStatus/createSendStatusMiddleware.js +10 -6
  536. package/src/Middleware/ActivityStatus/createTimestampMiddleware.js +10 -8
  537. package/src/Middleware/Attachment/createCoreMiddleware.tsx +44 -0
  538. package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.tsx +40 -0
  539. package/src/Middleware/Avatar/{createCoreMiddleware.js → createCoreMiddleware.tsx} +19 -11
  540. package/src/Middleware/CardAction/createCoreMiddleware.js +51 -42
  541. package/src/Middleware/GroupActivities/createCoreMiddleware.js +6 -4
  542. package/src/Middleware/ScrollToEndButton/ScrollToEndButton.js +45 -0
  543. package/src/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.ts +19 -0
  544. package/src/Middleware/Toast/createCoreMiddleware.tsx +24 -0
  545. package/src/Middleware/TypingIndicator/{createCoreMiddleware.js → createCoreMiddleware.tsx} +10 -5
  546. package/src/{ReactWebChat.js → ReactWebChat.tsx} +25 -7
  547. package/src/ScreenReaderActivity.js +65 -40
  548. package/src/{ScreenReaderText.js → ScreenReaderText.tsx} +27 -9
  549. package/src/SendBox/Assets/AttachmentIcon.js +1 -1
  550. package/src/SendBox/Assets/MicrophoneIcon.js +1 -1
  551. package/src/SendBox/{AutoResizeTextArea.js → AutoResizeTextArea.tsx} +30 -4
  552. package/src/SendBox/{DictationInterims.js → DictationInterims.tsx} +6 -2
  553. package/src/SendBox/{IconButton.js → IconButton.tsx} +19 -3
  554. package/src/SendBox/{MicrophoneButton.js → MicrophoneButton.tsx} +35 -25
  555. package/src/SendBox/{SendButton.js → SendButton.tsx} +8 -3
  556. package/src/SendBox/{SuggestedAction.js → SuggestedAction.tsx} +62 -39
  557. package/src/SendBox/{SuggestedActions.js → SuggestedActions.tsx} +70 -22
  558. package/src/SendBox/{TextBox.js → TextBox.tsx} +21 -7
  559. package/src/SendBox/{UploadButton.js → UploadButton.tsx} +7 -3
  560. package/src/Styles/StyleSet/BasicTranscript.ts +34 -20
  561. package/src/Styles/StyleSet/Bubble.ts +0 -1
  562. package/src/Styles/StyleSet/CarouselFilmStrip.ts +12 -30
  563. package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +57 -0
  564. package/src/Styles/StyleSet/KeyboardHelp.ts +157 -0
  565. package/src/Styles/StyleSet/ScrollToEndButton.ts +33 -31
  566. package/src/Styles/StyleSet/SendBoxButton.ts +84 -13
  567. package/src/Styles/StyleSet/SendBoxTextBox.ts +1 -2
  568. package/src/Styles/StyleSet/StackedLayout.ts +13 -11
  569. package/src/Styles/StyleSet/SuggestedAction.ts +130 -43
  570. package/src/Styles/StyleSet/SuggestedActions.ts +13 -5
  571. package/src/Styles/createStyleSet.ts +43 -40
  572. package/src/Styles/mirrorStyle.js +10 -2
  573. package/src/Toast/CollapseIcon.js +9 -1
  574. package/src/Toast/DismissIcon.js +9 -1
  575. package/src/Toast/ExpandIcon.js +9 -1
  576. package/src/Toast/NotificationIcon.js +4 -1
  577. package/src/Toast/createToastMiddleware.tsx +15 -0
  578. package/src/Transcript/ActivityRow.tsx +124 -0
  579. package/src/Transcript/ActivityTextAlt.tsx +32 -0
  580. package/src/Transcript/FocusTrap.tsx +64 -0
  581. package/src/Transcript/KeyboardHelp.tsx +282 -0
  582. package/src/Transcript/LiveRegionTranscript.tsx +181 -0
  583. package/src/Transcript/types.ts +1 -0
  584. package/src/Transcript/useActivityAccessibleName.ts +85 -0
  585. package/src/Utils/{AccessibleButton.js → AccessibleButton.tsx} +19 -4
  586. package/src/Utils/{AccessibleInputText.js → AccessibleInputText.tsx} +48 -5
  587. package/src/Utils/{AccessibleTextArea.js → AccessibleTextArea.tsx} +67 -6
  588. package/src/Utils/{FocusRedirector.js → FocusRedirector.tsx} +21 -8
  589. package/src/Utils/InlineMarkdown.js +18 -2
  590. package/src/Utils/TypeFocusSink/FocusBox.js +4 -4
  591. package/src/Utils/TypeFocusSink/getTabIndex.ts +1 -1
  592. package/src/Utils/TypeFocusSink/inputtableKey.ts +5 -1
  593. package/src/Utils/activityAltText.ts +135 -0
  594. package/src/Utils/createCustomEvent.js +7 -1
  595. package/src/Utils/detectBrowser.js +2 -1
  596. package/src/Utils/findAncestor.ts +12 -0
  597. package/src/Utils/getActivityUniqueId.ts +5 -0
  598. package/src/Utils/intersectionOf.spec.js +2 -0
  599. package/src/Utils/intersectionOf.ts +14 -0
  600. package/src/Utils/isZeroOrPositive.ts +7 -0
  601. package/src/Utils/mapMap.js +7 -1
  602. package/src/Utils/mapMap.spec.js +2 -0
  603. package/src/Utils/removeInline.spec.js +2 -0
  604. package/src/Utils/scrollIntoViewWithBlockNearest.ts +20 -0
  605. package/src/Utils/shallowEquals.js +8 -1
  606. package/src/Utils/{singleToArray.js → singleToArray.ts} +1 -1
  607. package/src/Utils/supportPseudoClass.ts +17 -0
  608. package/src/Utils/{tabbableElements.js → tabbableElements.ts} +6 -5
  609. package/src/Utils/walkMarkdownTokens.spec.js +3 -3
  610. package/src/connectToWebChat.js +11 -4
  611. package/src/hooks/{index.js → index.ts} +1 -0
  612. package/src/hooks/internal/BypassSpeechSynthesisPonyfill.js +70 -17
  613. package/src/hooks/internal/useChanged.ts +17 -0
  614. package/src/hooks/internal/useDispatchScrollPosition.js +1 -3
  615. package/src/hooks/internal/useDispatchTranscriptFocusByActivityKey.ts +5 -0
  616. package/src/hooks/internal/useFocusVisible.ts +22 -0
  617. package/src/hooks/internal/useMemoWithPrevious.ts +16 -0
  618. package/src/hooks/internal/useMemoize.spec.js +3 -1
  619. package/src/hooks/internal/useMemoize.ts +53 -0
  620. package/src/hooks/internal/useObserveFocusVisible.ts +252 -0
  621. package/src/hooks/internal/usePrevious.ts +12 -0
  622. package/src/hooks/internal/useResumeAudioContext.ts +7 -0
  623. package/src/hooks/internal/useScrollRelative.js +4 -3
  624. package/src/hooks/internal/useStateRef.ts +31 -0
  625. package/src/hooks/internal/{useUniqueId.js → useUniqueId.ts} +1 -1
  626. package/src/hooks/internal/useValueRef.ts +22 -0
  627. package/src/hooks/{useDictateAbortable.js → useDictateAbortable.ts} +1 -1
  628. package/src/hooks/{useFocus.js → useFocus.ts} +1 -1
  629. package/src/hooks/{useFocusSendBox.js → useFocusSendBox.ts} +2 -1
  630. package/src/hooks/{useObserveScrollPosition.js → useObserveScrollPosition.ts} +6 -1
  631. package/src/hooks/{useObserveTranscriptFocus.js → useObserveTranscriptFocus.ts} +6 -1
  632. package/src/hooks/useRenderMarkdownAsHTML.ts +23 -0
  633. package/src/hooks/{useScrollDown.js → useScrollDown.ts} +1 -1
  634. package/src/hooks/useScrollTo.ts +16 -0
  635. package/src/hooks/useScrollToEnd.ts +12 -0
  636. package/src/hooks/{useScrollUp.js → useScrollUp.ts} +1 -1
  637. package/src/hooks/{useSendFiles.js → useSendFiles.ts} +3 -2
  638. package/src/hooks/{useStyleSet.js → useStyleSet.ts} +1 -1
  639. package/src/hooks/useWebSpeechPonyfill.ts +7 -0
  640. package/src/index.ts +7 -12
  641. package/src/providers/ActivityTree/ActivityTreeComposer.tsx +74 -0
  642. package/src/providers/ActivityTree/private/Context.ts +12 -0
  643. package/src/providers/ActivityTree/private/types.ts +12 -0
  644. package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +66 -0
  645. package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +140 -0
  646. package/src/providers/ActivityTree/private/useContext.ts +15 -0
  647. package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +16 -0
  648. package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +154 -0
  649. package/src/providers/LiveRegionTwin/private/Context.ts +15 -0
  650. package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +64 -0
  651. package/src/providers/LiveRegionTwin/private/types.ts +10 -0
  652. package/src/providers/LiveRegionTwin/private/useContext.ts +15 -0
  653. package/src/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.ts +13 -0
  654. package/src/providers/LiveRegionTwin/private/useStaticElementEntries.ts +7 -0
  655. package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +12 -0
  656. package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +180 -0
  657. package/src/providers/TranscriptFocus/private/Context.ts +16 -0
  658. package/src/providers/TranscriptFocus/private/useContext.ts +13 -0
  659. package/src/providers/TranscriptFocus/useActiveDescendantId.ts +5 -0
  660. package/src/providers/TranscriptFocus/useFocusByActivityKey.ts +14 -0
  661. package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +5 -0
  662. package/src/providers/TranscriptFocus/useFocusedActivityKey.ts +5 -0
  663. package/src/providers/TranscriptFocus/useFocusedExplicitly.ts +5 -0
  664. package/src/providers/TranscriptFocus/useGetDescendantIdByActivityKey.ts +5 -0
  665. package/src/tsconfig.json +1 -1
  666. package/src/types/ScrollPosition.ts +6 -0
  667. package/.eslintignore +0 -9
  668. package/lib/Activity/ScrollToEndButton.js +0 -81
  669. package/lib/Attachment/Assets/ErrorIcon.js +0 -22
  670. package/lib/Utils/findLastIndex.js +0 -32
  671. package/lib/Utils/remarkStripMarkdown.js +0 -26
  672. package/lib/hooks/internal/useAcknowledgedActivity.js +0 -90
  673. package/lib/hooks/internal/useDispatchTranscriptFocus.js +0 -19
  674. package/lib/hooks/internal/useStripMarkdown.js +0 -19
  675. package/src/Activity/ScrollToEndButton.js +0 -58
  676. package/src/Attachment/Assets/ErrorIcon.js +0 -9
  677. package/src/BasicTranscript.js +0 -1123
  678. package/src/Middleware/Activity/createCoreMiddleware.js +0 -71
  679. package/src/Middleware/Attachment/createCoreMiddleware.js +0 -43
  680. package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +0 -37
  681. package/src/Middleware/Toast/createCoreMiddleware.js +0 -20
  682. package/src/Toast/createToastMiddleware.js +0 -11
  683. package/src/Utils/findLastIndex.js +0 -11
  684. package/src/Utils/findLastIndex.spec.js +0 -29
  685. package/src/Utils/getActivityUniqueId.js +0 -3
  686. package/src/Utils/intersectionOf.js +0 -11
  687. package/src/Utils/isZeroOrPositive.js +0 -4
  688. package/src/Utils/remarkStripMarkdown.js +0 -13
  689. package/src/hooks/internal/useAcknowledgedActivity.js +0 -65
  690. package/src/hooks/internal/useChanged.js +0 -10
  691. package/src/hooks/internal/useDispatchTranscriptFocus.js +0 -7
  692. package/src/hooks/internal/useMemoize.js +0 -37
  693. package/src/hooks/internal/useStripMarkdown.js +0 -7
  694. package/src/hooks/useRenderMarkdownAsHTML.js +0 -20
  695. package/src/hooks/useScrollTo.js +0 -11
  696. package/src/hooks/useScrollToEnd.js +0 -11
  697. package/src/hooks/useWebSpeechPonyfill.js +0 -5
  698. package/src/index.tsx +0 -35
@@ -13,9 +13,11 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _useEnterKeyHint = _interopRequireDefault(require("../hooks/internal/useEnterKeyHint"));
15
15
 
16
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
16
+ var _excluded = ["className", "disabled", "enterKeyHint", "onChange", "onFocus", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onSelect", "placeholder", "readOnly", "tabIndex", "value"];
17
17
 
18
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
18
+ 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); }
19
+
20
+ 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; }
19
21
 
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
@@ -25,24 +27,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
25
27
 
26
28
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
29
 
28
- // Differences between <input type="text"> and <AccessibleInputText>:
29
- // - Disable behavior
30
- // - When the widget is disabled
31
- // - Set "aria-disabled" attribute to "true"
32
- // - Set "readonly" attribute
33
- // - Set "tabIndex" to -1
34
- // - Remove "onChange" handler
35
- // - Why this is needed
36
- // - Browser compatibility: when the widget is disabled, different browser send focus to different places
37
- // - When the widget is disabled, it's reasonable to keep the focus on the same widget for an extended period of time
38
- // - When the user presses TAB after the current widget is disabled, it should jump to the next non-disabled widget
39
- // Developers using this accessible widget will need to:
40
- // - Style the disabled widget themselves, using CSS query `:disabled, [aria-disabled="true"] {}`
41
- // - Modify all the code that checks disabled through the "disabled" attribute to use aria-disabled="true" instead
42
- // - aria-disabled="true" is the source of truth
43
- // - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget
44
30
  var AccessibleInputText = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) {
45
- var disabled = _ref.disabled,
31
+ var className = _ref.className,
32
+ disabled = _ref.disabled,
46
33
  enterKeyHint = _ref.enterKeyHint,
47
34
  onChange = _ref.onChange,
48
35
  onFocus = _ref.onFocus,
@@ -50,51 +37,68 @@ var AccessibleInputText = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, fo
50
37
  onKeyDownCapture = _ref.onKeyDownCapture,
51
38
  onKeyPress = _ref.onKeyPress,
52
39
  onSelect = _ref.onSelect,
40
+ placeholder = _ref.placeholder,
41
+ readOnly = _ref.readOnly,
53
42
  tabIndex = _ref.tabIndex,
54
- props = _objectWithoutProperties(_ref, ["disabled", "enterKeyHint", "onChange", "onFocus", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onSelect", "tabIndex"]);
43
+ value = _ref.value,
44
+ props = _objectWithoutProperties(_ref, _excluded);
55
45
 
56
46
  var targetRef = (0, _react.useRef)();
57
47
  var ref = forwardedRef || targetRef;
58
48
  (0, _useEnterKeyHint.default)(ref, enterKeyHint);
59
49
  return /*#__PURE__*/_react.default.createElement("input", _extends({
60
50
  "aria-disabled": disabled || undefined,
51
+ className: className,
61
52
  onChange: disabled ? undefined : onChange,
62
53
  onFocus: disabled ? undefined : onFocus,
63
54
  onKeyDown: disabled ? undefined : onKeyDown,
64
55
  onKeyDownCapture: disabled ? undefined : onKeyDownCapture,
65
56
  onKeyPress: disabled ? undefined : onKeyPress,
66
57
  onSelect: disabled ? undefined : onSelect,
67
- readOnly: disabled,
58
+ placeholder: placeholder,
59
+ readOnly: readOnly || disabled,
68
60
  ref: ref,
69
- tabIndex: disabled ? -1 : tabIndex
61
+ tabIndex: disabled ? -1 : tabIndex,
62
+ value: value
70
63
  }, props, {
71
64
  type: "text"
72
65
  }));
73
66
  });
74
67
  AccessibleInputText.defaultProps = {
68
+ className: undefined,
75
69
  disabled: undefined,
76
70
  enterKeyHint: undefined,
71
+ inputMode: undefined,
77
72
  onChange: undefined,
78
73
  onFocus: undefined,
79
74
  onKeyDown: undefined,
80
75
  onKeyDownCapture: undefined,
81
76
  onKeyPress: undefined,
82
77
  onSelect: undefined,
83
- tabIndex: undefined
78
+ placeholder: undefined,
79
+ readOnly: undefined,
80
+ tabIndex: undefined,
81
+ value: undefined
84
82
  };
85
83
  AccessibleInputText.displayName = 'AccessibleInputText';
86
84
  AccessibleInputText.propTypes = {
85
+ className: _propTypes.default.string,
87
86
  disabled: _propTypes.default.bool,
88
87
  enterKeyHint: _propTypes.default.string,
88
+ inputMode: _propTypes.default.oneOf(['text', 'none', 'tel', 'url', 'email', 'numeric', 'decimal', 'search']),
89
89
  onChange: _propTypes.default.func,
90
90
  onFocus: _propTypes.default.func,
91
91
  onKeyDown: _propTypes.default.func,
92
92
  onKeyDownCapture: _propTypes.default.func,
93
93
  onKeyPress: _propTypes.default.func,
94
94
  onSelect: _propTypes.default.func,
95
+ placeholder: _propTypes.default.string,
96
+ readOnly: _propTypes.default.bool,
95
97
  tabIndex: _propTypes.default.number,
96
- type: _propTypes.default.oneOf(['text']).isRequired
98
+ // @ts-ignore PropTypes and TypeScript type do not well understood each other.
99
+ type: _propTypes.default.oneOf(['text']).isRequired,
100
+ value: _propTypes.default.string
97
101
  };
98
102
  var _default = AccessibleInputText;
99
103
  exports.default = _default;
100
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlSW5wdXRUZXh0LmpzIl0sIm5hbWVzIjpbIkFjY2Vzc2libGVJbnB1dFRleHQiLCJmb3J3YXJkZWRSZWYiLCJkaXNhYmxlZCIsImVudGVyS2V5SGludCIsIm9uQ2hhbmdlIiwib25Gb2N1cyIsIm9uS2V5RG93biIsIm9uS2V5RG93bkNhcHR1cmUiLCJvbktleVByZXNzIiwib25TZWxlY3QiLCJ0YWJJbmRleCIsInByb3BzIiwidGFyZ2V0UmVmIiwicmVmIiwidW5kZWZpbmVkIiwiZGVmYXVsdFByb3BzIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIiwiZnVuYyIsIm51bWJlciIsInR5cGUiLCJvbmVPZiIsImlzUmVxdWlyZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBTUEsbUJBQW1CLGdCQUFHLHVCQUMxQixnQkFhRUMsWUFiRixFQWNLO0FBQUEsTUFaREMsUUFZQyxRQVpEQSxRQVlDO0FBQUEsTUFYREMsWUFXQyxRQVhEQSxZQVdDO0FBQUEsTUFWREMsUUFVQyxRQVZEQSxRQVVDO0FBQUEsTUFUREMsT0FTQyxRQVREQSxPQVNDO0FBQUEsTUFSREMsU0FRQyxRQVJEQSxTQVFDO0FBQUEsTUFQREMsZ0JBT0MsUUFQREEsZ0JBT0M7QUFBQSxNQU5EQyxVQU1DLFFBTkRBLFVBTUM7QUFBQSxNQUxEQyxRQUtDLFFBTERBLFFBS0M7QUFBQSxNQUpEQyxRQUlDLFFBSkRBLFFBSUM7QUFBQSxNQUhFQyxLQUdGOztBQUNILE1BQU1DLFNBQVMsR0FBRyxvQkFBbEI7QUFFQSxNQUFNQyxHQUFHLEdBQUdaLFlBQVksSUFBSVcsU0FBNUI7QUFFQSxnQ0FBZ0JDLEdBQWhCLEVBQXFCVixZQUFyQjtBQUVBLHNCQUNFO0FBQ0UscUJBQWVELFFBQVEsSUFBSVksU0FEN0I7QUFFRSxJQUFBLFFBQVEsRUFBRVosUUFBUSxHQUFHWSxTQUFILEdBQWVWLFFBRm5DO0FBR0UsSUFBQSxPQUFPLEVBQUVGLFFBQVEsR0FBR1ksU0FBSCxHQUFlVCxPQUhsQztBQUlFLElBQUEsU0FBUyxFQUFFSCxRQUFRLEdBQUdZLFNBQUgsR0FBZVIsU0FKcEM7QUFLRSxJQUFBLGdCQUFnQixFQUFFSixRQUFRLEdBQUdZLFNBQUgsR0FBZVAsZ0JBTDNDO0FBTUUsSUFBQSxVQUFVLEVBQUVMLFFBQVEsR0FBR1ksU0FBSCxHQUFlTixVQU5yQztBQU9FLElBQUEsUUFBUSxFQUFFTixRQUFRLEdBQUdZLFNBQUgsR0FBZUwsUUFQbkM7QUFRRSxJQUFBLFFBQVEsRUFBRVAsUUFSWjtBQVNFLElBQUEsR0FBRyxFQUFFVyxHQVRQO0FBVUUsSUFBQSxRQUFRLEVBQUVYLFFBQVEsR0FBRyxDQUFDLENBQUosR0FBUVE7QUFWNUIsS0FXTUMsS0FYTjtBQVlFLElBQUEsSUFBSSxFQUFDO0FBWlAsS0FERjtBQWdCRCxDQXRDeUIsQ0FBNUI7QUF5Q0FYLG1CQUFtQixDQUFDZSxZQUFwQixHQUFtQztBQUNqQ2IsRUFBQUEsUUFBUSxFQUFFWSxTQUR1QjtBQUVqQ1gsRUFBQUEsWUFBWSxFQUFFVyxTQUZtQjtBQUdqQ1YsRUFBQUEsUUFBUSxFQUFFVSxTQUh1QjtBQUlqQ1QsRUFBQUEsT0FBTyxFQUFFUyxTQUp3QjtBQUtqQ1IsRUFBQUEsU0FBUyxFQUFFUSxTQUxzQjtBQU1qQ1AsRUFBQUEsZ0JBQWdCLEVBQUVPLFNBTmU7QUFPakNOLEVBQUFBLFVBQVUsRUFBRU0sU0FQcUI7QUFRakNMLEVBQUFBLFFBQVEsRUFBRUssU0FSdUI7QUFTakNKLEVBQUFBLFFBQVEsRUFBRUk7QUFUdUIsQ0FBbkM7QUFZQWQsbUJBQW1CLENBQUNnQixXQUFwQixHQUFrQyxxQkFBbEM7QUFFQWhCLG1CQUFtQixDQUFDaUIsU0FBcEIsR0FBZ0M7QUFDOUJmLEVBQUFBLFFBQVEsRUFBRWdCLG1CQUFVQyxJQURVO0FBRTlCaEIsRUFBQUEsWUFBWSxFQUFFZSxtQkFBVUUsTUFGTTtBQUc5QmhCLEVBQUFBLFFBQVEsRUFBRWMsbUJBQVVHLElBSFU7QUFJOUJoQixFQUFBQSxPQUFPLEVBQUVhLG1CQUFVRyxJQUpXO0FBSzlCZixFQUFBQSxTQUFTLEVBQUVZLG1CQUFVRyxJQUxTO0FBTTlCZCxFQUFBQSxnQkFBZ0IsRUFBRVcsbUJBQVVHLElBTkU7QUFPOUJiLEVBQUFBLFVBQVUsRUFBRVUsbUJBQVVHLElBUFE7QUFROUJaLEVBQUFBLFFBQVEsRUFBRVMsbUJBQVVHLElBUlU7QUFTOUJYLEVBQUFBLFFBQVEsRUFBRVEsbUJBQVVJLE1BVFU7QUFVOUJDLEVBQUFBLElBQUksRUFBRUwsbUJBQVVNLEtBQVYsQ0FBZ0IsQ0FBQyxNQUFELENBQWhCLEVBQTBCQztBQVZGLENBQWhDO2VBYWV6QixtQiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWy0xXSB9XSAqL1xuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZUVudGVyS2V5SGludCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VFbnRlcktleUhpbnQnO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDxpbnB1dCB0eXBlPVwidGV4dFwiPiBhbmQgPEFjY2Vzc2libGVJbnB1dFRleHQ+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DaGFuZ2VcIiBoYW5kbGVyXG4vLyAgIC0gV2h5IHRoaXMgaXMgbmVlZGVkXG4vLyAgICAgLSBCcm93c2VyIGNvbXBhdGliaWxpdHk6IHdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZCwgZGlmZmVyZW50IGJyb3dzZXIgc2VuZCBmb2N1cyB0byBkaWZmZXJlbnQgcGxhY2VzXG4vLyAgICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQganVtcCB0byB0aGUgbmV4dCBub24tZGlzYWJsZWQgd2lkZ2V0XG5cbi8vIERldmVsb3BlcnMgdXNpbmcgdGhpcyBhY2Nlc3NpYmxlIHdpZGdldCB3aWxsIG5lZWQgdG86XG4vLyAtIFN0eWxlIHRoZSBkaXNhYmxlZCB3aWRnZXQgdGhlbXNlbHZlcywgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCB0aGUgY29kZSB0aGF0IGNoZWNrcyBkaXNhYmxlZCB0aHJvdWdoIHRoZSBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxuY29uc3QgQWNjZXNzaWJsZUlucHV0VGV4dCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGVudGVyS2V5SGludCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uS2V5RG93bkNhcHR1cmUsXG4gICAgICBvbktleVByZXNzLFxuICAgICAgb25TZWxlY3QsXG4gICAgICB0YWJJbmRleCxcbiAgICAgIC4uLnByb3BzXG4gICAgfSxcbiAgICBmb3J3YXJkZWRSZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdXNlUmVmKCk7XG5cbiAgICBjb25zdCByZWYgPSBmb3J3YXJkZWRSZWYgfHwgdGFyZ2V0UmVmO1xuXG4gICAgdXNlRW50ZXJLZXlIaW50KHJlZiwgZW50ZXJLZXlIaW50KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8aW5wdXRcbiAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkZvY3VzfVxuICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3dufVxuICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uS2V5RG93bkNhcHR1cmV9XG4gICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlQcmVzc31cbiAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25TZWxlY3R9XG4gICAgICAgIHJlYWRPbmx5PXtkaXNhYmxlZH1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHRhYkluZGV4PXtkaXNhYmxlZCA/IC0xIDogdGFiSW5kZXh9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LmRlZmF1bHRQcm9wcyA9IHtcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgZW50ZXJLZXlIaW50OiB1bmRlZmluZWQsXG4gIG9uQ2hhbmdlOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duOiB1bmRlZmluZWQsXG4gIG9uS2V5RG93bkNhcHR1cmU6IHVuZGVmaW5lZCxcbiAgb25LZXlQcmVzczogdW5kZWZpbmVkLFxuICBvblNlbGVjdDogdW5kZWZpbmVkLFxuICB0YWJJbmRleDogdW5kZWZpbmVkXG59O1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LmRpc3BsYXlOYW1lID0gJ0FjY2Vzc2libGVJbnB1dFRleHQnO1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LnByb3BUeXBlcyA9IHtcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBlbnRlcktleUhpbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bkNhcHR1cmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbktleVByZXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFsndGV4dCddKS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY2Nlc3NpYmxlSW5wdXRUZXh0O1xuIl19
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlSW5wdXRUZXh0LnRzeCJdLCJuYW1lcyI6WyJBY2Nlc3NpYmxlSW5wdXRUZXh0IiwiZm9yd2FyZGVkUmVmIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJlbnRlcktleUhpbnQiLCJvbkNoYW5nZSIsIm9uRm9jdXMiLCJvbktleURvd24iLCJvbktleURvd25DYXB0dXJlIiwib25LZXlQcmVzcyIsIm9uU2VsZWN0IiwicGxhY2Vob2xkZXIiLCJyZWFkT25seSIsInRhYkluZGV4IiwidmFsdWUiLCJwcm9wcyIsInRhcmdldFJlZiIsInJlZiIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsImlucHV0TW9kZSIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsIm9uZU9mIiwiZnVuYyIsIm51bWJlciIsInR5cGUiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFTQTs7Ozs7Ozs7Ozs7Ozs7OztBQXNDQSxJQUFNQSxtQkFBbUIsZ0JBQUcsdUJBQzFCLGdCQWlCRUMsWUFqQkYsRUFrQks7QUFBQSxNQWhCREMsU0FnQkMsUUFoQkRBLFNBZ0JDO0FBQUEsTUFmREMsUUFlQyxRQWZEQSxRQWVDO0FBQUEsTUFkREMsWUFjQyxRQWREQSxZQWNDO0FBQUEsTUFiREMsUUFhQyxRQWJEQSxRQWFDO0FBQUEsTUFaREMsT0FZQyxRQVpEQSxPQVlDO0FBQUEsTUFYREMsU0FXQyxRQVhEQSxTQVdDO0FBQUEsTUFWREMsZ0JBVUMsUUFWREEsZ0JBVUM7QUFBQSxNQVREQyxVQVNDLFFBVERBLFVBU0M7QUFBQSxNQVJEQyxRQVFDLFFBUkRBLFFBUUM7QUFBQSxNQVBEQyxXQU9DLFFBUERBLFdBT0M7QUFBQSxNQU5EQyxRQU1DLFFBTkRBLFFBTUM7QUFBQSxNQUxEQyxRQUtDLFFBTERBLFFBS0M7QUFBQSxNQUpEQyxLQUlDLFFBSkRBLEtBSUM7QUFB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WlU7QUFhOUJaLEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVLLE1BYlU7QUFjOUI7QUFDQUMsRUFBQUEsSUFBSSxFQUFFTixtQkFBVUcsS0FBVixDQUFnQixDQUFDLE1BQUQsQ0FBaEIsRUFBMEJJLFVBZkY7QUFnQjlCaEIsRUFBQUEsS0FBSyxFQUFFUyxtQkFBVUM7QUFoQmEsQ0FBaEM7ZUFtQmV4QixtQiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWy0xXSB9XSAqL1xuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIGZvcndhcmRSZWYsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdEV2ZW50SGFuZGxlcixcbiAgdXNlUmVmXG59IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZUVudGVyS2V5SGludCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VFbnRlcktleUhpbnQnO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDxpbnB1dCB0eXBlPVwidGV4dFwiPiBhbmQgPEFjY2Vzc2libGVJbnB1dFRleHQ+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DaGFuZ2VcIiBoYW5kbGVyXG4vLyAgIC0gV2h5IHRoaXMgaXMgbmVlZGVkXG4vLyAgICAgLSBCcm93c2VyIGNvbXBhdGliaWxpdHk6IHdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZCwgZGlmZmVyZW50IGJyb3dzZXIgc2VuZCBmb2N1cyB0byBkaWZmZXJlbnQgcGxhY2VzXG4vLyAgICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQganVtcCB0byB0aGUgbmV4dCBub24tZGlzYWJsZWQgd2lkZ2V0XG5cbi8vIERldmVsb3BlcnMgdXNpbmcgdGhpcyBhY2Nlc3NpYmxlIHdpZGdldCB3aWxsIG5lZWQgdG86XG4vLyAtIFN0eWxlIHRoZSBkaXNhYmxlZCB3aWRnZXQgdGhlbXNlbHZlcywgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCB0aGUgY29kZSB0aGF0IGNoZWNrcyBkaXNhYmxlZCB0aHJvdWdoIHRoZSBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxudHlwZSBBY2Nlc3NpYmxlSW5wdXRUZXh0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBlbnRlcktleUhpbnQ/OiBzdHJpbmc7XG4gIGlucHV0TW9kZT86ICd0ZXh0JyB8ICdub25lJyB8ICd0ZWwnIHwgJ3VybCcgfCAnZW1haWwnIHwgJ251bWVyaWMnIHwgJ2RlY2ltYWwnIHwgJ3NlYXJjaCc7XG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIG9uS2V5RG93bj86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBvbktleURvd25DYXB0dXJlPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIG9uS2V5UHJlc3M/OiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgb25TZWxlY3Q/OiBSZWFjdEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIHR5cGU6ICd0ZXh0JztcbiAgdmFsdWU/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBBY2Nlc3NpYmxlSW5wdXRUZXh0ID0gZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBBY2Nlc3NpYmxlSW5wdXRUZXh0UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgY2xhc3NOYW1lLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBlbnRlcktleUhpbnQsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbktleURvd24sXG4gICAgICBvbktleURvd25DYXB0dXJlLFxuICAgICAgb25LZXlQcmVzcyxcbiAgICAgIG9uU2VsZWN0LFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICByZWFkT25seSxcbiAgICAgIHRhYkluZGV4LFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5wcm9wc1xuICAgIH0sXG4gICAgZm9yd2FyZGVkUmVmXG4gICkgPT4ge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHVzZVJlZigpO1xuXG4gICAgY29uc3QgcmVmID0gZm9yd2FyZGVkUmVmIHx8IHRhcmdldFJlZjtcblxuICAgIHVzZUVudGVyS2V5SGludChyZWYsIGVudGVyS2V5SGludCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uQ2hhbmdlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uQ2hhbmdlfVxuICAgICAgICBvbkZvY3VzPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uRm9jdXN9XG4gICAgICAgIG9uS2V5RG93bj17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbktleURvd259XG4gICAgICAgIG9uS2V5RG93bkNhcHR1cmU9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3duQ2FwdHVyZX1cbiAgICAgICAgb25LZXlQcmVzcz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbktleVByZXNzfVxuICAgICAgICBvblNlbGVjdD17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvblNlbGVjdH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICByZWFkT25seT17cmVhZE9ubHkgfHwgZGlzYWJsZWR9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB0YWJJbmRleD17ZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4fVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIGVudGVyS2V5SGludDogdW5kZWZpbmVkLFxuICBpbnB1dE1vZGU6IHVuZGVmaW5lZCxcbiAgb25DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgb25Gb2N1czogdW5kZWZpbmVkLFxuICBvbktleURvd246IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duQ2FwdHVyZTogdW5kZWZpbmVkLFxuICBvbktleVByZXNzOiB1bmRlZmluZWQsXG4gIG9uU2VsZWN0OiB1bmRlZmluZWQsXG4gIHBsYWNlaG9sZGVyOiB1bmRlZmluZWQsXG4gIHJlYWRPbmx5OiB1bmRlZmluZWQsXG4gIHRhYkluZGV4OiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWRcbn07XG5cbkFjY2Vzc2libGVJbnB1dFRleHQuZGlzcGxheU5hbWUgPSAnQWNjZXNzaWJsZUlucHV0VGV4dCc7XG5cbkFjY2Vzc2libGVJbnB1dFRleHQucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZW50ZXJLZXlIaW50OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnB1dE1vZGU6IFByb3BUeXBlcy5vbmVPZihbJ3RleHQnLCAnbm9uZScsICd0ZWwnLCAndXJsJywgJ2VtYWlsJywgJ251bWVyaWMnLCAnZGVjaW1hbCcsICdzZWFyY2gnXSksXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bkNhcHR1cmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbktleVByZXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICBwbGFjZWhvbGRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgLy8gQHRzLWlnbm9yZSBQcm9wVHlwZXMgYW5kIFR5cGVTY3JpcHQgdHlwZSBkbyBub3Qgd2VsbCB1bmRlcnN0b29kIGVhY2ggb3RoZXIuXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbJ3RleHQnXSkuaXNSZXF1aXJlZCxcbiAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjY2Vzc2libGVJbnB1dFRleHQ7XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import React, { ChangeEventHandler, FocusEventHandler, KeyboardEventHandler, ReactEventHandler } from 'react';
2
+ declare type AccessibleTextAreaProps = {
3
+ className?: string;
4
+ disabled?: boolean;
5
+ inputMode?: 'text' | 'none' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
6
+ onChange?: ChangeEventHandler<HTMLTextAreaElement>;
7
+ onFocus?: FocusEventHandler<HTMLTextAreaElement>;
8
+ onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;
9
+ onKeyDownCapture?: KeyboardEventHandler<HTMLTextAreaElement>;
10
+ onKeyPress?: KeyboardEventHandler<HTMLTextAreaElement>;
11
+ onSelect?: ReactEventHandler<HTMLTextAreaElement>;
12
+ placeholder?: string;
13
+ readOnly?: boolean;
14
+ rows?: number;
15
+ tabIndex?: number;
16
+ value?: string;
17
+ };
18
+ declare const AccessibleTextArea: React.ForwardRefExoticComponent<AccessibleTextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
19
+ export default AccessibleTextArea;
20
+ //# sourceMappingURL=AccessibleTextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessibleTextArea.d.ts","sourceRoot":"","sources":["../../src/Utils/AccessibleTextArea.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,OAAO,CAAC;AAoBf,aAAK,uBAAuB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzF,QAAQ,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,kBAAkB,qGA4CvB,CAAC;AAsCF,eAAe,kBAAkB,CAAC"}
@@ -11,9 +11,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
14
+ var _excluded = ["className", "disabled", "inputMode", "onChange", "onFocus", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onSelect", "placeholder", "readOnly", "rows", "tabIndex"];
15
15
 
16
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
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
+
18
+ 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; }
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
@@ -23,65 +25,74 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
23
25
 
24
26
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
25
27
 
26
- // Differences between <textarea> and <AccessibleTextArea>:
27
- // - Disable behavior
28
- // - When the widget is disabled
29
- // - Set "aria-disabled" attribute to "true"
30
- // - Set "readonly" attribute
31
- // - Set "tabIndex" to -1
32
- // - Remove "onChange" handler
33
- // - Why this is needed
34
- // - Browser compatibility: when the widget is disabled, different browser send focus to different places
35
- // - When the widget is disabled, it's reasonable to keep the focus on the same widget for an extended period of time
36
- // - When the user presses TAB after the current widget is disabled, it should move the focus to the next non-disabled widget
37
- // Developers using this accessible widget will need to:
38
- // - Style the disabled widget themselves using CSS query `:disabled, [aria-disabled="true"] {}`
39
- // - Modify all the code that checks disabled through the "disabled" attribute to use aria-disabled="true" instead
40
- // - aria-disabled="true" is the source of truth
41
- // - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget
42
28
  var AccessibleTextArea = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) {
43
- var disabled = _ref.disabled,
29
+ var className = _ref.className,
30
+ disabled = _ref.disabled,
31
+ inputMode = _ref.inputMode,
44
32
  onChange = _ref.onChange,
45
33
  onFocus = _ref.onFocus,
46
34
  onKeyDown = _ref.onKeyDown,
35
+ onKeyDownCapture = _ref.onKeyDownCapture,
47
36
  onKeyPress = _ref.onKeyPress,
48
37
  onSelect = _ref.onSelect,
38
+ placeholder = _ref.placeholder,
39
+ readOnly = _ref.readOnly,
40
+ rows = _ref.rows,
49
41
  tabIndex = _ref.tabIndex,
50
- props = _objectWithoutProperties(_ref, ["disabled", "onChange", "onFocus", "onKeyDown", "onKeyPress", "onSelect", "tabIndex"]);
42
+ props = _objectWithoutProperties(_ref, _excluded);
51
43
 
52
44
  var targetRef = (0, _react.useRef)();
53
45
  var ref = forwardedRef || targetRef;
54
46
  return /*#__PURE__*/_react.default.createElement("textarea", _extends({
55
47
  "aria-disabled": disabled || undefined,
48
+ className: className,
49
+ inputMode: inputMode,
56
50
  onChange: disabled ? undefined : onChange,
57
51
  onFocus: disabled ? undefined : onFocus,
58
52
  onKeyDown: disabled ? undefined : onKeyDown,
53
+ onKeyDownCapture: disabled ? undefined : onKeyDownCapture,
59
54
  onKeyPress: disabled ? undefined : onKeyPress,
60
55
  onSelect: disabled ? undefined : onSelect,
61
- readOnly: disabled,
56
+ placeholder: placeholder,
57
+ readOnly: readOnly || disabled,
62
58
  ref: ref,
59
+ rows: rows,
63
60
  tabIndex: disabled ? -1 : tabIndex
64
61
  }, props));
65
62
  });
66
63
  AccessibleTextArea.defaultProps = {
64
+ className: undefined,
67
65
  disabled: undefined,
66
+ inputMode: undefined,
68
67
  onChange: undefined,
69
68
  onFocus: undefined,
70
69
  onKeyDown: undefined,
70
+ onKeyDownCapture: undefined,
71
71
  onKeyPress: undefined,
72
72
  onSelect: undefined,
73
- tabIndex: undefined
73
+ placeholder: undefined,
74
+ readOnly: undefined,
75
+ rows: undefined,
76
+ tabIndex: undefined,
77
+ value: undefined
74
78
  };
75
79
  AccessibleTextArea.displayName = 'AccessibleTextArea';
76
80
  AccessibleTextArea.propTypes = {
81
+ className: _propTypes.default.string,
77
82
  disabled: _propTypes.default.bool,
83
+ inputMode: _propTypes.default.oneOf(['text', 'none', 'tel', 'url', 'email', 'numeric', 'decimal', 'search']),
78
84
  onChange: _propTypes.default.func,
79
85
  onFocus: _propTypes.default.func,
80
86
  onKeyDown: _propTypes.default.func,
87
+ onKeyDownCapture: _propTypes.default.func,
81
88
  onKeyPress: _propTypes.default.func,
82
89
  onSelect: _propTypes.default.func,
83
- tabIndex: _propTypes.default.number
90
+ placeholder: _propTypes.default.string,
91
+ readOnly: _propTypes.default.bool,
92
+ rows: _propTypes.default.number,
93
+ tabIndex: _propTypes.default.number,
94
+ value: _propTypes.default.string
84
95
  };
85
96
  var _default = AccessibleTextArea;
86
97
  exports.default = _default;
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlVGV4dEFyZWEuanMiXSwibmFtZXMiOlsiQWNjZXNzaWJsZVRleHRBcmVhIiwiZm9yd2FyZGVkUmVmIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsIm9uRm9jdXMiLCJvbktleURvd24iLCJvbktleVByZXNzIiwib25TZWxlY3QiLCJ0YWJJbmRleCIsInByb3BzIiwidGFyZ2V0UmVmIiwicmVmIiwidW5kZWZpbmVkIiwiZGVmYXVsdFByb3BzIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwiZnVuYyIsIm51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxrQkFBa0IsZ0JBQUcsdUJBQ3pCLGdCQUF1RkMsWUFBdkYsRUFBd0c7QUFBQSxNQUFyR0MsUUFBcUcsUUFBckdBLFFBQXFHO0FBQUEsTUFBM0ZDLFFBQTJGLFFBQTNGQSxRQUEyRjtBQUFBLE1BQWpGQyxPQUFpRixRQUFqRkEsT0FBaUY7QUFBQSxNQUF4RUMsU0FBd0UsUUFBeEVBLFNBQXdFO0FBQUEsTUFBN0RDLFVBQTZELFFBQTdEQSxVQUE2RDtBQUFBLE1BQWpEQyxRQUFpRCxRQUFqREEsUUFBaUQ7QUFBQSxNQUF2Q0MsUUFBdUMsUUFBdkNBLFFBQXVDO0FBQUEsTUFBMUJDLEtBQTBCOztBQUN0RyxNQUFNQyxTQUFTLEdBQUcsb0JBQWxCO0FBRUEsTUFBTUMsR0FBRyxHQUFHVixZQUFZLElBQUlTLFNBQTVCO0FBRUEsc0JBQ0U7QUFDRSxxQkFBZVIsUUFBUSxJQUFJVSxTQUQ3QjtBQUVFLElBQUEsUUFBUSxFQUFFVixRQUFRLEdBQUdVLFNBQUgsR0FBZVQsUUFGbkM7QUFHRSxJQUFBLE9BQU8sRUFBRUQsUUFBUSxHQUFHVSxTQUFILEdBQWVSLE9BSGxDO0FBSUUsSUFBQSxTQUFTLEVBQUVGLFFBQVEsR0FBR1UsU0FBSCxHQUFlUCxTQUpwQztBQUtFLElBQUEsVUFBVSxFQUFFSCxRQUFRLEdBQUdVLFNBQUgsR0FBZU4sVUFMckM7QUFNRSxJQUFBLFFBQVEsRUFBRUosUUFBUSxHQUFHVSxTQUFILEdBQWVMLFFBTm5DO0FBT0UsSUFBQSxRQUFRLEVBQUVMLFFBUFo7QUFRRSxJQUFBLEdBQUcsRUFBRVMsR0FSUDtBQVNFLElBQUEsUUFBUSxFQUFFVCxRQUFRLEdBQUcsQ0FBQyxDQUFKLEdBQVFNO0FBVDVCLEtBVU1DLEtBVk4sRUFERjtBQWNELENBcEJ3QixDQUEzQjtBQXVCQVQsa0JBQWtCLENBQUNhLFlBQW5CLEdBQWtDO0FBQ2hDWCxFQUFBQSxRQUFRLEVBQUVVLFNBRHNCO0FBRWhDVCxFQUFBQSxRQUFRLEVBQUVTLFNBRnNCO0FBR2hDUixFQUFBQSxPQUFPLEVBQUVRLFNBSHVCO0FBSWhDUCxFQUFBQSxTQUFTLEVBQUVPLFNBSnFCO0FBS2hDTixFQUFBQSxVQUFVLEVBQUVNLFNBTG9CO0FBTWhDTCxFQUFBQSxRQUFRLEVBQUVLLFNBTnNCO0FBT2hDSixFQUFBQSxRQUFRLEVBQUVJO0FBUHNCLENBQWxDO0FBVUFaLGtCQUFrQixDQUFDYyxXQUFuQixHQUFpQyxvQkFBakM7QUFFQWQsa0JBQWtCLENBQUNlLFNBQW5CLEdBQStCO0FBQzdCYixFQUFBQSxRQUFRLEVBQUVjLG1CQUFVQyxJQURTO0FBRTdCZCxFQUFBQSxRQUFRLEVBQUVhLG1CQUFVRSxJQUZTO0FBRzdCZCxFQUFBQSxPQUFPLEVBQUVZLG1CQUFVRSxJQUhVO0FBSTdCYixFQUFBQSxTQUFTLEVBQUVXLG1CQUFVRSxJQUpRO0FBSzdCWixFQUFBQSxVQUFVLEVBQUVVLG1CQUFVRSxJQUxPO0FBTTdCWCxFQUFBQSxRQUFRLEVBQUVTLG1CQUFVRSxJQU5TO0FBTzdCVixFQUFBQSxRQUFRLEVBQUVRLG1CQUFVRztBQVBTLENBQS9CO2VBVWVuQixrQiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWy0xXSB9XSAqL1xuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuLy8gRGlmZmVyZW5jZXMgYmV0d2VlbiA8dGV4dGFyZWE+IGFuZCA8QWNjZXNzaWJsZVRleHRBcmVhPjpcbi8vIC0gRGlzYWJsZSBiZWhhdmlvclxuLy8gICAtIFdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZFxuLy8gICAgIC0gU2V0IFwiYXJpYS1kaXNhYmxlZFwiIGF0dHJpYnV0ZSB0byBcInRydWVcIlxuLy8gICAgIC0gU2V0IFwicmVhZG9ubHlcIiBhdHRyaWJ1dGVcbi8vICAgICAtIFNldCBcInRhYkluZGV4XCIgdG8gLTFcbi8vICAgICAtIFJlbW92ZSBcIm9uQ2hhbmdlXCIgaGFuZGxlclxuLy8gICAtIFdoeSB0aGlzIGlzIG5lZWRlZFxuLy8gICAgIC0gQnJvd3NlciBjb21wYXRpYmlsaXR5OiB3aGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGRpZmZlcmVudCBicm93c2VyIHNlbmQgZm9jdXMgdG8gZGlmZmVyZW50IHBsYWNlc1xuLy8gICAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCdzIHJlYXNvbmFibGUgdG8ga2VlcCB0aGUgZm9jdXMgb24gdGhlIHNhbWUgd2lkZ2V0IGZvciBhbiBleHRlbmRlZCBwZXJpb2Qgb2YgdGltZVxuLy8gICAgICAgLSBXaGVuIHRoZSB1c2VyIHByZXNzZXMgVEFCIGFmdGVyIHRoZSBjdXJyZW50IHdpZGdldCBpcyBkaXNhYmxlZCwgaXQgc2hvdWxkIG1vdmUgdGhlIGZvY3VzIHRvIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCB3aWRnZXRcblxuLy8gRGV2ZWxvcGVycyB1c2luZyB0aGlzIGFjY2Vzc2libGUgd2lkZ2V0IHdpbGwgbmVlZCB0bzpcbi8vIC0gU3R5bGUgdGhlIGRpc2FibGVkIHdpZGdldCB0aGVtc2VsdmVzIHVzaW5nIENTUyBxdWVyeSBgOmRpc2FibGVkLCBbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0ge31gXG4vLyAtIE1vZGlmeSBhbGwgdGhlIGNvZGUgdGhhdCBjaGVja3MgZGlzYWJsZWQgdGhyb3VnaCB0aGUgXCJkaXNhYmxlZFwiIGF0dHJpYnV0ZSB0byB1c2UgYXJpYS1kaXNhYmxlZD1cInRydWVcIiBpbnN0ZWFkXG4vLyAgIC0gYXJpYS1kaXNhYmxlZD1cInRydWVcIiBpcyB0aGUgc291cmNlIG9mIHRydXRoXG4vLyAtIElmIHRoZSB3aWRnZXQgaXMgY29udGFpbmVkIGJ5IGEgPGZvcm0+LCB0aGUgZGV2ZWxvcGVyIG5lZWQgdG8gZmlsdGVyIG91dCBzb21lIGBvblN1Ym1pdGAgZXZlbnQgY2F1c2VkIGJ5IHRoaXMgd2lkZ2V0XG5cbmNvbnN0IEFjY2Vzc2libGVUZXh0QXJlYSA9IGZvcndhcmRSZWYoXG4gICh7IGRpc2FibGVkLCBvbkNoYW5nZSwgb25Gb2N1cywgb25LZXlEb3duLCBvbktleVByZXNzLCBvblNlbGVjdCwgdGFiSW5kZXgsIC4uLnByb3BzIH0sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHVzZVJlZigpO1xuXG4gICAgY29uc3QgcmVmID0gZm9yd2FyZGVkUmVmIHx8IHRhcmdldFJlZjtcblxuICAgIHJldHVybiAoXG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkZvY3VzfVxuICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3dufVxuICAgICAgICBvbktleVByZXNzPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uS2V5UHJlc3N9XG4gICAgICAgIG9uU2VsZWN0PXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uU2VsZWN0fVxuICAgICAgICByZWFkT25seT17ZGlzYWJsZWR9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB0YWJJbmRleD17ZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4fVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkFjY2Vzc2libGVUZXh0QXJlYS5kZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIG9uQ2hhbmdlOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duOiB1bmRlZmluZWQsXG4gIG9uS2V5UHJlc3M6IHVuZGVmaW5lZCxcbiAgb25TZWxlY3Q6IHVuZGVmaW5lZCxcbiAgdGFiSW5kZXg6IHVuZGVmaW5lZFxufTtcblxuQWNjZXNzaWJsZVRleHRBcmVhLmRpc3BsYXlOYW1lID0gJ0FjY2Vzc2libGVUZXh0QXJlYSc7XG5cbkFjY2Vzc2libGVUZXh0QXJlYS5wcm9wVHlwZXMgPSB7XG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlQcmVzczogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXJcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjY2Vzc2libGVUZXh0QXJlYTtcbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlVGV4dEFyZWEudHN4Il0sIm5hbWVzIjpbIkFjY2Vzc2libGVUZXh0QXJlYSIsImZvcndhcmRlZFJlZiIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaW5wdXRNb2RlIiwib25DaGFuZ2UiLCJvbkZvY3VzIiwib25LZXlEb3duIiwib25LZXlEb3duQ2FwdHVyZSIsIm9uS2V5UHJlc3MiLCJvblNlbGVjdCIsInBsYWNlaG9sZGVyIiwicmVhZE9ubHkiLCJyb3dzIiwidGFiSW5kZXgiLCJwcm9wcyIsInRhcmdldFJlZiIsInJlZiIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsInZhbHVlIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJib29sIiwib25lT2YiLCJmdW5jIiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQTRDQSxJQUFNQSxrQkFBa0IsZ0JBQUcsdUJBQ3pCLGdCQWlCRUMsWUFqQkYsRUFrQks7QUFBQSxNQWhCREMsU0FnQkMsUUFoQkRBLFNBZ0JDO0FBQUEsTUFmREMsUUFlQyxRQWZEQSxRQWVDO0FBQUEsTUFkREMsU0FjQyxRQWREQSxTQWNDO0FBQUEsTUFiREMsUUFhQyxRQWJEQSxRQWFDO0FBQUEsTUFaREMsT0FZQyxRQVpEQSxPQVlDO0FBQUEsTUFYREMsU0FXQyxRQVhEQSxTQVdDO0FBQUEsTUFWREMsZ0JBVUMsUUFWREEsZ0JBVUM7QUFBQSxNQVREQyxVQVNDLFFBVERBLFVBU0M7QUFBQSxNQVJEQyxRQVFDLFFBUkRBLFFBUUM7QUFBQSxNQVBEQyxXQU9DLFFBUERBLFdBT0M7QUFBQSxNQU5EQyxRQU1DLFFBTkRBLFFBTUM7QUFBQSxNQUxEQyxJQUtDLFFBTERBLElBS0M7QUFBQSxNQUpEQyxRQUlDLFFBSkRBLFFBSUM7QUFBQSxNQUhFQyxLQUdGOztBQUNILE1BQU1DLFNBQVMsR0FBRyxv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VUM7QUFkWSxDQUEvQjtlQWlCZXhCLGtCIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTFdIH1dICovXG5cbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBGb2N1c0V2ZW50SGFuZGxlcixcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlYWN0RXZlbnRIYW5kbGVyLFxuICB1c2VSZWZcbn0gZnJvbSAncmVhY3QnO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDx0ZXh0YXJlYT4gYW5kIDxBY2Nlc3NpYmxlVGV4dEFyZWE+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DaGFuZ2VcIiBoYW5kbGVyXG4vLyAgIC0gV2h5IHRoaXMgaXMgbmVlZGVkXG4vLyAgICAgLSBCcm93c2VyIGNvbXBhdGliaWxpdHk6IHdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZCwgZGlmZmVyZW50IGJyb3dzZXIgc2VuZCBmb2N1cyB0byBkaWZmZXJlbnQgcGxhY2VzXG4vLyAgICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQgbW92ZSB0aGUgZm9jdXMgdG8gdGhlIG5leHQgbm9uLWRpc2FibGVkIHdpZGdldFxuXG4vLyBEZXZlbG9wZXJzIHVzaW5nIHRoaXMgYWNjZXNzaWJsZSB3aWRnZXQgd2lsbCBuZWVkIHRvOlxuLy8gLSBTdHlsZSB0aGUgZGlzYWJsZWQgd2lkZ2V0IHRoZW1zZWx2ZXMgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCB0aGUgY29kZSB0aGF0IGNoZWNrcyBkaXNhYmxlZCB0aHJvdWdoIHRoZSBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxudHlwZSBBY2Nlc3NpYmxlVGV4dEFyZWFQcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlucHV0TW9kZT86ICd0ZXh0JyB8ICdub25lJyB8ICd0ZWwnIHwgJ3VybCcgfCAnZW1haWwnIHwgJ251bWVyaWMnIHwgJ2RlY2ltYWwnIHwgJ3NlYXJjaCc7XG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIG9uS2V5RG93bj86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICBvbktleURvd25DYXB0dXJlPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIG9uS2V5UHJlc3M/OiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgb25TZWxlY3Q/OiBSZWFjdEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgcm93cz86IG51bWJlcjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIHZhbHVlPzogc3RyaW5nO1xufTtcblxuY29uc3QgQWNjZXNzaWJsZVRleHRBcmVhID0gZm9yd2FyZFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50LCBBY2Nlc3NpYmxlVGV4dEFyZWFQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjbGFzc05hbWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGlucHV0TW9kZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uS2V5RG93bkNhcHR1cmUsXG4gICAgICBvbktleVByZXNzLFxuICAgICAgb25TZWxlY3QsXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgcm93cyxcbiAgICAgIHRhYkluZGV4LFxuICAgICAgLi4ucHJvcHNcbiAgICB9LFxuICAgIGZvcndhcmRlZFJlZlxuICApID0+IHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB1c2VSZWYoKTtcblxuICAgIGNvbnN0IHJlZiA9IGZvcndhcmRlZFJlZiB8fCB0YXJnZXRSZWY7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIGlucHV0TW9kZT17aW5wdXRNb2RlfVxuICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkZvY3VzfVxuICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3dufVxuICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uS2V5RG93bkNhcHR1cmV9XG4gICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlQcmVzc31cbiAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25TZWxlY3R9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5IHx8IGRpc2FibGVkfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgdGFiSW5kZXg9e2Rpc2FibGVkID8gLTEgOiB0YWJJbmRleH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlVGV4dEFyZWEuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgaW5wdXRNb2RlOiB1bmRlZmluZWQsXG4gIG9uQ2hhbmdlOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duOiB1bmRlZmluZWQsXG4gIG9uS2V5RG93bkNhcHR1cmU6IHVuZGVmaW5lZCxcbiAgb25LZXlQcmVzczogdW5kZWZpbmVkLFxuICBvblNlbGVjdDogdW5kZWZpbmVkLFxuICBwbGFjZWhvbGRlcjogdW5kZWZpbmVkLFxuICByZWFkT25seTogdW5kZWZpbmVkLFxuICByb3dzOiB1bmRlZmluZWQsXG4gIHRhYkluZGV4OiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWRcbn07XG5cbkFjY2Vzc2libGVUZXh0QXJlYS5kaXNwbGF5TmFtZSA9ICdBY2Nlc3NpYmxlVGV4dEFyZWEnO1xuXG5BY2Nlc3NpYmxlVGV4dEFyZWEucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaW5wdXRNb2RlOiBQcm9wVHlwZXMub25lT2YoWyd0ZXh0JywgJ25vbmUnLCAndGVsJywgJ3VybCcsICdlbWFpbCcsICdudW1lcmljJywgJ2RlY2ltYWwnLCAnc2VhcmNoJ10pLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLFxuICBvbktleURvd25DYXB0dXJlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlQcmVzczogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgcm93czogUHJvcFR5cGVzLm51bWJlcixcbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY2Nlc3NpYmxlVGV4dEFyZWE7XG4iXX0=
@@ -15,9 +15,9 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
17
17
 
18
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
18
+ 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); }
19
19
 
20
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
20
+ 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; }
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
package/lib/Utils/Fade.js CHANGED
@@ -19,7 +19,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
19
19
 
20
20
  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; }
21
21
 
22
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }
22
+ 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; }
23
23
 
24
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
25
 
@@ -56,4 +56,4 @@ Fade.propTypes = {
56
56
  };
57
57
  var _default = Fade;
58
58
  exports.default = _default;
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9GYWRlLmpzIl0sIm5hbWVzIjpbIkZhZGUiLCJjaGlsZHJlbiIsImZhZGVBZnRlciIsImZhZGVkIiwic2V0RmFkZWQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsImVsZW1lbnQiLCJmdW5jIiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0EsSUFBTUEsSUFBSSxHQUFHLFNBQVBBLElBQU8sT0FBNkI7QUFBQSxNQUExQkMsUUFBMEIsUUFBMUJBLFFBQTBCO0FBQUEsTUFBaEJDLFNBQWdCLFFBQWhCQSxTQUFnQjs7QUFBQSxrQkFDZCxxQkFBUyxLQUFULENBRGM7QUFBQTtBQUFBLE1BQ2pDQyxLQURpQztBQUFBLE1BQzFCQyxRQUQwQjs7QUFHeEMsOEJBQWdCLFlBQU07QUFDcEJBLElBQUFBLFFBQVEsQ0FBQyxLQUFELENBQVI7QUFFQSxRQUFNQyxPQUFPLEdBQUdDLFVBQVUsQ0FBQztBQUFBLGFBQU1GLFFBQVEsQ0FBQyxJQUFELENBQWQ7QUFBQSxLQUFELEVBQXVCRixTQUF2QixDQUExQjtBQUVBLFdBQU87QUFBQSxhQUFNSyxZQUFZLENBQUNGLE9BQUQsQ0FBbEI7QUFBQSxLQUFQO0FBQ0QsR0FORCxFQU1HLENBQUNILFNBQUQsQ0FOSDtBQVFBLFNBQU8sQ0FBQ0MsS0FBRCxLQUFXLE9BQU9GLFFBQVAsS0FBb0IsVUFBcEIsR0FBaUNBLFFBQVEsRUFBekMsR0FBOENBLFFBQXpELENBQVA7QUFDRCxDQVpEOztBQWNBRCxJQUFJLENBQUNRLFlBQUwsR0FBb0I7QUFDbEJQLEVBQUFBLFFBQVEsRUFBRVEsU0FEUTtBQUVsQlAsRUFBQUEsU0FBUyxFQUFFO0FBRk8sQ0FBcEI7QUFLQUYsSUFBSSxDQUFDVSxTQUFMLEdBQWlCO0FBQ2ZULEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVDLFNBQVYsQ0FBb0IsQ0FBQ0QsbUJBQVVFLE9BQVgsRUFBb0JGLG1CQUFVRyxJQUE5QixDQUFwQixDQURLO0FBRWZaLEVBQUFBLFNBQVMsRUFBRVMsbUJBQVVJO0FBRk4sQ0FBakI7ZUFLZWYsSSIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbi8vIEluaXRpYWxseSwgPEZhZGU+IHdpbGwgcmVuZGVyIGFsbCBvZiBpdHMgY2hpbGRyZW4uXG4vLyBBZnRlciBhIHBlcmlvZCBvZiB0aW1lIChzcGVjaWZpZWQgdGhyb3VnaCB0aGUgXCJmYWRlQWZ0ZXJcIiBwcm9wKSwgPEZhZGU+IHdpbGwgc3RvcCByZW5kZXJpbmcgaXRzIGNoaWxkcmVuIGFuZCByZW1vdmluZyBpdCBmcm9tIERPTS5cbmNvbnN0IEZhZGUgPSAoeyBjaGlsZHJlbiwgZmFkZUFmdGVyIH0pID0+IHtcbiAgY29uc3QgW2ZhZGVkLCBzZXRGYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBzZXRGYWRlZChmYWxzZSk7XG5cbiAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiBzZXRGYWRlZCh0cnVlKSwgZmFkZUFmdGVyKTtcblxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gIH0sIFtmYWRlQWZ0ZXJdKTtcblxuICByZXR1cm4gIWZhZGVkICYmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbigpIDogY2hpbGRyZW4pO1xufTtcblxuRmFkZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGZhZGVBZnRlcjogMTAwMFxufTtcblxuRmFkZS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgZmFkZUFmdGVyOiBQcm9wVHlwZXMubnVtYmVyXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGYWRlO1xuIl19
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9GYWRlLmpzIl0sIm5hbWVzIjpbIkZhZGUiLCJjaGlsZHJlbiIsImZhZGVBZnRlciIsImZhZGVkIiwic2V0RmFkZWQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsImVsZW1lbnQiLCJmdW5jIiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0EsSUFBTUEsSUFBSSxHQUFHLFNBQVBBLElBQU8sT0FBNkI7QUFBQSxNQUExQkMsUUFBMEIsUUFBMUJBLFFBQTBCO0FBQUEsTUFBaEJDLFNBQWdCLFFBQWhCQSxTQUFnQjs7QUFDeEMsa0JBQTBCLHFCQUFTLEtBQVQsQ0FBMUI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7QUFBQSxNQUFjQyxRQUFkOztBQUVBLDhCQUFnQixZQUFNO0FBQ3BCQSxJQUFBQSxRQUFRLENBQUMsS0FBRCxDQUFSO0FBRUEsUUFBTUMsT0FBTyxHQUFHQyxVQUFVLENBQUM7QUFBQSxhQUFNRixRQUFRLENBQUMsSUFBRCxDQUFkO0FBQUEsS0FBRCxFQUF1QkYsU0FBdkIsQ0FBMUI7QUFFQSxXQUFPO0FBQUEsYUFBTUssWUFBWSxDQUFDRixPQUFELENBQWxCO0FBQUEsS0FBUDtBQUNELEdBTkQsRUFNRyxDQUFDSCxTQUFELENBTkg7QUFRQSxTQUFPLENBQUNDLEtBQUQsS0FBVyxPQUFPRixRQUFQLEtBQW9CLFVBQXBCLEdBQWlDQSxRQUFRLEVBQXpDLEdBQThDQSxRQUF6RCxDQUFQO0FBQ0QsQ0FaRDs7QUFjQUQsSUFBSSxDQUFDUSxZQUFMLEdBQW9CO0FBQ2xCUCxFQUFBQSxRQUFRLEVBQUVRLFNBRFE7QUFFbEJQLEVBQUFBLFNBQVMsRUFBRTtBQUZPLENBQXBCO0FBS0FGLElBQUksQ0FBQ1UsU0FBTCxHQUFpQjtBQUNmVCxFQUFBQSxRQUFRLEVBQUVVLG1CQUFVQyxTQUFWLENBQW9CLENBQUNELG1CQUFVRSxPQUFYLEVBQW9CRixtQkFBVUcsSUFBOUIsQ0FBcEIsQ0FESztBQUVmWixFQUFBQSxTQUFTLEVBQUVTLG1CQUFVSTtBQUZOLENBQWpCO2VBS2VmLEkiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG4vLyBJbml0aWFsbHksIDxGYWRlPiB3aWxsIHJlbmRlciBhbGwgb2YgaXRzIGNoaWxkcmVuLlxuLy8gQWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZSAoc3BlY2lmaWVkIHRocm91Z2ggdGhlIFwiZmFkZUFmdGVyXCIgcHJvcCksIDxGYWRlPiB3aWxsIHN0b3AgcmVuZGVyaW5nIGl0cyBjaGlsZHJlbiBhbmQgcmVtb3ZpbmcgaXQgZnJvbSBET00uXG5jb25zdCBGYWRlID0gKHsgY2hpbGRyZW4sIGZhZGVBZnRlciB9KSA9PiB7XG4gIGNvbnN0IFtmYWRlZCwgc2V0RmFkZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RmFkZWQoZmFsc2UpO1xuXG4gICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0RmFkZWQodHJ1ZSksIGZhZGVBZnRlcik7XG5cbiAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICB9LCBbZmFkZUFmdGVyXSk7XG5cbiAgcmV0dXJuICFmYWRlZCAmJiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4oKSA6IGNoaWxkcmVuKTtcbn07XG5cbkZhZGUuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBmYWRlQWZ0ZXI6IDEwMDBcbn07XG5cbkZhZGUucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmVsZW1lbnQsIFByb3BUeXBlcy5mdW5jXSksXG4gIGZhZGVBZnRlcjogUHJvcFR5cGVzLm51bWJlclxufTtcblxuZXhwb3J0IGRlZmF1bHQgRmFkZTtcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import type { FC, MutableRefObject } from 'react';
2
+ declare type FocusRedirectorProps = {
3
+ className?: string;
4
+ onFocus?: () => void;
5
+ redirectRef?: MutableRefObject<HTMLElement>;
6
+ };
7
+ declare const FocusRedirector: FC<FocusRedirectorProps>;
8
+ export default FocusRedirector;
9
+ //# sourceMappingURL=FocusRedirector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusRedirector.d.ts","sourceRoot":"","sources":["../../src/Utils/FocusRedirector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAWlD,aAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAW7C,CAAC;AAkBF,eAAe,eAAe,CAAC"}
@@ -11,28 +11,28 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
14
+ 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); }
15
15
 
16
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
16
+ 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; }
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- // This is an element, when focused, will send the focus to the ref specified in "redirectRef".
21
- // Although the focus is being redirected, browser will scroll this redirector element into view.
22
- // Browser's "scrollIntoView()" call cannot be prevented through event.preventDefault() in both
23
- // bubble and capture phase of "focus" event.
24
- // When this focus redirector is put inside a scrollable container, you may want to resize or reposition
25
- // it to prevent unintentional scroll done by the browser default behavior.
26
20
  var FocusRedirector = function FocusRedirector(_ref) {
27
21
  var className = _ref.className,
28
22
  onFocus = _ref.onFocus,
29
23
  redirectRef = _ref.redirectRef;
30
24
  var handleFocus = (0, _react.useCallback)(function () {
31
- var current = redirectRef.current;
32
- current && current.focus();
25
+ var _redirectRef$current;
26
+
27
+ redirectRef === null || redirectRef === void 0 ? void 0 : (_redirectRef$current = redirectRef.current) === null || _redirectRef$current === void 0 ? void 0 : _redirectRef$current.focus();
33
28
  onFocus && onFocus();
34
- }, [onFocus, redirectRef]);
29
+ }, [onFocus, redirectRef]); // For NVDA, we should set aria-hidden="true".
30
+ // When using NVDA in browse mode, press up/down arrow keys will focus on this redirector.
31
+ // This redirector is designed to capture TAB only and should not react on browse mode.
32
+ // However, reacting with browse mode is currently okay. Just better to leave it alone.
33
+
35
34
  return /*#__PURE__*/_react.default.createElement("div", {
35
+ "aria-hidden": "true",
36
36
  className: className,
37
37
  onFocus: handleFocus,
38
38
  tabIndex: 0
@@ -41,15 +41,18 @@ var FocusRedirector = function FocusRedirector(_ref) {
41
41
 
42
42
  FocusRedirector.defaultProps = {
43
43
  className: undefined,
44
- onFocus: undefined
44
+ onFocus: undefined,
45
+ redirectRef: undefined
45
46
  };
46
47
  FocusRedirector.propTypes = {
47
48
  className: _propTypes.default.string,
48
49
  onFocus: _propTypes.default.func,
50
+ // PropTypes is not fully compatible with TypeScript.
51
+ // @ts-ignore
49
52
  redirectRef: _propTypes.default.shape({
50
- current: _propTypes.default.any
51
- }).isRequired
53
+ current: _propTypes.default.instanceOf(HTMLElement)
54
+ })
52
55
  };
53
56
  var _default = FocusRedirector;
54
57
  exports.default = _default;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9Gb2N1c1JlZGlyZWN0b3IuanMiXSwibmFtZXMiOlsiRm9jdXNSZWRpcmVjdG9yIiwiY2xhc3NOYW1lIiwib25Gb2N1cyIsInJlZGlyZWN0UmVmIiwiaGFuZGxlRm9jdXMiLCJjdXJyZW50IiwiZm9jdXMiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwic2hhcGUiLCJhbnkiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQSxJQUFNQSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLE9BQXlDO0FBQUEsTUFBdENDLFNBQXNDLFFBQXRDQSxTQUFzQztBQUFBLE1BQTNCQyxPQUEyQixRQUEzQkEsT0FBMkI7QUFBQSxNQUFsQkMsV0FBa0IsUUFBbEJBLFdBQWtCO0FBQy9ELE1BQU1DLFdBQVcsR0FBRyx3QkFBWSxZQUFNO0FBQUEsUUFDNUJDLE9BRDRCLEdBQ2hCRixXQURnQixDQUM1QkUsT0FENEI7QUFHcENBLElBQUFBLE9BQU8sSUFBSUEsT0FBTyxDQUFDQyxLQUFSLEVBQVg7QUFDQUosSUFBQUEsT0FBTyxJQUFJQSxPQUFPLEVBQWxCO0FBQ0QsR0FMbUIsRUFLakIsQ0FBQ0EsT0FBRCxFQUFVQyxXQUFWLENBTGlCLENBQXBCO0FBT0Esc0JBQU87QUFBSyxJQUFBLFNBQVMsRUFBRUYsU0FBaEI7QUFBMkIsSUFBQSxPQUFPLEVBQUVHLFdBQXBDO0FBQWlELElBQUEsUUFBUSxFQUFFO0FBQTNELElBQVA7QUFDRCxDQVREOztBQVdBSixlQUFlLENBQUNPLFlBQWhCLEdBQStCO0FBQzdCTixFQUFBQSxTQUFTLEVBQUVPLFNBRGtCO0FBRTdCTixFQUFBQSxPQUFPLEVBQUVNO0FBRm9CLENBQS9CO0FBS0FSLGVBQWUsQ0FBQ1MsU0FBaEIsR0FBNEI7QUFDMUJSLEVBQUFBLFNBQVMsRUFBRVMsbUJBQVVDLE1BREs7QUFFMUJULEVBQUFBLE9BQU8sRUFBRVEsbUJBQVVFLElBRk87QUFHMUJULEVBQUFBLFdBQVcsRUFBRU8sbUJBQVVHLEtBQVYsQ0FBZ0I7QUFDM0JSLElBQUFBLE9BQU8sRUFBRUssbUJBQVVJO0FBRFEsR0FBaEIsRUFFVkM7QUFMdUIsQ0FBNUI7ZUFRZWYsZSIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcblxuLy8gVGhpcyBpcyBhbiBlbGVtZW50LCB3aGVuIGZvY3VzZWQsIHdpbGwgc2VuZCB0aGUgZm9jdXMgdG8gdGhlIHJlZiBzcGVjaWZpZWQgaW4gXCJyZWRpcmVjdFJlZlwiLlxuLy8gQWx0aG91Z2ggdGhlIGZvY3VzIGlzIGJlaW5nIHJlZGlyZWN0ZWQsIGJyb3dzZXIgd2lsbCBzY3JvbGwgdGhpcyByZWRpcmVjdG9yIGVsZW1lbnQgaW50byB2aWV3LlxuXG4vLyBCcm93c2VyJ3MgXCJzY3JvbGxJbnRvVmlldygpXCIgY2FsbCBjYW5ub3QgYmUgcHJldmVudGVkIHRocm91Z2ggZXZlbnQucHJldmVudERlZmF1bHQoKSBpbiBib3RoXG4vLyBidWJibGUgYW5kIGNhcHR1cmUgcGhhc2Ugb2YgXCJmb2N1c1wiIGV2ZW50LlxuXG4vLyBXaGVuIHRoaXMgZm9jdXMgcmVkaXJlY3RvciBpcyBwdXQgaW5zaWRlIGEgc2Nyb2xsYWJsZSBjb250YWluZXIsIHlvdSBtYXkgd2FudCB0byByZXNpemUgb3IgcmVwb3NpdGlvblxuLy8gaXQgdG8gcHJldmVudCB1bmludGVudGlvbmFsIHNjcm9sbCBkb25lIGJ5IHRoZSBicm93c2VyIGRlZmF1bHQgYmVoYXZpb3IuXG5cbmNvbnN0IEZvY3VzUmVkaXJlY3RvciA9ICh7IGNsYXNzTmFtZSwgb25Gb2N1cywgcmVkaXJlY3RSZWYgfSkgPT4ge1xuICBjb25zdCBoYW5kbGVGb2N1cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHJlZGlyZWN0UmVmO1xuXG4gICAgY3VycmVudCAmJiBjdXJyZW50LmZvY3VzKCk7XG4gICAgb25Gb2N1cyAmJiBvbkZvY3VzKCk7XG4gIH0sIFtvbkZvY3VzLCByZWRpcmVjdFJlZl0pO1xuXG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBvbkZvY3VzPXtoYW5kbGVGb2N1c30gdGFiSW5kZXg9ezB9IC8+O1xufTtcblxuRm9jdXNSZWRpcmVjdG9yLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZFxufTtcblxuRm9jdXNSZWRpcmVjdG9yLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVkaXJlY3RSZWY6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY3VycmVudDogUHJvcFR5cGVzLmFueVxuICB9KS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb2N1c1JlZGlyZWN0b3I7XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9Gb2N1c1JlZGlyZWN0b3IudHN4Il0sIm5hbWVzIjpbIkZvY3VzUmVkaXJlY3RvciIsImNsYXNzTmFtZSIsIm9uRm9jdXMiLCJyZWRpcmVjdFJlZiIsImhhbmRsZUZvY3VzIiwiY3VycmVudCIsImZvY3VzIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiZnVuYyIsInNoYXBlIiwiaW5zdGFuY2VPZiIsIkhUTUxFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7QUFtQkEsSUFBTUEsZUFBeUMsR0FBRyxTQUE1Q0EsZUFBNEMsT0FBeUM7QUFBQSxNQUF0Q0MsU0FBc0MsUUFBdENBLFNBQXNDO0FBQUEsTUFBM0JDLE9BQTJCLFFBQTNCQSxPQUEyQjtBQUFBLE1BQWxCQyxXQUFrQixRQUFsQkEsV0FBa0I7QUFDekYsTUFBTUMsV0FBVyxHQUFHLHdCQUFZLFlBQU07QUFBQTs7QUFDcENELElBQUFBLFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsb0NBQUFBLFdBQVcsQ0FBRUUsT0FBYiw4RUFBc0JDLEtBQXRCO0FBQ0FKLElBQUFBLE9BQU8sSUFBSUEsT0FBTyxFQUFsQjtBQUNELEdBSG1CLEVBR2pCLENBQUNBLE9BQUQsRUFBVUMsV0FBVixDQUhpQixDQUFwQixDQUR5RixDQU16RjtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxzQkFBTztBQUFLLG1CQUFZLE1BQWpCO0FBQXdCLElBQUEsU0FBUyxFQUFFRixTQUFuQztBQUE4QyxJQUFBLE9BQU8sRUFBRUcsV0FBdkQ7QUFBb0UsSUFBQSxRQUFRLEVBQUU7QUFBOUUsSUFBUDtBQUNELENBWEQ7O0FBYUFKLGVBQWUsQ0FBQ08sWUFBaEIsR0FBK0I7QUFDN0JOLEVBQUFBLFNBQVMsRUFBRU8sU0FEa0I7QUFFN0JOLEVBQUFBLE9BQU8sRUFBRU0sU0FGb0I7QUFHN0JMLEVBQUFBLFdBQVcsRUFBRUs7QUFIZ0IsQ0FBL0I7QUFNQVIsZUFBZSxDQUFDUyxTQUFoQixHQUE0QjtBQUMxQlIsRUFBQUEsU0FBUyxFQUFFUyxtQkFBVUMsTUFESztBQUUxQlQsRUFBQUEsT0FBTyxFQUFFUSxtQkFBVUUsSUFGTztBQUcxQjtBQUNBO0FBQ0FULEVBQUFBLFdBQVcsRUFBRU8sbUJBQVVHLEtBQVYsQ0FBZ0I7QUFDM0JSLElBQUFBLE9BQU8sRUFBRUssbUJBQVVJLFVBQVYsQ0FBcUJDLFdBQXJCO0FBRGtCLEdBQWhCO0FBTGEsQ0FBNUI7ZUFVZWYsZSIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBGQywgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0JztcblxuLy8gVGhpcyBpcyBhbiBlbGVtZW50LCB3aGVuIGZvY3VzZWQsIHdpbGwgc2VuZCB0aGUgZm9jdXMgdG8gdGhlIHJlZiBzcGVjaWZpZWQgaW4gXCJyZWRpcmVjdFJlZlwiLlxuLy8gQWx0aG91Z2ggdGhlIGZvY3VzIGlzIGJlaW5nIHJlZGlyZWN0ZWQsIGJyb3dzZXIgd2lsbCBzY3JvbGwgdGhpcyByZWRpcmVjdG9yIGVsZW1lbnQgaW50byB2aWV3LlxuXG4vLyBCcm93c2VyJ3MgXCJzY3JvbGxJbnRvVmlldygpXCIgY2FsbCBjYW5ub3QgYmUgcHJldmVudGVkIHRocm91Z2ggZXZlbnQucHJldmVudERlZmF1bHQoKSBpbiBib3RoXG4vLyBidWJibGUgYW5kIGNhcHR1cmUgcGhhc2Ugb2YgXCJmb2N1c1wiIGV2ZW50LlxuXG4vLyBXaGVuIHRoaXMgZm9jdXMgcmVkaXJlY3RvciBpcyBwdXQgaW5zaWRlIGEgc2Nyb2xsYWJsZSBjb250YWluZXIsIHlvdSBtYXkgd2FudCB0byByZXNpemUgb3IgcmVwb3NpdGlvblxuLy8gaXQgdG8gcHJldmVudCB1bmludGVudGlvbmFsIHNjcm9sbCBkb25lIGJ5IHRoZSBicm93c2VyIGRlZmF1bHQgYmVoYXZpb3IuXG5cbnR5cGUgRm9jdXNSZWRpcmVjdG9yUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIHJlZGlyZWN0UmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD47XG59O1xuXG5jb25zdCBGb2N1c1JlZGlyZWN0b3I6IEZDPEZvY3VzUmVkaXJlY3RvclByb3BzPiA9ICh7IGNsYXNzTmFtZSwgb25Gb2N1cywgcmVkaXJlY3RSZWYgfSkgPT4ge1xuICBjb25zdCBoYW5kbGVGb2N1cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZWRpcmVjdFJlZj8uY3VycmVudD8uZm9jdXMoKTtcbiAgICBvbkZvY3VzICYmIG9uRm9jdXMoKTtcbiAgfSwgW29uRm9jdXMsIHJlZGlyZWN0UmVmXSk7XG5cbiAgLy8gRm9yIE5WREEsIHdlIHNob3VsZCBzZXQgYXJpYS1oaWRkZW49XCJ0cnVlXCIuXG4gIC8vIFdoZW4gdXNpbmcgTlZEQSBpbiBicm93c2UgbW9kZSwgcHJlc3MgdXAvZG93biBhcnJvdyBrZXlzIHdpbGwgZm9jdXMgb24gdGhpcyByZWRpcmVjdG9yLlxuICAvLyBUaGlzIHJlZGlyZWN0b3IgaXMgZGVzaWduZWQgdG8gY2FwdHVyZSBUQUIgb25seSBhbmQgc2hvdWxkIG5vdCByZWFjdCBvbiBicm93c2UgbW9kZS5cbiAgLy8gSG93ZXZlciwgcmVhY3Rpbmcgd2l0aCBicm93c2UgbW9kZSBpcyBjdXJyZW50bHkgb2theS4gSnVzdCBiZXR0ZXIgdG8gbGVhdmUgaXQgYWxvbmUuXG4gIHJldHVybiA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBvbkZvY3VzPXtoYW5kbGVGb2N1c30gdGFiSW5kZXg9ezB9IC8+O1xufTtcblxuRm9jdXNSZWRpcmVjdG9yLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgcmVkaXJlY3RSZWY6IHVuZGVmaW5lZFxufTtcblxuRm9jdXNSZWRpcmVjdG9yLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLy8gUHJvcFR5cGVzIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggVHlwZVNjcmlwdC5cbiAgLy8gQHRzLWlnbm9yZVxuICByZWRpcmVjdFJlZjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjdXJyZW50OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihIVE1MRWxlbWVudClcbiAgfSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvY3VzUmVkaXJlY3RvcjtcbiJdfQ==
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _botframeworkWebchatApi = require("botframework-webchat-api");
11
11
 
12
+ var _botframeworkWebchatCore = require("botframework-webchat-core");
13
+
12
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
15
 
14
16
  var _react = _interopRequireWildcard(require("react"));
@@ -25,9 +27,9 @@ var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal
25
27
 
26
28
  var _walkMarkdownTokens = _interopRequireDefault(require("./walkMarkdownTokens"));
27
29
 
28
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
30
+ 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); }
29
31
 
30
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
32
+ 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; }
31
33
 
32
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
35
 
@@ -35,7 +37,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
35
37
 
36
38
  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."); }
37
39
 
38
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }
40
+ 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; }
39
41
 
40
42
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
43
 
@@ -45,13 +47,13 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
45
47
 
46
48
  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
49
 
48
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
50
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
49
51
 
50
52
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
51
53
 
52
54
  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; }
53
55
 
54
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
56
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
55
57
 
56
58
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
57
59
 
@@ -151,9 +153,12 @@ var InlineMarkdown = function InlineMarkdown(_ref5) {
151
153
  var html = (0, _react.useMemo)(function () {
152
154
  var tree = markdownIt.parseInline(children, {
153
155
  references: references.reduce(function (references, key) {
154
- return _objectSpread(_objectSpread({}, references), {}, _defineProperty({}, key, {
155
- href: "#".concat(refToHref[key])
156
- }));
156
+ return (// Mitigated through denylisting.
157
+ // eslint-disable-next-line security/detect-object-injection
158
+ (0, _botframeworkWebchatCore.isForbiddenPropertyName)(key) ? references : _objectSpread(_objectSpread({}, references), {}, _defineProperty({}, key, {
159
+ href: "#".concat(refToHref[key])
160
+ }))
161
+ );
157
162
  }, {})
158
163
  }); // Turn "<a href="#retry">Retry</a>" into "<button data-ref="retry" type="button">Retry</button>"
159
164
 
@@ -165,7 +170,9 @@ var InlineMarkdown = function InlineMarkdown(_ref5) {
165
170
  var handleClick = (0, _react.useCallback)(function (event) {
166
171
  event.stopPropagation();
167
172
  var href = event.target.getAttribute('data-markdown-href');
168
- href && onReference && onReference((0, _createCustomEvent.default)('reference', {
173
+ href && onReference && onReference((0, _createCustomEvent.default)('reference', // Mitigated through denylisting.
174
+ // eslint-disable-next-line security/detect-object-injection
175
+ (0, _botframeworkWebchatCore.isForbiddenPropertyName)(href) ? {} : {
169
176
  data: hrefToRef[href]
170
177
  }));
171
178
  }, [hrefToRef, onReference]);
@@ -188,4 +195,4 @@ InlineMarkdown.propTypes = {
188
195
  };
189
196
  var _default = InlineMarkdown;
190
197
  exports.default = _default;
191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9JbmxpbmVNYXJrZG93bi5qcyJdLCJuYW1lcyI6WyJ1c2VTdHlsZU9wdGlvbnMiLCJob29rcyIsInJlcGxhY2VBbmNob3JXaXRoQnV0dG9uIiwibWFya2Rvd25Ub2tlbnMiLCJtYXJrZG93blRva2VuIiwidHlwZSIsInRhZyIsImF0dHJzIiwibmFtZSIsInZhbHVlIiwic3RhcnRzV2l0aCIsInN1YnN0ciIsIklubGluZU1hcmtkb3duIiwiY2hpbGRyZW4iLCJvblJlZmVyZW5jZSIsInJlZmVyZW5jZXMiLCJjb25zb2xlIiwid2FybiIsIm1hcmtkb3duSXQiLCJhY2NlbnQiLCJzdHlsZVRvQ2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmRDb2xvciIsImJvcmRlciIsImNvbG9yIiwiY3Vyc29yIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwicGFkZGluZyIsIm1hcCIsInJlZmVyZW5jZSIsInRvVXBwZXJDYXNlIiwicmVkdWNlIiwicmVmIiwiaHJlZlRvUmVmIiwicmVmVG9IcmVmIiwiaHJlZiIsImh0bWwiLCJ0cmVlIiwicGFyc2VJbmxpbmUiLCJrZXkiLCJ1cGRhdGVkVHJlZSIsIl9faHRtbCIsInJlbmRlcmVyIiwicmVuZGVyIiwiaGFuZGxlQ2xpY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImdldEF0dHJpYnV0ZSIsImRhdGEiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiYXJyYXlPZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFUUEsZSxHQUFvQkMsNkIsQ0FBcEJELGU7O0FBRVIsU0FBU0UsdUJBQVQsQ0FBaUNDLGNBQWpDLEVB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QUFFcUMsTUFBQUEsSUFBSSxFQUFFaEIsU0FBUyxDQUFDRSxJQUFEO0FBQWpCLEtBQS9CLENBQUQsQ0FBbEM7QUFDRCxHQVBpQixFQVFsQixDQUFDRixTQUFELEVBQVlyQixXQUFaLENBUmtCLENBQXBCO0FBV0Esc0JBQU87QUFBTSxJQUFBLFNBQVMsRUFBRU8sU0FBakI7QUFBNEIsSUFBQSx1QkFBdUIsRUFBRWlCLElBQXJEO0FBQTJELElBQUEsT0FBTyxFQUFFUTtBQUFwRSxJQUFQO0FBQ0QsQ0FwRUQ7O0FBc0VBbEMsY0FBYyxDQUFDd0MsWUFBZixHQUE4QjtBQUM1QnZDLEVBQUFBLFFBQVEsRUFBRSxFQURrQjtBQUU1QkMsRUFBQUEsV0FBVyxFQUFFdUMsU0FGZTtBQUc1QnRDLEVBQUFBLFVBQVUsRUFBRTtBQUhnQixDQUE5QjtBQU1BSCxjQUFjLENBQUMwQyxTQUFmLEdBQTJCO0FBQ3pCekMsRUFBQUEsUUFBUSxFQUFFMEMsbUJBQVVDLE1BREs7QUFFekIxQyxFQUFBQSxXQUFXLEVBQUV5QyxtQkFBVUUsSUFGRTtBQUd6QjFDLEVBQUFBLFVBQVUsRUFBRXdDLG1CQUFVRyxPQUFWLENBQWtCSCxtQkFBVUMsTUFBNUI7QUFIYSxDQUEzQjtlQU1lNUMsYyIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IHJlYWN0L25vLWRhbmdlcjogXCJvZmZcIiAqL1xuXG5pbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVwZGF0ZUluIGZyb20gJ3NpbXBsZS11cGRhdGUtaW4nO1xuXG5pbXBvcnQgY3JlYXRlQ3VzdG9tRXZlbnQgZnJvbSAnLi9jcmVhdGVDdXN0b21FdmVudCc7XG5pbXBvcnQgcmFuZG9tSWQgZnJvbSAnLi9yYW5kb21JZCc7XG5pbXBvcnQgdXNlSW50ZXJuYWxNYXJrZG93bkl0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUludGVybmFsTWFya2Rvd25JdCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuaW1wb3J0IHdhbGtNYXJrZG93blRva2VucyBmcm9tICcuL3dhbGtNYXJrZG93blRva2Vucyc7XG5cbmNvbnN0IHsgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxuZnVuY3Rpb24gcmVwbGFjZUFuY2hvcldpdGhCdXR0b24obWFya2Rvd25Ub2tlbnMpIHtcbiAgcmV0dXJuIHdhbGtNYXJrZG93blRva2VucyhtYXJrZG93blRva2VucywgbWFya2Rvd25Ub2tlbiA9PiB7XG4gICAgbWFya2Rvd25Ub2tlbiA9IHsgLi4ubWFya2Rvd25Ub2tlbiB9O1xuXG4gICAgc3dpdGNoIChtYXJrZG93blRva2VuLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpbmtfb3Blbic6XG4gICAgICAgIG1hcmtkb3duVG9rZW4udGFnID0gJ2J1dHRvbic7XG4gICAgICAgIG1hcmtkb3duVG9rZW4uYXR0cnMgPSBbXG4gICAgICAgICAgLi4udXBkYXRlSW4oXG4gICAgICAgICAgICBtYXJrZG93blRva2VuLmF0dHJzLFxuICAgICAgICAgICAgWyhbbmFtZSwgdmFsdWVdKSA9PiBuYW1lID09PSAnaHJlZicgJiYgdmFsdWUuc3RhcnRzV2l0aCgnIycpXSxcbiAgICAgICAgICAgIChbLCB2YWx1ZV0pID0+IFsnZGF0YS1tYXJrZG93bi1ocmVmJywgdmFsdWUuc3Vic3RyKDEpXVxuICAgICAgICAgICksXG4gICAgICAgICAgWyd0eXBlJywgJ2J1dHRvbiddXG4gICAgICAgIF07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdsaW5rX2Nsb3NlJzpcbiAgICAgICAgbWFya2Rvd25Ub2tlbi50YWcgPSAnYnV0dG9uJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBtYXJrZG93blRva2VuO1xuICB9KTtcbn1cblxuY29uc3QgSW5saW5lTWFya2Rvd24gPSAoeyBjaGlsZHJlbiwgb25SZWZlcmVuY2UsIHJlZmVyZW5jZXMgfSkgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAnc3RyaW5nJykge1xuICAgIGNvbnNvbGUud2FybignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IFwiY2hpbGRyZW5cIiBwcm9wIHBhc3NlZCB0byA8SW5saW5lTWFya2Rvd24+IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuJyk7XG4gICAgY2hpbGRyZW4gPSAnJztcbiAgfVxuXG4gIGNvbnN0IFttYXJrZG93bkl0XSA9IHVzZUludGVybmFsTWFya2Rvd25JdCgpO1xuICBjb25zdCBbeyBhY2NlbnQgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3Qgc3R5bGVUb0NsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCk7XG5cbiAgLy8gV2UgaW5saW5lZCB0aGUgc3R5bGUgaGVyZSBiZWNhdXNlIHRoaXMgc3R5bGUgaXM6XG4gIC8vIDEuIEludGVybmFsIHRvIFdlYiBDaGF0XG4gIC8vIDIuIE5vdCBjdXN0b21pemFibGUgZnJvbSBkZXZlbG9wZXJzIChvdGhlciB0aGFuIHNldHRpbmcgYHN0eWxlT3B0aW9ucy5hY2NlbnRgKVxuICBjb25zdCBjbGFzc05hbWUgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBzdHlsZVRvQ2xhc3NOYW1lKHtcbiAgICAgICAgJyYgYnV0dG9uW2RhdGEtbWFya2Rvd24taHJlZl0nOiB7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgY29sb3I6IGFjY2VudCxcbiAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICBmb250RmFtaWx5OiAnaW5oZXJpdCcsXG4gICAgICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgICAgICBwYWRkaW5nOiAwXG4gICAgICAgIH1cbiAgICAgIH0pICsgJycsXG4gICAgW2FjY2VudCwgc3R5bGVUb0NsYXNzTmFtZV1cbiAgKTtcblxuICAvLyBNYXJrZG93bi1JdCBvbmx5IHN1cHBvcnQgcmVmZXJlbmNlcyBpbiB1cHBlcmNhc2UuXG4gIHJlZmVyZW5jZXMgPSByZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLnRvVXBwZXJDYXNlKCkpO1xuXG4gIGNvbnN0IHsgaHJlZlRvUmVmLCByZWZUb0hyZWYgfSA9IHJlZmVyZW5jZXMucmVkdWNlKFxuICAgICh7IGhyZWZUb1JlZiwgcmVmVG9IcmVmIH0sIHJlZikgPT4ge1xuICAgICAgY29uc3QgaHJlZiA9IHJhbmRvbUlkKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhyZWZUb1JlZjogeyAuLi5ocmVmVG9SZWYsIFtocmVmXTogcmVmIH0sXG4gICAgICAgIHJlZlRvSHJlZjogeyAuLi5yZWZUb0hyZWYsIFtyZWZdOiBocmVmIH1cbiAgICAgIH07XG4gICAgfSxcbiAgICB7IGhyZWZUb1JlZjoge30sIHJlZlRvSHJlZjoge30gfVxuICApO1xuXG4gIGNvbnN0IGh0bWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB0cmVlID0gbWFya2Rvd25JdC5wYXJzZUlubGluZShjaGlsZHJlbiwge1xuICAgICAgcmVmZXJlbmNlczogcmVmZXJlbmNlcy5yZWR1Y2UoKHJlZmVyZW5jZXMsIGtleSkgPT4gKHsgLi4ucmVmZXJlbmNlcywgW2tleV06IHsgaHJlZjogYCMke3JlZlRvSHJlZltrZXldfWAgfSB9KSwge30pXG4gICAgfSk7XG5cbiAgICAvLyBUdXJuIFwiPGEgaHJlZj1cIiNyZXRyeVwiPlJldHJ5PC9hPlwiIGludG8gXCI8YnV0dG9uIGRhdGEtcmVmPVwicmV0cnlcIiB0eXBlPVwiYnV0dG9uXCI+UmV0cnk8L2J1dHRvbj5cIlxuICAgIGNvbnN0IHVwZGF0ZWRUcmVlID0gcmVwbGFjZUFuY2hvcldpdGhCdXR0b24odHJlZSk7XG5cbiAgICByZXR1cm4geyBfX2h0bWw6IG1hcmtkb3duSXQucmVuZGVyZXIucmVuZGVyKHVwZGF0ZWRUcmVlKSB9O1xuICB9LCBbY2hpbGRyZW4sIHJlZlRvSHJlZiwgbWFya2Rvd25JdCwgcmVmZXJlbmNlc10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNvbnN0IGhyZWYgPSBldmVudC50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLW1hcmtkb3duLWhyZWYnKTtcblxuICAgICAgaHJlZiAmJiBvblJlZmVyZW5jZSAmJiBvblJlZmVyZW5jZShjcmVhdGVDdXN0b21FdmVudCgncmVmZXJlbmNlJywgeyBkYXRhOiBocmVmVG9SZWZbaHJlZl0gfSkpO1xuICAgIH0sXG4gICAgW2hyZWZUb1JlZiwgb25SZWZlcmVuY2VdXG4gICk7XG5cbiAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17aHRtbH0gb25DbGljaz17aGFuZGxlQ2xpY2t9IC8+O1xufTtcblxuSW5saW5lTWFya2Rvd24uZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogJycsXG4gIG9uUmVmZXJlbmNlOiB1bmRlZmluZWQsXG4gIHJlZmVyZW5jZXM6IFtdXG59O1xuXG5JbmxpbmVNYXJrZG93bi5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblJlZmVyZW5jZTogUHJvcFR5cGVzLmZ1bmMsXG4gIHJlZmVyZW5jZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbmxpbmVNYXJrZG93bjtcbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9JbmxpbmVNYXJrZG93bi5qcyJdLCJuYW1lcyI6WyJ1c2VTdHlsZU9wdGlvbnMiLCJob29rcyIsInJlcGxhY2VBbmNob3JXaXRoQnV0dG9uIiwibWFya2Rvd25Ub2tlbnMiLCJtYXJrZG93blRva2VuIiwidHlwZSIsInRhZyIsImF0dHJzIiwibmFtZSIsInZhbHVlIiwic3RhcnRzV2l0aCIsInN1YnN0ciIsIklubGluZU1hcmtkb3duIiwiY2hpbGRyZW4iLCJvblJlZmVyZW5jZSIsInJlZmVyZW5jZXMiLCJjb25zb2xlIiwid2FybiIsIm1hcmtkb3duSXQiLCJhY2NlbnQiLCJzdHlsZVRvQ2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmRDb2xvciIsImJvcmRlciIsImNvbG9yIiwiY3Vyc29yIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwicGFkZGluZyIsIm1hcCIsInJlZmVyZW5jZSIsInRvVXBwZXJDYXNlIiwicmVkdWNlIiwicmVmIiwiaHJlZlRvUmVmIiwicmVmVG9IcmVmIiwiaHJlZiIsImh0bWwiLCJ0cmVlIiwicGFyc2VJbmxpbmUiLCJrZXkiLCJ1cGRhdGVkVHJlZSIsIl9faHRtbCIsInJlbmRlcmVyIiwicmVuZGVyIiwiaGFuZGxlQ2xpY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImdldEF0dHJpYnV0ZSIsImRhdGEiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiYXJyYXlPZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFRQSxlQUFSLEdBQTRCQyw2QkFBNUIsQ0FBUUQsZUFBUjs7QUFFQSxTQUFTRSx1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LElBRUVBLFdBQVcsQ0FDVCxnQ0FDRSxXQURGLEVBRUU7QUFDQTtBQUNBLDBEQUF3QnVCLElBQXhCLElBQWdDLEVBQWhDLEdBQXFDO0FBQUVjLE1BQUFBLElBQUksRUFBRWhCLFNBQVMsQ0FBQ0UsSUFBRDtBQUFqQixLQUp2QyxDQURTLENBRmI7QUFVRCxHQWhCaUIsRUFpQmxCLENBQUNGLFNBQUQsRUFBWXJCLFdBQVosQ0FqQmtCLENBQXBCO0FBb0JBLHNCQUFPO0FBQU0sSUFBQSxTQUFTLEVBQUVPLFNBQWpCO0FBQTRCLElBQUEsdUJBQXVCLEVBQUVpQixJQUFyRDtBQUEyRCxJQUFBLE9BQU8sRUFBRVE7QUFBcEUsSUFBUDtBQUNELENBbkZEOztBQXFGQWxDLGNBQWMsQ0FBQ3dDLFlBQWYsR0FBOEI7QUFDNUJ2QyxFQUFBQSxRQUFRLEVBQUUsRUFEa0I7QUFFNUJDLEVBQUFBLFdBQVcsRUFBRXVDLFNBRmU7QUFHNUJ0QyxFQUFBQSxVQUFVLEVBQUU7QUFIZ0IsQ0FBOUI7QUFNQUgsY0FBYyxDQUFDMEMsU0FBZixHQUEyQjtBQUN6QnpDLEVBQUFBLFFBQVEsRUFBRTBDLG1CQUFVQyxNQURLO0FBRXpCMUMsRUFBQUEsV0FBVyxFQUFFeUMsbUJBQVVFLElBRkU7QUFHekIxQyxFQUFBQSxVQUFVLEVBQUV3QyxtQkFBVUcsT0FBVixDQUFrQkgsbUJBQVVDLE1BQTVCO0FBSGEsQ0FBM0I7ZUFNZTVDLGMiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCByZWFjdC9uby1kYW5nZXI6IFwib2ZmXCIgKi9cblxuaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IHsgaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXBkYXRlSW4gZnJvbSAnc2ltcGxlLXVwZGF0ZS1pbic7XG5cbmltcG9ydCBjcmVhdGVDdXN0b21FdmVudCBmcm9tICcuL2NyZWF0ZUN1c3RvbUV2ZW50JztcbmltcG9ydCByYW5kb21JZCBmcm9tICcuL3JhbmRvbUlkJztcbmltcG9ydCB1c2VJbnRlcm5hbE1hcmtkb3duSXQgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlSW50ZXJuYWxNYXJrZG93bkl0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5pbXBvcnQgd2Fsa01hcmtkb3duVG9rZW5zIGZyb20gJy4vd2Fsa01hcmtkb3duVG9rZW5zJztcblxuY29uc3QgeyB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5mdW5jdGlvbiByZXBsYWNlQW5jaG9yV2l0aEJ1dHRvbihtYXJrZG93blRva2Vucykge1xuICByZXR1cm4gd2Fsa01hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zLCBtYXJrZG93blRva2VuID0+IHtcbiAgICBtYXJrZG93blRva2VuID0geyAuLi5tYXJrZG93blRva2VuIH07XG5cbiAgICBzd2l0Y2ggKG1hcmtkb3duVG9rZW4udHlwZSkge1xuICAgICAgY2FzZSAnbGlua19vcGVuJzpcbiAgICAgICAgbWFya2Rvd25Ub2tlbi50YWcgPSAnYnV0dG9uJztcbiAgICAgICAgbWFya2Rvd25Ub2tlbi5hdHRycyA9IFtcbiAgICAgICAgICAuLi51cGRhdGVJbihcbiAgICAgICAgICAgIG1hcmtkb3duVG9rZW4uYXR0cnMsXG4gICAgICAgICAgICBbKFtuYW1lLCB2YWx1ZV0pID0+IG5hbWUgPT09ICdocmVmJyAmJiB2YWx1ZS5zdGFydHNXaXRoKCcjJyldLFxuICAgICAgICAgICAgKFssIHZhbHVlXSkgPT4gWydkYXRhLW1hcmtkb3duLWhyZWYnLCB2YWx1ZS5zdWJzdHIoMSldXG4gICAgICAgICAgKSxcbiAgICAgICAgICBbJ3R5cGUnLCAnYnV0dG9uJ11cbiAgICAgICAgXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xpbmtfY2xvc2UnOlxuICAgICAgICBtYXJrZG93blRva2VuLnRhZyA9ICdidXR0b24nO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtkb3duVG9rZW47XG4gIH0pO1xufVxuXG5jb25zdCBJbmxpbmVNYXJrZG93biA9ICh7IGNoaWxkcmVuLCBvblJlZmVyZW5jZSwgcmVmZXJlbmNlcyB9KSA9PiB7XG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gIT09ICdzdHJpbmcnKSB7XG4gICAgY29uc29sZS53YXJuKCdib3RmcmFtZXdvcmstd2ViY2hhdDogXCJjaGlsZHJlblwiIHByb3AgcGFzc2VkIHRvIDxJbmxpbmVNYXJrZG93bj4gbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4nKTtcbiAgICBjaGlsZHJlbiA9ICcnO1xuICB9XG5cbiAgY29uc3QgW21hcmtkb3duSXRdID0gdXNlSW50ZXJuYWxNYXJrZG93bkl0KCk7XG4gIGNvbnN0IFt7IGFjY2VudCB9XSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBzdHlsZVRvQ2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKTtcblxuICAvLyBXZSBpbmxpbmVkIHRoZSBzdHlsZSBoZXJlIGJlY2F1c2UgdGhpcyBzdHlsZSBpczpcbiAgLy8gMS4gSW50ZXJuYWwgdG8gV2ViIENoYXRcbiAgLy8gMi4gTm90IGN1c3RvbWl6YWJsZSBmcm9tIGRldmVsb3BlcnMgKG90aGVyIHRoYW4gc2V0dGluZyBgc3R5bGVPcHRpb25zLmFjY2VudGApXG4gIGNvbnN0IGNsYXNzTmFtZSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHN0eWxlVG9DbGFzc05hbWUoe1xuICAgICAgICAnJiBidXR0b25bZGF0YS1tYXJrZG93bi1ocmVmXSc6IHtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAnbm9uZScsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgICBjb2xvcjogYWNjZW50LFxuICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgIGZvbnRGYW1pbHk6ICdpbmhlcml0JyxcbiAgICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgfVxuICAgICAgfSkgKyAnJyxcbiAgICBbYWNjZW50LCBzdHlsZVRvQ2xhc3NOYW1lXVxuICApO1xuXG4gIC8vIE1hcmtkb3duLUl0IG9ubHkgc3VwcG9ydCByZWZlcmVuY2VzIGluIHVwcGVyY2FzZS5cbiAgcmVmZXJlbmNlcyA9IHJlZmVyZW5jZXMubWFwKHJlZmVyZW5jZSA9PiByZWZlcmVuY2UudG9VcHBlckNhc2UoKSk7XG5cbiAgY29uc3QgeyBocmVmVG9SZWYsIHJlZlRvSHJlZiB9ID0gcmVmZXJlbmNlcy5yZWR1Y2UoXG4gICAgKHsgaHJlZlRvUmVmLCByZWZUb0hyZWYgfSwgcmVmKSA9PiB7XG4gICAgICBjb25zdCBocmVmID0gcmFuZG9tSWQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHJlZlRvUmVmOiB7IC4uLmhyZWZUb1JlZiwgW2hyZWZdOiByZWYgfSxcbiAgICAgICAgcmVmVG9IcmVmOiB7IC4uLnJlZlRvSHJlZiwgW3JlZl06IGhyZWYgfVxuICAgICAgfTtcbiAgICB9LFxuICAgIHsgaHJlZlRvUmVmOiB7fSwgcmVmVG9IcmVmOiB7fSB9XG4gICk7XG5cbiAgY29uc3QgaHRtbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRyZWUgPSBtYXJrZG93bkl0LnBhcnNlSW5saW5lKGNoaWxkcmVuLCB7XG4gICAgICByZWZlcmVuY2VzOiByZWZlcmVuY2VzLnJlZHVjZShcbiAgICAgICAgKHJlZmVyZW5jZXMsIGtleSkgPT5cbiAgICAgICAgICAvLyBNaXRpZ2F0ZWQgdGhyb3VnaCBkZW55bGlzdGluZy5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICBpc0ZvcmJpZGRlblByb3BlcnR5TmFtZShrZXkpID8gcmVmZXJlbmNlcyA6IHsgLi4ucmVmZXJlbmNlcywgW2tleV06IHsgaHJlZjogYCMke3JlZlRvSHJlZltrZXldfWAgfSB9LFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH0pO1xuXG4gICAgLy8gVHVybiBcIjxhIGhyZWY9XCIjcmV0cnlcIj5SZXRyeTwvYT5cIiBpbnRvIFwiPGJ1dHRvbiBkYXRhLXJlZj1cInJldHJ5XCIgdHlwZT1cImJ1dHRvblwiPlJldHJ5PC9idXR0b24+XCJcbiAgICBjb25zdCB1cGRhdGVkVHJlZSA9IHJlcGxhY2VBbmNob3JXaXRoQnV0dG9uKHRyZWUpO1xuXG4gICAgcmV0dXJuIHsgX19odG1sOiBtYXJrZG93bkl0LnJlbmRlcmVyLnJlbmRlcih1cGRhdGVkVHJlZSkgfTtcbiAgfSwgW2NoaWxkcmVuLCByZWZUb0hyZWYsIG1hcmtkb3duSXQsIHJlZmVyZW5jZXNdKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBjb25zdCBocmVmID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1tYXJrZG93bi1ocmVmJyk7XG5cbiAgICAgIGhyZWYgJiZcbiAgICAgICAgb25SZWZlcmVuY2UgJiZcbiAgICAgICAgb25SZWZlcmVuY2UoXG4gICAgICAgICAgY3JlYXRlQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAncmVmZXJlbmNlJyxcbiAgICAgICAgICAgIC8vIE1pdGlnYXRlZCB0aHJvdWdoIGRlbnlsaXN0aW5nLlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICBpc0ZvcmJpZGRlblByb3BlcnR5TmFtZShocmVmKSA/IHt9IDogeyBkYXRhOiBocmVmVG9SZWZbaHJlZl0gfVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIFtocmVmVG9SZWYsIG9uUmVmZXJlbmNlXVxuICApO1xuXG4gIHJldHVybiA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTmFtZX0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e2h0bWx9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfSAvPjtcbn07XG5cbklubGluZU1hcmtkb3duLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46ICcnLFxuICBvblJlZmVyZW5jZTogdW5kZWZpbmVkLFxuICByZWZlcmVuY2VzOiBbXVxufTtcblxuSW5saW5lTWFya2Rvd24ucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25SZWZlcmVuY2U6IFByb3BUeXBlcy5mdW5jLFxuICByZWZlcmVuY2VzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5saW5lTWFya2Rvd247XG4iXX0=