@envive-ai/react-hooks 0.1.2 → 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 (411) hide show
  1. package/dist/adapters/amplitude/index.cjs +8 -8
  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 +5 -5
  5. package/dist/api-B2euFL-5.cjs +2 -1
  6. package/dist/api-XRr_lAG6.js +2 -1
  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 +7 -7
  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 +5 -5
  15. package/dist/application/models/guards/api/index.d.cts +2 -2
  16. package/dist/application/models/guards/api/index.d.ts +2 -2
  17. package/dist/application/models/index.cjs +49 -49
  18. package/dist/application/models/index.d.cts +8 -9
  19. package/dist/application/models/index.d.ts +8 -9
  20. package/dist/application/models/index.js +5 -5
  21. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  22. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  23. package/dist/application/models/variantInfo/index.d.cts +1 -1
  24. package/dist/application/models/variantInfo/index.d.ts +1 -1
  25. package/dist/application/service/customerService/index.cjs +1 -1
  26. package/dist/application/service/customerService/index.d.cts +2 -2
  27. package/dist/application/service/customerService/index.d.ts +2 -2
  28. package/dist/application/service/customerService/index.js +1 -1
  29. package/dist/application/service/index.cjs +30 -750
  30. package/dist/application/service/index.d.cts +14 -22
  31. package/dist/application/service/index.d.ts +14 -22
  32. package/dist/application/service/index.js +7 -722
  33. package/dist/application/utils/index.cjs +32 -32
  34. package/dist/application/utils/index.d.cts +13 -13
  35. package/dist/application/utils/index.d.ts +11 -11
  36. package/dist/application/utils/index.js +5 -5
  37. package/dist/atomStore-B1cgmbP0.js +32 -0
  38. package/dist/atomStore-JwGb7pcy.cjs +58 -0
  39. package/dist/atoms/app/index.cjs +11 -11
  40. package/dist/atoms/app/index.d.cts +11 -11
  41. package/dist/atoms/app/index.d.ts +11 -11
  42. package/dist/atoms/app/index.js +5 -5
  43. package/dist/atoms/atomStore/index.cjs +1 -2
  44. package/dist/atoms/atomStore/index.d.cts +2 -1
  45. package/dist/atoms/atomStore/index.d.ts +2 -1
  46. package/dist/atoms/atomStore/index.js +1 -2
  47. package/dist/atoms/chat/index.cjs +35 -35
  48. package/dist/atoms/chat/index.d.cts +37 -37
  49. package/dist/atoms/chat/index.d.ts +10 -10
  50. package/dist/atoms/chat/index.js +5 -5
  51. package/dist/atoms/globalSearch/index.cjs +1 -1
  52. package/dist/atoms/globalSearch/index.d.cts +7 -6
  53. package/dist/atoms/globalSearch/index.d.ts +7 -6
  54. package/dist/atoms/globalSearch/index.js +1 -1
  55. package/dist/atoms/org/index.cjs +32 -35
  56. package/dist/atoms/org/index.d.cts +32 -53
  57. package/dist/atoms/org/index.d.ts +31 -52
  58. package/dist/atoms/org/index.js +6 -7
  59. package/dist/atoms/search/index.cjs +36 -38
  60. package/dist/atoms/search/index.d.cts +9 -10
  61. package/dist/atoms/search/index.d.ts +9 -10
  62. package/dist/atoms/search/index.js +5 -7
  63. package/dist/bandolier-B76-OE75.cjs +1230 -0
  64. package/dist/bandolier-DRn_x1g1.js +1230 -0
  65. package/dist/carpe-kHi4RLB5.cjs +608 -0
  66. package/dist/carpe-qrSU99gq.js +606 -0
  67. package/dist/{chat-CCgyDehy.cjs → chat-BgONoYU7.cjs} +2 -1
  68. package/dist/chat-CLJ4NWcN.js +26 -0
  69. package/dist/{components-CScS7Ii-.cjs → components-BKZbet67.cjs} +2 -1
  70. package/dist/components-CV1fhAkj.js +11 -0
  71. package/dist/config/locators/components/chat/index.cjs +1 -1
  72. package/dist/config/locators/components/chat/index.d.cts +1 -1
  73. package/dist/config/locators/components/chat/index.d.ts +1 -1
  74. package/dist/config/locators/components/chat/index.js +1 -1
  75. package/dist/config/locators/components/chat/variants/index.cjs +2 -1
  76. package/dist/config/locators/components/chat/variants/index.d.cts +2 -1
  77. package/dist/config/locators/components/chat/variants/index.d.ts +2 -1
  78. package/dist/config/locators/components/chat/variants/index.js +2 -1
  79. package/dist/config/locators/components/index.cjs +1 -1
  80. package/dist/config/locators/components/index.d.cts +1 -1
  81. package/dist/config/locators/components/index.d.ts +1 -1
  82. package/dist/config/locators/components/index.js +1 -1
  83. package/dist/config/locators/components/search/index.cjs +2 -1
  84. package/dist/config/locators/components/search/index.d.cts +2 -1
  85. package/dist/config/locators/components/search/index.d.ts +2 -1
  86. package/dist/config/locators/components/search/index.js +2 -1
  87. package/dist/config/locators/index.cjs +4 -4
  88. package/dist/config/locators/index.d.cts +4 -3
  89. package/dist/config/locators/index.d.ts +4 -3
  90. package/dist/config/locators/index.js +4 -4
  91. package/dist/contexts/index.cjs +10 -13
  92. package/dist/contexts/index.d.cts +41 -22
  93. package/dist/contexts/index.d.ts +41 -22
  94. package/dist/contexts/index.js +6 -12
  95. package/dist/contexts-CQDwe3rK.cjs +14333 -0
  96. package/dist/contexts-e2sM-B9g.js +12919 -0
  97. package/dist/coterie-mMirPcHP.js +240 -0
  98. package/dist/coterie-yQ-_JXSw.cjs +240 -0
  99. package/dist/customerService-BG1uNZZ1.cjs +36 -0
  100. package/dist/customerService-BHQRnLhC.js +23 -0
  101. package/dist/custservice-types-C83itZmy.cjs +35 -0
  102. package/dist/custservice-types-DPQ-4TI6.js +23 -0
  103. package/dist/default-8Jfv8ehQ.cjs +199 -0
  104. package/dist/default-C8PQf-38.js +176 -0
  105. package/dist/default-LukSiCz1.js +4 -0
  106. package/dist/default-rJSJ887P.cjs +4 -0
  107. package/dist/divIds-CWkntTsx.js +23 -0
  108. package/dist/{divIds-CFyAjjp3.cjs → divIds-DEL_-qU0.cjs} +2 -1
  109. package/dist/dreamlandBaby-DHltv12Z.cjs +347 -0
  110. package/dist/dreamlandBaby-cG0HM9bt.js +347 -0
  111. package/dist/{embedded-BlXJUbik.cjs → embedded--2L0F4b5.cjs} +2 -1
  112. package/dist/embedded-C5uJqmuD.js +23 -0
  113. package/dist/entrypoints-CNUvSgnk.js +7 -0
  114. package/dist/entrypoints-DM9Sm18O.cjs +19 -0
  115. package/dist/events/index.d.cts +2 -1
  116. package/dist/events/index.d.ts +2 -1
  117. package/dist/events-ClCDFK7t.js +2 -1
  118. package/dist/events-Da7gpmGv.cjs +2 -1
  119. package/dist/featureFlagService-5wdmW02z.d.ts +18 -0
  120. package/dist/featureFlagService-DaelrXEk.d.cts +18 -0
  121. package/dist/fiveCbd-Cvnwh03g.cjs +614 -0
  122. package/dist/fiveCbd-DhYMlsf9.js +614 -0
  123. package/dist/forLoveAndLemons-C8DuUexW.js +666 -0
  124. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +668 -0
  125. package/dist/{globalSearch-hxbXekus.cjs → globalSearch-BTeZxvk1.cjs} +2 -1
  126. package/dist/globalSearch-b0wC7ZEO.js +14 -0
  127. package/dist/greenpan-B4Pu65kV.js +398 -0
  128. package/dist/greenpan-BL5p6j7f.cjs +398 -0
  129. package/dist/grooveLife-DjKWHoN3.cjs +343 -0
  130. package/dist/grooveLife-JK0TyaPz.js +343 -0
  131. package/dist/homegrownCannabis-DxqSDkmS.js +411 -0
  132. package/dist/homegrownCannabis-ZnfCqW-m.cjs +411 -0
  133. package/dist/hooks/index.cjs +11 -11
  134. package/dist/hooks/index.d.cts +30 -21
  135. package/dist/hooks/index.d.ts +30 -21
  136. package/dist/hooks/index.js +6 -12
  137. package/dist/index-BTK5uzs6.d.cts +98 -0
  138. package/dist/index-BfuO9b0Q.d.ts +749 -0
  139. package/dist/index-BzgkfbNO.d.cts +228 -0
  140. package/dist/index-C62lPpy4.d.cts +25 -0
  141. package/dist/index-CExtydIH.d.ts +9 -0
  142. package/dist/index-CKKkTsms.d.ts +39 -0
  143. package/dist/index-CNsGWfS6.d.cts +749 -0
  144. package/dist/index-CYtsPztZ.d.cts +203 -0
  145. package/dist/index-C_C0tLeD.d.ts +203 -0
  146. package/dist/index-ClJ0nMsR.d.cts +184 -0
  147. package/dist/index-Cx9e-fRi.d.ts +184 -0
  148. package/dist/index-D2VaMPA3.d.ts +98 -0
  149. package/dist/index-D46Rd0io.d.cts +39 -0
  150. package/dist/index-DFL1dIT_.d.ts +7 -0
  151. package/dist/index-DPx8s5YH.d.ts +25 -0
  152. package/dist/index-Dxpscrvz.d.ts +228 -0
  153. package/dist/index-MFbPQ8Ji.d.ts +95 -0
  154. package/dist/index-VSFakgAI.d.cts +95 -0
  155. package/dist/index-jBATkcc_.d.cts +9 -0
  156. package/dist/index-zZjcds15.d.cts +7 -0
  157. package/dist/interceptors/index.cjs +7 -8
  158. package/dist/interceptors/index.d.cts +10 -10
  159. package/dist/interceptors/index.d.ts +10 -10
  160. package/dist/interceptors/index.js +5 -6
  161. package/dist/jackArcher-CXf_IAmC.js +728 -0
  162. package/dist/jackArcher-mGkojXek.cjs +728 -0
  163. package/dist/jordanCraig-BvCvPRoR.js +1787 -0
  164. package/dist/jordanCraig-Dv8pVCiS.cjs +1787 -0
  165. package/dist/kindredBravely-UQP7wiNu.cjs +491 -0
  166. package/dist/kindredBravely-X8F_LNph.js +491 -0
  167. package/dist/kutFromTheKloth-BhYKk3CN.cjs +370 -0
  168. package/dist/kutFromTheKloth-D1xsTSJr.js +370 -0
  169. package/dist/larryAndSerges-1411NuZa.cjs +262 -0
  170. package/dist/larryAndSerges-DVIRLItu.js +262 -0
  171. package/dist/leapsAndRebounds-BJ8mwr33.js +361 -0
  172. package/dist/leapsAndRebounds-UcP9EJVO.cjs +361 -0
  173. package/dist/logger-Dln20ans.cjs +2 -1
  174. package/dist/logger-pdEEY8T2.js +2 -1
  175. package/dist/longevityrx-BFSv9GF5.cjs +321 -0
  176. package/dist/longevityrx-Cp6wleWr.js +321 -0
  177. package/dist/lookOptic-BGhU4910.js +283 -0
  178. package/dist/lookOptic-KieSqskd.cjs +283 -0
  179. package/dist/mantraBrand-CHQw-0nw.cjs +751 -0
  180. package/dist/mantraBrand-DrqG9uqO.js +751 -0
  181. package/dist/medterra-CLG6Co1C.cjs +584 -0
  182. package/dist/medterra-D8ZX9NZC.js +584 -0
  183. package/dist/modells-BzyPwN2m.cjs +485 -0
  184. package/dist/modells-CAfqOCW4.js +485 -0
  185. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  186. package/dist/nodeSelector-BiCDowlK.d.ts +31 -0
  187. package/dist/orgConfigResults--dAwtw3W.d.ts +881 -0
  188. package/dist/orgConfigResults-BL0XBA6x.d.cts +881 -0
  189. package/dist/pressedFloral-DULBuQwR.cjs +662 -0
  190. package/dist/pressedFloral-Dp-7Fk3S.js +662 -0
  191. package/dist/search-filter-types-BNTLVXqQ.d.cts +102 -0
  192. package/dist/search-filter-types-DkmH1TxJ.d.ts +102 -0
  193. package/dist/skinPerfection-BxuYCeJX.js +335 -0
  194. package/dist/skinPerfection-Cd3XZ6By.cjs +335 -0
  195. package/dist/snapSupplements-Bf6htPM0.js +286 -0
  196. package/dist/snapSupplements-ZFnXyMuZ.cjs +286 -0
  197. package/dist/socialProofClasses-DdzG1tZy.js +10 -0
  198. package/dist/socialProofClasses-ky69yppk.cjs +40 -0
  199. package/dist/spanx-CwDPQaGj.js +662 -0
  200. package/dist/spanx-Cyd4qDlK.cjs +664 -0
  201. package/dist/spanxStaging-D43nyAGy.js +846 -0
  202. package/dist/spanxStaging-ijbYnHzr.cjs +849 -0
  203. package/dist/suggestionBarV2-types-CwOXzIKq.js +10 -0
  204. package/dist/{suggestionBarV2-types-DG3Ekk44.cjs → suggestionBarV2-types-Dc4-zJlV.cjs} +2 -1
  205. package/dist/supergoop-BnbFG7hm.cjs +338 -0
  206. package/dist/supergoop-CY043wIg.js +336 -0
  207. package/dist/test-types-CXVJxTeu.d.ts +40 -0
  208. package/dist/test-types-CuOq25VT.d.cts +40 -0
  209. package/dist/types/index.cjs +2 -2
  210. package/dist/types/index.d.cts +3 -3
  211. package/dist/types/index.d.ts +3 -3
  212. package/dist/types/index.js +2 -2
  213. package/dist/types-BF_CJeck.js +177 -0
  214. package/dist/types-CD4LFta-.d.cts +33 -0
  215. package/dist/types-CNH4sfF-.cjs +231 -0
  216. package/dist/types-DBdI0j89.d.ts +33 -0
  217. package/dist/uniqueVintage-Cui74mlJ.js +1212 -0
  218. package/dist/uniqueVintage-R2Jcu1y1.cjs +1214 -0
  219. package/dist/variant-CKVRF2-W.d.ts +13 -0
  220. package/dist/variant-raYuOP4L.d.cts +13 -0
  221. package/dist/venaCbd-o5_vOp4e.js +366 -0
  222. package/dist/venaCbd-r-IxEVc1.cjs +366 -0
  223. package/dist/westonJonBoucher-C95EuCl-.js +423 -0
  224. package/dist/westonJonBoucher-DjGEW3ZB.cjs +423 -0
  225. package/dist/wineEnthusiast-DeTFY8Gm.js +941 -0
  226. package/dist/wineEnthusiast-DvfcV5B3.cjs +941 -0
  227. package/dist/wolfMattress-6xPfOJt3.js +373 -0
  228. package/dist/wolfMattress-BjGnGKjP.cjs +373 -0
  229. package/dist/wolfTactical-Bi3WZu0m.cjs +350 -0
  230. package/dist/wolfTactical-C_F9-oPX.js +350 -0
  231. package/package.json +1 -1
  232. package/src/adapters/amplitude/amplitudeAdapter.ts +32 -9
  233. package/src/adapters/spiffy/commerce/api.ts +17 -8
  234. package/src/adapters/spiffy/commerce/graphql.ts +16 -5
  235. package/src/application/config/generalStaticConfig.ts +5 -2
  236. package/src/application/models/api/orgConfigResults.ts +6 -2
  237. package/src/application/models/validators/validateGraphQLColorsConfig.ts +23 -21
  238. package/src/application/service/cdnService.ts +4 -2
  239. package/src/application/service/index.ts +0 -1
  240. package/src/application/service/pageVariantService.ts +5 -5
  241. package/src/application/service/searchService.ts +9 -2
  242. package/src/application/service/windowChatToggleService.ts +28 -19
  243. package/src/application/service/windowFrontendConfigService.ts +7 -4
  244. package/src/atoms/app/index.ts +26 -17
  245. package/src/atoms/app/variant.ts +1 -0
  246. package/src/atoms/chat/messageQueue.ts +1 -1
  247. package/src/atoms/envive/enviveConfig.ts +81 -0
  248. package/src/atoms/org/graphqlConfig.ts +29 -11
  249. package/src/atoms/org/merchantCss.ts +114 -0
  250. package/src/atoms/org/org.ts +101 -64
  251. package/src/atoms/org/orgPageConfig.ts +9 -6
  252. package/src/atoms/org/orgUIConfig.ts +22 -9
  253. package/src/atoms/search/chatSearch.ts +85 -67
  254. package/src/contexts/chatContext.tsx +4 -1
  255. package/src/contexts/enviveConfigContext.tsx +37 -26
  256. package/src/contexts/enviveCssContext.tsx +20 -0
  257. package/src/contexts/index.ts +2 -0
  258. package/src/contexts/orgConfigContext.tsx +106 -0
  259. package/src/contexts/systemSettingsContext.tsx +22 -9
  260. package/src/contexts/types.ts +12 -9
  261. package/src/hooks/index.ts +1 -0
  262. package/src/hooks/useSearch.tsx +16 -9
  263. package/src/hooks/utils.ts +1 -1
  264. package/src/interceptors/useFormEscalation.ts +26 -9
  265. package/src/types/search-filter-types.ts +7 -7
  266. package/src/types.ts +0 -2
  267. package/dist/api-CxGedDxj.cjs +0 -5057
  268. package/dist/api-NJEaveju.js +0 -4113
  269. package/dist/atomStore-BFtpknLM.js +0 -31
  270. package/dist/atomStore-CeJm9Llb.cjs +0 -57
  271. package/dist/bandolier-C7PAIw02.js +0 -1230
  272. package/dist/bandolier-oMkFDJMF.cjs +0 -1230
  273. package/dist/carpe-C0ccKuR9.cjs +0 -608
  274. package/dist/carpe-DFc78_lJ.js +0 -606
  275. package/dist/cdnService-DvDSpfVJ.js +0 -18
  276. package/dist/cdnService-dJU3sHpF.cjs +0 -23
  277. package/dist/chat-Dk6KPb1K.js +0 -25
  278. package/dist/components-DAQxVIn9.js +0 -10
  279. package/dist/contexts-DO75-Kmx.js +0 -7152
  280. package/dist/contexts-iAzSvZjb.cjs +0 -7331
  281. package/dist/coterie-BGT8hqFR.js +0 -240
  282. package/dist/coterie-Cp9FAJTQ.cjs +0 -240
  283. package/dist/customerService-CUyZzowx.js +0 -22
  284. package/dist/customerService-DqPw_XKf.cjs +0 -35
  285. package/dist/custservice-types-D8Npo-5Z.js +0 -22
  286. package/dist/custservice-types-E9_OSaZ7.cjs +0 -34
  287. package/dist/default-BAXPatxf.cjs +0 -198
  288. package/dist/default-BR3225LZ.js +0 -4
  289. package/dist/default-DR6YjE9B.cjs +0 -4
  290. package/dist/default-wf_IORgo.js +0 -175
  291. package/dist/divIds-BWvq-i6I.js +0 -22
  292. package/dist/dreamlandBaby-BzuMvUFS.cjs +0 -347
  293. package/dist/dreamlandBaby-DZvM81LQ.js +0 -347
  294. package/dist/embedded-C1jvFj3v.js +0 -22
  295. package/dist/entrypoints-CmmOszXO.js +0 -6
  296. package/dist/entrypoints-fowCLUT2.cjs +0 -18
  297. package/dist/enviveConfigContext-CUGLpPGU.js +0 -34
  298. package/dist/enviveConfigContext-Dfr2VH6u.cjs +0 -48
  299. package/dist/featureFlagService-CroFRxvD.d.cts +0 -17
  300. package/dist/featureFlagService-NkJ2fuEj.d.ts +0 -17
  301. package/dist/featureGates-BMWXU0dS.d.ts +0 -90
  302. package/dist/featureGates-N_gyHCTn.d.cts +0 -90
  303. package/dist/fiveCbd-DE-tDY3d.cjs +0 -614
  304. package/dist/fiveCbd-HNBPqPtX.js +0 -614
  305. package/dist/forLoveAndLemons-BKmJJ9pq.js +0 -666
  306. package/dist/forLoveAndLemons-BeVEBOiu.cjs +0 -668
  307. package/dist/frontendConfig-KeNqU1wa.d.cts +0 -790
  308. package/dist/frontendConfig-cPvCTWm6.d.ts +0 -790
  309. package/dist/globalSearch-BC0rOX3E.js +0 -13
  310. package/dist/greenpan-BX1viAZB.js +0 -398
  311. package/dist/greenpan-chd3aa5I.cjs +0 -398
  312. package/dist/grooveLife-CHot3rZw.js +0 -343
  313. package/dist/grooveLife-DEob7rK0.cjs +0 -343
  314. package/dist/homegrownCannabis-CoIjcehi.cjs +0 -411
  315. package/dist/homegrownCannabis-CwkS1qDA.js +0 -411
  316. package/dist/index-BdNKc2ix.d.cts +0 -8
  317. package/dist/index-BkhvV8RZ.d.cts +0 -202
  318. package/dist/index-BrXuc_Ck.d.cts +0 -24
  319. package/dist/index-C4zjAR1c.d.cts +0 -227
  320. package/dist/index-CGB6CAmr.d.ts +0 -6
  321. package/dist/index-CIco0cCQ.d.ts +0 -183
  322. package/dist/index-COG1kOZG.d.ts +0 -749
  323. package/dist/index-CVxe7FpL.d.cts +0 -6
  324. package/dist/index-Cn1SeI5y.d.cts +0 -183
  325. package/dist/index-Cqg6ltII.d.ts +0 -38
  326. package/dist/index-CzMrMKx-.d.ts +0 -202
  327. package/dist/index-DE_7Q8qK.d.ts +0 -94
  328. package/dist/index-Da0UzyI9.d.ts +0 -24
  329. package/dist/index-DbWWcYax.d.cts +0 -749
  330. package/dist/index-DtoVXd6O.d.cts +0 -97
  331. package/dist/index-JClBRnSX.d.cts +0 -94
  332. package/dist/index-ghzD_356.d.ts +0 -8
  333. package/dist/index-hdbCEjYy.d.cts +0 -38
  334. package/dist/index-luJrHgPN.d.ts +0 -97
  335. package/dist/index-tfRj22E1.d.ts +0 -227
  336. package/dist/jackArcher-BA-pkB4A.js +0 -728
  337. package/dist/jackArcher-bewC0q1T.cjs +0 -728
  338. package/dist/jordanCraig-B5k9nlAw.cjs +0 -1787
  339. package/dist/jordanCraig-BsQ1mYbt.js +0 -1787
  340. package/dist/kindredBravely-BxYkCpGY.js +0 -491
  341. package/dist/kindredBravely-DsN0fo3s.cjs +0 -491
  342. package/dist/kutFromTheKloth-BQTCu3ct.cjs +0 -370
  343. package/dist/kutFromTheKloth-bukOQM3P.js +0 -370
  344. package/dist/larryAndSerges-D1ecaT5a.js +0 -261
  345. package/dist/larryAndSerges-bj7fgy9b.cjs +0 -261
  346. package/dist/leapsAndRebounds-BfneG_0c.cjs +0 -361
  347. package/dist/leapsAndRebounds-DhNpZETg.js +0 -361
  348. package/dist/locators-C2DX_nX6.js +0 -1
  349. package/dist/locators-CUpyd9Wt.cjs +0 -0
  350. package/dist/longevityrx-CnoGcw0w.js +0 -321
  351. package/dist/longevityrx-D0goIuX0.cjs +0 -321
  352. package/dist/lookOptic-C4afLPZP.cjs +0 -283
  353. package/dist/lookOptic-uJWIKpER.js +0 -283
  354. package/dist/mantraBrand-8JUlYtCE.cjs +0 -751
  355. package/dist/mantraBrand-DuwKHM26.js +0 -751
  356. package/dist/medterra-BQec8rzn.js +0 -584
  357. package/dist/medterra-DH067P-V.cjs +0 -584
  358. package/dist/modells-DAgLE2xo.js +0 -485
  359. package/dist/modells-DUFnLmAz.cjs +0 -485
  360. package/dist/nodeSelector-DpKXszfU.d.ts +0 -30
  361. package/dist/nodeSelector-vKB44CDB.d.cts +0 -30
  362. package/dist/org-C11APG3v.js +0 -63
  363. package/dist/org-CnHL2I9B.cjs +0 -106
  364. package/dist/pressedFloral-DVZVfOSQ.cjs +0 -662
  365. package/dist/pressedFloral-MdbuoRyA.js +0 -662
  366. package/dist/search-CvHb1M3S.js +0 -542
  367. package/dist/search-bSYdOBhY.cjs +0 -743
  368. package/dist/search-filter-types-BsJjrxk0.d.ts +0 -101
  369. package/dist/search-filter-types-CqaGK3nM.d.cts +0 -101
  370. package/dist/skinPerfection-BcEWICQN.cjs +0 -335
  371. package/dist/skinPerfection-bGiYxq1i.js +0 -335
  372. package/dist/snapSupplements-BXSXTjqF.cjs +0 -286
  373. package/dist/snapSupplements-D7hHhdC9.js +0 -286
  374. package/dist/socialProofClasses-BYLiEXpU.cjs +0 -39
  375. package/dist/socialProofClasses-CkJufEGb.js +0 -9
  376. package/dist/spanx-5-0yX3iK.js +0 -662
  377. package/dist/spanx-lUzP6Lva.cjs +0 -664
  378. package/dist/spanxStaging-HglCMJag.js +0 -846
  379. package/dist/spanxStaging-hreMR0MS.cjs +0 -849
  380. package/dist/suggestionBarV2-types-B0RbMStE.js +0 -9
  381. package/dist/supergoop-C9DDT3lY.js +0 -335
  382. package/dist/supergoop-CkjtuRck.cjs +0 -337
  383. package/dist/test-types-C9b_OdfO.d.ts +0 -39
  384. package/dist/test-types-CpKCxk8U.d.cts +0 -39
  385. package/dist/types-BE4faOO_.d.cts +0 -32
  386. package/dist/types-BUjohkXp.cjs +0 -230
  387. package/dist/types-BVsTRyxL.js +0 -176
  388. package/dist/types-TD8g7LnH.d.ts +0 -32
  389. package/dist/uniqueVintage-DIMGtYAU.cjs +0 -1214
  390. package/dist/uniqueVintage-DPWA5Ed6.js +0 -1212
  391. package/dist/useMessageInterceptor-B-P_rw73.cjs +0 -72
  392. package/dist/useMessageInterceptor-C2RZM-fo.js +0 -57
  393. package/dist/variant-BGjOVpY3.d.cts +0 -12
  394. package/dist/variant-XITncuI3.d.ts +0 -12
  395. package/dist/venaCbd-B-znfAsl.js +0 -366
  396. package/dist/venaCbd-BOwOtpOz.cjs +0 -366
  397. package/dist/westonJonBoucher-CraTzRVt.cjs +0 -423
  398. package/dist/westonJonBoucher-DCRagGu3.js +0 -423
  399. package/dist/wineEnthusiast-Bv7umajk.js +0 -941
  400. package/dist/wineEnthusiast-sVuATrq6.cjs +0 -941
  401. package/dist/wolfMattress-BUH-Rhov.js +0 -373
  402. package/dist/wolfMattress-DpVHIEnJ.cjs +0 -373
  403. package/dist/wolfTactical-BcvF_sy-.cjs +0 -350
  404. package/dist/wolfTactical-Q14A1fpw.js +0 -350
  405. package/src/application/service/environmentService.ts +0 -51
  406. package/src/extension.ts +0 -63
  407. package/src/initialize.ts +0 -163
  408. package/src/main.tsx +0 -108
  409. package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +0 -147
  410. /package/dist/{atomStore-FSZd_20F.js → locators-Dc5ZT0aF.js} +0 -0
  411. /package/dist/{atomStore-B3tsg6mF.cjs → locators-lQMJj830.cjs} +0 -0
@@ -1,542 +0,0 @@
1
- import { logger_default } from "./logger-pdEEY8T2.js";
2
- import { MessageRole, MessageType, SessionRestartRequired, UnsupportedProductException, apiKeyAtom, appDetailsAtom, messagesAtom, orgUIConfigAtom, queueUserEventAtom, replyEventCategoryAtom, userHasRepliedAtom, userQueryAtom } from "./api-NJEaveju.js";
3
- import { useEnviveConfig } from "./enviveConfigContext-CUGLpPGU.js";
4
- import { getAtomStore } from "./atomStore-BFtpknLM.js";
5
- import { Configuration, ResponseCategory, ResponseError, SearchApi, UserEventCategory } from "@spiffy-ai/commerce-api-client";
6
- import { atom } from "jotai";
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 };