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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/.eslintrc.yml +4 -106
  2. package/.prettierrc.yml +1 -1
  3. package/lib/Activity/CarouselFilmStrip.js +1 -1
  4. package/lib/Activity/CarouselFilmStripAttachment.js +1 -1
  5. package/lib/Activity/CarouselLayout.js +3 -3
  6. package/lib/Activity/Speak.d.ts +2 -2
  7. package/lib/Activity/Speak.d.ts.map +1 -1
  8. package/lib/Activity/Speak.js +15 -8
  9. package/lib/Activity/StackedLayout.d.ts +5 -3
  10. package/lib/Activity/StackedLayout.d.ts.map +1 -1
  11. package/lib/Activity/StackedLayout.js +16 -21
  12. package/lib/Attachment/FileAttachment.js +2 -2
  13. package/lib/Attachment/FileContent.d.ts.map +1 -1
  14. package/lib/Attachment/FileContent.js +11 -1
  15. package/lib/BasicSendBox.d.ts.map +1 -1
  16. package/lib/BasicSendBox.js +8 -9
  17. package/lib/BasicToast.js +1 -1
  18. package/lib/BasicToaster.js +6 -3
  19. package/lib/BasicTranscript.d.ts +7 -0
  20. package/lib/BasicTranscript.d.ts.map +1 -0
  21. package/lib/BasicTranscript.js +386 -728
  22. package/lib/BasicTypingIndicator.d.ts +2 -1
  23. package/lib/BasicTypingIndicator.d.ts.map +1 -1
  24. package/lib/BasicTypingIndicator.js +12 -4
  25. package/lib/Composer.d.ts.map +1 -1
  26. package/lib/Composer.js +37 -32
  27. package/lib/ConnectivityStatus/Connecting.js +1 -1
  28. package/lib/Dictation.js +1 -1
  29. package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +1 -1
  30. package/lib/Middleware/Activity/createCoreMiddleware.js +9 -12
  31. package/lib/Middleware/ActivityStatus/SendStatus/SendFailedRetry.js +1 -1
  32. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts +2 -2
  33. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts.map +1 -1
  34. package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.js +5 -4
  35. package/lib/Middleware/ActivityStatus/Timestamp.d.ts +2 -2
  36. package/lib/Middleware/ActivityStatus/Timestamp.d.ts.map +1 -1
  37. package/lib/Middleware/ActivityStatus/Timestamp.js +4 -2
  38. package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +20 -17
  39. package/lib/Middleware/Attachment/createCoreMiddleware.js +2 -5
  40. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +1 -1
  41. package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +1 -1
  42. package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +1 -1
  43. package/lib/Middleware/Avatar/createCoreMiddleware.js +2 -3
  44. package/lib/Middleware/CardAction/createCoreMiddleware.js +10 -3
  45. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +1 -1
  46. package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +1 -1
  47. package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +1 -1
  48. package/lib/Middleware/Toast/createCoreMiddleware.js +1 -1
  49. package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +1 -1
  50. package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +8 -6
  51. package/lib/ReactWebChat.js +2 -2
  52. package/lib/ScreenReaderActivity.js +15 -6
  53. package/lib/ScreenReaderText.d.ts +9 -0
  54. package/lib/ScreenReaderText.d.ts.map +1 -0
  55. package/lib/ScreenReaderText.js +22 -8
  56. package/lib/SendBox/AutoResizeTextArea.js +1 -1
  57. package/lib/SendBox/DictationInterims.js +1 -1
  58. package/lib/SendBox/IconButton.d.ts +11 -0
  59. package/lib/SendBox/IconButton.d.ts.map +1 -0
  60. package/lib/SendBox/IconButton.js +26 -6
  61. package/lib/SendBox/MicrophoneButton.js +2 -2
  62. package/lib/SendBox/SendButton.js +2 -2
  63. package/lib/SendBox/SuggestedAction.d.ts +17 -0
  64. package/lib/SendBox/SuggestedAction.d.ts.map +1 -0
  65. package/lib/SendBox/SuggestedAction.js +26 -17
  66. package/lib/SendBox/SuggestedActions.d.ts.map +1 -1
  67. package/lib/SendBox/SuggestedActions.js +26 -9
  68. package/lib/SendBox/TextBox.js +4 -4
  69. package/lib/SendBox/UploadButton.js +4 -4
  70. package/lib/Styles/StyleSet/BasicTranscript.d.ts +13 -5
  71. package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +1 -1
  72. package/lib/Styles/StyleSet/BasicTranscript.js +21 -9
  73. package/lib/Styles/StyleSet/Bubble.d.ts.map +1 -1
  74. package/lib/Styles/StyleSet/Bubble.js +3 -3
  75. package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +1 -1
  76. package/lib/Styles/StyleSet/CarouselFilmStrip.js +3 -3
  77. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +1 -1
  78. package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +3 -3
  79. package/lib/Styles/StyleSet/KeyboardHelp.d.ts +123 -0
  80. package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +1 -0
  81. package/lib/Styles/StyleSet/KeyboardHelp.js +145 -0
  82. package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +1 -1
  83. package/lib/Styles/StyleSet/ScrollToEndButton.js +2 -2
  84. package/lib/Styles/StyleSet/SendBoxButton.d.ts +56 -10
  85. package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +1 -1
  86. package/lib/Styles/StyleSet/SendBoxButton.js +76 -12
  87. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +1 -1
  88. package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +1 -1
  89. package/lib/Styles/StyleSet/SendBoxTextBox.js +3 -3
  90. package/lib/Styles/StyleSet/StackedLayout.d.ts.map +1 -1
  91. package/lib/Styles/StyleSet/StackedLayout.js +1 -1
  92. package/lib/Styles/StyleSet/SuggestedAction.d.ts +73 -28
  93. package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +1 -1
  94. package/lib/Styles/StyleSet/SuggestedAction.js +116 -41
  95. package/lib/Styles/StyleSet/SuggestedActions.d.ts +13 -6
  96. package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +1 -1
  97. package/lib/Styles/StyleSet/SuggestedActions.js +13 -6
  98. package/lib/Styles/createStyleSet.d.ts +324 -55
  99. package/lib/Styles/createStyleSet.d.ts.map +1 -1
  100. package/lib/Styles/createStyleSet.js +6 -3
  101. package/lib/Styles/mirrorStyle.js +12 -3
  102. package/lib/Toast/NotificationIcon.js +7 -3
  103. package/lib/Toast/createToastMiddleware.d.ts.map +1 -1
  104. package/lib/Toast/createToastMiddleware.js +1 -1
  105. package/lib/Transcript/ActivityRow.d.ts +9 -0
  106. package/lib/Transcript/ActivityRow.d.ts.map +1 -0
  107. package/lib/Transcript/ActivityRow.js +159 -0
  108. package/lib/Transcript/ActivityTextAlt.js +57 -0
  109. package/lib/Transcript/FocusTrap.d.ts +8 -0
  110. package/lib/Transcript/FocusTrap.d.ts.map +1 -0
  111. package/lib/Transcript/FocusTrap.js +74 -0
  112. package/lib/Transcript/KeyboardHelp.d.ts +4 -0
  113. package/lib/Transcript/KeyboardHelp.d.ts.map +1 -0
  114. package/lib/Transcript/KeyboardHelp.js +550 -0
  115. package/lib/Transcript/LiveRegionTranscript.d.ts +8 -0
  116. package/lib/Transcript/LiveRegionTranscript.d.ts.map +1 -0
  117. package/lib/Transcript/LiveRegionTranscript.js +229 -0
  118. package/lib/Transcript/types.d.ts +2 -0
  119. package/lib/Transcript/types.d.ts.map +1 -0
  120. package/lib/Transcript/types.js +2 -0
  121. package/lib/Transcript/useActivityAccessibleName.d.ts +4 -0
  122. package/lib/Transcript/useActivityAccessibleName.d.ts.map +1 -0
  123. package/lib/Transcript/useActivityAccessibleName.js +97 -0
  124. package/lib/Transcript/useTypistNames.d.ts +3 -0
  125. package/lib/Transcript/useTypistNames.d.ts.map +1 -0
  126. package/lib/Transcript/useTypistNames.js +61 -0
  127. package/lib/Utils/AccessKeySink/Surface.js +1 -1
  128. package/lib/Utils/AccessibleButton.d.ts +11 -0
  129. package/lib/Utils/AccessibleButton.d.ts.map +1 -0
  130. package/lib/Utils/AccessibleButton.js +12 -7
  131. package/lib/Utils/AccessibleInputText.js +1 -1
  132. package/lib/Utils/AccessibleTextArea.js +1 -1
  133. package/lib/Utils/CroppedImage.js +1 -1
  134. package/lib/Utils/FocusRedirector.d.ts +9 -0
  135. package/lib/Utils/FocusRedirector.d.ts.map +1 -0
  136. package/lib/Utils/FocusRedirector.js +17 -14
  137. package/lib/Utils/InlineMarkdown.js +15 -8
  138. package/lib/Utils/TypeFocusSink/FocusBox.js +1 -1
  139. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +2 -0
  140. package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +1 -0
  141. package/lib/Utils/TypeFocusSink/inputtableKey.js +5 -2
  142. package/lib/Utils/activityAltText.d.ts +8 -0
  143. package/lib/Utils/activityAltText.d.ts.map +1 -0
  144. package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +2 -2
  145. package/lib/Utils/createCustomEvent.js +8 -2
  146. package/lib/Utils/detectBrowser.js +4 -2
  147. package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +1 -1
  148. package/lib/Utils/downscaleImageToDataURL/index.js +1 -1
  149. package/lib/Utils/findAncestor.js +17 -0
  150. package/lib/Utils/getActivityUniqueId.js +4 -2
  151. package/lib/Utils/intersectionOf.d.ts +5 -0
  152. package/lib/Utils/intersectionOf.d.ts.map +1 -0
  153. package/lib/Utils/intersectionOf.js +17 -2
  154. package/lib/Utils/isZeroOrPositive.d.ts +5 -0
  155. package/lib/Utils/isZeroOrPositive.d.ts.map +1 -0
  156. package/lib/Utils/isZeroOrPositive.js +4 -1
  157. package/lib/Utils/mapMap.js +9 -2
  158. package/lib/Utils/readDataURIToBlob.js +1 -1
  159. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +7 -0
  160. package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +1 -0
  161. package/lib/Utils/scrollIntoViewWithBlockNearest.js +48 -0
  162. package/lib/Utils/shallowEquals.js +7 -3
  163. package/lib/Utils/supportPseudoClass.d.ts +2 -0
  164. package/lib/Utils/supportPseudoClass.d.ts.map +1 -0
  165. package/lib/Utils/supportPseudoClass.js +23 -0
  166. package/lib/Utils/tabbableElements.d.ts +2 -0
  167. package/lib/Utils/tabbableElements.d.ts.map +1 -0
  168. package/lib/Utils/tabbableElements.js +2 -2
  169. package/lib/connectToWebChat.js +15 -7
  170. package/lib/hooks/index.js +24 -24
  171. package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +8 -7
  172. package/lib/hooks/internal/useChanged.js +8 -1
  173. package/lib/hooks/internal/useDispatchScrollPosition.js +3 -7
  174. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +2 -0
  175. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +1 -0
  176. package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +15 -0
  177. package/lib/hooks/internal/useFocusVisible.d.ts +3 -0
  178. package/lib/hooks/internal/useFocusVisible.d.ts.map +1 -0
  179. package/lib/hooks/internal/useFocusVisible.js +48 -0
  180. package/lib/hooks/internal/useMemoWithPrevious.d.ts +3 -0
  181. package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +1 -0
  182. package/lib/hooks/internal/useMemoWithPrevious.js +22 -0
  183. package/lib/hooks/internal/useMemoize.d.ts +14 -0
  184. package/lib/hooks/internal/useMemoize.d.ts.map +1 -0
  185. package/lib/hooks/internal/useMemoize.js +11 -2
  186. package/lib/hooks/internal/useObserveFocusVisible.d.ts +3 -0
  187. package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +1 -0
  188. package/lib/hooks/internal/useObserveFocusVisible.js +208 -0
  189. package/lib/hooks/internal/usePrevious.d.ts +2 -0
  190. package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
  191. package/lib/hooks/internal/usePrevious.js +18 -0
  192. package/lib/hooks/internal/useStateRef.d.ts +3 -0
  193. package/lib/hooks/internal/useStateRef.d.ts.map +1 -0
  194. package/lib/hooks/internal/useStateRef.js +40 -0
  195. package/lib/hooks/internal/useValueRef.d.ts +3 -0
  196. package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
  197. package/lib/hooks/internal/useValueRef.js +25 -0
  198. package/lib/hooks/useFocus.d.ts +1 -1
  199. package/lib/hooks/useFocus.d.ts.map +1 -1
  200. package/lib/hooks/useFocus.js +1 -1
  201. package/lib/hooks/useObserveTranscriptFocus.d.ts +2 -2
  202. package/lib/hooks/useObserveTranscriptFocus.d.ts.map +1 -1
  203. package/lib/hooks/useObserveTranscriptFocus.js +1 -1
  204. package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +1 -1
  205. package/lib/hooks/useRenderMarkdownAsHTML.js +1 -1
  206. package/lib/hooks/useScrollTo.d.ts.map +1 -1
  207. package/lib/hooks/useScrollTo.js +1 -1
  208. package/lib/hooks/useScrollToEnd.d.ts.map +1 -1
  209. package/lib/hooks/useScrollToEnd.js +1 -1
  210. package/lib/hooks/useSendFiles.d.ts.map +1 -1
  211. package/lib/hooks/useSendFiles.js +4 -4
  212. package/lib/index.d.ts +13 -3
  213. package/lib/index.d.ts.map +1 -1
  214. package/lib/index.js +20 -18
  215. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +5 -0
  216. package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +1 -0
  217. package/lib/providers/ActivityTree/ActivityTreeComposer.js +86 -0
  218. package/lib/providers/ActivityTree/private/Context.d.ts +9 -0
  219. package/lib/providers/ActivityTree/private/Context.d.ts.map +1 -0
  220. package/lib/providers/ActivityTree/private/Context.js +13 -0
  221. package/lib/providers/ActivityTree/private/types.d.ts +10 -0
  222. package/lib/providers/ActivityTree/private/types.d.ts.map +1 -0
  223. package/lib/providers/ActivityTree/private/types.js +2 -0
  224. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +4 -0
  225. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +1 -0
  226. package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +58 -0
  227. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +5 -0
  228. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +1 -0
  229. package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +166 -0
  230. package/lib/providers/ActivityTree/private/useContext.d.ts +3 -0
  231. package/lib/providers/ActivityTree/private/useContext.d.ts.map +1 -0
  232. package/lib/providers/ActivityTree/private/useContext.js +24 -0
  233. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +8 -0
  234. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +1 -0
  235. package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +17 -0
  236. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +37 -0
  237. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +1 -0
  238. package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +160 -0
  239. package/lib/providers/LiveRegionTwin/private/Context.d.ts +10 -0
  240. package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +1 -0
  241. package/lib/providers/LiveRegionTwin/private/Context.js +13 -0
  242. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +12 -0
  243. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +1 -0
  244. package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +100 -0
  245. package/lib/providers/LiveRegionTwin/private/types.d.ts +8 -0
  246. package/lib/providers/LiveRegionTwin/private/types.d.ts.map +1 -0
  247. package/lib/providers/LiveRegionTwin/private/types.js +2 -0
  248. package/lib/providers/LiveRegionTwin/private/useContext.d.ts +3 -0
  249. package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +1 -0
  250. package/lib/providers/LiveRegionTwin/private/useContext.js +24 -0
  251. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +2 -0
  252. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +1 -0
  253. package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +24 -0
  254. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +3 -0
  255. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +1 -0
  256. package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +15 -0
  257. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +8 -0
  258. package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +1 -0
  259. package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +20 -0
  260. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +7 -0
  261. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +1 -0
  262. package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +184 -0
  263. package/lib/providers/TranscriptFocus/private/Context.d.ts +12 -0
  264. package/lib/providers/TranscriptFocus/private/Context.d.ts.map +1 -0
  265. package/lib/providers/TranscriptFocus/private/Context.js +13 -0
  266. package/lib/providers/TranscriptFocus/private/useContext.d.ts +2 -0
  267. package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +1 -0
  268. package/lib/providers/TranscriptFocus/private/useContext.js +24 -0
  269. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +2 -0
  270. package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +1 -0
  271. package/lib/providers/TranscriptFocus/useActiveDescendantId.js +15 -0
  272. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +8 -0
  273. package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +1 -0
  274. package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +21 -0
  275. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +2 -0
  276. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +1 -0
  277. package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +15 -0
  278. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +2 -0
  279. package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +1 -0
  280. package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +15 -0
  281. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +2 -0
  282. package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +1 -0
  283. package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +15 -0
  284. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +2 -0
  285. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +1 -0
  286. package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +15 -0
  287. package/package.json +30 -33
  288. package/src/Activity/CarouselFilmStripAttachment.js +0 -1
  289. package/src/Activity/Speak.tsx +21 -18
  290. package/src/Activity/StackedLayout.tsx +30 -35
  291. package/src/Attachment/FileAttachment.js +1 -1
  292. package/src/Attachment/FileContent.tsx +12 -0
  293. package/src/BasicSendBox.tsx +3 -2
  294. package/src/BasicToaster.js +5 -1
  295. package/src/BasicTranscript.tsx +894 -0
  296. package/src/BasicTypingIndicator.tsx +3 -2
  297. package/src/Composer.tsx +41 -29
  298. package/src/Middleware/Activity/createCoreMiddleware.tsx +47 -46
  299. package/src/Middleware/ActivityStatus/SendStatus/SendStatus.tsx +5 -3
  300. package/src/Middleware/ActivityStatus/Timestamp.tsx +5 -3
  301. package/src/Middleware/ActivityStatus/createSendStatusMiddleware.js +2 -0
  302. package/src/Middleware/Attachment/createCoreMiddleware.tsx +28 -28
  303. package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.tsx +25 -23
  304. package/src/Middleware/Avatar/createCoreMiddleware.tsx +9 -8
  305. package/src/Middleware/CardAction/createCoreMiddleware.js +9 -2
  306. package/src/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.ts +11 -9
  307. package/src/Middleware/Toast/createCoreMiddleware.tsx +12 -10
  308. package/src/Middleware/TypingIndicator/createCoreMiddleware.tsx +8 -2
  309. package/src/ScreenReaderActivity.js +18 -3
  310. package/src/{ScreenReaderText.js → ScreenReaderText.tsx} +27 -9
  311. package/src/SendBox/{IconButton.js → IconButton.tsx} +19 -3
  312. package/src/SendBox/{SuggestedAction.js → SuggestedAction.tsx} +72 -35
  313. package/src/SendBox/SuggestedActions.tsx +48 -21
  314. package/src/Styles/StyleSet/BasicTranscript.ts +34 -20
  315. package/src/Styles/StyleSet/Bubble.ts +0 -1
  316. package/src/Styles/StyleSet/CarouselFilmStrip.ts +12 -10
  317. package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +4 -3
  318. package/src/Styles/StyleSet/KeyboardHelp.ts +157 -0
  319. package/src/Styles/StyleSet/ScrollToEndButton.ts +1 -1
  320. package/src/Styles/StyleSet/SendBoxButton.ts +84 -13
  321. package/src/Styles/StyleSet/SendBoxTextBox.ts +1 -2
  322. package/src/Styles/StyleSet/StackedLayout.ts +13 -11
  323. package/src/Styles/StyleSet/SuggestedAction.ts +129 -42
  324. package/src/Styles/StyleSet/SuggestedActions.ts +13 -5
  325. package/src/Styles/createStyleSet.ts +2 -1
  326. package/src/Styles/mirrorStyle.js +10 -2
  327. package/src/Toast/NotificationIcon.js +4 -1
  328. package/src/Toast/createToastMiddleware.tsx +4 -1
  329. package/src/Transcript/ActivityRow.tsx +123 -0
  330. package/src/Transcript/ActivityTextAlt.tsx +31 -0
  331. package/src/Transcript/FocusTrap.tsx +64 -0
  332. package/src/Transcript/KeyboardHelp.tsx +282 -0
  333. package/src/Transcript/LiveRegionTranscript.tsx +196 -0
  334. package/src/Transcript/types.ts +1 -0
  335. package/src/Transcript/useActivityAccessibleName.ts +84 -0
  336. package/src/Transcript/useTypistNames.ts +37 -0
  337. package/src/Utils/{AccessibleButton.js → AccessibleButton.tsx} +19 -4
  338. package/src/Utils/{FocusRedirector.js → FocusRedirector.tsx} +21 -8
  339. package/src/Utils/InlineMarkdown.js +18 -2
  340. package/src/Utils/TypeFocusSink/inputtableKey.ts +5 -1
  341. package/src/Utils/createCustomEvent.js +7 -1
  342. package/src/Utils/detectBrowser.js +2 -1
  343. package/src/Utils/findAncestor.ts +12 -0
  344. package/src/Utils/getActivityUniqueId.ts +5 -0
  345. package/src/Utils/intersectionOf.ts +14 -0
  346. package/src/Utils/isZeroOrPositive.ts +7 -0
  347. package/src/Utils/mapMap.js +7 -1
  348. package/src/Utils/scrollIntoViewWithBlockNearest.ts +20 -0
  349. package/src/Utils/shallowEquals.js +8 -1
  350. package/src/Utils/supportPseudoClass.ts +17 -0
  351. package/src/Utils/{tabbableElements.js → tabbableElements.ts} +6 -5
  352. package/src/connectToWebChat.js +11 -4
  353. package/src/hooks/internal/BypassSpeechSynthesisPonyfill.js +3 -1
  354. package/src/hooks/internal/useChanged.ts +17 -0
  355. package/src/hooks/internal/useDispatchScrollPosition.js +1 -3
  356. package/src/hooks/internal/useDispatchTranscriptFocusByActivityKey.ts +5 -0
  357. package/src/hooks/internal/useFocusVisible.ts +22 -0
  358. package/src/hooks/internal/useMemoWithPrevious.ts +16 -0
  359. package/src/hooks/internal/useMemoize.spec.js +1 -1
  360. package/src/hooks/internal/useMemoize.ts +53 -0
  361. package/src/hooks/internal/useObserveFocusVisible.ts +252 -0
  362. package/src/hooks/internal/usePrevious.ts +12 -0
  363. package/src/hooks/internal/useStateRef.ts +31 -0
  364. package/src/hooks/internal/useValueRef.ts +22 -0
  365. package/src/hooks/useFocus.ts +1 -1
  366. package/src/hooks/useObserveTranscriptFocus.ts +2 -2
  367. package/src/hooks/useRenderMarkdownAsHTML.ts +4 -5
  368. package/src/hooks/useScrollTo.ts +4 -3
  369. package/src/hooks/useScrollToEnd.ts +4 -3
  370. package/src/hooks/useSendFiles.ts +7 -5
  371. package/src/index.ts +0 -1
  372. package/src/providers/ActivityTree/ActivityTreeComposer.tsx +74 -0
  373. package/src/providers/ActivityTree/private/Context.ts +12 -0
  374. package/src/providers/ActivityTree/private/types.ts +12 -0
  375. package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +64 -0
  376. package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +135 -0
  377. package/src/providers/ActivityTree/private/useContext.ts +15 -0
  378. package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +16 -0
  379. package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +161 -0
  380. package/src/providers/LiveRegionTwin/private/Context.ts +15 -0
  381. package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +80 -0
  382. package/src/providers/LiveRegionTwin/private/types.ts +10 -0
  383. package/src/providers/LiveRegionTwin/private/useContext.ts +15 -0
  384. package/src/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.ts +13 -0
  385. package/src/providers/LiveRegionTwin/private/useStaticElementEntries.ts +7 -0
  386. package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +12 -0
  387. package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +180 -0
  388. package/src/providers/TranscriptFocus/private/Context.ts +16 -0
  389. package/src/providers/TranscriptFocus/private/useContext.ts +13 -0
  390. package/src/providers/TranscriptFocus/useActiveDescendantId.ts +5 -0
  391. package/src/providers/TranscriptFocus/useFocusByActivityKey.ts +14 -0
  392. package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +5 -0
  393. package/src/providers/TranscriptFocus/useFocusedActivityKey.ts +5 -0
  394. package/src/providers/TranscriptFocus/useFocusedExplicitly.ts +5 -0
  395. package/src/providers/TranscriptFocus/useGetDescendantIdByActivityKey.ts +5 -0
  396. package/.eslintignore +0 -1
  397. package/lib/Middleware/GroupActivities/createCoreMiddleware.js +0 -69
  398. package/lib/Utils/findLastIndex.js +0 -32
  399. package/lib/hooks/internal/useAcknowledgedActivity.js +0 -90
  400. package/lib/hooks/internal/useDispatchTranscriptFocus.js +0 -19
  401. package/src/BasicTranscript.js +0 -1139
  402. package/src/Middleware/GroupActivities/createCoreMiddleware.js +0 -57
  403. package/src/Utils/findLastIndex.js +0 -11
  404. package/src/Utils/findLastIndex.spec.js +0 -31
  405. package/src/Utils/getActivityUniqueId.js +0 -3
  406. package/src/Utils/intersectionOf.js +0 -11
  407. package/src/Utils/isZeroOrPositive.js +0 -4
  408. package/src/hooks/internal/useAcknowledgedActivity.js +0 -65
  409. package/src/hooks/internal/useChanged.js +0 -10
  410. package/src/hooks/internal/useDispatchTranscriptFocus.js +0 -7
  411. package/src/hooks/internal/useMemoize.js +0 -37
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.connectDictationInterims = exports.default = void 0;
6
+ exports.default = exports.connectDictationInterims = void 0;
7
7
 
8
8
  var _botframeworkWebchatCore = require("botframework-webchat-core");
9
9
 
@@ -0,0 +1,11 @@
1
+ import { FC, MouseEventHandler, ReactNode } from 'react';
2
+ declare type IconButtonProps = {
3
+ alt?: string;
4
+ children?: ReactNode;
5
+ className?: string;
6
+ disabled?: boolean;
7
+ onClick?: MouseEventHandler<HTMLButtonElement>;
8
+ };
9
+ declare const IconButton: FC<IconButtonProps>;
10
+ export default IconButton;
11
+ //# sourceMappingURL=IconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/SendBox/IconButton.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAU,MAAM,OAAO,CAAC;AAQxE,aAAK,eAAe,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA6BnC,CAAC;AAkBF,eAAe,UAAU,CAAC"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -11,12 +13,18 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
13
 
12
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
15
 
14
- var _react = _interopRequireDefault(require("react"));
16
+ var _react = _interopRequireWildcard(require("react"));
15
17
 
16
18
  var _AccessibleButton = _interopRequireDefault(require("../Utils/AccessibleButton"));
17
19
 
20
+ var _useFocusVisible3 = _interopRequireDefault(require("../hooks/internal/useFocusVisible"));
21
+
18
22
  var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
19
23
 
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
20
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
29
 
22
30
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -40,23 +48,35 @@ var IconButton = function IconButton(_ref) {
40
48
  disabled = _ref.disabled,
41
49
  onClick = _ref.onClick;
42
50
 
51
+ var _useStyleSet = (0, _useStyleSet3.default)(),
52
+ _useStyleSet2 = _slicedToArray(_useStyleSet, 1),
53
+ sendBoxButtonStyleSet = _useStyleSet2[0].sendBoxButton;
54
+
43
55
  var _useStyleOptions = useStyleOptions(),
44
56
  _useStyleOptions2 = _slicedToArray(_useStyleOptions, 1),
45
57
  sendBoxButtonAlignment = _useStyleOptions2[0].sendBoxButtonAlignment;
46
58
 
47
- var _useStyleSet = (0, _useStyleSet3.default)(),
48
- _useStyleSet2 = _slicedToArray(_useStyleSet, 1),
49
- sendBoxButtonStyleSet = _useStyleSet2[0].sendBoxButton;
59
+ var buttonRef = (0, _react.useRef)();
60
+
61
+ var _useFocusVisible = (0, _useFocusVisible3.default)(buttonRef),
62
+ _useFocusVisible2 = _slicedToArray(_useFocusVisible, 1),
63
+ focusVisible = _useFocusVisible2[0];
50
64
 
51
65
  return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
52
66
  className: (0, _classnames.default)(sendBoxButtonStyleSet + '', 'webchat__icon-button', {
67
+ 'webchat__icon-button--focus-visible': focusVisible,
53
68
  'webchat__icon-button--stretch': sendBoxButtonAlignment !== 'bottom' && sendBoxButtonAlignment !== 'top'
54
69
  }, className + ''),
55
70
  disabled: disabled,
56
71
  onClick: disabled ? undefined : onClick,
72
+ ref: buttonRef,
57
73
  title: alt,
58
74
  type: "button"
59
- }, children);
75
+ }, /*#__PURE__*/_react.default.createElement("div", {
76
+ className: "webchat__icon-button__shade"
77
+ }), children, /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "webchat__icon-button__keyboard-focus-indicator"
79
+ }));
60
80
  };
61
81
 
62
82
  IconButton.defaultProps = {
@@ -75,4 +95,4 @@ IconButton.propTypes = {
75
95
  };
76
96
  var _default = IconButton;
77
97
  exports.default = _default;
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L0ljb25CdXR0b24uanMiXSwibmFtZXMiOlsidXNlU3R5bGVPcHRpb25zIiwiaG9va3MiLCJJY29uQnV0dG9uIiwiYWx0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJzZW5kQm94QnV0dG9uQWxpZ25tZW50Iiwic2VuZEJveEJ1dHRvblN0eWxlU2V0Iiwic2VuZEJveEJ1dHRvbiIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImFueSIsImJvb2wiLCJmdW5jIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFRQSxlQUFSLEdBQTRCQyw2QkFBNUIsQ0FBUUQsZUFBUjs7QUFFQSxJQUFNRSxVQUFVLEdBQUcsU0FBYkEsVUFBYSxPQUFxRDtBQUFBLE1BQWxEQyxHQUFrRCxRQUFsREEsR0FBa0Q7QUFBQSxNQUE3Q0MsUUFBNkMsUUFBN0NBLFFBQTZDO0FBQUEsTUFBbkNDLFNBQW1DLFFBQW5DQSxTQUFtQztBQUFBLE1BQXhCQyxRQUF3QixRQUF4QkEsUUFBd0I7QUFBQSxNQUFkQyxPQUFjLFFBQWRBLE9BQWM7O0FBQ3RFLHlCQUFxQ1AsZUFBZSxFQUFwRDtBQUFBO0FBQUEsTUFBU1Esc0JBQVQsd0JBQVNBLHNCQUFUOztBQUNBLHFCQUFtRCw0QkFBbkQ7QUFBQTtBQUFBLE1BQXdCQyxxQkFBeEIsb0JBQVNDLGFBQVQ7O0FBRUEsc0JBQ0UsNkJBQUMseUJBQUQ7QUFDRSxJQUFBLFNBQVMsRUFBRSx5QkFDVEQscUJBQXFCLEdBQUcsRUFEZixFQUVULHNCQUZTLEVBR1Q7QUFDRSx1Q0FBaUNELHNCQUFzQixLQUFLLFFBQTNCLElBQXVDQSxzQkFBc0IsS0FBSztBQURyRyxLQUhTLEVBTVRILFNBQVMsR0FBRyxFQU5ILENBRGI7QUFTRSxJQUFBLFFBQVEsRUFBRUMsUUFUWjtBQVVFLElBQUEsT0FBTyxFQUFFQSxRQUFRLEdBQUdLLFNBQUgsR0FBZUosT0FWbEM7QUFXRSxJQUFBLEtBQUssRUFBRUosR0FYVDtBQVlFLElBQUEsSUFBSSxFQUFDO0FBWlAsS0FjR0MsUUFkSCxDQURGO0FBa0JELENBdEJEOztBQXdCQUYsVUFBVSxDQUFDVSxZQUFYLEdBQTBCO0FBQ3hCVCxFQUFBQSxHQUFHLEVBQUUsRUFEbUI7QUFFeEJDLEVBQUFBLFFBQVEsRUFBRU8sU0FGYztBQUd4Qk4sRUFBQUEsU0FBUyxFQUFFLEVBSGE7QUFJeEJDLEVBQUFBLFFBQVEsRUFBRSxLQUpjO0FBS3hCQyxFQUFBQSxPQUFPLEVBQUVJO0FBTGUsQ0FBMUI7QUFRQVQsVUFBVSxDQUFDVyxTQUFYLEdBQXVCO0FBQ3JCVixFQUFBQSxHQUFHLEVBQUVXLG1CQUFVQyxNQURNO0FBRXJCWCxFQUFBQSxRQUFRLEVBQUVVLG1CQUFVRSxHQUZDO0FBR3JCWCxFQUFBQSxTQUFTLEVBQUVTLG1CQUFVQyxNQUhBO0FBSXJCVCxFQUFBQSxRQUFRLEVBQUVRLG1CQUFVRyxJQUpDO0FBS3JCVixFQUFBQSxPQUFPLEVBQUVPLG1CQUFVSTtBQUxFLENBQXZCO2VBUWVoQixVIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgQWNjZXNzaWJsZUJ1dHRvbiBmcm9tICcuLi9VdGlscy9BY2Nlc3NpYmxlQnV0dG9uJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5cbmNvbnN0IHsgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxuY29uc3QgSWNvbkJ1dHRvbiA9ICh7IGFsdCwgY2hpbGRyZW4sIGNsYXNzTmFtZSwgZGlzYWJsZWQsIG9uQ2xpY2sgfSkgPT4ge1xuICBjb25zdCBbeyBzZW5kQm94QnV0dG9uQWxpZ25tZW50IH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFt7IHNlbmRCb3hCdXR0b246IHNlbmRCb3hCdXR0b25TdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG5cbiAgcmV0dXJuIChcbiAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICBzZW5kQm94QnV0dG9uU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgJ3dlYmNoYXRfX2ljb24tYnV0dG9uJyxcbiAgICAgICAge1xuICAgICAgICAgICd3ZWJjaGF0X19pY29uLWJ1dHRvbi0tc3RyZXRjaCc6IHNlbmRCb3hCdXR0b25BbGlnbm1lbnQgIT09ICdib3R0b20nICYmIHNlbmRCb3hCdXR0b25BbGlnbm1lbnQgIT09ICd0b3AnXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSArICcnXG4gICAgICApfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNsaWNrfVxuICAgICAgdGl0bGU9e2FsdH1cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICk7XG59O1xuXG5JY29uQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWx0OiAnJyxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBvbkNsaWNrOiB1bmRlZmluZWRcbn07XG5cbkljb25CdXR0b24ucHJvcFR5cGVzID0ge1xuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b247XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L0ljb25CdXR0b24udHN4Il0sIm5hbWVzIjpbInVzZVN0eWxlT3B0aW9ucyIsImhvb2tzIiwiSWNvbkJ1dHRvbiIsImFsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwic2VuZEJveEJ1dHRvblN0eWxlU2V0Iiwic2VuZEJveEJ1dHRvbiIsInNlbmRCb3hCdXR0b25BbGlnbm1lbnQiLCJidXR0b25SZWYiLCJmb2N1c1Zpc2libGUiLCJ1bmRlZmluZWQiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJhbnkiLCJib29sIiwiZnVuYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsZUFBUixHQUE0QkMsNkJBQTVCLENBQVFELGVBQVI7O0FBVUEsSUFBTUUsVUFBK0IsR0FBRyxTQUFsQ0EsVUFBa0MsT0FBcUQ7QUFBQSxNQUFsREMsR0FBa0QsUUFBbERBLEdBQWtEO0FBQUEsTUFBN0NDLFFBQTZDLFFBQTdDQSxRQUE2QztBQUFBLE1BQW5DQyxTQUFtQyxRQUFuQ0EsU0FBbUM7QUFBQSxNQUF4QkMsUUFBd0IsUUFBeEJBLFFBQXdCO0FBQUEsTUFBZEMsT0FBYyxRQUFkQSxPQUFjOztBQUMzRixxQkFBbUQsNEJBQW5EO0FBQUE7QUFBQSxNQUF3QkMscUJBQXhCLG9CQUFTQyxhQUFUOztBQUNBLHlCQUFxQ1QsZUFBZSxFQUFwRDtBQUFBO0FBQUEsTUFBU1Usc0JBQVQsd0JBQVNBLHNCQUFUOztBQUNBLE1BQU1DLFNBQVMsR0FBRyxvQkFBbEI7O0FBRUEseUJBQXVCLCtCQUFnQkEsU0FBaEIsQ0FBdkI7QUFBQTtBQUFBLE1BQU9DLFlBQVA7O0FBRUEsc0JBQ0UsNkJBQUMseUJBQUQ7QUFDRSxJQUFBLFNBQVMsRUFBRSx5QkFDVEoscUJBQXFCLEdBQUcsRUFEZixFQUVULHNCQUZTLEVBR1Q7QUFDRSw2Q0FBdUNJLFlBRHpDO0FBRUUsdUNBQWlDRixzQkFBc0IsS0FBSyxRQUEzQixJQUF1Q0Esc0JBQXNCLEtBQUs7QUFGckcsS0FIUyxFQU9UTCxTQUFTLEdBQUcsRUFQSCxDQURiO0FBVUUsSUFBQSxRQUFRLEVBQUVDLFFBVlo7QUFXRSxJQUFBLE9BQU8sRUFBRUEsUUFBUSxHQUFHTyxTQUFILEdBQWVOLE9BWGxDO0FBWUUsSUFBQSxHQUFHLEVBQUVJLFNBWlA7QUFhRSxJQUFBLEtBQUssRUFBRVIsR0FiVDtBQWNFLElBQUEsSUFBSSxFQUFDO0FBZFAsa0JBZ0JFO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixJQWhCRixFQWlCR0MsUUFqQkgsZUFrQkU7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLElBbEJGLENBREY7QUFzQkQsQ0E3QkQ7O0FBK0JBRixVQUFVLENBQUNZLFlBQVgsR0FBMEI7QUFDeEJYLEVBQUFBLEdBQUcsRUFBRSxFQURtQjtBQUV4QkMsRUFBQUEsUUFBUSxFQUFFUyxTQUZjO0FBR3hCUixFQUFBQSxTQUFTLEVBQUUsRUFIYTtBQUl4QkMsRUFBQUEsUUFBUSxFQUFFLEtBSmM7QUFLeEJDLEVBQUFBLE9BQU8sRUFBRU07QUFMZSxDQUExQjtBQVFBWCxVQUFVLENBQUNhLFNBQVgsR0FBdUI7QUFDckJaLEVBQUFBLEdBQUcsRUFBRWEsbUJBQVVDLE1BRE07QUFFckJiLEVBQUFBLFFBQVEsRUFBRVksbUJBQVVFLEdBRkM7QUFHckJiLEVBQUFBLFNBQVMsRUFBRVcsbUJBQVVDLE1BSEE7QUFJckJYLEVBQUFBLFFBQVEsRUFBRVUsbUJBQVVHLElBSkM7QUFLckJaLEVBQUFBLE9BQU8sRUFBRVMsbUJBQVVJO0FBTEUsQ0FBdkI7ZUFRZWxCLFUiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBGQywgTW91c2VFdmVudEhhbmRsZXIsIFJlYWN0Tm9kZSwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgQWNjZXNzaWJsZUJ1dHRvbiBmcm9tICcuLi9VdGlscy9BY2Nlc3NpYmxlQnV0dG9uJztcbmltcG9ydCB1c2VGb2N1c1Zpc2libGUgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlRm9jdXNWaXNpYmxlJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5cbmNvbnN0IHsgdXNlU3R5bGVPcHRpb25zIH0gPSBob29rcztcblxudHlwZSBJY29uQnV0dG9uUHJvcHMgPSB7XG4gIGFsdD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xufTtcblxuY29uc3QgSWNvbkJ1dHRvbjogRkM8SWNvbkJ1dHRvblByb3BzPiA9ICh7IGFsdCwgY2hpbGRyZW4sIGNsYXNzTmFtZSwgZGlzYWJsZWQsIG9uQ2xpY2sgfSkgPT4ge1xuICBjb25zdCBbeyBzZW5kQm94QnV0dG9uOiBzZW5kQm94QnV0dG9uU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbeyBzZW5kQm94QnV0dG9uQWxpZ25tZW50IH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IGJ1dHRvblJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcblxuICBjb25zdCBbZm9jdXNWaXNpYmxlXSA9IHVzZUZvY3VzVmlzaWJsZShidXR0b25SZWYpO1xuXG4gIHJldHVybiAoXG4gICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgc2VuZEJveEJ1dHRvblN0eWxlU2V0ICsgJycsXG4gICAgICAgICd3ZWJjaGF0X19pY29uLWJ1dHRvbicsXG4gICAgICAgIHtcbiAgICAgICAgICAnd2ViY2hhdF9faWNvbi1idXR0b24tLWZvY3VzLXZpc2libGUnOiBmb2N1c1Zpc2libGUsXG4gICAgICAgICAgJ3dlYmNoYXRfX2ljb24tYnV0dG9uLS1zdHJldGNoJzogc2VuZEJveEJ1dHRvbkFsaWdubWVudCAhPT0gJ2JvdHRvbScgJiYgc2VuZEJveEJ1dHRvbkFsaWdubWVudCAhPT0gJ3RvcCdcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lICsgJydcbiAgICAgICl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uQ2xpY2t9XG4gICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgIHRpdGxlPXthbHR9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2ljb24tYnV0dG9uX19zaGFkZVwiIC8+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX2ljb24tYnV0dG9uX19rZXlib2FyZC1mb2N1cy1pbmRpY2F0b3JcIiAvPlxuICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgKTtcbn07XG5cbkljb25CdXR0b24uZGVmYXVsdFByb3BzID0ge1xuICBhbHQ6ICcnLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6ICcnLFxuICBkaXNhYmxlZDogZmFsc2UsXG4gIG9uQ2xpY2s6IHVuZGVmaW5lZFxufTtcblxuSWNvbkJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcbiJdfQ==
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.default = exports.connectMicrophoneButton = void 0;
8
9
  exports.useMicrophoneButtonClick = useMicrophoneButtonClick;
9
10
  exports.useMicrophoneButtonDisabled = useMicrophoneButtonDisabled;
10
- exports.connectMicrophoneButton = exports.default = void 0;
11
11
 
12
12
  var _botframeworkWebchatCore = require("botframework-webchat-core");
13
13
 
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.connectSendButton = exports.default = void 0;
8
+ exports.default = exports.connectSendButton = void 0;
9
9
 
10
10
  var _botframeworkWebchatApi = require("botframework-webchat-api");
11
11
 
@@ -0,0 +1,17 @@
1
+ import { VFC } from 'react';
2
+ declare const connectSuggestedAction: (...selectors: any[]) => any;
3
+ declare type SuggestedActionProps = {
4
+ buttonText: string;
5
+ className?: string;
6
+ displayText?: string;
7
+ image?: string;
8
+ imageAlt?: string;
9
+ text?: string;
10
+ textClassName?: string;
11
+ type?: 'call' | 'downloadFile' | 'imBack' | 'messageBack' | 'openUrl' | 'playAudio' | 'playVideo' | 'postBack' | 'showImage' | 'signin';
12
+ value?: any;
13
+ };
14
+ declare const SuggestedAction: VFC<SuggestedActionProps>;
15
+ export default SuggestedAction;
16
+ export { connectSuggestedAction };
17
+ //# sourceMappingURL=SuggestedAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestedAction.d.ts","sourceRoot":"","sources":["../../src/SendBox/SuggestedAction.tsx"],"names":[],"mappings":"AAGA,OAAc,EAA0C,GAAG,EAAE,MAAM,OAAO,CAAC;AAuB3E,QAAA,MAAM,sBAAsB,8BAWzB,CAAC;AAEJ,aAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EACD,MAAM,GACN,cAAc,GACd,QAAQ,GACR,aAAa,GACb,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,GAAG,CAAC,oBAAoB,CA4E9C,CAAC;AA2BF,eAAe,eAAe,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.connectSuggestedAction = exports.default = void 0;
8
+ exports.default = exports.connectSuggestedAction = void 0;
9
9
 
10
10
  var _botframeworkWebchatApi = require("botframework-webchat-api");
11
11
 
@@ -23,6 +23,8 @@ var _useFocus = _interopRequireDefault(require("../hooks/useFocus"));
23
23
 
24
24
  var _useFocusAccessKeyEffect = _interopRequireDefault(require("../Utils/AccessKeySink/useFocusAccessKeyEffect"));
25
25
 
26
+ var _useFocusVisible3 = _interopRequireDefault(require("../hooks/internal/useFocusVisible"));
27
+
26
28
  var _useLocalizeAccessKey = _interopRequireDefault(require("../hooks/internal/useLocalizeAccessKey"));
27
29
 
28
30
  var _useScrollToEnd = _interopRequireDefault(require("../hooks/useScrollToEnd"));
@@ -60,11 +62,9 @@ var useDirection = _botframeworkWebchatApi.hooks.useDirection,
60
62
  useSuggestedActions = _botframeworkWebchatApi.hooks.useSuggestedActions;
61
63
  var ROOT_STYLE = {
62
64
  '&.webchat__suggested-action': {
63
- '& .webchat__suggested-action__button': {
64
- display: 'flex',
65
- overflow: 'hidden' // Prevent image from leaking; object-fit does not work with IE11
65
+ display: 'flex',
66
+ overflow: 'hidden' // Prevent image from leaking; object-fit does not work with IE11
66
67
 
67
- }
68
68
  }
69
69
  };
70
70
 
@@ -140,10 +140,17 @@ var SuggestedAction = function SuggestedAction(_ref3) {
140
140
  var focusRef = (0, _react.useRef)();
141
141
  var localizeAccessKey = (0, _useLocalizeAccessKey.default)();
142
142
  var performCardAction = usePerformCardAction();
143
- var scrollToEnd = (0, _useScrollToEnd.default)();
144
143
  var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
144
+ var scrollToEnd = (0, _useScrollToEnd.default)();
145
+
146
+ var _useFocusVisible = (0, _useFocusVisible3.default)(focusRef),
147
+ _useFocusVisible2 = _slicedToArray(_useFocusVisible, 1),
148
+ focusVisible = _useFocusVisible2[0];
149
+
145
150
  var handleClick = (0, _react.useCallback)(function (_ref4) {
146
151
  var target = _ref4.target;
152
+ // TODO: [P3] #XXX We should not destruct DirectLineCardAction into React props and pass them in. It makes typings difficult.
153
+ // Instead, we should pass a "cardAction" props.
147
154
  performCardAction({
148
155
  displayText: displayText,
149
156
  text: text,
@@ -158,16 +165,14 @@ var SuggestedAction = function SuggestedAction(_ref3) {
158
165
  scrollToEnd();
159
166
  }, [displayText, focus, performCardAction, scrollToEnd, setSuggestedActions, text, type, value]);
160
167
  (0, _useFocusAccessKeyEffect.default)(accessKey, focusRef);
161
- return /*#__PURE__*/_react.default.createElement("div", {
162
- className: (0, _classnames.default)('webchat__suggested-action', {
163
- 'webchat__suggested-action--rtl': direction === 'rtl'
164
- }, rootClassName, suggestedActionStyleSet + '', (className || '') + '')
165
- }, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, _extends({}, accessKey ? {
168
+ return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, _extends({}, accessKey ? {
166
169
  'aria-keyshortcuts': localizeAccessKey(accessKey)
167
170
  } : {}, {
168
- className: (0, _classnames.default)('webchat__suggested-action__button', {
171
+ className: (0, _classnames.default)('webchat__suggested-action', {
172
+ 'webchat__suggested-action--focus-visible': focusVisible,
173
+ 'webchat__suggested-action--rtl': direction === 'rtl',
169
174
  'webchat__suggested-action--wrapping': suggestedActionsStackedLayoutButtonTextWrap
170
- }),
175
+ }, rootClassName, suggestedActionStyleSet + '', (className || '') + ''),
171
176
  disabled: disabled,
172
177
  onClick: handleClick,
173
178
  ref: focusRef,
@@ -178,7 +183,9 @@ var SuggestedAction = function SuggestedAction(_ref3) {
178
183
  src: image
179
184
  }), /*#__PURE__*/_react.default.createElement("span", {
180
185
  className: (0, _classnames.default)('webchat__suggested-action__text', (textClassName || '') + '')
181
- }, buttonText)));
186
+ }, buttonText), /*#__PURE__*/_react.default.createElement("div", {
187
+ className: "webchat__suggested-action__keyboard-focus-indicator"
188
+ }));
182
189
  };
183
190
 
184
191
  SuggestedAction.defaultProps = {
@@ -188,7 +195,7 @@ SuggestedAction.defaultProps = {
188
195
  imageAlt: undefined,
189
196
  text: '',
190
197
  textClassName: '',
191
- type: '',
198
+ type: undefined,
192
199
  value: undefined
193
200
  };
194
201
  SuggestedAction.propTypes = {
@@ -199,9 +206,11 @@ SuggestedAction.propTypes = {
199
206
  imageAlt: _propTypes.default.string,
200
207
  text: _propTypes.default.string,
201
208
  textClassName: _propTypes.default.string,
209
+ // TypeScript class is not mappable to PropTypes.
210
+ // @ts-ignore
202
211
  type: _propTypes.default.string,
203
212
  value: _propTypes.default.any
204
213
  };
205
214
  var _default = SuggestedAction;
206
215
  exports.default = _default;
207
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbi5qcyJdLCJuYW1lcyI6WyJ1c2VEaXJlY3Rpb24iLCJob29rcyIsInVzZURpc2FibGVkIiwidXNlUGVyZm9ybUNhcmRBY3Rpb24iLCJ1c2VTdHlsZU9wdGlvbnMiLCJ1c2VTdWdnZXN0ZWRBY3Rpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJvdmVyZmxvdyIsImNvbm5lY3RTdWdnZXN0ZWRBY3Rpb24iLCJzZWxlY3RvcnMiLCJjb25uZWN0VG9XZWJDaGF0IiwiY2xlYXJTdWdnZXN0ZWRBY3Rpb25zIiwiZGlzYWJsZWQiLCJsYW5ndWFnZSIsIm9uQ2FyZEFjdGlvbiIsImRpc3BsYXlUZXh0IiwidGV4dCIsInR5cGUiLCJ2YWx1ZSIsImNsaWNrIiwiU3VnZ2VzdGVkQWN0aW9uIiwiYnV0dG9uVGV4dCIsImNsYXNzTmFtZSIsImltYWdlIiwiaW1hZ2VBbHQiLCJ0ZXh0Q2xhc3NOYW1lIiwiXyIsInNldFN1Z2dlc3RlZEFjdGlvbnMiLCJzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwIiwic3VnZ2VzdGVkQWN0aW9uU3R5bGVTZXQiLCJzdWdnZXN0ZWRBY3Rpb24iLCJhY2Nlc3NLZXkiLCJkaXJlY3Rpb24iLCJmb2N1cyIsImZvY3VzUmVmIiwibG9jYWxpemVBY2Nlc3NLZXkiLCJwZXJmb3JtQ2FyZEFjdGlvbiIsInNjcm9sbFRvRW5kIiwicm9vdENsYXNzTmFtZSIsImhhbmRsZUNsaWNrIiwidGFyZ2V0IiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsImFueSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFF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QUEsUUFBUSxFQUFFb0IsbUJBQVVDLE1BTE07QUFNMUI3QixFQUFBQSxJQUFJLEVBQUU0QixtQkFBVUMsTUFOVTtBQU8xQnBCLEVBQUFBLGFBQWEsRUFBRW1CLG1CQUFVQyxNQVBDO0FBUTFCNUIsRUFBQUEsSUFBSSxFQUFFMkIsbUJBQVVDLE1BUlU7QUFTMUIzQixFQUFBQSxLQUFLLEVBQUUwQixtQkFBVUc7QUFUUyxDQUE1QjtlQVllM0IsZSIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gJy4uL1V0aWxzL0FjY2Vzc2libGVCdXR0b24nO1xuaW1wb3J0IGNvbm5lY3RUb1dlYkNoYXQgZnJvbSAnLi4vY29ubmVjdFRvV2ViQ2hhdCc7XG5pbXBvcnQgdXNlRm9jdXMgZnJvbSAnLi4vaG9va3MvdXNlRm9jdXMnO1xuaW1wb3J0IHVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0IGZyb20gJy4uL1V0aWxzL0FjY2Vzc0tleVNpbmsvdXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3QnO1xuaW1wb3J0IHVzZUxvY2FsaXplQWNjZXNzS2V5IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUxvY2FsaXplQWNjZXNzS2V5JztcbmltcG9ydCB1c2VTY3JvbGxUb0VuZCBmcm9tICcuLi9ob29rcy91c2VTY3JvbGxUb0VuZCc7XG5pbXBvcnQgdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5JztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlRGlzYWJsZWQsIHVzZVBlcmZvcm1DYXJkQWN0aW9uLCB1c2VTdHlsZU9wdGlvbnMsIHVzZVN1Z2dlc3RlZEFjdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJzoge1xuICAgICcmIC53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19idXR0b24nOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicgLy8gUHJldmVudCBpbWFnZSBmcm9tIGxlYWtpbmc7IG9iamVjdC1maXQgZG9lcyBub3Qgd29yayB3aXRoIElFMTFcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb24gPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgICh7IGNsZWFyU3VnZ2VzdGVkQWN0aW9ucywgZGlzYWJsZWQsIGxhbmd1YWdlLCBvbkNhcmRBY3Rpb24gfSwgeyBkaXNwbGF5VGV4dCwgdGV4dCwgdHlwZSwgdmFsdWUgfSkgPT4gKHtcbiAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgIG9uQ2FyZEFjdGlvbih7IGRpc3BsYXlUZXh0LCB0ZXh0LCB0eXBlLCB2YWx1ZSB9KTtcbiAgICAgICAgdHlwZSA9PT0gJ29wZW5VcmwnICYmIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucygpO1xuICAgICAgfSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgbGFuZ3VhZ2VcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uID0gKHsgYnV0dG9uVGV4dCwgY2xhc3NOYW1lLCBkaXNwbGF5VGV4dCwgaW1hZ2UsIGltYWdlQWx0LCB0ZXh0LCB0ZXh0Q2xhc3NOYW1lLCB0eXBlLCB2YWx1ZSB9KSA9PiB7XG4gIGNvbnN0IFtfLCBzZXRTdWdnZXN0ZWRBY3Rpb25zXSA9IHVzZVN1Z2dlc3RlZEFjdGlvbnMoKTtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCB9XSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb246IHN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW2FjY2Vzc0tleV0gPSB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5KCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IFtkaXNhYmxlZF0gPSB1c2VEaXNhYmxlZCgpO1xuICBjb25zdCBmb2N1cyA9IHVzZUZvY3VzKCk7XG4gIGNvbnN0IGZvY3VzUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGxvY2FsaXplQWNjZXNzS2V5ID0gdXNlTG9jYWxpemVBY2Nlc3NLZXkoKTtcbiAgY29uc3QgcGVyZm9ybUNhcmRBY3Rpb24gPSB1c2VQZXJmb3JtQ2FyZEFjdGlvbigpO1xuICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZVNjcm9sbFRvRW5kKCk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oeyBkaXNwbGF5VGV4dCwgdGV4dCwgdHlwZSwgdmFsdWUgfSwgeyB0YXJnZXQgfSk7XG5cbiAgICAgIC8vIFNpbmNlIFwib3BlblVybFwiIGFjdGlvbiBkbyBub3Qgc3VibWl0LCB0aGUgc3VnZ2VzdGVkIGFjdGlvbiBidXR0b25zIGRvIG5vdCBoaWRlIGFmdGVyIGNsaWNrLlxuICAgICAgdHlwZSA9PT0gJ29wZW5VcmwnICYmIHNldFN1Z2dlc3RlZEFjdGlvbnMoW10pO1xuXG4gICAgICBmb2N1cygnc2VuZEJveFdpdGhvdXRLZXlib2FyZCcpO1xuICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICB9LFxuICAgIFtkaXNwbGF5VGV4dCwgZm9jdXMsIHBlcmZvcm1DYXJkQWN0aW9uLCBzY3JvbGxUb0VuZCwgc2V0U3VnZ2VzdGVkQWN0aW9ucywgdGV4dCwgdHlwZSwgdmFsdWVdXG4gICk7XG5cbiAgdXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3QoYWNjZXNzS2V5LCBmb2N1c1JlZik7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJyxcbiAgICAgICAgeyAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbi0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyB9LFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25TdHlsZVNldCArICcnLFxuICAgICAgICAoY2xhc3NOYW1lIHx8ICcnKSArICcnXG4gICAgICApfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgIHsuLi4oYWNjZXNzS2V5ID8geyAnYXJpYS1rZXlzaG9ydGN1dHMnOiBsb2NhbGl6ZUFjY2Vzc0tleShhY2Nlc3NLZXkpIH0gOiB7fSl9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbl9fYnV0dG9uJywge1xuICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uLS13cmFwcGluZyc6IHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXBcbiAgICAgICAgfSl9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIHJlZj17Zm9jdXNSZWZ9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7aW1hZ2UgJiYgKFxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD17aW1hZ2VBbHR9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19pbWFnZScsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgJiYgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX2ltYWdlLS1ydGwnXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgc3JjPXtpbWFnZX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX3RleHQnLCAodGV4dENsYXNzTmFtZSB8fCAnJykgKyAnJyl9PntidXR0b25UZXh0fTwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblN1Z2dlc3RlZEFjdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJycsXG4gIGRpc3BsYXlUZXh0OiAnJyxcbiAgaW1hZ2U6ICcnLFxuICBpbWFnZUFsdDogdW5kZWZpbmVkLFxuICB0ZXh0OiAnJyxcbiAgdGV4dENsYXNzTmFtZTogJycsXG4gIHR5cGU6ICcnLFxuICB2YWx1ZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb24ucHJvcFR5cGVzID0ge1xuICBidXR0b25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzcGxheVRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbWFnZUFsdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5hbnlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN1Z2dlc3RlZEFjdGlvbjtcblxuZXhwb3J0IHsgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbiB9O1xuIl19
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbi50c3giXSwibmFtZXMiOlsidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VEaXNhYmxlZCIsInVzZVBlcmZvcm1DYXJkQWN0aW9uIiwidXNlU3R5bGVPcHRpb25zIiwidXNlU3VnZ2VzdGVkQWN0aW9ucyIsIlJPT1RfU1RZTEUiLCJkaXNwbGF5Iiwib3ZlcmZsb3ciLCJjb25uZWN0U3VnZ2VzdGVkQWN0aW9uIiwic2VsZWN0b3JzIiwiY29ubmVjdFRvV2ViQ2hhdCIsImNsZWFyU3VnZ2VzdGVkQWN0aW9ucyIsImRpc2FibGVkIiwibGFuZ3VhZ2UiLCJvbkNhcmRBY3Rpb24iLCJkaXNwbGF5VGV4dCIsInRleHQiLCJ0eXBlIiwidmFsdWUiLCJjbGljayIsIlN1Z2dlc3RlZEFjdGlvbiIsImJ1dHRvblRleHQiLCJjbGFzc05hbWUiLCJpbWFnZSIsImltYWdlQWx0IiwidGV4dENsYXNzTmFtZSIsIl8iLCJzZXRTdWdnZXN0ZWRBY3Rpb25zIiwic3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCIsInN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0Iiwic3VnZ2VzdGVkQWN0aW9uIiwiYWNjZXNzS2V5IiwiZGlyZWN0aW9uIiwiZm9jdXMiLCJmb2N1c1JlZiIsImxvY2FsaXplQWNjZXNzS2V5IiwicGVyZm9ybUNhcmRBY3Rpb24iLCJyb290Q2xhc3NOYW1lIiwic2Nyb2xsVG9FbmQiLCJmb2N1c1Zpc2libGUiLCJoYW5kbGVDbGljayIsInRhcmdldCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7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QSxLQUFLLEVBQUVzQixtQkFBVUMsTUFKUztBQUsxQnRCLEVBQUFBLFFBQVEsRUFBRXFCLG1CQUFVQyxNQUxNO0FBTTFCOUIsRUFBQUEsSUFBSSxFQUFFNkIsbUJBQVVDLE1BTlU7QUFPMUJyQixFQUFBQSxhQUFhLEVBQUVvQixtQkFBVUMsTUFQQztBQVExQjtBQUNBO0FBQ0E3QixFQUFBQSxJQUFJLEVBQUU0QixtQkFBVUMsTUFWVTtBQVcxQjVCLEVBQUFBLEtBQUssRUFBRTJCLG1CQUFVRztBQVhTLENBQTVCO2VBY2U1QixlIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgTW91c2VFdmVudEhhbmRsZXIsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIFZGQyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUNhcmRBY3Rpb24gfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSAnLi4vVXRpbHMvQWNjZXNzaWJsZUJ1dHRvbic7XG5pbXBvcnQgY29ubmVjdFRvV2ViQ2hhdCBmcm9tICcuLi9jb25uZWN0VG9XZWJDaGF0JztcbmltcG9ydCB1c2VGb2N1cyBmcm9tICcuLi9ob29rcy91c2VGb2N1cyc7XG5pbXBvcnQgdXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3QgZnJvbSAnLi4vVXRpbHMvQWNjZXNzS2V5U2luay91c2VGb2N1c0FjY2Vzc0tleUVmZmVjdCc7XG5pbXBvcnQgdXNlRm9jdXNWaXNpYmxlIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUZvY3VzVmlzaWJsZSc7XG5pbXBvcnQgdXNlTG9jYWxpemVBY2Nlc3NLZXkgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTG9jYWxpemVBY2Nlc3NLZXknO1xuaW1wb3J0IHVzZVNjcm9sbFRvRW5kIGZyb20gJy4uL2hvb2tzL3VzZVNjcm9sbFRvRW5kJztcbmltcG9ydCB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN1Z2dlc3RlZEFjdGlvbnNBY2Nlc3NLZXknO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5cbmNvbnN0IHsgdXNlRGlyZWN0aW9uLCB1c2VEaXNhYmxlZCwgdXNlUGVyZm9ybUNhcmRBY3Rpb24sIHVzZVN0eWxlT3B0aW9ucywgdXNlU3VnZ2VzdGVkQWN0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb24nOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyAvLyBQcmV2ZW50IGltYWdlIGZyb20gbGVha2luZzsgb2JqZWN0LWZpdCBkb2VzIG5vdCB3b3JrIHdpdGggSUUxMVxuICB9XG59O1xuXG5jb25zdCBjb25uZWN0U3VnZ2VzdGVkQWN0aW9uID0gKC4uLnNlbGVjdG9ycykgPT5cbiAgY29ubmVjdFRvV2ViQ2hhdChcbiAgICAoeyBjbGVhclN1Z2dlc3RlZEFjdGlvbnMsIGRpc2FibGVkLCBsYW5ndWFnZSwgb25DYXJkQWN0aW9uIH0sIHsgZGlzcGxheVRleHQsIHRleHQsIHR5cGUsIHZhbHVlIH0pID0+ICh7XG4gICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICBvbkNhcmRBY3Rpb24oeyBkaXNwbGF5VGV4dCwgdGV4dCwgdHlwZSwgdmFsdWUgfSk7XG4gICAgICAgIHR5cGUgPT09ICdvcGVuVXJsJyAmJiBjbGVhclN1Z2dlc3RlZEFjdGlvbnMoKTtcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGxhbmd1YWdlXG4gICAgfSksXG4gICAgLi4uc2VsZWN0b3JzXG4gICk7XG5cbnR5cGUgU3VnZ2VzdGVkQWN0aW9uUHJvcHMgPSB7XG4gIGJ1dHRvblRleHQ6IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNwbGF5VGV4dD86IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGltYWdlQWx0Pzogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xuICB0ZXh0Q2xhc3NOYW1lPzogc3RyaW5nO1xuICB0eXBlPzpcbiAgICB8ICdjYWxsJ1xuICAgIHwgJ2Rvd25sb2FkRmlsZSdcbiAgICB8ICdpbUJhY2snXG4gICAgfCAnbWVzc2FnZUJhY2snXG4gICAgfCAnb3BlblVybCdcbiAgICB8ICdwbGF5QXVkaW8nXG4gICAgfCAncGxheVZpZGVvJ1xuICAgIHwgJ3Bvc3RCYWNrJ1xuICAgIHwgJ3Nob3dJbWFnZSdcbiAgICB8ICdzaWduaW4nO1xuICB2YWx1ZT86IGFueTtcbn07XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvbjogVkZDPFN1Z2dlc3RlZEFjdGlvblByb3BzPiA9ICh7XG4gIGJ1dHRvblRleHQsXG4gIGNsYXNzTmFtZSxcbiAgZGlzcGxheVRleHQsXG4gIGltYWdlLFxuICBpbWFnZUFsdCxcbiAgdGV4dCxcbiAgdGV4dENsYXNzTmFtZSxcbiAgdHlwZSxcbiAgdmFsdWVcbn0pID0+IHtcbiAgY29uc3QgW18sIHNldFN1Z2dlc3RlZEFjdGlvbnNdID0gdXNlU3VnZ2VzdGVkQWN0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFt7IHN1Z2dlc3RlZEFjdGlvbjogc3VnZ2VzdGVkQWN0aW9uU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbYWNjZXNzS2V5XSA9IHVzZVN1Z2dlc3RlZEFjdGlvbnNBY2Nlc3NLZXkoKTtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgW2Rpc2FibGVkXSA9IHVzZURpc2FibGVkKCk7XG4gIGNvbnN0IGZvY3VzID0gdXNlRm9jdXMoKTtcbiAgY29uc3QgZm9jdXNSZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgbG9jYWxpemVBY2Nlc3NLZXkgPSB1c2VMb2NhbGl6ZUFjY2Vzc0tleSgpO1xuICBjb25zdCBwZXJmb3JtQ2FyZEFjdGlvbiA9IHVzZVBlcmZvcm1DYXJkQWN0aW9uKCk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG4gIGNvbnN0IHNjcm9sbFRvRW5kID0gdXNlU2Nyb2xsVG9FbmQoKTtcblxuICBjb25zdCBbZm9jdXNWaXNpYmxlXSA9IHVzZUZvY3VzVmlzaWJsZShmb2N1c1JlZik7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjazxNb3VzZUV2ZW50SGFuZGxlcjxIVE1MQnV0dG9uRWxlbWVudD4+KFxuICAgICh7IHRhcmdldCB9KSA9PiB7XG4gICAgICAvLyBUT0RPOiBbUDNdICNYWFggV2Ugc2hvdWxkIG5vdCBkZXN0cnVjdCBEaXJlY3RMaW5lQ2FyZEFjdGlvbiBpbnRvIFJlYWN0IHByb3BzIGFuZCBwYXNzIHRoZW0gaW4uIEl0IG1ha2VzIHR5cGluZ3MgZGlmZmljdWx0LlxuICAgICAgLy8gICAgICAgSW5zdGVhZCwgd2Ugc2hvdWxkIHBhc3MgYSBcImNhcmRBY3Rpb25cIiBwcm9wcy5cbiAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHsgZGlzcGxheVRleHQsIHRleHQsIHR5cGUsIHZhbHVlIH0gYXMgRGlyZWN0TGluZUNhcmRBY3Rpb24sIHsgdGFyZ2V0IH0pO1xuXG4gICAgICAvLyBTaW5jZSBcIm9wZW5VcmxcIiBhY3Rpb24gZG8gbm90IHN1Ym1pdCwgdGhlIHN1Z2dlc3RlZCBhY3Rpb24gYnV0dG9ucyBkbyBub3QgaGlkZSBhZnRlciBjbGljay5cbiAgICAgIHR5cGUgPT09ICdvcGVuVXJsJyAmJiBzZXRTdWdnZXN0ZWRBY3Rpb25zKFtdKTtcblxuICAgICAgZm9jdXMoJ3NlbmRCb3hXaXRob3V0S2V5Ym9hcmQnKTtcbiAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgfSxcbiAgICBbZGlzcGxheVRleHQsIGZvY3VzLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmQsIHNldFN1Z2dlc3RlZEFjdGlvbnMsIHRleHQsIHR5cGUsIHZhbHVlXVxuICApO1xuXG4gIHVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0KGFjY2Vzc0tleSwgZm9jdXNSZWYpO1xuXG4gIHJldHVybiAoXG4gICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgIHsuLi4oYWNjZXNzS2V5ID8geyAnYXJpYS1rZXlzaG9ydGN1dHMnOiBsb2NhbGl6ZUFjY2Vzc0tleShhY2Nlc3NLZXkpIH0gOiB7fSl9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJyxcbiAgICAgICAge1xuICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uLS1mb2N1cy12aXNpYmxlJzogZm9jdXNWaXNpYmxlLFxuICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uLS1ydGwnOiBkaXJlY3Rpb24gPT09ICdydGwnLFxuICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uLS13cmFwcGluZyc6IHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXBcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgcmVmPXtmb2N1c1JlZn1cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHtpbWFnZSAmJiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBhbHQ9e2ltYWdlQWx0fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19pbWFnZScsXG4gICAgICAgICAgICBkaXJlY3Rpb24gPT09ICdydGwnICYmICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19pbWFnZS0tcnRsJ1xuICAgICAgICAgICl9XG4gICAgICAgICAgc3JjPXtpbWFnZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX3RleHQnLCAodGV4dENsYXNzTmFtZSB8fCAnJykgKyAnJyl9PntidXR0b25UZXh0fTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbl9fa2V5Ym9hcmQtZm9jdXMtaW5kaWNhdG9yXCIgLz5cbiAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb24uZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBkaXNwbGF5VGV4dDogJycsXG4gIGltYWdlOiAnJyxcbiAgaW1hZ2VBbHQ6IHVuZGVmaW5lZCxcbiAgdGV4dDogJycsXG4gIHRleHRDbGFzc05hbWU6ICcnLFxuICB0eXBlOiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWRcbn07XG5cblN1Z2dlc3RlZEFjdGlvbi5wcm9wVHlwZXMgPSB7XG4gIGJ1dHRvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNwbGF5VGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaW1hZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGltYWdlQWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0Q2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvLyBUeXBlU2NyaXB0IGNsYXNzIGlzIG5vdCBtYXBwYWJsZSB0byBQcm9wVHlwZXMuXG4gIC8vIEB0cy1pZ25vcmVcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5hbnlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN1Z2dlc3RlZEFjdGlvbjtcblxuZXhwb3J0IHsgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbiB9O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestedActions.d.ts","sourceRoot":"","sources":["../../src/SendBox/SuggestedActions.tsx"],"names":[],"mappings":"AA+CA,QAAA,MAAM,uBAAuB,8BAO1B,CAAC;;AA0PJ,wBAA2D;AAE3D,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"SuggestedActions.d.ts","sourceRoot":"","sources":["../../src/SendBox/SuggestedActions.tsx"],"names":[],"mappings":"AA+CA,QAAA,MAAM,uBAAuB,8BAO1B,CAAC;;AAqRJ,wBAA2D;AAE3D,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.connectSuggestedActions = exports.default = void 0;
8
+ exports.default = exports.connectSuggestedActions = void 0;
9
9
 
10
10
  var _botframeworkWebchatApi = require("botframework-webchat-api");
11
11
 
@@ -197,7 +197,7 @@ var SuggestedActionFlowContainer = function SuggestedActionFlowContainer(_ref4)
197
197
  className: "webchat__suggested-actions__flow-box"
198
198
  }, _react.default.Children.map(children, function (child) {
199
199
  return /*#__PURE__*/_react.default.createElement("div", {
200
- className: "webchat__suggested-actions__item"
200
+ className: "webchat__suggested-actions__flow-item-box"
201
201
  }, child);
202
202
  })));
203
203
  };
@@ -261,6 +261,7 @@ var SuggestedActions = function SuggestedActions(_ref6) {
261
261
  _useSuggestedActionsA2 = _slicedToArray(_useSuggestedActionsA, 1),
262
262
  accessKey = _useSuggestedActionsA2[0];
263
263
 
264
+ var hideEmptyRef = (0, _react.useRef)(true);
264
265
  var localize = useLocalizer();
265
266
  var localizeAccessKey = (0, _useLocalizeAccessKey.default)();
266
267
  var screenReaderText = localize('SUGGESTED_ACTIONS_ALT', suggestedActions.length ? accessKey ? localize('SUGGESTED_ACTIONS_ALT_HAS_CONTENT_AND_ACCESS_KEY', localizeAccessKey(accessKey)) : localize('SUGGESTED_ACTIONS_ALT_HAS_CONTENT') : localize('SUGGESTED_ACTIONS_ALT_NO_CONTENT'));
@@ -273,7 +274,10 @@ var SuggestedActions = function SuggestedActions(_ref6) {
273
274
  title = _ref7.title,
274
275
  type = _ref7.type,
275
276
  value = _ref7.value;
276
- return /*#__PURE__*/_react.default.createElement(_SuggestedAction.default, {
277
+ return /*#__PURE__*/_react.default.createElement("div", {
278
+ className: "webchat__suggested-actions__item-box",
279
+ key: index
280
+ }, /*#__PURE__*/_react.default.createElement(_SuggestedAction.default, {
277
281
  buttonText: suggestedActionText({
278
282
  displayText: displayText,
279
283
  title: title,
@@ -284,13 +288,27 @@ var SuggestedActions = function SuggestedActions(_ref6) {
284
288
  displayText: displayText,
285
289
  image: image,
286
290
  imageAlt: imageAltText,
287
- key: index,
288
291
  text: text,
289
292
  textClassName: suggestedActionLayout === 'stacked' && suggestedActionsStackedLayoutButtonTextWrap ? 'webchat__suggested-actions__button-text-stacked-text-wrap' : 'webchat__suggested-actions__button-text',
290
293
  type: type,
291
294
  value: value
292
- });
293
- });
295
+ }));
296
+ }); // (Related to #4021)
297
+ //
298
+ // To improve accessibility UX, if there are no suggested actions, and this container was never shown.
299
+ // Then, avoid rendering the alt-text "Suggested Actions Container: Is empty".
300
+ //
301
+ // This is to reduce the narration of "Is empty".
302
+ //
303
+ // After any suggested actions were shown during the lifetime of this container, then we will
304
+ // continue to start showing "Suggested Actions Container: Is empty" when the container is empty.
305
+
306
+ if (!children.length && hideEmptyRef.current) {
307
+ return null;
308
+ } // Otherwise, if we have rendered once, we will continue to render "Is empty".
309
+
310
+
311
+ hideEmptyRef.current = false;
294
312
 
295
313
  if (suggestedActionLayout === 'flow') {
296
314
  return /*#__PURE__*/_react.default.createElement(SuggestedActionFlowContainer, {
@@ -316,7 +334,6 @@ SuggestedActions.defaultProps = {
316
334
  SuggestedActions.propTypes = {
317
335
  className: _propTypes.default.string,
318
336
  // TypeScript class is not mappable to PropTypes.func
319
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
320
337
  // @ts-ignore
321
338
  suggestedActions: _propTypes.default.arrayOf(_propTypes.default.shape({
322
339
  displayText: _propTypes.default.string,
@@ -332,4 +349,4 @@ SuggestedActions.propTypes = {
332
349
  var _default = connectSuggestedActions()(SuggestedActions);
333
350
 
334
351
  exports.default = _default;
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbnMudHN4Il0sIm5hbWVzIjpbInVzZURpcmVjdGlvbiIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlU3R5bGVPcHRpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImZsZXhEaXJlY3Rpb24iLCJzdWdnZXN0ZWRBY3Rpb25UZXh0IiwiZGlzcGxheVRleHQiLCJ0aXRsZSIsInR5cGUiLCJ2YWx1ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb25uZWN0U3VnZ2VzdGVkQWN0aW9ucyIsInNlbGVjdG9ycyIsImNvbm5lY3RUb1dlYkNoYXQiLCJsYW5ndWFnZSIsInN1Z2dlc3RlZEFjdGlvbnMiLCJTdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic2NyZWVuUmVhZGVyVGV4dCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IiLCJzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZSIsInN1Z2dlc3RlZEFjdGlvbnNTdHlsZVNldCIsImRpcmVjdGlvbiIsIm5vbmNlIiwiYXJpYUxhYmVsSWQiLCJyb290Q2xhc3NOYW1lIiwiZmlsbVN0eWxlU2V0IiwiYXV0b0hpZGUiLCJjdXJzb3IiLCJmbGlwcGVyQm94V2lkdGgiLCJmbGlwcGVyU2l6ZSIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJjb3VudCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJTdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyIiwibWFwIiwiY2hpbGQiLCJTdWdnZXN0ZWRBY3Rpb25TdGFja2VkQ29udGFpbmVyIiwiU3VnZ2VzdGVkQWN0aW9ucyIsInN1Z2dlc3RlZEFjdGlvbkxheW91dCIsInN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAiLCJhY2Nlc3NLZXkiLCJsb2NhbGl6ZSIsImxvY2FsaXplQWNjZXNzS2V5IiwibGVuZ3RoIiwiY2FyZEFjdGlvbiIsImluZGV4IiwiaW1hZ2UiLCJpbWFnZUFsdFRleHQiLCJ0ZXh0IiwiYXJyYXlPZiIsInNoYXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFRQSxZQUFSLEdBQXdEQyw2QkFBeEQsQ0FBUUQsWUFBUjtBQUFBLElBQXNCRSxZQUF0QixHQUF3REQsNkJBQXhELENBQXNCQyxZQUF0QjtBQUFBLElBQW9DQyxlQUFwQyxHQUF3REYsNkJBQXhELENBQW9DRSxlQUFwQztBQUVBLElBQU1DLFVBQVUsR0FBRztBQUNqQixrQ0FBZ0M7QUFDOUIsdUZBQW1GO0FBQ2pGQyxNQUFBQSxPQUFPLEVBQUUsTUFEd0U7QUFFakZDLE1BQUFBLFFBQVEsRUFBRTtBQUZ1RSxLQURyRDtBQU05QixxRkFBaUY7QUFDL0VELE1BQUFBLE9BQU8sRUFBRSxNQURzRTtBQUUvRUUsTUFBQUEsYUFBYSxFQUFFO0FBRmdFO0FBTm5EO0FBRGYsQ0FBbkI7O0FBY0EsU0FBU0MsbUJBQVQsT0FBa0U7QUFBQSxNQUFuQ0MsV0FBbUMsUUFBbkNBLFdBQW1DO0FBQUEsTUFBdEJDLEtBQXNCLFFBQXRCQSxLQUFzQjtBQUFBLE1BQWZDLElBQWUsUUFBZkEsSUFBZTtBQUFBLE1BQVRDLEtBQVMsUUFBVEEsS0FBUzs7QUFDaEUsTUFBSUQsSUFBSSxLQUFLLGFBQWIsRUFBNEI7QUFDMUIsV0FBT0QsS0FBSyxJQUFJRCxXQUFoQjtBQUNELEdBRkQsTUFFTyxJQUFJQyxLQUFKLEVBQVc7QUFDaEIsV0FBT0EsS0FBUDtBQUNELEdBRk0sTUFF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TUFBVixDQUFpQkMsVUFOVDtBQU9kbEMsSUFBQUEsS0FBSyxFQUFFK0IsbUJBQVVDO0FBUEgsR0FBaEIsQ0FEZ0IsRUFVaEJFO0FBaEJ5QixDQUE3Qjs7ZUFtQmUvQix1QkFBdUIsR0FBR29DLGdCQUFILEMiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCByZWFjdC9uby1hcnJheS1pbmRleC1rZXk6IFwib2ZmXCIgKi9cblxuaW1wb3J0IHsgRGlyZWN0TGluZUNhcmRBY3Rpb24gfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcbmltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBCYXNpY0ZpbG0sIHsgY3JlYXRlQmFzaWNTdHlsZVNldCBhcyBjcmVhdGVCYXNpY1N0eWxlU2V0Rm9yUmVhY3RGaWxtIH0gZnJvbSAncmVhY3QtZmlsbSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgRkMsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBjb25uZWN0VG9XZWJDaGF0IGZyb20gJy4uL2Nvbm5lY3RUb1dlYkNoYXQnO1xuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgU3VnZ2VzdGVkQWN0aW9uIGZyb20gJy4vU3VnZ2VzdGVkQWN0aW9uJztcbmltcG9ydCB1c2VMb2NhbGl6ZUFjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VMb2NhbGl6ZUFjY2Vzc0tleSc7XG5pbXBvcnQgdXNlTm9uY2UgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTm9uY2UnO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5pbXBvcnQgdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5JztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VVbmlxdWVJZCc7XG5cbmNvbnN0IHsgdXNlRGlyZWN0aW9uLCB1c2VMb2NhbGl6ZXIsIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJzoge1xuICAgICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1mbG93LWxheW91dCAud2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2Zsb3ctYm94Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleFdyYXA6ICd3cmFwJ1xuICAgIH0sXG5cbiAgICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tc3RhY2stbGF5b3V0IC53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fc3RhY2snOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gc3VnZ2VzdGVkQWN0aW9uVGV4dCh7IGRpc3BsYXlUZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSkge1xuICBpZiAodHlwZSA9PT0gJ21lc3NhZ2VCYWNrJykge1xuICAgIHJldHVybiB0aXRsZSB8fCBkaXNwbGF5VGV4dDtcbiAgfSBlbHNlIGlmICh0aXRsZSkge1xuICAgIHJldHVybiB0aXRsZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbn1cblxuY29uc3QgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbnMgPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgICh7IGxhbmd1YWdlLCBzdWdnZXN0ZWRBY3Rpb25zIH0pID0+ICh7XG4gICAgICBsYW5ndWFnZSxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIH1cbiAgXSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbZGlyZWN0aW9uXSA9IHVzZURpcmVjdGlvbigpO1xuICBjb25zdCBbbm9uY2VdID0gdXNlTm9uY2UoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCBmaWxtU3R5bGVTZXQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVCYXNpY1N0eWxlU2V0Rm9yUmVhY3RGaWxtKHtcbiAgICAgICAgYXV0b0hpZGU6IGZhbHNlLFxuICAgICAgICBjdXJzb3I6IHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICAgIGZsaXBwZXJCb3hXaWR0aDogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlckJveFdpZHRoLFxuICAgICAgICBmbGlwcGVyU2l6ZTogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlclNpemVcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIC8vIFRPRE86IFRoZSBjb250ZW50IG9mIHN1Z2dlc3RlZCBhY3Rpb25zIHNob3VsZCBiZSB0aGUgbGFiZWxsZWQgYnkgdGhlIGFjdGl2aXR5LlxuICAgIC8vICAgICAgIFRoYXQgbWVhbnMsIHdoZW4gdGhlIHVzZXIgZm9jdXMgaW50byB0aGUgc3VnZ2VzdGVkIGFjdGlvbnMsIGl0IHNob3VsZCByZWFkIHNpbWlsYXIgdG8gXCJCb3Qgc2FpZCwgd2hhdCdzIHlvdXIgcHJlZmVyZW5jZSBvZiB0b2RheT8gU3VnZ2VzdGVkIGFjdGlvbnMgaGFzIGl0ZW1zOiBhcHBsZSBidXR0b24sIG9yYW5nZSBidXR0b24sIGJhbmFuYSBidXR0b24uXCJcbiAgICA8ZGl2XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbElkfVxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyxcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1jYXJvdXNlbC1sYXlvdXQnLFxuICAgICAgICB7ICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyB9LFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPEJhc2ljRmlsbVxuICAgICAgICAgIGF1dG9DZW50ZXI9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19jYXJvdXNlbFwiXG4gICAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICAgICAgZmxpcHBlckJsdXJGb2N1c09uQ2xpY2s9e3RydWV9XG4gICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgIHNob3dEb3RzPXtmYWxzZX1cbiAgICAgICAgICBzaG93U2Nyb2xsQmFyPXtmYWxzZX1cbiAgICAgICAgICBzdHlsZVNldD17ZmlsbVN0eWxlU2V0fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0Jhc2ljRmlsbT5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uRmxvd0NvbnRhaW5lciA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHNjcmVlblJlYWRlclRleHQgfSkgPT4ge1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBhcmlhTGFiZWxJZCA9IHVzZVVuaXF1ZUlkKCd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXthcmlhTGFiZWxJZH1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycsXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tZmxvdy1sYXlvdXQnLFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fZmxvdy1ib3hcIj5cbiAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19pdGVtXCI+e2NoaWxkfTwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWRcbn07XG5cblN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzY3JlZW5SZWFkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uczogc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtbGFiZWxsZWRieT17YXJpYUxhYmVsSWR9XG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnLFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLXN0YWNrZWQtbGF5b3V0JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCBpZD17YXJpYUxhYmVsSWR9IHRleHQ9e3NjcmVlblJlYWRlclRleHR9IC8+XG4gICAgICB7ISFjaGlsZHJlbiAmJiAhIVJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX3N0YWNrXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZFxufTtcblxuU3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxudHlwZSBTdWdnZXN0ZWRBY3Rpb25zUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3VnZ2VzdGVkQWN0aW9ucz86IERpcmVjdExpbmVDYXJkQWN0aW9uW107XG59O1xuXG5jb25zdCBTdWdnZXN0ZWRBY3Rpb25zOiBGQzxTdWdnZXN0ZWRBY3Rpb25zUHJvcHM+ID0gKHsgY2xhc3NOYW1lLCBzdWdnZXN0ZWRBY3Rpb25zID0gW10gfSkgPT4ge1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25MYXlvdXQsIHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW2FjY2Vzc0tleV0gPSB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5KCk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IGxvY2FsaXplQWNjZXNzS2V5ID0gdXNlTG9jYWxpemVBY2Nlc3NLZXkoKTtcblxuICBjb25zdCBzY3JlZW5SZWFkZXJUZXh0ID0gbG9jYWxpemUoXG4gICAgJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVCcsXG4gICAgc3VnZ2VzdGVkQWN0aW9ucy5sZW5ndGhcbiAgICAgID8gYWNjZXNzS2V5XG4gICAgICAgID8gbG9jYWxpemUoJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVF9IQVNfQ09OVEVOVF9BTkRfQUNDRVNTX0tFWScsIGxvY2FsaXplQWNjZXNzS2V5KGFjY2Vzc0tleSkpXG4gICAgICAgIDogbG9jYWxpemUoJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVF9IQVNfQ09OVEVOVCcpXG4gICAgICA6IGxvY2FsaXplKCdTVUdHRVNURURfQUNUSU9OU19BTFRfTk9fQ09OVEVOVCcpXG4gICk7XG5cbiAgY29uc3QgY2hpbGRyZW4gPSBzdWdnZXN0ZWRBY3Rpb25zLm1hcCgoY2FyZEFjdGlvbiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGRpc3BsYXlUZXh0LCBpbWFnZSwgaW1hZ2VBbHRUZXh0LCB0ZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSA9IGNhcmRBY3Rpb24gYXMge1xuICAgICAgZGlzcGxheVRleHQ/OiBzdHJpbmc7XG4gICAgICBpbWFnZT86IHN0cmluZztcbiAgICAgIGltYWdlQWx0VGV4dD86IHN0cmluZztcbiAgICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHZhbHVlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHN0cmluZztcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdWdnZXN0ZWRBY3Rpb25cbiAgICAgICAgYnV0dG9uVGV4dD17c3VnZ2VzdGVkQWN0aW9uVGV4dCh7IGRpc3BsYXlUZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSl9XG4gICAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19idXR0b25cIlxuICAgICAgICBkaXNwbGF5VGV4dD17ZGlzcGxheVRleHR9XG4gICAgICAgIGltYWdlPXtpbWFnZX1cbiAgICAgICAgaW1hZ2VBbHQ9e2ltYWdlQWx0VGV4dH1cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgdGV4dENsYXNzTmFtZT17XG4gICAgICAgICAgc3VnZ2VzdGVkQWN0aW9uTGF5b3V0ID09PSAnc3RhY2tlZCcgJiYgc3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcFxuICAgICAgICAgICAgPyAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvbi10ZXh0LXN0YWNrZWQtdGV4dC13cmFwJ1xuICAgICAgICAgICAgOiAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvbi10ZXh0J1xuICAgICAgICB9XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSk7XG5cbiAgaWYgKHN1Z2dlc3RlZEFjdGlvbkxheW91dCA9PT0gJ2Zsb3cnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBzY3JlZW5SZWFkZXJUZXh0PXtzY3JlZW5SZWFkZXJUZXh0fT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyPlxuICAgICk7XG4gIH0gZWxzZSBpZiAoc3VnZ2VzdGVkQWN0aW9uTGF5b3V0ID09PSAnc3RhY2tlZCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBzY3JlZW5SZWFkZXJUZXh0PXtzY3JlZW5SZWFkZXJUZXh0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1N1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyPlxuICApO1xufTtcblxuU3VnZ2VzdGVkQWN0aW9ucy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJydcbn07XG5cblN1Z2dlc3RlZEFjdGlvbnMucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLy8gVHlwZVNjcmlwdCBjbGFzcyBpcyBub3QgbWFwcGFibGUgdG8gUHJvcFR5cGVzLmZ1bmNcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlXG4gIHN1Z2dlc3RlZEFjdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBkaXNwbGF5VGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaW1hZ2VBbHRUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5hbnlcbiAgICB9KVxuICApLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zKCkoU3VnZ2VzdGVkQWN0aW9ucyk7XG5cbmV4cG9ydCB7IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zIH07XG4iXX0=
352
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbnMudHN4Il0sIm5hbWVzIjpbInVzZURpcmVjdGlvbiIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlU3R5bGVPcHRpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImZsZXhEaXJlY3Rpb24iLCJzdWdnZXN0ZWRBY3Rpb25UZXh0IiwiZGlzcGxheVRleHQiLCJ0aXRsZSIsInR5cGUiLCJ2YWx1ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb25uZWN0U3VnZ2VzdGVkQWN0aW9ucyIsInNlbGVjdG9ycyIsImNvbm5lY3RUb1dlYkNoYXQiLCJsYW5ndWFnZSIsInN1Z2dlc3RlZEFjdGlvbnMiLCJTdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic2NyZWVuUmVhZGVyVGV4dCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IiLCJzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZSIsInN1Z2dlc3RlZEFjdGlvbnNTdHlsZVNldCIsImRpcmVjdGlvbiIsIm5vbmNlIiwiYXJpYUxhYmVsSWQiLCJyb290Q2xhc3NOYW1lIiwiZmlsbVN0eWxlU2V0IiwiYXV0b0hpZGUiLCJjdXJzb3IiLCJmbGlwcGVyQm94V2lkdGgiLCJmbGlwcGVyU2l6ZSIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJjb3VudCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJTdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyIiwibWFwIiwiY2hpbGQiLCJTdWdnZXN0ZWRBY3Rpb25TdGFja2VkQ29udGFpbmVyIiwiU3VnZ2VzdGVkQWN0aW9ucyIsInN1Z2dlc3RlZEFjdGlvbkxheW91dCIsInN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAiLCJhY2Nlc3NLZXkiLCJoaWRlRW1wdHlSZWYiLCJsb2NhbGl6ZSIsImxvY2FsaXplQWNjZXNzS2V5IiwibGVuZ3RoIiwiY2FyZEFjdGlvbiIsImluZGV4IiwiaW1hZ2UiLCJpbWFnZUFsdFRleHQiLCJ0ZXh0IiwiY3VycmVudCIsImFycmF5T2YiLCJzaGFwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsWUFBUixHQUF3REMsNkJBQXhELENBQVFELFlBQVI7QUFBQSxJQUFzQkUsWUFBdEIsR0FBd0RELDZCQUF4RCxDQUFzQkMsWUFBdEI7QUFBQSxJQUFvQ0MsZUFBcEMsR0FBd0RGLDZCQUF4RCxDQUFvQ0UsZUFBcEM7QUFFQSxJQUFNQyxVQUFVLEdBQUc7QUFDakIsa0NBQWdDO0FBQzlCLHVGQUFtRjtBQUNqRkMsTUFBQUEsT0FBTyxFQUFFLE1BRHdFO0FBRWpGQyxNQUFBQSxRQUFRLEVBQUU7QUFGdUUsS0FEckQ7QUFNOUIscUZBQWlGO0FBQy9FRCxNQUFBQSxPQUFPLEVBQUUsTUFEc0U7QUFFL0VFLE1BQUFBLGFBQWEsRUFBRTtBQUZnRTtBQU5uRDtBQURmLENBQW5COztBQWNBLFNBQVNDLG1CQUFULE9BQWtFO0FBQUEsTUFBbkNDLFdBQW1DLFFBQW5DQSxXQUFtQztBQUFBLE1BQXRCQyxLQUFzQixRQUF0QkEsS0FBc0I7QUFBQSxNQUFmQyxJQUFlLFFBQWZBLElBQWU7QUFBQSxNQUFUQyxLQUFTLFFBQVRBLEtBQVM7O0FBQ2hFLE1BQUlELElBQUksS0FBSyxhQUFiLEVBQTRCO0FBQzFCLFdBQU9ELEtBQUssSUFBSUQsV0FBaEI7QUFDRCxHQUZELE1BRU8sSUFBSUMsS0FBSixFQUFXO0FBQ2hCLFdBQU9BLEtBQVA7QUFDRCxHQUZNLE1BRUEsSUFBSSxPQUFPRSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQ3BDLFdBQU9BLEtBQVA7QUFDRDs7QUFFRCxTQUFPQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUYsS0FBZixDQUFQO0FBQ0Q7O0FBRUQsSUFBTUcsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUEwQjtBQUFBLG9DQUFJQyxTQUFKO0FBQUlBLElBQUFBLFNBQUo7QUFBQTs7QUFBQSxTQUM5QkMseUNBQ0U7QUFBQSxRQUFHQyxRQUFILFNBQUdBLFFBQUg7QUFBQSxRQUFhQyxnQkFBYixTQUFhQSxnQkFBYjtBQUFBLFdBQXFDO0FBQ25DRCxNQUFBQSxRQUFRLEVBQVJBLFFBRG1DO0FBRW5DQyxNQUFBQSxnQkFBZ0IsRUFBaEJBO0FBRm1DLEtBQXJDO0FBQUEsR0FERixTQUtLSCxTQUxMLEVBRDhCO0FBQUEsQ0FBaEM7Ozs7QUFTQSxJQUFNSSxnQ0FBZ0MsR0FBRyxTQUFuQ0EsZ0NBQW1DLFFBQStDO0FBQUEsTUFBNUNDLFFBQTRDLFNBQTVDQSxRQUE0QztBQUFBLE1BQWxDQyxTQUFrQyxTQUFsQ0EsU0FBa0M7QUFBQSxNQUF2QkMsZ0JBQXVCLFNBQXZCQSxnQkFBdUI7O0FBQ3RGLHlCQU1JcEIsZUFBZSxFQU5uQjtBQUFBO0FBQUE7QUFBQSxNQUVJcUIsdUNBRkosc0JBRUlBLHVDQUZKO0FBQUEsTUFHSUMscUNBSEosc0JBR0lBLHFDQUhKO0FBQUEsTUFJSUMsbUNBSkosc0JBSUlBLG1DQUpKOztBQU9BLHFCQUF5RCw0QkFBekQ7QUFBQTtBQUFBLE1BQTJCQyx3QkFBM0Isb0JBQVNSLGdCQUFUOztBQUNBLHNCQUFvQm5CLFlBQVksRUFBaEM7QUFBQTtBQUFBLE1BQU80QixTQUFQOztBQUNBLGtCQUFnQix5QkFBaEI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7O0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDBCQUFZLDRCQUFaLENBQXBCO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLHdDQUEwQjNCLFVBQTFCLElBQXdDLEVBQTlEO0FBRUEsTUFBTTRCLFlBQVksR0FBRyxvQkFDbkI7QUFBQSxXQUNFLG9DQUFnQztBQUM5QkMsTUFBQUEsUUFBUSxFQUFFLEtBRG9CO0FBRTlCQyxNQUFBQSxNQUFNLEVBQUVULHFDQUZzQjtBQUc5QlUsTUFBQUEsZUFBZSxFQUFFWCx1Q0FIYTtBQUk5QlksTUFBQUEsV0FBVyxFQUFFVjtBQUppQixLQUFoQyxDQURGO0FBQUEsR0FEbUIsRUFRbkIsQ0FDRUYsdUNBREYsRUFFRUMscUNBRkYsRUFHRUMsbUNBSEYsQ0FSbUIsQ0FBckI7QUFlQTtBQUFBO0FBQ0U7QUFDQTtBQUNBO0FBQ0UseUJBQWlCSSxXQURuQjtBQUVFLG1CQUFVLFFBRlo7QUFHRSxNQUFBLFNBQVMsRUFBRSx5QkFDVCw0QkFEUyxFQUVULDZDQUZTLEVBR1Q7QUFBRSwyQ0FBbUNGLFNBQVMsS0FBSztBQUFuRCxPQUhTLEVBSVRHLGFBSlMsRUFLVEosd0JBQXdCLEdBQUcsRUFMbEIsRUFNVCxDQUFDTCxTQUFTLElBQUksRUFBZCxJQUFvQixFQU5YLENBSGI7QUFXRSxNQUFBLElBQUksRUFBQztBQVhQLG9CQWFFLDZCQUFDLHlCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFFUSxXQUF0QjtBQUFtQyxNQUFBLElBQUksRUFBRVA7QUFBekMsTUFiRixFQWNHLENBQUMsQ0FBQ0YsUUFBRixJQUFjLENBQUMsQ0FBQ2dCLGVBQU1DLFFBQU4sQ0FBZUMsS0FBZixDQUFxQmxCLFFBQXJCLENBQWhCLGlCQUNDLDZCQUFDLGtCQUFEO0FBQ0UsTUFBQSxVQUFVLEVBQUUsS0FEZDtBQUVFLE1BQUEsU0FBUyxFQUFDLHNDQUZaO0FBR0UsTUFBQSxHQUFHLEVBQUVPLFNBSFA7QUFJRSxNQUFBLHVCQUF1QixFQUFFLElBSjNCO0FBS0UsTUFBQSxLQUFLLEVBQUVDLEtBTFQ7QUFNRSxNQUFBLFFBQVEsRUFBRSxLQU5aO0FBT0UsTUFBQSxhQUFhLEVBQUUsS0FQakI7QUFRRSxNQUFBLFFBQVEsRUFBRUc7QUFSWixPQVVHWCxRQVZILENBZko7QUFIRjtBQWlDRCxDQTlERDs7QUFnRUFELGdDQUFnQyxDQUFDb0IsWUFBakMsR0FBZ0Q7QUFDOUNuQixFQUFBQSxRQUFRLEVBQUVvQixTQURvQztBQUU5Q25CLEVBQUFBLFNBQVMsRUFBRW1CO0FBRm1DLENBQWhEO0FBS0FyQixnQ0FBZ0MsQ0FBQ3NCLFNBQWpDLEdBQTZDO0FBQzNDckIsRUFBQUEsUUFBUSxFQUFFc0IsbUJBQVVDLEdBRHVCO0FBRTNDdEIsRUFBQUEsU0FBUyxFQUFFcUIsbUJBQVVFLE1BRnNCO0FBRzNDdEIsRUFBQUEsZ0JBQWdCLEVBQUVvQixtQkFBVUUsTUFBVixDQUFpQkM7QUFIUSxDQUE3Qzs7QUFNQSxJQUFNQyw0QkFBNEIsR0FBRyxTQUEvQkEsNEJBQStCLFFBQStDO0FBQUEsTUFBNUMxQixRQUE0QyxTQUE1Q0EsUUFBNEM7QUFBQSxNQUFsQ0MsU0FBa0MsU0FBbENBLFNBQWtDO0FBQUEsTUFBdkJDLGdCQUF1QixTQUF2QkEsZ0JBQXVCOztBQUNsRixzQkFBeUQsNEJBQXpEO0FBQUE7QUFBQSxNQUEyQkksd0JBQTNCLG9CQUFTUixnQkFBVDs7QUFDQSxNQUFNVyxXQUFXLEdBQUcsMEJBQVksNEJBQVosQ0FBcEI7QUFDQSxNQUFNQyxhQUFhLEdBQUcsd0NBQTBCM0IsVUFBMUIsSUFBd0MsRUFBOUQ7QUFFQSxzQkFDRTtBQUNFLHVCQUFpQjBCLFdBRG5CO0FBRUUsaUJBQVUsUUFGWjtBQUdFLElBQUEsU0FBUyxFQUFFLHlCQUNULDRCQURTLEVBRVQseUNBRlMsRUFHVEMsYUFIUyxFQUlUSix3QkFBd0IsR0FBRyxFQUpsQixFQUtULENBQUNMLFNBQVMsSUFBSSxFQUFkLElBQW9CLEVBTFgsQ0FIYjtBQVVFLElBQUEsSUFBSSxFQUFDO0FBVlAsa0JBWUUsNkJBQUMseUJBQUQ7QUFBa0IsSUFBQSxFQUFFLEVBQUVRLFdBQXRCO0FBQW1DLElBQUEsSUFBSSxFQUFFUDtBQUF6QyxJQVpGLEVBYUcsQ0FBQyxDQUFDRixRQUFGLElBQWMsQ0FBQyxDQUFDZ0IsZUFBTUMsUUFBTixDQUFlQyxLQUFmLENBQXFCbEIsUUFBckIsQ0FBaEIsaUJBQ0M7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLEtBQ0dnQixlQUFNQyxRQUFOLENBQWVVLEdBQWYsQ0FBbUIzQixRQUFuQixFQUE2QixVQUFBNEIsS0FBSztBQUFBLHdCQUNqQztBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsT0FBNERBLEtBQTVELENBRGlDO0FBQUEsR0FBbEMsQ0FESCxDQWRKLENBREY7QUF1QkQsQ0E1QkQ7O0FBOEJBRiw0QkFBNEIsQ0FBQ1AsWUFBN0IsR0FBNEM7QUFDMUNuQixFQUFBQSxRQUFRLEVBQUVvQixTQURnQztBQUUxQ25CLEVBQUFBLFNBQVMsRUFBRW1CO0FBRitCLENBQTVDO0FBS0FNLDRCQUE0QixDQUFDTCxTQUE3QixHQUF5QztBQUN2Q3JCLEVBQUFBLFFBQVEsRUFBRXNCLG1CQUFVQyxHQURtQjtBQUV2Q3RCLEVBQUFBLFNBQVMsRUFBRXFCLG1CQUFVRSxNQUZrQjtBQUd2Q3RCLEVBQUFBLGdCQUFnQixFQUFFb0IsbUJBQVVFLE1BQVYsQ0FBaUJDO0FBSEksQ0FBekM7O0FBTUEsSUFBTUksK0JBQStCLEdBQUcsU0FBbENBLCtCQUFrQyxRQUErQztBQUFBLE1BQTVDN0IsUUFBNEMsU0FBNUNBLFFBQTRDO0FBQUEsTUFBbENDLFNBQWtDLFNBQWxDQSxTQUFrQztBQUFBLE1BQXZCQyxnQkFBdUIsU0FBdkJBLGdCQUF1Qjs7QUFDckYsc0JBQXlELDRCQUF6RDtBQUFBO0FBQUEsTUFBMkJJLHdCQUEzQixvQkFBU1IsZ0JBQVQ7O0FBQ0EsTUFBTVcsV0FBVyxHQUFHLDBCQUFZLDRCQUFaLENBQXBCO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLHdDQUEwQjNCLFVBQTFCLElBQXdDLEVBQTlEO0FBRUEsc0JBQ0U7QUFDRSx1QkFBaUIwQixXQURuQjtBQUVFLGlCQUFVLFFBRlo7QUFHRSxJQUFBLFNBQVMsRUFBRSx5QkFDVCw0QkFEUyxFQUVULDRDQUZTLEVBR1RDLGFBSFMsRUFJVEosd0JBQXdCLEdBQUcsRUFKbEIsRUFLVCxDQUFDTCxTQUFTLElBQUksRUFBZCxJQUFvQixFQUxYLENBSGI7QUFVRSxJQUFBLElBQUksRUFBQztBQVZQLGtCQVlFLDZCQUFDLHlCQUFEO0FBQWtCLElBQUEsRUFBRSxFQUFFUSxXQUF0QjtBQUFtQyxJQUFBLElBQUksRUFBRVA7QUFBekMsSUFaRixFQWFHLENBQUMsQ0FBQ0YsUUFBRixJQUFjLENBQUMsQ0FBQ2dCLGVBQU1DLFFBQU4sQ0FBZUMsS0FBZixDQUFxQmxCLFFBQXJCLENBQWhCLGlCQUNDO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixLQUFvREEsUUFBcEQsQ0FkSixDQURGO0FBbUJELENBeEJEOztBQTBCQTZCLCtCQUErQixDQUFDVixZQUFoQyxHQUErQztBQUM3Q25CLEVBQUFBLFFBQVEsRUFBRW9CLFNBRG1DO0FBRTdDbkIsRUFBQUEsU0FBUyxFQUFFbUI7QUFGa0MsQ0FBL0M7QUFLQVMsK0JBQStCLENBQUNSLFNBQWhDLEdBQTRDO0FBQzFDckIsRUFBQUEsUUFBUSxFQUFFc0IsbUJBQVVDLEdBRHNCO0FBRTFDdEIsRUFBQUEsU0FBUyxFQUFFcUIsbUJBQVVFLE1BRnFCO0FBRzFDdEIsRUFBQUEsZ0JBQWdCLEVBQUVvQixtQkFBVUUsTUFBVixDQUFpQkM7QUFITyxDQUE1Qzs7QUFXQSxJQUFNSyxnQkFBMkMsR0FBRyxTQUE5Q0EsZ0JBQThDLFFBQTBDO0FBQUEsTUFBdkM3QixTQUF1QyxTQUF2Q0EsU0FBdUM7QUFBQSxvQ0FBNUJILGdCQUE0QjtBQUFBLE1BQTVCQSxnQkFBNEIsc0NBQVQsRUFBUzs7QUFDNUYsMEJBQWlGaEIsZUFBZSxFQUFoRztBQUFBO0FBQUE7QUFBQSxNQUFTaUQscUJBQVQsc0JBQVNBLHFCQUFUO0FBQUEsTUFBZ0NDLDJDQUFoQyxzQkFBZ0NBLDJDQUFoQzs7QUFDQSw4QkFBb0IsNENBQXBCO0FBQUE7QUFBQSxNQUFPQyxTQUFQOztBQUNBLE1BQU1DLFlBQVksR0FBRyxtQkFBTyxJQUFQLENBQXJCO0FBQ0EsTUFBTUMsUUFBUSxHQUFHdEQsWUFBWSxFQUE3QjtBQUNBLE1BQU11RCxpQkFBaUIsR0FBRyxvQ0FBMUI7QUFFQSxNQUFNbEMsZ0JBQWdCLEdBQUdpQyxRQUFRLENBQy9CLHVCQUQrQixFQUUvQnJDLGdCQUFnQixDQUFDdUMsTUFBakIsR0FDSUosU0FBUyxHQUNQRSxRQUFRLENBQUMsa0RBQUQsRUFBcURDLGlCQUFpQixDQUFDSCxTQUFELENBQXRFLENBREQsR0FFUEUsUUFBUSxDQUFDLG1DQUFELENBSGQsR0FJSUEsUUFBUSxDQUFDLGtDQUFELENBTm1CLENBQWpDO0FBU0EsTUFBTW5DLFFBQVEsR0FBR0YsZ0JBQWdCLENBQUM2QixHQUFqQixDQUFxQixVQUFDVyxVQUFELEVBQWFDLEtBQWIsRUFBdUI7QUFDM0QsZ0JBQXVFRCxVQUF2RTtBQUFBLFFBQVFsRCxXQUFSLFNBQVFBLFdBQVI7QUFBQSxRQUFxQm9ELEtBQXJCLFNBQXFCQSxLQUFyQjtBQUFBLFFBQTRCQyxZQUE1QixTQUE0QkEsWUFBNUI7QUFBQSxRQUEwQ0MsSUFBMUMsU0FBMENBLElBQTFDO0FBQUEsUUFBZ0RyRCxLQUFoRCxTQUFnREEsS0FBaEQ7QUFBQSxRQUF1REMsSUFBdkQsU0FBdURBLElBQXZEO0FBQUEsUUFBNkRDLEtBQTdELFNBQTZEQSxLQUE3RDtBQW9CQSx3QkFDRTtBQUFLLE1BQUEsU0FBUyxFQUFDLHNDQUFmO0FBQXNELE1BQUEsR0FBRyxFQUFFZ0Q7QUFBM0Qsb0JBQ0UsNkJBQUMsd0JBQUQ7QUFDRSxNQUFBLFVBQVUsRUFBRXBELG1CQUFtQixDQUFDO0FBQUVDLFFBQUFBLFdBQVcsRUFBWEEsV0FBRjtBQUFlQyxRQUFBQSxLQUFLLEVBQUxBLEtBQWY7QUFBc0JDLFFBQUFBLElBQUksRUFBSkEsSUFBdEI7QUFBNEJDLFFBQUFBLEtBQUssRUFBTEE7QUFBNUIsT0FBRCxDQURqQztBQUVFLE1BQUEsU0FBUyxFQUFDLG9DQUZaO0FBR0UsTUFBQSxXQUFXLEVBQUVILFdBSGY7QUFJRSxNQUFBLEtBQUssRUFBRW9ELEtBSlQ7QUFLRSxNQUFBLFFBQVEsRUFBRUMsWUFMWjtBQU1FLE1BQUEsSUFBSSxFQUFFQyxJQU5SO0FBT0UsTUFBQSxhQUFhLEVBQ1hYLHFCQUFxQixLQUFLLFNBQTFCLElBQXVDQywyQ0FBdkMsR0FDSSwyREFESixHQUVJLHlDQVZSO0FBWUUsTUFBQSxJQUFJLEVBQUUxQyxJQVpSO0FBYUUsTUFBQSxLQUFLLEVBQUVDO0FBYlQsTUFERixDQURGO0FBbUJELEdBeENnQixDQUFqQixDQWhCNEYsQ0EwRDVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFJLENBQUNTLFFBQVEsQ0FBQ3FDLE1BQVYsSUFBb0JILFlBQVksQ0FBQ1MsT0FBckMsRUFBOEM7QUFDNUMsV0FBTyxJQUFQO0FBQ0QsR0FyRTJGLENBdUU1Rjs7O0FBQ0FULEVBQUFBLFlBQVksQ0FBQ1MsT0FBYixHQUF1QixLQUF2Qjs7QUFFQSxNQUFJWixxQkFBcUIsS0FBSyxNQUE5QixFQUFzQztBQUNwQyx3QkFDRSw2QkFBQyw0QkFBRDtBQUE4QixNQUFBLFNBQVMsRUFBRTlCLFNBQXpDO0FBQW9ELE1BQUEsZ0JBQWdCLEVBQUVDO0FBQXRFLE9BQ0dGLFFBREgsQ0FERjtBQUtELEdBTkQsTUFNTyxJQUFJK0IscUJBQXFCLEtBQUssU0FBOUIsRUFBeUM7QUFDOUMsd0JBQ0UsNkJBQUMsK0JBQUQ7QUFBaUMsTUFBQSxTQUFTLEVBQUU5QixTQUE1QztBQUF1RCxNQUFBLGdCQUFnQixFQUFFQztBQUF6RSxPQUNHRixRQURILENBREY7QUFLRDs7QUFFRCxzQkFDRSw2QkFBQyxnQ0FBRDtBQUFrQyxJQUFBLFNBQVMsRUFBRUMsU0FBN0M7QUFBd0QsSUFBQSxnQkFBZ0IsRUFBRUM7QUFBMUUsS0FDR0YsUUFESCxDQURGO0FBS0QsQ0E3RkQ7O0FBK0ZBOEIsZ0JBQWdCLENBQUNYLFlBQWpCLEdBQWdDO0FBQzlCbEIsRUFBQUEsU0FBUyxFQUFFO0FBRG1CLENBQWhDO0FBSUE2QixnQkFBZ0IsQ0FBQ1QsU0FBakIsR0FBNkI7QUFDM0JwQixFQUFBQSxTQUFTLEVBQUVxQixtQkFBVUUsTUFETTtBQUczQjtBQUNBO0FBQ0ExQixFQUFBQSxnQkFBZ0IsRUFBRXdCLG1CQUFVc0IsT0FBVixDQUNoQnRCLG1CQUFVdUIsS0FBVixDQUFnQjtBQUNkekQsSUFBQUEsV0FBVyxFQUFFa0MsbUJBQVVFLE1BRFQ7QUFFZGdCLElBQUFBLEtBQUssRUFBRWxCLG1CQUFVRSxNQUZIO0FBR2RpQixJQUFBQSxZQUFZLEVBQUVuQixtQkFBVUUsTUFIVjtBQUlka0IsSUFBQUEsSUFBSSxFQUFFcEIsbUJBQVVFLE1BSkY7QUFLZG5DLElBQUFBLEtBQUssRUFBRWlDLG1CQUFVRSxNQUxIO0FBTWRsQyxJQUFBQSxJQUFJLEVBQUVnQyxtQkFBVUUsTUFBVixDQUFpQkMsVUFOVDtBQU9kbEMsSUFBQUEsS0FBSyxFQUFFK0IsbUJBQVVDO0FBUEgsR0FBaEIsQ0FEZ0IsRUFVaEJFO0FBZnlCLENBQTdCOztlQWtCZS9CLHVCQUF1QixHQUFHb0MsZ0JBQUgsQyIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IHJlYWN0L25vLWFycmF5LWluZGV4LWtleTogXCJvZmZcIiAqL1xuXG5pbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgQmFzaWNGaWxtLCB7IGNyZWF0ZUJhc2ljU3R5bGVTZXQgYXMgY3JlYXRlQmFzaWNTdHlsZVNldEZvclJlYWN0RmlsbSB9IGZyb20gJ3JlYWN0LWZpbG0nO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IEZDLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IERpcmVjdExpbmVDYXJkQWN0aW9uIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5cbmltcG9ydCBjb25uZWN0VG9XZWJDaGF0IGZyb20gJy4uL2Nvbm5lY3RUb1dlYkNoYXQnO1xuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgU3VnZ2VzdGVkQWN0aW9uIGZyb20gJy4vU3VnZ2VzdGVkQWN0aW9uJztcbmltcG9ydCB1c2VMb2NhbGl6ZUFjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VMb2NhbGl6ZUFjY2Vzc0tleSc7XG5pbXBvcnQgdXNlTm9uY2UgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTm9uY2UnO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5pbXBvcnQgdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5JztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VVbmlxdWVJZCc7XG5cbmNvbnN0IHsgdXNlRGlyZWN0aW9uLCB1c2VMb2NhbGl6ZXIsIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJzoge1xuICAgICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1mbG93LWxheW91dCAud2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2Zsb3ctYm94Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleFdyYXA6ICd3cmFwJ1xuICAgIH0sXG5cbiAgICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tc3RhY2stbGF5b3V0IC53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fc3RhY2snOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gc3VnZ2VzdGVkQWN0aW9uVGV4dCh7IGRpc3BsYXlUZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSkge1xuICBpZiAodHlwZSA9PT0gJ21lc3NhZ2VCYWNrJykge1xuICAgIHJldHVybiB0aXRsZSB8fCBkaXNwbGF5VGV4dDtcbiAgfSBlbHNlIGlmICh0aXRsZSkge1xuICAgIHJldHVybiB0aXRsZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbn1cblxuY29uc3QgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbnMgPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgICh7IGxhbmd1YWdlLCBzdWdnZXN0ZWRBY3Rpb25zIH0pID0+ICh7XG4gICAgICBsYW5ndWFnZSxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIH1cbiAgXSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbZGlyZWN0aW9uXSA9IHVzZURpcmVjdGlvbigpO1xuICBjb25zdCBbbm9uY2VdID0gdXNlTm9uY2UoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCBmaWxtU3R5bGVTZXQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVCYXNpY1N0eWxlU2V0Rm9yUmVhY3RGaWxtKHtcbiAgICAgICAgYXV0b0hpZGU6IGZhbHNlLFxuICAgICAgICBjdXJzb3I6IHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICAgIGZsaXBwZXJCb3hXaWR0aDogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlckJveFdpZHRoLFxuICAgICAgICBmbGlwcGVyU2l6ZTogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlclNpemVcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIC8vIFRPRE86IFRoZSBjb250ZW50IG9mIHN1Z2dlc3RlZCBhY3Rpb25zIHNob3VsZCBiZSB0aGUgbGFiZWxsZWQgYnkgdGhlIGFjdGl2aXR5LlxuICAgIC8vICAgICAgIFRoYXQgbWVhbnMsIHdoZW4gdGhlIHVzZXIgZm9jdXMgaW50byB0aGUgc3VnZ2VzdGVkIGFjdGlvbnMsIGl0IHNob3VsZCByZWFkIHNpbWlsYXIgdG8gXCJCb3Qgc2FpZCwgd2hhdCdzIHlvdXIgcHJlZmVyZW5jZSBvZiB0b2RheT8gU3VnZ2VzdGVkIGFjdGlvbnMgaGFzIGl0ZW1zOiBhcHBsZSBidXR0b24sIG9yYW5nZSBidXR0b24sIGJhbmFuYSBidXR0b24uXCJcbiAgICA8ZGl2XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbElkfVxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyxcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1jYXJvdXNlbC1sYXlvdXQnLFxuICAgICAgICB7ICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyB9LFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPEJhc2ljRmlsbVxuICAgICAgICAgIGF1dG9DZW50ZXI9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19jYXJvdXNlbFwiXG4gICAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICAgICAgZmxpcHBlckJsdXJGb2N1c09uQ2xpY2s9e3RydWV9XG4gICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgIHNob3dEb3RzPXtmYWxzZX1cbiAgICAgICAgICBzaG93U2Nyb2xsQmFyPXtmYWxzZX1cbiAgICAgICAgICBzdHlsZVNldD17ZmlsbVN0eWxlU2V0fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0Jhc2ljRmlsbT5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uRmxvd0NvbnRhaW5lciA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHNjcmVlblJlYWRlclRleHQgfSkgPT4ge1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBhcmlhTGFiZWxJZCA9IHVzZVVuaXF1ZUlkKCd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXthcmlhTGFiZWxJZH1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycsXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tZmxvdy1sYXlvdXQnLFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fZmxvdy1ib3hcIj5cbiAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19mbG93LWl0ZW0tYm94XCI+e2NoaWxkfTwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWRcbn07XG5cblN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzY3JlZW5SZWFkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uczogc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtbGFiZWxsZWRieT17YXJpYUxhYmVsSWR9XG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnLFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLXN0YWNrZWQtbGF5b3V0JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCBpZD17YXJpYUxhYmVsSWR9IHRleHQ9e3NjcmVlblJlYWRlclRleHR9IC8+XG4gICAgICB7ISFjaGlsZHJlbiAmJiAhIVJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX3N0YWNrXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZFxufTtcblxuU3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxudHlwZSBTdWdnZXN0ZWRBY3Rpb25zUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3VnZ2VzdGVkQWN0aW9ucz86IERpcmVjdExpbmVDYXJkQWN0aW9uW107XG59O1xuXG5jb25zdCBTdWdnZXN0ZWRBY3Rpb25zOiBGQzxTdWdnZXN0ZWRBY3Rpb25zUHJvcHM+ID0gKHsgY2xhc3NOYW1lLCBzdWdnZXN0ZWRBY3Rpb25zID0gW10gfSkgPT4ge1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25MYXlvdXQsIHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW2FjY2Vzc0tleV0gPSB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5KCk7XG4gIGNvbnN0IGhpZGVFbXB0eVJlZiA9IHVzZVJlZih0cnVlKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3QgbG9jYWxpemVBY2Nlc3NLZXkgPSB1c2VMb2NhbGl6ZUFjY2Vzc0tleSgpO1xuXG4gIGNvbnN0IHNjcmVlblJlYWRlclRleHQgPSBsb2NhbGl6ZShcbiAgICAnU1VHR0VTVEVEX0FDVElPTlNfQUxUJyxcbiAgICBzdWdnZXN0ZWRBY3Rpb25zLmxlbmd0aFxuICAgICAgPyBhY2Nlc3NLZXlcbiAgICAgICAgPyBsb2NhbGl6ZSgnU1VHR0VTVEVEX0FDVElPTlNfQUxUX0hBU19DT05URU5UX0FORF9BQ0NFU1NfS0VZJywgbG9jYWxpemVBY2Nlc3NLZXkoYWNjZXNzS2V5KSlcbiAgICAgICAgOiBsb2NhbGl6ZSgnU1VHR0VTVEVEX0FDVElPTlNfQUxUX0hBU19DT05URU5UJylcbiAgICAgIDogbG9jYWxpemUoJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVF9OT19DT05URU5UJylcbiAgKTtcblxuICBjb25zdCBjaGlsZHJlbiA9IHN1Z2dlc3RlZEFjdGlvbnMubWFwKChjYXJkQWN0aW9uLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgZGlzcGxheVRleHQsIGltYWdlLCBpbWFnZUFsdFRleHQsIHRleHQsIHRpdGxlLCB0eXBlLCB2YWx1ZSB9ID0gY2FyZEFjdGlvbiBhcyB7XG4gICAgICBkaXNwbGF5VGV4dD86IHN0cmluZztcbiAgICAgIGltYWdlPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHRUZXh0Pzogc3RyaW5nO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgdHlwZTpcbiAgICAgICAgfCAnY2FsbCdcbiAgICAgICAgfCAnZG93bmxvYWRGaWxlJ1xuICAgICAgICB8ICdpbUJhY2snXG4gICAgICAgIHwgJ21lc3NhZ2VCYWNrJ1xuICAgICAgICB8ICdvcGVuVXJsJ1xuICAgICAgICB8ICdwbGF5QXVkaW8nXG4gICAgICAgIHwgJ3BsYXlWaWRlbydcbiAgICAgICAgfCAncG9zdEJhY2snXG4gICAgICAgIHwgJ3Nob3dJbWFnZSdcbiAgICAgICAgfCAnc2lnbmluJztcbiAgICAgIHZhbHVlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHN0cmluZztcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2l0ZW0tYm94XCIga2V5PXtpbmRleH0+XG4gICAgICAgIDxTdWdnZXN0ZWRBY3Rpb25cbiAgICAgICAgICBidXR0b25UZXh0PXtzdWdnZXN0ZWRBY3Rpb25UZXh0KHsgZGlzcGxheVRleHQsIHRpdGxlLCB0eXBlLCB2YWx1ZSB9KX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fYnV0dG9uXCJcbiAgICAgICAgICBkaXNwbGF5VGV4dD17ZGlzcGxheVRleHR9XG4gICAgICAgICAgaW1hZ2U9e2ltYWdlfVxuICAgICAgICAgIGltYWdlQWx0PXtpbWFnZUFsdFRleHR9XG4gICAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgICB0ZXh0Q2xhc3NOYW1lPXtcbiAgICAgICAgICAgIHN1Z2dlc3RlZEFjdGlvbkxheW91dCA9PT0gJ3N0YWNrZWQnICYmIHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXBcbiAgICAgICAgICAgICAgPyAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvbi10ZXh0LXN0YWNrZWQtdGV4dC13cmFwJ1xuICAgICAgICAgICAgICA6ICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fYnV0dG9uLXRleHQnXG4gICAgICAgICAgfVxuICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gKFJlbGF0ZWQgdG8gIzQwMjEpXG4gIC8vXG4gIC8vIFRvIGltcHJvdmUgYWNjZXNzaWJpbGl0eSBVWCwgaWYgdGhlcmUgYXJlIG5vIHN1Z2dlc3RlZCBhY3Rpb25zLCBhbmQgdGhpcyBjb250YWluZXIgd2FzIG5ldmVyIHNob3duLlxuICAvLyBUaGVuLCBhdm9pZCByZW5kZXJpbmcgdGhlIGFsdC10ZXh0IFwiU3VnZ2VzdGVkIEFjdGlvbnMgQ29udGFpbmVyOiBJcyBlbXB0eVwiLlxuICAvL1xuICAvLyBUaGlzIGlzIHRvIHJlZHVjZSB0aGUgbmFycmF0aW9uIG9mIFwiSXMgZW1wdHlcIi5cbiAgLy9cbiAgLy8gQWZ0ZXIgYW55IHN1Z2dlc3RlZCBhY3Rpb25zIHdlcmUgc2hvd24gZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGlzIGNvbnRhaW5lciwgdGhlbiB3ZSB3aWxsXG4gIC8vIGNvbnRpbnVlIHRvIHN0YXJ0IHNob3dpbmcgXCJTdWdnZXN0ZWQgQWN0aW9ucyBDb250YWluZXI6IElzIGVtcHR5XCIgd2hlbiB0aGUgY29udGFpbmVyIGlzIGVtcHR5LlxuICBpZiAoIWNoaWxkcmVuLmxlbmd0aCAmJiBoaWRlRW1wdHlSZWYuY3VycmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBpZiB3ZSBoYXZlIHJlbmRlcmVkIG9uY2UsIHdlIHdpbGwgY29udGludWUgdG8gcmVuZGVyIFwiSXMgZW1wdHlcIi5cbiAgaGlkZUVtcHR5UmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICBpZiAoc3VnZ2VzdGVkQWN0aW9uTGF5b3V0ID09PSAnZmxvdycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXI+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChzdWdnZXN0ZWRBY3Rpb25MYXlvdXQgPT09ICdzdGFja2VkJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gc2NyZWVuUmVhZGVyVGV4dD17c2NyZWVuUmVhZGVyVGV4dH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXI+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25zLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuU3VnZ2VzdGVkQWN0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvLyBUeXBlU2NyaXB0IGNsYXNzIGlzIG5vdCBtYXBwYWJsZSB0byBQcm9wVHlwZXMuZnVuY1xuICAvLyBAdHMtaWdub3JlXG4gIHN1Z2dlc3RlZEFjdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBkaXNwbGF5VGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaW1hZ2VBbHRUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5hbnlcbiAgICB9KVxuICApLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zKCkoU3VnZ2VzdGVkQWN0aW9ucyk7XG5cbmV4cG9ydCB7IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zIH07XG4iXX0=
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.default = exports.connectSendTextBox = void 0;
8
9
  exports.useTextBoxSubmit = useTextBoxSubmit;
9
10
  exports.useTextBoxValue = useTextBoxValue;
10
- exports.connectSendTextBox = exports.default = void 0;
11
11
 
12
12
  var _botframeworkWebchatApi = require("botframework-webchat-api");
13
13
 
@@ -49,9 +49,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
49
49
 
50
50
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
51
51
 
52
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
52
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
53
53
 
54
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
55
55
 
56
56
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
57
57