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
package/.eslintrc.yml CHANGED
@@ -1,102 +1,6 @@
1
1
  extends:
2
- - plugin:react/recommended
3
- plugins:
4
- - prettier
5
- - react-hooks
6
- - '@typescript-eslint/eslint-plugin'
7
- parser:
8
- '@typescript-eslint/parser'
9
- rules:
10
- # plugins
11
- prettier/prettier: error
2
+ - ../../.eslintrc.react.yml
12
3
 
13
- react/button-has-type: error
14
- react/default-props-match-prop-types: error
15
- react/destructuring-assignment: error
16
- react/display-name: off
17
- react/forbid-component-props:
18
- - error
19
- - forbid:
20
- - style
21
- react/forbid-dom-props:
22
- - error
23
- - forbid:
24
- - id
25
- # react/forbid-prop-types: error // How to deal with Adaptive Card schema?
26
- react/no-access-state-in-setstate: error
27
- react/no-array-index-key: error
28
- react/no-danger: error
29
- react/no-did-mount-set-state: error
30
- react/no-did-update-set-state: error
31
- react/no-redundant-should-component-update: error
32
- react/no-typos: error
33
- react/no-this-in-sfc: error
34
- react/no-unescaped-entities: error
35
- react/no-unsafe: error
36
- react/no-unused-prop-types: error
37
- react/no-unused-state: error
38
- react/no-will-update-set-state: error
39
- react/prefer-es6-class: error
40
- react/prefer-read-only-props: error
41
- react/require-default-props: error
42
- react/self-closing-comp: error
43
- react/sort-prop-types: error
44
- react/state-in-constructor: error
45
- react/static-property-placement:
46
- - error
47
- - property assignment
48
- react/style-prop-object: error
49
- react/void-dom-elements-no-children: error
50
- react/jsx-boolean-value:
51
- - error
52
- - always
53
- react/jsx-closing-bracket-location:
54
- - error
55
- - tag-aligned
56
- react/jsx-closing-tag-location: error
57
- react/jsx-equals-spacing:
58
- - error
59
- - never
60
- react/jsx-first-prop-new-line:
61
- - error
62
- - multiline-multiprop
63
- react/jsx-handler-names: error
64
- react/jsx-indent:
65
- - error
66
- - 2
67
- react/jsx-indent-props:
68
- - error
69
- - 2
70
- react/jsx-max-props-per-line:
71
- - error
72
- - maximum: 1
73
- when: multiline
74
- react/jsx-no-bind: error
75
- react/jsx-no-literals: error
76
- # react/jsx-one-expression-per-line: #conflicts with prettier
77
- # - error
78
- # - allow: literal
79
- react/jsx-fragments:
80
- - error
81
- - element
82
- react/jsx-pascal-case: error
83
- react/jsx-props-no-multi-spaces: error
84
- react/jsx-sort-default-props: error
85
- react/jsx-sort-props: error
86
- react/jsx-tag-spacing:
87
- - error
88
- - afterOpening: never
89
- beforeClosing: never
90
- beforeSelfClosing: always
91
- closingSlash: never
92
- react/jsx-wrap-multilines: error # Conflict with no-extra-parens
93
- react-hooks/rules-of-hooks: error
94
- react-hooks/exhaustive-deps: warn
95
-
96
- # TypeScript
97
-
98
- # The correct way to use with typescript-eslint is to disable the core version.
99
- # https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md#how-to-use
100
- no-use-before-define: off
101
- '@typescript-eslint/no-use-before-define':
102
- - error
4
+ # This package is expected to run inside a web browser.
5
+ env:
6
+ browser: true
package/.prettierrc.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  arrowParens: avoid
2
+ bracketSameLine: false
2
3
  bracketSpacing: true
3
4
  endOfLine: auto
4
- jsxBracketSameLine: false
5
5
  printWidth: 120
6
6
  proseWrap: preserve
7
7
  quoteProps: as-needed
@@ -0,0 +1,10 @@
1
+ import { VFC } from 'react';
2
+ declare type AvatarProps = {
3
+ 'aria-hidden'?: boolean;
4
+ className?: string;
5
+ fromUser?: boolean;
6
+ };
7
+ /** @deprecated Please use `useRenderAvatar` hook instead. */
8
+ declare const Avatar: VFC<AvatarProps>;
9
+ export default Avatar;
10
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/Activity/Avatar.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAInC,aAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,6DAA6D;AAC7D,QAAA,MAAM,MAAM,EAAE,GAAG,CAAC,WAAW,CAM5B,CAAC;AAcF,eAAe,MAAM,CAAC"}
@@ -13,6 +13,7 @@ var _createCoreMiddleware = require("../Middleware/Avatar/createCoreMiddleware")
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
+ /** @deprecated Please use `useRenderAvatar` hook instead. */
16
17
  var Avatar = function Avatar(_ref) {
17
18
  var ariaHidden = _ref['aria-hidden'],
18
19
  className = _ref.className,
@@ -37,4 +38,4 @@ Avatar.propTypes = {
37
38
  };
38
39
  var _default = Avatar;
39
40
  exports.default = _default;
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9BdmF0YXIuanMiXSwibmFtZXMiOlsiQXZhdGFyIiwiYXJpYUhpZGRlbiIsImNsYXNzTmFtZSIsImZyb21Vc2VyIiwiY29uc29sZSIsIndhcm4iLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxPQUF3RDtBQUFBLE1BQXRDQyxVQUFzQyxRQUFyRCxhQUFxRDtBQUFBLE1BQTFCQyxTQUEwQixRQUExQkEsU0FBMEI7QUFBQSxNQUFmQyxRQUFlLFFBQWZBLFFBQWU7QUFDckVDLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNFLCtJQURGO0FBSUEsc0JBQU8sNkJBQUMsbUNBQUQ7QUFBZSxtQkFBYUosVUFBNUI7QUFBd0MsSUFBQSxTQUFTLEVBQUVDLFNBQW5EO0FBQThELElBQUEsUUFBUSxFQUFFQztBQUF4RSxJQUFQO0FBQ0QsQ0FORDs7QUFRQUgsTUFBTSxDQUFDTSxZQUFQLEdBQXNCO0FBQ3BCLGlCQUFlLEtBREs7QUFFcEJKLEVBQUFBLFNBQVMsRUFBRSxFQUZTO0FBR3BCQyxFQUFBQSxRQUFRLEVBQUU7QUFIVSxDQUF0QjtBQU1BSCxNQUFNLENBQUNPLFNBQVAsR0FBbUI7QUFDakIsaUJBQWVDLG1CQUFVQyxJQURSO0FBRWpCUCxFQUFBQSxTQUFTLEVBQUVNLG1CQUFVRSxNQUZKO0FBR2pCUCxFQUFBQSxRQUFRLEVBQUVLLG1CQUFVQztBQUhILENBQW5CO2VBTWVULE0iLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBEZWZhdWx0QXZhdGFyIH0gZnJvbSAnLi4vTWlkZGxld2FyZS9BdmF0YXIvY3JlYXRlQ29yZU1pZGRsZXdhcmUnO1xuXG5jb25zdCBBdmF0YXIgPSAoeyAnYXJpYS1oaWRkZW4nOiBhcmlhSGlkZGVuLCBjbGFzc05hbWUsIGZyb21Vc2VyIH0pID0+IHtcbiAgY29uc29sZS53YXJuKFxuICAgICdib3RmcmFtZXdvcmstd2ViY2hhdDogPEF2YXRhcj4gY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiBvciBhZnRlciAyMDIyLTAyLTI1LiBQbGVhc2UgdXNlIGB1c2VSZW5kZXJBdmF0YXJgIGhvb2sgaW5zdGVhZC4nXG4gICk7XG5cbiAgcmV0dXJuIDxEZWZhdWx0QXZhdGFyIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gZnJvbVVzZXI9e2Zyb21Vc2VyfSAvPjtcbn07XG5cbkF2YXRhci5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IGZhbHNlLFxuICBjbGFzc05hbWU6ICcnLFxuICBmcm9tVXNlcjogZmFsc2Vcbn07XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gICdhcmlhLWhpZGRlbic6IFByb3BUeXBlcy5ib29sLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZyb21Vc2VyOiBQcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIl19
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9BdmF0YXIudHN4Il0sIm5hbWVzIjpbIkF2YXRhciIsImFyaWFIaWRkZW4iLCJjbGFzc05hbWUiLCJmcm9tVXNlciIsImNvbnNvbGUiLCJ3YXJuIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsInN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7O0FBUUE7QUFDQSxJQUFNQSxNQUF3QixHQUFHLFNBQTNCQSxNQUEyQixPQUF3RDtBQUFBLE1BQXRDQyxVQUFzQyxRQUFyRCxhQUFxRDtBQUFBLE1BQTFCQyxTQUEwQixRQUExQkEsU0FBMEI7QUFBQSxNQUFmQyxRQUFlLFFBQWZBLFFBQWU7QUFDdkZDLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNFLCtJQURGO0FBSUEsc0JBQU8sNkJBQUMsbUNBQUQ7QUFBZSxtQkFBYUosVUFBNUI7QUFBd0MsSUFBQSxTQUFTLEVBQUVDLFNBQW5EO0FBQThELElBQUEsUUFBUSxFQUFFQztBQUF4RSxJQUFQO0FBQ0QsQ0FORDs7QUFRQUgsTUFBTSxDQUFDTSxZQUFQLEdBQXNCO0FBQ3BCLGlCQUFlLEtBREs7QUFFcEJKLEVBQUFBLFNBQVMsRUFBRSxFQUZTO0FBR3BCQyxFQUFBQSxRQUFRLEVBQUU7QUFIVSxDQUF0QjtBQU1BSCxNQUFNLENBQUNPLFNBQVAsR0FBbUI7QUFDakIsaUJBQWVDLG1CQUFVQyxJQURSO0FBRWpCUCxFQUFBQSxTQUFTLEVBQUVNLG1CQUFVRSxNQUZKO0FBR2pCUCxFQUFBQSxRQUFRLEVBQUVLLG1CQUFVQztBQUhILENBQW5CO2VBTWVULE0iLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgVkZDIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBEZWZhdWx0QXZhdGFyIH0gZnJvbSAnLi4vTWlkZGxld2FyZS9BdmF0YXIvY3JlYXRlQ29yZU1pZGRsZXdhcmUnO1xuXG50eXBlIEF2YXRhclByb3BzID0ge1xuICAnYXJpYS1oaWRkZW4nPzogYm9vbGVhbjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBmcm9tVXNlcj86IGJvb2xlYW47XG59O1xuXG4vKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBgdXNlUmVuZGVyQXZhdGFyYCBob29rIGluc3RlYWQuICovXG5jb25zdCBBdmF0YXI6IFZGQzxBdmF0YXJQcm9wcz4gPSAoeyAnYXJpYS1oaWRkZW4nOiBhcmlhSGlkZGVuLCBjbGFzc05hbWUsIGZyb21Vc2VyIH0pID0+IHtcbiAgY29uc29sZS53YXJuKFxuICAgICdib3RmcmFtZXdvcmstd2ViY2hhdDogPEF2YXRhcj4gY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiBvciBhZnRlciAyMDIyLTAyLTI1LiBQbGVhc2UgdXNlIGB1c2VSZW5kZXJBdmF0YXJgIGhvb2sgaW5zdGVhZC4nXG4gICk7XG5cbiAgcmV0dXJuIDxEZWZhdWx0QXZhdGFyIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gZnJvbVVzZXI9e2Zyb21Vc2VyfSAvPjtcbn07XG5cbkF2YXRhci5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IGZhbHNlLFxuICBjbGFzc05hbWU6ICcnLFxuICBmcm9tVXNlcjogZmFsc2Vcbn07XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gICdhcmlhLWhpZGRlbic6IFByb3BUeXBlcy5ib29sLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZyb21Vc2VyOiBQcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIl19
@@ -0,0 +1,11 @@
1
+ import { FC, ReactNode } from 'react';
2
+ declare type BubbleProps = {
3
+ 'aria-hidden'?: boolean;
4
+ children?: ReactNode;
5
+ className?: string;
6
+ fromUser?: boolean;
7
+ nub?: boolean | 'hidden';
8
+ };
9
+ declare const Bubble: FC<BubbleProps>;
10
+ export default Bubble;
11
+ //# sourceMappingURL=Bubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bubble.d.ts","sourceRoot":"","sources":["../../src/Activity/Bubble.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA2D7C,aAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAmD3B,CAAC;AAkBF,eAAe,MAAM,CAAC"}
@@ -29,7 +29,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
29
29
 
30
30
  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; }
31
31
 
32
- 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; }
32
+ 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; }
33
33
 
34
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
35
 
@@ -154,4 +154,4 @@ Bubble.propTypes = {
154
154
  };
155
155
  var _default = Bubble;
156
156
  exports.default = _default;
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9CdWJibGUuanMiXSwibmFtZXMiOlsidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsInBvc2l0aW9uIiwiZmxleFNocmluayIsImZsZXhHcm93Iiwib3ZlcmZsb3ciLCJhY3V0ZU51YlNWRyIsIm51YlNpemUiLCJzdHJva2VXaWR0aCIsInNpZGUiLCJ1cFNpZGVEb3duIiwiaGFsZk51YlNpemUiLCJoYWxmU3Ryb2tlV2lkdGgiLCJob3Jpem9udGFsVHJhbnNmb3JtIiwidmVydGljYWxUcmFuc2Zvcm0iLCJwMSIsImpvaW4iLCJwMiIsInAzIiwiQnViYmxlIiwiYXJpYUhpZGRlbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZnJvbVVzZXIiLCJudWIiLCJidWJibGVTdHlsZVNldCIsImJ1YmJsZSIsImRpcmVjdGlvbiIsImJ1YmJsZUJvcmRlcldpZHRoIiwiYnViYmxlRnJvbVVzZXJCb3JkZXJXaWR0aCIsImJ1YmJsZUZyb21Vc2VyTnViU2l6ZSIsImJ1YmJsZU51YlNpemUiLCJidWJibGVOdWJPZmZzZXQiLCJidWJibGVGcm9tVXNlck51Yk9mZnNldCIsInJvb3RDbGFzc05hbWUiLCJib3JkZXJXaWR0aCIsIm51Yk9mZnNldCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJhbnkiLCJzdHJpbmciLCJvbmVPZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0lBRVFBLFksR0FBa0NDLDZCLENBQWxDRCxZO0lBQWNFLGUsR0FBb0JELDZCLENBQXBCQyxlO0FBRXRCLElBQU1DLFVBQVUsR0FBRztBQUNqQix1QkFBcUI7QUFDbkJDLElBQUFBLE9BQU8sRUFBRSxNQURVO0FBRW5CQyxJQUFBQSxRQUFRLEVBQUUs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LEVBQUFBLFNBQVMsRUFBRSxFQUhTO0FBSXBCQyxFQUFBQSxRQUFRLEVBQUUsS0FKVTtBQUtwQkMsRUFBQUEsR0FBRyxFQUFFO0FBTGUsQ0FBdEI7QUFRQUwsTUFBTSxDQUFDb0IsU0FBUCxHQUFtQjtBQUNqQixpQkFBZUMsbUJBQVVDLElBRFI7QUFFakJwQixFQUFBQSxRQUFRLEVBQUVtQixtQkFBVUUsR0FGSDtBQUdqQnBCLEVBQUFBLFNBQVMsRUFBRWtCLG1CQUFVRyxNQUhKO0FBSWpCcEIsRUFBQUEsUUFBUSxFQUFFaUIsbUJBQVVDLElBSkg7QUFLakJqQixFQUFBQSxHQUFHLEVBQUVnQixtQkFBVUksS0FBVixDQUFnQixDQUFDLElBQUQsRUFBTyxLQUFQLEVBQWMsUUFBZCxDQUFoQjtBQUxZLENBQW5CO2VBUWV6QixNIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTEsIDAsIDEsIDIsIDEwXSB9XSAqL1xuXG5pbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgaXNaZXJvT3JQb3NpdGl2ZSBmcm9tICcuLi9VdGlscy9pc1plcm9PclBvc2l0aXZlJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxuY29uc3QgUk9PVF9TVFlMRSA9IHtcbiAgJyYud2ViY2hhdF9fYnViYmxlJzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcblxuICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yi1wYWQnOiB7XG4gICAgICBmbGV4U2hyaW5rOiAwXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19idWJibGVfX2NvbnRlbnQnOiB7XG4gICAgICBmbGV4R3JvdzogMSxcblxuICAgICAgLy8gVGhpcyBpcyBmb3IgaGlkaW5nIGNvbnRlbnQgb3V0c2lkZSBvZiB0aGUgYnViYmxlLCBmb3IgZXhhbXBsZSwgY29udGVudCBvdXRzaWRlIG9mIGJvcmRlciByYWRpdXNcbiAgICAgIG92ZXJmbG93OiAnaGlkZGVuJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gYWN1dGVOdWJTVkcobnViU2l6ZSwgc3Ryb2tlV2lkdGgsIHNpZGUsIHVwU2lkZURvd24gPSBmYWxzZSkge1xuICBpZiAodHlwZW9mIG51YlNpemUgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgaGFsZk51YlNpemUgPSBudWJTaXplIC8gMjtcbiAgY29uc3QgaGFsZlN0cm9rZVdpZHRoID0gc3Ryb2tlV2lkdGggLyAyO1xuXG4gIC8vIEhvcml6b250YWxseSBtaXJyb3IgdGhlIG51YiBpZiBpdCBpcyBmcm9tIHVzZXJcbiAgY29uc3QgaG9yaXpvbnRhbFRyYW5zZm9ybSA9XG4gICAgc2lkZSA9PT0gJ2JvdCcgPyAnJyA6IGB0cmFuc2xhdGUoJHtoYWxmTnViU2l6ZX0gMCkgc2NhbGUoLTEgMSkgdHJhbnNsYXRlKCR7LWhhbGZOdWJTaXplfSAwKWA7XG5cbiAgLy8gVmVydGljYWxseSBtaXJyb3IgdGhlIG51YiBpZiBpdCBpcyB1cC1zaWRlLWRvd25cbiAgY29uc3QgdmVydGljYWxUcmFuc2Zvcm0gPSB1cFNpZGVEb3duID8gYHRyYW5zbGF0ZSgwICR7aGFsZk51YlNpemV9KSBzY2FsZSgxIC0xKSB0cmFuc2xhdGUoMCAkey1oYWxmTnViU2l6ZX0pYCA6ICcnO1xuXG4gIGNvbnN0IHAxID0gW251YlNpemUsIGhhbGZTdHJva2VXaWR0aF0uam9pbignICcpO1xuICBjb25zdCBwMiA9IFtzdHJva2VXaWR0aCwgaGFsZlN0cm9rZVdpZHRoXS5qb2luKCcgJyk7XG4gIGNvbnN0IHAzID0gW251YlNpemUgKyBzdHJva2VXaWR0aCwgbnViU2l6ZSArIGhhbGZTdHJva2VXaWR0aF0uam9pbignICcpO1xuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fYnViYmxlX19udWJcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB2aWV3Qm94PXtgMCAwICR7bnViU2l6ZX0gJHtudWJTaXplfWB9XG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8ZyB0cmFuc2Zvcm09e2Ake2hvcml6b250YWxUcmFuc2Zvcm19ICR7dmVydGljYWxUcmFuc2Zvcm19YH0+XG4gICAgICAgIDxwYXRoIGNsYXNzTmFtZT1cIndlYmNoYXRfX2J1YmJsZV9fbnViLW91dGxpbmVcIiBkPXtgTSR7cDF9IEwke3AyfSBMJHtwM31gfSAvPlxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5jb25zdCBCdWJibGUgPSAoeyAnYXJpYS1oaWRkZW4nOiBhcmlhSGlkZGVuLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCBmcm9tVXNlciwgbnViIH0pID0+IHtcbiAgY29uc3QgW3sgYnViYmxlOiBidWJibGVTdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBidWJibGVCb3JkZXJXaWR0aCxcbiAgICAgIGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgsXG4gICAgICBidWJibGVGcm9tVXNlck51YlNpemUsXG4gICAgICBidWJibGVOdWJTaXplLFxuICAgICAgYnViYmxlTnViT2Zmc2V0LFxuICAgICAgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXRcbiAgICB9XG4gIF0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCB7IGJvcmRlcldpZHRoLCBudWJPZmZzZXQsIG51YlNpemUsIHNpZGUgfSA9IGZyb21Vc2VyXG4gICAgPyB7XG4gICAgICAgIGJvcmRlcldpZHRoOiBidWJibGVGcm9tVXNlckJvcmRlcldpZHRoLFxuICAgICAgICBudWJPZmZzZXQ6IGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0LFxuICAgICAgICBudWJTaXplOiBidWJibGVGcm9tVXNlck51YlNpemUsXG4gICAgICAgIHNpZGU6ICd1c2VyJ1xuICAgICAgfVxuICAgIDoge1xuICAgICAgICBib3JkZXJXaWR0aDogYnViYmxlQm9yZGVyV2lkdGgsXG4gICAgICAgIG51Yk9mZnNldDogYnViYmxlTnViT2Zmc2V0LFxuICAgICAgICBudWJTaXplOiBidWJibGVOdWJTaXplLFxuICAgICAgICBzaWRlOiAnYm90J1xuICAgICAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fYnViYmxlJyxcbiAgICAgICAge1xuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLWZyb20tdXNlcic6IGZyb21Vc2VyLFxuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLWhpZGUtbnViJzogbnViICE9PSB0cnVlICYmIG51YiAhPT0gZmFsc2UsXG4gICAgICAgICAgJ3dlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCc6IGlzWmVyb09yUG9zaXRpdmUobnViT2Zmc2V0KSxcbiAgICAgICAgICAnd2ViY2hhdF9fYnViYmxlLS1ydGwnOiBkaXJlY3Rpb24gPT09ICdydGwnLFxuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLXNob3ctbnViJzogbnViID09PSB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3RDbGFzc05hbWUsXG4gICAgICAgIGJ1YmJsZVN0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19idWJibGVfX251Yi1wYWRcIiAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19idWJibGVfX2NvbnRlbnRcIj57Y2hpbGRyZW59PC9kaXY+XG4gICAgICB7bnViID09PSB0cnVlICYmIGFjdXRlTnViU1ZHKG51YlNpemUsIGJvcmRlcldpZHRoLCBzaWRlLCAhaXNaZXJvT3JQb3NpdGl2ZShudWJPZmZzZXQpKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkJ1YmJsZS5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IHVuZGVmaW5lZCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgZnJvbVVzZXI6IGZhbHNlLFxuICBudWI6IGZhbHNlXG59O1xuXG5CdWJibGUucHJvcFR5cGVzID0ge1xuICAnYXJpYS1oaWRkZW4nOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZnJvbVVzZXI6IFByb3BUeXBlcy5ib29sLFxuICBudWI6IFByb3BUeXBlcy5vbmVPZihbdHJ1ZSwgZmFsc2UsICdoaWRkZW4nXSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1YmJsZTtcbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9CdWJibGUudHN4Il0sIm5hbWVzIjpbInVzZURpcmVjdGlvbiIsImhvb2tzIiwidXNlU3R5bGVPcHRpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJwb3NpdGlvbiIsImZsZXhTaHJpbmsiLCJmbGV4R3JvdyIsIm92ZXJmbG93IiwiYWN1dGVOdWJTVkciLCJudWJTaXplIiwic3Ryb2tlV2lkdGgiLCJzaWRlIiwidXBTaWRlRG93biIsImhhbGZOdWJTaXplIiwiaGFsZlN0cm9rZVdpZHRoIiwiaG9yaXpvbnRhbFRyYW5zZm9ybSIsInZlcnRpY2FsVHJhbnNmb3JtIiwicDEiLCJqb2luIiwicDIiLCJwMyIsIkJ1YmJsZSIsImFyaWFIaWRkZW4iLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImZyb21Vc2VyIiwibnViIiwiYnViYmxlU3R5bGVTZXQiLCJidWJibGUiLCJkaXJlY3Rpb24iLCJidWJibGVCb3JkZXJXaWR0aCIsImJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgiLCJidWJibGVGcm9tVXNlck51YlNpemUiLCJidWJibGVOdWJTaXplIiwiYnViYmxlTnViT2Zmc2V0IiwiYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQiLCJyb290Q2xhc3NOYW1lIiwiYm9yZGVyV2lkdGgiLCJudWJPZmZzZXQiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwiYW55Iiwic3RyaW5nIiwib25lT2YiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQVFBLFlBQVIsR0FBMENDLDZCQUExQyxDQUFRRCxZQUFSO0FBQUEsSUFBc0JFLGVBQXRCLEdBQTBDRCw2QkFBMUMsQ0FBc0JDLGVBQXRCO0FBRUEsSUFBTUMsVUFBVSxHQUFHO0FBQ2pCLHVCQUFxQjtBQUNuQkMsSUFBQUEsT0FBTyxFQUFFLE1BRFU7QUFFbkJDLElBQUFBLFFBQVEsRUFBRSxVQUZTO0FBSW5CLG1DQUErQjtBQUM3QkMsTUFBQUEsVUFBVSxFQUFFO0FBRGlCLEtBSlo7QUFRbkIsbUNBQStCO0FBQzdCQyxNQUFBQSxRQUFRLEVBQUUsQ0FEbUI7QUFHN0I7QUFDQUMsTUFBQUEsUUFBUSxFQUFFO0FBSm1CO0FBUlo7QUFESixDQUFuQjs7QUFrQkEsU0FBU0MsV0FBVCxDQUFxQkMsT0FBckIsRUFBOEJDLFdBQTlCLEVBQTJDQyxJQUEzQyxFQUFxRTtBQUFBLE1BQXBCQyxVQUFvQix1RUFBUCxLQUFPOztBQUNuRSxNQUFJLE9BQU9ILE9BQVAsS0FBbUIsUUFBdkIsRUFBaUM7QUFDL0IsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBTUksV0FBVyxHQUFHSixPQUFPLEdBQUcsQ0FBOUI7QUFDQSxNQUFNSyxlQUFlLEdBQUdKLFdBQVcsR0FBRyxDQUF0QyxDQU5tRSxDQVFuRTs7QUFDQSxNQUFNSyxtQkFBbUIsR0FDdkJKLElBQUksS0FBSyxLQUFULEdBQWlCLEVBQWpCLHVCQUFtQ0UsV0FBbkMsdUNBQTJFLENBQUNBLFdBQTVFLFFBREYsQ0FUbUUsQ0FZbkU7O0FBQ0EsTUFBTUcsaUJBQWlCLEdBQUdKLFVBQVUseUJBQWtCQyxXQUFsQix1Q0FBMEQsQ0FBQ0EsV0FBM0QsU0FBNEUsRUFBaEg7QUFFQSxNQUFNSSxFQUFFLEdBQUcsQ0FBQ1IsT0FBRCxFQUFVSyxlQUFWLEVBQTJCSSxJQUEzQixDQUFnQyxHQUFoQyxDQUFYO0FBQ0EsTUFBTUMsRUFBRSxHQUFHLENBQUNULFdBQUQsRUFBY0ksZUFBZCxFQUErQkksSUFBL0IsQ0FBb0MsR0FBcEMsQ0FBWDtBQUNBLE1BQU1FLEVBQUUsR0FBRyxDQUFDWCxPQUFPLEdBQUdDLFdBQVgsRUFBd0JELE9BQU8sR0FBR0ssZUFBbEMsRUFBbURJLElBQW5ELENBQXdELEdBQXhELENBQVg7QUFFQSxzQkFDRTtBQUNFLElBQUEsU0FBUyxFQUFDLHNCQURaO0FBRUUsSUFBQSxPQUFPLEVBQUMsS0FGVjtBQUdFLElBQUEsT0FBTyxnQkFBU1QsT0FBVCxjQUFvQkEsT0FBcEIsQ0FIVDtBQUlFLElBQUEsS0FBSyxFQUFDO0FBSlIsa0JBTUU7QUFBRyxJQUFBLFNBQVMsWUFBS00sbUJBQUwsY0FBNEJDLGlCQUE1QjtBQUFaLGtCQUNFO0FBQU0sSUFBQSxTQUFTLEVBQUMsOEJBQWhCO0FBQStDLElBQUEsQ0FBQyxhQUFNQyxFQUFOLGVBQWFFLEVBQWIsZUFBb0JDLEVBQXBCO0FBQWhELElBREYsQ0FORixDQURGO0FBWUQ7O0FBVUQsSUFBTUMsTUFBdUIsR0FBRyxTQUExQkEsTUFBMEIsT0FBdUU7QUFBQSxNQUFyREMsVUFBcUQsUUFBcEUsYUFBb0U7QUFBQSxNQUF6Q0MsUUFBeUMsUUFBekNBLFFBQXlDO0FBQUEsTUFBL0JDLFNBQStCLFFBQS9CQSxTQUErQjtBQUFBLE1BQXBCQyxRQUFvQixRQUFwQkEsUUFBb0I7QUFBQSxNQUFWQyxHQUFVLFFBQVZBLEdBQVU7O0FBQ3JHLHFCQUFxQyw0QkFBckM7QUFBQTtBQUFBLE1BQWlCQyxjQUFqQixvQkFBU0MsTUFBVDs7QUFDQSxzQkFBb0I3QixZQUFZLEVBQWhDO0FBQUE7QUFBQSxNQUFPOEIsU0FBUDs7QUFDQSx5QkFTSTVCLGVBQWUsRUFUbkI7QUFBQTtBQUFBO0FBQUEsTUFFSTZCLGlCQUZKLHNCQUVJQSxpQkFGSjtBQUFBLE1BR0lDLHlCQUhKLHNCQUdJQSx5QkFISjtBQUFBLE1BSUlDLHFCQUpKLHNCQUlJQSxxQkFKSjtBQUFBLE1BS0lDLGFBTEosc0JBS0lBLGFBTEo7QUFBQSxNQU1JQyxlQU5KLHNCQU1JQSxlQU5KO0FBQUEsTUFPSUMsdUJBUEosc0JBT0lBLHVCQVBKOztBQVVBLE1BQU1DLGFBQWEsR0FBRyx3Q0FBMEJsQyxVQUExQixJQUF3QyxFQUE5RDs7QUFFQSxjQUFrRHVCLFFBQVEsR0FDdEQ7QUFDRVksSUFBQUEsV0FBVyxFQUFFTix5QkFEZjtBQUVFTyxJQUFBQSxTQUFTLEVBQUVILHVCQUZiO0FBR0UxQixJQUFBQSxPQUFPLEVBQUV1QixxQkFIWDtBQUlFckIsSUFBQUEsSUFBSSxFQUFFO0FBSlIsR0FEc0QsR0FPdEQ7QUFDRTBCLElBQUFBLFdBQVcsRUFBRVAsaUJBRGY7QUFFRVEsSUFBQUEsU0FBUyxFQUFFSixlQUZiO0FBR0V6QixJQUFBQSxPQUFPLEVBQUV3QixhQUhYO0FBSUV0QixJQUFBQSxJQUFJLEVBQUU7QUFKUixHQVBKO0FBQUEsTUFBUTBCLFdBQVIsU0FBUUEsV0FBUjtBQUFBLE1BQXFCQyxTQUFyQixTQUFxQkEsU0FBckI7QUFBQSxNQUFnQzdCLE9BQWhDLFNBQWdDQSxPQUFoQztBQUFBLE1BQXlDRSxJQUF6QyxTQUF5Q0EsSUFBekM7O0FBY0Esc0JBQ0U7QUFDRSxtQkFBYVcsVUFEZjtBQUVFLElBQUEsU0FBUyxFQUFFLHlCQUNULGlCQURTLEVBRVQ7QUFDRSxvQ0FBOEJHLFFBRGhDO0FBRUUsbUNBQTZCQyxHQUFHLEtBQUssSUFBUixJQUFnQkEsR0FBRyxLQUFLLEtBRnZEO0FBR0UscUNBQStCLCtCQUFpQlksU0FBakIsQ0FIakM7QUFJRSw4QkFBd0JULFNBQVMsS0FBSyxLQUp4QztBQUtFLG1DQUE2QkgsR0FBRyxLQUFLO0FBTHZDLEtBRlMsRUFTVFUsYUFUUyxFQVVUVCxjQUFjLEdBQUcsRUFWUixFQVdULENBQUNILFNBQVMsSUFBSSxFQUFkLElBQW9CLEVBWFg7QUFGYixrQkFnQkU7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLElBaEJGLGVBaUJFO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixLQUEyQ0QsUUFBM0MsQ0FqQkYsRUFrQkdHLEdBQUcsS0FBSyxJQUFSLElBQWdCbEIsV0FBVyxDQUFDQyxPQUFELEVBQVU0QixXQUFWLEVBQXVCMUIsSUFBdkIsRUFBNkIsQ0FBQywrQkFBaUIyQixTQUFqQixDQUE5QixDQWxCOUIsQ0FERjtBQXNCRCxDQW5ERDs7QUFxREFqQixNQUFNLENBQUNrQixZQUFQLEdBQXNCO0FBQ3BCLGlCQUFlQyxTQURLO0FBRXBCakIsRUFBQUEsUUFBUSxFQUFFaUIsU0FGVTtBQUdwQmhCLEVBQUFBLFNBQVMsRUFBRSxFQUhTO0FBSXBCQyxFQUFBQSxRQUFRLEVBQUUsS0FKVTtBQUtwQkMsRUFBQUEsR0FBRyxFQUFFO0FBTGUsQ0FBdEI7QUFRQUwsTUFBTSxDQUFDb0IsU0FBUCxHQUFtQjtBQUNqQixpQkFBZUMsbUJBQVVDLElBRFI7QUFFakJwQixFQUFBQSxRQUFRLEVBQUVtQixtQkFBVUUsR0FGSDtBQUdqQnBCLEVBQUFBLFNBQVMsRUFBRWtCLG1CQUFVRyxNQUhKO0FBSWpCcEIsRUFBQUEsUUFBUSxFQUFFaUIsbUJBQVVDLElBSkg7QUFLakJqQixFQUFBQSxHQUFHLEVBQUVnQixtQkFBVUksS0FBVixDQUFnQixDQUFDLElBQUQsRUFBTyxLQUFQLEVBQWMsUUFBZCxDQUFoQjtBQUxZLENBQW5CO2VBUWV6QixNIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTEsIDAsIDEsIDIsIDEwXSB9XSAqL1xuXG5pbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgRkMsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IGlzWmVyb09yUG9zaXRpdmUgZnJvbSAnLi4vVXRpbHMvaXNaZXJvT3JQb3NpdGl2ZSc7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0JztcblxuY29uc3QgeyB1c2VEaXJlY3Rpb24sIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX2J1YmJsZSc6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG5cbiAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWItcGFkJzoge1xuICAgICAgZmxleFNocmluazogMFxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgZmxleEdyb3c6IDEsXG5cbiAgICAgIC8vIFRoaXMgaXMgZm9yIGhpZGluZyBjb250ZW50IG91dHNpZGUgb2YgdGhlIGJ1YmJsZSwgZm9yIGV4YW1wbGUsIGNvbnRlbnQgb3V0c2lkZSBvZiBib3JkZXIgcmFkaXVzXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGFjdXRlTnViU1ZHKG51YlNpemUsIHN0cm9rZVdpZHRoLCBzaWRlLCB1cFNpZGVEb3duID0gZmFsc2UpIHtcbiAgaWYgKHR5cGVvZiBudWJTaXplICE9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGhhbGZOdWJTaXplID0gbnViU2l6ZSAvIDI7XG4gIGNvbnN0IGhhbGZTdHJva2VXaWR0aCA9IHN0cm9rZVdpZHRoIC8gMjtcblxuICAvLyBIb3Jpem9udGFsbHkgbWlycm9yIHRoZSBudWIgaWYgaXQgaXMgZnJvbSB1c2VyXG4gIGNvbnN0IGhvcml6b250YWxUcmFuc2Zvcm0gPVxuICAgIHNpZGUgPT09ICdib3QnID8gJycgOiBgdHJhbnNsYXRlKCR7aGFsZk51YlNpemV9IDApIHNjYWxlKC0xIDEpIHRyYW5zbGF0ZSgkey1oYWxmTnViU2l6ZX0gMClgO1xuXG4gIC8vIFZlcnRpY2FsbHkgbWlycm9yIHRoZSBudWIgaWYgaXQgaXMgdXAtc2lkZS1kb3duXG4gIGNvbnN0IHZlcnRpY2FsVHJhbnNmb3JtID0gdXBTaWRlRG93biA/IGB0cmFuc2xhdGUoMCAke2hhbGZOdWJTaXplfSkgc2NhbGUoMSAtMSkgdHJhbnNsYXRlKDAgJHstaGFsZk51YlNpemV9KWAgOiAnJztcblxuICBjb25zdCBwMSA9IFtudWJTaXplLCBoYWxmU3Ryb2tlV2lkdGhdLmpvaW4oJyAnKTtcbiAgY29uc3QgcDIgPSBbc3Ryb2tlV2lkdGgsIGhhbGZTdHJva2VXaWR0aF0uam9pbignICcpO1xuICBjb25zdCBwMyA9IFtudWJTaXplICsgc3Ryb2tlV2lkdGgsIG51YlNpemUgKyBoYWxmU3Ryb2tlV2lkdGhdLmpvaW4oJyAnKTtcblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX2J1YmJsZV9fbnViXCJcbiAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgdmlld0JveD17YDAgMCAke251YlNpemV9ICR7bnViU2l6ZX1gfVxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPGcgdHJhbnNmb3JtPXtgJHtob3Jpem9udGFsVHJhbnNmb3JtfSAke3ZlcnRpY2FsVHJhbnNmb3JtfWB9PlxuICAgICAgICA8cGF0aCBjbGFzc05hbWU9XCJ3ZWJjaGF0X19idWJibGVfX251Yi1vdXRsaW5lXCIgZD17YE0ke3AxfSBMJHtwMn0gTCR7cDN9YH0gLz5cbiAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxudHlwZSBCdWJibGVQcm9wcyA9IHtcbiAgJ2FyaWEtaGlkZGVuJz86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGZyb21Vc2VyPzogYm9vbGVhbjtcbiAgbnViPzogYm9vbGVhbiB8ICdoaWRkZW4nO1xufTtcblxuY29uc3QgQnViYmxlOiBGQzxCdWJibGVQcm9wcz4gPSAoeyAnYXJpYS1oaWRkZW4nOiBhcmlhSGlkZGVuLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCBmcm9tVXNlciwgbnViIH0pID0+IHtcbiAgY29uc3QgW3sgYnViYmxlOiBidWJibGVTdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBidWJibGVCb3JkZXJXaWR0aCxcbiAgICAgIGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgsXG4gICAgICBidWJibGVGcm9tVXNlck51YlNpemUsXG4gICAgICBidWJibGVOdWJTaXplLFxuICAgICAgYnViYmxlTnViT2Zmc2V0LFxuICAgICAgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXRcbiAgICB9XG4gIF0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCB7IGJvcmRlcldpZHRoLCBudWJPZmZzZXQsIG51YlNpemUsIHNpZGUgfSA9IGZyb21Vc2VyXG4gICAgPyB7XG4gICAgICAgIGJvcmRlcldpZHRoOiBidWJibGVGcm9tVXNlckJvcmRlcldpZHRoLFxuICAgICAgICBudWJPZmZzZXQ6IGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0LFxuICAgICAgICBudWJTaXplOiBidWJibGVGcm9tVXNlck51YlNpemUsXG4gICAgICAgIHNpZGU6ICd1c2VyJ1xuICAgICAgfVxuICAgIDoge1xuICAgICAgICBib3JkZXJXaWR0aDogYnViYmxlQm9yZGVyV2lkdGgsXG4gICAgICAgIG51Yk9mZnNldDogYnViYmxlTnViT2Zmc2V0LFxuICAgICAgICBudWJTaXplOiBidWJibGVOdWJTaXplLFxuICAgICAgICBzaWRlOiAnYm90J1xuICAgICAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fYnViYmxlJyxcbiAgICAgICAge1xuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLWZyb20tdXNlcic6IGZyb21Vc2VyLFxuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLWhpZGUtbnViJzogbnViICE9PSB0cnVlICYmIG51YiAhPT0gZmFsc2UsXG4gICAgICAgICAgJ3dlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCc6IGlzWmVyb09yUG9zaXRpdmUobnViT2Zmc2V0KSxcbiAgICAgICAgICAnd2ViY2hhdF9fYnViYmxlLS1ydGwnOiBkaXJlY3Rpb24gPT09ICdydGwnLFxuICAgICAgICAgICd3ZWJjaGF0X19idWJibGUtLXNob3ctbnViJzogbnViID09PSB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3RDbGFzc05hbWUsXG4gICAgICAgIGJ1YmJsZVN0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19idWJibGVfX251Yi1wYWRcIiAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19idWJibGVfX2NvbnRlbnRcIj57Y2hpbGRyZW59PC9kaXY+XG4gICAgICB7bnViID09PSB0cnVlICYmIGFjdXRlTnViU1ZHKG51YlNpemUsIGJvcmRlcldpZHRoLCBzaWRlLCAhaXNaZXJvT3JQb3NpdGl2ZShudWJPZmZzZXQpKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkJ1YmJsZS5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IHVuZGVmaW5lZCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgZnJvbVVzZXI6IGZhbHNlLFxuICBudWI6IGZhbHNlXG59O1xuXG5CdWJibGUucHJvcFR5cGVzID0ge1xuICAnYXJpYS1oaWRkZW4nOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZnJvbVVzZXI6IFByb3BUeXBlcy5ib29sLFxuICBudWI6IFByb3BUeXBlcy5vbmVPZihbdHJ1ZSwgZmFsc2UsICdoaWRkZW4nXSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1YmJsZTtcbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.connectCarouselFilmStrip = exports.default = void 0;
6
+ exports.default = exports.connectCarouselFilmStrip = void 0;
7
7
 
8
8
  var _botframeworkWebchatApi = require("botframework-webchat-api");
9
9
 
@@ -17,6 +17,8 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _Bubble = _interopRequireDefault(require("./Bubble"));
19
19
 
20
+ var _CarouselFilmStripAttachment = _interopRequireDefault(require("./CarouselFilmStripAttachment"));
21
+
20
22
  var _connectToWebChat = _interopRequireDefault(require("../connectToWebChat"));
21
23
 
22
24
  var _isZeroOrPositive = _interopRequireDefault(require("../Utils/isZeroOrPositive"));
@@ -29,8 +31,6 @@ var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
29
31
 
30
32
  var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
31
33
 
32
- var _useUniqueId = _interopRequireDefault(require("../hooks/internal/useUniqueId"));
33
-
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
36
36
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -41,7 +41,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
41
41
 
42
42
  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; }
43
43
 
44
- 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; }
44
+ 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; }
45
45
 
46
46
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
47
 
@@ -67,7 +67,7 @@ var ROOT_STYLE = {
67
67
  '& .webchat__carousel-filmstrip__alignment-pad': {
68
68
  flexShrink: 0
69
69
  },
70
- '& .webchat__carousel-filmstrip__attachment': {
70
+ '& .webchat__carousel-filmstrip-attachment': {
71
71
  flex: 1
72
72
  },
73
73
  '& .webchat__carousel-filmstrip__attachments': {
@@ -173,7 +173,6 @@ var CarouselFilmStrip = function CarouselFilmStrip(_ref3) {
173
173
  _useDirection2 = _slicedToArray(_useDirection, 1),
174
174
  direction = _useDirection2[0];
175
175
 
176
- var ariaLabelId = (0, _useUniqueId.default)('webchat__carousel-filmstrip__id');
177
176
  var localize = useLocalizer();
178
177
  var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
179
178
  var showActivityStatus = typeof renderActivityStatus === 'function';
@@ -193,7 +192,6 @@ var CarouselFilmStrip = function CarouselFilmStrip(_ref3) {
193
192
  textFormat = activity.textFormat;
194
193
  var activityDisplayText = messageBackDisplayText || text;
195
194
  var fromUser = role === 'user';
196
- var attachedAlt = localize(fromUser ? 'ACTIVITY_YOU_ATTACHED_ALT' : 'ACTIVITY_BOT_ATTACHED_ALT');
197
195
  var greetingAlt = (fromUser ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')).replace(/[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]{2,}/g, ' ');
198
196
  var initials = fromUser ? userInitials : botInitials;
199
197
  var nubOffset = fromUser ? bubbleFromUserNubOffset : bubbleNubOffset;
@@ -209,12 +207,12 @@ var CarouselFilmStrip = function CarouselFilmStrip(_ref3) {
209
207
 
210
208
  var showAvatar = showCallout && hasAvatar && !!renderAvatar;
211
209
  var showNub = showCallout && hasNub && (topAlignedCallout || !attachments.length);
210
+ var hideNub = hasNub && !showNub;
212
211
  return /*#__PURE__*/_react.default.createElement("div", {
213
- "aria-labelledby": ariaLabelId,
214
212
  className: (0, _classnames.default)('webchat__carousel-filmstrip', {
215
213
  'webchat__carousel-filmstrip--extra-trailing': extraTrailing,
216
214
  'webchat__carousel-filmstrip--hide-avatar': hasAvatar && !showAvatar,
217
- 'webchat__carousel-filmstrip--hide-nub': hasNub && !showNub,
215
+ 'webchat__carousel-filmstrip--hide-nub': hideNub,
218
216
  'webchat__carousel-filmstrip--no-message': !activityDisplayText,
219
217
  'webchat__carousel-filmstrip--rtl': direction === 'rtl',
220
218
  'webchat__carousel-filmstrip--show-avatar': showAvatar,
@@ -233,11 +231,7 @@ var CarouselFilmStrip = function CarouselFilmStrip(_ref3) {
233
231
  className: "webchat__carousel-filmstrip__content"
234
232
  }, !!activityDisplayText && /*#__PURE__*/_react.default.createElement("div", {
235
233
  "aria-roledescription": "message",
236
- className: "webchat__carousel-filmstrip__message" // Disable "Prop `id` is forbidden on DOM Nodes" rule because we are using the ID prop for accessibility.
237
-
238
- /* eslint-disable-next-line react/forbid-dom-props */
239
- ,
240
- id: ariaLabelId,
234
+ className: "webchat__carousel-filmstrip__message",
241
235
  role: "group"
242
236
  }, /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
243
237
  text: greetingAlt
@@ -263,25 +257,21 @@ var CarouselFilmStrip = function CarouselFilmStrip(_ref3) {
263
257
  className: "webchat__carousel-filmstrip__attachments react-film__filmstrip__list",
264
258
  ref: itemContainerCallbackRef
265
259
  }, attachments.map(function (attachment, index) {
266
- return /*#__PURE__*/_react.default.createElement("li", {
267
- "aria-roledescription": "attachment",
268
- className: "webchat__carousel-filmstrip__attachment react-film__filmstrip__item"
260
+ return /*#__PURE__*/_react.default.createElement(_CarouselFilmStripAttachment.default, {
261
+ activity: activity,
262
+ attachment: attachment,
263
+ fromUser: fromUser,
264
+ hasAvatar: hasAvatar,
265
+ hideNub: hideNub,
266
+ index: index
269
267
  /* Attachments do not have an ID; it is always indexed by number */
270
-
271
- /* eslint-disable-next-line react/no-array-index-key */
268
+ // eslint-disable-next-line react/no-array-index-key
272
269
  ,
273
270
  key: index,
274
- role: "listitem"
275
- }, /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
276
- text: attachedAlt
277
- }), /*#__PURE__*/_react.default.createElement(_Bubble.default, {
278
- fromUser: fromUser,
279
- key: index,
280
- nub: false
281
- }, renderAttachment({
282
- activity: activity,
283
- attachment: attachment
284
- })));
271
+ renderAttachment: renderAttachment,
272
+ showAvatar: showAvatar,
273
+ showNub: showNub
274
+ });
285
275
  }))))), /*#__PURE__*/_react.default.createElement("div", {
286
276
  className: "webchat__carousel-filmstrip__alignment-pad"
287
277
  })), showActivityStatus && /*#__PURE__*/_react.default.createElement("div", {
@@ -327,4 +317,4 @@ CarouselFilmStrip.propTypes = {
327
317
  };
328
318
  var _default = CarouselFilmStrip;
329
319
  exports.default = _default;
330
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9DYXJvdXNlbEZpbG1TdHJpcC5qcyJdLCJuYW1lcyI6WyJ1c2VBdmF0YXJGb3JCb3QiLCJob29rcyIsInVzZUF2YXRhckZvclVzZXIiLCJ1c2VEaXJlY3Rpb24iLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJNc092ZXJmbG93U3R5bGUiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJwb3NpdGlvbiIsInRvdWNoQWN0aW9uIiwiV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmciLCJmbGV4U2hyaW5rIiwiZmxleCIsImxpc3RTdHlsZVR5cGUiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZmxleEdyb3ciLCJjb25uZWN0Q2Fyb3VzZWxGaWxtU3RyaXAiLCJzZWxlY3RvcnMiLCJjb25uZWN0VG9XZWJDaGF0IiwibGFuZ3VhZ2UiLCJzdHlsZVNldCIsIm9wdGlvbnMiLCJib3RBdmF0YXJJbml0aWFscyIsInVzZXJBdmF0YXJJbml0aWFscyIsImFjdGl2aXR5IiwiZnJvbSIsInJvbGUiLCJhdmF0YXJJbml0aWFscyIsIkNhcm91c2VsRmlsbVN0cmlwIiwiY2xhc3NOYW1lIiwiaGlkZVRpbWVzdGFtcCIsInJlbmRlckFjdGl2aXR5U3RhdHVzIiwicmVuZGVyQXR0YWNobWVudCIsInJlbmRlckF2YXRhciIsInNob3dDYWxsb3V0IiwiYnViYmxlTnViT2Zmc2V0IiwiYnViYmxlTnViU2l6ZSIsImJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0IiwiYnViYmxlRnJvbVVzZXJOdWJTaXplIiwiY2Fyb3VzZWxGaWxtU3RyaXBTdHlsZVNldCIsImNhcm91c2VsRmlsbVN0cmlwIiwiYm90SW5pdGlhbHMiLCJpbml0aWFscyIsInVzZXJJbml0aWFscyIsImRpcmVjdGlvbiIsImFyaWFMYWJlbElkIiwibG9jYWxpemUiLCJyb290Q2xhc3NOYW1lIiwic2hvd0FjdGl2aXR5U3RhdHVzIiwiaXRlbUNvbnRhaW5lckNhbGxiYWNrUmVmIiwic2Nyb2xsYWJsZUNhbGxiYWNrUmVmIiwiYXR0YWNobWVudHMiLCJjaGFubmVsRGF0YSIsIm1lc3NhZ2VCYWNrIiwibWVzc2FnZUJhY2tEaXNwbGF5VGV4dCIsImRpc3BsYXlUZXh0IiwidGV4dCIsInRleHRGb3JtYXQiLCJhY3Rpdml0eURpc3BsYXlUZXh0IiwiZnJvbVVzZXIiLCJhdHRhY2hlZEFsdCIsImdyZWV0aW5nQWx0IiwicmVwbGFjZSIsIm51Yk9mZnNldCIsIm51YlNpemUiLCJvdGhlckluaXRpYWxzIiwib3RoZXJOdWJTaXplIiwiaGFzQXZhdGFyIiwiaGFzT3RoZXJBdmF0YXIiLCJoYXNOdWIiLCJoYXNPdGhlck51YiIsInRvcEFsaWduZWRDYWxsb3V0IiwiZXh0cmFUcmFpbGluZyIsInNob3dBdmF0YXIiLCJzaG93TnViIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNvbnRlbnQiLCJjb250ZW50VHlwZSIsIm1hcCIsImluZGV4IiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic2hhcGUiLCJhcnJheSIsInN0cmluZyIsInN0YXRlIiwiaXNSZXF1aXJlZCIsInRpbWVzdGFtcCIsImJvb2wiLCJvbmVPZlR5cGUiLCJvbmVPZiIsImZ1bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztJQUVRQSxlLEdBQW1GQyw2QixDQUFuRkQsZTtJQUFpQkUsZ0IsR0FBa0VELDZCLENBQWxFQyxnQjtJQUFrQkMsWSxHQUFnREYsNkIsQ0FBaERFLFk7SUFBY0MsWSxHQUFrQ0gsNkIsQ0FBbENHLFk7SUFBY0MsZSxHQUFvQkosNkIsQ0FBcEJJLGU7QUFFdkUsSUFBTUMsVUFBVSxHQUFHO0FBQ2pCLG1DQUFpQztBQUMvQkMsSUFBQUEsT0FBTyxFQUFFLE1BRHNCO0FB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QUEsV0FBVyxFQUFFNEIsbUJBQVVHO0FBREksT0FBaEIsQ0FEYztBQUkzQkMsTUFBQUEsS0FBSyxFQUFFSixtQkFBVUc7QUFKVSxLQUFoQixDQUZXO0FBUXhCN0QsSUFBQUEsSUFBSSxFQUFFMEQsbUJBQVVDLEtBQVYsQ0FBZ0I7QUFDcEIxRCxNQUFBQSxJQUFJLEVBQUV5RCxtQkFBVUcsTUFBVixDQUFpQkU7QUFESCxLQUFoQixFQUVIQSxVQVZxQjtBQVd4QmhDLElBQUFBLElBQUksRUFBRTJCLG1CQUFVRyxNQVhRO0FBWXhCN0IsSUFBQUEsVUFBVSxFQUFFMEIsbUJBQVVHLE1BWkU7QUFheEJHLElBQUFBLFNBQVMsRUFBRU4sbUJBQVVHO0FBYkcsR0FBaEIsRUFjUEUsVUFmeUI7QUFnQjVCM0QsRUFBQUEsU0FBUyxFQUFFc0QsbUJBQVVHLE1BaEJPO0FBaUI1QnhELEVBQUFBLGFBQWEsRUFBRXFELG1CQUFVTyxJQWpCRztBQWtCNUIzRCxFQUFBQSxvQkFBb0IsRUFBRW9ELG1CQUFVUSxTQUFWLENBQW9CLENBQUNSLG1CQUFVUyxLQUFWLENBQWdCLENBQUMsS0FBRCxDQUFoQixDQUFELEVBQTJCVCxtQkFBVVUsSUFBckMsQ0FBcEIsQ0FsQk07QUFtQjVCN0QsRUFBQUEsZ0JBQWdCLEVBQUVtRCxtQkFBVVUsSUFBVixDQUFlTCxVQW5CTDtBQW9CNUJ2RCxFQUFBQSxZQUFZLEVBQUVrRCxtQkFBVVEsU0FBVixDQUFvQixDQUFDUixtQkFBVVMsS0FBVixDQUFnQixDQUFDLEtBQUQsQ0FBaEIsQ0FBRCxFQUEyQlQsbUJBQVVVLElBQXJDLENBQXBCLENBcEJjO0FBcUI1QjNELEVBQUFBLFdBQVcsRUFBRWlELG1CQUFVTztBQXJCSyxDQUE5QjtlQXdCZTlELGlCIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgY29tcGxleGl0eTogW1wiZXJyb3JcIiwgMzBdICovXG5cbmltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCB7IHVzZUl0ZW1Db250YWluZXJDYWxsYmFja1JlZiwgdXNlU2Nyb2xsYWJsZUNhbGxiYWNrUmVmIH0gZnJvbSAncmVhY3QtZmlsbSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgQnViYmxlIGZyb20gJy4vQnViYmxlJztcbmltcG9ydCBjb25uZWN0VG9XZWJDaGF0IGZyb20gJy4uL2Nvbm5lY3RUb1dlYkNoYXQnO1xuaW1wb3J0IGlzWmVyb09yUG9zaXRpdmUgZnJvbSAnLi4vVXRpbHMvaXNaZXJvT3JQb3NpdGl2ZSc7XG5pbXBvcnQgU2NyZWVuUmVhZGVyVGV4dCBmcm9tICcuLi9TY3JlZW5SZWFkZXJUZXh0JztcbmltcG9ydCB0ZXh0Rm9ybWF0VG9Db250ZW50VHlwZSBmcm9tICcuLi9VdGlscy90ZXh0Rm9ybWF0VG9Db250ZW50VHlwZSc7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0JztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VVbmlxdWVJZCc7XG5cbmNvbnN0IHsgdXNlQXZhdGFyRm9yQm90LCB1c2VBdmF0YXJGb3JVc2VyLCB1c2VEaXJlY3Rpb24sIHVzZUxvY2FsaXplciwgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxuY29uc3QgUk9PVF9TVFlMRSA9IHtcbiAgJyYud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwJzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBNc092ZXJmbG93U3R5bGU6ICdub25lJyxcbiAgICBvdmVyZmxvd1g6ICdzY3JvbGwnLFxuICAgIG92ZXJmbG93WTogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsIC8vIFRoaXMgaXMgdG8ga2VlcCBzY3JlZW4gcmVhZGVyIHRleHQgaW4gdGhlIGRlc3RpbmF0ZWQgYXJlYS5cbiAgICB0b3VjaEFjdGlvbjogJ21hbmlwdWxhdGlvbicsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCcsXG5cbiAgICAnJjo6LXdlYmtpdC1zY3JvbGxiYXInOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYWxpZ25tZW50LXBhZCc6IHtcbiAgICAgIGZsZXhTaHJpbms6IDBcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYXR0YWNobWVudCc6IHtcbiAgICAgIGZsZXg6IDFcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYXR0YWNobWVudHMnOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDAsXG4gICAgICBwYWRkaW5nOiAwXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F2YXRhcic6IHtcbiAgICAgIGZsZXhTaHJpbms6IDBcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYXZhdGFyLWd1dHRlcic6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgZmxleFNocmluazogMFxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19jb21wbGltZW50YXJ5Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2NvbXBsaW1lbnRhcnktY29udGVudCc6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbidcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fY29udGVudCc6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbidcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fZmlsbGVyJzoge1xuICAgICAgZmxleEdyb3c6IDEwMDAwLFxuICAgICAgZmxleFNocmluazogMVxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19tYWluJzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX21lc3NhZ2UnOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCdcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fbnViLXBhZCc6IHtcbiAgICAgIGZsZXhTaHJpbms6IDBcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fc3RhdHVzJzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBjb25uZWN0Q2Fyb3VzZWxGaWxtU3RyaXAgPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgIChcbiAgICAgIHtcbiAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgIHN0eWxlU2V0OiB7XG4gICAgICAgICAgb3B0aW9uczogeyBib3RBdmF0YXJJbml0aWFscywgdXNlckF2YXRhckluaXRpYWxzIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWN0aXZpdHk6IHsgZnJvbTogeyByb2xlIH0gPSB7fSB9ID0ge30gfVxuICAgICkgPT4gKHtcbiAgICAgIGF2YXRhckluaXRpYWxzOiByb2xlID09PSAndXNlcicgPyB1c2VyQXZhdGFySW5pdGlhbHMgOiBib3RBdmF0YXJJbml0aWFscyxcbiAgICAgIGxhbmd1YWdlXG4gICAgfSksXG4gICAgLi4uc2VsZWN0b3JzXG4gICk7XG5cbmNvbnN0IENhcm91c2VsRmlsbVN0cmlwID0gKHtcbiAgYWN0aXZpdHksXG4gIGNsYXNzTmFtZSxcbiAgaGlkZVRpbWVzdGFtcCxcbiAgcmVuZGVyQWN0aXZpdHlTdGF0dXMsXG4gIHJlbmRlckF0dGFjaG1lbnQsXG4gIHJlbmRlckF2YXRhcixcbiAgc2hvd0NhbGxvdXRcbn0pID0+IHtcbiAgY29uc3QgW3sgYnViYmxlTnViT2Zmc2V0LCBidWJibGVOdWJTaXplLCBidWJibGVGcm9tVXNlck51Yk9mZnNldCwgYnViYmxlRnJvbVVzZXJOdWJTaXplIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFt7IGNhcm91c2VsRmlsbVN0cmlwOiBjYXJvdXNlbEZpbG1TdHJpcFN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW3sgaW5pdGlhbHM6IGJvdEluaXRpYWxzIH1dID0gdXNlQXZhdGFyRm9yQm90KCk7XG4gIGNvbnN0IFt7IGluaXRpYWxzOiB1c2VySW5pdGlhbHMgfV0gPSB1c2VBdmF0YXJGb3JVc2VyKCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IGFyaWFMYWJlbElkID0gdXNlVW5pcXVlSWQoJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9faWQnKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcbiAgY29uc3Qgc2hvd0FjdGl2aXR5U3RhdHVzID0gdHlwZW9mIHJlbmRlckFjdGl2aXR5U3RhdHVzID09PSAnZnVuY3Rpb24nO1xuXG4gIGNvbnN0IGl0ZW1Db250YWluZXJDYWxsYmFja1JlZiA9IHVzZUl0ZW1Db250YWluZXJDYWxsYmFja1JlZigpO1xuICBjb25zdCBzY3JvbGxhYmxlQ2FsbGJhY2tSZWYgPSB1c2VTY3JvbGxhYmxlQ2FsbGJhY2tSZWYoKTtcblxuICBjb25zdCB7XG4gICAgYXR0YWNobWVudHMgPSBbXSxcbiAgICBjaGFubmVsRGF0YTogeyBtZXNzYWdlQmFjazogeyBkaXNwbGF5VGV4dDogbWVzc2FnZUJhY2tEaXNwbGF5VGV4dCB9ID0ge30gfSA9IHt9LFxuICAgIGZyb206IHsgcm9sZSB9ID0ge30sXG4gICAgdGV4dCxcbiAgICB0ZXh0Rm9ybWF0XG4gIH0gPSBhY3Rpdml0eTtcblxuICBjb25zdCBhY3Rpdml0eURpc3BsYXlUZXh0ID0gbWVzc2FnZUJhY2tEaXNwbGF5VGV4dCB8fCB0ZXh0O1xuICBjb25zdCBmcm9tVXNlciA9IHJvbGUgPT09ICd1c2VyJztcblxuICBjb25zdCBhdHRhY2hlZEFsdCA9IGxvY2FsaXplKGZyb21Vc2VyID8gJ0FDVElWSVRZX1lPVV9BVFRBQ0hFRF9BTFQnIDogJ0FDVElWSVRZX0JPVF9BVFRBQ0hFRF9BTFQnKTtcbiAgY29uc3QgZ3JlZXRpbmdBbHQgPSAoZnJvbVVzZXJcbiAgICA/IGxvY2FsaXplKCdBQ1RJVklUWV9ZT1VfU0FJRF9BTFQnKVxuICAgIDogbG9jYWxpemUoJ0FDVElWSVRZX0JPVF9TQUlEX0FMVCcsIGJvdEluaXRpYWxzIHx8ICcnKVxuICApLnJlcGxhY2UoL1xcc3syLH0vZ3UsICcgJyk7XG5cbiAgY29uc3QgaW5pdGlhbHMgPSBmcm9tVXNlciA/IHVzZXJJbml0aWFscyA6IGJvdEluaXRpYWxzO1xuICBjb25zdCBudWJPZmZzZXQgPSBmcm9tVXNlciA/IGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0IDogYnViYmxlTnViT2Zmc2V0O1xuICBjb25zdCBudWJTaXplID0gZnJvbVVzZXIgPyBidWJibGVGcm9tVXNlck51YlNpemUgOiBidWJibGVOdWJTaXplO1xuICBjb25zdCBvdGhlckluaXRpYWxzID0gZnJvbVVzZXIgPyBib3RJbml0aWFscyA6IHVzZXJJbml0aWFscztcbiAgY29uc3Qgb3RoZXJOdWJTaXplID0gZnJvbVVzZXIgPyBidWJibGVOdWJTaXplIDogYnViYmxlRnJvbVVzZXJOdWJTaXplO1xuXG4gIGNvbnN0IGhhc0F2YXRhciA9IGluaXRpYWxzIHx8IHR5cGVvZiBpbml0aWFscyA9PT0gJ3N0cmluZyc7XG4gIGNvbnN0IGhhc090aGVyQXZhdGFyID0gb3RoZXJJbml0aWFscyB8fCB0eXBlb2Ygb3RoZXJJbml0aWFscyA9PT0gJ3N0cmluZyc7XG4gIGNvbnN0IGhhc051YiA9IHR5cGVvZiBudWJTaXplID09PSAnbnVtYmVyJztcbiAgY29uc3QgaGFzT3RoZXJOdWIgPSB0eXBlb2Ygb3RoZXJOdWJTaXplID09PSAnbnVtYmVyJztcbiAgY29uc3QgdG9wQWxpZ25lZENhbGxvdXQgPSBpc1plcm9PclBvc2l0aXZlKG51Yk9mZnNldCk7XG5cbiAgY29uc3QgZXh0cmFUcmFpbGluZyA9ICFoYXNPdGhlckF2YXRhciAmJiBoYXNPdGhlck51YjsgLy8gVGhpcyBpcyBmb3IgYm90IG1lc3NhZ2Ugd2l0aCB1c2VyIG51YiBhbmQgbm8gdXNlciBhdmF0YXIuIEFuZCB2aWNlIHZlcnNhLlxuXG4gIGNvbnN0IHNob3dBdmF0YXIgPSBzaG93Q2FsbG91dCAmJiBoYXNBdmF0YXIgJiYgISFyZW5kZXJBdmF0YXI7XG4gIGNvbnN0IHNob3dOdWIgPSBzaG93Q2FsbG91dCAmJiBoYXNOdWIgJiYgKHRvcEFsaWduZWRDYWxsb3V0IHx8ICFhdHRhY2htZW50cy5sZW5ndGgpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXthcmlhTGFiZWxJZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcCcsXG4gICAgICAgIHtcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLS1leHRyYS10cmFpbGluZyc6IGV4dHJhVHJhaWxpbmcsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0taGlkZS1hdmF0YXInOiBoYXNBdmF0YXIgJiYgIXNob3dBdmF0YXIsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0taGlkZS1udWInOiBoYXNOdWIgJiYgIXNob3dOdWIsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0tbm8tbWVzc2FnZSc6ICFhY3Rpdml0eURpc3BsYXlUZXh0LFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtLXJ0bCc6IGRpcmVjdGlvbiA9PT0gJ3J0bCcsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0tc2hvdy1hdmF0YXInOiBzaG93QXZhdGFyLFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtLXNob3ctbnViJzogc2hvd051YixcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLS10b3AtY2FsbG91dCc6IHRvcEFsaWduZWRDYWxsb3V0XG4gICAgICAgIH0sXG4gICAgICAgICdyZWFjdC1maWxtX19maWxtc3RyaXAnLFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBjYXJvdXNlbEZpbG1TdHJpcFN0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByZWY9e3Njcm9sbGFibGVDYWxsYmFja1JlZn1cbiAgICAgIHJvbGU9XCJncm91cFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX21haW5cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F2YXRhci1ndXR0ZXJcIj57c2hvd0F2YXRhciAmJiByZW5kZXJBdmF0YXIoeyBhY3Rpdml0eSB9KX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2NvbnRlbnRcIj5cbiAgICAgICAgICB7ISFhY3Rpdml0eURpc3BsYXlUZXh0ICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgYXJpYS1yb2xlZGVzY3JpcHRpb249XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19tZXNzYWdlXCJcbiAgICAgICAgICAgICAgLy8gRGlzYWJsZSBcIlByb3AgYGlkYCBpcyBmb3JiaWRkZW4gb24gRE9NIE5vZGVzXCIgcnVsZSBiZWNhdXNlIHdlIGFyZSB1c2luZyB0aGUgSUQgcHJvcCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2ZvcmJpZC1kb20tcHJvcHMgKi9cbiAgICAgICAgICAgICAgaWQ9e2FyaWFMYWJlbElkfVxuICAgICAgICAgICAgICByb2xlPVwiZ3JvdXBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U2NyZWVuUmVhZGVyVGV4dCB0ZXh0PXtncmVldGluZ0FsdH0gLz5cbiAgICAgICAgICAgICAgPEJ1YmJsZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYnViYmxlXCJcbiAgICAgICAgICAgICAgICBmcm9tVXNlcj17ZnJvbVVzZXJ9XG4gICAgICAgICAgICAgICAgbnViPXtzaG93TnViIHx8ICgoaGFzQXZhdGFyIHx8IGhhc051YikgJiYgJ2hpZGRlbicpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckF0dGFjaG1lbnQoe1xuICAgICAgICAgICAgICAgICAgYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGl2aXR5RGlzcGxheVRleHQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiB0ZXh0Rm9ybWF0VG9Db250ZW50VHlwZSh0ZXh0Rm9ybWF0KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L0J1YmJsZT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2ZpbGxlclwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19jb21wbGltZW50YXJ5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fbnViLXBhZFwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fY29tcGxpbWVudGFyeS1jb250ZW50IGNcIj5cbiAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19hdHRhY2htZW50cyByZWFjdC1maWxtX19maWxtc3RyaXBfX2xpc3RcIlxuICAgICAgICAgICAgICAgIHJlZj17aXRlbUNvbnRhaW5lckNhbGxiYWNrUmVmfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBhcmlhLXJvbGVkZXNjcmlwdGlvbj1cImF0dGFjaG1lbnRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F0dGFjaG1lbnQgcmVhY3QtZmlsbV9fZmlsbXN0cmlwX19pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgLyogQXR0YWNobWVudHMgZG8gbm90IGhhdmUgYW4gSUQ7IGl0IGlzIGFsd2F5cyBpbmRleGVkIGJ5IG51bWJlciAqL1xuICAgICAgICAgICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4gICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHRleHQ9e2F0dGFjaGVkQWx0fSAvPlxuICAgICAgICAgICAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL31cbiAgICAgICAgICAgICAgICAgICAgPEJ1YmJsZSBmcm9tVXNlcj17ZnJvbVVzZXJ9IGtleT17aW5kZXh9IG51Yj17ZmFsc2V9PlxuICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJBdHRhY2htZW50KHsgYWN0aXZpdHksIGF0dGFjaG1lbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnViYmxlPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2FsaWdubWVudC1wYWRcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICB7c2hvd0FjdGl2aXR5U3RhdHVzICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX3N0YXR1c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19hdmF0YXItZ3V0dGVyXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fbnViLXBhZFwiIC8+XG4gICAgICAgICAge3JlbmRlckFjdGl2aXR5U3RhdHVzKHsgaGlkZVRpbWVzdGFtcCB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQ2Fyb3VzZWxGaWxtU3RyaXAuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBoaWRlVGltZXN0YW1wOiBmYWxzZSxcbiAgcmVuZGVyQWN0aXZpdHlTdGF0dXM6IGZhbHNlLFxuICByZW5kZXJBdmF0YXI6IGZhbHNlLFxuICBzaG93Q2FsbG91dDogZmFsc2Vcbn07XG5cbkNhcm91c2VsRmlsbVN0cmlwLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZpdHk6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYXR0YWNobWVudHM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBjaGFubmVsRGF0YTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIG1lc3NhZ2VCYWNrOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICBkaXNwbGF5VGV4dDogUHJvcFR5cGVzLnN0cmluZ1xuICAgICAgfSksXG4gICAgICBzdGF0ZTogUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0pLFxuICAgIGZyb206IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICByb2xlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgICB9KS5pc1JlcXVpcmVkLFxuICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdGV4dEZvcm1hdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0aW1lc3RhbXA6IFByb3BUeXBlcy5zdHJpbmdcbiAgfSkuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoaWRlVGltZXN0YW1wOiBQcm9wVHlwZXMuYm9vbCxcbiAgcmVuZGVyQWN0aXZpdHlTdGF0dXM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vbmVPZihbZmFsc2VdKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgcmVuZGVyQXR0YWNobWVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgcmVuZGVyQXZhdGFyOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub25lT2YoW2ZhbHNlXSksIFByb3BUeXBlcy5mdW5jXSksXG4gIHNob3dDYWxsb3V0OiBQcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2Fyb3VzZWxGaWxtU3RyaXA7XG5cbmV4cG9ydCB7IGNvbm5lY3RDYXJvdXNlbEZpbG1TdHJpcCB9O1xuIl19
320
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9DYXJvdXNlbEZpbG1TdHJpcC5qcyJdLCJuYW1lcyI6WyJ1c2VBdmF0YXJGb3JCb3QiLCJob29rcyIsInVzZUF2YXRhckZvclVzZXIiLCJ1c2VEaXJlY3Rpb24iLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJNc092ZXJmbG93U3R5bGUiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJwb3NpdGlvbiIsInRvdWNoQWN0aW9uIiwiV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmciLCJmbGV4U2hyaW5rIiwiZmxleCIsImxpc3RTdHlsZVR5cGUiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZmxleEdyb3ciLCJjb25uZWN0Q2Fyb3VzZWxGaWxtU3RyaXAiLCJzZWxlY3RvcnMiLCJjb25uZWN0VG9XZWJDaGF0IiwibGFuZ3VhZ2UiLCJzdHlsZVNldCIsIm9wdGlvbnMiLCJib3RBdmF0YXJJbml0aWFscyIsInVzZXJBdmF0YXJJbml0aWFscyIsImFjdGl2aXR5IiwiZnJvbSIsInJvbGUiLCJhdmF0YXJJbml0aWFscyIsIkNhcm91c2VsRmlsbVN0cmlwIiwiY2xhc3NOYW1lIiwiaGlkZVRpbWVzdGFtcCIsInJlbmRlckFjdGl2aXR5U3RhdHVzIiwicmVuZGVyQXR0YWNobWVudCIsInJlbmRlckF2YXRhciIsInNob3dDYWxsb3V0IiwiYnViYmxlTnViT2Zmc2V0IiwiYnViYmxlTnViU2l6ZSIsImJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0IiwiYnViYmxlRnJvbVVzZXJOdWJTaXplIiwiY2Fyb3VzZWxGaWxtU3RyaXBTdHlsZVNldCIsImNhcm91c2VsRmlsbVN0cmlwIiwiYm90SW5pdGlhbHMiLCJpbml0aWFscyIsInVzZXJJbml0aWFscyIsImRpcmVjdGlvbiIsImxvY2FsaXplIiwicm9vdENsYXNzTmFtZSIsInNob3dBY3Rpdml0eVN0YXR1cyIsIml0ZW1Db250YWluZXJDYWxsYmFja1JlZiIsInNjcm9sbGFibGVDYWxsYmFja1JlZiIsImF0dGFjaG1lbnRzIiwiY2hhbm5lbERhdGEiLCJtZXNzYWdlQmFjayIsIm1lc3NhZ2VCYWNrRGlzcGxheVRleHQiLCJkaXNwbGF5VGV4dCIsInRleHQiLCJ0ZXh0Rm9ybWF0IiwiYWN0aXZpdHlEaXNwbGF5VGV4dCIsImZyb21Vc2VyIiwiZ3JlZXRpbmdBbHQiLCJyZXBsYWNlIiwibnViT2Zmc2V0IiwibnViU2l6ZSIsIm90aGVySW5pdGlhbHMiLCJvdGhlck51YlNpemUiLCJoYXNBdmF0YXIiLCJoYXNPdGhlckF2YXRhciIsImhhc051YiIsImhhc090aGVyTnViIiwidG9wQWxpZ25lZENhbGxvdXQiLCJleHRyYVRyYWlsaW5nIiwic2hvd0F2YXRhciIsInNob3dOdWIiLCJsZW5ndGgiLCJoaWRlTnViIiwiYXR0YWNobWVudCIsImNvbnRlbnQiLCJjb250ZW50VHlwZSIsIm1hcCIsImluZGV4IiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic2hhcGUiLCJhcnJheSIsInN0cmluZyIsInN0YXRlIiwiaXNSZXF1aXJlZCIsInRpbWVzdGFtcCIsImJvb2wiLCJvbmVPZlR5cGUiLCJvbmVPZiIsImZ1bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQVFBLGVBQVIsR0FBMkZDLDZCQUEzRixDQUFRRCxlQUFSO0FBQUEsSUFBeUJFLGdCQUF6QixHQUEyRkQsNkJBQTNGLENBQXlCQyxnQkFBekI7QUFBQSxJQUEyQ0MsWUFBM0MsR0FBMkZGLDZCQUEzRixDQUEyQ0UsWUFBM0M7QUFBQSxJQUF5REMsWUFBekQsR0FBMkZILDZCQUEzRixDQUF5REcsWUFBekQ7QUFBQSxJQUF1RUMsZUFBdkUsR0FBMkZKLDZCQUEzRixDQUF1RUksZUFBdkU7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QUFWLENBQWlCRTtBQURILEtBQWhCLEVBRUhBLFVBVnFCO0FBV3hCaEMsSUFBQUEsSUFBSSxFQUFFMkIsbUJBQVVHLE1BWFE7QUFZeEI3QixJQUFBQSxVQUFVLEVBQUUwQixtQkFBVUcsTUFaRTtBQWF4QkcsSUFBQUEsU0FBUyxFQUFFTixtQkFBVUc7QUFiRyxHQUFoQixFQWNQRSxVQWZ5QjtBQWdCNUIxRCxFQUFBQSxTQUFTLEVBQUVxRCxtQkFBVUcsTUFoQk87QUFpQjVCdkQsRUFBQUEsYUFBYSxFQUFFb0QsbUJBQVVPLElBakJHO0FBa0I1QjFELEVBQUFBLG9CQUFvQixFQUFFbUQsbUJBQVVRLFNBQVYsQ0FBb0IsQ0FBQ1IsbUJBQVVTLEtBQVYsQ0FBZ0IsQ0FBQyxLQUFELENBQWhCLENBQUQsRUFBMkJULG1CQUFVVSxJQUFyQyxDQUFwQixDQWxCTTtBQW1CNUI1RCxFQUFBQSxnQkFBZ0IsRUFBRWtELG1CQUFVVSxJQUFWLENBQWVMLFVBbkJMO0FBb0I1QnRELEVBQUFBLFlBQVksRUFBRWlELG1CQUFVUSxTQUFWLENBQW9CLENBQUNSLG1CQUFVUyxLQUFWLENBQWdCLENBQUMsS0FBRCxDQUFoQixDQUFELEVBQTJCVCxtQkFBVVUsSUFBckMsQ0FBcEIsQ0FwQmM7QUFxQjVCMUQsRUFBQUEsV0FBVyxFQUFFZ0QsbUJBQVVPO0FBckJLLENBQTlCO2VBd0JlN0QsaUIiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBjb21wbGV4aXR5OiBbXCJlcnJvclwiLCAzMF0gKi9cblxuaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IHsgdXNlSXRlbUNvbnRhaW5lckNhbGxiYWNrUmVmLCB1c2VTY3JvbGxhYmxlQ2FsbGJhY2tSZWYgfSBmcm9tICdyZWFjdC1maWxtJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBCdWJibGUgZnJvbSAnLi9CdWJibGUnO1xuaW1wb3J0IENhcm91c2VsRmlsbVN0cmlwQXR0YWNobWVudCBmcm9tICcuL0Nhcm91c2VsRmlsbVN0cmlwQXR0YWNobWVudCc7XG5pbXBvcnQgY29ubmVjdFRvV2ViQ2hhdCBmcm9tICcuLi9jb25uZWN0VG9XZWJDaGF0JztcbmltcG9ydCBpc1plcm9PclBvc2l0aXZlIGZyb20gJy4uL1V0aWxzL2lzWmVyb09yUG9zaXRpdmUnO1xuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgdGV4dEZvcm1hdFRvQ29udGVudFR5cGUgZnJvbSAnLi4vVXRpbHMvdGV4dEZvcm1hdFRvQ29udGVudFR5cGUnO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5cbmNvbnN0IHsgdXNlQXZhdGFyRm9yQm90LCB1c2VBdmF0YXJGb3JVc2VyLCB1c2VEaXJlY3Rpb24sIHVzZUxvY2FsaXplciwgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxuY29uc3QgUk9PVF9TVFlMRSA9IHtcbiAgJyYud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwJzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBNc092ZXJmbG93U3R5bGU6ICdub25lJyxcbiAgICBvdmVyZmxvd1g6ICdzY3JvbGwnLFxuICAgIG92ZXJmbG93WTogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsIC8vIFRoaXMgaXMgdG8ga2VlcCBzY3JlZW4gcmVhZGVyIHRleHQgaW4gdGhlIGRlc3RpbmF0ZWQgYXJlYS5cbiAgICB0b3VjaEFjdGlvbjogJ21hbmlwdWxhdGlvbicsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCcsXG5cbiAgICAnJjo6LXdlYmtpdC1zY3JvbGxiYXInOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYWxpZ25tZW50LXBhZCc6IHtcbiAgICAgIGZsZXhTaHJpbms6IDBcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC1hdHRhY2htZW50Jzoge1xuICAgICAgZmxleDogMVxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19hdHRhY2htZW50cyc6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGxpc3RTdHlsZVR5cGU6ICdub25lJyxcbiAgICAgIG1hcmdpbjogMCxcbiAgICAgIHBhZGRpbmc6IDBcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYXZhdGFyJzoge1xuICAgICAgZmxleFNocmluazogMFxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19hdmF0YXItZ3V0dGVyJzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICBmbGV4U2hyaW5rOiAwXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2NvbXBsaW1lbnRhcnknOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCdcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fY29tcGxpbWVudGFyeS1jb250ZW50Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleEdyb3c6IDEsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19jb250ZW50Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleEdyb3c6IDEsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19maWxsZXInOiB7XG4gICAgICBmbGV4R3JvdzogMTAwMDAsXG4gICAgICBmbGV4U2hyaW5rOiAxXG4gICAgfSxcblxuICAgICcmIC53ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX21haW4nOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCdcbiAgICB9LFxuXG4gICAgJyYgLndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fbWVzc2FnZSc6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4J1xuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19udWItcGFkJzoge1xuICAgICAgZmxleFNocmluazogMFxuICAgIH0sXG5cbiAgICAnJiAud2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19zdGF0dXMnOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCdcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGNvbm5lY3RDYXJvdXNlbEZpbG1TdHJpcCA9ICguLi5zZWxlY3RvcnMpID0+XG4gIGNvbm5lY3RUb1dlYkNoYXQoXG4gICAgKFxuICAgICAge1xuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgc3R5bGVTZXQ6IHtcbiAgICAgICAgICBvcHRpb25zOiB7IGJvdEF2YXRhckluaXRpYWxzLCB1c2VyQXZhdGFySW5pdGlhbHMgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhY3Rpdml0eTogeyBmcm9tOiB7IHJvbGUgfSA9IHt9IH0gPSB7fSB9XG4gICAgKSA9PiAoe1xuICAgICAgYXZhdGFySW5pdGlhbHM6IHJvbGUgPT09ICd1c2VyJyA/IHVzZXJBdmF0YXJJbml0aWFscyA6IGJvdEF2YXRhckluaXRpYWxzLFxuICAgICAgbGFuZ3VhZ2VcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgQ2Fyb3VzZWxGaWxtU3RyaXAgPSAoe1xuICBhY3Rpdml0eSxcbiAgY2xhc3NOYW1lLFxuICBoaWRlVGltZXN0YW1wLFxuICByZW5kZXJBY3Rpdml0eVN0YXR1cyxcbiAgcmVuZGVyQXR0YWNobWVudCxcbiAgcmVuZGVyQXZhdGFyLFxuICBzaG93Q2FsbG91dFxufSkgPT4ge1xuICBjb25zdCBbeyBidWJibGVOdWJPZmZzZXQsIGJ1YmJsZU51YlNpemUsIGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0LCBidWJibGVGcm9tVXNlck51YlNpemUgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW3sgY2Fyb3VzZWxGaWxtU3RyaXA6IGNhcm91c2VsRmlsbVN0cmlwU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbeyBpbml0aWFsczogYm90SW5pdGlhbHMgfV0gPSB1c2VBdmF0YXJGb3JCb3QoKTtcbiAgY29uc3QgW3sgaW5pdGlhbHM6IHVzZXJJbml0aWFscyB9XSA9IHVzZUF2YXRhckZvclVzZXIoKTtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcbiAgY29uc3Qgc2hvd0FjdGl2aXR5U3RhdHVzID0gdHlwZW9mIHJlbmRlckFjdGl2aXR5U3RhdHVzID09PSAnZnVuY3Rpb24nO1xuXG4gIGNvbnN0IGl0ZW1Db250YWluZXJDYWxsYmFja1JlZiA9IHVzZUl0ZW1Db250YWluZXJDYWxsYmFja1JlZigpO1xuICBjb25zdCBzY3JvbGxhYmxlQ2FsbGJhY2tSZWYgPSB1c2VTY3JvbGxhYmxlQ2FsbGJhY2tSZWYoKTtcblxuICBjb25zdCB7XG4gICAgYXR0YWNobWVudHMgPSBbXSxcbiAgICBjaGFubmVsRGF0YTogeyBtZXNzYWdlQmFjazogeyBkaXNwbGF5VGV4dDogbWVzc2FnZUJhY2tEaXNwbGF5VGV4dCB9ID0ge30gfSA9IHt9LFxuICAgIGZyb206IHsgcm9sZSB9ID0ge30sXG4gICAgdGV4dCxcbiAgICB0ZXh0Rm9ybWF0XG4gIH0gPSBhY3Rpdml0eTtcblxuICBjb25zdCBhY3Rpdml0eURpc3BsYXlUZXh0ID0gbWVzc2FnZUJhY2tEaXNwbGF5VGV4dCB8fCB0ZXh0O1xuICBjb25zdCBmcm9tVXNlciA9IHJvbGUgPT09ICd1c2VyJztcblxuICBjb25zdCBncmVldGluZ0FsdCA9IChcbiAgICBmcm9tVXNlciA/IGxvY2FsaXplKCdBQ1RJVklUWV9ZT1VfU0FJRF9BTFQnKSA6IGxvY2FsaXplKCdBQ1RJVklUWV9CT1RfU0FJRF9BTFQnLCBib3RJbml0aWFscyB8fCAnJylcbiAgKS5yZXBsYWNlKC9cXHN7Mix9L2d1LCAnICcpO1xuXG4gIGNvbnN0IGluaXRpYWxzID0gZnJvbVVzZXIgPyB1c2VySW5pdGlhbHMgOiBib3RJbml0aWFscztcbiAgY29uc3QgbnViT2Zmc2V0ID0gZnJvbVVzZXIgPyBidWJibGVGcm9tVXNlck51Yk9mZnNldCA6IGJ1YmJsZU51Yk9mZnNldDtcbiAgY29uc3QgbnViU2l6ZSA9IGZyb21Vc2VyID8gYnViYmxlRnJvbVVzZXJOdWJTaXplIDogYnViYmxlTnViU2l6ZTtcbiAgY29uc3Qgb3RoZXJJbml0aWFscyA9IGZyb21Vc2VyID8gYm90SW5pdGlhbHMgOiB1c2VySW5pdGlhbHM7XG4gIGNvbnN0IG90aGVyTnViU2l6ZSA9IGZyb21Vc2VyID8gYnViYmxlTnViU2l6ZSA6IGJ1YmJsZUZyb21Vc2VyTnViU2l6ZTtcblxuICBjb25zdCBoYXNBdmF0YXIgPSBpbml0aWFscyB8fCB0eXBlb2YgaW5pdGlhbHMgPT09ICdzdHJpbmcnO1xuICBjb25zdCBoYXNPdGhlckF2YXRhciA9IG90aGVySW5pdGlhbHMgfHwgdHlwZW9mIG90aGVySW5pdGlhbHMgPT09ICdzdHJpbmcnO1xuICBjb25zdCBoYXNOdWIgPSB0eXBlb2YgbnViU2l6ZSA9PT0gJ251bWJlcic7XG4gIGNvbnN0IGhhc090aGVyTnViID0gdHlwZW9mIG90aGVyTnViU2l6ZSA9PT0gJ251bWJlcic7XG4gIGNvbnN0IHRvcEFsaWduZWRDYWxsb3V0ID0gaXNaZXJvT3JQb3NpdGl2ZShudWJPZmZzZXQpO1xuXG4gIGNvbnN0IGV4dHJhVHJhaWxpbmcgPSAhaGFzT3RoZXJBdmF0YXIgJiYgaGFzT3RoZXJOdWI7IC8vIFRoaXMgaXMgZm9yIGJvdCBtZXNzYWdlIHdpdGggdXNlciBudWIgYW5kIG5vIHVzZXIgYXZhdGFyLiBBbmQgdmljZSB2ZXJzYS5cblxuICBjb25zdCBzaG93QXZhdGFyID0gc2hvd0NhbGxvdXQgJiYgaGFzQXZhdGFyICYmICEhcmVuZGVyQXZhdGFyO1xuICBjb25zdCBzaG93TnViID0gc2hvd0NhbGxvdXQgJiYgaGFzTnViICYmICh0b3BBbGlnbmVkQ2FsbG91dCB8fCAhYXR0YWNobWVudHMubGVuZ3RoKTtcblxuICBjb25zdCBoaWRlTnViID0gaGFzTnViICYmICFzaG93TnViO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwJyxcbiAgICAgICAge1xuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtLWV4dHJhLXRyYWlsaW5nJzogZXh0cmFUcmFpbGluZyxcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLS1oaWRlLWF2YXRhcic6IGhhc0F2YXRhciAmJiAhc2hvd0F2YXRhcixcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLS1oaWRlLW51Yic6IGhpZGVOdWIsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0tbm8tbWVzc2FnZSc6ICFhY3Rpdml0eURpc3BsYXlUZXh0LFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtLXJ0bCc6IGRpcmVjdGlvbiA9PT0gJ3J0bCcsXG4gICAgICAgICAgJ3dlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcC0tc2hvdy1hdmF0YXInOiBzaG93QXZhdGFyLFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtLXNob3ctbnViJzogc2hvd051YixcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLS10b3AtY2FsbG91dCc6IHRvcEFsaWduZWRDYWxsb3V0XG4gICAgICAgIH0sXG4gICAgICAgICdyZWFjdC1maWxtX19maWxtc3RyaXAnLFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBjYXJvdXNlbEZpbG1TdHJpcFN0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByZWY9e3Njcm9sbGFibGVDYWxsYmFja1JlZn1cbiAgICAgIHJvbGU9XCJncm91cFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX21haW5cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F2YXRhci1ndXR0ZXJcIj57c2hvd0F2YXRhciAmJiByZW5kZXJBdmF0YXIoeyBhY3Rpdml0eSB9KX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2NvbnRlbnRcIj5cbiAgICAgICAgICB7ISFhY3Rpdml0eURpc3BsYXlUZXh0ICYmIChcbiAgICAgICAgICAgIDxkaXYgYXJpYS1yb2xlZGVzY3JpcHRpb249XCJtZXNzYWdlXCIgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19tZXNzYWdlXCIgcm9sZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHRleHQ9e2dyZWV0aW5nQWx0fSAvPlxuICAgICAgICAgICAgICA8QnViYmxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19idWJibGVcIlxuICAgICAgICAgICAgICAgIGZyb21Vc2VyPXtmcm9tVXNlcn1cbiAgICAgICAgICAgICAgICBudWI9e3Nob3dOdWIgfHwgKChoYXNBdmF0YXIgfHwgaGFzTnViKSAmJiAnaGlkZGVuJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cmVuZGVyQXR0YWNobWVudCh7XG4gICAgICAgICAgICAgICAgICBhY3Rpdml0eSxcbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYWN0aXZpdHlEaXNwbGF5VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6IHRleHRGb3JtYXRUb0NvbnRlbnRUeXBlKHRleHRGb3JtYXQpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvQnViYmxlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fZmlsbGVyXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2NvbXBsaW1lbnRhcnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19udWItcGFkXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19jb21wbGltZW50YXJ5LWNvbnRlbnQgY1wiPlxuICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F0dGFjaG1lbnRzIHJlYWN0LWZpbG1fX2ZpbG1zdHJpcF9fbGlzdFwiXG4gICAgICAgICAgICAgICAgcmVmPXtpdGVtQ29udGFpbmVyQ2FsbGJhY2tSZWZ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPENhcm91c2VsRmlsbVN0cmlwQXR0YWNobWVudFxuICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eT17YWN0aXZpdHl9XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ9e2F0dGFjaG1lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZyb21Vc2VyPXtmcm9tVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgaGFzQXZhdGFyPXtoYXNBdmF0YXJ9XG4gICAgICAgICAgICAgICAgICAgIGhpZGVOdWI9e2hpZGVOdWJ9XG4gICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgLyogQXR0YWNobWVudHMgZG8gbm90IGhhdmUgYW4gSUQ7IGl0IGlzIGFsd2F5cyBpbmRleGVkIGJ5IG51bWJlciAqL1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG4gICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckF0dGFjaG1lbnQ9e3JlbmRlckF0dGFjaG1lbnR9XG4gICAgICAgICAgICAgICAgICAgIHNob3dBdmF0YXI9e3Nob3dBdmF0YXJ9XG4gICAgICAgICAgICAgICAgICAgIHNob3dOdWI9e3Nob3dOdWJ9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fYWxpZ25tZW50LXBhZFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzaG93QWN0aXZpdHlTdGF0dXMgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2Nhcm91c2VsLWZpbG1zdHJpcF9fc3RhdHVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXBfX2F2YXRhci1ndXR0ZXJcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwX19udWItcGFkXCIgLz5cbiAgICAgICAgICB7cmVuZGVyQWN0aXZpdHlTdGF0dXMoeyBoaWRlVGltZXN0YW1wIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5DYXJvdXNlbEZpbG1TdHJpcC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJycsXG4gIGhpZGVUaW1lc3RhbXA6IGZhbHNlLFxuICByZW5kZXJBY3Rpdml0eVN0YXR1czogZmFsc2UsXG4gIHJlbmRlckF2YXRhcjogZmFsc2UsXG4gIHNob3dDYWxsb3V0OiBmYWxzZVxufTtcblxuQ2Fyb3VzZWxGaWxtU3RyaXAucHJvcFR5cGVzID0ge1xuICBhY3Rpdml0eTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBhdHRhY2htZW50czogUHJvcFR5cGVzLmFycmF5LFxuICAgIGNoYW5uZWxEYXRhOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbWVzc2FnZUJhY2s6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgIGRpc3BsYXlUZXh0OiBQcm9wVHlwZXMuc3RyaW5nXG4gICAgICB9KSxcbiAgICAgIHN0YXRlOiBQcm9wVHlwZXMuc3RyaW5nXG4gICAgfSksXG4gICAgZnJvbTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHJvbGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0ZXh0Rm9ybWF0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRpbWVzdGFtcDogUHJvcFR5cGVzLnN0cmluZ1xuICB9KS5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhpZGVUaW1lc3RhbXA6IFByb3BUeXBlcy5ib29sLFxuICByZW5kZXJBY3Rpdml0eVN0YXR1czogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9uZU9mKFtmYWxzZV0pLCBQcm9wVHlwZXMuZnVuY10pLFxuICByZW5kZXJBdHRhY2htZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICByZW5kZXJBdmF0YXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vbmVPZihbZmFsc2VdKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgc2hvd0NhbGxvdXQ6IFByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDYXJvdXNlbEZpbG1TdHJpcDtcblxuZXhwb3J0IHsgY29ubmVjdENhcm91c2VsRmlsbVN0cmlwIH07XG4iXX0=
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _Bubble = _interopRequireDefault(require("./Bubble"));
17
+
18
+ var _ScreenReaderText = _interopRequireDefault(require("../ScreenReaderText"));
19
+
20
+ var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ 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."); }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ 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; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ var useDirection = _botframeworkWebchatApi.hooks.useDirection,
37
+ useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer;
38
+
39
+ var CarouselFilmStripAttachment = function CarouselFilmStripAttachment(_ref) {
40
+ var activity = _ref.activity,
41
+ attachment = _ref.attachment,
42
+ className = _ref.className,
43
+ fromUser = _ref.fromUser,
44
+ hasAvatar = _ref.hasAvatar,
45
+ hideNub = _ref.hideNub,
46
+ index = _ref.index,
47
+ renderAttachment = _ref.renderAttachment,
48
+ showAvatar = _ref.showAvatar,
49
+ showNub = _ref.showNub;
50
+
51
+ var _useDirection = useDirection(),
52
+ _useDirection2 = _slicedToArray(_useDirection, 1),
53
+ direction = _useDirection2[0];
54
+
55
+ var localize = useLocalizer();
56
+
57
+ var _useStyleSet = (0, _useStyleSet3.default)(),
58
+ _useStyleSet2 = _slicedToArray(_useStyleSet, 1),
59
+ carouselFilmStripAttachmentStyleSet = _useStyleSet2[0].carouselFilmStripAttachment;
60
+
61
+ var attachedAlt = localize(fromUser ? 'ACTIVITY_YOU_ATTACHED_ALT' : 'ACTIVITY_BOT_ATTACHED_ALT');
62
+ return /*#__PURE__*/_react.default.createElement("li", {
63
+ "aria-roledescription": "attachment",
64
+ className: (0, _classnames.default)('webchat__carousel-filmstrip-attachment', {
65
+ 'webchat__carousel-filmstrip-attachment--hide-avatar': hasAvatar && !showAvatar,
66
+ 'webchat__carousel-filmstrip-attachment--hide-nub': hideNub,
67
+ 'webchat__carousel-filmstrip-attachment--rtl': direction === 'rtl',
68
+ 'webchat__carousel-filmstrip-attachment--show-avatar': showAvatar,
69
+ 'webchat__carousel-filmstrip-attachment--show-nub': showNub
70
+ }, 'react-film__filmstrip__item', carouselFilmStripAttachmentStyleSet + '', (className || '') + ''),
71
+ role: "listitem",
72
+ tabIndex: 0
73
+ }, /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
74
+ text: attachedAlt
75
+ }), /*#__PURE__*/_react.default.createElement(_Bubble.default, {
76
+ fromUser: fromUser,
77
+ key: index,
78
+ nub: false
79
+ }, renderAttachment({
80
+ activity: activity,
81
+ attachment: attachment
82
+ }), /*#__PURE__*/_react.default.createElement("div", {
83
+ className: "webchat__carousel-filmstrip-attachment--focus"
84
+ })));
85
+ };
86
+
87
+ CarouselFilmStripAttachment.defaultProps = {
88
+ className: ''
89
+ };
90
+ CarouselFilmStripAttachment.propTypes = {
91
+ activity: _propTypes.default.shape({
92
+ attachments: _propTypes.default.array,
93
+ channelData: _propTypes.default.shape({
94
+ messageBack: _propTypes.default.shape({
95
+ displayText: _propTypes.default.string
96
+ }),
97
+ state: _propTypes.default.string
98
+ }),
99
+ from: _propTypes.default.shape({
100
+ role: _propTypes.default.string.isRequired
101
+ }).isRequired,
102
+ text: _propTypes.default.string,
103
+ textFormat: _propTypes.default.string,
104
+ timestamp: _propTypes.default.string
105
+ }).isRequired,
106
+ attachment: _propTypes.default.shape({
107
+ content: _propTypes.default.any
108
+ }).isRequired,
109
+ className: _propTypes.default.string,
110
+ fromUser: _propTypes.default.any.isRequired,
111
+ hasAvatar: _propTypes.default.any.isRequired,
112
+ hideNub: _propTypes.default.bool.isRequired,
113
+ index: _propTypes.default.number.isRequired,
114
+ renderAttachment: _propTypes.default.func.isRequired,
115
+ showAvatar: _propTypes.default.bool.isRequired,
116
+ showNub: _propTypes.default.bool.isRequired
117
+ };
118
+ var _default = CarouselFilmStripAttachment;
119
+ exports.default = _default;
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eS9DYXJvdXNlbEZpbG1TdHJpcEF0dGFjaG1lbnQuanMiXSwibmFtZXMiOlsidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJDYXJvdXNlbEZpbG1TdHJpcEF0dGFjaG1lbnQiLCJhY3Rpdml0eSIsImF0dGFjaG1lbnQiLCJjbGFzc05hbWUiLCJmcm9tVXNlciIsImhhc0F2YXRhciIsImhpZGVOdWIiLCJpbmRleCIsInJlbmRlckF0dGFjaG1lbnQiLCJzaG93QXZhdGFyIiwic2hvd051YiIsImRpcmVjdGlvbiIsImxvY2FsaXplIiwiY2Fyb3VzZWxGaWxtU3RyaXBBdHRhY2htZW50U3R5bGVTZXQiLCJjYXJvdXNlbEZpbG1TdHJpcEF0dGFjaG1lbnQiLCJhdHRhY2hlZEFsdCIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInNoYXBlIiwiYXR0YWNobWVudHMiLCJhcnJheSIsImNoYW5uZWxEYXRhIiwibWVzc2FnZUJhY2siLCJkaXNwbGF5VGV4dCIsInN0cmluZyIsInN0YXRlIiwiZnJvbSIsInJvbGUiLCJpc1JlcXVpcmVkIiwidGV4dCIsInRleHRGb3JtYXQiLCJ0aW1lc3RhbXAiLCJjb250ZW50IiwiYW55IiwiYm9vbCIsIm51bWJlciIsImZ1bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQVFBLFlBQVIsR0FBdUNDLDZCQUF2QyxDQUFRRCxZQUFSO0FBQUEsSUFBc0JFLFlBQXRCLEdBQXVDRCw2QkFBdkMsQ0FBc0JDLFlBQXRCOztBQUVBLElBQU1DLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsT0FXOUI7QUFBQSxNQVZKQyxRQVVJLFFBVkpBLFFBVUk7QUFBQSxNQVRKQyxVQVNJLFFBVEpBLFVBU0k7QUFBQSxNQVJKQyxTQVFJLFFBUkpBLFNBUUk7QUFBQSxNQVBK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QUFBLFNBQVMsRUFBRWEsbUJBQVVnQixHQUFWLENBQWNMLFVBckJhO0FBc0J0Q3ZCLEVBQUFBLE9BQU8sRUFBRVksbUJBQVVpQixJQUFWLENBQWVOLFVBdEJjO0FBdUJ0Q3RCLEVBQUFBLEtBQUssRUFBRVcsbUJBQVVrQixNQUFWLENBQWlCUCxVQXZCYztBQXdCdENyQixFQUFBQSxnQkFBZ0IsRUFBRVUsbUJBQVVtQixJQUFWLENBQWVSLFVBeEJLO0FBeUJ0Q3BCLEVBQUFBLFVBQVUsRUFBRVMsbUJBQVVpQixJQUFWLENBQWVOLFVBekJXO0FBMEJ0Q25CLEVBQUFBLE9BQU8sRUFBRVEsbUJBQVVpQixJQUFWLENBQWVOO0FBMUJjLENBQXhDO2VBNkJlN0IsMkIiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBCdWJibGUgZnJvbSAnLi9CdWJibGUnO1xuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlTG9jYWxpemVyIH0gPSBob29rcztcblxuY29uc3QgQ2Fyb3VzZWxGaWxtU3RyaXBBdHRhY2htZW50ID0gKHtcbiAgYWN0aXZpdHksXG4gIGF0dGFjaG1lbnQsXG4gIGNsYXNzTmFtZSxcbiAgZnJvbVVzZXIsXG4gIGhhc0F2YXRhcixcbiAgaGlkZU51YixcbiAgaW5kZXgsXG4gIHJlbmRlckF0dGFjaG1lbnQsXG4gIHNob3dBdmF0YXIsXG4gIHNob3dOdWJcbn0pID0+IHtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3QgW3sgY2Fyb3VzZWxGaWxtU3RyaXBBdHRhY2htZW50OiBjYXJvdXNlbEZpbG1TdHJpcEF0dGFjaG1lbnRTdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG5cbiAgY29uc3QgYXR0YWNoZWRBbHQgPSBsb2NhbGl6ZShmcm9tVXNlciA/ICdBQ1RJVklUWV9ZT1VfQVRUQUNIRURfQUxUJyA6ICdBQ1RJVklUWV9CT1RfQVRUQUNIRURfQUxUJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGFyaWEtcm9sZWRlc2NyaXB0aW9uPVwiYXR0YWNobWVudFwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtYXR0YWNobWVudCcsXG4gICAgICAgIHtcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLWF0dGFjaG1lbnQtLWhpZGUtYXZhdGFyJzogaGFzQXZhdGFyICYmICFzaG93QXZhdGFyLFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtYXR0YWNobWVudC0taGlkZS1udWInOiBoaWRlTnViLFxuICAgICAgICAgICd3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtYXR0YWNobWVudC0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLWF0dGFjaG1lbnQtLXNob3ctYXZhdGFyJzogc2hvd0F2YXRhcixcbiAgICAgICAgICAnd2ViY2hhdF9fY2Fyb3VzZWwtZmlsbXN0cmlwLWF0dGFjaG1lbnQtLXNob3ctbnViJzogc2hvd051YlxuICAgICAgICB9LFxuICAgICAgICAncmVhY3QtZmlsbV9fZmlsbXN0cmlwX19pdGVtJyxcbiAgICAgICAgY2Fyb3VzZWxGaWxtU3RyaXBBdHRhY2htZW50U3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICB0YWJJbmRleD17MH1cbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCB0ZXh0PXthdHRhY2hlZEFsdH0gLz5cbiAgICAgIDxCdWJibGUgZnJvbVVzZXI9e2Zyb21Vc2VyfSBrZXk9e2luZGV4fSBudWI9e2ZhbHNlfT5cbiAgICAgICAge3JlbmRlckF0dGFjaG1lbnQoeyBhY3Rpdml0eSwgYXR0YWNobWVudCB9KX1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19jYXJvdXNlbC1maWxtc3RyaXAtYXR0YWNobWVudC0tZm9jdXNcIiAvPlxuICAgICAgPC9CdWJibGU+XG4gICAgPC9saT5cbiAgKTtcbn07XG5cbkNhcm91c2VsRmlsbVN0cmlwQXR0YWNobWVudC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJydcbn07XG5cbkNhcm91c2VsRmlsbVN0cmlwQXR0YWNobWVudC5wcm9wVHlwZXMgPSB7XG4gIGFjdGl2aXR5OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGF0dGFjaG1lbnRzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgY2hhbm5lbERhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBtZXNzYWdlQmFjazogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgZGlzcGxheVRleHQ6IFByb3BUeXBlcy5zdHJpbmdcbiAgICAgIH0pLFxuICAgICAgc3RhdGU6IFByb3BUeXBlcy5zdHJpbmdcbiAgICB9KSxcbiAgICBmcm9tOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgcm9sZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRleHRGb3JtYXQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdGltZXN0YW1wOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGF0dGFjaG1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY29udGVudDogUHJvcFR5cGVzLmFueVxuICB9KS5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZyb21Vc2VyOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGhhc0F2YXRhcjogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkLFxuICBoaWRlTnViOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpbmRleDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICByZW5kZXJBdHRhY2htZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93QXZhdGFyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzaG93TnViOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDYXJvdXNlbEZpbG1TdHJpcEF0dGFjaG1lbnQ7XG4iXX0=