@envive-ai/react-hooks 0.1.9 → 0.2.1

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 (442) hide show
  1. package/package.json +1 -1
  2. package/dist/AmplitudeOperations-CNyxbBY6.cjs +0 -0
  3. package/dist/AmplitudeOperations-Oa2efWtF.js +0 -1
  4. package/dist/NewOrgConfig-B1zC4zP0.js +0 -10
  5. package/dist/NewOrgConfig-DAGaGj2d.cjs +0 -15
  6. package/dist/SystemSettingsContext-BHi2YaQp.cjs +0 -20
  7. package/dist/SystemSettingsContext-BLRfTbCC.js +0 -13
  8. package/dist/TrackComponentVisibleEvent-CftWp8QR.js +0 -52
  9. package/dist/TrackComponentVisibleEvent-Dag8vFhb.cjs +0 -59
  10. package/dist/amplitudeContext-B73xamNe.d.cts +0 -52
  11. package/dist/amplitudeContext-BhhYPJSL.d.ts +0 -52
  12. package/dist/amplitudeContext-CwPtBPhg.js +0 -287
  13. package/dist/amplitudeContext-DTC6maR0.cjs +0 -309
  14. package/dist/api-Bc3_julZ.cjs +0 -239
  15. package/dist/api-D9gmGNAV.js +0 -166
  16. package/dist/app-CoQ1nC-j.js +0 -132
  17. package/dist/app-DN72spgQ.cjs +0 -178
  18. package/dist/application/models/graphql/index.cjs +0 -5
  19. package/dist/application/models/graphql/index.d.cts +0 -2
  20. package/dist/application/models/graphql/index.d.ts +0 -2
  21. package/dist/application/models/graphql/index.js +0 -4
  22. package/dist/application/models/guards/api/index.cjs +0 -16
  23. package/dist/application/models/guards/api/index.d.cts +0 -3
  24. package/dist/application/models/guards/api/index.d.ts +0 -3
  25. package/dist/application/models/guards/api/index.js +0 -5
  26. package/dist/application/models/guards/utils.cjs +0 -3
  27. package/dist/application/models/guards/utils.d.cts +0 -2
  28. package/dist/application/models/guards/utils.d.ts +0 -2
  29. package/dist/application/models/guards/utils.js +0 -3
  30. package/dist/application/models/index.cjs +0 -69
  31. package/dist/application/models/index.d.cts +0 -12
  32. package/dist/application/models/index.d.ts +0 -12
  33. package/dist/application/models/index.js +0 -12
  34. package/dist/application/models/utilityTypes/index.cjs +0 -1
  35. package/dist/application/models/utilityTypes/index.d.cts +0 -2
  36. package/dist/application/models/utilityTypes/index.d.ts +0 -2
  37. package/dist/application/models/utilityTypes/index.js +0 -3
  38. package/dist/application/models/variantInfo/index.cjs +0 -1
  39. package/dist/application/models/variantInfo/index.d.cts +0 -2
  40. package/dist/application/models/variantInfo/index.d.ts +0 -2
  41. package/dist/application/models/variantInfo/index.js +0 -3
  42. package/dist/application/utils/index.cjs +0 -48
  43. package/dist/application/utils/index.d.cts +0 -263
  44. package/dist/application/utils/index.d.ts +0 -263
  45. package/dist/application/utils/index.js +0 -22
  46. package/dist/atomStore-BS6qtYZF.js +0 -1
  47. package/dist/atomStore-BjRyLFEx.cjs +0 -0
  48. package/dist/atomStore-BuopbV9k.js +0 -32
  49. package/dist/atomStore-CZKe3itM.cjs +0 -58
  50. package/dist/atoms/app/index.cjs +0 -20
  51. package/dist/atoms/app/index.d.cts +0 -39
  52. package/dist/atoms/app/index.d.ts +0 -39
  53. package/dist/atoms/app/index.js +0 -16
  54. package/dist/atoms/atomStore/index.cjs +0 -7
  55. package/dist/atoms/atomStore/index.d.cts +0 -24
  56. package/dist/atoms/atomStore/index.d.ts +0 -24
  57. package/dist/atoms/atomStore/index.js +0 -4
  58. package/dist/atoms/chat/index.cjs +0 -52
  59. package/dist/atoms/chat/index.d.cts +0 -163
  60. package/dist/atoms/chat/index.d.ts +0 -163
  61. package/dist/atoms/chat/index.js +0 -23
  62. package/dist/atoms/globalSearch/index.cjs +0 -6
  63. package/dist/atoms/globalSearch/index.d.cts +0 -24
  64. package/dist/atoms/globalSearch/index.d.ts +0 -24
  65. package/dist/atoms/globalSearch/index.js +0 -3
  66. package/dist/atoms/org/index.cjs +0 -19
  67. package/dist/atoms/org/index.d.cts +0 -59
  68. package/dist/atoms/org/index.d.ts +0 -59
  69. package/dist/atoms/org/index.js +0 -6
  70. package/dist/atoms/search/index.cjs +0 -60
  71. package/dist/atoms/search/index.d.cts +0 -14
  72. package/dist/atoms/search/index.d.ts +0 -14
  73. package/dist/atoms/search/index.js +0 -30
  74. package/dist/atoms/search/types.cjs +0 -5
  75. package/dist/atoms/search/types.d.cts +0 -2
  76. package/dist/atoms/search/types.d.ts +0 -2
  77. package/dist/atoms/search/types.js +0 -3
  78. package/dist/atoms/search/utils.cjs +0 -3
  79. package/dist/atoms/search/utils.d.cts +0 -5
  80. package/dist/atoms/search/utils.d.ts +0 -5
  81. package/dist/atoms/search/utils.js +0 -3
  82. package/dist/cdnContext-ShKWLgKA.cjs +0 -53
  83. package/dist/cdnContext-pfrZ6lfu.js +0 -38
  84. package/dist/chat-BOuhPeoD.cjs +0 -394
  85. package/dist/chat-BkjIKhc5.cjs +0 -152
  86. package/dist/chat-C3I3GG1L.js +0 -258
  87. package/dist/chat-CgLypC3w.js +0 -26
  88. package/dist/chatElementDisplayLocation-BwiXrkN7.d.ts +0 -25
  89. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +0 -25
  90. package/dist/chatSearch-B9Rk7Dl3.js +0 -295
  91. package/dist/chatSearch-BqVwk1ya.cjs +0 -418
  92. package/dist/chatState-CX50Roi9.js +0 -34
  93. package/dist/chatState-xC0pswtB.cjs +0 -120
  94. package/dist/chunk-CUT6urMc.cjs +0 -30
  95. package/dist/commerce-api-BCSZ4QFV.js +0 -311
  96. package/dist/commerce-api-DemPaNpu.cjs +0 -318
  97. package/dist/components-Cby-Cma3.cjs +0 -29
  98. package/dist/components-D1mg1-Br.js +0 -11
  99. package/dist/config/locators/components/chat/index.cjs +0 -23
  100. package/dist/config/locators/components/chat/index.d.cts +0 -2
  101. package/dist/config/locators/components/chat/index.d.ts +0 -2
  102. package/dist/config/locators/components/chat/index.js +0 -3
  103. package/dist/config/locators/components/chat/variants/index.cjs +0 -29
  104. package/dist/config/locators/components/chat/variants/index.d.cts +0 -16
  105. package/dist/config/locators/components/chat/variants/index.d.ts +0 -16
  106. package/dist/config/locators/components/chat/variants/index.js +0 -17
  107. package/dist/config/locators/components/index.cjs +0 -5
  108. package/dist/config/locators/components/index.d.cts +0 -2
  109. package/dist/config/locators/components/index.d.ts +0 -2
  110. package/dist/config/locators/components/index.js +0 -3
  111. package/dist/config/locators/components/search/index.cjs +0 -13
  112. package/dist/config/locators/components/search/index.d.cts +0 -8
  113. package/dist/config/locators/components/search/index.d.ts +0 -8
  114. package/dist/config/locators/components/search/index.js +0 -9
  115. package/dist/config/locators/index.cjs +0 -67
  116. package/dist/config/locators/index.d.cts +0 -25
  117. package/dist/config/locators/index.d.ts +0 -25
  118. package/dist/config/locators/index.js +0 -26
  119. package/dist/contexts/amplitudeContext/index.cjs +0 -22
  120. package/dist/contexts/amplitudeContext/index.d.cts +0 -2
  121. package/dist/contexts/amplitudeContext/index.d.ts +0 -2
  122. package/dist/contexts/amplitudeContext/index.js +0 -20
  123. package/dist/contexts/cdnContext/index.cjs +0 -7
  124. package/dist/contexts/cdnContext/index.d.cts +0 -15
  125. package/dist/contexts/cdnContext/index.d.ts +0 -15
  126. package/dist/contexts/cdnContext/index.js +0 -6
  127. package/dist/contexts/chatContext/index.cjs +0 -331
  128. package/dist/contexts/chatContext/index.d.cts +0 -15
  129. package/dist/contexts/chatContext/index.d.ts +0 -15
  130. package/dist/contexts/chatContext/index.js +0 -324
  131. package/dist/contexts/enviveConfigContext/index.cjs +0 -7
  132. package/dist/contexts/enviveConfigContext/index.d.cts +0 -30
  133. package/dist/contexts/enviveConfigContext/index.d.ts +0 -30
  134. package/dist/contexts/enviveConfigContext/index.js +0 -6
  135. package/dist/contexts/enviveCssContext/index.cjs +0 -66
  136. package/dist/contexts/enviveCssContext/index.d.cts +0 -10
  137. package/dist/contexts/enviveCssContext/index.d.ts +0 -10
  138. package/dist/contexts/enviveCssContext/index.js +0 -63
  139. package/dist/contexts/featureFlagContext/index.cjs +0 -107
  140. package/dist/contexts/featureFlagContext/index.d.cts +0 -20
  141. package/dist/contexts/featureFlagContext/index.d.ts +0 -20
  142. package/dist/contexts/featureFlagContext/index.js +0 -103
  143. package/dist/contexts/featureFlagServiceContext/index.cjs +0 -6
  144. package/dist/contexts/featureFlagServiceContext/index.d.cts +0 -5
  145. package/dist/contexts/featureFlagServiceContext/index.d.ts +0 -5
  146. package/dist/contexts/featureFlagServiceContext/index.js +0 -5
  147. package/dist/contexts/graphqlContext/index.cjs +0 -16
  148. package/dist/contexts/graphqlContext/index.d.cts +0 -14
  149. package/dist/contexts/graphqlContext/index.d.ts +0 -14
  150. package/dist/contexts/graphqlContext/index.js +0 -15
  151. package/dist/contexts/localStorageContext/index.cjs +0 -6
  152. package/dist/contexts/localStorageContext/index.d.cts +0 -30
  153. package/dist/contexts/localStorageContext/index.d.ts +0 -30
  154. package/dist/contexts/localStorageContext/index.js +0 -4
  155. package/dist/contexts/newOrgConfigContext/index.cjs +0 -20
  156. package/dist/contexts/newOrgConfigContext/index.d.cts +0 -15
  157. package/dist/contexts/newOrgConfigContext/index.d.ts +0 -15
  158. package/dist/contexts/newOrgConfigContext/index.js +0 -19
  159. package/dist/contexts/searchContext/index.cjs +0 -24
  160. package/dist/contexts/searchContext/index.d.cts +0 -16
  161. package/dist/contexts/searchContext/index.d.ts +0 -16
  162. package/dist/contexts/searchContext/index.js +0 -23
  163. package/dist/contexts/sessionStorageContext/index.cjs +0 -5
  164. package/dist/contexts/sessionStorageContext/index.d.cts +0 -15
  165. package/dist/contexts/sessionStorageContext/index.d.ts +0 -15
  166. package/dist/contexts/sessionStorageContext/index.js +0 -4
  167. package/dist/contexts/shopifyUrlContext/index.cjs +0 -5
  168. package/dist/contexts/shopifyUrlContext/index.d.cts +0 -20
  169. package/dist/contexts/shopifyUrlContext/index.d.ts +0 -20
  170. package/dist/contexts/shopifyUrlContext/index.js +0 -4
  171. package/dist/contexts/systemSettingsContext/index.cjs +0 -8
  172. package/dist/contexts/systemSettingsContext/index.d.cts +0 -37
  173. package/dist/contexts/systemSettingsContext/index.d.ts +0 -37
  174. package/dist/contexts/systemSettingsContext/index.js +0 -6
  175. package/dist/contexts/types.cjs +0 -7
  176. package/dist/contexts/types.d.cts +0 -4
  177. package/dist/contexts/types.d.ts +0 -4
  178. package/dist/contexts/types.js +0 -3
  179. package/dist/contexts/userIdentityContext/index.cjs +0 -27
  180. package/dist/contexts/userIdentityContext/index.d.cts +0 -2
  181. package/dist/contexts/userIdentityContext/index.d.ts +0 -2
  182. package/dist/contexts/userIdentityContext/index.js +0 -26
  183. package/dist/domObserver-B19-69gW.js +0 -285
  184. package/dist/domObserver-CwieVNgj.cjs +0 -304
  185. package/dist/enviveConfig-BSfyz_pm.js +0 -62
  186. package/dist/enviveConfig-D8vcVPWD.cjs +0 -130
  187. package/dist/enviveConfigContext-C8cCcdKU.cjs +0 -60
  188. package/dist/enviveConfigContext-CJqpRSKu.js +0 -45
  189. package/dist/events/index.cjs +0 -4
  190. package/dist/events/index.d.cts +0 -46
  191. package/dist/events/index.d.ts +0 -46
  192. package/dist/events/index.js +0 -3
  193. package/dist/events-BHJJjPDN.js +0 -78
  194. package/dist/events-B_fJZf9E.cjs +0 -90
  195. package/dist/featureFlagServiceContext-CUBoBV2i.cjs +0 -56
  196. package/dist/featureFlagServiceContext-Cpw8omUr.d.ts +0 -23
  197. package/dist/featureFlagServiceContext-Cvn6fcdB.d.cts +0 -23
  198. package/dist/featureFlagServiceContext-Dg8okVk1.js +0 -42
  199. package/dist/featureGates-Blx10fwB.js +0 -27
  200. package/dist/featureGates-DcZNrUma.cjs +0 -33
  201. package/dist/frontendConfig-DnMZfvcA.d.cts +0 -857
  202. package/dist/frontendConfig-Dqxbqo8G.d.ts +0 -857
  203. package/dist/globalSearch-C94-vEVh.cjs +0 -39
  204. package/dist/globalSearch-Dlbnfasm.js +0 -14
  205. package/dist/graphql-B9HhDXYt.cjs +0 -53
  206. package/dist/graphql-W7GMIHUu.js +0 -36
  207. package/dist/graphqlConfig-B4ddz1vH.cjs +0 -39
  208. package/dist/graphqlConfig-BnjOdeX7.js +0 -14
  209. package/dist/graphqlContext-6-GcR9zd.d.cts +0 -28
  210. package/dist/graphqlContext-8kw4aLRc.js +0 -96
  211. package/dist/graphqlContext-EhYZM1v_.d.ts +0 -28
  212. package/dist/graphqlContext-Fwc6Upvh.cjs +0 -111
  213. package/dist/hooks/AmplitudeOperations/index.cjs +0 -22
  214. package/dist/hooks/AmplitudeOperations/index.d.cts +0 -12
  215. package/dist/hooks/AmplitudeOperations/index.d.ts +0 -12
  216. package/dist/hooks/AmplitudeOperations/index.js +0 -22
  217. package/dist/hooks/AppDetails/index.cjs +0 -19
  218. package/dist/hooks/AppDetails/index.d.cts +0 -27
  219. package/dist/hooks/AppDetails/index.d.ts +0 -27
  220. package/dist/hooks/AppDetails/index.js +0 -19
  221. package/dist/hooks/BlockBackButton/index.cjs +0 -29
  222. package/dist/hooks/BlockBackButton/index.d.cts +0 -5
  223. package/dist/hooks/BlockBackButton/index.d.ts +0 -5
  224. package/dist/hooks/BlockBackButton/index.js +0 -27
  225. package/dist/hooks/CdnOperations/index.cjs +0 -24
  226. package/dist/hooks/CdnOperations/index.d.cts +0 -7
  227. package/dist/hooks/CdnOperations/index.d.ts +0 -7
  228. package/dist/hooks/CdnOperations/index.js +0 -22
  229. package/dist/hooks/ChatToggle/index.cjs +0 -64
  230. package/dist/hooks/ChatToggle/index.d.cts +0 -12
  231. package/dist/hooks/ChatToggle/index.d.ts +0 -12
  232. package/dist/hooks/ChatToggle/index.js +0 -62
  233. package/dist/hooks/ChatToggleAnalytics/index.cjs +0 -38
  234. package/dist/hooks/ChatToggleAnalytics/index.d.cts +0 -9
  235. package/dist/hooks/ChatToggleAnalytics/index.d.ts +0 -9
  236. package/dist/hooks/ChatToggleAnalytics/index.js +0 -36
  237. package/dist/hooks/CustomerSupportHandoff/index.cjs +0 -36
  238. package/dist/hooks/CustomerSupportHandoff/index.d.cts +0 -16
  239. package/dist/hooks/CustomerSupportHandoff/index.d.ts +0 -16
  240. package/dist/hooks/CustomerSupportHandoff/index.js +0 -34
  241. package/dist/hooks/Debounce/index.cjs +0 -3
  242. package/dist/hooks/Debounce/index.d.cts +0 -5
  243. package/dist/hooks/Debounce/index.d.ts +0 -5
  244. package/dist/hooks/Debounce/index.js +0 -3
  245. package/dist/hooks/ElementObserver/index.cjs +0 -179
  246. package/dist/hooks/ElementObserver/index.d.cts +0 -29
  247. package/dist/hooks/ElementObserver/index.d.ts +0 -29
  248. package/dist/hooks/ElementObserver/index.js +0 -177
  249. package/dist/hooks/GrabAndScroll/index.cjs +0 -99
  250. package/dist/hooks/GrabAndScroll/index.d.cts +0 -14
  251. package/dist/hooks/GrabAndScroll/index.d.ts +0 -14
  252. package/dist/hooks/GrabAndScroll/index.js +0 -97
  253. package/dist/hooks/GraphQLConfig/index.cjs +0 -17
  254. package/dist/hooks/GraphQLConfig/index.d.cts +0 -28
  255. package/dist/hooks/GraphQLConfig/index.d.ts +0 -28
  256. package/dist/hooks/GraphQLConfig/index.js +0 -16
  257. package/dist/hooks/IdentifyUser/index.cjs +0 -60
  258. package/dist/hooks/IdentifyUser/index.d.cts +0 -10
  259. package/dist/hooks/IdentifyUser/index.d.ts +0 -10
  260. package/dist/hooks/IdentifyUser/index.js +0 -58
  261. package/dist/hooks/ImageResolver/index.cjs +0 -55
  262. package/dist/hooks/ImageResolver/index.d.cts +0 -7
  263. package/dist/hooks/ImageResolver/index.d.ts +0 -7
  264. package/dist/hooks/ImageResolver/index.js +0 -53
  265. package/dist/hooks/Intersection/index.cjs +0 -3
  266. package/dist/hooks/Intersection/index.d.cts +0 -7
  267. package/dist/hooks/Intersection/index.d.ts +0 -7
  268. package/dist/hooks/Intersection/index.js +0 -3
  269. package/dist/hooks/IsSmallScreen/index.cjs +0 -22
  270. package/dist/hooks/IsSmallScreen/index.d.cts +0 -5
  271. package/dist/hooks/IsSmallScreen/index.d.ts +0 -5
  272. package/dist/hooks/IsSmallScreen/index.js +0 -20
  273. package/dist/hooks/LocalStorageOperations/index.cjs +0 -79
  274. package/dist/hooks/LocalStorageOperations/index.d.cts +0 -17
  275. package/dist/hooks/LocalStorageOperations/index.d.ts +0 -17
  276. package/dist/hooks/LocalStorageOperations/index.js +0 -74
  277. package/dist/hooks/MessageFilter/index.cjs +0 -54
  278. package/dist/hooks/MessageFilter/index.d.cts +0 -30
  279. package/dist/hooks/MessageFilter/index.d.ts +0 -30
  280. package/dist/hooks/MessageFilter/index.js +0 -54
  281. package/dist/hooks/MessageScrollObserver/index.cjs +0 -36
  282. package/dist/hooks/MessageScrollObserver/index.d.cts +0 -5
  283. package/dist/hooks/MessageScrollObserver/index.d.ts +0 -5
  284. package/dist/hooks/MessageScrollObserver/index.js +0 -34
  285. package/dist/hooks/NewOrgConfig/index.cjs +0 -20
  286. package/dist/hooks/NewOrgConfig/index.d.cts +0 -20
  287. package/dist/hooks/NewOrgConfig/index.d.ts +0 -20
  288. package/dist/hooks/NewOrgConfig/index.js +0 -20
  289. package/dist/hooks/Search/index.cjs +0 -326
  290. package/dist/hooks/Search/index.d.cts +0 -61
  291. package/dist/hooks/Search/index.d.ts +0 -61
  292. package/dist/hooks/Search/index.js +0 -323
  293. package/dist/hooks/SearchOperations/index.cjs +0 -102
  294. package/dist/hooks/SearchOperations/index.d.cts +0 -22
  295. package/dist/hooks/SearchOperations/index.d.ts +0 -22
  296. package/dist/hooks/SearchOperations/index.js +0 -99
  297. package/dist/hooks/SessionStorageOperations/index.cjs +0 -30
  298. package/dist/hooks/SessionStorageOperations/index.d.cts +0 -8
  299. package/dist/hooks/SessionStorageOperations/index.d.ts +0 -8
  300. package/dist/hooks/SessionStorageOperations/index.js +0 -28
  301. package/dist/hooks/ShopifyUrlOperations/index.cjs +0 -53
  302. package/dist/hooks/ShopifyUrlOperations/index.d.cts +0 -23
  303. package/dist/hooks/ShopifyUrlOperations/index.d.ts +0 -23
  304. package/dist/hooks/ShopifyUrlOperations/index.js +0 -49
  305. package/dist/hooks/SnapCalculator/index.cjs +0 -29
  306. package/dist/hooks/SnapCalculator/index.d.cts +0 -12
  307. package/dist/hooks/SnapCalculator/index.d.ts +0 -12
  308. package/dist/hooks/SnapCalculator/index.js +0 -27
  309. package/dist/hooks/SystemSettingsContext/index.cjs +0 -7
  310. package/dist/hooks/SystemSettingsContext/index.d.cts +0 -23
  311. package/dist/hooks/SystemSettingsContext/index.d.ts +0 -23
  312. package/dist/hooks/SystemSettingsContext/index.js +0 -7
  313. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +0 -22
  314. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +0 -18
  315. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +0 -18
  316. package/dist/hooks/TrackComponentVisibleEvent/index.js +0 -22
  317. package/dist/hooks/UpdateAnalyticsProps/index.cjs +0 -62
  318. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +0 -9
  319. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +0 -9
  320. package/dist/hooks/UpdateAnalyticsProps/index.js +0 -59
  321. package/dist/hooks/utils.cjs +0 -8
  322. package/dist/hooks/utils.d.cts +0 -13
  323. package/dist/hooks/utils.d.ts +0 -13
  324. package/dist/hooks/utils.js +0 -3
  325. package/dist/index-BN-3ctk_.d.ts +0 -184
  326. package/dist/index-BPxqQmpF.d.ts +0 -1
  327. package/dist/index-Bl9pjZeG.d.ts +0 -186
  328. package/dist/index-Bmub8e38.d.cts +0 -98
  329. package/dist/index-BoYC9XLW.d.ts +0 -39
  330. package/dist/index-C12-NmS7.d.cts +0 -25
  331. package/dist/index-C6KdON7d.d.ts +0 -25
  332. package/dist/index-CESxqFso.d.cts +0 -228
  333. package/dist/index-CK_J3QMY.d.ts +0 -676
  334. package/dist/index-CVa3DeXJ.d.cts +0 -9
  335. package/dist/index-C_MIfxF0.d.cts +0 -676
  336. package/dist/index-CiWEYzXl.d.cts +0 -184
  337. package/dist/index-DOii3C6b.d.ts +0 -9
  338. package/dist/index-Dcgz5i3Q.d.cts +0 -186
  339. package/dist/index-Dr_c2DDq.d.ts +0 -98
  340. package/dist/index-DsiilEj-.d.ts +0 -228
  341. package/dist/index-RcVcRKH7.d.cts +0 -1
  342. package/dist/index-hdbCEjYy.d.cts +0 -39
  343. package/dist/interceptors/index.cjs +0 -4
  344. package/dist/interceptors/index.d.cts +0 -20
  345. package/dist/interceptors/index.d.ts +0 -20
  346. package/dist/interceptors/index.js +0 -4
  347. package/dist/interceptors/types.cjs +0 -1
  348. package/dist/interceptors/types.d.cts +0 -13
  349. package/dist/interceptors/types.d.ts +0 -13
  350. package/dist/interceptors/types.js +0 -3
  351. package/dist/localStorageContext-Dwgto93_.js +0 -95
  352. package/dist/localStorageContext-cnMYDllE.cjs +0 -115
  353. package/dist/logger-Cp7J4YJT.cjs +0 -26
  354. package/dist/logger-oAgZx2-m.js +0 -20
  355. package/dist/models-B1P-dSCW.cjs +0 -1537
  356. package/dist/models-CgvSM2fW.js +0 -1296
  357. package/dist/newOrgConfigAtom-D6R-7HCk.cjs +0 -15
  358. package/dist/newOrgConfigAtom-bn1lnljf.js +0 -8
  359. package/dist/newOrgConfigContext-BKb9qGfc.d.cts +0 -16
  360. package/dist/newOrgConfigContext-BX6cyQRB.cjs +0 -68
  361. package/dist/newOrgConfigContext-D9PpVqyW.d.ts +0 -16
  362. package/dist/newOrgConfigContext-UshqFMAV.js +0 -53
  363. package/dist/nodeSelector-B3bPtEjX.d.cts +0 -31
  364. package/dist/nodeSelector-D5gjDWZ3.d.ts +0 -31
  365. package/dist/org-CIhjzxWr.cjs +0 -43
  366. package/dist/org-CeWXnpwF.js +0 -12
  367. package/dist/orgAnalyticsConfig-BC4_sEmn.js +0 -14
  368. package/dist/orgAnalyticsConfig-DsGbyFhO.cjs +0 -39
  369. package/dist/search-76xcuxjY.cjs +0 -205
  370. package/dist/search-B6xaOds7.js +0 -126
  371. package/dist/search-BLShhjvR.d.ts +0 -20
  372. package/dist/search-filter-types-BBIjvwJV.d.cts +0 -102
  373. package/dist/search-filter-types-BlmWOnlA.d.ts +0 -102
  374. package/dist/search-y-ioX5Mz.d.cts +0 -20
  375. package/dist/searchContext-5qTU8CbH.js +0 -129
  376. package/dist/searchContext-DmXo2rpU.cjs +0 -145
  377. package/dist/searchServiceAdapter-DEv1tTn0.cjs +0 -34
  378. package/dist/searchServiceAdapter-WyCU55NV.js +0 -16
  379. package/dist/sessionStorageContext-B-UFXyJR.cjs +0 -66
  380. package/dist/sessionStorageContext-DnuKi3Gk.js +0 -52
  381. package/dist/shopifyUrlContext-Lm-Xcut2.cjs +0 -75
  382. package/dist/shopifyUrlContext-jLW63VLY.js +0 -61
  383. package/dist/spiffyWidgets-BuS00VaQ.d.cts +0 -20
  384. package/dist/spiffyWidgets-GILaqHv6.d.ts +0 -20
  385. package/dist/systemSettingsContext--LcXOVJz.js +0 -39
  386. package/dist/systemSettingsContext-CafaP6Zh.cjs +0 -60
  387. package/dist/test-types-EzMFw_U3.d.ts +0 -40
  388. package/dist/test-types-ThQiO_cc.d.cts +0 -40
  389. package/dist/types/index.cjs +0 -34
  390. package/dist/types/index.d.cts +0 -3
  391. package/dist/types/index.d.ts +0 -3
  392. package/dist/types/index.js +0 -31
  393. package/dist/types-6siNDmGv.d.ts +0 -10
  394. package/dist/types-BN2z0HcL.d.ts +0 -51
  395. package/dist/types-BwNrLPSZ.cjs +0 -106
  396. package/dist/types-CKMMb_gX.d.cts +0 -51
  397. package/dist/types-CS0Hrzja.js +0 -30
  398. package/dist/types-CxObxLKs.cjs +0 -48
  399. package/dist/types-D3uOF0Oy.js +0 -76
  400. package/dist/types-D4aa7_7x.d.cts +0 -10
  401. package/dist/types-DtTnp0o0.js +0 -1
  402. package/dist/types-a8gm_IaQ.cjs +0 -0
  403. package/dist/types.cjs +0 -0
  404. package/dist/types.d.cts +0 -15
  405. package/dist/types.d.ts +0 -15
  406. package/dist/types.js +0 -1
  407. package/dist/unsupportedProductExceptions-CKiri_vO.cjs +0 -32
  408. package/dist/unsupportedProductExceptions-ClxlJ6cU.js +0 -20
  409. package/dist/urlsParser-BV5yF8sa.cjs +0 -78
  410. package/dist/urlsParser-DUgV_Qy9.js +0 -42
  411. package/dist/useAmplitudeOperations-aGOqxc4V.cjs +0 -41
  412. package/dist/useAmplitudeOperations-wQnkMaDm.js +0 -34
  413. package/dist/useAppDetails-9WXEc3mg.cjs +0 -38
  414. package/dist/useAppDetails-mNC2PBqH.js +0 -30
  415. package/dist/useDebounce-BaIp-A1W.cjs +0 -26
  416. package/dist/useDebounce-CxPj9WmE.js +0 -19
  417. package/dist/useGraphQLConfig-CTsRsKd2.js +0 -63
  418. package/dist/useGraphQLConfig-D7naV2RD.cjs +0 -76
  419. package/dist/useIntersection-B4J9UhaG.js +0 -21
  420. package/dist/useIntersection-DKWc5MY6.cjs +0 -28
  421. package/dist/useMessageInterceptor-CstX10ih.cjs +0 -33
  422. package/dist/useMessageInterceptor-D5oAekXn.js +0 -25
  423. package/dist/userIdentityContext-BA6EN-pz.cjs +0 -125
  424. package/dist/userIdentityContext-D2oFVFzo.d.cts +0 -20
  425. package/dist/userIdentityContext-FTwTL0WF.js +0 -109
  426. package/dist/userIdentityContext-wYRpgkaJ.d.ts +0 -20
  427. package/dist/utilityTypes-DynzxjK3.js +0 -1
  428. package/dist/utilityTypes-xb8SjKSV.cjs +0 -0
  429. package/dist/utils-2SWrJ12w.cjs +0 -29
  430. package/dist/utils-ARmpTh1O.js +0 -27
  431. package/dist/utils-B1xLx9S8.d.ts +0 -15
  432. package/dist/utils-B3x_9JTY.d.cts +0 -15
  433. package/dist/utils-BSYichA7.d.cts +0 -22
  434. package/dist/utils-Bcz5kAgP.js +0 -92
  435. package/dist/utils-BgMcvG6l.js +0 -606
  436. package/dist/utils-CMqFfqZx.cjs +0 -130
  437. package/dist/utils-Cavu4XiM.cjs +0 -33
  438. package/dist/utils-CqBxIpEV.js +0 -23
  439. package/dist/utils-D_aOvxMg.cjs +0 -715
  440. package/dist/utils-FU_r-pTj.d.ts +0 -22
  441. package/dist/variantInfo-B7IwRpCg.cjs +0 -0
  442. package/dist/variantInfo-BtOYUGWa.js +0 -1
@@ -1,326 +0,0 @@
1
- const require_chunk = require('../../chunk-CUT6urMc.cjs');
2
- require('../../types-BwNrLPSZ.cjs');
3
- require('../../events-B_fJZf9E.cjs');
4
- const require_utils = require('../../utils-CMqFfqZx.cjs');
5
- const require_models = require('../../models-B1P-dSCW.cjs');
6
- require('../../featureGates-DcZNrUma.cjs');
7
- require('../../urlsParser-BV5yF8sa.cjs');
8
- require('../../graphql-B9HhDXYt.cjs');
9
- require('../../utils-Cavu4XiM.cjs');
10
- require('../../api-Bc3_julZ.cjs');
11
- const require_logger = require('../../logger-Cp7J4YJT.cjs');
12
- require('../../utilityTypes-xb8SjKSV.cjs');
13
- require('../../variantInfo-B7IwRpCg.cjs');
14
- require('../../localStorageContext-cnMYDllE.cjs');
15
- const require_enviveConfig = require('../../enviveConfig-D8vcVPWD.cjs');
16
- require('../../orgAnalyticsConfig-DsGbyFhO.cjs');
17
- require('../../atomStore-CZKe3itM.cjs');
18
- require('../../app-DN72spgQ.cjs');
19
- require('../../enviveConfigContext-C8cCcdKU.cjs');
20
- const require_amplitudeContext = require('../../amplitudeContext-DTC6maR0.cjs');
21
- require('../../chatState-xC0pswtB.cjs');
22
- require('../../graphqlConfig-B4ddz1vH.cjs');
23
- require('../../chat-BOuhPeoD.cjs');
24
- const require_globalSearch = require('../../globalSearch-C94-vEVh.cjs');
25
- require('../../org-CIhjzxWr.cjs');
26
- require('../../newOrgConfigAtom-D6R-7HCk.cjs');
27
- const require_utils$2 = require('../../utils-2SWrJ12w.cjs');
28
- require('../../chatSearch-BqVwk1ya.cjs');
29
- const require_types$1 = require('../../types-CxObxLKs.cjs');
30
- require('../../searchServiceAdapter-DEv1tTn0.cjs');
31
- const require_search = require('../../search-76xcuxjY.cjs');
32
- require('../../graphqlContext-Fwc6Upvh.cjs');
33
- require('../../useGraphQLConfig-D7naV2RD.cjs');
34
- require('../../featureFlagServiceContext-CUBoBV2i.cjs');
35
- require('../../newOrgConfigContext-BX6cyQRB.cjs');
36
- const require_NewOrgConfig = require('../../NewOrgConfig-DAGaGj2d.cjs');
37
- const require_useDebounce = require('../../useDebounce-BaIp-A1W.cjs');
38
- require('../../useIntersection-DKWc5MY6.cjs');
39
- const require_TrackComponentVisibleEvent = require('../../TrackComponentVisibleEvent-Dag8vFhb.cjs');
40
- let react = require("react");
41
- react = require_chunk.__toESM(react);
42
- let jotai = require("jotai");
43
- jotai = require_chunk.__toESM(jotai);
44
-
45
- //#region src/hooks/Search/useSearch.tsx
46
- const useSearch = () => {
47
- const config = require_NewOrgConfig.useNewOrgConfig();
48
- const orgShortName = (0, jotai.useAtomValue)(require_enviveConfig.orgShortNameAtom);
49
- const { data: searchData, loading: isLoadingSearch } = (0, jotai.useAtomValue)(require_search.searchAtom);
50
- const productList = (0, jotai.useAtomValue)(require_search.filteredSearchProductsAtom);
51
- const performSearch = (0, jotai.useSetAtom)(require_search.performSearchAtom);
52
- const [{ results: autocompleteResults, isLoading: isLoadingAutocomplete }, setAutocompleteState] = (0, jotai.useAtom)(require_globalSearch.autocompleteStateAtom);
53
- const [{ query }] = (0, jotai.useAtom)(require_search.searchParamsAtom);
54
- const [isFilterOpen, setIsFilterOpen] = (0, jotai.useAtom)(require_globalSearch.isFilterOpenAtom);
55
- const [selectedFilterOptions] = (0, jotai.useAtom)(require_search.searchSelectedFiltersAtom);
56
- const addFilter = (0, jotai.useSetAtom)(require_search.addSearchFilterAtom);
57
- const removeFilter = (0, jotai.useSetAtom)(require_search.removeSearchFilterAtom);
58
- const [productSorting, setProductSorting] = (0, jotai.useAtom)(require_search.searchProductSortingAtom);
59
- const clearFilters = (0, jotai.useSetAtom)(require_search.clearSearchFiltersAtom);
60
- const searchFilters = (0, jotai.useAtomValue)(require_search.searchFiltersAtom);
61
- const [isDirty, setIsDirty] = (0, react.useState)(true);
62
- const [focusedIndex, setFocusedIndex] = (0, react.useState)(-1);
63
- const [focusedOptionId, setFocusedOptionId] = (0, react.useState)(void 0);
64
- const [searchText, setSearchText] = (0, react.useState)(query || "");
65
- const searchResultsRef = (0, react.useRef)(null);
66
- const debouncedSearchText = require_useDebounce.useDebounce(searchText, 200);
67
- const searchResultsState = require_utils.getSearchResultsState(isLoadingSearch, searchData);
68
- const dynamicFilters = searchData?.filters || [];
69
- const safeProductCardConfig = config?.frontendConfig?.uiConfigs?.productCardConfig || {
70
- variant: "minimal",
71
- hoverVariant: "none",
72
- layoutVariant: "square"
73
- };
74
- const safeMerchantShortName = orgShortName || "";
75
- const availableDynamicFilters = (0, react.useMemo)(() => {
76
- return dynamicFilters.filter((dynamicFilterName) => !selectedFilterOptions.some((option) => option.id === `dynamic:${dynamicFilterName}`)).map((dynamicFilterName) => ({
77
- name: dynamicFilterName,
78
- displayName: require_utils$2.formatFilterDisplayName(dynamicFilterName)
79
- }));
80
- }, [dynamicFilters, selectedFilterOptions]);
81
- const filters = (0, react.useMemo)(() => {
82
- return [{
83
- filterId: "sort",
84
- displayName: "SORT",
85
- items: [
86
- {
87
- filterItemId: String(require_types$1.ProductSorting.FEATURED),
88
- displayName: "Relevance",
89
- productCount: 0,
90
- isSelected: productSorting === require_types$1.ProductSorting.FEATURED
91
- },
92
- {
93
- filterItemId: String(require_types$1.ProductSorting.PRICE_ASC),
94
- displayName: "Price: Low to High",
95
- productCount: 0,
96
- isSelected: productSorting === require_types$1.ProductSorting.PRICE_ASC
97
- },
98
- {
99
- filterItemId: String(require_types$1.ProductSorting.PRICE_DESC),
100
- displayName: "Price: High to Low",
101
- productCount: 0,
102
- isSelected: productSorting === require_types$1.ProductSorting.PRICE_DESC
103
- }
104
- ]
105
- }, ...searchFilters];
106
- }, [productSorting, searchFilters]);
107
- const filterButtonText = (0, react.useMemo)(() => {
108
- const selectedCount = filters.reduce((acc, filter) => {
109
- if (filter.filterId === "sort") return acc;
110
- return acc + filter.items.filter((item) => item.isSelected).length;
111
- }, 0);
112
- if (selectedCount === 0) return "Filter & Sort";
113
- return `Filter & Sort (${selectedCount})`;
114
- }, [filters]);
115
- const { trackEvent } = require_amplitudeContext.useAmplitude();
116
- const handleToggleDynamicFilter = (0, react.useCallback)(({ filter, dynamicFilterDisplayName }) => {
117
- trackEvent({
118
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchFilterClicked,
119
- eventProps: {
120
- filterType: "Dynamic",
121
- filterValue: filter,
122
- queryText: searchText
123
- }
124
- });
125
- addFilter(require_search.createFilterOption("dynamic", filter, dynamicFilterDisplayName));
126
- }, [
127
- addFilter,
128
- searchText,
129
- trackEvent
130
- ]);
131
- const handleRemoveFilter = (0, react.useCallback)((filter) => {
132
- removeFilter(filter.id);
133
- }, [removeFilter]);
134
- const handleSubmitSearch = (0, react.useCallback)(async () => {
135
- if (searchText.trim()) {
136
- trackEvent({
137
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchQuerySubmitted,
138
- eventProps: {
139
- searchOrigin: require_models.SpiffyWidgets.SearchResults,
140
- queryText: searchText.trim()
141
- },
142
- alsoSendToGoogleAnalytics: true
143
- });
144
- const url = new URL(window.location.href);
145
- url.searchParams.set("esq", searchText.trim());
146
- window.history.pushState({}, "", url);
147
- performSearch({ query: searchText.trim() });
148
- }
149
- }, [
150
- performSearch,
151
- searchText,
152
- trackEvent
153
- ]);
154
- const handleAutocompleteSelect = (0, react.useCallback)((suggestion) => {
155
- setSearchText(suggestion);
156
- handleSubmitSearch();
157
- }, [handleSubmitSearch, setSearchText]);
158
- const handleKeyDown = (0, react.useCallback)((event) => {
159
- if (event.key === "ArrowDown") {
160
- event.preventDefault();
161
- const newIndex = (focusedIndex + 1) % autocompleteResults.length;
162
- setFocusedIndex(newIndex);
163
- setFocusedOptionId(`option-${newIndex}`);
164
- } else if (event.key === "ArrowUp") {
165
- event.preventDefault();
166
- const newIndex = (focusedIndex - 1 + autocompleteResults.length) % autocompleteResults.length;
167
- setFocusedIndex(newIndex);
168
- setFocusedOptionId(`option-${newIndex}`);
169
- } else if (event.key === "Enter") if (focusedIndex === -1) {
170
- event.preventDefault();
171
- handleSubmitSearch();
172
- } else {
173
- event.preventDefault();
174
- const suggestionText = autocompleteResults[focusedIndex];
175
- handleAutocompleteSelect(suggestionText);
176
- }
177
- else if (event.key === "Escape") {
178
- event.preventDefault();
179
- setFocusedIndex(-1);
180
- setFocusedOptionId(void 0);
181
- }
182
- }, [
183
- autocompleteResults,
184
- focusedIndex,
185
- handleAutocompleteSelect,
186
- handleSubmitSearch
187
- ]);
188
- const handleSearchInputChange = (newValue) => {
189
- if (newValue.length === 1) trackEvent({
190
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchInputStarted,
191
- eventProps: { searchOrigin: require_models.SpiffyWidgets.SearchResults }
192
- });
193
- setSearchText(newValue);
194
- setIsDirty(true);
195
- };
196
- const handleSelectFilterItem = (0, react.useCallback)(({ filterId, filterItemId, isSelected, displayName }) => {
197
- if (filterId === "sort") {
198
- const newSort = filterItemId;
199
- trackEvent({
200
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchSortClicked,
201
- eventProps: {
202
- sortType: newSort,
203
- queryText: searchText
204
- }
205
- });
206
- setProductSorting(newSort);
207
- } else if (!isSelected) removeFilter(`${filterId}:${filterItemId}`);
208
- else {
209
- trackEvent({
210
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchFilterClicked,
211
- eventProps: {
212
- filterType: "Static",
213
- filterCategory: filterId,
214
- filterValue: filterItemId,
215
- queryText: searchText
216
- }
217
- });
218
- addFilter(require_search.createFilterOption(filterId, filterItemId, displayName));
219
- }
220
- }, [
221
- addFilter,
222
- removeFilter,
223
- setProductSorting,
224
- searchText,
225
- trackEvent
226
- ]);
227
- const handleClearAllFilters = (0, react.useCallback)(() => {
228
- setProductSorting(require_types$1.ProductSorting.FEATURED);
229
- clearFilters();
230
- }, [setProductSorting, clearFilters]);
231
- require_TrackComponentVisibleEvent.useTrackComponentVisibleEvent(require_models.SpiffyWidgets.SearchResults, searchResultsRef, {}, require_amplitudeContext.SpiffyMetricsEventName.SearchComponentVisible);
232
- (0, react.useEffect)(() => {
233
- if (productList.length > 0) trackEvent({
234
- eventName: require_amplitudeContext.SpiffyMetricsEventName.SearchResultsViewed,
235
- eventProps: {
236
- queryText: searchText,
237
- resultsCount: productList.length
238
- }
239
- });
240
- }, [
241
- productList.length,
242
- searchText,
243
- trackEvent
244
- ]);
245
- (0, react.useEffect)(() => {
246
- if (query && query !== searchText) setSearchText(query);
247
- }, [query]);
248
- (0, react.useEffect)(() => {
249
- const esq = new URLSearchParams(window.location.search).get("esq");
250
- if (esq) {
251
- setSearchText(esq);
252
- performSearch({ query: esq });
253
- }
254
- }, [performSearch]);
255
- const fetchAutocompleteSuggestions = (_query) => {
256
- return Promise.resolve([]);
257
- };
258
- (0, react.useEffect)(() => {
259
- if (fetchAutocompleteSuggestions === void 0) return;
260
- if (!isDirty || debouncedSearchText.length <= 2) {
261
- setAutocompleteState({
262
- results: [],
263
- isLoading: false
264
- });
265
- return;
266
- }
267
- setAutocompleteState((prev) => ({
268
- ...prev,
269
- isLoading: true
270
- }));
271
- const fetchData = async () => {
272
- try {
273
- const results = await fetchAutocompleteSuggestions?.(debouncedSearchText);
274
- setAutocompleteState({
275
- results: results ?? [],
276
- isLoading: false
277
- });
278
- } catch (error) {
279
- require_logger.logger_default.logError("Failed to fetch autocomplete suggestions:", error);
280
- setAutocompleteState({
281
- results: [],
282
- isLoading: false
283
- });
284
- }
285
- };
286
- fetchData();
287
- }, [
288
- debouncedSearchText,
289
- isDirty,
290
- setAutocompleteState
291
- ]);
292
- return {
293
- searchData,
294
- searchResponseId: searchData?.searchResponseId ?? "",
295
- merchantShortName: safeMerchantShortName,
296
- productCardConfig: safeProductCardConfig,
297
- productList,
298
- autocompleteResults,
299
- searchFilters: filters,
300
- availableDynamicFilters,
301
- selectedFilterOptions,
302
- searchText,
303
- searchResultsState,
304
- isLoadingAutocomplete,
305
- isLoadingSearch,
306
- isFilterOpen,
307
- isDirty,
308
- focusedIndex,
309
- focusedOptionId,
310
- filterButtonText,
311
- onSearchInputChange: handleSearchInputChange,
312
- onSubmitSearch: handleSubmitSearch,
313
- onAutocompleteSelect: handleAutocompleteSelect,
314
- onKeyDown: handleKeyDown,
315
- onToggleDynamicFilter: handleToggleDynamicFilter,
316
- onSelectFilterItem: handleSelectFilterItem,
317
- onRemoveFilter: handleRemoveFilter,
318
- onClearAllFilters: handleClearAllFilters,
319
- setIsFilterOpen,
320
- searchResultsRef
321
- };
322
- };
323
-
324
- //#endregion
325
- exports.useSearch = useSearch;
326
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsidXNlTmV3T3JnQ29uZmlnIiwib3JnU2hvcnROYW1lQXRvbSIsInNlYXJjaEF0b20iLCJmaWx0ZXJlZFNlYXJjaFByb2R1Y3RzQXRvbSIsInBlcmZvcm1TZWFyY2hBdG9tIiwiYXV0b2NvbXBsZXRlU3RhdGVBdG9tIiwic2VhcmNoUGFyYW1zQXRvbSIsImlzRmlsdGVyT3BlbkF0b20iLCJzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tIiwiYWRkU2VhcmNoRmlsdGVyQXRvbSIsInJlbW92ZVNlYXJjaEZpbHRlckF0b20iLCJzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20iLCJjbGVhclNlYXJjaEZpbHRlcnNBdG9tIiwic2VhcmNoRmlsdGVyc0F0b20iLCJ1c2VEZWJvdW5jZSIsImdldFNlYXJjaFJlc3VsdHNTdGF0ZSIsImZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIiwiUHJvZHVjdFNvcnRpbmciLCJ1c2VBbXBsaXR1ZGUiLCJTcGlmZnlNZXRyaWNzRXZlbnROYW1lIiwiY3JlYXRlRmlsdGVyT3B0aW9uIiwiU3BpZmZ5V2lkZ2V0cyIsImhhbmRsZVNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvU2VhcmNoL3VzZVNlYXJjaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQXRvbSwgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gXCJzcmMvaG9va3MvRGVib3VuY2UvdXNlRGVib3VuY2VcIjtcbmltcG9ydCB7XG4gIGFkZFNlYXJjaEZpbHRlckF0b20sXG4gIGNsZWFyU2VhcmNoRmlsdGVyc0F0b20sXG4gIGNyZWF0ZUZpbHRlck9wdGlvbixcbiAgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20sXG4gIHBlcmZvcm1TZWFyY2hBdG9tLFxuICByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tLFxuICBzZWFyY2hBdG9tLFxuICBzZWFyY2hGaWx0ZXJzQXRvbSxcbiAgc2VhcmNoUGFyYW1zQXRvbSxcbiAgc2VhcmNoUHJvZHVjdFNvcnRpbmdBdG9tLFxuICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICBTZWxlY3RlZEZpbHRlck9wdGlvbixcbn0gZnJvbSBcInNyYy9hdG9tcy9zZWFyY2hcIjtcbmltcG9ydCB7XG4gIGF1dG9jb21wbGV0ZVN0YXRlQXRvbSxcbiAgaXNGaWx0ZXJPcGVuQXRvbSxcbn0gZnJvbSBcInNyYy9hdG9tcy9nbG9iYWxTZWFyY2gvZ2xvYmFsU2VhcmNoXCI7XG5pbXBvcnQgeyBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3V0aWxzXCI7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3R5cGVzXCI7XG5pbXBvcnQge1xuICBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLFxuICB1c2VBbXBsaXR1ZGUsXG59IGZyb20gXCJzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBTcGlmZnlXaWRnZXRzIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvc3BpZmZ5V2lkZ2V0c1wiO1xuaW1wb3J0IHsgUHJvZHVjdENhcmRDb25maWcgfSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5pbXBvcnQgTG9nZ2VyIGZyb20gXCJzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXJcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2hcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3BvbnNlUHJvZHVjdCB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7XG4gIFNlYXJjaEZpbHRlckRhdHVtLFxuICBTZWxlY3RGaWx0ZXJJdGVtLFxufSBmcm9tIFwic3JjL3R5cGVzL3NlYXJjaC1maWx0ZXItdHlwZXNcIjtcbmltcG9ydCB7IGdldFNlYXJjaFJlc3VsdHNTdGF0ZSwgU2VhcmNoUmVzdWx0c1N0YXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBvcmdTaG9ydE5hbWVBdG9tIH0gZnJvbSBcInNyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnXCI7XG5pbXBvcnQgeyB1c2VOZXdPcmdDb25maWcgfSBmcm9tIFwiLi4vTmV3T3JnQ29uZmlnXCI7XG5pbXBvcnQgeyB1c2VUcmFja0NvbXBvbmVudFZpc2libGVFdmVudCB9IGZyb20gXCIuLi9UcmFja0NvbXBvbmVudFZpc2libGVFdmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdHNIb2NQcm9wcyB7XG4gIC8vIERhdGFcbiAgc2VhcmNoRGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbDtcbiAgc2VhcmNoUmVzcG9uc2VJZDogc3RyaW5nO1xuICBtZXJjaGFudFNob3J0TmFtZTogc3RyaW5nO1xuICBwcm9kdWN0Q2FyZENvbmZpZzogUHJvZHVjdENhcmRDb25maWc7XG4gIHByb2R1Y3RMaXN0OiBTZWFyY2hSZXNwb25zZVByb2R1Y3RbXTtcbiAgYXV0b2NvbXBsZXRlUmVzdWx0czogc3RyaW5nW107XG4gIHNlYXJjaEZpbHRlcnM6IFNlYXJjaEZpbHRlckRhdHVtW107XG4gIGF2YWlsYWJsZUR5bmFtaWNGaWx0ZXJzOiB7IG5hbWU6IHN0cmluZzsgZGlzcGxheU5hbWU6IHN0cmluZyB9W107XG4gIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXTtcblxuICAvLyBTdGF0ZVxuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHNlYXJjaFJlc3VsdHNTdGF0ZTogU2VhcmNoUmVzdWx0c1N0YXRlO1xuICBpc0xvYWRpbmdBdXRvY29tcGxldGU6IGJvb2xlYW47XG4gIGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbjtcbiAgaXNGaWx0ZXJPcGVuOiBib29sZWFuO1xuICBpc0RpcnR5OiBib29sZWFuO1xuICBmb2N1c2VkSW5kZXg6IG51bWJlcjtcbiAgZm9jdXNlZE9wdGlvbklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8gVUlcbiAgZmlsdGVyQnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gIC8vIEV2ZW50IEhhbmRsZXJzXG4gIG9uU2VhcmNoSW5wdXRDaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvblN1Ym1pdFNlYXJjaDogKCkgPT4gdm9pZDtcbiAgb25BdXRvY29tcGxldGVTZWxlY3Q6IChzdWdnZXN0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUR5bmFtaWNGaWx0ZXI6ICh7XG4gICAgZmlsdGVyLFxuICAgIGR5bmFtaWNGaWx0ZXJEaXNwbGF5TmFtZSxcbiAgfToge1xuICAgIGZpbHRlcjogc3RyaW5nO1xuICAgIGR5bmFtaWNGaWx0ZXJEaXNwbGF5TmFtZTogc3RyaW5nO1xuICB9KSA9PiB2b2lkO1xuICBvblNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW07XG4gIG9uUmVtb3ZlRmlsdGVyOiAoZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4gdm9pZDtcbiAgb25DbGVhckFsbEZpbHRlcnM6ICgpID0+IHZvaWQ7XG4gIHNldElzRmlsdGVyT3BlbjogKGlzRmlsdGVyT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBSZWZzXG4gIHNlYXJjaFJlc3VsdHNSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59XG5cbmV4cG9ydCBjb25zdCB1c2VTZWFyY2ggPSAoKTogU2VhcmNoUmVzdWx0c0hvY1Byb3BzID0+IHtcbiAgLy8gQXRvbXNcbiAgY29uc3QgY29uZmlnID0gdXNlTmV3T3JnQ29uZmlnKCk7XG4gIGNvbnN0IG9yZ1Nob3J0TmFtZSA9IHVzZUF0b21WYWx1ZShvcmdTaG9ydE5hbWVBdG9tKTtcbiAgY29uc3QgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBpc0xvYWRpbmdTZWFyY2ggfSA9XG4gICAgdXNlQXRvbVZhbHVlKHNlYXJjaEF0b20pO1xuICBjb25zdCBwcm9kdWN0TGlzdCA9IHVzZUF0b21WYWx1ZShmaWx0ZXJlZFNlYXJjaFByb2R1Y3RzQXRvbSk7XG4gIGNvbnN0IHBlcmZvcm1TZWFyY2ggPSB1c2VTZXRBdG9tKHBlcmZvcm1TZWFyY2hBdG9tKTtcbiAgY29uc3QgW1xuICAgIHsgcmVzdWx0czogYXV0b2NvbXBsZXRlUmVzdWx0cywgaXNMb2FkaW5nOiBpc0xvYWRpbmdBdXRvY29tcGxldGUgfSxcbiAgICBzZXRBdXRvY29tcGxldGVTdGF0ZSxcbiAgXSA9IHVzZUF0b20oYXV0b2NvbXBsZXRlU3RhdGVBdG9tKTtcbiAgY29uc3QgW3sgcXVlcnkgfV0gPSB1c2VBdG9tKHNlYXJjaFBhcmFtc0F0b20pO1xuICBjb25zdCBbaXNGaWx0ZXJPcGVuLCBzZXRJc0ZpbHRlck9wZW5dID0gdXNlQXRvbShpc0ZpbHRlck9wZW5BdG9tKTtcbiAgY29uc3QgW3NlbGVjdGVkRmlsdGVyT3B0aW9uc10gPSB1c2VBdG9tKHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBhZGRGaWx0ZXIgPSB1c2VTZXRBdG9tKGFkZFNlYXJjaEZpbHRlckF0b20pO1xuICBjb25zdCByZW1vdmVGaWx0ZXIgPSB1c2VTZXRBdG9tKHJlbW92ZVNlYXJjaEZpbHRlckF0b20pO1xuICBjb25zdCBbcHJvZHVjdFNvcnRpbmcsIHNldFByb2R1Y3RTb3J0aW5nXSA9IHVzZUF0b20oc2VhcmNoUHJvZHVjdFNvcnRpbmdBdG9tKTtcbiAgY29uc3QgY2xlYXJGaWx0ZXJzID0gdXNlU2V0QXRvbShjbGVhclNlYXJjaEZpbHRlcnNBdG9tKTtcbiAgY29uc3Qgc2VhcmNoRmlsdGVycyA9IHVzZUF0b21WYWx1ZShzZWFyY2hGaWx0ZXJzQXRvbSk7XG5cbiAgLy8gU3RhdGVcbiAgY29uc3QgW2lzRGlydHksIHNldElzRGlydHldID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtmb2N1c2VkSW5kZXgsIHNldEZvY3VzZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IFtmb2N1c2VkT3B0aW9uSWQsIHNldEZvY3VzZWRPcHRpb25JZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZShxdWVyeSB8fCBcIlwiKTtcblxuICAvLyBSZWZzXG4gIGNvbnN0IHNlYXJjaFJlc3VsdHNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIC8vIERlcml2ZWQgU3RhdGVcbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVGV4dCA9IHVzZURlYm91bmNlKHNlYXJjaFRleHQsIDIwMCk7XG4gIGNvbnN0IHNlYXJjaFJlc3VsdHNTdGF0ZSA9IGdldFNlYXJjaFJlc3VsdHNTdGF0ZShpc0xvYWRpbmdTZWFyY2gsIHNlYXJjaERhdGEpO1xuXG4gIGNvbnN0IGR5bmFtaWNGaWx0ZXJzID0gc2VhcmNoRGF0YT8uZmlsdGVycyB8fCBbXTtcblxuICAvLyBQcm92aWRlIGZhbGxiYWNrIHZhbHVlcyB3aGVuIG9yZ1VJQ29uZmlnIGlzIG5vdCB5ZXQgYXZhaWxhYmxlXG4gIGNvbnN0IHNhZmVQcm9kdWN0Q2FyZENvbmZpZyA9IGNvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlnc1xuICAgID8ucHJvZHVjdENhcmRDb25maWcgfHwge1xuICAgIHZhcmlhbnQ6IFwibWluaW1hbFwiLFxuICAgIGhvdmVyVmFyaWFudDogXCJub25lXCIsXG4gICAgbGF5b3V0VmFyaWFudDogXCJzcXVhcmVcIixcbiAgfTtcbiAgY29uc3Qgc2FmZU1lcmNoYW50U2hvcnROYW1lID0gb3JnU2hvcnROYW1lIHx8IFwiXCI7XG5cbiAgY29uc3QgYXZhaWxhYmxlRHluYW1pY0ZpbHRlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZHluYW1pY0ZpbHRlcnNcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChkeW5hbWljRmlsdGVyTmFtZSkgPT5cbiAgICAgICAgICAhc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGBkeW5hbWljOiR7ZHluYW1pY0ZpbHRlck5hbWV9YFxuICAgICAgICAgIClcbiAgICAgIClcbiAgICAgIC5tYXAoKGR5bmFtaWNGaWx0ZXJOYW1lKSA9PiAoe1xuICAgICAgICBuYW1lOiBkeW5hbWljRmlsdGVyTmFtZSxcbiAgICAgICAgZGlzcGxheU5hbWU6IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lKGR5bmFtaWNGaWx0ZXJOYW1lKSxcbiAgICAgIH0pKTtcbiAgfSwgW2R5bmFtaWNGaWx0ZXJzLCBzZWxlY3RlZEZpbHRlck9wdGlvbnNdKTtcblxuICBjb25zdCBmaWx0ZXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgc29ydE9wdGlvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpbHRlckl0ZW1JZDogU3RyaW5nKFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKSxcbiAgICAgICAgZGlzcGxheU5hbWU6IFwiUmVsZXZhbmNlXCIsXG4gICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgaXNTZWxlY3RlZDogcHJvZHVjdFNvcnRpbmcgPT09IFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVELFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBTdHJpbmcoUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDKSxcbiAgICAgICAgZGlzcGxheU5hbWU6IFwiUHJpY2U6IExvdyB0byBIaWdoXCIsXG4gICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgaXNTZWxlY3RlZDogcHJvZHVjdFNvcnRpbmcgPT09IFByb2R1Y3RTb3J0aW5nLlBSSUNFX0FTQyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpbHRlckl0ZW1JZDogU3RyaW5nKFByb2R1Y3RTb3J0aW5nLlBSSUNFX0RFU0MpLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJQcmljZTogSGlnaCB0byBMb3dcIixcbiAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICBpc1NlbGVjdGVkOiBwcm9kdWN0U29ydGluZyA9PT0gUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBbXG4gICAgICB7IGZpbHRlcklkOiBcInNvcnRcIiwgZGlzcGxheU5hbWU6IFwiU09SVFwiLCBpdGVtczogc29ydE9wdGlvbnMgfSxcbiAgICAgIC4uLnNlYXJjaEZpbHRlcnMsXG4gICAgXSBhcyBTZWFyY2hGaWx0ZXJEYXR1bVtdO1xuICB9LCBbcHJvZHVjdFNvcnRpbmcsIHNlYXJjaEZpbHRlcnNdKTtcblxuICBjb25zdCBmaWx0ZXJCdXR0b25UZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDb3VudCA9IGZpbHRlcnMucmVkdWNlKChhY2M6IG51bWJlciwgZmlsdGVyKSA9PiB7XG4gICAgICBpZiAoZmlsdGVyLmZpbHRlcklkID09PSBcInNvcnRcIikge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYyArIGZpbHRlci5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaXNTZWxlY3RlZCkubGVuZ3RoO1xuICAgIH0sIDApO1xuICAgIGlmIChzZWxlY3RlZENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gXCJGaWx0ZXIgJiBTb3J0XCI7XG4gICAgfVxuICAgIHJldHVybiBgRmlsdGVyICYgU29ydCAoJHtzZWxlY3RlZENvdW50fSlgO1xuICB9LCBbZmlsdGVyc10pO1xuXG4gIC8vIENhbGxiYWNrc1xuICBjb25zdCB7IHRyYWNrRXZlbnQgfSA9IHVzZUFtcGxpdHVkZSgpO1xuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUR5bmFtaWNGaWx0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmlsdGVyLFxuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lLFxuICAgIH06IHtcbiAgICAgIGZpbHRlcjogc3RyaW5nO1xuICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hGaWx0ZXJDbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgZmlsdGVyVHlwZTogXCJEeW5hbWljXCIsXG4gICAgICAgICAgZmlsdGVyVmFsdWU6IGZpbHRlcixcbiAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGFkZEZpbHRlcihcbiAgICAgICAgY3JlYXRlRmlsdGVyT3B0aW9uKFwiZHluYW1pY1wiLCBmaWx0ZXIsIGR5bmFtaWNGaWx0ZXJEaXNwbGF5TmFtZSlcbiAgICAgICk7XG4gICAgfSxcbiAgICBbYWRkRmlsdGVyLCBzZWFyY2hUZXh0LCB0cmFja0V2ZW50XVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVJlbW92ZUZpbHRlciA9IHVzZUNhbGxiYWNrKFxuICAgIChmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gICAgICByZW1vdmVGaWx0ZXIoZmlsdGVyLmlkKTtcbiAgICB9LFxuICAgIFtyZW1vdmVGaWx0ZXJdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0U2VhcmNoID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSkge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hRdWVyeVN1Ym1pdHRlZCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHNlYXJjaE9yaWdpbjogU3BpZmZ5V2lkZ2V0cy5TZWFyY2hSZXN1bHRzLFxuICAgICAgICAgIHF1ZXJ5VGV4dDogc2VhcmNoVGV4dC50cmltKCksXG4gICAgICAgIH0sXG4gICAgICAgIGFsc29TZW5kVG9Hb29nbGVBbmFseXRpY3M6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoXCJlc3FcIiwgc2VhcmNoVGV4dC50cmltKCkpO1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCB1cmwpO1xuICAgICAgcGVyZm9ybVNlYXJjaCh7IHF1ZXJ5OiBzZWFyY2hUZXh0LnRyaW0oKSB9KTtcbiAgICB9XG4gIH0sIFtwZXJmb3JtU2VhcmNoLCBzZWFyY2hUZXh0LCB0cmFja0V2ZW50XSk7XG5cbiAgY29uc3QgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHN1Z2dlc3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgc2V0U2VhcmNoVGV4dChzdWdnZXN0aW9uKTtcbiAgICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCgpO1xuICAgIH0sXG4gICAgW2hhbmRsZVN1Ym1pdFNlYXJjaCwgc2V0U2VhcmNoVGV4dF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gKGZvY3VzZWRJbmRleCArIDEpICUgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGg7XG4gICAgICAgIHNldEZvY3VzZWRJbmRleChuZXdJbmRleCk7XG4gICAgICAgIHNldEZvY3VzZWRPcHRpb25JZChgb3B0aW9uLSR7bmV3SW5kZXh9YCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPVxuICAgICAgICAgIChmb2N1c2VkSW5kZXggLSAxICsgYXV0b2NvbXBsZXRlUmVzdWx0cy5sZW5ndGgpICVcbiAgICAgICAgICBhdXRvY29tcGxldGVSZXN1bHRzLmxlbmd0aDtcbiAgICAgICAgc2V0Rm9jdXNlZEluZGV4KG5ld0luZGV4KTtcbiAgICAgICAgc2V0Rm9jdXNlZE9wdGlvbklkKGBvcHRpb24tJHtuZXdJbmRleH1gKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGhhbmRsZVN1Ym1pdFNlYXJjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvblRleHQgPSBhdXRvY29tcGxldGVSZXN1bHRzW2ZvY3VzZWRJbmRleF07XG4gICAgICAgICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0KHN1Z2dlc3Rpb25UZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0Rm9jdXNlZEluZGV4KC0xKTtcbiAgICAgICAgc2V0Rm9jdXNlZE9wdGlvbklkKHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhdXRvY29tcGxldGVSZXN1bHRzLFxuICAgICAgZm9jdXNlZEluZGV4LFxuICAgICAgaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0LFxuICAgICAgaGFuZGxlU3VibWl0U2VhcmNoLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2hJbnB1dENoYW5nZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hJbnB1dFN0YXJ0ZWQsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICBzZWFyY2hPcmlnaW46IFNwaWZmeVdpZGdldHMuU2VhcmNoUmVzdWx0cyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRTZWFyY2hUZXh0KG5ld1ZhbHVlKTtcbiAgICBzZXRJc0RpcnR5KHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmlsdGVySWQsXG4gICAgICBmaWx0ZXJJdGVtSWQsXG4gICAgICBpc1NlbGVjdGVkLFxuICAgICAgZGlzcGxheU5hbWUsXG4gICAgfToge1xuICAgICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICAgIGZpbHRlckl0ZW1JZDogc3RyaW5nO1xuICAgICAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgaWYgKGZpbHRlcklkID09PSBcInNvcnRcIikge1xuICAgICAgICBjb25zdCBuZXdTb3J0ID0gZmlsdGVySXRlbUlkIGFzIFByb2R1Y3RTb3J0aW5nO1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuU2VhcmNoU29ydENsaWNrZWQsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgc29ydFR5cGU6IG5ld1NvcnQsXG4gICAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFByb2R1Y3RTb3J0aW5nKG5ld1NvcnQpO1xuICAgICAgfSBlbHNlIGlmICghaXNTZWxlY3RlZCkge1xuICAgICAgICByZW1vdmVGaWx0ZXIoYCR7ZmlsdGVySWR9OiR7ZmlsdGVySXRlbUlkfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLlNlYXJjaEZpbHRlckNsaWNrZWQsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIGZpbHRlckNhdGVnb3J5OiBmaWx0ZXJJZCxcbiAgICAgICAgICAgIGZpbHRlclZhbHVlOiBmaWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBxdWVyeVRleHQ6IHNlYXJjaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGFkZEZpbHRlcihjcmVhdGVGaWx0ZXJPcHRpb24oZmlsdGVySWQsIGZpbHRlckl0ZW1JZCwgZGlzcGxheU5hbWUpKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZGRGaWx0ZXIsIHJlbW92ZUZpbHRlciwgc2V0UHJvZHVjdFNvcnRpbmcsIHNlYXJjaFRleHQsIHRyYWNrRXZlbnRdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2xlYXJBbGxGaWx0ZXJzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFByb2R1Y3RTb3J0aW5nKFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbiAgICBjbGVhckZpbHRlcnMoKTtcbiAgfSwgW3NldFByb2R1Y3RTb3J0aW5nLCBjbGVhckZpbHRlcnNdKTtcblxuICAvLyBTaWRlIEVmZmVjdHNcbiAgdXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQoXG4gICAgU3BpZmZ5V2lkZ2V0cy5TZWFyY2hSZXN1bHRzLFxuICAgIHNlYXJjaFJlc3VsdHNSZWYsXG4gICAge30sXG4gICAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hDb21wb25lbnRWaXNpYmxlXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJvZHVjdExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hSZXN1bHRzVmlld2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnlUZXh0OiBzZWFyY2hUZXh0LFxuICAgICAgICAgIHJlc3VsdHNDb3VudDogcHJvZHVjdExpc3QubGVuZ3RoLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJvZHVjdExpc3QubGVuZ3RoLCBzZWFyY2hUZXh0LCB0cmFja0V2ZW50XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocXVlcnkgJiYgcXVlcnkgIT09IHNlYXJjaFRleHQpIHtcbiAgICAgIHNldFNlYXJjaFRleHQocXVlcnkpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtxdWVyeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZXNxID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoXCJlc3FcIik7XG4gICAgaWYgKGVzcSkge1xuICAgICAgc2V0U2VhcmNoVGV4dChlc3EpO1xuICAgICAgcGVyZm9ybVNlYXJjaCh7IHF1ZXJ5OiBlc3EgfSk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3BlcmZvcm1TZWFyY2hdKTtcblxuICBjb25zdCBmZXRjaEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb25zID0gKF9xdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgLy8gVE9ETzogaW1wbGVtZW50IGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uc1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZldGNoQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNEaXJ0eSB8fCBkZWJvdW5jZWRTZWFyY2hUZXh0Lmxlbmd0aCA8PSAyKSB7XG4gICAgICBzZXRBdXRvY29tcGxldGVTdGF0ZSh7IHJlc3VsdHM6IFtdLCBpc0xvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEF1dG9jb21wbGV0ZVN0YXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBpc0xvYWRpbmc6IHRydWUgfSkpO1xuXG4gICAgY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbnM/LihcbiAgICAgICAgICBkZWJvdW5jZWRTZWFyY2hUZXh0XG4gICAgICAgICk7XG4gICAgICAgIHNldEF1dG9jb21wbGV0ZVN0YXRlKHsgcmVzdWx0czogcmVzdWx0cyA/PyBbXSwgaXNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcihcIkZhaWxlZCB0byBmZXRjaCBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbnM6XCIsIGVycm9yKTtcbiAgICAgICAgc2V0QXV0b2NvbXBsZXRlU3RhdGUoeyByZXN1bHRzOiBbXSwgaXNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hEYXRhKCk7XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hUZXh0LCBpc0RpcnR5LCBzZXRBdXRvY29tcGxldGVTdGF0ZV0pO1xuXG4gIHJldHVybiB7XG4gICAgc2VhcmNoRGF0YSxcbiAgICBzZWFyY2hSZXNwb25zZUlkOiBzZWFyY2hEYXRhPy5zZWFyY2hSZXNwb25zZUlkID8/IFwiXCIsXG4gICAgbWVyY2hhbnRTaG9ydE5hbWU6IHNhZmVNZXJjaGFudFNob3J0TmFtZSxcbiAgICBwcm9kdWN0Q2FyZENvbmZpZzogc2FmZVByb2R1Y3RDYXJkQ29uZmlnLFxuICAgIHByb2R1Y3RMaXN0LFxuICAgIGF1dG9jb21wbGV0ZVJlc3VsdHMsXG4gICAgc2VhcmNoRmlsdGVyczogZmlsdGVycyxcbiAgICBhdmFpbGFibGVEeW5hbWljRmlsdGVycyxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMsXG4gICAgc2VhcmNoVGV4dCxcbiAgICBzZWFyY2hSZXN1bHRzU3RhdGUsXG4gICAgaXNMb2FkaW5nQXV0b2NvbXBsZXRlLFxuICAgIGlzTG9hZGluZ1NlYXJjaCxcbiAgICBpc0ZpbHRlck9wZW4sXG4gICAgaXNEaXJ0eSxcbiAgICBmb2N1c2VkSW5kZXgsXG4gICAgZm9jdXNlZE9wdGlvbklkLFxuICAgIGZpbHRlckJ1dHRvblRleHQsXG4gICAgb25TZWFyY2hJbnB1dENoYW5nZTogaGFuZGxlU2VhcmNoSW5wdXRDaGFuZ2UsXG4gICAgb25TdWJtaXRTZWFyY2g6IGhhbmRsZVN1Ym1pdFNlYXJjaCxcbiAgICBvbkF1dG9jb21wbGV0ZVNlbGVjdDogaGFuZGxlQXV0b2NvbXBsZXRlU2VsZWN0LFxuICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93bixcbiAgICBvblRvZ2dsZUR5bmFtaWNGaWx0ZXI6IGhhbmRsZVRvZ2dsZUR5bmFtaWNGaWx0ZXIsXG4gICAgb25TZWxlY3RGaWx0ZXJJdGVtOiBoYW5kbGVTZWxlY3RGaWx0ZXJJdGVtLFxuICAgIG9uUmVtb3ZlRmlsdGVyOiBoYW5kbGVSZW1vdmVGaWx0ZXIsXG4gICAgb25DbGVhckFsbEZpbHRlcnM6IGhhbmRsZUNsZWFyQWxsRmlsdGVycyxcbiAgICBzZXRJc0ZpbHRlck9wZW4sXG4gICAgc2VhcmNoUmVzdWx0c1JlZixcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVGQSxNQUFhLGtCQUF5QztDQUVwRCxNQUFNLFNBQVNBLHNDQUFpQjtDQUNoQyxNQUFNLHVDQUE0QkMsc0NBQWlCO0NBQ25ELE1BQU0sRUFBRSxNQUFNLFlBQVksU0FBUyw0Q0FDcEJDLDBCQUFXO0NBQzFCLE1BQU0sc0NBQTJCQywwQ0FBMkI7Q0FDNUQsTUFBTSxzQ0FBMkJDLGlDQUFrQjtDQUNuRCxNQUFNLENBQ0osRUFBRSxTQUFTLHFCQUFxQixXQUFXLHlCQUMzQywyQ0FDVUMsMkNBQXNCO0NBQ2xDLE1BQU0sQ0FBQyxFQUFFLDhCQUFtQkMsZ0NBQWlCO0NBQzdDLE1BQU0sQ0FBQyxjQUFjLHNDQUEyQkMsc0NBQWlCO0NBQ2pFLE1BQU0sQ0FBQyw0Q0FBaUNDLHlDQUEwQjtDQUNsRSxNQUFNLGtDQUF1QkMsbUNBQW9CO0NBQ2pELE1BQU0scUNBQTBCQyxzQ0FBdUI7Q0FDdkQsTUFBTSxDQUFDLGdCQUFnQix3Q0FBNkJDLHdDQUF5QjtDQUM3RSxNQUFNLHFDQUEwQkMsc0NBQXVCO0NBQ3ZELE1BQU0sd0NBQTZCQyxpQ0FBa0I7Q0FHckQsTUFBTSxDQUFDLFNBQVMsa0NBQXVCLEtBQUs7Q0FDNUMsTUFBTSxDQUFDLGNBQWMsdUNBQTRCLEdBQUc7Q0FDcEQsTUFBTSxDQUFD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
@@ -1,61 +0,0 @@
1
- import "../../index-Bmub8e38.cjs";
2
- import "../../index-CiWEYzXl.cjs";
3
- import "../../index-CESxqFso.cjs";
4
- import "../../utils-B3x_9JTY.cjs";
5
- import "../../index-C_MIfxF0.cjs";
6
- import "../../chatElementDisplayLocation-DWmfNX_u.cjs";
7
- import { ProductCardConfig } from "../../frontendConfig-DnMZfvcA.cjs";
8
- import "../../test-types-ThQiO_cc.cjs";
9
- import "../../spiffyWidgets-BuS00VaQ.cjs";
10
- import { SearchResult } from "../../search-y-ioX5Mz.cjs";
11
- import "../../index-hdbCEjYy.cjs";
12
- import "../../types-CKMMb_gX.cjs";
13
- import { SelectedFilterOption } from "../../index-Dcgz5i3Q.cjs";
14
- import { SearchFilterDatum, SelectFilterItem } from "../../search-filter-types-BBIjvwJV.cjs";
15
- import { SearchResultsState } from "../../utils-BSYichA7.cjs";
16
- import { SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
17
-
18
- //#region src/hooks/Search/useSearch.d.ts
19
- interface SearchResultsHocProps {
20
- searchData: SearchResult | null;
21
- searchResponseId: string;
22
- merchantShortName: string;
23
- productCardConfig: ProductCardConfig;
24
- productList: SearchResponseProduct[];
25
- autocompleteResults: string[];
26
- searchFilters: SearchFilterDatum[];
27
- availableDynamicFilters: {
28
- name: string;
29
- displayName: string;
30
- }[];
31
- selectedFilterOptions: SelectedFilterOption[];
32
- searchText: string;
33
- searchResultsState: SearchResultsState;
34
- isLoadingAutocomplete: boolean;
35
- isLoadingSearch: boolean;
36
- isFilterOpen: boolean;
37
- isDirty: boolean;
38
- focusedIndex: number;
39
- focusedOptionId: string | undefined;
40
- filterButtonText: string;
41
- onSearchInputChange: (value: string) => void;
42
- onSubmitSearch: () => void;
43
- onAutocompleteSelect: (suggestion: string) => void;
44
- onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
45
- onToggleDynamicFilter: ({
46
- filter,
47
- dynamicFilterDisplayName
48
- }: {
49
- filter: string;
50
- dynamicFilterDisplayName: string;
51
- }) => void;
52
- onSelectFilterItem: SelectFilterItem;
53
- onRemoveFilter: (filter: SelectedFilterOption) => void;
54
- onClearAllFilters: () => void;
55
- setIsFilterOpen: (isFilterOpen: boolean) => void;
56
- searchResultsRef: React.RefObject<HTMLDivElement>;
57
- }
58
- declare const useSearch: () => SearchResultsHocProps;
59
- //#endregion
60
- export { SearchResultsHocProps, useSearch };
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL1NlYXJjaC91c2VTZWFyY2guZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RlZEZpbHRlck9wdGlvbiB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoXCI7XG5pbXBvcnQgeyBQcm9kdWN0Q2FyZENvbmZpZyB9IGZyb20gXCJzcmMvY29udGV4dHMvdHlwZXNcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2hcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3BvbnNlUHJvZHVjdCB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7IFNlYXJjaEZpbHRlckRhdHVtLCBTZWxlY3RGaWx0ZXJJdGVtIH0gZnJvbSBcInNyYy90eXBlcy9zZWFyY2gtZmlsdGVyLXR5cGVzXCI7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRzU3RhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0c0hvY1Byb3BzIHtcbiAgICBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICAgIHNlYXJjaFJlc3BvbnNlSWQ6IHN0cmluZztcbiAgICBtZXJjaGFudFNob3J0TmFtZTogc3RyaW5nO1xuICAgIHByb2R1Y3RDYXJkQ29uZmlnOiBQcm9kdWN0Q2FyZENvbmZpZztcbiAgICBwcm9kdWN0TGlzdDogU2VhcmNoUmVzcG9uc2VQcm9kdWN0W107XG4gICAgYXV0b2NvbXBsZXRlUmVzdWx0czogc3RyaW5nW107XG4gICAgc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVyRGF0dW1bXTtcbiAgICBhdmFpbGFibGVEeW5hbWljRmlsdGVyczoge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXTtcbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gICAgc2VhcmNoUmVzdWx0c1N0YXRlOiBTZWFyY2hSZXN1bHRzU3RhdGU7XG4gICAgaXNMb2FkaW5nQXV0b2NvbXBsZXRlOiBib29sZWFuO1xuICAgIGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbjtcbiAgICBpc0ZpbHRlck9wZW46IGJvb2xlYW47XG4gICAgaXNEaXJ0eTogYm9vbGVhbjtcbiAgICBmb2N1c2VkSW5kZXg6IG51bWJlcjtcbiAgICBmb2N1c2VkT3B0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBmaWx0ZXJCdXR0b25UZXh0OiBzdHJpbmc7XG4gICAgb25TZWFyY2hJbnB1dENoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgb25TdWJtaXRTZWFyY2g6ICgpID0+IHZvaWQ7XG4gICAgb25BdXRvY29tcGxldGVTZWxlY3Q6IChzdWdnZXN0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWQ7XG4gICAgb25Ub2dnbGVEeW5hbWljRmlsdGVyOiAoeyBmaWx0ZXIsIGR5bmFtaWNGaWx0ZXJEaXNwbGF5TmFtZSwgfToge1xuICAgICAgICBmaWx0ZXI6IHN0cmluZztcbiAgICAgICAgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgfSkgPT4gdm9pZDtcbiAgICBvblNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW07XG4gICAgb25SZW1vdmVGaWx0ZXI6IChmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB2b2lkO1xuICAgIG9uQ2xlYXJBbGxGaWx0ZXJzOiAoKSA9PiB2b2lkO1xuICAgIHNldElzRmlsdGVyT3BlbjogKGlzRmlsdGVyT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBzZWFyY2hSZXN1bHRzUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2VhcmNoOiAoKSA9PiBTZWFyY2hSZXN1bHRzSG9jUHJvcHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLElBQVcsd0JBQXdCO0NBQUM7T0FBRztPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBLE1BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQ3ZDLElBQVcsWUFBWSxDQUFDLFdBQVcsc0JBQUEifQ==
@@ -1,61 +0,0 @@
1
- import "../../index-Dr_c2DDq.js";
2
- import "../../index-BN-3ctk_.js";
3
- import "../../index-DsiilEj-.js";
4
- import "../../utils-B1xLx9S8.js";
5
- import "../../index-CK_J3QMY.js";
6
- import "../../chatElementDisplayLocation-BwiXrkN7.js";
7
- import { ProductCardConfig } from "../../frontendConfig-Dqxbqo8G.js";
8
- import "../../test-types-EzMFw_U3.js";
9
- import "../../spiffyWidgets-GILaqHv6.js";
10
- import { SearchResult } from "../../search-BLShhjvR.js";
11
- import "../../index-BoYC9XLW.js";
12
- import "../../types-BN2z0HcL.js";
13
- import { SelectedFilterOption } from "../../index-Bl9pjZeG.js";
14
- import { SearchFilterDatum, SelectFilterItem } from "../../search-filter-types-BlmWOnlA.js";
15
- import { SearchResultsState } from "../../utils-FU_r-pTj.js";
16
- import { SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
17
-
18
- //#region src/hooks/Search/useSearch.d.ts
19
- interface SearchResultsHocProps {
20
- searchData: SearchResult | null;
21
- searchResponseId: string;
22
- merchantShortName: string;
23
- productCardConfig: ProductCardConfig;
24
- productList: SearchResponseProduct[];
25
- autocompleteResults: string[];
26
- searchFilters: SearchFilterDatum[];
27
- availableDynamicFilters: {
28
- name: string;
29
- displayName: string;
30
- }[];
31
- selectedFilterOptions: SelectedFilterOption[];
32
- searchText: string;
33
- searchResultsState: SearchResultsState;
34
- isLoadingAutocomplete: boolean;
35
- isLoadingSearch: boolean;
36
- isFilterOpen: boolean;
37
- isDirty: boolean;
38
- focusedIndex: number;
39
- focusedOptionId: string | undefined;
40
- filterButtonText: string;
41
- onSearchInputChange: (value: string) => void;
42
- onSubmitSearch: () => void;
43
- onAutocompleteSelect: (suggestion: string) => void;
44
- onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
45
- onToggleDynamicFilter: ({
46
- filter,
47
- dynamicFilterDisplayName
48
- }: {
49
- filter: string;
50
- dynamicFilterDisplayName: string;
51
- }) => void;
52
- onSelectFilterItem: SelectFilterItem;
53
- onRemoveFilter: (filter: SelectedFilterOption) => void;
54
- onClearAllFilters: () => void;
55
- setIsFilterOpen: (isFilterOpen: boolean) => void;
56
- searchResultsRef: React.RefObject<HTMLDivElement>;
57
- }
58
- declare const useSearch: () => SearchResultsHocProps;
59
- //#endregion
60
- export { SearchResultsHocProps, useSearch };
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvU2VhcmNoL3VzZVNlYXJjaC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGVkRmlsdGVyT3B0aW9uIH0gZnJvbSBcInNyYy9hdG9tcy9zZWFyY2hcIjtcbmltcG9ydCB7IFByb2R1Y3RDYXJkQ29uZmlnIH0gZnJvbSBcInNyYy9jb250ZXh0cy90eXBlc1wiO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3NlYXJjaFwiO1xuaW1wb3J0IHsgU2VhcmNoUmVzcG9uc2VQcm9kdWN0IH0gZnJvbSBcIkBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudFwiO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyRGF0dW0sIFNlbGVjdEZpbHRlckl0ZW0gfSBmcm9tIFwic3JjL3R5cGVzL3NlYXJjaC1maWx0ZXItdHlwZXNcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdHNTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHRzSG9jUHJvcHMge1xuICAgIHNlYXJjaERhdGE6IFNlYXJjaFJlc3VsdCB8IG51bGw7XG4gICAgc2VhcmNoUmVzcG9uc2VJZDogc3RyaW5nO1xuICAgIG1lcmNoYW50U2hvcnROYW1lOiBzdHJpbmc7XG4gICAgcHJvZHVjdENhcmRDb25maWc6IFByb2R1Y3RDYXJkQ29uZmlnO1xuICAgIHByb2R1Y3RMaXN0OiBTZWFyY2hSZXNwb25zZVByb2R1Y3RbXTtcbiAgICBhdXRvY29tcGxldGVSZXN1bHRzOiBzdHJpbmdbXTtcbiAgICBzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJEYXR1bVtdO1xuICAgIGF2YWlsYWJsZUR5bmFtaWNGaWx0ZXJzOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICB9W107XG4gICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zOiBTZWxlY3RlZEZpbHRlck9wdGlvbltdO1xuICAgIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgICBzZWFyY2hSZXN1bHRzU3RhdGU6IFNlYXJjaFJlc3VsdHNTdGF0ZTtcbiAgICBpc0xvYWRpbmdBdXRvY29tcGxldGU6IGJvb2xlYW47XG4gICAgaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuO1xuICAgIGlzRmlsdGVyT3BlbjogYm9vbGVhbjtcbiAgICBpc0RpcnR5OiBib29sZWFuO1xuICAgIGZvY3VzZWRJbmRleDogbnVtYmVyO1xuICAgIGZvY3VzZWRPcHRpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGZpbHRlckJ1dHRvblRleHQ6IHN0cmluZztcbiAgICBvblNlYXJjaElucHV0Q2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgICBvblN1Ym1pdFNlYXJjaDogKCkgPT4gdm9pZDtcbiAgICBvbkF1dG9jb21wbGV0ZVNlbGVjdDogKHN1Z2dlc3Rpb246IHN0cmluZykgPT4gdm9pZDtcbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgICBvblRvZ2dsZUR5bmFtaWNGaWx0ZXI6ICh7IGZpbHRlciwgZHluYW1pY0ZpbHRlckRpc3BsYXlOYW1lLCB9OiB7XG4gICAgICAgIGZpbHRlcjogc3RyaW5nO1xuICAgICAgICBkeW5hbWljRmlsdGVyRGlzcGxheU5hbWU6IHN0cmluZztcbiAgICB9KSA9PiB2b2lkO1xuICAgIG9uU2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbTtcbiAgICBvblJlbW92ZUZpbHRlcjogKGZpbHRlcjogU2VsZWN0ZWRGaWx0ZXJPcHRpb24pID0+IHZvaWQ7XG4gICAgb25DbGVhckFsbEZpbHRlcnM6ICgpID0+IHZvaWQ7XG4gICAgc2V0SXNGaWx0ZXJPcGVuOiAoaXNGaWx0ZXJPcGVuOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIHNlYXJjaFJlc3VsdHNSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VTZWFyY2g6ICgpID0+IFNlYXJjaFJlc3VsdHNIb2NQcm9wcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsSUFBVyx3QkFBd0I7Q0FBQztPQUFHO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUEsTUFBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDdkMsSUFBVyxZQUFZLENBQUMsV0FBVyxzQkFBQSJ9