@envive-ai/react-hooks 0.1.3 → 0.1.4

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 (428) hide show
  1. package/dist/adapters/amplitude/index.cjs +13 -13
  2. package/dist/adapters/amplitude/index.d.cts +5 -3
  3. package/dist/adapters/amplitude/index.d.ts +5 -3
  4. package/dist/adapters/amplitude/index.js +10 -10
  5. package/dist/api-B2euFL-5.cjs +269 -0
  6. package/dist/api-XRr_lAG6.js +190 -0
  7. package/dist/application/config/index.cjs +14 -5
  8. package/dist/application/config/index.d.cts +2 -1
  9. package/dist/application/config/index.d.ts +2 -1
  10. package/dist/application/config/index.js +14 -5
  11. package/dist/application/models/graphql/index.cjs +12 -12
  12. package/dist/application/models/graphql/index.d.cts +1 -1
  13. package/dist/application/models/graphql/index.d.ts +1 -1
  14. package/dist/application/models/graphql/index.js +10 -10
  15. package/dist/application/models/guards/api/index.cjs +2 -2
  16. package/dist/application/models/guards/api/index.d.cts +2 -2
  17. package/dist/application/models/guards/api/index.d.ts +2 -2
  18. package/dist/application/models/guards/api/index.js +2 -2
  19. package/dist/application/models/index.cjs +54 -54
  20. package/dist/application/models/index.d.cts +8 -9
  21. package/dist/application/models/index.d.ts +8 -9
  22. package/dist/application/models/index.js +10 -10
  23. package/dist/application/models/utilityTypes/index.cjs +1 -1
  24. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  25. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  26. package/dist/application/models/utilityTypes/index.js +1 -1
  27. package/dist/application/models/variantInfo/index.cjs +1 -1
  28. package/dist/application/models/variantInfo/index.d.cts +1 -1
  29. package/dist/application/models/variantInfo/index.d.ts +1 -1
  30. package/dist/application/models/variantInfo/index.js +1 -1
  31. package/dist/application/service/customerService/index.cjs +2 -2
  32. package/dist/application/service/customerService/index.d.cts +2 -2
  33. package/dist/application/service/customerService/index.d.ts +2 -2
  34. package/dist/application/service/customerService/index.js +2 -2
  35. package/dist/application/service/index.cjs +37 -757
  36. package/dist/application/service/index.d.cts +14 -22
  37. package/dist/application/service/index.d.ts +14 -22
  38. package/dist/application/service/index.js +12 -727
  39. package/dist/application/utils/index.cjs +37 -37
  40. package/dist/application/utils/index.d.cts +13 -13
  41. package/dist/application/utils/index.d.ts +12 -12
  42. package/dist/application/utils/index.js +10 -10
  43. package/dist/atomStore-B1cgmbP0.js +32 -0
  44. package/dist/atomStore-JwGb7pcy.cjs +58 -0
  45. package/dist/atoms/app/index.cjs +16 -16
  46. package/dist/atoms/app/index.d.cts +11 -11
  47. package/dist/atoms/app/index.d.ts +12 -12
  48. package/dist/atoms/app/index.js +10 -10
  49. package/dist/atoms/atomStore/index.cjs +1 -2
  50. package/dist/atoms/atomStore/index.d.cts +2 -1
  51. package/dist/atoms/atomStore/index.d.ts +2 -1
  52. package/dist/atoms/atomStore/index.js +1 -2
  53. package/dist/atoms/chat/index.cjs +40 -40
  54. package/dist/atoms/chat/index.d.cts +37 -37
  55. package/dist/atoms/chat/index.d.ts +38 -38
  56. package/dist/atoms/chat/index.js +10 -10
  57. package/dist/atoms/globalSearch/index.cjs +1 -1
  58. package/dist/atoms/globalSearch/index.d.cts +7 -6
  59. package/dist/atoms/globalSearch/index.d.ts +7 -6
  60. package/dist/atoms/globalSearch/index.js +1 -1
  61. package/dist/atoms/org/index.cjs +37 -40
  62. package/dist/atoms/org/index.d.cts +32 -53
  63. package/dist/atoms/org/index.d.ts +31 -52
  64. package/dist/atoms/org/index.js +11 -12
  65. package/dist/atoms/search/index.cjs +41 -43
  66. package/dist/atoms/search/index.d.cts +9 -10
  67. package/dist/atoms/search/index.d.ts +9 -10
  68. package/dist/atoms/search/index.js +10 -12
  69. package/dist/bandolier-B76-OE75.cjs +1230 -0
  70. package/dist/bandolier-DRn_x1g1.js +1230 -0
  71. package/dist/carpe-kHi4RLB5.cjs +608 -0
  72. package/dist/carpe-qrSU99gq.js +606 -0
  73. package/dist/{chat-CCgyDehy.cjs → chat-BgONoYU7.cjs} +2 -1
  74. package/dist/chat-CLJ4NWcN.js +26 -0
  75. package/dist/{components-CScS7Ii-.cjs → components-BKZbet67.cjs} +2 -1
  76. package/dist/components-CV1fhAkj.js +11 -0
  77. package/dist/config/locators/components/chat/index.cjs +1 -1
  78. package/dist/config/locators/components/chat/index.d.cts +1 -1
  79. package/dist/config/locators/components/chat/index.d.ts +1 -1
  80. package/dist/config/locators/components/chat/index.js +1 -1
  81. package/dist/config/locators/components/chat/variants/index.cjs +2 -1
  82. package/dist/config/locators/components/chat/variants/index.d.cts +2 -1
  83. package/dist/config/locators/components/chat/variants/index.d.ts +2 -1
  84. package/dist/config/locators/components/chat/variants/index.js +2 -1
  85. package/dist/config/locators/components/index.cjs +1 -1
  86. package/dist/config/locators/components/index.d.cts +1 -1
  87. package/dist/config/locators/components/index.d.ts +1 -1
  88. package/dist/config/locators/components/index.js +1 -1
  89. package/dist/config/locators/components/search/index.cjs +2 -1
  90. package/dist/config/locators/components/search/index.d.cts +2 -1
  91. package/dist/config/locators/components/search/index.d.ts +2 -1
  92. package/dist/config/locators/components/search/index.js +2 -1
  93. package/dist/config/locators/index.cjs +4 -4
  94. package/dist/config/locators/index.d.cts +4 -3
  95. package/dist/config/locators/index.d.ts +4 -3
  96. package/dist/config/locators/index.js +4 -4
  97. package/dist/contexts/index.cjs +20 -23
  98. package/dist/contexts/index.d.cts +38 -19
  99. package/dist/contexts/index.d.ts +41 -22
  100. package/dist/contexts/index.js +11 -17
  101. package/dist/contexts-CQDwe3rK.cjs +14333 -0
  102. package/dist/contexts-e2sM-B9g.js +12919 -0
  103. package/dist/coterie-mMirPcHP.js +240 -0
  104. package/dist/coterie-yQ-_JXSw.cjs +240 -0
  105. package/dist/customerService-BG1uNZZ1.cjs +36 -0
  106. package/dist/customerService-BHQRnLhC.js +23 -0
  107. package/dist/custservice-types-C83itZmy.cjs +35 -0
  108. package/dist/custservice-types-DPQ-4TI6.js +23 -0
  109. package/dist/default-8Jfv8ehQ.cjs +199 -0
  110. package/dist/default-C8PQf-38.js +176 -0
  111. package/dist/default-LukSiCz1.js +4 -0
  112. package/dist/default-rJSJ887P.cjs +4 -0
  113. package/dist/divIds-CWkntTsx.js +23 -0
  114. package/dist/{divIds-CFyAjjp3.cjs → divIds-DEL_-qU0.cjs} +2 -1
  115. package/dist/dreamlandBaby-DHltv12Z.cjs +347 -0
  116. package/dist/dreamlandBaby-cG0HM9bt.js +347 -0
  117. package/dist/{embedded-BlXJUbik.cjs → embedded--2L0F4b5.cjs} +2 -1
  118. package/dist/embedded-C5uJqmuD.js +23 -0
  119. package/dist/entrypoints-CNUvSgnk.js +7 -0
  120. package/dist/entrypoints-DM9Sm18O.cjs +19 -0
  121. package/dist/events/index.cjs +1 -1
  122. package/dist/events/index.d.cts +2 -1
  123. package/dist/events/index.d.ts +2 -1
  124. package/dist/events/index.js +1 -1
  125. package/dist/events-ClCDFK7t.js +78 -0
  126. package/dist/events-Da7gpmGv.cjs +90 -0
  127. package/dist/featureFlagService-5wdmW02z.d.ts +18 -0
  128. package/dist/featureFlagService-DaelrXEk.d.cts +18 -0
  129. package/dist/fiveCbd-Cvnwh03g.cjs +614 -0
  130. package/dist/fiveCbd-DhYMlsf9.js +614 -0
  131. package/dist/forLoveAndLemons-C8DuUexW.js +666 -0
  132. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +668 -0
  133. package/dist/{globalSearch-hxbXekus.cjs → globalSearch-BTeZxvk1.cjs} +2 -1
  134. package/dist/globalSearch-b0wC7ZEO.js +14 -0
  135. package/dist/greenpan-B4Pu65kV.js +398 -0
  136. package/dist/greenpan-BL5p6j7f.cjs +398 -0
  137. package/dist/grooveLife-DjKWHoN3.cjs +343 -0
  138. package/dist/grooveLife-JK0TyaPz.js +343 -0
  139. package/dist/homegrownCannabis-DxqSDkmS.js +411 -0
  140. package/dist/homegrownCannabis-ZnfCqW-m.cjs +411 -0
  141. package/dist/hooks/index.cjs +38 -38
  142. package/dist/hooks/index.d.cts +25 -16
  143. package/dist/hooks/index.d.ts +30 -21
  144. package/dist/hooks/index.js +11 -17
  145. package/dist/index-BTK5uzs6.d.cts +98 -0
  146. package/dist/index-BfuO9b0Q.d.ts +749 -0
  147. package/dist/index-BzgkfbNO.d.cts +228 -0
  148. package/dist/index-C62lPpy4.d.cts +25 -0
  149. package/dist/index-CExtydIH.d.ts +9 -0
  150. package/dist/index-CKKkTsms.d.ts +39 -0
  151. package/dist/index-CNsGWfS6.d.cts +749 -0
  152. package/dist/index-CYtsPztZ.d.cts +203 -0
  153. package/dist/index-C_C0tLeD.d.ts +203 -0
  154. package/dist/index-ClJ0nMsR.d.cts +184 -0
  155. package/dist/index-Cx9e-fRi.d.ts +184 -0
  156. package/dist/index-D2VaMPA3.d.ts +98 -0
  157. package/dist/index-D46Rd0io.d.cts +39 -0
  158. package/dist/index-DFL1dIT_.d.ts +7 -0
  159. package/dist/index-DPx8s5YH.d.ts +25 -0
  160. package/dist/index-Dxpscrvz.d.ts +228 -0
  161. package/dist/index-MFbPQ8Ji.d.ts +95 -0
  162. package/dist/index-VSFakgAI.d.cts +95 -0
  163. package/dist/index-jBATkcc_.d.cts +9 -0
  164. package/dist/index-zZjcds15.d.cts +7 -0
  165. package/dist/interceptors/index.cjs +12 -13
  166. package/dist/interceptors/index.d.cts +10 -10
  167. package/dist/interceptors/index.d.ts +10 -10
  168. package/dist/interceptors/index.js +10 -11
  169. package/dist/jackArcher-CXf_IAmC.js +728 -0
  170. package/dist/jackArcher-mGkojXek.cjs +728 -0
  171. package/dist/jordanCraig-BvCvPRoR.js +1787 -0
  172. package/dist/jordanCraig-Dv8pVCiS.cjs +1787 -0
  173. package/dist/kindredBravely-UQP7wiNu.cjs +491 -0
  174. package/dist/kindredBravely-X8F_LNph.js +491 -0
  175. package/dist/kutFromTheKloth-BhYKk3CN.cjs +370 -0
  176. package/dist/kutFromTheKloth-D1xsTSJr.js +370 -0
  177. package/dist/larryAndSerges-1411NuZa.cjs +262 -0
  178. package/dist/larryAndSerges-DVIRLItu.js +262 -0
  179. package/dist/leapsAndRebounds-BJ8mwr33.js +361 -0
  180. package/dist/leapsAndRebounds-UcP9EJVO.cjs +361 -0
  181. package/dist/logger-Dln20ans.cjs +26 -0
  182. package/dist/logger-pdEEY8T2.js +20 -0
  183. package/dist/longevityrx-BFSv9GF5.cjs +321 -0
  184. package/dist/longevityrx-Cp6wleWr.js +321 -0
  185. package/dist/lookOptic-BGhU4910.js +283 -0
  186. package/dist/lookOptic-KieSqskd.cjs +283 -0
  187. package/dist/mantraBrand-CHQw-0nw.cjs +751 -0
  188. package/dist/mantraBrand-DrqG9uqO.js +751 -0
  189. package/dist/medterra-CLG6Co1C.cjs +584 -0
  190. package/dist/medterra-D8ZX9NZC.js +584 -0
  191. package/dist/modells-BzyPwN2m.cjs +485 -0
  192. package/dist/modells-CAfqOCW4.js +485 -0
  193. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  194. package/dist/nodeSelector-BiCDowlK.d.ts +31 -0
  195. package/dist/orgConfigResults--dAwtw3W.d.ts +881 -0
  196. package/dist/orgConfigResults-BL0XBA6x.d.cts +881 -0
  197. package/dist/pressedFloral-DULBuQwR.cjs +662 -0
  198. package/dist/pressedFloral-Dp-7Fk3S.js +662 -0
  199. package/dist/search-filter-types-BNTLVXqQ.d.cts +102 -0
  200. package/dist/search-filter-types-DkmH1TxJ.d.ts +102 -0
  201. package/dist/skinPerfection-BxuYCeJX.js +335 -0
  202. package/dist/skinPerfection-Cd3XZ6By.cjs +335 -0
  203. package/dist/snapSupplements-Bf6htPM0.js +286 -0
  204. package/dist/snapSupplements-ZFnXyMuZ.cjs +286 -0
  205. package/dist/socialProofClasses-DdzG1tZy.js +10 -0
  206. package/dist/socialProofClasses-ky69yppk.cjs +40 -0
  207. package/dist/spanx-CwDPQaGj.js +662 -0
  208. package/dist/spanx-Cyd4qDlK.cjs +664 -0
  209. package/dist/spanxStaging-D43nyAGy.js +846 -0
  210. package/dist/spanxStaging-ijbYnHzr.cjs +849 -0
  211. package/dist/suggestionBarV2-types-CwOXzIKq.js +10 -0
  212. package/dist/{suggestionBarV2-types-DG3Ekk44.cjs → suggestionBarV2-types-Dc4-zJlV.cjs} +2 -1
  213. package/dist/supergoop-BnbFG7hm.cjs +338 -0
  214. package/dist/supergoop-CY043wIg.js +336 -0
  215. package/dist/test-types-CXVJxTeu.d.ts +40 -0
  216. package/dist/test-types-CuOq25VT.d.cts +40 -0
  217. package/dist/types/index.cjs +2 -2
  218. package/dist/types/index.d.cts +2 -2
  219. package/dist/types/index.d.ts +2 -2
  220. package/dist/types/index.js +2 -2
  221. package/dist/types-BF_CJeck.js +177 -0
  222. package/dist/types-CD4LFta-.d.cts +33 -0
  223. package/dist/types-CNH4sfF-.cjs +231 -0
  224. package/dist/types-DBdI0j89.d.ts +33 -0
  225. package/dist/uniqueVintage-Cui74mlJ.js +1212 -0
  226. package/dist/uniqueVintage-R2Jcu1y1.cjs +1214 -0
  227. package/dist/variant-CKVRF2-W.d.ts +13 -0
  228. package/dist/variant-raYuOP4L.d.cts +13 -0
  229. package/dist/venaCbd-o5_vOp4e.js +366 -0
  230. package/dist/venaCbd-r-IxEVc1.cjs +366 -0
  231. package/dist/westonJonBoucher-C95EuCl-.js +423 -0
  232. package/dist/westonJonBoucher-DjGEW3ZB.cjs +423 -0
  233. package/dist/wineEnthusiast-DeTFY8Gm.js +941 -0
  234. package/dist/wineEnthusiast-DvfcV5B3.cjs +941 -0
  235. package/dist/wolfMattress-6xPfOJt3.js +373 -0
  236. package/dist/wolfMattress-BjGnGKjP.cjs +373 -0
  237. package/dist/wolfTactical-Bi3WZu0m.cjs +350 -0
  238. package/dist/wolfTactical-C_F9-oPX.js +350 -0
  239. package/package.json +1 -1
  240. package/src/adapters/amplitude/amplitudeAdapter.ts +32 -9
  241. package/src/adapters/spiffy/commerce/api.ts +17 -8
  242. package/src/adapters/spiffy/commerce/graphql.ts +16 -5
  243. package/src/application/config/generalStaticConfig.ts +5 -2
  244. package/src/application/models/api/orgConfigResults.ts +6 -2
  245. package/src/application/models/validators/validateGraphQLColorsConfig.ts +23 -21
  246. package/src/application/service/cdnService.ts +4 -2
  247. package/src/application/service/index.ts +0 -1
  248. package/src/application/service/pageVariantService.ts +5 -5
  249. package/src/application/service/searchService.ts +9 -2
  250. package/src/application/service/windowChatToggleService.ts +28 -19
  251. package/src/application/service/windowFrontendConfigService.ts +7 -4
  252. package/src/atoms/app/index.ts +26 -17
  253. package/src/atoms/app/variant.ts +1 -0
  254. package/src/atoms/chat/messageQueue.ts +1 -1
  255. package/src/atoms/envive/enviveConfig.ts +81 -0
  256. package/src/atoms/org/graphqlConfig.ts +29 -11
  257. package/src/atoms/org/merchantCss.ts +114 -0
  258. package/src/atoms/org/org.ts +101 -64
  259. package/src/atoms/org/orgPageConfig.ts +9 -6
  260. package/src/atoms/org/orgUIConfig.ts +22 -9
  261. package/src/atoms/search/chatSearch.ts +85 -67
  262. package/src/contexts/chatContext.tsx +4 -1
  263. package/src/contexts/enviveConfigContext.tsx +37 -26
  264. package/src/contexts/enviveCssContext.tsx +20 -0
  265. package/src/contexts/index.ts +2 -0
  266. package/src/contexts/orgConfigContext.tsx +106 -0
  267. package/src/contexts/systemSettingsContext.tsx +2 -2
  268. package/src/contexts/types.ts +12 -9
  269. package/src/hooks/index.ts +1 -0
  270. package/src/hooks/useSearch.tsx +10 -6
  271. package/src/hooks/utils.ts +1 -1
  272. package/src/interceptors/useFormEscalation.ts +26 -9
  273. package/src/types.ts +0 -2
  274. package/dist/api-BtzLHcfU.cjs +0 -268
  275. package/dist/api-kpPTZhV9.js +0 -189
  276. package/dist/atomStore-BNQyGmU_.cjs +0 -57
  277. package/dist/atomStore-TnLPtYns.js +0 -31
  278. package/dist/bandolier-CQrxBHsk.cjs +0 -1230
  279. package/dist/bandolier-Di9DpZ8e.js +0 -1230
  280. package/dist/carpe-3NJOR-Rj.cjs +0 -608
  281. package/dist/carpe-DmWKaIQq.js +0 -606
  282. package/dist/cdnService-BNreZjqy.js +0 -18
  283. package/dist/cdnService-vLxePdrU.cjs +0 -23
  284. package/dist/chat-CCQMmhc1.cjs +0 -5057
  285. package/dist/chat-Dk6KPb1K.js +0 -25
  286. package/dist/chat-H6YcCS4I.js +0 -4113
  287. package/dist/components-DAQxVIn9.js +0 -10
  288. package/dist/coterie-D0UFsFC5.cjs +0 -240
  289. package/dist/coterie-JblRmIZL.js +0 -240
  290. package/dist/customerService-C4wc0glQ.js +0 -22
  291. package/dist/customerService-zsDlp7g2.cjs +0 -35
  292. package/dist/custservice-types-D8Npo-5Z.js +0 -22
  293. package/dist/custservice-types-E9_OSaZ7.cjs +0 -34
  294. package/dist/default-C5ZTV8HA.cjs +0 -4
  295. package/dist/default-DPv8m-eQ.js +0 -175
  296. package/dist/default-DRKBosow.cjs +0 -198
  297. package/dist/default-ao0vRl0W.js +0 -4
  298. package/dist/divIds-BWvq-i6I.js +0 -22
  299. package/dist/dreamlandBaby-CyS8oW8X.js +0 -347
  300. package/dist/dreamlandBaby-y7kSvwH2.cjs +0 -347
  301. package/dist/embedded-C1jvFj3v.js +0 -22
  302. package/dist/entrypoints-CmmOszXO.js +0 -6
  303. package/dist/entrypoints-fowCLUT2.cjs +0 -18
  304. package/dist/enviveConfigContext-Bs8kepnO.cjs +0 -48
  305. package/dist/enviveConfigContext-CWVdVWKW.js +0 -34
  306. package/dist/events-DgFzlVJR.js +0 -77
  307. package/dist/events-bH-24eRW.cjs +0 -89
  308. package/dist/featureFlagService-CroFRxvD.d.cts +0 -17
  309. package/dist/featureFlagService-NkJ2fuEj.d.ts +0 -17
  310. package/dist/featureGates-BMWXU0dS.d.ts +0 -90
  311. package/dist/featureGates-N_gyHCTn.d.cts +0 -90
  312. package/dist/fiveCbd-CXVuIBiZ.cjs +0 -614
  313. package/dist/fiveCbd-Cyc3-Ab9.js +0 -614
  314. package/dist/forLoveAndLemons-CxQS0USq.cjs +0 -668
  315. package/dist/forLoveAndLemons-D8mcgmdk.js +0 -666
  316. package/dist/frontendConfig-KeNqU1wa.d.cts +0 -790
  317. package/dist/frontendConfig-cPvCTWm6.d.ts +0 -790
  318. package/dist/globalSearch-BC0rOX3E.js +0 -13
  319. package/dist/greenpan-JM6SHcqO.js +0 -398
  320. package/dist/greenpan-eIzyxVsn.cjs +0 -398
  321. package/dist/grooveLife-BmsUc2cD.js +0 -343
  322. package/dist/grooveLife-KdTizVUn.cjs +0 -343
  323. package/dist/homegrownCannabis-C0GDai4r.cjs +0 -411
  324. package/dist/homegrownCannabis-a9udocBT.js +0 -411
  325. package/dist/hooks-DjOa7ihH.cjs +0 -7331
  326. package/dist/hooks-fneW8SWw.js +0 -7152
  327. package/dist/index-BQErGgfM.d.cts +0 -202
  328. package/dist/index-BdNKc2ix.d.cts +0 -8
  329. package/dist/index-BrXuc_Ck.d.cts +0 -24
  330. package/dist/index-C4zjAR1c.d.cts +0 -227
  331. package/dist/index-CGB6CAmr.d.ts +0 -6
  332. package/dist/index-CIco0cCQ.d.ts +0 -183
  333. package/dist/index-COG1kOZG.d.ts +0 -749
  334. package/dist/index-CVxe7FpL.d.cts +0 -6
  335. package/dist/index-Cn1SeI5y.d.cts +0 -183
  336. package/dist/index-CnqHN_jz.d.ts +0 -202
  337. package/dist/index-Cqg6ltII.d.ts +0 -38
  338. package/dist/index-DE_7Q8qK.d.ts +0 -94
  339. package/dist/index-Da0UzyI9.d.ts +0 -24
  340. package/dist/index-DbWWcYax.d.cts +0 -749
  341. package/dist/index-DtoVXd6O.d.cts +0 -97
  342. package/dist/index-JClBRnSX.d.cts +0 -94
  343. package/dist/index-ghzD_356.d.ts +0 -8
  344. package/dist/index-hdbCEjYy.d.cts +0 -38
  345. package/dist/index-luJrHgPN.d.ts +0 -97
  346. package/dist/index-tfRj22E1.d.ts +0 -227
  347. package/dist/jackArcher-B6OJ0N3a.cjs +0 -728
  348. package/dist/jackArcher-B9fe4Hv8.js +0 -728
  349. package/dist/jordanCraig-0CB_m_ts.cjs +0 -1787
  350. package/dist/jordanCraig-DNm1iw1L.js +0 -1787
  351. package/dist/kindredBravely-CZgt7DJA.js +0 -491
  352. package/dist/kindredBravely-KvYPbckZ.cjs +0 -491
  353. package/dist/kutFromTheKloth-BxgtWZs9.cjs +0 -370
  354. package/dist/kutFromTheKloth-SmteSZjk.js +0 -370
  355. package/dist/larryAndSerges-6O_u3L90.cjs +0 -261
  356. package/dist/larryAndSerges-DO-zG8ES.js +0 -261
  357. package/dist/leapsAndRebounds-BK62AmXw.js +0 -361
  358. package/dist/leapsAndRebounds-gPsWVUmQ.cjs +0 -361
  359. package/dist/logger-Be0NyKaY.cjs +0 -25
  360. package/dist/logger-BexDfK3W.js +0 -19
  361. package/dist/longevityrx-DjKbwJo3.cjs +0 -321
  362. package/dist/longevityrx-eq5TeUcy.js +0 -321
  363. package/dist/lookOptic-BPPqms_j.cjs +0 -283
  364. package/dist/lookOptic-jRpBXQCN.js +0 -283
  365. package/dist/mantraBrand-BZOZfkUK.js +0 -751
  366. package/dist/mantraBrand-Cp8zptkj.cjs +0 -751
  367. package/dist/medterra-BHYCBgvQ.cjs +0 -584
  368. package/dist/medterra-CShe6CLY.js +0 -584
  369. package/dist/modells-DE7-gmjK.cjs +0 -485
  370. package/dist/modells-DFyJxNwT.js +0 -485
  371. package/dist/nodeSelector-DpKXszfU.d.ts +0 -30
  372. package/dist/nodeSelector-vKB44CDB.d.cts +0 -30
  373. package/dist/org-Bkn6fl6I.cjs +0 -106
  374. package/dist/org-CX8HFbc9.js +0 -63
  375. package/dist/pressedFloral-BMkCVs8c.cjs +0 -662
  376. package/dist/pressedFloral-aK9br-LF.js +0 -662
  377. package/dist/search-DtIFZeMA.cjs +0 -743
  378. package/dist/search-eWwg8pNn.js +0 -542
  379. package/dist/search-filter-types-ByJnFPc4.d.cts +0 -101
  380. package/dist/search-filter-types-DPgeG8FS.d.ts +0 -101
  381. package/dist/skinPerfection-B9G6yLM2.js +0 -335
  382. package/dist/skinPerfection-BBC1q65Z.cjs +0 -335
  383. package/dist/snapSupplements-D7hx6Kgj.cjs +0 -286
  384. package/dist/snapSupplements-DKvJl__T.js +0 -286
  385. package/dist/socialProofClasses-BYLiEXpU.cjs +0 -39
  386. package/dist/socialProofClasses-CkJufEGb.js +0 -9
  387. package/dist/spanx-D-ZKkxjM.cjs +0 -664
  388. package/dist/spanx-yl7YfVrf.js +0 -662
  389. package/dist/spanxStaging-CXeIg6zI.cjs +0 -849
  390. package/dist/spanxStaging-DzGXL9wD.js +0 -846
  391. package/dist/suggestionBarV2-types-B0RbMStE.js +0 -9
  392. package/dist/supergoop-CSpDPOpl.cjs +0 -337
  393. package/dist/supergoop-D0UkuRiA.js +0 -335
  394. package/dist/test-types-C9b_OdfO.d.ts +0 -39
  395. package/dist/test-types-CpKCxk8U.d.cts +0 -39
  396. package/dist/types-BE4faOO_.d.cts +0 -32
  397. package/dist/types-C3S1H4hl.js +0 -176
  398. package/dist/types-TD8g7LnH.d.ts +0 -32
  399. package/dist/types-lcjuhDBt.cjs +0 -230
  400. package/dist/uniqueVintage-DygVpCqU.cjs +0 -1214
  401. package/dist/uniqueVintage-_n0FZFVj.js +0 -1212
  402. package/dist/useMessageInterceptor-BP6gzo8a.js +0 -57
  403. package/dist/useMessageInterceptor-BnUG2Pzt.cjs +0 -72
  404. package/dist/variant-DH4zusMi.d.cts +0 -12
  405. package/dist/variant-DTEqSBHd.d.ts +0 -12
  406. package/dist/variantInfo-BTvC6CQh.js +0 -1
  407. package/dist/variantInfo-Cz2YXraO.cjs +0 -0
  408. package/dist/venaCbd-BS0dvdBm.js +0 -366
  409. package/dist/venaCbd-Pqg0bj-P.cjs +0 -366
  410. package/dist/westonJonBoucher-CLw8Hy6u.js +0 -423
  411. package/dist/westonJonBoucher-CeA0jwxe.cjs +0 -423
  412. package/dist/wineEnthusiast-M9P18d1w.js +0 -941
  413. package/dist/wineEnthusiast-gHBaQMbe.cjs +0 -941
  414. package/dist/wolfMattress-BQHjoQYu.js +0 -373
  415. package/dist/wolfMattress-CdmN-Evm.cjs +0 -373
  416. package/dist/wolfTactical-Cc2ZLBRh.js +0 -350
  417. package/dist/wolfTactical-dObnPgAG.cjs +0 -350
  418. package/src/application/service/environmentService.ts +0 -51
  419. package/src/extension.ts +0 -63
  420. package/src/initialize.ts +0 -163
  421. package/src/main.tsx +0 -108
  422. package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +0 -147
  423. /package/dist/{atomStore-FSZd_20F.js → locators-Dc5ZT0aF.js} +0 -0
  424. /package/dist/{atomStore-B3tsg6mF.cjs → locators-lQMJj830.cjs} +0 -0
  425. /package/dist/{locators-C2DX_nX6.js → utilityTypes-BVikejDo.js} +0 -0
  426. /package/dist/{locators-CUpyd9Wt.cjs → utilityTypes-C4h2wgAK.cjs} +0 -0
  427. /package/dist/{utilityTypes-DMdsI0DG.cjs → variantInfo-CNRTY0gH.cjs} +0 -0
  428. /package/dist/{utilityTypes-UWdNHElu.js → variantInfo-CzhR5W6h.js} +0 -0
@@ -1,542 +0,0 @@
1
- import { logger_default } from "./logger-BexDfK3W.js";
2
- import { MessageRole, MessageType, SessionRestartRequired, UnsupportedProductException, apiKeyAtom, appDetailsAtom, messagesAtom, orgUIConfigAtom, queueUserEventAtom, replyEventCategoryAtom, userHasRepliedAtom, userQueryAtom } from "./chat-H6YcCS4I.js";
3
- import { useEnviveConfig } from "./enviveConfigContext-CWVdVWKW.js";
4
- import { getAtomStore } from "./atomStore-TnLPtYns.js";
5
- import { atom } from "jotai";
6
- import { Configuration, ResponseCategory, ResponseError, SearchApi, UserEventCategory } from "@spiffy-ai/commerce-api-client";
7
- import { v4 } from "uuid";
8
-
9
- //#region src/atoms/search/utils.ts
10
- const formatFilterDisplayName = (displayName) => {
11
- const sizes = [
12
- "xxxs",
13
- "xxs",
14
- "xs",
15
- "s",
16
- "m",
17
- "l",
18
- "xl",
19
- "xxl",
20
- "xxxl",
21
- "xxxxl"
22
- ];
23
- return displayName.toLowerCase().split(" ").map((word) => {
24
- if (sizes.includes(word)) return word.toUpperCase();
25
- return word.charAt(0).toUpperCase() + word.slice(1);
26
- }).join(" ").replace(/Iphone/g, "iPhone");
27
- };
28
-
29
- //#endregion
30
- //#region src/atoms/search/productFilters.ts
31
- const getPriceBucket = (price, bucketSize) => {
32
- return Math.floor(price / bucketSize) * bucketSize;
33
- };
34
- const isStringArray = (value) => {
35
- if (!Array.isArray(value)) return false;
36
- return value.every((item) => typeof item === "string");
37
- };
38
- const sortFilter = (filterConfig) => {
39
- if (filterConfig.type === "price") return (a, b) => Number(a.filterItemId) - Number(b.filterItemId);
40
- if (filterConfig.type === "dynamic") {
41
- if (filterConfig.sorting.type === "alphabetic") return (a, b) => a.displayName.localeCompare(b.displayName);
42
- if (filterConfig.sorting.type === "productCount") return (a, b) => a.productCount === b.productCount ? a.displayName.localeCompare(b.displayName) : b.productCount - a.productCount;
43
- if (filterConfig.sorting.type === "custom") {
44
- const sortedKeys = filterConfig.sorting.map;
45
- return (a, b) => {
46
- if (sortedKeys[a.displayName] && sortedKeys[b.displayName]) return sortedKeys[a.displayName] - sortedKeys[b.displayName];
47
- if (sortedKeys[a.displayName]) return -1;
48
- if (sortedKeys[b.displayName]) return 1;
49
- return b.productCount - a.productCount;
50
- };
51
- }
52
- }
53
- throw new Error("Invaalid search filter configuration");
54
- };
55
- var ProductFilters = class {
56
- static getFiltersForProducts(products, filterConfigs, selectedFilterOptions) {
57
- if (!products || products.length === 0) return [];
58
- return [...filterConfigs.map((filterConfig) => products.reduce((acc, product) => {
59
- if (filterConfig.type === "price") {
60
- const priceBucket = getPriceBucket(product.salePrice ?? product.originalPrice ?? 0, filterConfig.bucketSize);
61
- const current = acc.map[priceBucket] ?? {
62
- filterItemId: priceBucket,
63
- displayName: `$${priceBucket}-$${priceBucket + filterConfig.bucketSize}`,
64
- productCount: 0
65
- };
66
- acc.map[priceBucket] = {
67
- ...current,
68
- productCount: current.productCount + 1
69
- };
70
- return acc;
71
- }
72
- const attributeValues = (product.filters && product.filters?.[filterConfig.attribute]) ?? [];
73
- if (isStringArray(attributeValues)) attributeValues.forEach((val) => {
74
- const normalizedVal = val.toLowerCase();
75
- const current = acc.map[normalizedVal] ?? {
76
- filterItemId: normalizedVal,
77
- displayName: formatFilterDisplayName(val),
78
- productCount: 0
79
- };
80
- acc.map[normalizedVal] = {
81
- ...current,
82
- productCount: current.productCount + 1
83
- };
84
- });
85
- return acc;
86
- }, {
87
- filterConfig,
88
- map: {}
89
- })).map(({ filterConfig, map }) => ({
90
- filterId: filterConfig.filterId,
91
- displayName: filterConfig.displayName,
92
- items: Object.values(map).map((filter) => ({
93
- filterItemId: filter.filterItemId,
94
- displayName: filter.displayName,
95
- productCount: filter.productCount,
96
- isSelected: selectedFilterOptions.some((option) => option.id === `${filterConfig.filterId}:${filter.filterItemId}`) ?? false
97
- })).sort(sortFilter(filterConfig))
98
- }))];
99
- }
100
- static filterProducts(products, filterConfigs, selectedFilterOptions, additiveDynamicFilters = false) {
101
- const selectedFilters = filterConfigs.map((filterConfig) => ({
102
- filterConfig,
103
- hasSelectedOptions: selectedFilterOptions.some((option) => option.filterId === filterConfig.filterId)
104
- })).filter(({ hasSelectedOptions }) => hasSelectedOptions);
105
- return selectedFilterOptions.length === 0 ? products : products.filter((product) => selectedFilters.reduce((acc, selectedFilter) => {
106
- if (!acc) return acc;
107
- if (selectedFilter.filterConfig.type === "price") {
108
- const priceBucket = getPriceBucket(product.salePrice ?? product.originalPrice ?? 0, selectedFilter.filterConfig.bucketSize);
109
- if (!selectedFilterOptions.some((option) => option.id === `price:${priceBucket}`)) return false;
110
- }
111
- if (selectedFilter.filterConfig.type === "dynamic") {
112
- const { filterId, attribute } = selectedFilter.filterConfig;
113
- const attributeValues = product.filters?.[attribute];
114
- if (!isStringArray(attributeValues)) return false;
115
- if (selectedFilter.filterConfig.attribute === "dynamic" && !additiveDynamicFilters) {
116
- if (!selectedFilterOptions.filter((option) => option.filterId === filterId).map((option) => option.filterItemId.toLowerCase()).every((selectedValue) => attributeValues.some((val) => val.toLowerCase() === selectedValue))) return false;
117
- } else if (!attributeValues.some((val) => selectedFilterOptions.some((option) => option.id === `${filterId}:${val.toLowerCase()}`))) return false;
118
- }
119
- return true;
120
- }, true));
121
- }
122
- };
123
-
124
- //#endregion
125
- //#region src/atoms/search/types.ts
126
- let ProductSorting = /* @__PURE__ */ function(ProductSorting$1) {
127
- ProductSorting$1["FEATURED"] = "featured";
128
- ProductSorting$1["PRICE_ASC"] = "price_asc";
129
- ProductSorting$1["PRICE_DESC"] = "price_desc";
130
- return ProductSorting$1;
131
- }({});
132
- const ProductSortingNames = {
133
- [ProductSorting.FEATURED]: "Featured",
134
- [ProductSorting.PRICE_ASC]: "Price Low to High",
135
- [ProductSorting.PRICE_DESC]: "Price High to Low"
136
- };
137
-
138
- //#endregion
139
- //#region src/atoms/search/productSorter.ts
140
- var ProductSorter = class {
141
- static sort(products, sorting) {
142
- switch (sorting) {
143
- case ProductSorting.PRICE_ASC: return [...products].sort((p1, p2) => (p1.salePrice ?? p1.originalPrice ?? 0) - (p2.salePrice ?? p2.originalPrice ?? 0));
144
- case ProductSorting.PRICE_DESC: return [...products].sort((p1, p2) => (p2.salePrice ?? p2.originalPrice ?? 0) - (p1.salePrice ?? p1.originalPrice ?? 0));
145
- default: return products;
146
- }
147
- }
148
- };
149
-
150
- //#endregion
151
- //#region src/atoms/search/chatSearch.ts
152
- const chatSearchStateAtom = atom("entrypoint");
153
- const chatSearchHasProductsAtom = atom(false);
154
- const chatSearchProductSortingAtom = atom(ProductSorting.FEATURED);
155
- const filterProductList = (message) => message.type === MessageType.Product && message.metadata.isForGrid === true;
156
- const filterFilterList = (message) => message.type === MessageType.ProductSearchFilter;
157
- const chatSearchIsLoadingAtom = atom(false);
158
- const buildChatSearchTurn = (messages) => {
159
- const queryMessage = messages.find((message) => message.type === MessageType.ProductSearch);
160
- if (!queryMessage) return null;
161
- const { generatedQuery, productCount } = queryMessage.metadata ?? {};
162
- const productList = messages.filter(filterProductList).map((message) => message.metadata);
163
- const filterList = messages.filter(filterFilterList).map((message) => message.metadata.filterName);
164
- return [queryMessage.id, {
165
- id: queryMessage.id,
166
- generatedQuery,
167
- productCount: productCount || productList.length,
168
- productList,
169
- filterList,
170
- messages
171
- }];
172
- };
173
- const chatSearchFilterConfigAtom = atom((get) => {
174
- const { searchConfig } = get(orgUIConfigAtom);
175
- return searchConfig.searchFilterConfig;
176
- });
177
- const searchMapAtom = atom((get) => {
178
- const messages = get(messagesAtom);
179
- return Object.fromEntries(messages.map(buildChatSearchTurn).filter((v) => v !== null));
180
- });
181
- const internalChatSearchParamsAtom = atom({
182
- id: null,
183
- query: null
184
- });
185
- const selectedFilterOptionsAtom = atom([]);
186
- const additiveDynamicFiltersAtom = atom((get) => {
187
- const { searchConfig } = get(orgUIConfigAtom);
188
- return searchConfig.additiveDynamicFilters ?? false;
189
- });
190
- const createChatSearchFilterOption = (filterId, filterItemId, displayName) => ({
191
- id: `${filterId}:${filterItemId}`,
192
- displayName,
193
- filterId,
194
- filterItemId
195
- });
196
- const handleSearchAtom = atom(null, (get, set, message) => {
197
- if (message.type !== MessageType.Search) return;
198
- const querySearch = message.metadata.searchTerm;
199
- set(replyEventCategoryAtom, UserEventCategory.Search);
200
- set(userQueryAtom, querySearch);
201
- set(messagesAtom, [...get(messagesAtom), [message]]);
202
- set(userHasRepliedAtom, true);
203
- set(queueUserEventAtom, {
204
- eventId: message.id,
205
- category: UserEventCategory.Search,
206
- createdAt: message.createdAt,
207
- attributes: {
208
- searchTerm: message.metadata.searchTerm,
209
- selectedFilters: message.metadata.selectedFilters
210
- }
211
- });
212
- });
213
- const chatSearchParamsAtom = atom((get) => get(internalChatSearchParamsAtom), (_, set, value) => {
214
- set(internalChatSearchParamsAtom, value);
215
- });
216
- const chatSearchQueryAtom = atom((get) => get(chatSearchParamsAtom)?.query ?? null, (get, set, value) => {
217
- const searchParams = get(chatSearchParamsAtom);
218
- set(chatSearchParamsAtom, {
219
- id: searchParams.id,
220
- query: value
221
- });
222
- });
223
- const chatSearchIdAtom = atom((get) => get(chatSearchParamsAtom)?.id ?? null, (get, set, value) => {
224
- const searchParams = get(chatSearchParamsAtom);
225
- set(chatSearchParamsAtom, {
226
- id: value,
227
- query: searchParams.query
228
- });
229
- });
230
- const ChatSearchTurnAtom = atom((get) => {
231
- const searchFilterConfig = get(chatSearchFilterConfigAtom);
232
- const searchMap = get(searchMapAtom);
233
- const chatSearchId = get(chatSearchIdAtom);
234
- if (!chatSearchId) return null;
235
- const ChatSearchTurn = searchMap[chatSearchId];
236
- if (!ChatSearchTurn) return null;
237
- const productSorting = get(chatSearchProductSortingAtom);
238
- const selectedFilterOptions = get(selectedFilterOptionsAtom);
239
- const additiveDynamicFilters = get(additiveDynamicFiltersAtom);
240
- const filteredProducts = ProductFilters.filterProducts(ChatSearchTurn.productList, searchFilterConfig, selectedFilterOptions, additiveDynamicFilters);
241
- const filteredAndSortedProducts = ProductSorter.sort(filteredProducts, productSorting);
242
- return {
243
- ...searchMap[chatSearchId],
244
- productList: filteredAndSortedProducts,
245
- productCount: filteredAndSortedProducts.length
246
- };
247
- });
248
- const chatSearchProducts = atom((get) => {
249
- return get(ChatSearchTurnAtom)?.productList ?? [];
250
- });
251
- const chatSearchFiltersAtom = atom((get) => {
252
- const searchFilterConfig = get(chatSearchFilterConfigAtom);
253
- const searchMap = get(searchMapAtom);
254
- const chatSearchId = get(chatSearchIdAtom);
255
- if (chatSearchId && searchMap[chatSearchId]) {
256
- const products = searchMap[chatSearchId].productList;
257
- const selectedFilterOptions = get(selectedFilterOptionsAtom);
258
- return ProductFilters.getFiltersForProducts(products, searchFilterConfig, selectedFilterOptions);
259
- }
260
- return [];
261
- });
262
- const setSearchParams = (query) => {
263
- const url = new URL(window.location.href);
264
- url.searchParams.set("es", "true");
265
- url.searchParams.set("esq", query);
266
- window.history.pushState({}, "", url);
267
- };
268
- const getSearchParamsAtom = atom(() => {
269
- const params = new URLSearchParams(window.location.search);
270
- return {
271
- es: params.get("es"),
272
- esq: params.get("esq")
273
- };
274
- });
275
- const initiateChatSearchAtom = atom(null, (_, set, query) => {
276
- set(chatSearchIsLoadingAtom, true);
277
- const url = new URL(window.location.href);
278
- url.searchParams.set("es", "true");
279
- url.searchParams.set("esq", query);
280
- window.history.pushState({}, "", url);
281
- window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
282
- set(chatSearchParamsAtom, {
283
- id: null,
284
- query
285
- });
286
- set(handleSearchAtom, {
287
- id: v4(),
288
- role: MessageRole.User,
289
- type: MessageType.Search,
290
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
291
- metadata: {
292
- searchTerm: query,
293
- selectedFilters: []
294
- }
295
- });
296
- });
297
- const handleSearchResultsAtom = atom(null, (get, set, message) => {
298
- if (!message || message.type !== MessageType.ProductSearch) return;
299
- const { productCount, generatedQuery } = message.metadata;
300
- if (productCount !== 0) {
301
- set(selectedFilterOptionsAtom, []);
302
- set(chatSearchStateAtom, "product-page");
303
- const currentSearchParams = get(chatSearchParamsAtom);
304
- const url = new URL(window.location.href);
305
- url.searchParams.set("es", "true");
306
- url.searchParams.set("esq", generatedQuery);
307
- url.searchParams.set("esi", message.id);
308
- window.history.pushState({}, "", url);
309
- if (currentSearchParams.id === null) window.history.replaceState(null, "", url);
310
- else window.history.pushState(null, "", url);
311
- set(chatSearchParamsAtom, {
312
- id: message.id,
313
- query: generatedQuery
314
- });
315
- }
316
- });
317
- const setChatSearchParamsAtom = atom(null, (_, set, query) => {
318
- const url = new URL(window.location.href);
319
- url.searchParams.set("es", "true");
320
- url.searchParams.set("esq", query);
321
- window.history.pushState({}, "", url);
322
- set(chatSearchParamsAtom, {
323
- id: null,
324
- query
325
- });
326
- });
327
-
328
- //#endregion
329
- //#region src/application/service/searchService.ts
330
- const transformProductResponses = (products) => products.map((data) => ({
331
- id: data.id,
332
- responseId: data.response_id,
333
- category: ResponseCategory.Product,
334
- description: data.description,
335
- imageUrl: data.image_url,
336
- imageUrls: data.image_urls,
337
- title: data.title,
338
- url: data.url,
339
- originalPrice: data.original_price,
340
- salePrice: data.sale_price,
341
- averageRating: data.average_rating,
342
- numberReviews: data.number_reviews,
343
- metadata: data.metadata,
344
- isForGrid: data.is_for_grid,
345
- colors: data.colors,
346
- sizes: data.sizes,
347
- filters: data.filters
348
- }));
349
- async function errorResponseBody(error) {
350
- try {
351
- return await error.response.json();
352
- } catch {
353
- return {};
354
- }
355
- }
356
- async function throwSessionRestartRequiredIf(errorMsg, error) {
357
- if (!(error instanceof ResponseError)) {
358
- logger_default.logInfo(errorMsg, error);
359
- throw error;
360
- }
361
- const errorResponse = await errorResponseBody(error);
362
- if (errorResponse?.message?.toLowerCase() === "unsupported product" || errorResponse?.app_code?.toUpperCase() === "PRODUCT_NOT_FOUND") throw new UnsupportedProductException();
363
- else if (errorResponse?.app_code?.toUpperCase() === "RESTART_SESSION" || errorResponse?.sub_code?.toUpperCase() === "NOT_FOUND") {
364
- logger_default.logInfo("Session does not exist. Re-start session", error, error.response, errorResponse);
365
- throw new SessionRestartRequired();
366
- }
367
- logger_default.logInfo(errorMsg, error);
368
- throw error;
369
- }
370
- var SearchService = class SearchService {
371
- static {
372
- this.getInstance = () => {
373
- if (!SearchService.instance) {
374
- const apiKey = getAtomStore().get(apiKeyAtom);
375
- SearchService.instance = new SearchService(apiKey);
376
- }
377
- return SearchService.instance;
378
- };
379
- }
380
- constructor(apiKey, basePath) {
381
- const { baseUrl } = useEnviveConfig();
382
- const config = new Configuration({
383
- accessToken: apiKey,
384
- basePath: basePath || baseUrl,
385
- headers: {
386
- "Content-Type": "application/json",
387
- Accept: "application/json"
388
- }
389
- });
390
- this.searchApi = new SearchApi(config);
391
- }
392
- async _searchProducts(params) {
393
- const appDetails = getAtomStore().get(appDetailsAtom);
394
- try {
395
- const { products, filters, search_response_id: searchResponseId } = await this.searchApi.v1SearchQueryGet({
396
- query: params.query,
397
- limit: params.limit,
398
- org_id: appDetails.orgId,
399
- user_id: appDetails.userId
400
- });
401
- return {
402
- products: transformProductResponses(products) || [],
403
- filters: filters || [],
404
- totalProductCount: products?.length || 0,
405
- searchResponseId: searchResponseId || ""
406
- };
407
- } catch (error) {
408
- await throwSessionRestartRequiredIf("Failed to search products", error);
409
- return {
410
- products: [],
411
- filters: [],
412
- totalProductCount: 0,
413
- searchResponseId: ""
414
- };
415
- }
416
- }
417
- static {
418
- this.searchProducts = (params) => SearchService.getInstance()._searchProducts(params);
419
- }
420
- };
421
- var searchService_default = SearchService;
422
-
423
- //#endregion
424
- //#region src/atoms/search/searchAPI.ts
425
- const searchAtom = atom({
426
- data: null,
427
- loading: false,
428
- error: null,
429
- lastQuery: null
430
- });
431
- const searchProductSortingAtom = atom(ProductSorting.FEATURED);
432
- const searchSelectedFiltersAtom = atom([]);
433
- const createFilterOption = (filterId, filterItemId, displayName) => ({
434
- id: `${filterId}:${filterItemId}`,
435
- displayName,
436
- filterId,
437
- filterItemId
438
- });
439
- const internalSearchParamsAtom = atom({
440
- id: null,
441
- query: null
442
- });
443
- const searchParamsAtom = atom((get) => get(internalSearchParamsAtom), (_, set, value) => {
444
- set(internalSearchParamsAtom, value);
445
- });
446
- const internalSearchSystemStateAtom = atom(false);
447
- const searchSystemAtom = atom((get) => get(internalSearchSystemStateAtom), (get, set, value) => {
448
- if (value === get(internalSearchSystemStateAtom)) return;
449
- const stateChangeHandler = () => {
450
- const params = new URLSearchParams(window.location.search);
451
- if (params.get("es") === "true") {
452
- const id = params.get("esi");
453
- const query = params.get("esq");
454
- set(searchParamsAtom, {
455
- id,
456
- query
457
- });
458
- } else set(searchParamsAtom, {
459
- id: null,
460
- query: null
461
- });
462
- };
463
- if (value) {
464
- set(internalSearchSystemStateAtom, true);
465
- window.addEventListener("popstate", stateChangeHandler);
466
- stateChangeHandler();
467
- } else {
468
- set(internalSearchSystemStateAtom, false);
469
- window.removeEventListener("popstate", stateChangeHandler);
470
- }
471
- });
472
- const filteredSearchProductsAtom = atom((get) => {
473
- const searchData = get(searchAtom).data;
474
- const sorting = get(searchProductSortingAtom);
475
- const selectedFilters = get(searchSelectedFiltersAtom);
476
- const orgConfig = get(orgUIConfigAtom);
477
- if (!searchData?.products) return [];
478
- const filteredProducts = ProductFilters.filterProducts(searchData.products, orgConfig.searchConfig.searchFilterConfig, selectedFilters, orgConfig.searchConfig.additiveDynamicFilters);
479
- return ProductSorter.sort(filteredProducts, sorting);
480
- });
481
- const searchFiltersAtom = atom((get) => {
482
- const searchData = get(searchAtom).data;
483
- const selectedFilters = get(searchSelectedFiltersAtom);
484
- const orgConfig = get(orgUIConfigAtom);
485
- if (!searchData?.products) return [];
486
- return ProductFilters.getFiltersForProducts(searchData.products, orgConfig.searchConfig.searchFilterConfig, selectedFilters);
487
- });
488
- const addSearchFilterAtom = atom(null, (get, set, filter) => {
489
- const current = get(searchSelectedFiltersAtom);
490
- if (!current.some((f) => f.id === filter.id)) set(searchSelectedFiltersAtom, [...current, filter]);
491
- });
492
- const removeSearchFilterAtom = atom(null, (get, set, filterId) => {
493
- const current = get(searchSelectedFiltersAtom);
494
- set(searchSelectedFiltersAtom, current.filter((f) => f.id !== filterId));
495
- });
496
- const clearSearchFiltersAtom = atom(null, (_, set) => {
497
- set(searchSelectedFiltersAtom, []);
498
- });
499
- const performSearchAtom = atom(null, async (get, set, params, allowRedirect = false) => {
500
- const currentState = get(searchAtom);
501
- const redirectSearchResultsUrl = get(orgUIConfigAtom).searchConfig?.redirectSearchResultsUrl;
502
- if (allowRedirect && redirectSearchResultsUrl) {
503
- const redirectUrl = new URL(redirectSearchResultsUrl);
504
- redirectUrl.searchParams.set("es", "true");
505
- redirectUrl.searchParams.set("esq", params.query);
506
- window.location.href = redirectUrl.toString();
507
- } else {
508
- const url = new URL(window.location.href);
509
- url.searchParams.set("es", "true");
510
- url.searchParams.set("esq", params.query);
511
- window.history.pushState({}, "", url);
512
- window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
513
- }
514
- window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
515
- if (currentState.loading) return;
516
- set(searchAtom, {
517
- data: null,
518
- loading: true,
519
- error: null,
520
- lastQuery: params.query
521
- });
522
- try {
523
- const result = await searchService_default.searchProducts(params);
524
- set(searchAtom, {
525
- data: result,
526
- loading: false,
527
- error: null,
528
- lastQuery: params.query
529
- });
530
- } catch (error) {
531
- const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
532
- set(searchAtom, {
533
- data: null,
534
- loading: false,
535
- error: errorMessage,
536
- lastQuery: params.query
537
- });
538
- }
539
- });
540
-
541
- //#endregion
542
- export { ChatSearchTurnAtom, ProductSorting, addSearchFilterAtom, additiveDynamicFiltersAtom, chatSearchFiltersAtom, chatSearchHasProductsAtom, chatSearchIdAtom, chatSearchIsLoadingAtom, chatSearchParamsAtom, chatSearchProductSortingAtom, chatSearchProducts, chatSearchQueryAtom, chatSearchStateAtom, clearSearchFiltersAtom, createChatSearchFilterOption, createFilterOption, filteredSearchProductsAtom, formatFilterDisplayName, getSearchParamsAtom, handleSearchResultsAtom, initiateChatSearchAtom, internalSearchSystemStateAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom, searchSystemAtom, selectedFilterOptionsAtom, setChatSearchParamsAtom, setSearchParams };
@@ -1,101 +0,0 @@
1
- //#region src/types/search-filter-types.d.ts
2
- type ModalSheetProps = {
3
- children: React.ReactNode;
4
- isOpen: boolean;
5
- closeModal: () => void;
6
- desktopWidth?: number;
7
- mobileFullHeight?: number;
8
- animationDuration?: number;
9
- headerProps: ModalSheetHeaderProps;
10
- footerProps?: ModalSheetFooterProps;
11
- showOverlay?: boolean;
12
- };
13
- type ModalSheetHeaderProps = {
14
- headerVariant?: ModalSheetHeaderVariant;
15
- headerContent: React.ReactNode;
16
- handleHeaderClick?: () => void;
17
- };
18
- type ModalSheetFooterProps = {
19
- footerContent: React.ReactNode;
20
- footerClassName?: string;
21
- };
22
- type ModalSheetHeaderVariant = "primary";
23
- type CloseIconVariant = "light" | "tertiary" | "dark";
24
- type ModalSheetCloseIconProps = {
25
- closeIconVariant: CloseIconVariant;
26
- closeIcon?: React.ReactNode;
27
- closeModal?: () => void;
28
- iconSize?: string;
29
- };
30
- type SearchFilterProps = {
31
- filters: SearchFilterDatum[];
32
- selectFilterItem: SelectFilterItem;
33
- clearAllFilters: () => void;
34
- productCount: number;
35
- isOpen: boolean;
36
- setIsOpen: (isOpen: boolean) => void;
37
- applyFiltersUnchangedClasses: string;
38
- applyFiltersChangedClasses: string;
39
- headerContent?: React.ReactNode;
40
- footerContent?: React.ReactNode;
41
- filterButtonText?: string;
42
- headerClassName?: string;
43
- radioButtonFillColor: string;
44
- radioButtonHoverColor?: string;
45
- radioButtonUncheckedBorderColor?: string;
46
- filterCloseIconVariant: CloseIconVariant;
47
- };
48
- type SelectFilterItem = ({
49
- filterId,
50
- filterItemId,
51
- isSelected,
52
- displayName
53
- }: {
54
- filterId: string;
55
- filterItemId: string;
56
- isSelected: boolean;
57
- displayName: string;
58
- }) => void;
59
- type SelectedFilterItemDatum = {
60
- filterId: string;
61
- filterItemId: string;
62
- };
63
- type SearchFilterDatum = {
64
- filterId: string;
65
- displayName: string;
66
- items: SearchFilterItemDatum[];
67
- };
68
- type SearchFilterItemDatum = {
69
- filterItemId: string;
70
- displayName: string;
71
- productCount: number;
72
- isSelected: boolean;
73
- };
74
- type SearchFilterHeaderProps = {
75
- closeModal: () => void;
76
- productCount: number;
77
- headerClassName: string;
78
- filterCloseIconVariant: CloseIconVariant;
79
- };
80
- type FilterProps = {
81
- filter: SearchFilterDatum;
82
- selectFilterItem: SelectFilterItem;
83
- radioButtonFillColor?: string;
84
- radioButtonHoverColor?: string;
85
- radioButtonUncheckedBorderColor?: string;
86
- };
87
- type FilterItemProps = {
88
- filterId: string;
89
- filterItem: SearchFilterItemDatum;
90
- selectFilterItem: SelectFilterItem;
91
- };
92
- type FilterFooterProps = {
93
- closeModal: () => void;
94
- clearAllFilters: () => void;
95
- filterCount: number;
96
- hasFiltersChanged: boolean;
97
- applyFiltersUnchangedClasses: string;
98
- applyFiltersChangedClasses: string;
99
- };
100
- //#endregion
101
- export { CloseIconVariant, FilterFooterProps, FilterItemProps, FilterProps, ModalSheetCloseIconProps, ModalSheetFooterProps, ModalSheetHeaderProps, ModalSheetHeaderVariant, ModalSheetProps, SearchFilterDatum, SearchFilterHeaderProps, SearchFilterItemDatum, SearchFilterProps, SelectFilterItem, SelectedFilterItemDatum };