@envive-ai/react-hooks 0.3.7 → 0.3.8

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 (379) hide show
  1. package/dist/application/commerce-api.cjs +1 -1
  2. package/dist/application/commerce-api.js +1 -1
  3. package/dist/application/models/chatElementDisplayLocationV3.cjs +3 -1
  4. package/dist/application/models/chatElementDisplayLocationV3.d.cts +3 -1
  5. package/dist/application/models/chatElementDisplayLocationV3.d.ts +3 -1
  6. package/dist/application/models/chatElementDisplayLocationV3.js +3 -1
  7. package/dist/application/models/frontendConfigV3.d.cts +2 -2
  8. package/dist/application/models/frontendConfigV3.d.ts +2 -2
  9. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +5 -2
  10. package/dist/application/utils/widgetTextRequestToApiRequest.js +5 -2
  11. package/dist/atoms/app/index.cjs +4 -4
  12. package/dist/atoms/app/index.d.cts +7 -7
  13. package/dist/atoms/app/index.d.ts +7 -7
  14. package/dist/atoms/app/index.js +4 -4
  15. package/dist/atoms/app/variant.d.cts +6 -6
  16. package/dist/atoms/app/variant.d.ts +6 -6
  17. package/dist/atoms/chat/chatState.d.cts +18 -18
  18. package/dist/atoms/chat/chatState.d.ts +17 -17
  19. package/dist/atoms/chat/form.d.cts +2 -2
  20. package/dist/atoms/chat/form.d.ts +2 -2
  21. package/dist/atoms/chat/index.d.cts +2 -2
  22. package/dist/atoms/chat/index.d.ts +2 -2
  23. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  24. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  25. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  26. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  27. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  28. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  29. package/dist/atoms/chat/replies.cjs +46 -0
  30. package/dist/atoms/chat/replies.d.cts +14 -0
  31. package/dist/atoms/chat/replies.d.ts +14 -0
  32. package/dist/atoms/chat/replies.js +45 -0
  33. package/dist/atoms/chat/suggestions.d.cts +2 -2
  34. package/dist/atoms/chat/suggestions.d.ts +2 -2
  35. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  36. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  37. package/dist/atoms/org/customerService.d.cts +6 -6
  38. package/dist/atoms/org/customerService.d.ts +6 -6
  39. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  40. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  41. package/dist/atoms/org/index.cjs +2 -2
  42. package/dist/atoms/org/index.js +2 -2
  43. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  44. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  45. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  46. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  47. package/dist/atoms/search/chatSearch.cjs +1 -1
  48. package/dist/atoms/search/chatSearch.d.cts +17 -17
  49. package/dist/atoms/search/chatSearch.d.ts +17 -17
  50. package/dist/atoms/search/chatSearch.js +1 -1
  51. package/dist/atoms/search/searchAPI.cjs +1 -1
  52. package/dist/atoms/search/searchAPI.d.cts +13 -13
  53. package/dist/atoms/search/searchAPI.d.ts +13 -13
  54. package/dist/atoms/search/searchAPI.js +1 -1
  55. package/dist/atoms/search/types.d.cts +1 -1
  56. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  57. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  58. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +6 -4
  59. package/dist/contexts/amplitudeContext/amplitudeContext.js +6 -4
  60. package/dist/contexts/enviveContext/enviveContext.cjs +38 -16
  61. package/dist/contexts/enviveContext/enviveContext.d.cts +4 -1
  62. package/dist/contexts/enviveContext/enviveContext.d.ts +4 -1
  63. package/dist/contexts/enviveContext/enviveContext.js +38 -16
  64. package/dist/contexts/enviveContext/types.d.cts +1 -1
  65. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +56 -2
  66. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +6 -1
  67. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +6 -1
  68. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +56 -2
  69. package/dist/contexts/graphqlContext/graphqlContext.cjs +10 -4
  70. package/dist/contexts/graphqlContext/graphqlContext.js +10 -4
  71. package/dist/contexts/graphqlContext/mockV3Config.cjs +18 -7
  72. package/dist/contexts/graphqlContext/mockV3Config.js +17 -6
  73. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +29 -1
  74. package/dist/contexts/hardcopyContext/hardcopyContext.js +29 -1
  75. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
  76. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
  77. package/dist/contexts/salesAgentContext/chatAPI.cjs +33 -5
  78. package/dist/contexts/salesAgentContext/chatAPI.d.cts +4 -4
  79. package/dist/contexts/salesAgentContext/chatAPI.d.ts +4 -4
  80. package/dist/contexts/salesAgentContext/chatAPI.js +33 -5
  81. package/dist/contexts/salesAgentContext/formSubmittedUtils.cjs +37 -0
  82. package/dist/contexts/salesAgentContext/formSubmittedUtils.js +36 -0
  83. package/dist/contexts/salesAgentContext/index.d.cts +2 -2
  84. package/dist/contexts/salesAgentContext/index.d.ts +2 -2
  85. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +33 -4
  86. package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +11 -4
  87. package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +11 -4
  88. package/dist/contexts/salesAgentContext/salesAgentContext.js +33 -4
  89. package/dist/contexts/salesAgentContext/salesAgentService.cjs +13 -7
  90. package/dist/contexts/salesAgentContext/salesAgentService.js +13 -7
  91. package/dist/contexts/searchContext/searchContext.cjs +1 -1
  92. package/dist/contexts/searchContext/searchContext.js +1 -1
  93. package/dist/contexts/types.d.cts +1 -1
  94. package/dist/contexts/types.d.ts +1 -1
  95. package/dist/contexts/typesV3.cjs +2 -7
  96. package/dist/contexts/typesV3.d.cts +12 -9
  97. package/dist/contexts/typesV3.d.ts +12 -9
  98. package/dist/contexts/typesV3.js +3 -7
  99. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +22 -29
  100. package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +9 -8
  101. package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +9 -8
  102. package/dist/contexts/userIdentityContext/userIdentityContext.js +22 -29
  103. package/dist/hooks/ElementObserver/useElementObserver.cjs +3 -2
  104. package/dist/hooks/ElementObserver/useElementObserver.js +3 -2
  105. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  106. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  107. package/dist/hooks/Search/useSearch.cjs +2 -2
  108. package/dist/hooks/Search/useSearch.js +2 -2
  109. package/dist/hooks/Search/useSearchInput.cjs +2 -2
  110. package/dist/hooks/Search/useSearchInput.js +2 -2
  111. package/dist/hooks/utils.d.cts +1 -1
  112. package/dist/mocks/index.cjs +5 -0
  113. package/dist/mocks/index.d.cts +2 -0
  114. package/dist/mocks/index.d.ts +2 -0
  115. package/dist/mocks/index.js +3 -0
  116. package/dist/mocks/salesAgentMockData.cjs +207 -0
  117. package/dist/mocks/salesAgentMockData.d.cts +11 -0
  118. package/dist/mocks/salesAgentMockData.d.ts +11 -0
  119. package/dist/mocks/salesAgentMockData.js +204 -0
  120. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +2 -2
  121. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +2 -2
  122. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +2 -2
  123. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +2 -2
  124. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +18 -18
  125. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +18 -18
  126. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +1 -1
  127. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +1 -1
  128. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +4 -4
  129. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +4 -4
  130. package/dist/packages/components-v3/dist/ChatPreviewLoading/components/Skeleton.cjs +1 -0
  131. package/dist/packages/components-v3/dist/ChatPreviewLoading/components/Skeleton.js +3 -0
  132. package/dist/packages/components-v3/dist/Container/Container.cjs +19 -3
  133. package/dist/packages/components-v3/dist/Container/Container.js +19 -4
  134. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +13 -0
  135. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +11 -1
  136. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +13 -0
  137. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +11 -1
  138. package/dist/packages/components-v3/dist/Container/index.cjs +1 -1
  139. package/dist/packages/components-v3/dist/Container/index.js +1 -1
  140. package/dist/packages/components-v3/dist/DesignTokens/components/utils.cjs +16 -0
  141. package/dist/packages/components-v3/dist/DesignTokens/components/utils.js +15 -0
  142. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +2 -2
  143. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +2 -2
  144. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +40 -4
  145. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +40 -5
  146. package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +10 -0
  147. package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +8 -1
  148. package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +18 -1
  149. package/dist/packages/components-v3/dist/PromptButton/components/Label.js +16 -2
  150. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +31 -3
  151. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +31 -4
  152. package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +5 -1
  153. package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +5 -2
  154. package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +16 -4
  155. package/dist/packages/components-v3/dist/PromptButton/components/index.js +15 -5
  156. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBackgroundColorsProperties.cjs +18 -0
  157. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBackgroundColorsProperties.js +18 -0
  158. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +12 -0
  159. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +10 -1
  160. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBorderColorsProperties.cjs +18 -0
  161. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBorderColorsProperties.js +18 -0
  162. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetIconColorsProperties.cjs +32 -0
  163. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetIconColorsProperties.js +32 -0
  164. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +9 -1
  165. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +9 -2
  166. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetTextColorsProperties.cjs +19 -0
  167. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetTextColorsProperties.js +19 -0
  168. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetVariantColorsProperties.cjs +29 -0
  169. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetVariantColorsProperties.js +29 -0
  170. package/dist/packages/components-v3/dist/PromptButton/index.cjs +1 -1
  171. package/dist/packages/components-v3/dist/PromptButton/index.js +1 -1
  172. package/dist/packages/components-v3/dist/PromptButton/utils/functions.cjs +10 -0
  173. package/dist/packages/components-v3/dist/PromptButton/utils/functions.js +10 -0
  174. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +1 -1
  175. package/dist/packages/components-v3/dist/SocialProof/SocialProof.cjs +10 -0
  176. package/dist/packages/components-v3/dist/SocialProof/SocialProof.js +12 -0
  177. package/dist/packages/components-v3/dist/SocialProof/components/Headline.cjs +53 -0
  178. package/dist/packages/components-v3/dist/SocialProof/components/Headline.js +54 -0
  179. package/dist/packages/components-v3/dist/SocialProof/components/ImageGallery.cjs +5 -0
  180. package/dist/packages/components-v3/dist/SocialProof/components/ImageGallery.js +7 -0
  181. package/dist/packages/components-v3/dist/SocialProof/components/LayoutFourGrid.cjs +6 -0
  182. package/dist/packages/components-v3/dist/SocialProof/components/LayoutFourGrid.js +8 -0
  183. package/dist/packages/components-v3/dist/SocialProof/components/LayoutFourHorizontal.cjs +16 -0
  184. package/dist/packages/components-v3/dist/SocialProof/components/LayoutFourHorizontal.js +17 -0
  185. package/dist/packages/components-v3/dist/SocialProof/components/LayoutSingle.cjs +8 -0
  186. package/dist/packages/components-v3/dist/SocialProof/components/LayoutSingle.js +10 -0
  187. package/dist/packages/components-v3/dist/SocialProof/components/Skeleton.cjs +1 -0
  188. package/dist/packages/components-v3/dist/SocialProof/components/Skeleton.js +3 -0
  189. package/dist/packages/components-v3/dist/SocialProof/components/Subheadline.cjs +8 -0
  190. package/dist/packages/components-v3/dist/SocialProof/components/Subheadline.js +10 -0
  191. package/dist/packages/components-v3/dist/SocialProof/components/Textfield.cjs +3 -0
  192. package/dist/packages/components-v3/dist/SocialProof/components/Textfield.js +5 -0
  193. package/dist/packages/components-v3/dist/SocialProof/components/index.cjs +8 -0
  194. package/dist/packages/components-v3/dist/SocialProof/components/index.js +10 -0
  195. package/dist/packages/components-v3/dist/SocialProof/hooks/index.cjs +1 -0
  196. package/dist/packages/components-v3/dist/SocialProof/hooks/index.js +3 -0
  197. package/dist/packages/components-v3/dist/SocialProof/hooks/useSocialProofCount.cjs +1 -0
  198. package/dist/packages/components-v3/dist/SocialProof/hooks/useSocialProofCount.js +3 -0
  199. package/dist/packages/components-v3/dist/SocialProof/index.cjs +4 -0
  200. package/dist/packages/components-v3/dist/SocialProof/index.js +6 -0
  201. package/dist/packages/components-v3/dist/SocialProof/types/types.cjs +11 -0
  202. package/dist/packages/components-v3/dist/SocialProof/types/types.js +10 -0
  203. package/dist/packages/components-v3/dist/SocialProof/utils/functions.cjs +1 -0
  204. package/dist/packages/components-v3/dist/SocialProof/utils/functions.js +3 -0
  205. package/dist/packages/components-v3/dist/Title/Title.cjs +11 -0
  206. package/dist/packages/components-v3/dist/Title/Title.js +12 -0
  207. package/dist/packages/components-v3/dist/Title/components/Image.cjs +2 -0
  208. package/dist/packages/components-v3/dist/Title/components/Image.js +4 -0
  209. package/dist/packages/components-v3/dist/Title/components/Label.cjs +3 -0
  210. package/dist/packages/components-v3/dist/Title/components/Label.js +5 -0
  211. package/dist/packages/components-v3/dist/Title/components/Layout.cjs +11 -0
  212. package/dist/packages/components-v3/dist/Title/components/Layout.js +12 -0
  213. package/dist/packages/components-v3/dist/Title/components/index.cjs +3 -0
  214. package/dist/packages/components-v3/dist/Title/components/index.js +5 -0
  215. package/dist/packages/components-v3/dist/Title/index.cjs +1 -0
  216. package/dist/packages/components-v3/dist/Title/index.js +3 -0
  217. package/dist/packages/components-v3/dist/Tokens/index.cjs +11 -11
  218. package/dist/packages/components-v3/dist/Tokens/index.js +11 -11
  219. package/dist/packages/components-v3/dist/Typography/Typography.cjs +35 -7
  220. package/dist/packages/components-v3/dist/Typography/Typography.js +35 -8
  221. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +30 -0
  222. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +28 -1
  223. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +19 -0
  224. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +17 -1
  225. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +20 -0
  226. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +18 -1
  227. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +12 -0
  228. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +10 -1
  229. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +21 -0
  230. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +19 -1
  231. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +61 -0
  232. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +59 -1
  233. package/dist/packages/components-v3/dist/Typography/index.cjs +2 -1
  234. package/dist/packages/components-v3/dist/Typography/index.js +2 -1
  235. package/dist/packages/components-v3/dist/Typography/types/index.cjs +47 -0
  236. package/dist/packages/components-v3/dist/Typography/types/index.js +44 -0
  237. package/dist/packages/components-v3/dist/Typography/utils/utils.cjs +12 -0
  238. package/dist/packages/components-v3/dist/Typography/utils/utils.js +10 -0
  239. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +1 -1
  240. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +1 -1
  241. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +2 -2
  242. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +2 -2
  243. package/dist/packages/components-v3/dist/WidgetTextField/WidgetTextField.cjs +2 -0
  244. package/dist/packages/components-v3/dist/WidgetTextField/WidgetTextField.js +4 -0
  245. package/dist/packages/components-v3/dist/WidgetTextField/components/Container.cjs +14 -0
  246. package/dist/packages/components-v3/dist/WidgetTextField/components/Container.js +15 -0
  247. package/dist/packages/components-v3/dist/WidgetTextField/components/FakeTextInput.cjs +3 -0
  248. package/dist/packages/components-v3/dist/WidgetTextField/components/FakeTextInput.js +5 -0
  249. package/dist/packages/components-v3/dist/WidgetTextField/components/Icon.cjs +7 -0
  250. package/dist/packages/components-v3/dist/WidgetTextField/components/Icon.js +9 -0
  251. package/dist/packages/components-v3/dist/WidgetTextField/components/Skeleton.cjs +10 -0
  252. package/dist/packages/components-v3/dist/WidgetTextField/components/Skeleton.js +11 -0
  253. package/dist/packages/components-v3/dist/WidgetTextField/components/index.cjs +4 -0
  254. package/dist/packages/components-v3/dist/WidgetTextField/components/index.js +6 -0
  255. package/dist/packages/components-v3/dist/WidgetTextField/hooks/useGetContainerProperties.cjs +1 -0
  256. package/dist/packages/components-v3/dist/WidgetTextField/hooks/useGetContainerProperties.js +3 -0
  257. package/dist/packages/components-v3/dist/WidgetTextField/index.cjs +1 -0
  258. package/dist/packages/components-v3/dist/WidgetTextField/index.js +3 -0
  259. package/dist/packages/components-v3/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.cjs +8 -0
  260. package/dist/packages/components-v3/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.js +10 -0
  261. package/dist/packages/components-v3/dist/packages/components-v3/src/models/colorsConfig.cjs +26 -0
  262. package/dist/packages/components-v3/dist/packages/components-v3/src/models/colorsConfig.js +25 -0
  263. package/dist/packages/components-v3/dist/packages/components-v3/tokens/aspectRatio/aspectRatio.cjs +16 -0
  264. package/dist/packages/components-v3/dist/packages/components-v3/tokens/aspectRatio/aspectRatio.js +17 -0
  265. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.cjs +25 -0
  266. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.js +23 -0
  267. package/dist/packages/components-v3/dist/packages/components-v3/tokens/colors/colors.cjs +51 -0
  268. package/dist/packages/components-v3/dist/packages/components-v3/tokens/colors/colors.js +51 -0
  269. package/dist/packages/components-v3/dist/packages/components-v3/tokens/radius/radius.cjs +64 -0
  270. package/dist/packages/components-v3/dist/packages/components-v3/tokens/radius/radius.js +65 -0
  271. package/dist/packages/components-v3/dist/packages/components-v3/tokens/theme/theme.cjs +18 -0
  272. package/dist/packages/components-v3/dist/packages/components-v3/tokens/theme/theme.js +16 -0
  273. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontFamily.cjs +25 -0
  274. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontFamily.js +25 -0
  275. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontSize.cjs +37 -0
  276. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontSize.js +38 -0
  277. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontWeight.cjs +17 -0
  278. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/fontWeight.js +18 -0
  279. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/letterSpacing.cjs +15 -0
  280. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/letterSpacing.js +16 -0
  281. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/lineHeight.cjs +31 -0
  282. package/dist/packages/components-v3/dist/packages/components-v3/tokens/typography/lineHeight.js +32 -0
  283. package/dist/packages/components-v3/dist/packages/components-v3/tokens/utils.cjs +7 -0
  284. package/dist/packages/components-v3/dist/packages/components-v3/tokens/utils.js +6 -0
  285. package/dist/packages/components-v3/dist/utils/resolveTheme.cjs +13 -0
  286. package/dist/packages/components-v3/dist/utils/resolveTheme.js +13 -0
  287. package/dist/packages/components-v3/dist/utils/useGetContentSize.cjs +1 -0
  288. package/dist/packages/components-v3/dist/utils/useGetContentSize.js +3 -0
  289. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +2 -2
  290. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +2 -2
  291. package/dist/packages/icons/dist/FourPointStar.cjs +16 -1
  292. package/dist/packages/icons/dist/FourPointStar.js +16 -2
  293. package/dist/packages/icons/dist/MagnifyingGlass.cjs +8 -0
  294. package/dist/packages/icons/dist/MagnifyingGlass.js +9 -0
  295. package/dist/packages/icons/dist/MagnifyingThin.cjs +8 -0
  296. package/dist/packages/icons/dist/MagnifyingThin.js +9 -0
  297. package/dist/packages/icons/dist/SendMinimalist.cjs +8 -0
  298. package/dist/packages/icons/dist/SendMinimalist.js +9 -0
  299. package/dist/packages/icons/dist/SendModern.cjs +8 -0
  300. package/dist/packages/icons/dist/SendModern.js +9 -0
  301. package/dist/packages/icons/dist/SendStandard.cjs +8 -0
  302. package/dist/packages/icons/dist/SendStandard.js +9 -0
  303. package/dist/services/amplitudeService/amplitudeService.cjs +37 -12
  304. package/dist/services/amplitudeService/amplitudeService.d.cts +11 -3
  305. package/dist/services/amplitudeService/amplitudeService.d.ts +11 -3
  306. package/dist/services/amplitudeService/amplitudeService.js +37 -12
  307. package/dist/services/userIdentityService/index.cjs +3 -0
  308. package/dist/services/userIdentityService/index.d.cts +2 -0
  309. package/dist/services/userIdentityService/index.d.ts +2 -0
  310. package/dist/services/userIdentityService/index.js +3 -0
  311. package/dist/services/userIdentityService/userIdentityService.cjs +49 -0
  312. package/dist/services/userIdentityService/userIdentityService.d.cts +19 -0
  313. package/dist/services/userIdentityService/userIdentityService.d.ts +19 -0
  314. package/dist/services/userIdentityService/userIdentityService.js +48 -0
  315. package/package.json +18 -5
  316. package/src/application/models/chatElementDisplayLocationV3.ts +2 -0
  317. package/src/application/models/frontendConfigV3.ts +1 -1
  318. package/src/application/utils/widgetTextRequestToApiRequest.ts +5 -5
  319. package/src/atoms/app/index.ts +9 -7
  320. package/src/atoms/chat/replies.ts +56 -0
  321. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +47 -66
  322. package/src/contexts/amplitudeContext/amplitudeContext.tsx +4 -1
  323. package/src/contexts/enviveContext/enviveContext.tsx +47 -6
  324. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +101 -2
  325. package/src/contexts/graphqlContext/graphqlContext.tsx +11 -2
  326. package/src/contexts/graphqlContext/mockV3Config.ts +15 -4
  327. package/src/contexts/hardcopyContext/hardcopyContext.tsx +29 -0
  328. package/src/contexts/salesAgentContext/chatAPI.ts +36 -7
  329. package/src/contexts/salesAgentContext/formSubmittedUtils.ts +57 -0
  330. package/src/contexts/salesAgentContext/salesAgentContext.tsx +63 -2
  331. package/src/contexts/salesAgentContext/salesAgentService.ts +15 -9
  332. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +3 -1
  333. package/src/contexts/typesV3.ts +13 -10
  334. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +18 -131
  335. package/src/contexts/userIdentityContext/userIdentityContext.tsx +47 -41
  336. package/src/hooks/ElementObserver/useElementObserver.ts +2 -1
  337. package/src/hooks/Search/__tests__/useSearch.test.tsx +11 -1
  338. package/src/mocks/index.ts +1 -0
  339. package/src/mocks/salesAgentMockData.ts +247 -0
  340. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +17 -0
  341. package/src/services/amplitudeService/amplitudeService.ts +50 -11
  342. package/src/services/userIdentityService/index.ts +1 -0
  343. package/src/services/userIdentityService/userIdentityService.ts +64 -0
  344. package/dist/contexts/featureFlagContext/featureFlagContext.cjs +0 -105
  345. package/dist/contexts/featureFlagContext/featureFlagContext.d.cts +0 -19
  346. package/dist/contexts/featureFlagContext/featureFlagContext.d.ts +0 -19
  347. package/dist/contexts/featureFlagContext/featureFlagContext.js +0 -102
  348. package/dist/contexts/featureFlagContext/index.cjs +0 -4
  349. package/dist/contexts/featureFlagContext/index.d.cts +0 -2
  350. package/dist/contexts/featureFlagContext/index.d.ts +0 -2
  351. package/dist/contexts/featureFlagContext/index.js +0 -3
  352. package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +0 -26
  353. package/dist/packages/components-v3/dist/src/models/colorsConfig.js +0 -25
  354. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +0 -16
  355. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +0 -17
  356. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +0 -25
  357. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +0 -23
  358. package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +0 -51
  359. package/dist/packages/components-v3/dist/tokens/colors/colors.js +0 -51
  360. package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +0 -64
  361. package/dist/packages/components-v3/dist/tokens/radius/radius.js +0 -65
  362. package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +0 -13
  363. package/dist/packages/components-v3/dist/tokens/theme/theme.js +0 -12
  364. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +0 -25
  365. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +0 -25
  366. package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +0 -37
  367. package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +0 -38
  368. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +0 -17
  369. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +0 -18
  370. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +0 -15
  371. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +0 -16
  372. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +0 -31
  373. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +0 -32
  374. package/dist/packages/components-v3/dist/tokens/utils.cjs +0 -7
  375. package/dist/packages/components-v3/dist/tokens/utils.js +0 -6
  376. package/src/contexts/featureFlagContext/featureFlagContext.tsx +0 -180
  377. package/src/contexts/featureFlagContext/index.ts +0 -1
  378. /package/dist/packages/components-v3/dist/{tokens → packages/components-v3/tokens}/typography/typography.cjs +0 -0
  379. /package/dist/packages/components-v3/dist/{tokens → packages/components-v3/tokens}/typography/typography.js +0 -0
@@ -1,7 +1,11 @@
1
+ import { MessageRole, MessageType } from "../../application/models/message.js";
2
+ import "../../application/models/index.js";
1
3
  import { SpiffyMetricsEventName } from "../../services/amplitudeService/amplitudeService.js";
2
4
  import { useAmplitude } from "../amplitudeContext/amplitudeContext.js";
3
- import { queueUserEventAtom } from "../../atoms/chat/messageQueue.js";
4
5
  import "../amplitudeContext/index.js";
6
+ import { formSubmitAtom, replyEventCategoryAtom } from "../../atoms/chat/chatState.js";
7
+ import { queueUserEventAtom } from "../../atoms/chat/messageQueue.js";
8
+ import "../../atoms/chat/index.js";
5
9
  import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
6
10
  import { v4 } from "uuid";
7
11
  import { useCallback } from "react";
@@ -10,6 +14,8 @@ import { useSetAtom } from "jotai";
10
14
  //#region src/contexts/salesAgentContext/chatAPI.ts
11
15
  const useSalesAgentChatAPI = () => {
12
16
  const queueUserEvent = useSetAtom(queueUserEventAtom);
17
+ const setReplyEventCategory = useSetAtom(replyEventCategoryAtom);
18
+ const setFormSubmit = useSetAtom(formSubmitAtom);
13
19
  const { trackEvent } = useAmplitude();
14
20
  return {
15
21
  logPageVisit: useCallback(({ pageVisitCategory }) => {
@@ -45,15 +51,24 @@ const useSalesAgentChatAPI = () => {
45
51
  });
46
52
  }, [queueUserEvent, trackEvent]),
47
53
  onTypedMessageSubmitted: useCallback(({ query, userTyped }) => {
54
+ const eventId = v4();
48
55
  trackEvent({
49
56
  eventName: SpiffyMetricsEventName.ChatUserMessageInput,
50
57
  eventProps: {
51
58
  query,
52
- userTyped
59
+ user_typed: userTyped,
60
+ message_id: eventId,
61
+ message_role: MessageRole.User,
62
+ message_type: MessageType.QueryTyped,
63
+ message_metadata: {
64
+ content: query,
65
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
66
+ user_typed: userTyped
67
+ }
53
68
  }
54
69
  });
55
70
  queueUserEvent({
56
- eventId: v4(),
71
+ eventId,
57
72
  category: UserEventCategory.QueryTyped,
58
73
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
59
74
  attributes: {
@@ -62,10 +77,23 @@ const useSalesAgentChatAPI = () => {
62
77
  }
63
78
  });
64
79
  }, [queueUserEvent, trackEvent]),
65
- onFormResponseSubmitted: useCallback(() => {}, [])
80
+ onFormResponseSubmitted: useCallback((form) => {
81
+ setReplyEventCategory(UserEventCategory.FormSubmitted);
82
+ setFormSubmit(form);
83
+ queueUserEvent({
84
+ eventId: v4(),
85
+ category: UserEventCategory.FormSubmitted,
86
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
87
+ attributes: form
88
+ });
89
+ }, [
90
+ queueUserEvent,
91
+ setReplyEventCategory,
92
+ setFormSubmit
93
+ ])
66
94
  };
67
95
  };
68
96
 
69
97
  //#endregion
70
98
  export { useSalesAgentChatAPI };
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBxdWV1ZVVzZXJFdmVudEF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7IHF1ZXJ5OiBzdHJpbmc7IHVzZXJUeXBlZDogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm1SZXNwb25zZTogYW55KSA9PiB2b2lkOyAvLyBUT0RPOiBGaWd1cmUgb3V0IHRoZSByaWdodCB0eXBlXG59XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSSA9ICgpID0+IHtcbiAgLy8gVE9ETzogRWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0cmlnZ2VyIGJvdGggdGhlIG5lY2Vzc2FyeSBhbXBsaXR1ZGUgZXZlbnRzIGFuZCBpbml0aWF0ZSB0aGVcbiAgLy8gbmVjZXNzYXJ5IGFjdGlvbnMgdG8gdHJpZ2dlciB0aGUgYmFja2VuZCBBUElcbiAgY29uc3QgcXVldWVVc2VyRXZlbnQgPSB1c2VTZXRBdG9tKHF1ZXVlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFVzZXJNZXNzYWdlSW5wdXQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGUgZm9ybSByZXNwb25zZSBzdWJtaXR0ZWRcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQWtCQSxNQUFhLDZCQUE2QjtDQUd4QyxNQUFNLGlCQUFpQixXQUFXLG1CQUFtQjtDQUNyRCxNQUFNLEVBQUUsZUFBZSxjQUFjO0FBd0VyQyxRQUFPO0VBQ0wsY0F2RW1CLGFBQ2xCLEVBQUUsd0JBQWtFO0FBVW5FLGtCQVR5QjtJQUN2QixTQUFTQSxJQUFNO0lBQ2YsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0tBQ1YsS0FBSyxPQUFPLFNBQVM7S0FDckI7S0FDRDtJQUNGLENBQ29CO0tBRXZCLENBQUMsZUFBZSxDQUNqQjtFQTBEQyxjQXhEbUIsYUFDbEIsVUFBcUI7QUFDcEIsa0JBQWUsTUFBTTtLQUV2QixDQUFDLGVBQWUsQ0FDakI7RUFvREMscUJBbkQwQixhQUN6QixlQUEyQjtBQUMxQixjQUFXO0lBQ1QsV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWLGNBQWMsV0FBVztLQUN6QixTQUFTLFdBQVc7S0FDckI7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCLFNBQVNBLElBQU07SUFDZixVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxnQkFBZ0IsV0FBVyxDQUM3QjtFQStCQyx5QkE5QjhCLGFBQzdCLEVBQUUsT0FBTyxnQkFBdUQ7QUFDL0QsY0FBVztJQUNULFdBQVcsdUJBQXVCO0lBQ2xDLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCLFNBQVNBLElBQU07SUFDZixVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGdCQUFnQixXQUFXLENBQzdCO0VBVUMseUJBVDhCLGtCQUFrQixJQUUvQyxFQUFFLENBQUM7RUFRTCJ9
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHtcbiAgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgU3VnZ2VzdGlvbixcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IGZvcm1TdWJtaXRBdG9tLCByZXBseUV2ZW50Q2F0ZWdvcnlBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2NoYXQnO1xuaW1wb3J0IHsgcXVldWVVc2VyRXZlbnRBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlJztcbmltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIHVzZUFtcGxpdHVkZSB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB2b2lkO1xuICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbikgPT4gdm9pZDtcbiAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7IHF1ZXJ5LCB1c2VyVHlwZWQgfTogeyBxdWVyeTogc3RyaW5nOyB1c2VyVHlwZWQ6IGJvb2xlYW4gfSkgPT4gdm9pZDtcbiAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQ6IChmb3JtUmVzcG9uc2U6IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudENoYXRBUEkgPSAoKSA9PiB7XG4gIC8vIFRPRE86IEVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgdHJpZ2dlciBib3RoIHRoZSBuZWNlc3NhcnkgYW1wbGl0dWRlIGV2ZW50cyBhbmQgaW5pdGlhdGUgdGhlXG4gIC8vIG5lY2Vzc2FyeSBhY3Rpb25zIHRvIHRyaWdnZXIgdGhlIGJhY2tlbmQgQVBJXG4gIGNvbnN0IHF1ZXVlVXNlckV2ZW50ID0gdXNlU2V0QXRvbShxdWV1ZVVzZXJFdmVudEF0b20pO1xuICBjb25zdCBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkgPSB1c2VTZXRBdG9tKHJlcGx5RXZlbnRDYXRlZ29yeUF0b20pO1xuICBjb25zdCBzZXRGb3JtU3VibWl0ID0gdXNlU2V0QXRvbShmb3JtU3VibWl0QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRVc2VyTWVzc2FnZUlucHV0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlcl90eXBlZDogdXNlclR5cGVkLFxuICAgICAgICAgIG1lc3NhZ2VfaWQ6IGV2ZW50SWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBxdWVyeSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHtcbiAgICAgIHNldFJlcGx5RXZlbnRDYXRlZ29yeShVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKTtcbiAgICAgIHNldEZvcm1TdWJtaXQoZm9ybSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczogZm9ybSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIHNldFJlcGx5RXZlbnRDYXRlZ29yeSwgc2V0Rm9ybVN1Ym1pdF0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFhLDZCQUE2QjtDQUd4QyxNQUFNLGlCQUFpQixXQUFXLG1CQUFtQjtDQUNyRCxNQUFNLHdCQUF3QixXQUFXLHVCQUF1QjtDQUNoRSxNQUFNLGdCQUFnQixXQUFXLGVBQWU7Q0FDaEQsTUFBTSxFQUFFLGVBQWUsY0FBYztBQTRGckMsUUFBTztFQUNMLGNBM0ZtQixhQUNsQixFQUFFLHdCQUFrRTtBQVVuRSxrQkFUeUI7SUFDdkIsU0FBU0EsSUFBTTtJQUNmLFVBQVUsa0JBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWLEtBQUssT0FBTyxTQUFTO0tBQ3JCO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGVBQWUsQ0FDakI7RUE4RUMsY0E1RW1CLGFBQ2xCLFVBQXFCO0FBQ3BCLGtCQUFlLE1BQU07S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBd0VDLHFCQXZFMEIsYUFDekIsZUFBMkI7QUFDMUIsY0FBVztJQUNULFdBQVcsdUJBQXVCO0lBQ2xDLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FBQztBQVVGLGtCQVR5QjtJQUN2QixTQUFTQSxJQUFNO0lBQ2YsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0tBQ1YsY0FBYyxXQUFXO0tBQ3pCLFNBQVMsV0FBVztLQUNyQjtJQUNGLENBQ29CO0tBRXZCLENBQUMsZ0JBQWdCLFdBQVcsQ0FDN0I7RUFtREMseUJBbEQ4QixhQUM3QixFQUFFLE9BQU8sZ0JBQXVEO0dBQy9ELE1BQU0sVUFBVUEsSUFBTTtBQUN0QixjQUFXO0lBQ1QsV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWO0tBQ0EsWUFBWTtLQUNaLFlBQVk7S0FDWixjQUFjLFlBQVk7S0FDMUIsY0FBYyxZQUFZO0tBQzFCLGtCQUFrQjtNQUNoQixTQUFTO01BQ1QsNkJBQVksSUFBSSxNQUFNLEVBQUMsYUFBYTtNQUNwQyxZQUFZO01BQ2I7S0FDRjtJQUNGLENBQUM7QUFVRixrQkFUeUI7SUFDdkI7SUFDQSxVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGdCQUFnQixXQUFXLENBQzdCO0VBcUJDLHlCQXBCOEIsYUFDN0IsU0FBa0M7QUFDakMseUJBQXNCLGtCQUFrQixjQUFjO0FBQ3RELGlCQUFjLEtBQUs7QUFPbkIsa0JBTnlCO0lBQ3ZCLFNBQVNBLElBQU07SUFDZixVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7SUFDYixDQUNvQjtLQUV2QjtHQUFDO0dBQWdCO0dBQXVCO0dBQWMsQ0FDdkQ7RUFRQSJ9
@@ -0,0 +1,37 @@
1
+ const require_message = require('../../application/models/message.cjs');
2
+
3
+ //#region src/contexts/salesAgentContext/formSubmittedUtils.ts
4
+ /**
5
+ * Searches the chat history for the form message by form response ID and builds the display string for the form.
6
+ */
7
+ const buildFormSubmittedDisplayContent = (messages, formResponseId, filledSchema) => {
8
+ let formFields = [];
9
+ for (const turn of messages) {
10
+ for (const msg of turn) if (msg.type === require_message.MessageType.Form && msg.id === formResponseId && msg.metadata && "fields" in msg.metadata && Array.isArray(msg.metadata.fields)) {
11
+ formFields = msg.metadata.fields.map((field) => ({
12
+ key: field.key,
13
+ title: field.title
14
+ }));
15
+ break;
16
+ }
17
+ if (formFields.length > 0) break;
18
+ }
19
+ return formFields.length > 0 ? formFields.map(({ key, title }) => `${title}: ${filledSchema[key] ?? ""}`).join("\n") : Object.entries(filledSchema).map(([key, value]) => `${key}: ${value}`).join("\n");
20
+ };
21
+ /**
22
+ * Creates a user message representing a submitted form for display in the chat.
23
+ */
24
+ const createFormSubmittedUserMessage = (userEvent, formSubmittedContent) => {
25
+ return {
26
+ id: userEvent.eventId,
27
+ role: require_message.MessageRole.User,
28
+ type: require_message.MessageType.QueryTyped,
29
+ createdAt: userEvent.createdAt,
30
+ metadata: { content: formSubmittedContent }
31
+ };
32
+ };
33
+
34
+ //#endregion
35
+ exports.buildFormSubmittedDisplayContent = buildFormSubmittedDisplayContent;
36
+ exports.createFormSubmittedUserMessage = createFormSubmittedUserMessage;
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybVN1Ym1pdHRlZFV0aWxzLmNqcyIsIm5hbWVzIjpbImZvcm1GaWVsZHM6IHsga2V5OiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfVtdIiwiTWVzc2FnZVR5cGUiLCJNZXNzYWdlUm9sZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9mb3JtU3VibWl0dGVkVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZSwgTWVzc2FnZVJvbGUsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuXG4vKipcbiAqIFNlYXJjaGVzIHRoZSBjaGF0IGhpc3RvcnkgZm9yIHRoZSBmb3JtIG1lc3NhZ2UgYnkgZm9ybSByZXNwb25zZSBJRCBhbmQgYnVpbGRzIHRoZSBkaXNwbGF5IHN0cmluZyBmb3IgdGhlIGZvcm0uXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZEZvcm1TdWJtaXR0ZWREaXNwbGF5Q29udGVudCA9IChcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdLFxuICBmb3JtUmVzcG9uc2VJZDogc3RyaW5nLFxuICBmaWxsZWRTY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogc3RyaW5nID0+IHtcbiAgbGV0IGZvcm1GaWVsZHM6IHsga2V5OiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfVtdID0gW107XG4gIC8vIEZpbmQgdGhlIGZvcm0gbWVzc2FnZSBpbiB0aGUgY2hhdCBoaXN0b3J5XG4gIGZvciAoY29uc3QgdHVybiBvZiBtZXNzYWdlcykge1xuICAgIGZvciAoY29uc3QgbXNnIG9mIHR1cm4pIHtcbiAgICAgIGlmIChcbiAgICAgICAgbXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlLkZvcm0gJiZcbiAgICAgICAgbXNnLmlkID09PSBmb3JtUmVzcG9uc2VJZCAmJlxuICAgICAgICBtc2cubWV0YWRhdGEgJiZcbiAgICAgICAgJ2ZpZWxkcycgaW4gbXNnLm1ldGFkYXRhICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkobXNnLm1ldGFkYXRhLmZpZWxkcylcbiAgICAgICkge1xuICAgICAgICBmb3JtRmllbGRzID0gbXNnLm1ldGFkYXRhLmZpZWxkcy5tYXAoKGZpZWxkOiB7IGtleTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pID0+ICh7XG4gICAgICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICAgICAgdGl0bGU6IGZpZWxkLnRpdGxlLFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9ybUZpZWxkcy5sZW5ndGggPiAwKSBicmVhaztcbiAgfVxuICAvLyBCdWlsZCB0aGUgZGlzcGxheSBzdHJpbmcgZm9yIHRoZSBmb3JtXG4gIGNvbnN0IGZvcm1TdHJpbmdDb250ZW50ID1cbiAgICBmb3JtRmllbGRzLmxlbmd0aCA+IDBcbiAgICAgID8gZm9ybUZpZWxkcy5tYXAoKHsga2V5LCB0aXRsZSB9KSA9PiBgJHt0aXRsZX06ICR7ZmlsbGVkU2NoZW1hW2tleV0gPz8gJyd9YCkuam9pbignXFxuJylcbiAgICAgIDogT2JqZWN0LmVudHJpZXMoZmlsbGVkU2NoZW1hKVxuICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fTogJHt2YWx1ZX1gKVxuICAgICAgICAgIC5qb2luKCdcXG4nKTtcbiAgcmV0dXJuIGZvcm1TdHJpbmdDb250ZW50O1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdXNlciBtZXNzYWdlIHJlcHJlc2VudGluZyBhIHN1Ym1pdHRlZCBmb3JtIGZvciBkaXNwbGF5IGluIHRoZSBjaGF0LlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlID0gKFxuICB1c2VyRXZlbnQ6IFVzZXJFdmVudCxcbiAgZm9ybVN1Ym1pdHRlZENvbnRlbnQ6IHN0cmluZyxcbik6IE1lc3NhZ2UgPT4ge1xuICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICByb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgIG1ldGFkYXRhOiB7IGNvbnRlbnQ6IGZvcm1TdWJtaXR0ZWRDb250ZW50IH0sXG4gIH07XG4gIHJldHVybiBuZXdNZXNzYWdlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUEsTUFBYSxvQ0FDWCxVQUNBLGdCQUNBLGlCQUNXO0NBQ1gsSUFBSUEsYUFBK0MsRUFBRTtBQUVyRCxNQUFLLE1BQU0sUUFBUSxVQUFVO0FBQzNCLE9BQUssTUFBTSxPQUFPLEtBQ2hCLEtBQ0UsSUFBSSxTQUFTQyw0QkFBWSxRQUN6QixJQUFJLE9BQU8sa0JBQ1gsSUFBSSxZQUNKLFlBQVksSUFBSSxZQUNoQixNQUFNLFFBQVEsSUFBSSxTQUFTLE9BQU8sRUFDbEM7QUFDQSxnQkFBYSxJQUFJLFNBQVMsT0FBTyxLQUFLLFdBQTJDO0lBQy9FLEtBQUssTUFBTTtJQUNYLE9BQU8sTUFBTTtJQUNkLEVBQUU7QUFDSDs7QUFHSixNQUFJLFdBQVcsU0FBUyxFQUFHOztBQVM3QixRQUxFLFdBQVcsU0FBUyxJQUNoQixXQUFXLEtBQUssRUFBRSxLQUFLLFlBQVksR0FBRyxNQUFNLElBQUksYUFBYSxRQUFRLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FDckYsT0FBTyxRQUFRLGFBQWEsQ0FDekIsS0FBSyxDQUFDLEtBQUssV0FBVyxHQUFHLElBQUksSUFBSSxRQUFRLENBQ3pDLEtBQUssS0FBSzs7Ozs7QUFPckIsTUFBYSxrQ0FDWCxXQUNBLHlCQUNZO0FBUVosUUFQNEI7RUFDMUIsSUFBSSxVQUFVO0VBQ2QsTUFBTUMsNEJBQVk7RUFDbEIsTUFBTUQsNEJBQVk7RUFDbEIsV0FBVyxVQUFVO0VBQ3JCLFVBQVUsRUFBRSxTQUFTLHNCQUFzQjtFQUM1QyJ9
@@ -0,0 +1,36 @@
1
+ import { MessageRole, MessageType } from "../../application/models/message.js";
2
+
3
+ //#region src/contexts/salesAgentContext/formSubmittedUtils.ts
4
+ /**
5
+ * Searches the chat history for the form message by form response ID and builds the display string for the form.
6
+ */
7
+ const buildFormSubmittedDisplayContent = (messages, formResponseId, filledSchema) => {
8
+ let formFields = [];
9
+ for (const turn of messages) {
10
+ for (const msg of turn) if (msg.type === MessageType.Form && msg.id === formResponseId && msg.metadata && "fields" in msg.metadata && Array.isArray(msg.metadata.fields)) {
11
+ formFields = msg.metadata.fields.map((field) => ({
12
+ key: field.key,
13
+ title: field.title
14
+ }));
15
+ break;
16
+ }
17
+ if (formFields.length > 0) break;
18
+ }
19
+ return formFields.length > 0 ? formFields.map(({ key, title }) => `${title}: ${filledSchema[key] ?? ""}`).join("\n") : Object.entries(filledSchema).map(([key, value]) => `${key}: ${value}`).join("\n");
20
+ };
21
+ /**
22
+ * Creates a user message representing a submitted form for display in the chat.
23
+ */
24
+ const createFormSubmittedUserMessage = (userEvent, formSubmittedContent) => {
25
+ return {
26
+ id: userEvent.eventId,
27
+ role: MessageRole.User,
28
+ type: MessageType.QueryTyped,
29
+ createdAt: userEvent.createdAt,
30
+ metadata: { content: formSubmittedContent }
31
+ };
32
+ };
33
+
34
+ //#endregion
35
+ export { buildFormSubmittedDisplayContent, createFormSubmittedUserMessage };
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybVN1Ym1pdHRlZFV0aWxzLmpzIiwibmFtZXMiOlsiZm9ybUZpZWxkczogeyBrZXk6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9W10iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvZm9ybVN1Ym1pdHRlZFV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VSb2xlLCBNZXNzYWdlVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcblxuLyoqXG4gKiBTZWFyY2hlcyB0aGUgY2hhdCBoaXN0b3J5IGZvciB0aGUgZm9ybSBtZXNzYWdlIGJ5IGZvcm0gcmVzcG9uc2UgSUQgYW5kIGJ1aWxkcyB0aGUgZGlzcGxheSBzdHJpbmcgZm9yIHRoZSBmb3JtLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQgPSAoXG4gIG1lc3NhZ2VzOiBNZXNzYWdlW11bXSxcbiAgZm9ybVJlc3BvbnNlSWQ6IHN0cmluZyxcbiAgZmlsbGVkU2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IHN0cmluZyA9PiB7XG4gIGxldCBmb3JtRmllbGRzOiB7IGtleTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSA9IFtdO1xuICAvLyBGaW5kIHRoZSBmb3JtIG1lc3NhZ2UgaW4gdGhlIGNoYXQgaGlzdG9yeVxuICBmb3IgKGNvbnN0IHR1cm4gb2YgbWVzc2FnZXMpIHtcbiAgICBmb3IgKGNvbnN0IG1zZyBvZiB0dXJuKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG1zZy50eXBlID09PSBNZXNzYWdlVHlwZS5Gb3JtICYmXG4gICAgICAgIG1zZy5pZCA9PT0gZm9ybVJlc3BvbnNlSWQgJiZcbiAgICAgICAgbXNnLm1ldGFkYXRhICYmXG4gICAgICAgICdmaWVsZHMnIGluIG1zZy5tZXRhZGF0YSAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KG1zZy5tZXRhZGF0YS5maWVsZHMpXG4gICAgICApIHtcbiAgICAgICAgZm9ybUZpZWxkcyA9IG1zZy5tZXRhZGF0YS5maWVsZHMubWFwKChmaWVsZDogeyBrZXk6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgICAgIHRpdGxlOiBmaWVsZC50aXRsZSxcbiAgICAgICAgfSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZvcm1GaWVsZHMubGVuZ3RoID4gMCkgYnJlYWs7XG4gIH1cbiAgLy8gQnVpbGQgdGhlIGRpc3BsYXkgc3RyaW5nIGZvciB0aGUgZm9ybVxuICBjb25zdCBmb3JtU3RyaW5nQ29udGVudCA9XG4gICAgZm9ybUZpZWxkcy5sZW5ndGggPiAwXG4gICAgICA/IGZvcm1GaWVsZHMubWFwKCh7IGtleSwgdGl0bGUgfSkgPT4gYCR7dGl0bGV9OiAke2ZpbGxlZFNjaGVtYVtrZXldID8/ICcnfWApLmpvaW4oJ1xcbicpXG4gICAgICA6IE9iamVjdC5lbnRyaWVzKGZpbGxlZFNjaGVtYSlcbiAgICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7dmFsdWV9YClcbiAgICAgICAgICAuam9pbignXFxuJyk7XG4gIHJldHVybiBmb3JtU3RyaW5nQ29udGVudDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHVzZXIgbWVzc2FnZSByZXByZXNlbnRpbmcgYSBzdWJtaXR0ZWQgZm9ybSBmb3IgZGlzcGxheSBpbiB0aGUgY2hhdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSA9IChcbiAgdXNlckV2ZW50OiBVc2VyRXZlbnQsXG4gIGZvcm1TdWJtaXR0ZWRDb250ZW50OiBzdHJpbmcsXG4pOiBNZXNzYWdlID0+IHtcbiAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICBpZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgIGNyZWF0ZWRBdDogdXNlckV2ZW50LmNyZWF0ZWRBdCxcbiAgICBtZXRhZGF0YTogeyBjb250ZW50OiBmb3JtU3VibWl0dGVkQ29udGVudCB9LFxuICB9O1xuICByZXR1cm4gbmV3TWVzc2FnZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLE1BQWEsb0NBQ1gsVUFDQSxnQkFDQSxpQkFDVztDQUNYLElBQUlBLGFBQStDLEVBQUU7QUFFckQsTUFBSyxNQUFNLFFBQVEsVUFBVTtBQUMzQixPQUFLLE1BQU0sT0FBTyxLQUNoQixLQUNFLElBQUksU0FBUyxZQUFZLFFBQ3pCLElBQUksT0FBTyxrQkFDWCxJQUFJLFlBQ0osWUFBWSxJQUFJLFlBQ2hCLE1BQU0sUUFBUSxJQUFJLFNBQVMsT0FBTyxFQUNsQztBQUNBLGdCQUFhLElBQUksU0FBUyxPQUFPLEtBQUssV0FBMkM7SUFDL0UsS0FBSyxNQUFNO0lBQ1gsT0FBTyxNQUFNO0lBQ2QsRUFBRTtBQUNIOztBQUdKLE1BQUksV0FBVyxTQUFTLEVBQUc7O0FBUzdCLFFBTEUsV0FBVyxTQUFTLElBQ2hCLFdBQVcsS0FBSyxFQUFFLEtBQUssWUFBWSxHQUFHLE1BQU0sSUFBSSxhQUFhLFFBQVEsS0FBSyxDQUFDLEtBQUssS0FBSyxHQUNyRixPQUFPLFFBQVEsYUFBYSxDQUN6QixLQUFLLENBQUMsS0FBSyxXQUFXLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FDekMsS0FBSyxLQUFLOzs7OztBQU9yQixNQUFhLGtDQUNYLFdBQ0EseUJBQ1k7QUFRWixRQVA0QjtFQUMxQixJQUFJLFVBQVU7RUFDZCxNQUFNLFlBQVk7RUFDbEIsTUFBTSxZQUFZO0VBQ2xCLFdBQVcsVUFBVTtFQUNyQixVQUFVLEVBQUUsU0FBUyxzQkFBc0I7RUFDNUMifQ==
@@ -1,4 +1,4 @@
1
1
  import { SalesAgentChatAPI, useSalesAgentChatAPI } from "./chatAPI.cjs";
2
- import { SalesAgent, SalesAgentProvider, useSalesAgent } from "./salesAgentContext.cjs";
2
+ import { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent } from "./salesAgentContext.cjs";
3
3
  import { PageVisitCategory, SuggestionCategory } from "@spiffy-ai/commerce-api-client";
4
- export { PageVisitCategory, SalesAgent, SalesAgentChatAPI, SalesAgentProvider, SuggestionCategory, useSalesAgent, useSalesAgentChatAPI };
4
+ export { MockSalesAgentData, PageVisitCategory, SalesAgent, SalesAgentChatAPI, SalesAgentProvider, SalesAgentProviderProps, SuggestionCategory, useSalesAgent, useSalesAgentChatAPI };
@@ -1,4 +1,4 @@
1
1
  import { SalesAgentChatAPI, useSalesAgentChatAPI } from "./chatAPI.js";
2
- import { SalesAgent, SalesAgentProvider, useSalesAgent } from "./salesAgentContext.js";
2
+ import { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent } from "./salesAgentContext.js";
3
3
  import { PageVisitCategory, SuggestionCategory } from "@spiffy-ai/commerce-api-client";
4
- export { PageVisitCategory, SalesAgent, SalesAgentChatAPI, SalesAgentProvider, SuggestionCategory, useSalesAgent, useSalesAgentChatAPI };
4
+ export { MockSalesAgentData, PageVisitCategory, SalesAgent, SalesAgentChatAPI, SalesAgentProvider, SalesAgentProviderProps, SuggestionCategory, useSalesAgent, useSalesAgentChatAPI };
@@ -5,6 +5,7 @@ const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
5
5
  const require_messageQueue = require('../../atoms/chat/messageQueue.cjs');
6
6
  const require_useSystemSettingsContext = require('../../hooks/SystemSettingsContext/useSystemSettingsContext.cjs');
7
7
  require('../../hooks/SystemSettingsContext/index.cjs');
8
+ const require_formSubmittedUtils = require('./formSubmittedUtils.cjs');
8
9
  const require_chatAPI = require('./chatAPI.cjs');
9
10
  const require_salesAgentService = require('./salesAgentService.cjs');
10
11
  let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
@@ -14,14 +15,28 @@ let react_jsx_runtime = require("react/jsx-runtime");
14
15
 
15
16
  //#region src/contexts/salesAgentContext/salesAgentContext.tsx
16
17
  const SalesAgentContext = (0, react.createContext)(void 0);
17
- const SalesAgentProvider = ({ children }) => {
18
+ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
18
19
  const userEvents = (0, jotai.useAtomValue)(require_messageQueue.userEventQueueAtom);
19
20
  const userQueueEventCount = (0, jotai.useAtomValue)(require_messageQueue.userQueueEventCountAtom);
20
21
  const markUserEventsProcessed = (0, jotai.useSetAtom)(require_messageQueue.processUserEventAtom);
21
22
  const [isInitialized, setIsInitialized] = (0, jotai.useAtom)(require_atoms_chat_chatState.initializedAtom);
22
23
  const settingsContext = require_useSystemSettingsContext.useSystemSettingsContext();
23
24
  const setMessages = (0, jotai.useSetAtom)(require_atoms_chat_chatState.messagesAtom);
25
+ const setSuggestions = (0, jotai.useSetAtom)(require_atoms_chat_chatState.suggestionsAtom);
24
26
  const { getStreamingResponses, createResponsePayload, getSuggestions, hydrateMessages } = require_salesAgentService.useSalesAgentService();
27
+ (0, react.useEffect)(() => {
28
+ if (previewMode && mockData) {
29
+ if (mockData.messages) setMessages(mockData.messages);
30
+ if (mockData.suggestions) setSuggestions(mockData.suggestions);
31
+ setIsInitialized(true);
32
+ }
33
+ }, [
34
+ previewMode,
35
+ mockData,
36
+ setMessages,
37
+ setSuggestions,
38
+ setIsInitialized
39
+ ]);
25
40
  const sendMessagesToBackend = (0, react.useCallback)(async (requestPayload) => {
26
41
  try {
27
42
  await getStreamingResponses(requestPayload);
@@ -36,6 +51,7 @@ const SalesAgentProvider = ({ children }) => {
36
51
  markUserEventsProcessed
37
52
  ]);
38
53
  (0, react.useEffect)(() => {
54
+ if (previewMode) return;
39
55
  if (userQueueEventCount > 0) {
40
56
  const payloadEvents = userEvents.slice(0, userQueueEventCount);
41
57
  payloadEvents.forEach((userEvent) => {
@@ -59,6 +75,13 @@ const SalesAgentProvider = ({ children }) => {
59
75
  };
60
76
  setMessages((current) => [...current, [newMessage]]);
61
77
  }
78
+ if (userEvent && userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.FormSubmitted) {
79
+ const { formResponseId, filledSchema } = userEvent.attributes;
80
+ setMessages((prevMessagesState) => {
81
+ const newUserMessage = require_formSubmittedUtils.createFormSubmittedUserMessage(userEvent, require_formSubmittedUtils.buildFormSubmittedDisplayContent(prevMessagesState, formResponseId, filledSchema));
82
+ return [...prevMessagesState.map((turn) => turn.filter((msg) => !(msg.type === require_message.MessageType.Form && msg.id === formResponseId))).filter((turn) => turn.length > 0), [newUserMessage]];
83
+ });
84
+ }
62
85
  });
63
86
  sendMessagesToBackend(createResponsePayload({
64
87
  userEvents: payloadEvents,
@@ -76,11 +99,17 @@ const SalesAgentProvider = ({ children }) => {
76
99
  sendMessagesToBackend,
77
100
  settingsContext.generationParams,
78
101
  userEvents,
79
- userQueueEventCount
102
+ userQueueEventCount,
103
+ previewMode
80
104
  ]);
81
105
  (0, react.useEffect)(() => {
106
+ if (previewMode) return;
82
107
  if (isInitialized) hydrateMessages();
83
- }, [isInitialized, hydrateMessages]);
108
+ }, [
109
+ isInitialized,
110
+ hydrateMessages,
111
+ previewMode
112
+ ]);
84
113
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SalesAgentContext.Provider, {
85
114
  value: void 0,
86
115
  children
@@ -126,4 +155,4 @@ const useSalesAgent = () => {
126
155
  //#endregion
127
156
  exports.SalesAgentProvider = SalesAgentProvider;
128
157
  exports.useSalesAgent = useSalesAgent;
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwic3VnZ2VzdGlvbnNBdG9tIiwicmVzcG9uc2VTdHJlYW1pbmdBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInVzZVNhbGVzQWdlbnRDaGF0QVBJIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VBdG9tLCB1c2VBdG9tVmFsdWUsIHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHsgTmV4dE1lc3NhZ2VSZXF1ZXN0LCBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7XG4gIGluaXRpYWxpemVkQXRvbSxcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXNwb25zZVN0cmVhbWluZ0F0b20sXG4gIHN1Z2dlc3Rpb25zQXRvbSxcbn0gZnJvbSAnc3JjL2F0b21zL2NoYXQvY2hhdFN0YXRlJztcbmltcG9ydCB7XG4gIHByb2Nlc3NVc2VyRXZlbnRBdG9tLFxuICB1c2VyRXZlbnRRdWV1ZUF0b20sXG4gIHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgdXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IH0gZnJvbSAnc3JjL2hvb2tzL1N5c3RlbVNldHRpbmdzQ29udGV4dCc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgdXNlckV2ZW50cyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCB1c2VyUXVldWVFdmVudENvdW50ID0gdXNlQXRvbVZhbHVlKHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tKTtcbiAgY29uc3QgbWFya1VzZXJFdmVudHNQcm9jZXNzZWQgPSB1c2VTZXRBdG9tKHByb2Nlc3NVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG5cbiAgY29uc3QgeyBnZXRTdHJlYW1pbmdSZXNwb25zZXMsIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCwgZ2V0U3VnZ2VzdGlvbnMsIGh5ZHJhdGVNZXNzYWdlcyB9ID1cbiAgICB1c2VTYWxlc0FnZW50U2VydmljZSgpO1xuXG4gIC8vIFRPRE86IEVuc3VyZSB0aGF0IGFtcGxpdHVkZSBldmVudHMgYXJlIGJlaW5nIGVtaXR0ZWRcblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHN0cmVhbWluZyByZXNwb25zZXMgdG8gZnVuY3Rpb25cblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBvbiBpbml0aWFsaXphdGlvblxuICBjb25zdCBzZW5kTWVzc2FnZXNUb0JhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdFBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzKHJlcXVlc3RQYXlsb2FkKTtcbiAgICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHRoZSB1c2VyIGV2ZW50c1xuICAgICAgICByZXF1ZXN0UGF5bG9hZC51c2VyRXZlbnRzPy5tYXAodXNlckV2ZW50ID0+IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkKFt1c2VyRXZlbnQuZXZlbnRJZF0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignW2Vudml2ZS1haV0gZXJyb3Igc2VuZGluZyBtZXNzYWdlJywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2dldFN0cmVhbWluZ1Jlc3BvbnNlcywgc2V0SXNJbml0aWFsaXplZCwgbWFya1VzZXJFdmVudHNQcm9jZXNzZWRdLFxuICApO1xuXG4gIC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgZXZlbnQgbG9vcCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBiYWNrZW5kIEFQSVxuICAvLyBJdCB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIG1lc3NhZ2VzIHRvIGJlIHNlbnQgdG8gdGhlIGJhY2tlbmRcbiAgLy8gSXQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmQgYW5kIHJlY2VpdmluZyB0aGUgcmVzcG9uc2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHVzZXJRdWV1ZUV2ZW50Q291bnQgPiAwKSB7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc0luaXRpYWxpemVkKSB7XG4gICAgICBnZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBbXSxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIHNldE1lc3NhZ2VzLFxuICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZCxcbiAgICBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB1c2VyRXZlbnRzLFxuICAgIHVzZXJRdWV1ZUV2ZW50Q291bnQsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIC8vIFJlaHlkcmF0ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZFxuICAgICAgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgfVxuICB9LCBbaXNJbml0aWFsaXplZCwgaHlkcmF0ZU1lc3NhZ2VzXSk7XG5cbiAgcmV0dXJuIDxTYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dW5kZWZpbmVkfT57Y2hpbGRyZW59PC9TYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudCA9ICgpOiBTYWxlc0FnZW50ID0+IHtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUobWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB1c2VBdG9tVmFsdWUoc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3QgcGVuZGluZ01lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IGlzUmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VBdG9tVmFsdWUocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgaXNQZW5kaW5nUmVzcG9uc2UgPSB1c2VBdG9tVmFsdWUocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IGlzSW5pdGlhbGl6ZWQgPSB1c2VBdG9tVmFsdWUoaW5pdGlhbGl6ZWRBdG9tKTtcbiAgY29uc3Qge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfSA9IHVzZVNhbGVzQWdlbnRDaGF0QVBJKCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBcUNBLE1BQU0sNkNBQTBELE9BQVU7QUFFMUUsTUFBYUEsc0JBQXlELEVBQUUsZUFBZTtDQUNyRixNQUFNLHFDQUEwQkMsd0NBQW1CO0NBQ25ELE1BQU0sOENBQW1DQyw2Q0FBd0I7Q0FDakUsTUFBTSxnREFBcUND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
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwiY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlIiwiYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQiLCJyZXNwb25zZVN0cmVhbWluZ0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwidXNlU2FsZXNBZ2VudENoYXRBUEkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VSb2xlLCBNZXNzYWdlVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBOZXh0TWVzc2FnZVJlcXVlc3QsIFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvU3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7XG4gIGJ1aWxkRm9ybVN1Ym1pdHRlZERpc3BsYXlDb250ZW50LFxuICBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UsXG59IGZyb20gJy4vZm9ybVN1Ym1pdHRlZFV0aWxzJztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJLCB1c2VTYWxlc0FnZW50Q2hhdEFQSSB9IGZyb20gJy4vY2hhdEFQSSc7XG5pbXBvcnQgeyB1c2VTYWxlc0FnZW50U2VydmljZSB9IGZyb20gJy4vc2FsZXNBZ2VudFNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnQgZXh0ZW5kcyBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIC8vIE1lc3NhZ2VzIGFyZSB0aGUgZnVsbCBsaXN0IG9mIGFsbCB0dXJuc1xuICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gIC8vIFBlbmRpbmcgbWVzc2FnZXMgYXJlIG1lc3NhZ2VzIHRoYXQgdGhlIHVzZXIgaGFzIGNsaWNrZWQvdHlwZWQgYnV0IGhhdmUgbm90IHlldCBiZWVuIHNlbnQgdG8gdGhlIGJhY2tlbmQuXG4gIHBlbmRpbmdNZXNzYWdlczogVXNlckV2ZW50W107XG4gIC8vIFN1Z2dlc3Rpb25zIGFyZSB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyB0aGF0IHRoZSB1c2VyIGNhbiBjbGljayBvbiBpbiByZXNwb25zZSB0byB0aGUgbW9zdCByZWNlbnQgbWVzc2FnZSBmcm9tIHRoZSBiYWNrZW5kXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHBlbmRpbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGVuIHRoZSBzYWxlcyBhZ2VudCBpcyBpbml0aWFsaXplZFxuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tTYWxlc0FnZW50RGF0YSB7XG4gIG1lc3NhZ2VzPzogTWVzc2FnZVtdW107XG4gIHN1Z2dlc3Rpb25zPzogU3VnZ2VzdGlvbltdO1xufVxuXG5jb25zdCBTYWxlc0FnZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2FsZXNBZ2VudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50UHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgbW9ja0RhdGE/OiBNb2NrU2FsZXNBZ2VudERhdGE7XG59XG5cbmV4cG9ydCBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBwcmV2aWV3TW9kZSA9IGZhbHNlLFxuICBtb2NrRGF0YSxcbn0pID0+IHtcbiAgY29uc3QgdXNlckV2ZW50cyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCB1c2VyUXVldWVFdmVudENvdW50ID0gdXNlQXRvbVZhbHVlKHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tKTtcbiAgY29uc3QgbWFya1VzZXJFdmVudHNQcm9jZXNzZWQgPSB1c2VTZXRBdG9tKHByb2Nlc3NVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICAvLyBJbml0aWFsaXplIHdpdGggbW9jayBkYXRhIGluIHByZXZpZXcgbW9kZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcmV2aWV3TW9kZSAmJiBtb2NrRGF0YSkge1xuICAgICAgaWYgKG1vY2tEYXRhLm1lc3NhZ2VzKSB7XG4gICAgICAgIHNldE1lc3NhZ2VzKG1vY2tEYXRhLm1lc3NhZ2VzKTtcbiAgICAgIH1cbiAgICAgIGlmIChtb2NrRGF0YS5zdWdnZXN0aW9ucykge1xuICAgICAgICBzZXRTdWdnZXN0aW9ucyhtb2NrRGF0YS5zdWdnZXN0aW9ucyk7XG4gICAgICB9XG4gICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuICAgIH1cbiAgfSwgW3ByZXZpZXdNb2RlLCBtb2NrRGF0YSwgc2V0TWVzc2FnZXMsIHNldFN1Z2dlc3Rpb25zLCBzZXRJc0luaXRpYWxpemVkXSk7XG5cbiAgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW1wbGl0dWRlIGV2ZW50cyBhcmUgYmVpbmcgZW1pdHRlZFxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgc3RyZWFtaW5nIHJlc3BvbnNlcyB0byBmdW5jdGlvblxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgaHlkcmF0aW9uIG9mIHRoZSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIG9uIGluaXRpYWxpemF0aW9uXG4gIGNvbnN0IHNlbmRNZXNzYWdlc1RvQmFja2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXF1ZXN0UGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMocmVxdWVzdFBheWxvYWQpO1xuICAgICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgcGVuZGluZyBtZXNzYWdlIGZyb20gdGhlIHVzZXIgZXZlbnRzXG4gICAgICAgIHJlcXVlc3RQYXlsb2FkLnVzZXJFdmVudHM/Lm1hcCh1c2VyRXZlbnQgPT4gbWFya1VzZXJFdmVudHNQcm9jZXNzZWQoW3VzZXJFdmVudC5ldmVudElkXSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBzZW5kaW5nIG1lc3NhZ2UnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBzZXRJc0luaXRpYWxpemVkLCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZF0sXG4gICk7XG5cbiAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBldmVudCBsb29wIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGJhY2tlbmQgQVBJXG4gIC8vIEl0IHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgYXJlIHBlbmRpbmcgbWVzc2FnZXMgdG8gYmUgc2VudCB0byB0aGUgYmFja2VuZFxuICAvLyBJdCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlcyB0byB0aGUgYmFja2VuZCBhbmQgcmVjZWl2aW5nIHRoZSByZXNwb25zZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTa2lwIGJhY2tlbmQgY29tbXVuaWNhdGlvbiBpbiBwcmV2aWV3IG1vZGVcbiAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHBheWxvYWRFdmVudHMgPSB1c2VyRXZlbnRzLnNsaWNlKDAsIHVzZXJRdWV1ZUV2ZW50Q291bnQpO1xuXG4gICAgICBwYXlsb2FkRXZlbnRzLmZvckVhY2godXNlckV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50ID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgY29uc3QgeyBmb3JtUmVzcG9uc2VJZCwgZmlsbGVkU2NoZW1hIH0gPSB1c2VyRXZlbnQuYXR0cmlidXRlcztcbiAgICAgICAgICBzZXRNZXNzYWdlcyhwcmV2TWVzc2FnZXNTdGF0ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtU3VibWl0dGVkQ29udGVudCA9IGJ1aWxkRm9ybVN1Ym1pdHRlZERpc3BsYXlDb250ZW50KFxuICAgICAgICAgICAgICBwcmV2TWVzc2FnZXNTdGF0ZSxcbiAgICAgICAgICAgICAgZm9ybVJlc3BvbnNlSWQsXG4gICAgICAgICAgICAgIGZpbGxlZFNjaGVtYSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBuZXdVc2VyTWVzc2FnZSA9IGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSh1c2VyRXZlbnQsIGZvcm1TdWJtaXR0ZWRDb250ZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHR1cm5zV2l0aG91dEZvcm0gPSBwcmV2TWVzc2FnZXNTdGF0ZVxuICAgICAgICAgICAgICAubWFwKHR1cm4gPT5cbiAgICAgICAgICAgICAgICB0dXJuLmZpbHRlcihtc2cgPT4gIShtc2cudHlwZSA9PT0gTWVzc2FnZVR5cGUuRm9ybSAmJiBtc2cuaWQgPT09IGZvcm1SZXNwb25zZUlkKSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZpbHRlcih0dXJuID0+IHR1cm4ubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnR1cm5zV2l0aG91dEZvcm0sIFtuZXdVc2VyTWVzc2FnZV1dO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWRFdmVudHMsXG4gICAgICAgICAgZ2VuZXJhdGlvblBhcmFtczogc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgc2V0TWVzc2FnZXMsXG4gICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kLFxuICAgIHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgIHVzZXJFdmVudHMsXG4gICAgdXNlclF1ZXVlRXZlbnRDb3VudCxcbiAgICBwcmV2aWV3TW9kZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTa2lwIGh5ZHJhdGlvbiBpbiBwcmV2aWV3IG1vZGVcbiAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNJbml0aWFsaXplZCkge1xuICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICBoeWRyYXRlTWVzc2FnZXMoKTtcbiAgICB9XG4gIH0sIFtpc0luaXRpYWxpemVkLCBoeWRyYXRlTWVzc2FnZXMsIHByZXZpZXdNb2RlXSk7XG5cbiAgcmV0dXJuIDxTYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dW5kZWZpbmVkfT57Y2hpbGRyZW59PC9TYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudCA9ICgpOiBTYWxlc0FnZW50ID0+IHtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUobWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB1c2VBdG9tVmFsdWUoc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3QgcGVuZGluZ01lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IGlzUmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VBdG9tVmFsdWUocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgaXNQZW5kaW5nUmVzcG9uc2UgPSB1c2VBdG9tVmFsdWUocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IGlzSW5pdGlhbGl6ZWQgPSB1c2VBdG9tVmFsdWUoaW5pdGlhbGl6ZWRBdG9tKTtcbiAgY29uc3Qge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfSA9IHVzZVNhbGVzQWdlbnRDaGF0QVBJKCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xu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
@@ -13,10 +13,17 @@ interface SalesAgent extends SalesAgentChatAPI {
13
13
  isPendingResponse: boolean;
14
14
  isInitialized: boolean;
15
15
  }
16
- declare const SalesAgentProvider: React.FC<{
16
+ interface MockSalesAgentData {
17
+ messages?: Message[][];
18
+ suggestions?: Suggestion[];
19
+ }
20
+ interface SalesAgentProviderProps {
17
21
  children: ReactNode;
18
- }>;
22
+ previewMode?: boolean;
23
+ mockData?: MockSalesAgentData;
24
+ }
25
+ declare const SalesAgentProvider: React.FC<SalesAgentProviderProps>;
19
26
  declare const useSalesAgent: () => SalesAgent;
20
27
  //#endregion
21
- export { SalesAgent, SalesAgentProvider, useSalesAgent };
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJIH0gZnJvbSAnLi9jaGF0QVBJJztcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudCBleHRlbmRzIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gICAgcGVuZGluZ01lc3NhZ2VzOiBVc2VyRXZlbnRbXTtcbiAgICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAgIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gICAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNhbGVzQWdlbnQ6ICgpID0+IFNhbGVzQWdlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxJQUFXLGFBQWE7Q0FBQztPQUFXO09BQWU7T0FBRztPQUFBO0NBQUE7QUFDdEQsSUFBVyxxQkFBYztDQUFBO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDekIsSUFBVyxnQkFBZ0IsQ0FBQyxXQUFJLFdBQUEifQ==
28
+ export { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJIH0gZnJvbSAnLi9jaGF0QVBJJztcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudCBleHRlbmRzIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gICAgcGVuZGluZ01lc3NhZ2VzOiBVc2VyRXZlbnRbXTtcbiAgICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAgIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gICAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1NhbGVzQWdlbnREYXRhIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICAgIHN1Z2dlc3Rpb25zPzogU3VnZ2VzdGlvbltdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50UHJvdmlkZXJQcm9wcyB7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gICAgbW9ja0RhdGE/OiBNb2NrU2FsZXNBZ2VudERhdGE7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNhbGVzQWdlbnQ6ICgpID0+IFNhbGVzQWdlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxJQUFXLGFBQWE7Q0FBQztPQUFXO09BQWU7T0FBRztPQUFBO0NBQUE7QUFDdEQsSUFBVyxxQkFBYztDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3pCLElBQVcsMEJBQXFCO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDaEMsSUFBVyxxQkFBa0I7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQzdCLElBQVcsZ0JBQWdCLENBQUMsV0FBSSxXQUFBIn0=
@@ -13,10 +13,17 @@ interface SalesAgent extends SalesAgentChatAPI {
13
13
  isPendingResponse: boolean;
14
14
  isInitialized: boolean;
15
15
  }
16
- declare const SalesAgentProvider: React.FC<{
16
+ interface MockSalesAgentData {
17
+ messages?: Message[][];
18
+ suggestions?: Suggestion[];
19
+ }
20
+ interface SalesAgentProviderProps {
17
21
  children: ReactNode;
18
- }>;
22
+ previewMode?: boolean;
23
+ mockData?: MockSalesAgentData;
24
+ }
25
+ declare const SalesAgentProvider: React.FC<SalesAgentProviderProps>;
19
26
  declare const useSalesAgent: () => SalesAgent;
20
27
  //#endregion
21
- export { SalesAgent, SalesAgentProvider, useSalesAgent };
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAgIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAgIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gICAgaXNSZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbjtcbiAgICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn0+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2FsZXNBZ2VudDogKCkgPT4gU2FsZXNBZ2VudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLElBQVcsYUFBYTtDQUFDO09BQVc7T0FBZTtPQUFHO09BQUE7Q0FBQTtBQUN0RCxJQUFXLHFCQUFjO0NBQUE7T0FBQTtPQUFBLE1BQUE7Q0FBQTtBQUN6QixJQUFXLGdCQUFnQixDQUFDLFdBQUksV0FBQSJ9
28
+ export { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAgIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAgIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gICAgaXNSZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbjtcbiAgICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICAgIG1lc3NhZ2VzPzogTWVzc2FnZVtdW107XG4gICAgc3VnZ2VzdGlvbnM/OiBTdWdnZXN0aW9uW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRQcm92aWRlclByb3BzIHtcbiAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAgIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgICBtb2NrRGF0YT86IE1vY2tTYWxlc0FnZW50RGF0YTtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFByb3ZpZGVyUHJvcHM+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2FsZXNBZ2VudDogKCkgPT4gU2FsZXNBZ2VudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLElBQVcsYUFBYTtDQUFDO09BQVc7T0FBZTtPQUFHO09BQUE7Q0FBQTtBQUN0RCxJQUFXLHFCQUFjO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDekIsSUFBVywwQkFBcUI7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNoQyxJQUFXLHFCQUFrQjtDQUFBO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDN0IsSUFBVyxnQkFBZ0IsQ0FBQyxXQUFJLFdBQUEifQ==
@@ -4,6 +4,7 @@ import { initializedAtom, messagesAtom, pendingResponseAtom, responseStreamingAt
4
4
  import { processUserEventAtom, userEventQueueAtom, userQueueEventCountAtom } from "../../atoms/chat/messageQueue.js";
5
5
  import { useSystemSettingsContext } from "../../hooks/SystemSettingsContext/useSystemSettingsContext.js";
6
6
  import "../../hooks/SystemSettingsContext/index.js";
7
+ import { buildFormSubmittedDisplayContent, createFormSubmittedUserMessage } from "./formSubmittedUtils.js";
7
8
  import { useSalesAgentChatAPI } from "./chatAPI.js";
8
9
  import { useSalesAgentService } from "./salesAgentService.js";
9
10
  import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
@@ -13,14 +14,28 @@ import { jsx } from "react/jsx-runtime";
13
14
 
14
15
  //#region src/contexts/salesAgentContext/salesAgentContext.tsx
15
16
  const SalesAgentContext = createContext(void 0);
16
- const SalesAgentProvider = ({ children }) => {
17
+ const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
17
18
  const userEvents = useAtomValue(userEventQueueAtom);
18
19
  const userQueueEventCount = useAtomValue(userQueueEventCountAtom);
19
20
  const markUserEventsProcessed = useSetAtom(processUserEventAtom);
20
21
  const [isInitialized, setIsInitialized] = useAtom(initializedAtom);
21
22
  const settingsContext = useSystemSettingsContext();
22
23
  const setMessages = useSetAtom(messagesAtom);
24
+ const setSuggestions = useSetAtom(suggestionsAtom);
23
25
  const { getStreamingResponses, createResponsePayload, getSuggestions, hydrateMessages } = useSalesAgentService();
26
+ useEffect(() => {
27
+ if (previewMode && mockData) {
28
+ if (mockData.messages) setMessages(mockData.messages);
29
+ if (mockData.suggestions) setSuggestions(mockData.suggestions);
30
+ setIsInitialized(true);
31
+ }
32
+ }, [
33
+ previewMode,
34
+ mockData,
35
+ setMessages,
36
+ setSuggestions,
37
+ setIsInitialized
38
+ ]);
24
39
  const sendMessagesToBackend = useCallback(async (requestPayload) => {
25
40
  try {
26
41
  await getStreamingResponses(requestPayload);
@@ -35,6 +50,7 @@ const SalesAgentProvider = ({ children }) => {
35
50
  markUserEventsProcessed
36
51
  ]);
37
52
  useEffect(() => {
53
+ if (previewMode) return;
38
54
  if (userQueueEventCount > 0) {
39
55
  const payloadEvents = userEvents.slice(0, userQueueEventCount);
40
56
  payloadEvents.forEach((userEvent) => {
@@ -58,6 +74,13 @@ const SalesAgentProvider = ({ children }) => {
58
74
  };
59
75
  setMessages((current) => [...current, [newMessage]]);
60
76
  }
77
+ if (userEvent && userEvent.category === UserEventCategory.FormSubmitted) {
78
+ const { formResponseId, filledSchema } = userEvent.attributes;
79
+ setMessages((prevMessagesState) => {
80
+ const newUserMessage = createFormSubmittedUserMessage(userEvent, buildFormSubmittedDisplayContent(prevMessagesState, formResponseId, filledSchema));
81
+ return [...prevMessagesState.map((turn) => turn.filter((msg) => !(msg.type === MessageType.Form && msg.id === formResponseId))).filter((turn) => turn.length > 0), [newUserMessage]];
82
+ });
83
+ }
61
84
  });
62
85
  sendMessagesToBackend(createResponsePayload({
63
86
  userEvents: payloadEvents,
@@ -75,11 +98,17 @@ const SalesAgentProvider = ({ children }) => {
75
98
  sendMessagesToBackend,
76
99
  settingsContext.generationParams,
77
100
  userEvents,
78
- userQueueEventCount
101
+ userQueueEventCount,
102
+ previewMode
79
103
  ]);
80
104
  useEffect(() => {
105
+ if (previewMode) return;
81
106
  if (isInitialized) hydrateMessages();
82
- }, [isInitialized, hydrateMessages]);
107
+ }, [
108
+ isInitialized,
109
+ hydrateMessages,
110
+ previewMode
111
+ ]);
83
112
  return /* @__PURE__ */ jsx(SalesAgentContext.Provider, {
84
113
  value: void 0,
85
114
  children
@@ -124,4 +153,4 @@ const useSalesAgent = () => {
124
153
 
125
154
  //#endregion
126
155
  export { SalesAgentProvider, useSalesAgent };
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VSb2xlLCBNZXNzYWdlVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBOZXh0TWVzc2FnZVJlcXVlc3QsIFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvU3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJLCB1c2VTYWxlc0FnZW50Q2hhdEFQSSB9IGZyb20gJy4vY2hhdEFQSSc7XG5pbXBvcnQgeyB1c2VTYWxlc0FnZW50U2VydmljZSB9IGZyb20gJy4vc2FsZXNBZ2VudFNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnQgZXh0ZW5kcyBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIC8vIE1lc3NhZ2VzIGFyZSB0aGUgZnVsbCBsaXN0IG9mIGFsbCB0dXJuc1xuICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gIC8vIFBlbmRpbmcgbWVzc2FnZXMgYXJlIG1lc3NhZ2VzIHRoYXQgdGhlIHVzZXIgaGFzIGNsaWNrZWQvdHlwZWQgYnV0IGhhdmUgbm90IHlldCBiZWVuIHNlbnQgdG8gdGhlIGJhY2tlbmQuXG4gIHBlbmRpbmdNZXNzYWdlczogVXNlckV2ZW50W107XG4gIC8vIFN1Z2dlc3Rpb25zIGFyZSB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyB0aGF0IHRoZSB1c2VyIGNhbiBjbGljayBvbiBpbiByZXNwb25zZSB0byB0aGUgbW9zdCByZWNlbnQgbWVzc2FnZSBmcm9tIHRoZSBiYWNrZW5kXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHBlbmRpbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGVuIHRoZSBzYWxlcyBhZ2VudCBpcyBpbml0aWFsaXplZFxuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuXG5jb25zdCBTYWxlc0FnZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2FsZXNBZ2VudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCB1c2VyRXZlbnRzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IHVzZXJRdWV1ZUV2ZW50Q291bnQgPSB1c2VBdG9tVmFsdWUodXNlclF1ZXVlRXZlbnRDb3VudEF0b20pO1xuICBjb25zdCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZCA9IHVzZVNldEF0b20ocHJvY2Vzc1VzZXJFdmVudEF0b20pO1xuICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VBdG9tKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dCA9IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCgpO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcblxuICBjb25zdCB7IGdldFN0cmVhbWluZ1Jlc3BvbnNlcywgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLCBnZXRTdWdnZXN0aW9ucywgaHlkcmF0ZU1lc3NhZ2VzIH0gPVxuICAgIHVzZVNhbGVzQWdlbnRTZXJ2aWNlKCk7XG5cbiAgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW1wbGl0dWRlIGV2ZW50cyBhcmUgYmVpbmcgZW1pdHRlZFxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgc3RyZWFtaW5nIHJlc3BvbnNlcyB0byBmdW5jdGlvblxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgaHlkcmF0aW9uIG9mIHRoZSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIG9uIGluaXRpYWxpemF0aW9uXG4gIGNvbnN0IHNlbmRNZXNzYWdlc1RvQmFja2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXF1ZXN0UGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMocmVxdWVzdFBheWxvYWQpO1xuICAgICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgcGVuZGluZyBtZXNzYWdlIGZyb20gdGhlIHVzZXIgZXZlbnRzXG4gICAgICAgIHJlcXVlc3RQYXlsb2FkLnVzZXJFdmVudHM/Lm1hcCh1c2VyRXZlbnQgPT4gbWFya1VzZXJFdmVudHNQcm9jZXNzZWQoW3VzZXJFdmVudC5ldmVudElkXSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBzZW5kaW5nIG1lc3NhZ2UnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBzZXRJc0luaXRpYWxpemVkLCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZF0sXG4gICk7XG5cbiAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBldmVudCBsb29wIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGJhY2tlbmQgQVBJXG4gIC8vIEl0IHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgYXJlIHBlbmRpbmcgbWVzc2FnZXMgdG8gYmUgc2VudCB0byB0aGUgYmFja2VuZFxuICAvLyBJdCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlcyB0byB0aGUgYmFja2VuZCBhbmQgcmVjZWl2aW5nIHRoZSByZXNwb25zZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHBheWxvYWRFdmVudHMgPSB1c2VyRXZlbnRzLnNsaWNlKDAsIHVzZXJRdWV1ZUV2ZW50Q291bnQpO1xuXG4gICAgICBwYXlsb2FkRXZlbnRzLmZvckVhY2godXNlckV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50ID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWRFdmVudHMsXG4gICAgICAgICAgZ2VuZXJhdGlvblBhcmFtczogc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgc2V0TWVzc2FnZXMsXG4gICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kLFxuICAgIHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgIHVzZXJFdmVudHMsXG4gICAgdXNlclF1ZXVlRXZlbnRDb3VudCxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0aWFsaXplZCkge1xuICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICBoeWRyYXRlTWVzc2FnZXMoKTtcbiAgICB9XG4gIH0sIFtpc0luaXRpYWxpemVkLCBoeWRyYXRlTWVzc2FnZXNdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoKTtcblxuICBjb25zdCBzYWxlc0FnZW50OiBTYWxlc0FnZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VzLFxuICAgICAgc3VnZ2VzdGlvbnMsXG4gICAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgICBpc0luaXRpYWxpemVkLFxuICAgICAgaXNSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgICAgbG9nUGFnZVZpc2l0LFxuICAgICAgbG9nVXNlckV2ZW50LFxuICAgICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gICAgfTtcbiAgfSwgW1xuICAgIG1lc3NhZ2VzLFxuICAgIHN1Z2dlc3Rpb25zLFxuICAgIHBlbmRpbmdNZXNzYWdlcyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgaXNQZW5kaW5nUmVzcG9uc2UsXG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICBdKTtcbiAgcmV0dXJuIHNhbGVzQWdlbnQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNLG9CQUFvQixjQUFzQyxPQUFVO0FBRTFFLE1BQWFBLHNCQUF5RCxFQUFFLGVBQWU7Q0FDckYsTUFBTSxhQUFhLGFBQWEsbUJBQW1CO0NBQ25ELE1BQU0sc0JBQXNCLGFBQWEsd0JBQXdCO0NBQ2pFLE1BQU0sMEJBQTBCLFdBQVcscUJBQXFCO0NBQ2hFLE1BQU0sQ0FBQyxlQUFlLG9CQUFvQixRQUFRLGdCQUFnQjtDQUNsRSxNQUFNLGtCQUFrQiwwQkFBMEI7Q0FDbEQsTUFBTSxjQUFjLFdBQVcsYUFBYTtDQUU1QyxNQUFNLEVBQUUsdUJBQXVCLHVCQUF1QixnQkFBZ0Isb0JBQ3BFLHNCQUFzQjtDQU94QixNQUFNLHdCQUF3QixZQUM1QixPQUFPLG1CQUF1QztBQUM1QyxNQUFJO0FBQ0YsU0FBTSxzQkFBc0IsZUFBZTtBQUMzQyxvQkFBaUIsS0FBSztBQUd0QixrQkFBZSxZQUFZLEtBQUksY0FBYSx3QkFBd0IsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1dBQ2xGLE9BQU87QUFDZCxrQkFBTyxTQUFTLHFDQUFxQyxNQUFNOztJQUcvRDtFQUFDO0VBQXVCO0VBQWtCO0VBQXdCLENBQ25FO0FBS0QsaUJBQWdCO0FBQ2QsTUFBSSxzQkFBc0IsR0FBRztHQUMzQixNQUFNLGdCQUFnQixXQUFXLE1BQU0sR0FBRyxvQkFBb0I7QUFFOUQsaUJBQWMsU0FBUSxjQUFhO0FBQ2pDLFFBQUksYUFBYSxVQUFVLGFBQWEsa0JBQWtCLFlBQVk7S0FDcEUsTUFBTUMsYUFBc0I7TUFDMUIsSUFBSSxVQUFVO01BQ2QsTUFBTSxZQUFZO01BQ2xCLE1BQU0sWUFBWTtNQUNsQixXQUFXLFVBQVU7TUFDckIsVUFBVSxFQUNSLFNBQVMsVUFBVSxXQUFXLE9BQy9CO01BQ0Y7QUFDRCxrQkFBWSxZQUFXLENBQUMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7O0FBRXBELFFBQUksYUFBYSxVQUFVLGFBQWEsa0JBQWtCLG1CQUFtQjtLQUMzRSxNQUFNQSxhQUFzQjtNQUMxQixJQUFJLFVBQVU7TUFDZCxNQUFNLFlBQVk7TUFDbEIsTUFBTSxZQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsV0FBVyxJQUMxQztNQUNGO0FBQ0Qsa0JBQVksWUFBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztLQUVwRDtBQUVGLHlCQUNFLHNCQUFzQjtJQUNwQixZQUFZO0lBQ1osa0JBQWtCLGdCQUFnQjtJQUNuQyxDQUFDLENBQ0g7YUFDUSxjQUNULGdCQUNFLHNCQUFzQjtHQUNwQixZQUFZLEVBQUU7R0FDZCxrQkFBa0IsZ0JBQWdCO0dBQ25DLENBQUMsQ0FDSDtJQUVGO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCQUFnQjtFQUNoQjtFQUNBO0VBQ0QsQ0FBQztBQUVGLGlCQUFnQjtBQUNkLE1BQUksY0FFRixrQkFBaUI7SUFFbEIsQ0FBQyxlQUFlLGdCQUFnQixDQUFDO0FBRXBDLFFBQU8sb0JBQUMsa0JBQWtCO0VBQVMsT0FBTztFQUFZO0dBQXNDOztBQUc5RixNQUFhLHNCQUFrQztDQUM3QyxNQUFNLFdBQVcsYUFBYSxhQUFhO0NBQzNDLE1BQU0sY0FBYyxhQUFhLGdCQUFnQjtDQUNqRCxNQUFNLGtCQUFrQixhQUFhLG1CQUFtQjtDQUN4RCxNQUFNLHNCQUFzQixhQUFhLHNCQUFzQjtDQUMvRCxNQUFNLG9CQUFvQixhQUFhLG9CQUFvQjtDQUMzRCxNQUFNLGdCQUFnQixhQUFhLGdCQUFnQjtDQUNuRCxNQUFNLEVBQ0osY0FDQSxjQUNBLHFCQUNBLHlCQUNBLDRCQUNFLHNCQUFzQjtBQTZCMUIsUUEzQitCLGNBQWM7QUFDM0MsU0FBTztHQUNMO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtJQUNBO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELENBQUMifQ==
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VSb2xlLCBNZXNzYWdlVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBOZXh0TWVzc2FnZVJlcXVlc3QsIFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvU3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7XG4gIGJ1aWxkRm9ybVN1Ym1pdHRlZERpc3BsYXlDb250ZW50LFxuICBjcmVhdGVGb3JtU3VibWl0dGVkVXNlck1lc3NhZ2UsXG59IGZyb20gJy4vZm9ybVN1Ym1pdHRlZFV0aWxzJztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJLCB1c2VTYWxlc0FnZW50Q2hhdEFQSSB9IGZyb20gJy4vY2hhdEFQSSc7XG5pbXBvcnQgeyB1c2VTYWxlc0FnZW50U2VydmljZSB9IGZyb20gJy4vc2FsZXNBZ2VudFNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnQgZXh0ZW5kcyBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIC8vIE1lc3NhZ2VzIGFyZSB0aGUgZnVsbCBsaXN0IG9mIGFsbCB0dXJuc1xuICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gIC8vIFBlbmRpbmcgbWVzc2FnZXMgYXJlIG1lc3NhZ2VzIHRoYXQgdGhlIHVzZXIgaGFzIGNsaWNrZWQvdHlwZWQgYnV0IGhhdmUgbm90IHlldCBiZWVuIHNlbnQgdG8gdGhlIGJhY2tlbmQuXG4gIHBlbmRpbmdNZXNzYWdlczogVXNlckV2ZW50W107XG4gIC8vIFN1Z2dlc3Rpb25zIGFyZSB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyB0aGF0IHRoZSB1c2VyIGNhbiBjbGljayBvbiBpbiByZXNwb25zZSB0byB0aGUgbW9zdCByZWNlbnQgbWVzc2FnZSBmcm9tIHRoZSBiYWNrZW5kXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHBlbmRpbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGVuIHRoZSBzYWxlcyBhZ2VudCBpcyBpbml0aWFsaXplZFxuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tTYWxlc0FnZW50RGF0YSB7XG4gIG1lc3NhZ2VzPzogTWVzc2FnZVtdW107XG4gIHN1Z2dlc3Rpb25zPzogU3VnZ2VzdGlvbltdO1xufVxuXG5jb25zdCBTYWxlc0FnZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2FsZXNBZ2VudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50UHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgbW9ja0RhdGE/OiBNb2NrU2FsZXNBZ2VudERhdGE7XG59XG5cbmV4cG9ydCBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBwcmV2aWV3TW9kZSA9IGZhbHNlLFxuICBtb2NrRGF0YSxcbn0pID0+IHtcbiAgY29uc3QgdXNlckV2ZW50cyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCB1c2VyUXVldWVFdmVudENvdW50ID0gdXNlQXRvbVZhbHVlKHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tKTtcbiAgY29uc3QgbWFya1VzZXJFdmVudHNQcm9jZXNzZWQgPSB1c2VTZXRBdG9tKHByb2Nlc3NVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuXG4gIGNvbnN0IHsgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBjcmVhdGVSZXNwb25zZVBheWxvYWQsIGdldFN1Z2dlc3Rpb25zLCBoeWRyYXRlTWVzc2FnZXMgfSA9XG4gICAgdXNlU2FsZXNBZ2VudFNlcnZpY2UoKTtcblxuICAvLyBJbml0aWFsaXplIHdpdGggbW9jayBkYXRhIGluIHByZXZpZXcgbW9kZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcmV2aWV3TW9kZSAmJiBtb2NrRGF0YSkge1xuICAgICAgaWYgKG1vY2tEYXRhLm1lc3NhZ2VzKSB7XG4gICAgICAgIHNldE1lc3NhZ2VzKG1vY2tEYXRhLm1lc3NhZ2VzKTtcbiAgICAgIH1cbiAgICAgIGlmIChtb2NrRGF0YS5zdWdnZXN0aW9ucykge1xuICAgICAgICBzZXRTdWdnZXN0aW9ucyhtb2NrRGF0YS5zdWdnZXN0aW9ucyk7XG4gICAgICB9XG4gICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuICAgIH1cbiAgfSwgW3ByZXZpZXdNb2RlLCBtb2NrRGF0YSwgc2V0TWVzc2FnZXMsIHNldFN1Z2dlc3Rpb25zLCBzZXRJc0luaXRpYWxpemVkXSk7XG5cbiAgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW1wbGl0dWRlIGV2ZW50cyBhcmUgYmVpbmcgZW1pdHRlZFxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgc3RyZWFtaW5nIHJlc3BvbnNlcyB0byBmdW5jdGlvblxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgaHlkcmF0aW9uIG9mIHRoZSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIG9uIGluaXRpYWxpemF0aW9uXG4gIGNvbnN0IHNlbmRNZXNzYWdlc1RvQmFja2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXF1ZXN0UGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMocmVxdWVzdFBheWxvYWQpO1xuICAgICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgcGVuZGluZyBtZXNzYWdlIGZyb20gdGhlIHVzZXIgZXZlbnRzXG4gICAgICAgIHJlcXVlc3RQYXlsb2FkLnVzZXJFdmVudHM/Lm1hcCh1c2VyRXZlbnQgPT4gbWFya1VzZXJFdmVudHNQcm9jZXNzZWQoW3VzZXJFdmVudC5ldmVudElkXSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBzZW5kaW5nIG1lc3NhZ2UnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBzZXRJc0luaXRpYWxpemVkLCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZF0sXG4gICk7XG5cbiAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBldmVudCBsb29wIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGJhY2tlbmQgQVBJXG4gIC8vIEl0IHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgYXJlIHBlbmRpbmcgbWVzc2FnZXMgdG8gYmUgc2VudCB0byB0aGUgYmFja2VuZFxuICAvLyBJdCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlcyB0byB0aGUgYmFja2VuZCBhbmQgcmVjZWl2aW5nIHRoZSByZXNwb25zZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTa2lwIGJhY2tlbmQgY29tbXVuaWNhdGlvbiBpbiBwcmV2aWV3IG1vZGVcbiAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHBheWxvYWRFdmVudHMgPSB1c2VyRXZlbnRzLnNsaWNlKDAsIHVzZXJRdWV1ZUV2ZW50Q291bnQpO1xuXG4gICAgICBwYXlsb2FkRXZlbnRzLmZvckVhY2godXNlckV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50ID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgY29uc3QgeyBmb3JtUmVzcG9uc2VJZCwgZmlsbGVkU2NoZW1hIH0gPSB1c2VyRXZlbnQuYXR0cmlidXRlcztcbiAgICAgICAgICBzZXRNZXNzYWdlcyhwcmV2TWVzc2FnZXNTdGF0ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtU3VibWl0dGVkQ29udGVudCA9IGJ1aWxkRm9ybVN1Ym1pdHRlZERpc3BsYXlDb250ZW50KFxuICAgICAgICAgICAgICBwcmV2TWVzc2FnZXNTdGF0ZSxcbiAgICAgICAgICAgICAgZm9ybVJlc3BvbnNlSWQsXG4gICAgICAgICAgICAgIGZpbGxlZFNjaGVtYSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBuZXdVc2VyTWVzc2FnZSA9IGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSh1c2VyRXZlbnQsIGZvcm1TdWJtaXR0ZWRDb250ZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHR1cm5zV2l0aG91dEZvcm0gPSBwcmV2TWVzc2FnZXNTdGF0ZVxuICAgICAgICAgICAgICAubWFwKHR1cm4gPT5cbiAgICAgICAgICAgICAgICB0dXJuLmZpbHRlcihtc2cgPT4gIShtc2cudHlwZSA9PT0gTWVzc2FnZVR5cGUuRm9ybSAmJiBtc2cuaWQgPT09IGZvcm1SZXNwb25zZUlkKSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZpbHRlcih0dXJuID0+IHR1cm4ubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnR1cm5zV2l0aG91dEZvcm0sIFtuZXdVc2VyTWVzc2FnZV1dO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWRFdmVudHMsXG4gICAgICAgICAgZ2VuZXJhdGlvblBhcmFtczogc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgc2V0TWVzc2FnZXMsXG4gICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kLFxuICAgIHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgIHVzZXJFdmVudHMsXG4gICAgdXNlclF1ZXVlRXZlbnRDb3VudCxcbiAgICBwcmV2aWV3TW9kZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTa2lwIGh5ZHJhdGlvbiBpbiBwcmV2aWV3IG1vZGVcbiAgICBpZiAocHJldmlld01vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNJbml0aWFsaXplZCkge1xuICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICBoeWRyYXRlTWVzc2FnZXMoKTtcbiAgICB9XG4gIH0sIFtpc0luaXRpYWxpemVkLCBoeWRyYXRlTWVzc2FnZXMsIHByZXZpZXdNb2RlXSk7XG5cbiAgcmV0dXJuIDxTYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dW5kZWZpbmVkfT57Y2hpbGRyZW59PC9TYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudCA9ICgpOiBTYWxlc0FnZW50ID0+IHtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUobWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB1c2VBdG9tVmFsdWUoc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3QgcGVuZGluZ01lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IGlzUmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VBdG9tVmFsdWUocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgaXNQZW5kaW5nUmVzcG9uc2UgPSB1c2VBdG9tVmFsdWUocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IGlzSW5pdGlhbGl6ZWQgPSB1c2VBdG9tVmFsdWUoaW5pdGlhbGl6ZWRBdG9tKTtcbiAgY29uc3Qge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfSA9IHVzZVNhbGVzQWdlbnRDaGF0QVBJKCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBOENBLE1BQU0sb0JBQW9CLGNBQXNDLE9BQVU7QUFRMUUsTUFBYUEsc0JBQXlELEVBQ3BFLFVBQ0EsY0FBYyxPQUNkLGVBQ0k7Q0FDSixNQUFNLGFBQWEsYUFBYSxtQkFBbUI7Q0FDbkQsTUFBTSxzQkFBc0IsYUFBYSx3QkFBd0I7Q0FDakUsTUFBTSwwQkFBMEIsV0FBVyxxQkFBcUI7Q0FDaEUsTUFBTSxDQUFDLGVBQWUsb0JBQW9CLFFBQVEsZ0JBQWdCO0NBQ2xFLE1BQU0sa0JBQWtCLDBCQUEwQjtDQUNsRCxNQUFNLGNBQWMsV0FBVyxhQUFhO0NBQzVDLE1BQU0saUJBQWlCLFdBQVcsZ0JBQWdCO0NBRWxELE1BQU0sRUFBRSx1QkFBdUIsdUJBQXVCLGdCQUFnQixvQkFDcEUsc0JBQXNCO0FBR3hCLGlCQUFnQjtBQUNkLE1BQUksZUFBZSxVQUFVO0FBQzNCLE9BQUksU0FBUyxTQUNYLGFBQVksU0FBUyxTQUFTO0FBRWhDLE9BQUksU0FBUyxZQUNYLGdCQUFlLFNBQVMsWUFBWTtBQUV0QyxvQkFBaUIsS0FBSzs7SUFFdkI7RUFBQztFQUFhO0VBQVU7RUFBYTtFQUFnQjtFQUFpQixDQUFDO0NBTzFFLE1BQU0sd0JBQXdCLFlBQzVCLE9BQU8sbUJBQXVDO0FBQzVDLE1BQUk7QUFDRixTQUFNLHNCQUFzQixlQUFlO0FBQzNDLG9CQUFpQixLQUFLO0FBR3RCLGtCQUFlLFlBQVksS0FBSSxjQUFhLHdCQUF3QixDQUFDLFVBQVUsUUFBUSxDQUFDLENBQUM7V0FDbEYsT0FBTztBQUNkLGtCQUFPLFNBQVMscUNBQXFDLE1BQU07O0lBRy9EO0VBQUM7RUFBdUI7RUFBa0I7RUFBd0IsQ0FDbkU7QUFLRCxpQkFBZ0I7QUFFZCxNQUFJLFlBQ0Y7QUFHRixNQUFJLHNCQUFzQixHQUFHO0dBQzNCLE1BQU0sZ0JBQWdCLFdBQVcsTUFBTSxHQUFHLG9CQUFvQjtBQUU5RCxpQkFBYyxTQUFRLGNBQWE7QUFDakMsUUFBSSxhQUFhLFVBQVUsYUFBYSxrQkFBa0IsWUFBWTtLQUNwRSxNQUFNQyxhQUFzQjtNQUMxQixJQUFJLFVBQVU7TUFDZCxNQUFNLFlBQVk7TUFDbEIsTUFBTSxZQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsT0FDL0I7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFcEQsUUFBSSxhQUFhLFVBQVUsYUFBYSxrQkFBa0IsbUJBQW1CO0tBQzNFLE1BQU1BLGFBQXNCO01BQzFCLElBQUksVUFBVTtNQUNkLE1BQU0sWUFBWTtNQUNsQixNQUFNLFlBQVk7TUFDbEIsV0FBVyxVQUFVO01BQ3JCLFVBQVUsRUFDUixTQUFTLFVBQVUsV0FBVyxXQUFXLElBQzFDO01BQ0Y7QUFDRCxrQkFBWSxZQUFXLENBQUMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7O0FBRXBELFFBQUksYUFBYSxVQUFVLGFBQWEsa0JBQWtCLGVBQWU7S0FDdkUsTUFBTSxFQUFFLGdCQUFnQixpQkFBaUIsVUFBVTtBQUNuRCxrQkFBWSxzQkFBcUI7TUFNL0IsTUFBTSxpQkFBaUIsK0JBQStCLFdBTHpCLGlDQUMzQixtQkFDQSxnQkFDQSxhQUNELENBQ3FGO0FBTXRGLGFBQU8sQ0FBQyxHQUxpQixrQkFDdEIsS0FBSSxTQUNILEtBQUssUUFBTyxRQUFPLEVBQUUsSUFBSSxTQUFTLFlBQVksUUFBUSxJQUFJLE9BQU8sZ0JBQWdCLENBQ2xGLENBQ0EsUUFBTyxTQUFRLEtBQUssU0FBUyxFQUFFLEVBQ0wsQ0FBQyxlQUFlLENBQUM7T0FDOUM7O0tBRUo7QUFFRix5QkFDRSxzQkFBc0I7SUFDcEIsWUFBWTtJQUNaLGtCQUFrQixnQkFBZ0I7SUFDbkMsQ0FBQyxDQUNIO2FBQ1EsY0FDVCxnQkFDRSxzQkFBc0I7R0FDcEIsWUFBWSxFQUFFO0dBQ2Qsa0JBQWtCLGdCQUFnQjtHQUNuQyxDQUFDLENBQ0g7SUFFRjtFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQkFBZ0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0QsQ0FBQztBQUVGLGlCQUFnQjtBQUVkLE1BQUksWUFDRjtBQUdGLE1BQUksY0FFRixrQkFBaUI7SUFFbEI7RUFBQztFQUFlO0VBQWlCO0VBQVksQ0FBQztBQUVqRCxRQUFPLG9CQUFDLGtCQUFrQjtFQUFTLE9BQU87RUFBWTtHQUFzQzs7QUFHOUYsTUFBYSxzQkFBa0M7Q0FDN0MsTUFBTSxXQUFXLGFBQWEsYUFBYTtDQUMzQyxNQUFNLGNBQWMsYUFBYSxnQkFBZ0I7Q0FDakQsTUFBTSxrQkFBa0IsYUFBYSxtQkFBbUI7Q0FDeEQsTUFBTSxzQkFBc0IsYUFBYSxzQkFBc0I7Q0FDL0QsTUFBTSxvQkFBb0IsYUFBYSxvQkFBb0I7Q0FDM0QsTUFBTSxnQkFBZ0IsYUFBYSxnQkFBZ0I7Q0FDbkQsTUFBTSxFQUNKLGNBQ0EsY0FDQSxxQkFDQSx5QkFDQSw0QkFDRSxzQkFBc0I7QUE2QjFCLFFBM0IrQixjQUFjO0FBQzNDLFNBQU87R0FDTDtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7SUFDQTtFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDIn0=