@envive-ai/react-hooks 0.3.7 → 0.3.9

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 (460) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +0 -2
  2. package/dist/application/commerce-api.cjs +1 -1
  3. package/dist/application/commerce-api.js +1 -1
  4. package/dist/application/models/chatElementDisplayLocationV3.cjs +5 -1
  5. package/dist/application/models/chatElementDisplayLocationV3.d.cts +5 -1
  6. package/dist/application/models/chatElementDisplayLocationV3.d.ts +5 -1
  7. package/dist/application/models/chatElementDisplayLocationV3.js +5 -1
  8. package/dist/application/models/frontendConfigV3.d.cts +2 -2
  9. package/dist/application/models/frontendConfigV3.d.ts +2 -2
  10. package/dist/application/models/variantInfo/variantInfo.cjs +2 -2
  11. package/dist/application/models/variantInfo/variantInfo.d.cts +2 -2
  12. package/dist/application/models/variantInfo/variantInfo.d.ts +2 -2
  13. package/dist/application/models/variantInfo/variantInfo.js +2 -2
  14. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +6 -2
  15. package/dist/application/utils/widgetTextRequestToApiRequest.js +6 -2
  16. package/dist/atoms/app/index.cjs +4 -4
  17. package/dist/atoms/app/index.d.cts +7 -7
  18. package/dist/atoms/app/index.d.ts +2 -2
  19. package/dist/atoms/app/index.js +4 -4
  20. package/dist/atoms/app/variant.d.cts +6 -6
  21. package/dist/atoms/app/variant.d.ts +6 -6
  22. package/dist/atoms/chat/chatState.d.cts +18 -18
  23. package/dist/atoms/chat/chatState.d.ts +17 -17
  24. package/dist/atoms/chat/form.d.cts +2 -2
  25. package/dist/atoms/chat/form.d.ts +2 -2
  26. package/dist/atoms/chat/index.cjs +7 -1
  27. package/dist/atoms/chat/index.d.cts +5 -4
  28. package/dist/atoms/chat/index.d.ts +5 -4
  29. package/dist/atoms/chat/index.js +3 -2
  30. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  31. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  32. package/dist/atoms/chat/messageQueue.cjs +1 -0
  33. package/dist/atoms/chat/messageQueue.d.cts +31 -0
  34. package/dist/atoms/chat/messageQueue.d.ts +31 -0
  35. package/dist/atoms/chat/messageQueue.js +1 -1
  36. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  37. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  38. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  39. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  40. package/dist/atoms/chat/replies.cjs +46 -0
  41. package/dist/atoms/chat/replies.d.cts +14 -0
  42. package/dist/atoms/chat/replies.d.ts +14 -0
  43. package/dist/atoms/chat/replies.js +45 -0
  44. package/dist/atoms/chat/suggestions.d.cts +2 -2
  45. package/dist/atoms/chat/suggestions.d.ts +2 -2
  46. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  47. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  48. package/dist/atoms/org/customerService.d.cts +6 -6
  49. package/dist/atoms/org/customerService.d.ts +6 -6
  50. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  51. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  52. package/dist/atoms/org/index.cjs +2 -2
  53. package/dist/atoms/org/index.js +2 -2
  54. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  55. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  56. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  57. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  58. package/dist/atoms/search/chatSearch.cjs +1 -1
  59. package/dist/atoms/search/chatSearch.d.cts +17 -17
  60. package/dist/atoms/search/chatSearch.d.ts +17 -17
  61. package/dist/atoms/search/chatSearch.js +1 -1
  62. package/dist/atoms/search/searchAPI.cjs +1 -1
  63. package/dist/atoms/search/searchAPI.d.cts +13 -13
  64. package/dist/atoms/search/searchAPI.d.ts +13 -13
  65. package/dist/atoms/search/searchAPI.js +1 -1
  66. package/dist/atoms/search/types.d.cts +1 -1
  67. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  68. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  69. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +6 -4
  70. package/dist/contexts/amplitudeContext/amplitudeContext.js +6 -4
  71. package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +66 -0
  72. package/dist/contexts/enviveContext/WindowChatToggleBinder.js +65 -0
  73. package/dist/contexts/enviveContext/enviveContext.cjs +40 -17
  74. package/dist/contexts/enviveContext/enviveContext.d.cts +4 -1
  75. package/dist/contexts/enviveContext/enviveContext.d.ts +4 -1
  76. package/dist/contexts/enviveContext/enviveContext.js +41 -18
  77. package/dist/contexts/enviveContext/types.d.cts +1 -1
  78. package/dist/contexts/enviveContext/types.d.ts +1 -1
  79. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +56 -2
  80. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +6 -1
  81. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +6 -1
  82. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +56 -2
  83. package/dist/contexts/graphqlContext/graphqlContext.cjs +15 -10
  84. package/dist/contexts/graphqlContext/graphqlContext.js +11 -6
  85. package/dist/contexts/graphqlContext/mockV3Config.cjs +65 -58
  86. package/dist/contexts/graphqlContext/mockV3Config.js +27 -21
  87. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +29 -1
  88. package/dist/contexts/hardcopyContext/hardcopyContext.js +29 -1
  89. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
  90. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
  91. package/dist/contexts/pageContext/mapping.cjs +9 -1
  92. package/dist/contexts/pageContext/mapping.js +9 -1
  93. package/dist/contexts/pageContext/pageContext.cjs +8 -3
  94. package/dist/contexts/pageContext/pageContext.d.cts +2 -1
  95. package/dist/contexts/pageContext/pageContext.d.ts +2 -1
  96. package/dist/contexts/pageContext/pageContext.js +8 -3
  97. package/dist/contexts/pageContext/types.d.cts +11 -3
  98. package/dist/contexts/pageContext/types.d.ts +11 -3
  99. package/dist/contexts/salesAgentContext/chatAPI.cjs +44 -8
  100. package/dist/contexts/salesAgentContext/chatAPI.d.cts +7 -6
  101. package/dist/contexts/salesAgentContext/chatAPI.d.ts +7 -6
  102. package/dist/contexts/salesAgentContext/chatAPI.js +44 -8
  103. package/dist/contexts/salesAgentContext/formSubmittedUtils.cjs +37 -0
  104. package/dist/contexts/salesAgentContext/formSubmittedUtils.js +36 -0
  105. package/dist/contexts/salesAgentContext/index.d.cts +2 -2
  106. package/dist/contexts/salesAgentContext/index.d.ts +2 -2
  107. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +39 -6
  108. package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +11 -4
  109. package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +11 -4
  110. package/dist/contexts/salesAgentContext/salesAgentContext.js +40 -7
  111. package/dist/contexts/salesAgentContext/salesAgentService.cjs +13 -7
  112. package/dist/contexts/salesAgentContext/salesAgentService.js +13 -7
  113. package/dist/contexts/searchContext/searchContext.cjs +1 -1
  114. package/dist/contexts/searchContext/searchContext.js +1 -1
  115. package/dist/contexts/types.d.cts +1 -1
  116. package/dist/contexts/typesV3.cjs +2 -7
  117. package/dist/contexts/typesV3.d.cts +19 -11
  118. package/dist/contexts/typesV3.d.ts +21 -13
  119. package/dist/contexts/typesV3.js +3 -7
  120. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +22 -29
  121. package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +9 -8
  122. package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +9 -8
  123. package/dist/contexts/userIdentityContext/userIdentityContext.js +22 -29
  124. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +2 -1
  125. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +2 -1
  126. package/dist/hooks/ElementObserver/useElementObserver.cjs +3 -2
  127. package/dist/hooks/ElementObserver/useElementObserver.js +3 -2
  128. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  129. package/dist/hooks/Search/useSearch.cjs +2 -2
  130. package/dist/hooks/Search/useSearch.js +2 -2
  131. package/dist/hooks/Search/useSearchInput.cjs +2 -2
  132. package/dist/hooks/Search/useSearchInput.js +2 -2
  133. package/dist/hooks/utils.d.cts +1 -1
  134. package/dist/mocks/index.cjs +5 -0
  135. package/dist/mocks/index.d.cts +2 -0
  136. package/dist/mocks/index.d.ts +2 -0
  137. package/dist/mocks/index.js +3 -0
  138. package/dist/mocks/salesAgentMockData.cjs +207 -0
  139. package/dist/mocks/salesAgentMockData.d.cts +11 -0
  140. package/dist/mocks/salesAgentMockData.d.ts +11 -0
  141. package/dist/mocks/salesAgentMockData.js +204 -0
  142. package/dist/services/amplitudeService/amplitudeService.cjs +77 -12
  143. package/dist/services/amplitudeService/amplitudeService.d.cts +12 -3
  144. package/dist/services/amplitudeService/amplitudeService.d.ts +12 -3
  145. package/dist/services/amplitudeService/amplitudeService.js +77 -12
  146. package/dist/services/userIdentityService/index.cjs +3 -0
  147. package/dist/services/userIdentityService/index.d.cts +2 -0
  148. package/dist/services/userIdentityService/index.d.ts +2 -0
  149. package/dist/services/userIdentityService/index.js +3 -0
  150. package/dist/services/userIdentityService/userIdentityService.cjs +49 -0
  151. package/dist/services/userIdentityService/userIdentityService.d.cts +19 -0
  152. package/dist/services/userIdentityService/userIdentityService.d.ts +19 -0
  153. package/dist/services/userIdentityService/userIdentityService.js +48 -0
  154. package/package.json +18 -5
  155. package/src/application/models/chatElementDisplayLocationV3.ts +4 -0
  156. package/src/application/models/frontendConfigV3.ts +1 -1
  157. package/src/application/models/variantInfo/variantInfo.ts +1 -1
  158. package/src/application/utils/widgetTextRequestToApiRequest.ts +7 -5
  159. package/src/atoms/app/index.ts +9 -7
  160. package/src/atoms/chat/index.ts +1 -0
  161. package/src/atoms/chat/replies.ts +56 -0
  162. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +47 -66
  163. package/src/contexts/amplitudeContext/amplitudeContext.tsx +4 -1
  164. package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +66 -0
  165. package/src/contexts/enviveContext/enviveContext.tsx +50 -7
  166. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +101 -2
  167. package/src/contexts/graphqlContext/graphqlContext.tsx +11 -2
  168. package/src/contexts/graphqlContext/mockV3Config.ts +19 -4
  169. package/src/contexts/hardcopyContext/hardcopyContext.tsx +29 -0
  170. package/src/contexts/pageContext/mapping.ts +16 -1
  171. package/src/contexts/pageContext/pageContext.tsx +12 -3
  172. package/src/contexts/pageContext/types.ts +16 -1
  173. package/src/contexts/salesAgentContext/chatAPI.ts +52 -11
  174. package/src/contexts/salesAgentContext/formSubmittedUtils.ts +57 -0
  175. package/src/contexts/salesAgentContext/salesAgentContext.tsx +71 -5
  176. package/src/contexts/salesAgentContext/salesAgentService.ts +15 -9
  177. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +3 -1
  178. package/src/contexts/typesV3.ts +22 -12
  179. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +18 -131
  180. package/src/contexts/userIdentityContext/userIdentityContext.tsx +47 -41
  181. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -0
  182. package/src/hooks/ElementObserver/useElementObserver.ts +2 -1
  183. package/src/hooks/Search/__tests__/useSearch.test.tsx +11 -1
  184. package/src/mocks/index.ts +1 -0
  185. package/src/mocks/salesAgentMockData.ts +247 -0
  186. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +17 -0
  187. package/src/services/amplitudeService/amplitudeService.ts +106 -11
  188. package/src/services/userIdentityService/index.ts +1 -0
  189. package/src/services/userIdentityService/userIdentityService.ts +64 -0
  190. package/dist/_virtual/rolldown_runtime.js +0 -29
  191. package/dist/contexts/featureFlagContext/featureFlagContext.cjs +0 -105
  192. package/dist/contexts/featureFlagContext/featureFlagContext.d.cts +0 -19
  193. package/dist/contexts/featureFlagContext/featureFlagContext.d.ts +0 -19
  194. package/dist/contexts/featureFlagContext/featureFlagContext.js +0 -102
  195. package/dist/contexts/featureFlagContext/index.cjs +0 -4
  196. package/dist/contexts/featureFlagContext/index.d.cts +0 -2
  197. package/dist/contexts/featureFlagContext/index.d.ts +0 -2
  198. package/dist/contexts/featureFlagContext/index.js +0 -3
  199. package/dist/node_modules/classnames/index.cjs +0 -52
  200. package/dist/node_modules/classnames/index.js +0 -49
  201. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.cjs +0 -2
  202. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.js +0 -4
  203. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +0 -16
  204. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +0 -17
  205. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.cjs +0 -6
  206. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.js +0 -8
  207. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.cjs +0 -4
  208. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.js +0 -6
  209. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.cjs +0 -3
  210. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.js +0 -5
  211. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.cjs +0 -7
  212. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.js +0 -9
  213. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.cjs +0 -6
  214. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.js +0 -8
  215. package/dist/packages/components-v3/dist/ChatHeader/components/index.cjs +0 -6
  216. package/dist/packages/components-v3/dist/ChatHeader/components/index.js +0 -8
  217. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +0 -22
  218. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +0 -23
  219. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +0 -58
  220. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +0 -59
  221. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +0 -8
  222. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +0 -9
  223. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +0 -1
  224. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +0 -3
  225. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +0 -12
  226. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +0 -13
  227. package/dist/packages/components-v3/dist/ChatHeader/index.cjs +0 -2
  228. package/dist/packages/components-v3/dist/ChatHeader/index.js +0 -4
  229. package/dist/packages/components-v3/dist/ChatHeader/types/index.cjs +0 -11
  230. package/dist/packages/components-v3/dist/ChatHeader/types/index.js +0 -10
  231. package/dist/packages/components-v3/dist/Container/Container.cjs +0 -11
  232. package/dist/packages/components-v3/dist/Container/Container.js +0 -12
  233. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +0 -1
  234. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +0 -3
  235. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +0 -1
  236. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +0 -3
  237. package/dist/packages/components-v3/dist/Container/index.cjs +0 -1
  238. package/dist/packages/components-v3/dist/Container/index.js +0 -3
  239. package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.cjs +0 -2
  240. package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.js +0 -4
  241. package/dist/packages/components-v3/dist/FloatingButton/components/Button.cjs +0 -9
  242. package/dist/packages/components-v3/dist/FloatingButton/components/Button.js +0 -10
  243. package/dist/packages/components-v3/dist/FloatingButton/components/Container.cjs +0 -9
  244. package/dist/packages/components-v3/dist/FloatingButton/components/Container.js +0 -10
  245. package/dist/packages/components-v3/dist/FloatingButton/components/Icon.cjs +0 -3
  246. package/dist/packages/components-v3/dist/FloatingButton/components/Icon.js +0 -5
  247. package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.cjs +0 -9
  248. package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.js +0 -10
  249. package/dist/packages/components-v3/dist/FloatingButton/components/index.cjs +0 -4
  250. package/dist/packages/components-v3/dist/FloatingButton/components/index.js +0 -6
  251. package/dist/packages/components-v3/dist/FloatingButton/index.cjs +0 -2
  252. package/dist/packages/components-v3/dist/FloatingButton/index.js +0 -4
  253. package/dist/packages/components-v3/dist/FloatingButton/types/types.cjs +0 -17
  254. package/dist/packages/components-v3/dist/FloatingButton/types/types.js +0 -16
  255. package/dist/packages/components-v3/dist/Image/Image.cjs +0 -16
  256. package/dist/packages/components-v3/dist/Image/Image.js +0 -17
  257. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +0 -1
  258. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +0 -3
  259. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +0 -1
  260. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +0 -3
  261. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +0 -1
  262. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +0 -3
  263. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +0 -1
  264. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +0 -3
  265. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +0 -1
  266. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +0 -3
  267. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +0 -1
  268. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +0 -3
  269. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +0 -1
  270. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +0 -3
  271. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +0 -2
  272. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +0 -4
  273. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +0 -2
  274. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +0 -4
  275. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +0 -15
  276. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +0 -16
  277. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +0 -4
  278. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +0 -4
  279. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +0 -1
  280. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +0 -3
  281. package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +0 -4
  282. package/dist/packages/components-v3/dist/ImageGallery/components/index.js +0 -6
  283. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +0 -1
  284. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +0 -3
  285. package/dist/packages/components-v3/dist/ImageGallery/index.cjs +0 -2
  286. package/dist/packages/components-v3/dist/ImageGallery/index.js +0 -4
  287. package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +0 -13
  288. package/dist/packages/components-v3/dist/ImageGallery/types/types.js +0 -12
  289. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +0 -12
  290. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +0 -13
  291. package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +0 -1
  292. package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +0 -3
  293. package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +0 -3
  294. package/dist/packages/components-v3/dist/PromptButton/components/Label.js +0 -5
  295. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +0 -12
  296. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +0 -13
  297. package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +0 -9
  298. package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +0 -10
  299. package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +0 -4
  300. package/dist/packages/components-v3/dist/PromptButton/components/index.js +0 -6
  301. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +0 -1
  302. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +0 -3
  303. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +0 -8
  304. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +0 -9
  305. package/dist/packages/components-v3/dist/PromptButton/index.cjs +0 -2
  306. package/dist/packages/components-v3/dist/PromptButton/index.js +0 -4
  307. package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +0 -13
  308. package/dist/packages/components-v3/dist/PromptButton/types/index.js +0 -12
  309. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +0 -12
  310. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +0 -14
  311. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +0 -9
  312. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +0 -10
  313. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +0 -11
  314. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +0 -12
  315. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +0 -4
  316. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +0 -6
  317. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +0 -4
  318. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +0 -6
  319. package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +0 -3
  320. package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +0 -5
  321. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +0 -5
  322. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +0 -7
  323. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +0 -1
  324. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +0 -3
  325. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +0 -3
  326. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +0 -5
  327. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +0 -1
  328. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +0 -3
  329. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +0 -1
  330. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +0 -3
  331. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +0 -1
  332. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +0 -3
  333. package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +0 -2
  334. package/dist/packages/components-v3/dist/PromptCarousel/index.js +0 -4
  335. package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +0 -19
  336. package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +0 -17
  337. package/dist/packages/components-v3/dist/Stack/Stack.cjs +0 -36
  338. package/dist/packages/components-v3/dist/Stack/Stack.js +0 -36
  339. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +0 -27
  340. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +0 -26
  341. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +0 -20
  342. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +0 -19
  343. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +0 -19
  344. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +0 -18
  345. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +0 -16
  346. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +0 -15
  347. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +0 -21
  348. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +0 -20
  349. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +0 -38
  350. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +0 -38
  351. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +0 -13
  352. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +0 -12
  353. package/dist/packages/components-v3/dist/Stack/index.cjs +0 -1
  354. package/dist/packages/components-v3/dist/Stack/index.js +0 -3
  355. package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +0 -42
  356. package/dist/packages/components-v3/dist/Stack/utils/constants.js +0 -41
  357. package/dist/packages/components-v3/dist/Tokens/index.cjs +0 -11
  358. package/dist/packages/components-v3/dist/Tokens/index.js +0 -13
  359. package/dist/packages/components-v3/dist/Typography/Typography.cjs +0 -15
  360. package/dist/packages/components-v3/dist/Typography/Typography.js +0 -16
  361. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +0 -1
  362. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +0 -3
  363. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +0 -1
  364. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +0 -3
  365. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +0 -1
  366. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +0 -3
  367. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +0 -1
  368. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +0 -3
  369. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +0 -1
  370. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +0 -3
  371. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +0 -1
  372. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +0 -3
  373. package/dist/packages/components-v3/dist/Typography/index.cjs +0 -1
  374. package/dist/packages/components-v3/dist/Typography/index.js +0 -3
  375. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.cjs +0 -2
  376. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.js +0 -4
  377. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +0 -14
  378. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +0 -15
  379. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +0 -3
  380. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +0 -5
  381. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.cjs +0 -3
  382. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.js +0 -5
  383. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.cjs +0 -3
  384. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.js +0 -5
  385. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.cjs +0 -4
  386. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.js +0 -6
  387. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +0 -1
  388. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.js +0 -3
  389. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +0 -1
  390. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +0 -3
  391. package/dist/packages/components-v3/dist/WelcomeMessage/index.cjs +0 -2
  392. package/dist/packages/components-v3/dist/WelcomeMessage/index.js +0 -4
  393. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +0 -14
  394. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +0 -14
  395. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +0 -12
  396. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +0 -13
  397. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +0 -1
  398. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +0 -3
  399. package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +0 -2
  400. package/dist/packages/components-v3/dist/WidgetWrapper/index.js +0 -4
  401. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +0 -13
  402. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +0 -12
  403. package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +0 -26
  404. package/dist/packages/components-v3/dist/src/models/colorsConfig.js +0 -25
  405. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +0 -16
  406. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +0 -17
  407. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +0 -25
  408. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +0 -23
  409. package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +0 -51
  410. package/dist/packages/components-v3/dist/tokens/colors/colors.js +0 -51
  411. package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +0 -64
  412. package/dist/packages/components-v3/dist/tokens/radius/radius.js +0 -65
  413. package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +0 -13
  414. package/dist/packages/components-v3/dist/tokens/theme/theme.js +0 -12
  415. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +0 -25
  416. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +0 -25
  417. package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +0 -37
  418. package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +0 -38
  419. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +0 -17
  420. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +0 -18
  421. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +0 -15
  422. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +0 -16
  423. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +0 -31
  424. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +0 -32
  425. package/dist/packages/components-v3/dist/tokens/typography/typography.cjs +0 -5
  426. package/dist/packages/components-v3/dist/tokens/typography/typography.js +0 -7
  427. package/dist/packages/components-v3/dist/tokens/utils.cjs +0 -7
  428. package/dist/packages/components-v3/dist/tokens/utils.js +0 -6
  429. package/dist/packages/components-v3/dist/utils/CustomIcon.cjs +0 -2
  430. package/dist/packages/components-v3/dist/utils/CustomIcon.js +0 -4
  431. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +0 -1
  432. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +0 -3
  433. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +0 -57
  434. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +0 -56
  435. package/dist/packages/icons/dist/FourPointStar.cjs +0 -8
  436. package/dist/packages/icons/dist/FourPointStar.js +0 -9
  437. package/dist/packages/icons/dist/IconCloseRounded.cjs +0 -22
  438. package/dist/packages/icons/dist/IconCloseRounded.js +0 -22
  439. package/dist/packages/icons/dist/IconCloseSharp.cjs +0 -31
  440. package/dist/packages/icons/dist/IconCloseSharp.js +0 -31
  441. package/dist/packages/icons/dist/IconCloseTransparent.cjs +0 -24
  442. package/dist/packages/icons/dist/IconCloseTransparent.js +0 -24
  443. package/dist/packages/icons/dist/Sparkles.cjs +0 -8
  444. package/dist/packages/icons/dist/Sparkles.js +0 -9
  445. package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +0 -28
  446. package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +0 -26
  447. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -697
  448. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -697
  449. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +0 -44
  450. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -44
  451. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +0 -1529
  452. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +0 -1529
  453. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +0 -330
  454. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +0 -330
  455. package/dist/packages/icons/dist/node_modules/react/index.cjs +0 -14
  456. package/dist/packages/icons/dist/node_modules/react/index.js +0 -14
  457. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +0 -14
  458. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +0 -14
  459. package/src/contexts/featureFlagContext/featureFlagContext.tsx +0 -180
  460. package/src/contexts/featureFlagContext/index.ts +0 -1
@@ -1,8 +1,12 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_message = require('../../application/models/message.cjs');
3
+ require('../../application/models/index.cjs');
2
4
  const require_amplitudeService = require('../../services/amplitudeService/amplitudeService.cjs');
3
5
  const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
4
- const require_messageQueue = require('../../atoms/chat/messageQueue.cjs');
5
6
  require('../amplitudeContext/index.cjs');
7
+ const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
8
+ const require_messageQueue = require('../../atoms/chat/messageQueue.cjs');
9
+ require('../../atoms/chat/index.cjs');
6
10
  let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
7
11
  let uuid = require("uuid");
8
12
  let react = require("react");
@@ -11,6 +15,8 @@ let jotai = require("jotai");
11
15
  //#region src/contexts/salesAgentContext/chatAPI.ts
12
16
  const useSalesAgentChatAPI = () => {
13
17
  const queueUserEvent = (0, jotai.useSetAtom)(require_messageQueue.queueUserEventAtom);
18
+ const setReplyEventCategory = (0, jotai.useSetAtom)(require_atoms_chat_chatState.replyEventCategoryAtom);
19
+ const setFormSubmit = (0, jotai.useSetAtom)(require_atoms_chat_chatState.formSubmitAtom);
14
20
  const { trackEvent } = require_amplitudeContext.useAmplitude();
15
21
  return {
16
22
  logPageVisit: (0, react.useCallback)(({ pageVisitCategory }) => {
@@ -27,12 +33,20 @@ const useSalesAgentChatAPI = () => {
27
33
  logUserEvent: (0, react.useCallback)((event) => {
28
34
  queueUserEvent(event);
29
35
  }, [queueUserEvent]),
30
- onSuggestionClicked: (0, react.useCallback)((suggestion) => {
36
+ onSuggestionClicked: (0, react.useCallback)((suggestion, displayLocation) => {
31
37
  trackEvent({
32
38
  eventName: require_amplitudeService.SpiffyMetricsEventName.ChatSuggestionClicked,
33
39
  eventProps: {
34
- suggestionId: suggestion.id,
35
- content: suggestion.content
40
+ message_id: suggestion.id,
41
+ message_role: require_message.MessageRole.User,
42
+ message_type: require_message.MessageType.SuggestionClicked,
43
+ message_metadata: {
44
+ content: suggestion.content,
45
+ created_at: suggestion.createdAt,
46
+ category: suggestion.category,
47
+ is_answer: suggestion.isAnswer,
48
+ display_location: displayLocation
49
+ }
36
50
  }
37
51
  });
38
52
  queueUserEvent({
@@ -46,15 +60,24 @@ const useSalesAgentChatAPI = () => {
46
60
  });
47
61
  }, [queueUserEvent, trackEvent]),
48
62
  onTypedMessageSubmitted: (0, react.useCallback)(({ query, userTyped }) => {
63
+ const eventId = (0, uuid.v4)();
49
64
  trackEvent({
50
65
  eventName: require_amplitudeService.SpiffyMetricsEventName.ChatUserMessageInput,
51
66
  eventProps: {
52
67
  query,
53
- userTyped
68
+ user_typed: userTyped,
69
+ message_id: eventId,
70
+ message_role: require_message.MessageRole.User,
71
+ message_type: require_message.MessageType.QueryTyped,
72
+ message_metadata: {
73
+ content: query,
74
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
75
+ user_typed: userTyped
76
+ }
54
77
  }
55
78
  });
56
79
  queueUserEvent({
57
- eventId: (0, uuid.v4)(),
80
+ eventId,
58
81
  category: __spiffy_ai_commerce_api_client.UserEventCategory.QueryTyped,
59
82
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
60
83
  attributes: {
@@ -63,10 +86,23 @@ const useSalesAgentChatAPI = () => {
63
86
  }
64
87
  });
65
88
  }, [queueUserEvent, trackEvent]),
66
- onFormResponseSubmitted: (0, react.useCallback)(() => {}, [])
89
+ onFormResponseSubmitted: (0, react.useCallback)((form) => {
90
+ setReplyEventCategory(__spiffy_ai_commerce_api_client.UserEventCategory.FormSubmitted);
91
+ setFormSubmit(form);
92
+ queueUserEvent({
93
+ eventId: (0, uuid.v4)(),
94
+ category: __spiffy_ai_commerce_api_client.UserEventCategory.FormSubmitted,
95
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
96
+ attributes: form
97
+ });
98
+ }, [
99
+ queueUserEvent,
100
+ setReplyEventCategory,
101
+ setFormSubmit
102
+ ])
67
103
  };
68
104
  };
69
105
 
70
106
  //#endregion
71
107
  exports.useSalesAgentChatAPI = useSalesAgentChatAPI;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJxdWV1ZVVzZXJFdmVudEF0b20iLCJ1c2VBbXBsaXR1ZGUiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBxdWV1ZVVzZXJFdmVudEF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7IHF1ZXJ5OiBzdHJpbmc7IHVzZXJUeXBlZDogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm1SZXNwb25zZTogYW55KSA9PiB2b2lkOyAvLyBUT0RPOiBGaWd1cmUgb3V0IHRoZSByaWdodCB0eXBlXG59XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSSA9ICgpID0+IHtcbiAgLy8gVE9ETzogRWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0cmlnZ2VyIGJvdGggdGhlIG5lY2Vzc2FyeSBhbXBsaXR1ZGUgZXZlbnRzIGFuZCBpbml0aWF0ZSB0aGVcbiAgLy8gbmVjZXNzYXJ5IGFjdGlvbnMgdG8gdHJpZ2dlciB0aGUgYmFja2VuZCBBUElcbiAgY29uc3QgcXVldWVVc2VyRXZlbnQgPSB1c2VTZXRBdG9tKHF1ZXVlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFVzZXJNZXNzYWdlSW5wdXQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGUgZm9ybSByZXNwb25zZSBzdWJtaXR0ZWRcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFrQkEsTUFBYSw2QkFBNkI7Q0FHeEMsTUFBTSx1Q0FBNEJBLHdDQUFtQjtDQUNyRCxNQUFNLEVBQUUsZUFBZUMsdUNBQWM7QUF3RXJDLFFBQU87RUFDTCxzQ0F0RUMsRUFBRSx3QkFBa0U7QUFVbkUsa0JBVHlCO0lBQ3ZCLHVCQUFlO0lBQ2YsVUFBVUMsa0RBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWLEtBQUssT0FBTyxTQUFTO0tBQ3JCO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGVBQWUsQ0FDakI7RUEwREMsc0NBdkRDLFVBQXFCO0FBQ3BCLGtCQUFlLE1BQU07S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBb0RDLDZDQWxEQyxlQUEyQjtBQUMxQixjQUFXO0lBQ1QsV0FBV0MsZ0RBQXVCO0lBQ2xDLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FBQztBQVVGLGtCQVR5QjtJQUN2Qix1QkFBZTtJQUNmLFVBQVVELGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxnQkFBZ0IsV0FBVyxDQUM3QjtFQStCQyxpREE3QkMsRUFBRSxPQUFPLGdCQUF1RDtBQUMvRCxjQUFXO0lBQ1QsV0FBV0MsZ0RBQXVCO0lBQ2xDLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCLHVCQUFlO0lBQ2YsVUFBVUQsa0RBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWO0tBQ0E7S0FDRDtJQUNGLENBQ29CO0tBRXZCLENBQUMsZ0JBQWdCLFdBQVcsQ0FDN0I7RUFVQyxzREFUZ0QsSUFFL0MsRUFBRSxDQUFDO0VBUUwifQ==
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJxdWV1ZVVzZXJFdmVudEF0b20iLCJyZXBseUV2ZW50Q2F0ZWdvcnlBdG9tIiwiZm9ybVN1Ym1pdEF0b20iLCJ1c2VBbXBsaXR1ZGUiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L2NoYXRBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb21wb25lbnQgd2lsbCBpbnRlcmFjdCB3aXRoIHRoZSBiYWNrZW5kIEFQSSB0byBnZXQgdGhlIHJlc3BvbnNlcyBmcm9tIHRoZSBzYWxlcyBhZ2VudC5cblxuaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7XG4gIENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMsXG4gIEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzLFxuICBNZXNzYWdlUm9sZSxcbiAgTWVzc2FnZVR5cGUsXG4gIFN1Z2dlc3Rpb24sXG4gIFVzZXJFdmVudCxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBmb3JtU3VibWl0QXRvbSwgcmVwbHlFdmVudENhdGVnb3J5QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0JztcbmltcG9ydCB7IHF1ZXVlVXNlckV2ZW50QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCB1c2VBbXBsaXR1ZGUgfSBmcm9tICcuLi9hbXBsaXR1ZGVDb250ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4gdm9pZDtcbiAgbG9nVXNlckV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gdm9pZDtcbiAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKFxuICAgIHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sXG4gICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICApID0+IHZvaWQ7XG4gIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkOiAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHZvaWQ7XG4gIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybVJlc3BvbnNlOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRDaGF0QVBJID0gKCkgPT4ge1xuICAvLyBUT0RPOiBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRyaWdnZXIgYm90aCB0aGUgbmVjZXNzYXJ5IGFtcGxpdHVkZSBldmVudHMgYW5kIGluaXRpYXRlIHRoZVxuICAvLyBuZWNlc3NhcnkgYWN0aW9ucyB0byB0cmlnZ2VyIHRoZSBiYWNrZW5kIEFQSVxuICBjb25zdCBxdWV1ZVVzZXJFdmVudCA9IHVzZVNldEF0b20ocXVldWVVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3Qgc2V0UmVwbHlFdmVudENhdGVnb3J5ID0gdXNlU2V0QXRvbShyZXBseUV2ZW50Q2F0ZWdvcnlBdG9tKTtcbiAgY29uc3Qgc2V0Rm9ybVN1Ym1pdCA9IHVzZVNldEF0b20oZm9ybVN1Ym1pdEF0b20pO1xuICBjb25zdCB7IHRyYWNrRXZlbnQgfSA9IHVzZUFtcGxpdHVkZSgpO1xuXG4gIGNvbnN0IGxvZ1BhZ2VWaXNpdCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgbG9nVXNlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBVc2VyRXZlbnQpID0+IHtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uU3VnZ2VzdGlvbkNsaWNrZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbiwgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzKSA9PiB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIG1lc3NhZ2VfaWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogc3VnZ2VzdGlvbi5jcmVhdGVkQXQsXG4gICAgICAgICAgICBjYXRlZ29yeTogc3VnZ2VzdGlvbi5jYXRlZ29yeSxcbiAgICAgICAgICAgIGlzX2Fuc3dlcjogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAgIGRpc3BsYXlfbG9jYXRpb246IGRpc3BsYXlMb2NhdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBzdWdnZXN0aW9uSWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7IHF1ZXJ5OiBzdHJpbmc7IHVzZXJUeXBlZDogYm9vbGVhbiB9KSA9PiB7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0VXNlck1lc3NhZ2VJbnB1dCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX2lkOiBldmVudElkLFxuICAgICAgICAgIG1lc3NhZ2Vfcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogcXVlcnksXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB1c2VyX3R5cGVkOiB1c2VyVHlwZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB7XG4gICAgICBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkoVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCk7XG4gICAgICBzZXRGb3JtU3VibWl0KGZvcm0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IGZvcm0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCBzZXRSZXBseUV2ZW50Q2F0ZWdvcnksIHNldEZvcm1TdWJtaXRdLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJBLE1BQWEsNkJBQTZCO0NBR3hDLE1BQU0sdUNBQTRCQSx3Q0FBbUI7Q0FDckQsTUFBTSw4Q0FBbUNDLG9EQUF1QjtDQUNoRSxNQUFNLHNDQUEyQkMsNENBQWU7Q0FDaEQsTUFBTSxFQUFFLGVBQWVDLHVDQUFjO0FBb0dyQyxRQUFPO0VBQ0wsc0NBbEdDLEVBQUUsd0JBQWtFO0FBVW5FLGtCQVR5QjtJQUN2Qix1QkFBZTtJQUNmLFVBQVVDLGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixLQUFLLE9BQU8sU0FBUztLQUNyQjtLQUNEO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBc0ZDLHNDQW5GQyxVQUFxQjtBQUNwQixrQkFBZSxNQUFNO0tBRXZCLENBQUMsZUFBZSxDQUNqQjtFQWdGQyw2Q0E5RUMsWUFBd0Isb0JBQWtEO0FBQ3pFLGNBQVc7SUFDVCxXQUFXQyxnREFBdUI7SUFDbEMsWUFBWTtLQUNWLFlBQVksV0FBVztLQUN2QixjQUFjQyw0QkFBWTtLQUMxQixjQUFjQyw0QkFBWTtLQUMxQixrQkFBa0I7TUFDaEIsU0FBUyxXQUFXO01BQ3BCLFlBQVksV0FBVztNQUN2QixVQUFVLFdBQVc7TUFDckIsV0FBVyxXQUFXO01BQ3RCLGtCQUFrQjtNQUNuQjtLQUNGO0lBQ0YsQ0FBQztBQVVGLGtCQVR5QjtJQUN2Qix1QkFBZTtJQUNmLFVBQVVILGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxnQkFBZ0IsV0FBVyxDQUM3QjtFQW1EQyxpREFqREMsRUFBRSxPQUFPLGdCQUF1RDtHQUMvRCxNQUFNLHdCQUFnQjtBQUN0QixjQUFXO0lBQ1QsV0FBV0MsZ0RBQXVCO0lBQ2xDLFlBQVk7S0FDVjtLQUNBLFlBQVk7S0FDWixZQUFZO0tBQ1osY0FBY0MsNEJBQVk7S0FDMUIsY0FBY0MsNEJBQVk7S0FDMUIsa0JBQWtCO01BQ2hCLFNBQVM7TUFDVCw2QkFBWSxJQUFJLE1BQU0sRUFBQyxhQUFhO01BQ3BDLFlBQVk7TUFDYjtLQUNGO0lBQ0YsQ0FBQztBQVVGLGtCQVR5QjtJQUN2QjtJQUNBLFVBQVVILGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGdCQUFnQixXQUFXLENBQzdCO0VBcUJDLGlEQW5CQyxTQUFrQztBQUNqQyx5QkFBc0JBLGtEQUFrQixjQUFjO0FBQ3RELGlCQUFjLEtBQUs7QUFPbkIsa0JBTnlCO0lBQ3ZCLHVCQUFlO0lBQ2YsVUFBVUEsa0RBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtJQUNiLENBQ29CO0tBRXZCO0dBQUM7R0FBZ0I7R0FBdUI7R0FBYyxDQUN2RDtFQVFBIn0=
@@ -1,4 +1,5 @@
1
- import { UserEvent as UserEvent$1 } from "../../application/models/api/userEvent.cjs";
1
+ import { ChatElementDisplayLocationV3 } from "../../application/models/chatElementDisplayLocationV3.cjs";
2
+ import { FormSubmittedAttributes as FormSubmittedAttributes$1, UserEvent as UserEvent$1 } from "../../application/models/api/userEvent.cjs";
2
3
  import { Suggestion as Suggestion$1 } from "../../application/models/api/suggestion.cjs";
3
4
  import { PageVisitCategory } from "@spiffy-ai/commerce-api-client";
4
5
 
@@ -10,7 +11,7 @@ interface SalesAgentChatAPI {
10
11
  pageVisitCategory: PageVisitCategory;
11
12
  }) => void;
12
13
  logUserEvent: (event: UserEvent$1) => void;
13
- onSuggestionClicked: (suggestion: Suggestion$1) => void;
14
+ onSuggestionClicked: (suggestion: Suggestion$1, displayLocation: ChatElementDisplayLocationV3) => void;
14
15
  onTypedMessageSubmitted: ({
15
16
  query,
16
17
  userTyped
@@ -18,7 +19,7 @@ interface SalesAgentChatAPI {
18
19
  query: string;
19
20
  userTyped: boolean;
20
21
  }) => void;
21
- onFormResponseSubmitted: (formResponse: any) => void;
22
+ onFormResponseSubmitted: (formResponse: FormSubmittedAttributes$1) => void;
22
23
  }
23
24
  declare const useSalesAgentChatAPI: () => {
24
25
  logPageVisit: ({
@@ -27,7 +28,7 @@ declare const useSalesAgentChatAPI: () => {
27
28
  pageVisitCategory: PageVisitCategory;
28
29
  }) => void;
29
30
  logUserEvent: (event: UserEvent$1) => void;
30
- onSuggestionClicked: (suggestion: Suggestion$1) => void;
31
+ onSuggestionClicked: (suggestion: Suggestion$1, displayLocation: ChatElementDisplayLocationV3) => void;
31
32
  onTypedMessageSubmitted: ({
32
33
  query,
33
34
  userTyped
@@ -35,8 +36,8 @@ declare const useSalesAgentChatAPI: () => {
35
36
  query: string;
36
37
  userTyped: boolean;
37
38
  }) => void;
38
- onFormResponseSubmitted: () => void;
39
+ onFormResponseSubmitted: (form: FormSubmittedAttributes$1) => void;
39
40
  };
40
41
  //#endregion
41
42
  export { SalesAgentChatAPI, useSalesAgentChatAPI };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VWaXNpdENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gICAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7XG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeTtcbiAgICB9KSA9PiB2b2lkO1xuICAgIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24pID0+IHZvaWQ7XG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7IHF1ZXJ5LCB1c2VyVHlwZWQgfToge1xuICAgICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgfSkgPT4gdm9pZDtcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm1SZXNwb25zZTogYW55KSA9PiB2b2lkO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2FsZXNBZ2VudENoYXRBUEk6ICgpID0+IHtcbiAgICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHtcbiAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5O1xuICAgIH0pID0+IHZvaWQ7XG4gICAgbG9nVXNlckV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gdm9pZDtcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbikgPT4gdm9pZDtcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7XG4gICAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICB9KSA9PiB2b2lkO1xuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoKSA9PiB2b2lkO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxJQUFXLG9CQUFvQjtDQUFDO09BQUc7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkMsSUFBVyx1QkFBdUI7Q0FBQztPQUFPO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VWaXNpdENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMsIEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzLCBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICAgIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfToge1xuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG4gICAgfSkgPT4gdm9pZDtcbiAgICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLCBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMpID0+IHZvaWQ7XG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7IHF1ZXJ5LCB1c2VyVHlwZWQgfToge1xuICAgICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgfSkgPT4gdm9pZDtcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm1SZXNwb25zZTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHZvaWQ7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSTogKCkgPT4ge1xuICAgIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfToge1xuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG4gICAgfSkgPT4gdm9pZDtcbiAgICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLCBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMpID0+IHZvaWQ7XG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7IHF1ZXJ5LCB1c2VyVHlwZWQgfToge1xuICAgICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgfSkgPT4gdm9pZDtcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm06IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB2b2lkO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBVyxvQkFBb0I7Q0FBQztPQUFHO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQyxJQUFXLHVCQUF1QjtDQUFDO09BQU87T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
@@ -1,4 +1,5 @@
1
- import { UserEvent as UserEvent$1 } from "../../application/models/api/userEvent.js";
1
+ import { ChatElementDisplayLocationV3 } from "../../application/models/chatElementDisplayLocationV3.js";
2
+ import { FormSubmittedAttributes as FormSubmittedAttributes$1, UserEvent as UserEvent$1 } from "../../application/models/api/userEvent.js";
2
3
  import { Suggestion as Suggestion$1 } from "../../application/models/api/suggestion.js";
3
4
  import { PageVisitCategory } from "@spiffy-ai/commerce-api-client";
4
5
 
@@ -10,7 +11,7 @@ interface SalesAgentChatAPI {
10
11
  pageVisitCategory: PageVisitCategory;
11
12
  }) => void;
12
13
  logUserEvent: (event: UserEvent$1) => void;
13
- onSuggestionClicked: (suggestion: Suggestion$1) => void;
14
+ onSuggestionClicked: (suggestion: Suggestion$1, displayLocation: ChatElementDisplayLocationV3) => void;
14
15
  onTypedMessageSubmitted: ({
15
16
  query,
16
17
  userTyped
@@ -18,7 +19,7 @@ interface SalesAgentChatAPI {
18
19
  query: string;
19
20
  userTyped: boolean;
20
21
  }) => void;
21
- onFormResponseSubmitted: (formResponse: any) => void;
22
+ onFormResponseSubmitted: (formResponse: FormSubmittedAttributes$1) => void;
22
23
  }
23
24
  declare const useSalesAgentChatAPI: () => {
24
25
  logPageVisit: ({
@@ -27,7 +28,7 @@ declare const useSalesAgentChatAPI: () => {
27
28
  pageVisitCategory: PageVisitCategory;
28
29
  }) => void;
29
30
  logUserEvent: (event: UserEvent$1) => void;
30
- onSuggestionClicked: (suggestion: Suggestion$1) => void;
31
+ onSuggestionClicked: (suggestion: Suggestion$1, displayLocation: ChatElementDisplayLocationV3) => void;
31
32
  onTypedMessageSubmitted: ({
32
33
  query,
33
34
  userTyped
@@ -35,8 +36,8 @@ declare const useSalesAgentChatAPI: () => {
35
36
  query: string;
36
37
  userTyped: boolean;
37
38
  }) => void;
38
- onFormResponseSubmitted: () => void;
39
+ onFormResponseSubmitted: (form: FormSubmittedAttributes$1) => void;
39
40
  };
40
41
  //#endregion
41
42
  export { SalesAgentChatAPI, useSalesAgentChatAPI };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHtcbiAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5O1xuICAgIH0pID0+IHZvaWQ7XG4gICAgbG9nVXNlckV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gdm9pZDtcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbikgPT4gdm9pZDtcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7XG4gICAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICB9KSA9PiB2b2lkO1xuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybVJlc3BvbnNlOiBhbnkpID0+IHZvaWQ7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSTogKCkgPT4ge1xuICAgIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfToge1xuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG4gICAgfSkgPT4gdm9pZDtcbiAgICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB2b2lkO1xuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkOiAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHtcbiAgICAgICAgcXVlcnk6IHN0cmluZztcbiAgICAgICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgIH0pID0+IHZvaWQ7XG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQ6ICgpID0+IHZvaWQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQVcsb0JBQW9CO0NBQUM7T0FBRztPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQyxJQUFXLHVCQUF1QjtDQUFDO09BQU87T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMywgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsIFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gICAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7XG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeTtcbiAgICB9KSA9PiB2b2lkO1xuICAgIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMykgPT4gdm9pZDtcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7XG4gICAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICB9KSA9PiB2b2lkO1xuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybVJlc3BvbnNlOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNhbGVzQWdlbnRDaGF0QVBJOiAoKSA9PiB7XG4gICAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7XG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeTtcbiAgICB9KSA9PiB2b2lkO1xuICAgIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMykgPT4gdm9pZDtcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7XG4gICAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICB9KSA9PiB2b2lkO1xuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHZvaWQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFXLG9CQUFvQjtDQUFDO09BQUc7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ25DLElBQVcsdUJBQXVCO0NBQUM7T0FBTztPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
@@ -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 }) => {
@@ -26,12 +32,20 @@ const useSalesAgentChatAPI = () => {
26
32
  logUserEvent: useCallback((event) => {
27
33
  queueUserEvent(event);
28
34
  }, [queueUserEvent]),
29
- onSuggestionClicked: useCallback((suggestion) => {
35
+ onSuggestionClicked: useCallback((suggestion, displayLocation) => {
30
36
  trackEvent({
31
37
  eventName: SpiffyMetricsEventName.ChatSuggestionClicked,
32
38
  eventProps: {
33
- suggestionId: suggestion.id,
34
- content: suggestion.content
39
+ message_id: suggestion.id,
40
+ message_role: MessageRole.User,
41
+ message_type: MessageType.SuggestionClicked,
42
+ message_metadata: {
43
+ content: suggestion.content,
44
+ created_at: suggestion.createdAt,
45
+ category: suggestion.category,
46
+ is_answer: suggestion.isAnswer,
47
+ display_location: displayLocation
48
+ }
35
49
  }
36
50
  });
37
51
  queueUserEvent({
@@ -45,15 +59,24 @@ const useSalesAgentChatAPI = () => {
45
59
  });
46
60
  }, [queueUserEvent, trackEvent]),
47
61
  onTypedMessageSubmitted: useCallback(({ query, userTyped }) => {
62
+ const eventId = v4();
48
63
  trackEvent({
49
64
  eventName: SpiffyMetricsEventName.ChatUserMessageInput,
50
65
  eventProps: {
51
66
  query,
52
- userTyped
67
+ user_typed: userTyped,
68
+ message_id: eventId,
69
+ message_role: MessageRole.User,
70
+ message_type: MessageType.QueryTyped,
71
+ message_metadata: {
72
+ content: query,
73
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
74
+ user_typed: userTyped
75
+ }
53
76
  }
54
77
  });
55
78
  queueUserEvent({
56
- eventId: v4(),
79
+ eventId,
57
80
  category: UserEventCategory.QueryTyped,
58
81
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
59
82
  attributes: {
@@ -62,10 +85,23 @@ const useSalesAgentChatAPI = () => {
62
85
  }
63
86
  });
64
87
  }, [queueUserEvent, trackEvent]),
65
- onFormResponseSubmitted: useCallback(() => {}, [])
88
+ onFormResponseSubmitted: useCallback((form) => {
89
+ setReplyEventCategory(UserEventCategory.FormSubmitted);
90
+ setFormSubmit(form);
91
+ queueUserEvent({
92
+ eventId: v4(),
93
+ category: UserEventCategory.FormSubmitted,
94
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
95
+ attributes: form
96
+ });
97
+ }, [
98
+ queueUserEvent,
99
+ setReplyEventCategory,
100
+ setFormSubmit
101
+ ])
66
102
  };
67
103
  };
68
104
 
69
105
  //#endregion
70
106
  export { useSalesAgentChatAPI };
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBxdWV1ZVVzZXJFdmVudEF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIGxvZ1VzZXJFdmVudDogKGV2ZW50OiBVc2VyRXZlbnQpID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnksIHVzZXJUeXBlZCB9OiB7IHF1ZXJ5OiBzdHJpbmc7IHVzZXJUeXBlZDogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZDogKGZvcm1SZXNwb25zZTogYW55KSA9PiB2b2lkOyAvLyBUT0RPOiBGaWd1cmUgb3V0IHRoZSByaWdodCB0eXBlXG59XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSSA9ICgpID0+IHtcbiAgLy8gVE9ETzogRWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMgd2lsbCB0cmlnZ2VyIGJvdGggdGhlIG5lY2Vzc2FyeSBhbXBsaXR1ZGUgZXZlbnRzIGFuZCBpbml0aWF0ZSB0aGVcbiAgLy8gbmVjZXNzYXJ5IGFjdGlvbnMgdG8gdHJpZ2dlciB0aGUgYmFja2VuZCBBUElcbiAgY29uc3QgcXVldWVVc2VyRXZlbnQgPSB1c2VTZXRBdG9tKHF1ZXVlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRTdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFVzZXJNZXNzYWdlSW5wdXQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGUgZm9ybSByZXNwb25zZSBzdWJtaXR0ZWRcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQWtCQSxNQUFhLDZCQUE2QjtDQUd4QyxNQUFNLGlCQUFpQixXQUFXLG1CQUFtQjtDQUNyRCxNQUFNLEVBQUUsZUFBZSxjQUFjO0FBd0VyQyxRQUFPO0VBQ0wsY0F2RW1CLGFBQ2xCLEVBQUUsd0JBQWtFO0FBVW5FLGtCQVR5QjtJQUN2QixTQUFTQSxJQUFNO0lBQ2YsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0tBQ1YsS0FBSyxPQUFPLFNBQVM7S0FDckI7S0FDRDtJQUNGLENBQ29CO0tBRXZCLENBQUMsZUFBZSxDQUNqQjtFQTBEQyxjQXhEbUIsYUFDbEIsVUFBcUI7QUFDcEIsa0JBQWUsTUFBTTtLQUV2QixDQUFDLGVBQWUsQ0FDakI7RUFvREMscUJBbkQwQixhQUN6QixlQUEyQjtBQUMxQixjQUFXO0lBQ1QsV0FBVyx1QkFBdUI7SUFDbEMsWUFBWTtLQUNWLGNBQWMsV0FBVztLQUN6QixTQUFTLFdBQVc7S0FDckI7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCLFNBQVNBLElBQU07SUFDZixVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixjQUFjLFdBQVc7S0FDekIsU0FBUyxXQUFXO0tBQ3JCO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxnQkFBZ0IsV0FBVyxDQUM3QjtFQStCQyx5QkE5QjhCLGFBQzdCLEVBQUUsT0FBTyxnQkFBdUQ7QUFDL0QsY0FBVztJQUNULFdBQVcsdUJBQXVCO0lBQ2xDLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCLFNBQVNBLElBQU07SUFDZixVQUFVLGtCQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVjtLQUNBO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGdCQUFnQixXQUFXLENBQzdCO0VBVUMseUJBVDhCLGtCQUFrQixJQUUvQyxFQUFFLENBQUM7RUFRTCJ9
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5qcyIsIm5hbWVzIjpbInV1aWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgU3VnZ2VzdGlvbixcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IGZvcm1TdWJtaXRBdG9tLCByZXBseUV2ZW50Q2F0ZWdvcnlBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2NoYXQnO1xuaW1wb3J0IHsgcXVldWVVc2VyRXZlbnRBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlJztcbmltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIHVzZUFtcGxpdHVkZSB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB2b2lkO1xuICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoXG4gICAgc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbixcbiAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMsXG4gICkgPT4gdm9pZDtcbiAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7IHF1ZXJ5LCB1c2VyVHlwZWQgfTogeyBxdWVyeTogc3RyaW5nOyB1c2VyVHlwZWQ6IGJvb2xlYW4gfSkgPT4gdm9pZDtcbiAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQ6IChmb3JtUmVzcG9uc2U6IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudENoYXRBUEkgPSAoKSA9PiB7XG4gIC8vIFRPRE86IEVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgdHJpZ2dlciBib3RoIHRoZSBuZWNlc3NhcnkgYW1wbGl0dWRlIGV2ZW50cyBhbmQgaW5pdGlhdGUgdGhlXG4gIC8vIG5lY2Vzc2FyeSBhY3Rpb25zIHRvIHRyaWdnZXIgdGhlIGJhY2tlbmQgQVBJXG4gIGNvbnN0IHF1ZXVlVXNlckV2ZW50ID0gdXNlU2V0QXRvbShxdWV1ZVVzZXJFdmVudEF0b20pO1xuICBjb25zdCBzZXRSZXBseUV2ZW50Q2F0ZWdvcnkgPSB1c2VTZXRBdG9tKHJlcGx5RXZlbnRDYXRlZ29yeUF0b20pO1xuICBjb25zdCBzZXRGb3JtU3VibWl0ID0gdXNlU2V0QXRvbShmb3JtU3VibWl0QXRvbSk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICBjb25zdCBsb2dVc2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFVzZXJFdmVudCkgPT4ge1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25TdWdnZXN0aW9uQ2xpY2tlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uLCBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMpID0+IHtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgbWVzc2FnZV9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBtZXNzYWdlX3JvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgbWVzc2FnZV90eXBlOiBNZXNzYWdlVHlwZS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICAgaXNfYW5zd2VyOiBzdWdnZXN0aW9uLmlzQW5zd2VyLFxuICAgICAgICAgICAgZGlzcGxheV9sb2NhdGlvbjogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSwgdXNlclR5cGVkIH06IHsgcXVlcnk6IHN0cmluZzsgdXNlclR5cGVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRVc2VyTWVzc2FnZUlucHV0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlcl90eXBlZDogdXNlclR5cGVkLFxuICAgICAgICAgIG1lc3NhZ2VfaWQ6IGV2ZW50SWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBxdWVyeSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50XSxcbiAgKTtcbiAgY29uc3Qgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHtcbiAgICAgIHNldFJlcGx5RXZlbnRDYXRlZ29yeShVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKTtcbiAgICAgIHNldEZvcm1TdWJtaXQoZm9ybSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczogZm9ybSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnQsIHNldFJlcGx5RXZlbnRDYXRlZ29yeSwgc2V0Rm9ybVN1Ym1pdF0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQTZCQSxNQUFhLDZCQUE2QjtDQUd4QyxNQUFNLGlCQUFpQixXQUFXLG1CQUFtQjtDQUNyRCxNQUFNLHdCQUF3QixXQUFXLHVCQUF1QjtDQUNoRSxNQUFNLGdCQUFnQixXQUFXLGVBQWU7Q0FDaEQsTUFBTSxFQUFFLGVBQWUsY0FBYztBQW9HckMsUUFBTztFQUNMLGNBbkdtQixhQUNsQixFQUFFLHdCQUFrRTtBQVVuRSxrQkFUeUI7SUFDdkIsU0FBU0EsSUFBTTtJQUNmLFVBQVUsa0JBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWLEtBQUssT0FBTyxTQUFTO0tBQ3JCO0tBQ0Q7SUFDRixDQUNvQjtLQUV2QixDQUFDLGVBQWUsQ0FDakI7RUFzRkMsY0FwRm1CLGFBQ2xCLFVBQXFCO0FBQ3BCLGtCQUFlLE1BQU07S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBZ0ZDLHFCQS9FMEIsYUFDekIsWUFBd0Isb0JBQWtEO0FBQ3pFLGNBQVc7SUFDVCxXQUFXLHVCQUF1QjtJQUNsQyxZQUFZO0tBQ1YsWUFBWSxXQUFXO0tBQ3ZCLGNBQWMsWUFBWTtLQUMxQixjQUFjLFlBQVk7S0FDMUIsa0JBQWtCO01BQ2hCLFNBQVMsV0FBVztNQUNwQixZQUFZLFdBQVc7TUFDdkIsVUFBVSxXQUFXO01BQ3JCLFdBQVcsV0FBVztNQUN0QixrQkFBa0I7TUFDbkI7S0FDRjtJQUNGLENBQUM7QUFVRixrQkFUeUI7SUFDdkIsU0FBU0EsSUFBTTtJQUNmLFVBQVUsa0JBQWtCO0lBQzVCLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDbkMsWUFBWTtLQUNWLGNBQWMsV0FBVztLQUN6QixTQUFTLFdBQVc7S0FDckI7SUFDRixDQUNvQjtLQUV2QixDQUFDLGdCQUFnQixXQUFXLENBQzdCO0VBbURDLHlCQWxEOEIsYUFDN0IsRUFBRSxPQUFPLGdCQUF1RDtHQUMvRCxNQUFNLFVBQVVBLElBQU07QUFDdEIsY0FBVztJQUNULFdBQVcsdUJBQXVCO0lBQ2xDLFlBQVk7S0FDVjtLQUNBLFlBQVk7S0FDWixZQUFZO0tBQ1osY0FBYyxZQUFZO0tBQzFCLGNBQWMsWUFBWTtLQUMxQixrQkFBa0I7TUFDaEIsU0FBUztNQUNULDZCQUFZLElBQUksTUFBTSxFQUFDLGFBQWE7TUFDcEMsWUFBWTtNQUNiO0tBQ0Y7SUFDRixDQUFDO0FBVUYsa0JBVHlCO0lBQ3ZCO0lBQ0EsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0tBQ1Y7S0FDQTtLQUNEO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxnQkFBZ0IsV0FBVyxDQUM3QjtFQXFCQyx5QkFwQjhCLGFBQzdCLFNBQWtDO0FBQ2pDLHlCQUFzQixrQkFBa0IsY0FBYztBQUN0RCxpQkFBYyxLQUFLO0FBT25CLGtCQU55QjtJQUN2QixTQUFTQSxJQUFNO0lBQ2YsVUFBVSxrQkFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZO0lBQ2IsQ0FDb0I7S0FFdkI7R0FBQztHQUFnQjtHQUF1QjtHQUFjLENBQ3ZEO0VBUUEifQ==
@@ -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,29 @@ 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
+ const isSendingRef = (0, react.useRef)(false);
28
+ (0, react.useEffect)(() => {
29
+ if (previewMode && mockData) {
30
+ if (mockData.messages) setMessages(mockData.messages);
31
+ if (mockData.suggestions) setSuggestions(mockData.suggestions);
32
+ setIsInitialized(true);
33
+ }
34
+ }, [
35
+ previewMode,
36
+ mockData,
37
+ setMessages,
38
+ setSuggestions,
39
+ setIsInitialized
40
+ ]);
25
41
  const sendMessagesToBackend = (0, react.useCallback)(async (requestPayload) => {
26
42
  try {
27
43
  await getStreamingResponses(requestPayload);
@@ -36,7 +52,9 @@ const SalesAgentProvider = ({ children }) => {
36
52
  markUserEventsProcessed
37
53
  ]);
38
54
  (0, react.useEffect)(() => {
39
- if (userQueueEventCount > 0) {
55
+ if (previewMode) return;
56
+ if (userQueueEventCount > 0 && !isSendingRef.current) {
57
+ isSendingRef.current = true;
40
58
  const payloadEvents = userEvents.slice(0, userQueueEventCount);
41
59
  payloadEvents.forEach((userEvent) => {
42
60
  if (userEvent && userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.QueryTyped) {
@@ -59,11 +77,20 @@ const SalesAgentProvider = ({ children }) => {
59
77
  };
60
78
  setMessages((current) => [...current, [newMessage]]);
61
79
  }
80
+ if (userEvent && userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.FormSubmitted) {
81
+ const { formResponseId, filledSchema } = userEvent.attributes;
82
+ setMessages((prevMessagesState) => {
83
+ const newUserMessage = require_formSubmittedUtils.createFormSubmittedUserMessage(userEvent, require_formSubmittedUtils.buildFormSubmittedDisplayContent(prevMessagesState, formResponseId, filledSchema));
84
+ return [...prevMessagesState.map((turn) => turn.filter((msg) => !(msg.type === require_message.MessageType.Form && msg.id === formResponseId))).filter((turn) => turn.length > 0), [newUserMessage]];
85
+ });
86
+ }
62
87
  });
63
88
  sendMessagesToBackend(createResponsePayload({
64
89
  userEvents: payloadEvents,
65
90
  generationParams: settingsContext.generationParams
66
- }));
91
+ })).finally(() => {
92
+ isSendingRef.current = false;
93
+ });
67
94
  } else if (isInitialized) getSuggestions(createResponsePayload({
68
95
  userEvents: [],
69
96
  generationParams: settingsContext.generationParams
@@ -76,11 +103,17 @@ const SalesAgentProvider = ({ children }) => {
76
103
  sendMessagesToBackend,
77
104
  settingsContext.generationParams,
78
105
  userEvents,
79
- userQueueEventCount
106
+ userQueueEventCount,
107
+ previewMode
80
108
  ]);
81
109
  (0, react.useEffect)(() => {
110
+ if (previewMode) return;
82
111
  if (isInitialized) hydrateMessages();
83
- }, [isInitialized, hydrateMessages]);
112
+ }, [
113
+ isInitialized,
114
+ hydrateMessages,
115
+ previewMode
116
+ ]);
84
117
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SalesAgentContext.Provider, {
85
118
  value: void 0,
86
119
  children
@@ -126,4 +159,4 @@ const useSalesAgent = () => {
126
159
  //#endregion
127
160
  exports.SalesAgentProvider = SalesAgentProvider;
128
161
  exports.useSalesAgent = useSalesAgent;
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwic3VnZ2VzdGlvbnNBdG9tIiwicmVzcG9uc2VTdHJlYW1pbmdBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInVzZVNhbGVzQWdlbnRDaGF0QVBJIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VBdG9tLCB1c2VBdG9tVmFsdWUsIHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlUm9sZSwgTWVzc2FnZVR5cGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UnO1xuaW1wb3J0IHsgTmV4dE1lc3NhZ2VSZXF1ZXN0LCBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7XG4gIGluaXRpYWxpemVkQXRvbSxcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXNwb25zZVN0cmVhbWluZ0F0b20sXG4gIHN1Z2dlc3Rpb25zQXRvbSxcbn0gZnJvbSAnc3JjL2F0b21zL2NoYXQvY2hhdFN0YXRlJztcbmltcG9ydCB7XG4gIHByb2Nlc3NVc2VyRXZlbnRBdG9tLFxuICB1c2VyRXZlbnRRdWV1ZUF0b20sXG4gIHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9tZXNzYWdlUXVldWUnO1xuaW1wb3J0IHsgdXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IH0gZnJvbSAnc3JjL2hvb2tzL1N5c3RlbVNldHRpbmdzQ29udGV4dCc7XG5pbXBvcnQgeyBTYWxlc0FnZW50Q2hhdEFQSSwgdXNlU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuaW1wb3J0IHsgdXNlU2FsZXNBZ2VudFNlcnZpY2UgfSBmcm9tICcuL3NhbGVzQWdlbnRTZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAvLyBNZXNzYWdlcyBhcmUgdGhlIGZ1bGwgbGlzdCBvZiBhbGwgdHVybnNcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICAvLyBQZW5kaW5nIG1lc3NhZ2VzIGFyZSBtZXNzYWdlcyB0aGF0IHRoZSB1c2VyIGhhcyBjbGlja2VkL3R5cGVkIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50IHRvIHRoZSBiYWNrZW5kLlxuICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAvLyBTdWdnZXN0aW9ucyBhcmUgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnMgdGhhdCB0aGUgdXNlciBjYW4gY2xpY2sgb24gaW4gcmVzcG9uc2UgdG8gdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2UgZnJvbSB0aGUgYmFja2VuZFxuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBzdHJlYW1pbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1Jlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAvLyBUcnVlIHdoaWxlIHRoZSByZXNwb25zZSBpcyBwZW5kaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hlbiB0aGUgc2FsZXMgYWdlbnQgaXMgaW5pdGlhbGl6ZWRcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cblxuY29uc3QgU2FsZXNBZ2VudENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNhbGVzQWdlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgdXNlckV2ZW50cyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCB1c2VyUXVldWVFdmVudENvdW50ID0gdXNlQXRvbVZhbHVlKHVzZXJRdWV1ZUV2ZW50Q291bnRBdG9tKTtcbiAgY29uc3QgbWFya1VzZXJFdmVudHNQcm9jZXNzZWQgPSB1c2VTZXRBdG9tKHByb2Nlc3NVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlQXRvbShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCBzZXR0aW5nc0NvbnRleHQgPSB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQoKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG5cbiAgY29uc3QgeyBnZXRTdHJlYW1pbmdSZXNwb25zZXMsIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCwgZ2V0U3VnZ2VzdGlvbnMsIGh5ZHJhdGVNZXNzYWdlcyB9ID1cbiAgICB1c2VTYWxlc0FnZW50U2VydmljZSgpO1xuXG4gIC8vIFRPRE86IEVuc3VyZSB0aGF0IGFtcGxpdHVkZSBldmVudHMgYXJlIGJlaW5nIGVtaXR0ZWRcblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHN0cmVhbWluZyByZXNwb25zZXMgdG8gZnVuY3Rpb25cblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBvbiBpbml0aWFsaXphdGlvblxuICBjb25zdCBzZW5kTWVzc2FnZXNUb0JhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdFBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzKHJlcXVlc3RQYXlsb2FkKTtcbiAgICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHRoZSB1c2VyIGV2ZW50c1xuICAgICAgICByZXF1ZXN0UGF5bG9hZC51c2VyRXZlbnRzPy5tYXAodXNlckV2ZW50ID0+IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkKFt1c2VyRXZlbnQuZXZlbnRJZF0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignW2Vudml2ZS1haV0gZXJyb3Igc2VuZGluZyBtZXNzYWdlJywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2dldFN0cmVhbWluZ1Jlc3BvbnNlcywgc2V0SXNJbml0aWFsaXplZCwgbWFya1VzZXJFdmVudHNQcm9jZXNzZWRdLFxuICApO1xuXG4gIC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgZXZlbnQgbG9vcCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBiYWNrZW5kIEFQSVxuICAvLyBJdCB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIG1lc3NhZ2VzIHRvIGJlIHNlbnQgdG8gdGhlIGJhY2tlbmRcbiAgLy8gSXQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmQgYW5kIHJlY2VpdmluZyB0aGUgcmVzcG9uc2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHVzZXJRdWV1ZUV2ZW50Q291bnQgPiAwKSB7XG4gICAgICBjb25zdCBwYXlsb2FkRXZlbnRzID0gdXNlckV2ZW50cy5zbGljZSgwLCB1c2VyUXVldWVFdmVudENvdW50KTtcblxuICAgICAgcGF5bG9hZEV2ZW50cy5mb3JFYWNoKHVzZXJFdmVudCA9PiB7XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGlkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiB1c2VyRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgY29udGVudDogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZChcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkRXZlbnRzLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc0luaXRpYWxpemVkKSB7XG4gICAgICBnZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBbXSxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIHNldE1lc3NhZ2VzLFxuICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZCxcbiAgICBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB1c2VyRXZlbnRzLFxuICAgIHVzZXJRdWV1ZUV2ZW50Q291bnQsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIC8vIFJlaHlkcmF0ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZFxuICAgICAgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgfVxuICB9LCBbaXNJbml0aWFsaXplZCwgaHlkcmF0ZU1lc3NhZ2VzXSk7XG5cbiAgcmV0dXJuIDxTYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dW5kZWZpbmVkfT57Y2hpbGRyZW59PC9TYWxlc0FnZW50Q29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudCA9ICgpOiBTYWxlc0FnZW50ID0+IHtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUobWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB1c2VBdG9tVmFsdWUoc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3QgcGVuZGluZ01lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IGlzUmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VBdG9tVmFsdWUocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgaXNQZW5kaW5nUmVzcG9uc2UgPSB1c2VBdG9tVmFsdWUocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IGlzSW5pdGlhbGl6ZWQgPSB1c2VBdG9tVmFsdWUoaW5pdGlhbGl6ZWRBdG9tKTtcbiAgY29uc3Qge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfSA9IHVzZVNhbGVzQWdlbnRDaGF0QVBJKCk7XG5cbiAgY29uc3Qgc2FsZXNBZ2VudDogU2FsZXNBZ2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHN1Z2dlc3Rpb25zLFxuICAgICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgICAgaXNJbml0aWFsaXplZCxcbiAgICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICAgIGxvZ1VzZXJFdmVudCxcbiAgICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICAgIH07XG4gIH0sIFtcbiAgICBtZXNzYWdlcyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgaXNJbml0aWFsaXplZCxcbiAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgXSk7XG4gIHJldHVybiBzYWxlc0FnZW50O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBcUNBLE1BQU0sNkNBQTBELE9BQVU7QUFFMUUsTUFBYUEsc0JBQXlELEVBQUUsZUFBZTtDQUNyRixNQUFNLHFDQUEwQkMsd0NBQW1CO0NBQ25ELE1BQU0sOENBQW1DQyw2Q0FBd0I7Q0FDakUsTUFBTSxnREFBcUNDLDBDQUFxQjtDQUNoRSxNQUFNLENBQUMsZUFBZSx1Q0FBNEJDLDZDQUFnQjtDQUNsRSxNQUFNLGtCQUFrQkMsMkRBQTBCO0NBQ2xELE1BQU0sb0NBQXlCQywwQ0FBYTtDQUU1QyxNQUFNLEVBQUUsdUJBQXVCLHVCQUF1QixnQkFBZ0Isb0JBQ3BFQyxnREFBc0I7Q0FPeEIsTUFBTSwrQ0FDSixPQUFPLG1CQUF1QztBQUM1QyxNQUFJO0FBQ0YsU0FBTSxzQkFBc0IsZUFBZTtBQUMzQyxvQkFBaUIsS0FBSztBQUd0QixrQkFBZSxZQUFZLEtBQUksY0FBYSx3QkFBd0IsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1dBQ2xGLE9BQU87QUFDZCwwQkFBTyxTQUFTLHFDQUFxQyxNQUFNOztJQUcvRDtFQUFDO0VBQXVCO0VBQWtCO0VBQXdCLENBQ25FO0FBS0QsNEJBQWdCO0FBQ2QsTUFBSSxzQkFBc0IsR0FBRztHQUMzQixNQUFNLGdCQUFnQixXQUFXLE1BQU0sR0FBRyxvQkFBb0I7QUFFOUQsaUJBQWMsU0FBUSxjQUFhO0FBQ2pDLFFBQUksYUFBYSxVQUFVLGFBQWFDLGtEQUFrQixZQUFZO0tBQ3BFLE1BQU1DLGFBQXNCO01BQzFCLElBQUksVUFBVTtNQUNkLE1BQU1DLDRCQUFZO01BQ2xCLE1BQU1DLDRCQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsT0FDL0I7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFcEQsUUFBSSxhQUFhLFVBQVUsYUFBYUgsa0RBQWtCLG1CQUFtQjtLQUMzRSxNQUFNQyxhQUFzQjtNQUMxQixJQUFJLFVBQVU7TUFDZCxNQUFNQyw0QkFBWTtNQUNsQixNQUFNQyw0QkFBWTtNQUNsQixXQUFXLFVBQVU7TUFDckIsVUFBVSxFQUNSLFNBQVMsVUFBVSxXQUFXLFdBQVcsSUFDMUM7TUFDRjtBQUNELGtCQUFZLFlBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7S0FFcEQ7QUFFRix5QkFDRSxzQkFBc0I7SUFDcEIsWUFBWTtJQUNaLGtCQUFrQixnQkFBZ0I7SUFDbkMsQ0FBQyxDQUNIO2FBQ1EsY0FDVCxnQkFDRSxzQkFBc0I7R0FDcEIsWUFBWSxFQUFFO0dBQ2Qsa0JBQWtCLGdCQUFnQjtHQUNuQyxDQUFDLENBQ0g7SUFFRjtFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQkFBZ0I7RUFDaEI7RUFDQTtFQUNELENBQUM7QUFFRiw0QkFBZ0I7QUFDZCxNQUFJLGNBRUYsa0JBQWlCO0lBRWxCLENBQUMsZUFBZSxnQkFBZ0IsQ0FBQztBQUVwQyxRQUFPLDJDQUFDLGtCQUFrQjtFQUFTLE9BQU87RUFBWTtHQUFzQzs7QUFHOUYsTUFBYSxzQkFBa0M7Q0FDN0MsTUFBTSxtQ0FBd0JMLDBDQUFhO0NBQzNDLE1BQU0sc0NBQTJCTSw2Q0FBZ0I7Q0FDakQsTUFBTSwwQ0FBK0JYLHdDQUFtQjtDQUN4RCxNQUFNLDhDQUFtQ1ksbURBQXNCO0NBQy9ELE1BQU0sNENBQWlDQyxpREFBb0I7Q0FDM0QsTUFBTSx3Q0FBNkJWLDZDQUFnQjtDQUNuRCxNQUFNLEVBQ0osY0FDQSxjQUNBLHFCQUNBLHlCQUNBLDRCQUNFVyxzQ0FBc0I7QUE2QjFCLGlDQTNCNkM7QUFDM0MsU0FBTztHQUNMO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtJQUNBO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELENBQUMifQ==
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuY2pzIiwibmFtZXMiOlsiU2FsZXNBZ2VudFByb3ZpZGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50UHJvdmlkZXJQcm9wcz4iLCJ1c2VyRXZlbnRRdWV1ZUF0b20iLCJ1c2VyUXVldWVFdmVudENvdW50QXRvbSIsInByb2Nlc3NVc2VyRXZlbnRBdG9tIiwiaW5pdGlhbGl6ZWRBdG9tIiwidXNlU3lzdGVtU2V0dGluZ3NDb250ZXh0IiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwidXNlU2FsZXNBZ2VudFNlcnZpY2UiLCJVc2VyRXZlbnRDYXRlZ29yeSIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwiY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlIiwiYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQiLCJyZXNwb25zZVN0cmVhbWluZ0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwidXNlU2FsZXNBZ2VudENoYXRBUEkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgTWVzc2FnZSwgTWVzc2FnZVJvbGUsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQge1xuICBpbml0aWFsaXplZEF0b20sXG4gIG1lc3NhZ2VzQXRvbSxcbiAgcGVuZGluZ1Jlc3BvbnNlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQge1xuICBwcm9jZXNzVXNlckV2ZW50QXRvbSxcbiAgdXNlckV2ZW50UXVldWVBdG9tLFxuICB1c2VyUXVldWVFdmVudENvdW50QXRvbSxcbn0gZnJvbSAnc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlJztcbmltcG9ydCB7IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCB9IGZyb20gJ3NyYy9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudENoYXRBUEksIHVzZVNhbGVzQWdlbnRDaGF0QVBJIH0gZnJvbSAnLi9jaGF0QVBJJztcbmltcG9ydCB7IHVzZVNhbGVzQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zYWxlc0FnZW50U2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudCBleHRlbmRzIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgLy8gTWVzc2FnZXMgYXJlIHRoZSBmdWxsIGxpc3Qgb2YgYWxsIHR1cm5zXG4gIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgLy8gUGVuZGluZyBtZXNzYWdlcyBhcmUgbWVzc2FnZXMgdGhhdCB0aGUgdXNlciBoYXMgY2xpY2tlZC90eXBlZCBidXQgaGF2ZSBub3QgeWV0IGJlZW4gc2VudCB0byB0aGUgYmFja2VuZC5cbiAgcGVuZGluZ01lc3NhZ2VzOiBVc2VyRXZlbnRbXTtcbiAgLy8gU3VnZ2VzdGlvbnMgYXJlIHRoZSBsaXN0IG9mIHN1Z2dlc3Rpb25zIHRoYXQgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIGluIHJlc3BvbnNlIHRvIHRoZSBtb3N0IHJlY2VudCBtZXNzYWdlIGZyb20gdGhlIGJhY2tlbmRcbiAgc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXTtcbiAgLy8gVHJ1ZSB3aGlsZSB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNSZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGlsZSB0aGUgcmVzcG9uc2UgaXMgcGVuZGluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUGVuZGluZ1Jlc3BvbnNlOiBib29sZWFuO1xuICAvLyBUcnVlIHdoZW4gdGhlIHNhbGVzIGFnZW50IGlzIGluaXRpYWxpemVkXG4gIGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1NhbGVzQWdlbnREYXRhIHtcbiAgbWVzc2FnZXM/OiBNZXNzYWdlW11bXTtcbiAgc3VnZ2VzdGlvbnM/OiBTdWdnZXN0aW9uW107XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTYWxlc0FnZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBtb2NrRGF0YT86IE1vY2tTYWxlc0FnZW50RGF0YTtcbn1cblxuZXhwb3J0IGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gIG1vY2tEYXRhLFxufSkgPT4ge1xuICBjb25zdCB1c2VyRXZlbnRzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IHVzZXJRdWV1ZUV2ZW50Q291bnQgPSB1c2VBdG9tVmFsdWUodXNlclF1ZXVlRXZlbnRDb3VudEF0b20pO1xuICBjb25zdCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZCA9IHVzZVNldEF0b20ocHJvY2Vzc1VzZXJFdmVudEF0b20pO1xuICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VBdG9tKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dCA9IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCgpO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG5cbiAgY29uc3QgeyBnZXRTdHJlYW1pbmdSZXNwb25zZXMsIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCwgZ2V0U3VnZ2VzdGlvbnMsIGh5ZHJhdGVNZXNzYWdlcyB9ID1cbiAgICB1c2VTYWxlc0FnZW50U2VydmljZSgpO1xuXG4gIGNvbnN0IGlzU2VuZGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIG1vY2sgZGF0YSBpbiBwcmV2aWV3IG1vZGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldmlld01vZGUgJiYgbW9ja0RhdGEpIHtcbiAgICAgIGlmIChtb2NrRGF0YS5tZXNzYWdlcykge1xuICAgICAgICBzZXRNZXNzYWdlcyhtb2NrRGF0YS5tZXNzYWdlcyk7XG4gICAgICB9XG4gICAgICBpZiAobW9ja0RhdGEuc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgc2V0U3VnZ2VzdGlvbnMobW9ja0RhdGEuc3VnZ2VzdGlvbnMpO1xuICAgICAgfVxuICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcbiAgICB9XG4gIH0sIFtwcmV2aWV3TW9kZSwgbW9ja0RhdGEsIHNldE1lc3NhZ2VzLCBzZXRTdWdnZXN0aW9ucywgc2V0SXNJbml0aWFsaXplZF0pO1xuXG4gIC8vIFRPRE86IEVuc3VyZSB0aGF0IGFtcGxpdHVkZSBldmVudHMgYXJlIGJlaW5nIGVtaXR0ZWRcblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHN0cmVhbWluZyByZXNwb25zZXMgdG8gZnVuY3Rpb25cblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBvbiBpbml0aWFsaXphdGlvblxuICBjb25zdCBzZW5kTWVzc2FnZXNUb0JhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdFBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzKHJlcXVlc3RQYXlsb2FkKTtcbiAgICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHRoZSB1c2VyIGV2ZW50c1xuICAgICAgICByZXF1ZXN0UGF5bG9hZC51c2VyRXZlbnRzPy5tYXAodXNlckV2ZW50ID0+IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkKFt1c2VyRXZlbnQuZXZlbnRJZF0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignW2Vudml2ZS1haV0gZXJyb3Igc2VuZGluZyBtZXNzYWdlJywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2dldFN0cmVhbWluZ1Jlc3BvbnNlcywgc2V0SXNJbml0aWFsaXplZCwgbWFya1VzZXJFdmVudHNQcm9jZXNzZWRdLFxuICApO1xuXG4gIC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgZXZlbnQgbG9vcCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBiYWNrZW5kIEFQSVxuICAvLyBJdCB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIG1lc3NhZ2VzIHRvIGJlIHNlbnQgdG8gdGhlIGJhY2tlbmRcbiAgLy8gSXQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmQgYW5kIHJlY2VpdmluZyB0aGUgcmVzcG9uc2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2tpcCBiYWNrZW5kIGNvbW11bmljYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgaWYgKHByZXZpZXdNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVzZXJRdWV1ZUV2ZW50Q291bnQgPiAwICYmICFpc1NlbmRpbmdSZWYuY3VycmVudCkge1xuICAgICAgaXNTZW5kaW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgY29uc3QgcGF5bG9hZEV2ZW50cyA9IHVzZXJFdmVudHMuc2xpY2UoMCwgdXNlclF1ZXVlRXZlbnRDb3VudCk7XG5cbiAgICAgIHBheWxvYWRFdmVudHMuZm9yRWFjaCh1c2VyRXZlbnQgPT4ge1xuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBpZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogdXNlckV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCkge1xuICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBpZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogdXNlckV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQgPz8gJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQpIHtcbiAgICAgICAgICBjb25zdCB7IGZvcm1SZXNwb25zZUlkLCBmaWxsZWRTY2hlbWEgfSA9IHVzZXJFdmVudC5hdHRyaWJ1dGVzO1xuICAgICAgICAgIHNldE1lc3NhZ2VzKHByZXZNZXNzYWdlc1N0YXRlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1TdWJtaXR0ZWRDb250ZW50ID0gYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQoXG4gICAgICAgICAgICAgIHByZXZNZXNzYWdlc1N0YXRlLFxuICAgICAgICAgICAgICBmb3JtUmVzcG9uc2VJZCxcbiAgICAgICAgICAgICAgZmlsbGVkU2NoZW1hLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1VzZXJNZXNzYWdlID0gY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlKHVzZXJFdmVudCwgZm9ybVN1Ym1pdHRlZENvbnRlbnQpO1xuICAgICAgICAgICAgY29uc3QgdHVybnNXaXRob3V0Rm9ybSA9IHByZXZNZXNzYWdlc1N0YXRlXG4gICAgICAgICAgICAgIC5tYXAodHVybiA9PlxuICAgICAgICAgICAgICAgIHR1cm4uZmlsdGVyKG1zZyA9PiAhKG1zZy50eXBlID09PSBNZXNzYWdlVHlwZS5Gb3JtICYmIG1zZy5pZCA9PT0gZm9ybVJlc3BvbnNlSWQpKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuZmlsdGVyKHR1cm4gPT4gdHVybi5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4udHVybnNXaXRob3V0Rm9ybSwgW25ld1VzZXJNZXNzYWdlXV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQoXG4gICAgICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCh7XG4gICAgICAgICAgdXNlckV2ZW50czogcGF5bG9hZEV2ZW50cyxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc0luaXRpYWxpemVkKSB7XG4gICAgICBnZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBbXSxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIHNldE1lc3NhZ2VzLFxuICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZCxcbiAgICBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB1c2VyRXZlbnRzLFxuICAgIHVzZXJRdWV1ZUV2ZW50Q291bnQsXG4gICAgcHJldmlld01vZGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgaWYgKHByZXZpZXdNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIC8vIFJlaHlkcmF0ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZFxuICAgICAgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgfVxuICB9LCBbaXNJbml0aWFsaXplZCwgaHlkcmF0ZU1lc3NhZ2VzLCBwcmV2aWV3TW9kZV0pO1xuXG4gIHJldHVybiA8U2FsZXNBZ2VudENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3VuZGVmaW5lZH0+e2NoaWxkcmVufTwvU2FsZXNBZ2VudENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnQgPSAoKTogU2FsZXNBZ2VudCA9PiB7XG4gIGNvbnN0IG1lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHN1Z2dlc3Rpb25zID0gdXNlQXRvbVZhbHVlKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHBlbmRpbmdNZXNzYWdlcyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCBpc1Jlc3BvbnNlU3RyZWFtaW5nID0gdXNlQXRvbVZhbHVlKHJlc3BvbnNlU3RyZWFtaW5nQXRvbSk7XG4gIGNvbnN0IGlzUGVuZGluZ1Jlc3BvbnNlID0gdXNlQXRvbVZhbHVlKHBlbmRpbmdSZXNwb25zZUF0b20pO1xuICBjb25zdCBpc0luaXRpYWxpemVkID0gdXNlQXRvbVZhbHVlKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH0gPSB1c2VTYWxlc0FnZW50Q2hhdEFQSSgpO1xuXG4gIGNvbnN0IHNhbGVzQWdlbnQ6IFNhbGVzQWdlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZXMsXG4gICAgICBzdWdnZXN0aW9ucyxcbiAgICAgIHBlbmRpbmdNZXNzYWdlcyxcbiAgICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgaXNQZW5kaW5nUmVzcG9uc2UsXG4gICAgICBsb2dQYWdlVmlzaXQsXG4gICAgICBsb2dVc2VyRXZlbnQsXG4gICAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgICB9O1xuICB9LCBbXG4gICAgbWVzc2FnZXMsXG4gICAgc3VnZ2VzdGlvbnMsXG4gICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgaXNSZXNwb25zZVN0cmVhbWluZyxcbiAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIF0pO1xuICByZXR1cm4gc2FsZXNBZ2VudDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4Q0EsTUFBTSw2Q0FBMEQsT0FBVTtBQVExRSxNQUFhQSxzQkFBeUQsRUFDcEUsVUFDQSxjQUFjLE9BQ2QsZUFDSTtDQUNKLE1BQU0scUNBQTBCQyx3Q0FBbUI7Q0FDbkQsTUFBTSw4Q0FBbUNDLDZDQUF3QjtDQUNqRSxNQUFNLGdEQUFxQ0MsMENBQXFCO0NBQ2hFLE1BQU0sQ0FBQyxlQUFlLHVDQUE0QkMsNkNBQWdCO0NBQ2xFLE1BQU0sa0JBQWtCQywyREFBMEI7Q0FDbEQsTUFBTSxvQ0FBeUJDLDBDQUFhO0NBQzVDLE1BQU0sdUNBQTRCQyw2Q0FBZ0I7Q0FFbEQsTUFBTSxFQUFFLHVCQUF1Qix1QkFBdUIsZ0JBQWdCLG9CQUNwRUMsZ0RBQXNCO0NBRXhCLE1BQU0saUNBQXNCLE1BQU07QUFHbEMsNEJBQWdCO0FBQ2QsTUFBSSxlQUFlLFVBQVU7QUFDM0IsT0FBSSxTQUFTLFNBQ1gsYUFBWSxTQUFTLFNBQVM7QUFFaEMsT0FBSSxTQUFTLFlBQ1gsZ0JBQWUsU0FBUyxZQUFZO0FBRXRDLG9CQUFpQixLQUFLOztJQUV2QjtFQUFDO0VBQWE7RUFBVTtFQUFhO0VBQWdCO0VBQWlCLENBQUM7Q0FPMUUsTUFBTSwrQ0FDSixPQUFPLG1CQUF1QztBQUM1QyxNQUFJO0FBQ0YsU0FBTSxzQkFBc0IsZUFBZTtBQUMzQyxvQkFBaUIsS0FBSztBQUd0QixrQkFBZSxZQUFZLEtBQUksY0FBYSx3QkFBd0IsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1dBQ2xGLE9BQU87QUFDZCwwQkFBTyxTQUFTLHFDQUFxQyxNQUFNOztJQUcvRDtFQUFDO0VBQXVCO0VBQWtCO0VBQXdCLENBQ25FO0FBS0QsNEJBQWdCO0FBRWQsTUFBSSxZQUNGO0FBR0YsTUFBSSxzQkFBc0IsS0FBSyxDQUFDLGFBQWEsU0FBUztBQUNwRCxnQkFBYSxVQUFVO0dBQ3ZCLE1BQU0sZ0JBQWdCLFdBQVcsTUFBTSxHQUFHLG9CQUFvQjtBQUU5RCxpQkFBYyxTQUFRLGNBQWE7QUFDakMsUUFBSSxhQUFhLFVBQVUsYUFBYUMsa0RBQWtCLFlBQVk7S0FDcEUsTUFBTUMsYUFBc0I7TUFDMUIsSUFBSSxVQUFVO01BQ2QsTUFBTUMsNEJBQVk7TUFDbEIsTUFBTUMsNEJBQVk7TUFDbEIsV0FBVyxVQUFVO01BQ3JCLFVBQVUsRUFDUixTQUFTLFVBQVUsV0FBVyxPQUMvQjtNQUNGO0FBQ0Qsa0JBQVksWUFBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztBQUVwRCxRQUFJLGFBQWEsVUFBVSxhQUFhSCxrREFBa0IsbUJBQW1CO0tBQzNFLE1BQU1DLGFBQXNCO01BQzFCLElBQUksVUFBVTtNQUNkLE1BQU1DLDRCQUFZO01BQ2xCLE1BQU1DLDRCQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsV0FBVyxJQUMxQztNQUNGO0FBQ0Qsa0JBQVksWUFBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztBQUVwRCxRQUFJLGFBQWEsVUFBVSxhQUFhSCxrREFBa0IsZUFBZTtLQUN2RSxNQUFNLEVBQUUsZ0JBQWdCLGlCQUFpQixVQUFVO0FBQ25ELGtCQUFZLHNCQUFxQjtNQU0vQixNQUFNLGlCQUFpQkksMERBQStCLFdBTHpCQyw0REFDM0IsbUJBQ0EsZ0JBQ0EsYUFDRCxDQUNxRjtBQU10RixhQUFPLENBQUMsR0FMaUIsa0JBQ3RCLEtBQUksU0FDSCxLQUFLLFFBQU8sUUFBTyxFQUFFLElBQUksU0FBU0YsNEJBQVksUUFBUSxJQUFJLE9BQU8sZ0JBQWdCLENBQ2xGLENBQ0EsUUFBTyxTQUFRLEtBQUssU0FBUyxFQUFFLEVBQ0wsQ0FBQyxlQUFlLENBQUM7T0FDOUM7O0tBRUo7QUFFRix5QkFDRSxzQkFBc0I7SUFDcEIsWUFBWTtJQUNaLGtCQUFrQixnQkFBZ0I7SUFDbkMsQ0FBQyxDQUNILENBQUMsY0FBYztBQUNkLGlCQUFhLFVBQVU7S0FDdkI7YUFDTyxjQUNULGdCQUNFLHNCQUFzQjtHQUNwQixZQUFZLEVBQUU7R0FDZCxrQkFBa0IsZ0JBQWdCO0dBQ25DLENBQUMsQ0FDSDtJQUVGO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCQUFnQjtFQUNoQjtFQUNBO0VBQ0E7RUFDRCxDQUFDO0FBRUYsNEJBQWdCO0FBRWQsTUFBSSxZQUNGO0FBR0YsTUFBSSxjQUVGLGtCQUFpQjtJQUVsQjtFQUFDO0VBQWU7RUFBaUI7RUFBWSxDQUFDO0FBRWpELFFBQU8sMkNBQUMsa0JBQWtCO0VBQVMsT0FBTztFQUFZO0dBQXNDOztBQUc5RixNQUFhLHNCQUFrQztDQUM3QyxNQUFNLG1DQUF3Qk4sMENBQWE7Q0FDM0MsTUFBTSxzQ0FBMkJDLDZDQUFnQjtDQUNqRCxNQUFNLDBDQUErQk4sd0NBQW1CO0NBQ3hELE1BQU0sOENBQW1DYyxtREFBc0I7Q0FDL0QsTUFBTSw0Q0FBaUNDLGlEQUFvQjtDQUMzRCxNQUFNLHdDQUE2QlosNkNBQWdCO0NBQ25ELE1BQU0sRUFDSixjQUNBLGNBQ0EscUJBQ0EseUJBQ0EsNEJBQ0VhLHNDQUFzQjtBQTZCMUIsaUNBM0I2QztBQUMzQyxTQUFPO0dBQ0w7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0lBQ0E7RUFDRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsQ0FBQyJ9