@envive-ai/react-hooks 0.2.3 → 0.2.5

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 (450) hide show
  1. package/README.md +35 -0
  2. package/dist/AmplitudeOperations-BEGeYKG5.cjs +0 -0
  3. package/dist/AmplitudeOperations-CWI4yjZ4.js +1 -0
  4. package/dist/NewOrgConfig-B98Y9tMb.js +10 -0
  5. package/dist/NewOrgConfig-ZbBKiByQ.cjs +15 -0
  6. package/dist/SystemSettingsContext-CO5c1L62.cjs +20 -0
  7. package/dist/SystemSettingsContext-CXmUlH8i.js +13 -0
  8. package/dist/TrackComponentVisibleEvent-B0WO3ArV.js +52 -0
  9. package/dist/TrackComponentVisibleEvent-LRE9MYzL.cjs +59 -0
  10. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  11. package/dist/amplitudeContext-DXnJi0V1.d.ts +52 -0
  12. package/dist/api-BWSsazAG.js +166 -0
  13. package/dist/api-DeW6rHj3.cjs +239 -0
  14. package/dist/application/models/graphql/index.cjs +5 -0
  15. package/dist/application/models/graphql/index.d.cts +2 -0
  16. package/dist/application/models/graphql/index.d.ts +2 -0
  17. package/dist/application/models/graphql/index.js +4 -0
  18. package/dist/application/models/guards/api/index.cjs +16 -0
  19. package/dist/application/models/guards/api/index.d.cts +3 -0
  20. package/dist/application/models/guards/api/index.d.ts +3 -0
  21. package/dist/application/models/guards/api/index.js +5 -0
  22. package/dist/application/models/guards/utils.cjs +3 -0
  23. package/dist/application/models/guards/utils.d.cts +2 -0
  24. package/dist/application/models/guards/utils.d.ts +2 -0
  25. package/dist/application/models/guards/utils.js +3 -0
  26. package/dist/application/models/index.cjs +70 -0
  27. package/dist/application/models/index.d.cts +12 -0
  28. package/dist/application/models/index.d.ts +12 -0
  29. package/dist/application/models/index.js +12 -0
  30. package/dist/application/models/utilityTypes/index.cjs +1 -0
  31. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  32. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  33. package/dist/application/models/utilityTypes/index.js +3 -0
  34. package/dist/application/models/variantInfo/index.cjs +3 -0
  35. package/dist/application/models/variantInfo/index.d.cts +2 -0
  36. package/dist/application/models/variantInfo/index.d.ts +2 -0
  37. package/dist/application/models/variantInfo/index.js +3 -0
  38. package/dist/application/utils/index.cjs +47 -0
  39. package/dist/application/utils/index.d.cts +263 -0
  40. package/dist/application/utils/index.d.ts +263 -0
  41. package/dist/application/utils/index.js +21 -0
  42. package/dist/atomStore-DNji91Im.cjs +58 -0
  43. package/dist/atomStore-DXTVqiKc.js +32 -0
  44. package/dist/atoms/app/index.cjs +25 -0
  45. package/dist/atoms/app/index.d.cts +39 -0
  46. package/dist/atoms/app/index.d.ts +39 -0
  47. package/dist/atoms/app/index.js +21 -0
  48. package/dist/atoms/atomStore/index.cjs +6 -0
  49. package/dist/atoms/atomStore/index.d.cts +24 -0
  50. package/dist/atoms/atomStore/index.d.ts +24 -0
  51. package/dist/atoms/atomStore/index.js +3 -0
  52. package/dist/atoms/chat/index.cjs +52 -0
  53. package/dist/atoms/chat/index.d.cts +163 -0
  54. package/dist/atoms/chat/index.d.ts +163 -0
  55. package/dist/atoms/chat/index.js +23 -0
  56. package/dist/atoms/globalSearch/index.cjs +6 -0
  57. package/dist/atoms/globalSearch/index.d.cts +24 -0
  58. package/dist/atoms/globalSearch/index.d.ts +24 -0
  59. package/dist/atoms/globalSearch/index.js +3 -0
  60. package/dist/atoms/org/index.cjs +18 -0
  61. package/dist/atoms/org/index.d.cts +59 -0
  62. package/dist/atoms/org/index.d.ts +59 -0
  63. package/dist/atoms/org/index.js +5 -0
  64. package/dist/atoms/search/index.cjs +60 -0
  65. package/dist/atoms/search/index.d.cts +14 -0
  66. package/dist/atoms/search/index.d.ts +14 -0
  67. package/dist/atoms/search/index.js +30 -0
  68. package/dist/atoms/search/types.cjs +5 -0
  69. package/dist/atoms/search/types.d.cts +2 -0
  70. package/dist/atoms/search/types.d.ts +2 -0
  71. package/dist/atoms/search/types.js +3 -0
  72. package/dist/atoms/search/utils.cjs +3 -0
  73. package/dist/atoms/search/utils.d.cts +5 -0
  74. package/dist/atoms/search/utils.d.ts +5 -0
  75. package/dist/atoms/search/utils.js +3 -0
  76. package/dist/cdnContext-CH_-ssYa.js +38 -0
  77. package/dist/cdnContext-D7kHxOzE.cjs +53 -0
  78. package/dist/chat-ClvJ9xEj.js +25 -0
  79. package/dist/chat-CqPuT9_V.cjs +393 -0
  80. package/dist/chat-DCGriB7h.cjs +145 -0
  81. package/dist/chat-DH70QqJp.js +257 -0
  82. package/dist/chatElementDisplayLocation-BoE6DEdv.d.ts +25 -0
  83. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  84. package/dist/chatSearch-BQCZI8MJ.cjs +418 -0
  85. package/dist/chatSearch-D8xCWU8m.js +295 -0
  86. package/dist/chatState-CcFtSqJT.cjs +120 -0
  87. package/dist/chatState-DKnNHmwe.js +34 -0
  88. package/dist/chunk-CUT6urMc.cjs +30 -0
  89. package/dist/common-DQPvV_S_.cjs +189 -0
  90. package/dist/common-c_4eX0qn.js +39 -0
  91. package/dist/components-CDpaMUjK.js +11 -0
  92. package/dist/components-DKwVHIjq.cjs +29 -0
  93. package/dist/config/index.cjs +71 -0
  94. package/dist/config/index.d.cts +5 -0
  95. package/dist/config/index.d.ts +5 -0
  96. package/dist/config/index.js +6 -0
  97. package/dist/config/locators/components/chat/index.cjs +22 -0
  98. package/dist/config/locators/components/chat/index.d.cts +2 -0
  99. package/dist/config/locators/components/chat/index.d.ts +2 -0
  100. package/dist/config/locators/components/chat/index.js +3 -0
  101. package/dist/config/locators/components/chat/variants/index.cjs +29 -0
  102. package/dist/config/locators/components/chat/variants/index.d.cts +16 -0
  103. package/dist/config/locators/components/chat/variants/index.d.ts +16 -0
  104. package/dist/config/locators/components/chat/variants/index.js +17 -0
  105. package/dist/config/locators/components/common/index.cjs +27 -0
  106. package/dist/config/locators/components/common/index.d.cts +2 -0
  107. package/dist/config/locators/components/common/index.d.ts +2 -0
  108. package/dist/config/locators/components/common/index.js +3 -0
  109. package/dist/config/locators/components/index.cjs +5 -0
  110. package/dist/config/locators/components/index.d.cts +2 -0
  111. package/dist/config/locators/components/index.d.ts +2 -0
  112. package/dist/config/locators/components/index.js +3 -0
  113. package/dist/config/locators/components/search/index.cjs +13 -0
  114. package/dist/config/locators/components/search/index.d.cts +8 -0
  115. package/dist/config/locators/components/search/index.d.ts +8 -0
  116. package/dist/config/locators/components/search/index.js +9 -0
  117. package/dist/config/locators/index.cjs +71 -0
  118. package/dist/config/locators/index.d.cts +5 -0
  119. package/dist/config/locators/index.d.ts +5 -0
  120. package/dist/config/locators/index.js +6 -0
  121. package/dist/contexts/amplitudeContext/index.cjs +23 -0
  122. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  123. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  124. package/dist/contexts/amplitudeContext/index.js +21 -0
  125. package/dist/contexts/cdnContext/index.cjs +7 -0
  126. package/dist/contexts/cdnContext/index.d.cts +15 -0
  127. package/dist/contexts/cdnContext/index.d.ts +15 -0
  128. package/dist/contexts/cdnContext/index.js +6 -0
  129. package/dist/contexts/chatContext/index.cjs +326 -0
  130. package/dist/contexts/chatContext/index.d.cts +15 -0
  131. package/dist/contexts/chatContext/index.d.ts +15 -0
  132. package/dist/contexts/chatContext/index.js +319 -0
  133. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  134. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  135. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  136. package/dist/contexts/enviveConfigContext/index.js +6 -0
  137. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  138. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  139. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  140. package/dist/contexts/enviveCssContext/index.js +63 -0
  141. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  142. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  143. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  144. package/dist/contexts/featureFlagContext/index.js +103 -0
  145. package/dist/contexts/featureFlagServiceContext/index.cjs +7 -0
  146. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  147. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  148. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  149. package/dist/contexts/graphqlContext/index.cjs +16 -0
  150. package/dist/contexts/graphqlContext/index.d.cts +14 -0
  151. package/dist/contexts/graphqlContext/index.d.ts +14 -0
  152. package/dist/contexts/graphqlContext/index.js +15 -0
  153. package/dist/contexts/localStorageContext/index.cjs +6 -0
  154. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  155. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  156. package/dist/contexts/localStorageContext/index.js +4 -0
  157. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  158. package/dist/contexts/newOrgConfigContext/index.d.cts +15 -0
  159. package/dist/contexts/newOrgConfigContext/index.d.ts +15 -0
  160. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  161. package/dist/contexts/searchContext/index.cjs +27 -0
  162. package/dist/contexts/searchContext/index.d.cts +16 -0
  163. package/dist/contexts/searchContext/index.d.ts +16 -0
  164. package/dist/contexts/searchContext/index.js +26 -0
  165. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  166. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  167. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  168. package/dist/contexts/sessionStorageContext/index.js +4 -0
  169. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  170. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  171. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  172. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  173. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  174. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  175. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  176. package/dist/contexts/systemSettingsContext/index.js +6 -0
  177. package/dist/contexts/types.cjs +7 -0
  178. package/dist/contexts/types.d.cts +4 -0
  179. package/dist/contexts/types.d.ts +4 -0
  180. package/dist/contexts/types.js +3 -0
  181. package/dist/contexts/userIdentityContext/index.cjs +22 -0
  182. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  183. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  184. package/dist/contexts/userIdentityContext/index.js +21 -0
  185. package/dist/domObserver-Bqf3ooj8.cjs +304 -0
  186. package/dist/domObserver-v9ODTyfT.js +285 -0
  187. package/dist/enviveConfig-DZBohDpc.js +62 -0
  188. package/dist/enviveConfig-Dv9-esGV.cjs +130 -0
  189. package/dist/enviveConfigContext-D2OELZDR.cjs +60 -0
  190. package/dist/enviveConfigContext-DrDjCems.js +45 -0
  191. package/dist/events/index.cjs +4 -0
  192. package/dist/events/index.d.cts +46 -0
  193. package/dist/events/index.d.ts +46 -0
  194. package/dist/events/index.js +3 -0
  195. package/dist/events-DYY4l817.cjs +90 -0
  196. package/dist/events-DyUix-Bn.js +78 -0
  197. package/dist/featureFlagServiceContext-CJyYItqu.cjs +62 -0
  198. package/dist/featureFlagServiceContext-C_2m4wPL.d.ts +23 -0
  199. package/dist/featureFlagServiceContext-CiKWV306.d.cts +23 -0
  200. package/dist/featureFlagServiceContext-FBM6DdMJ.js +42 -0
  201. package/dist/featureGates-KEwAL8p_.js +26 -0
  202. package/dist/featureGates-qU_ulhpC.cjs +32 -0
  203. package/dist/frontendConfig-CymUbclV.d.ts +856 -0
  204. package/dist/frontendConfig-tVg0hsWZ.d.cts +856 -0
  205. package/dist/globalSearch-Ccxq8hNF.js +14 -0
  206. package/dist/globalSearch-FBk2epe8.cjs +39 -0
  207. package/dist/graphql-3PxNRFOc.js +36 -0
  208. package/dist/graphql-DGYfelZp.cjs +53 -0
  209. package/dist/graphqlConfig-GHZ1UgCw.cjs +73 -0
  210. package/dist/graphqlConfig-mDg6J44N.js +24 -0
  211. package/dist/graphqlContext-BZPEAFSR.cjs +111 -0
  212. package/dist/graphqlContext-Bf3E-V2T.d.cts +28 -0
  213. package/dist/graphqlContext-CQikpV_I.d.ts +28 -0
  214. package/dist/graphqlContext-eaZPxgRE.js +96 -0
  215. package/dist/hooks/AmplitudeOperations/index.cjs +23 -0
  216. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  217. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  218. package/dist/hooks/AmplitudeOperations/index.js +23 -0
  219. package/dist/hooks/AppDetails/index.cjs +24 -0
  220. package/dist/hooks/AppDetails/index.d.cts +27 -0
  221. package/dist/hooks/AppDetails/index.d.ts +27 -0
  222. package/dist/hooks/AppDetails/index.js +24 -0
  223. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  224. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  225. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  226. package/dist/hooks/BlockBackButton/index.js +27 -0
  227. package/dist/hooks/CdnOperations/index.cjs +24 -0
  228. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  229. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  230. package/dist/hooks/CdnOperations/index.js +22 -0
  231. package/dist/hooks/ChatToggle/index.cjs +64 -0
  232. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  233. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  234. package/dist/hooks/ChatToggle/index.js +62 -0
  235. package/dist/hooks/ChatToggleAnalytics/index.cjs +39 -0
  236. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  237. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  238. package/dist/hooks/ChatToggleAnalytics/index.js +37 -0
  239. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  240. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  241. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  242. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  243. package/dist/hooks/Debounce/index.cjs +3 -0
  244. package/dist/hooks/Debounce/index.d.cts +5 -0
  245. package/dist/hooks/Debounce/index.d.ts +5 -0
  246. package/dist/hooks/Debounce/index.js +3 -0
  247. package/dist/hooks/ElementObserver/index.cjs +179 -0
  248. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  249. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  250. package/dist/hooks/ElementObserver/index.js +177 -0
  251. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  252. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  253. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  254. package/dist/hooks/GrabAndScroll/index.js +97 -0
  255. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  256. package/dist/hooks/GraphQLConfig/index.d.cts +28 -0
  257. package/dist/hooks/GraphQLConfig/index.d.ts +28 -0
  258. package/dist/hooks/GraphQLConfig/index.js +16 -0
  259. package/dist/hooks/IdentifyUser/index.cjs +55 -0
  260. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  261. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  262. package/dist/hooks/IdentifyUser/index.js +53 -0
  263. package/dist/hooks/ImageResolver/index.cjs +55 -0
  264. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  265. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  266. package/dist/hooks/ImageResolver/index.js +53 -0
  267. package/dist/hooks/Intersection/index.cjs +3 -0
  268. package/dist/hooks/Intersection/index.d.cts +7 -0
  269. package/dist/hooks/Intersection/index.d.ts +7 -0
  270. package/dist/hooks/Intersection/index.js +3 -0
  271. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  272. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  273. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  274. package/dist/hooks/IsSmallScreen/index.js +20 -0
  275. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  276. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  277. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  278. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  279. package/dist/hooks/MessageFilter/index.cjs +54 -0
  280. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  281. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  282. package/dist/hooks/MessageFilter/index.js +54 -0
  283. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  284. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  285. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  286. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  287. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  288. package/dist/hooks/NewOrgConfig/index.d.cts +20 -0
  289. package/dist/hooks/NewOrgConfig/index.d.ts +20 -0
  290. package/dist/hooks/NewOrgConfig/index.js +20 -0
  291. package/dist/hooks/Search/index.cjs +325 -0
  292. package/dist/hooks/Search/index.d.cts +61 -0
  293. package/dist/hooks/Search/index.d.ts +61 -0
  294. package/dist/hooks/Search/index.js +322 -0
  295. package/dist/hooks/SearchOperations/index.cjs +105 -0
  296. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  297. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  298. package/dist/hooks/SearchOperations/index.js +102 -0
  299. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  300. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  301. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  302. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  303. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  304. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  305. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  306. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  307. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  308. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  309. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  310. package/dist/hooks/SnapCalculator/index.js +27 -0
  311. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  312. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  313. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  314. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  315. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +23 -0
  316. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  317. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  318. package/dist/hooks/TrackComponentVisibleEvent/index.js +23 -0
  319. package/dist/hooks/UpdateAnalyticsProps/index.cjs +63 -0
  320. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  321. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  322. package/dist/hooks/UpdateAnalyticsProps/index.js +60 -0
  323. package/dist/hooks/utils.cjs +8 -0
  324. package/dist/hooks/utils.d.cts +13 -0
  325. package/dist/hooks/utils.d.ts +13 -0
  326. package/dist/hooks/utils.js +3 -0
  327. package/dist/index-9NE86em3.d.cts +35 -0
  328. package/dist/index-BVf069X-.d.ts +184 -0
  329. package/dist/index-B_KJB5L_.d.cts +186 -0
  330. package/dist/index-BkLv_fCu.d.ts +186 -0
  331. package/dist/index-Bmub8e38.d.cts +98 -0
  332. package/dist/index-C0eAp5f5.d.ts +98 -0
  333. package/dist/index-CESxqFso.d.cts +228 -0
  334. package/dist/index-CG3P8xE1.d.cts +676 -0
  335. package/dist/index-CJc7_j_v.d.ts +44 -0
  336. package/dist/index-CiWEYzXl.d.cts +184 -0
  337. package/dist/index-Cyq5HiC0.d.cts +44 -0
  338. package/dist/index-DBqgBV9N.d.ts +9 -0
  339. package/dist/index-DHgVW8ey.d.ts +35 -0
  340. package/dist/index-DL2ODEnw.d.ts +1 -0
  341. package/dist/index-Da1s8h5C.d.cts +9 -0
  342. package/dist/index-DgjDuQl4.d.ts +676 -0
  343. package/dist/index-DzbkQtaK.d.cts +24 -0
  344. package/dist/index-FQjyuD3D.d.cts +22 -0
  345. package/dist/index-LTdMHOxj.d.ts +22 -0
  346. package/dist/index-RcVcRKH7.d.cts +1 -0
  347. package/dist/index-nDWHlouq.d.ts +24 -0
  348. package/dist/index-vP8BKdxl.d.ts +228 -0
  349. package/dist/interceptors/index.cjs +4 -0
  350. package/dist/interceptors/index.d.cts +20 -0
  351. package/dist/interceptors/index.d.ts +20 -0
  352. package/dist/interceptors/index.js +4 -0
  353. package/dist/interceptors/types.cjs +1 -0
  354. package/dist/interceptors/types.d.cts +13 -0
  355. package/dist/interceptors/types.d.ts +13 -0
  356. package/dist/interceptors/types.js +3 -0
  357. package/dist/localStorageContext-BPZ82q-G.js +95 -0
  358. package/dist/localStorageContext-NRP-CdmF.cjs +115 -0
  359. package/dist/locators-BMQGmGLq.js +23 -0
  360. package/dist/locators-DxYdak1F.cjs +131 -0
  361. package/dist/logger-TBIl4uIH.cjs +26 -0
  362. package/dist/logger-W3lqg-4b.js +20 -0
  363. package/dist/models-D-4db7XW.cjs +1537 -0
  364. package/dist/models-c86hYW-F.js +1296 -0
  365. package/dist/newOrgConfigAtom-A4BEeHMf.cjs +15 -0
  366. package/dist/newOrgConfigAtom-OzAyrPS8.js +8 -0
  367. package/dist/newOrgConfigContext-DOdUxlOE.d.cts +16 -0
  368. package/dist/newOrgConfigContext-DX9iqIIK.cjs +68 -0
  369. package/dist/newOrgConfigContext-aqN8Tu79.js +53 -0
  370. package/dist/newOrgConfigContext-jphS5d4K.d.ts +16 -0
  371. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  372. package/dist/nodeSelector-Dcn3_NrZ.d.ts +31 -0
  373. package/dist/org-Bq2KsJSp.cjs +43 -0
  374. package/dist/org-gtWmGw4K.js +12 -0
  375. package/dist/search-BQPMtze5.cjs +205 -0
  376. package/dist/search-CIrqYYMI.d.ts +20 -0
  377. package/dist/search-PXzaYtZj.js +126 -0
  378. package/dist/search-filter-types-BhK20ts3.d.ts +102 -0
  379. package/dist/search-filter-types-BxaNSLs_.d.cts +102 -0
  380. package/dist/search-y-ioX5Mz.d.cts +20 -0
  381. package/dist/searchContext-CmsLR6Ka.cjs +145 -0
  382. package/dist/searchContext-NPfqMf6b.js +129 -0
  383. package/dist/searchServiceAdapter-BczodJGV.cjs +34 -0
  384. package/dist/searchServiceAdapter-BuEHFG5t.js +16 -0
  385. package/dist/sessionStorageContext-C1u04nAK.js +52 -0
  386. package/dist/sessionStorageContext-Cy8xc9-3.cjs +66 -0
  387. package/dist/shopifyUrlContext-CUyq3f27.cjs +75 -0
  388. package/dist/shopifyUrlContext-DTLlqlMj.js +61 -0
  389. package/dist/spiffyWidgets-BnkP5kXf.d.ts +20 -0
  390. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  391. package/dist/systemSettingsContext-Ba-wi2NZ.cjs +60 -0
  392. package/dist/systemSettingsContext-DumUaV0m.js +39 -0
  393. package/dist/test-types-DbrKQIqB.d.ts +40 -0
  394. package/dist/test-types-ThQiO_cc.d.cts +40 -0
  395. package/dist/types/index.cjs +34 -0
  396. package/dist/types/index.d.cts +3 -0
  397. package/dist/types/index.d.ts +3 -0
  398. package/dist/types/index.js +31 -0
  399. package/dist/types-BWzwd0Qc.js +30 -0
  400. package/dist/types-CEx2uKKS.d.ts +51 -0
  401. package/dist/types-CKMMb_gX.d.cts +51 -0
  402. package/dist/types-CKPddlfS.cjs +0 -0
  403. package/dist/types-CtUb63bt.js +76 -0
  404. package/dist/types-Cz8CaPUQ.cjs +48 -0
  405. package/dist/types-Dc6hx6ei.js +1 -0
  406. package/dist/types-Mwm0bS2l.d.ts +10 -0
  407. package/dist/types-UUvB6h05.cjs +106 -0
  408. package/dist/types-zQGBI-Yo.d.cts +10 -0
  409. package/dist/types.cjs +0 -0
  410. package/dist/types.d.cts +15 -0
  411. package/dist/types.d.ts +15 -0
  412. package/dist/types.js +1 -0
  413. package/dist/urlsParser-COzMdJaX.cjs +78 -0
  414. package/dist/urlsParser-DxjoLj98.js +42 -0
  415. package/dist/useAmplitudeOperations-Cv0fi3uj.cjs +41 -0
  416. package/dist/useAmplitudeOperations-Ti6phPPq.js +34 -0
  417. package/dist/useAppDetails-BgqbPlfR.cjs +38 -0
  418. package/dist/useAppDetails-DnKGYtCd.js +30 -0
  419. package/dist/useDebounce-BV7B-Jz3.js +19 -0
  420. package/dist/useDebounce-vU5iW5sa.cjs +26 -0
  421. package/dist/useGraphQLConfig-BizpCw23.cjs +76 -0
  422. package/dist/useGraphQLConfig-DFWl9Z89.js +63 -0
  423. package/dist/useIntersection-BJRFGG0f.js +21 -0
  424. package/dist/useIntersection-CYRvxtRN.cjs +28 -0
  425. package/dist/useMessageInterceptor-BjGP_uXm.js +25 -0
  426. package/dist/useMessageInterceptor-arAqUq1Q.cjs +33 -0
  427. package/dist/userIdentityContext-BvsEnQVX.d.ts +20 -0
  428. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  429. package/dist/utilityTypes-B2KuRn37.js +1 -0
  430. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  431. package/dist/utils-B3x_9JTY.d.cts +15 -0
  432. package/dist/utils-B7PAzB_M.d.cts +22 -0
  433. package/dist/utils-BRNaQkCK.js +23 -0
  434. package/dist/utils-Buo4KU5l.cjs +29 -0
  435. package/dist/utils-CDw74BCO.cjs +33 -0
  436. package/dist/utils-CLGXsOwE.cjs +1591 -0
  437. package/dist/utils-CrQ0h9tc.d.ts +22 -0
  438. package/dist/utils-DIvMgPe8.js +27 -0
  439. package/dist/utils-D_kATUj6.js +92 -0
  440. package/dist/utils-DyTiotQz.d.ts +15 -0
  441. package/dist/utils-hYTjy7hJ.cjs +130 -0
  442. package/dist/utils-jYtD3hmA.js +1385 -0
  443. package/dist/variantInfo-BfKlkaWU.js +11 -0
  444. package/dist/variantInfo-DpLn4nHz.cjs +17 -0
  445. package/package.json +11 -2
  446. package/src/config/index.ts +1 -0
  447. package/src/config/locators/components/chat/index.ts +0 -1
  448. package/src/config/locators/components/chat/preview.ts +0 -1
  449. package/src/config/locators/components/common/index.ts +4 -0
  450. package/src/config/locators/index.ts +1 -0
@@ -0,0 +1,126 @@
1
+ import { newOrgConfigAtom } from "./newOrgConfigAtom-OzAyrPS8.js";
2
+ import { ProductFilters, ProductSorter } from "./chatSearch-D8xCWU8m.js";
3
+ import { ProductSorting } from "./types-BWzwd0Qc.js";
4
+ import { getSearchServiceFunction } from "./searchServiceAdapter-BuEHFG5t.js";
5
+ import { atom } from "jotai";
6
+
7
+ //#region src/atoms/search/searchAPI.ts
8
+ const searchAtom = atom({
9
+ data: null,
10
+ loading: false,
11
+ error: null,
12
+ lastQuery: null
13
+ });
14
+ const searchProductSortingAtom = atom(ProductSorting.FEATURED);
15
+ const searchSelectedFiltersAtom = atom([]);
16
+ const createFilterOption = (filterId, filterItemId, displayName) => ({
17
+ id: `${filterId}:${filterItemId}`,
18
+ displayName,
19
+ filterId,
20
+ filterItemId
21
+ });
22
+ const internalSearchParamsAtom = atom({
23
+ id: null,
24
+ query: null
25
+ });
26
+ const searchParamsAtom = atom((get) => get(internalSearchParamsAtom), (_, set, value) => {
27
+ set(internalSearchParamsAtom, value);
28
+ });
29
+ const internalSearchSystemStateAtom = atom(false);
30
+ const searchSystemAtom = atom((get) => get(internalSearchSystemStateAtom), (get, set, value) => {
31
+ if (value === get(internalSearchSystemStateAtom)) return;
32
+ const stateChangeHandler = () => {
33
+ const params = new URLSearchParams(window.location.search);
34
+ if (params.get("es") === "true") {
35
+ const id = params.get("esi");
36
+ const query = params.get("esq");
37
+ set(searchParamsAtom, {
38
+ id,
39
+ query
40
+ });
41
+ } else set(searchParamsAtom, {
42
+ id: null,
43
+ query: null
44
+ });
45
+ };
46
+ if (value) {
47
+ set(internalSearchSystemStateAtom, true);
48
+ window.addEventListener("popstate", stateChangeHandler);
49
+ stateChangeHandler();
50
+ } else {
51
+ set(internalSearchSystemStateAtom, false);
52
+ window.removeEventListener("popstate", stateChangeHandler);
53
+ }
54
+ });
55
+ const filteredSearchProductsAtom = atom((get) => {
56
+ const searchData = get(searchAtom).data;
57
+ const sorting = get(searchProductSortingAtom);
58
+ const selectedFilters = get(searchSelectedFiltersAtom);
59
+ const newOrgConfig = get(newOrgConfigAtom);
60
+ if (!searchData?.products || !newOrgConfig?.frontendConfig?.uiConfigs?.searchConfig) return [];
61
+ const filteredProducts = ProductFilters.filterProducts(searchData.products, newOrgConfig.frontendConfig.uiConfigs.searchConfig.searchFilterConfig, selectedFilters, newOrgConfig.frontendConfig.uiConfigs.searchConfig.additiveDynamicFilters);
62
+ return ProductSorter.sort(filteredProducts, sorting);
63
+ });
64
+ const searchFiltersAtom = atom((get) => {
65
+ const searchData = get(searchAtom).data;
66
+ const selectedFilters = get(searchSelectedFiltersAtom);
67
+ const newOrgConfig = get(newOrgConfigAtom);
68
+ if (!searchData?.products || !newOrgConfig?.frontendConfig?.uiConfigs?.searchConfig) return [];
69
+ return ProductFilters.getFiltersForProducts(searchData.products, newOrgConfig.frontendConfig.uiConfigs.searchConfig.searchFilterConfig, selectedFilters);
70
+ });
71
+ const addSearchFilterAtom = atom(null, (get, set, filter) => {
72
+ const current = get(searchSelectedFiltersAtom);
73
+ if (!current.some((f) => f.id === filter.id)) set(searchSelectedFiltersAtom, [...current, filter]);
74
+ });
75
+ const removeSearchFilterAtom = atom(null, (get, set, filterId) => {
76
+ const current = get(searchSelectedFiltersAtom);
77
+ set(searchSelectedFiltersAtom, current.filter((f) => f.id !== filterId));
78
+ });
79
+ const clearSearchFiltersAtom = atom(null, (_, set) => {
80
+ set(searchSelectedFiltersAtom, []);
81
+ });
82
+ const performSearchAtom = atom(null, async (get, set, params, allowRedirect = false) => {
83
+ const currentState = get(searchAtom);
84
+ const redirectSearchResultsUrl = get(newOrgConfigAtom)?.frontendConfig?.uiConfigs?.searchConfig?.redirectSearchResultsUrl;
85
+ if (allowRedirect && redirectSearchResultsUrl) {
86
+ const redirectUrl = new URL(redirectSearchResultsUrl);
87
+ redirectUrl.searchParams.set("es", "true");
88
+ redirectUrl.searchParams.set("esq", params.query);
89
+ window.location.href = redirectUrl.toString();
90
+ } else {
91
+ const url = new URL(window.location.href);
92
+ url.searchParams.set("es", "true");
93
+ url.searchParams.set("esq", params.query);
94
+ window.history.pushState({}, "", url);
95
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
96
+ }
97
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
98
+ if (currentState.loading) return;
99
+ set(searchAtom, {
100
+ data: null,
101
+ loading: true,
102
+ error: null,
103
+ lastQuery: params.query
104
+ });
105
+ try {
106
+ const result = await getSearchServiceFunction()(params);
107
+ set(searchAtom, {
108
+ data: result,
109
+ loading: false,
110
+ error: null,
111
+ lastQuery: params.query
112
+ });
113
+ } catch (error) {
114
+ const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
115
+ set(searchAtom, {
116
+ data: null,
117
+ loading: false,
118
+ error: errorMessage,
119
+ lastQuery: params.query
120
+ });
121
+ }
122
+ });
123
+
124
+ //#endregion
125
+ export { addSearchFilterAtom, clearSearchFiltersAtom, createFilterOption, filteredSearchProductsAtom, internalSearchSystemStateAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom, searchSystemAtom };
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLVBYemFZdFpqLmpzIiwibmFtZXMiOlsiZXJyb3I6IHVua25vd24iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQsIFNlYXJjaFBhcmFtcyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2hcIjtcbmltcG9ydCB7IFByb2R1Y3RTb3J0aW5nIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IFByb2R1Y3RGaWx0ZXJzIH0gZnJvbSBcIi4vcHJvZHVjdEZpbHRlcnNcIjtcbmltcG9ydCB7IFByb2R1Y3RTb3J0ZXIgfSBmcm9tIFwiLi9wcm9kdWN0U29ydGVyXCI7XG5pbXBvcnQgeyBuZXdPcmdDb25maWdBdG9tIH0gZnJvbSBcIi4uL29yZ1wiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSBcIi4vc2VhcmNoU2VydmljZUFkYXB0ZXJcIjtcblxuZXhwb3J0IHR5cGUgU2VsZWN0ZWRGaWx0ZXJPcHRpb24gPSB7XG4gIGlkOiBzdHJpbmc7IC8vIFwiZmlsdGVySWQ6ZmlsdGVySXRlbUlkXCIgLSBtYWludGFpbnMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgY29tcGFyaXNvbnNcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgZmlsdGVySWQ6IHN0cmluZzsgLy8gRmlsdGVyIGNhdGVnb3J5XG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nOyAvLyBGaWx0ZXIgdmFsdWVcbn07XG5cbmludGVyZmFjZSBTZWFyY2hTdGF0ZSB7XG4gIGRhdGE6IFNlYXJjaFJlc3VsdCB8IG51bGw7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0UXVlcnk6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hBdG9tID0gYXRvbTxTZWFyY2hTdGF0ZT4oe1xuICBkYXRhOiBudWxsLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIGxhc3RRdWVyeTogbnVsbCxcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoUHJvZHVjdFNvcnRpbmdBdG9tID0gYXRvbTxQcm9kdWN0U29ydGluZz4oXG4gIFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEXG4pO1xuZXhwb3J0IGNvbnN0IHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20gPSBhdG9tPFNlbGVjdGVkRmlsdGVyT3B0aW9uW10+KFtdKTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZpbHRlck9wdGlvbiA9IChcbiAgZmlsdGVySWQ6IHN0cmluZyxcbiAgZmlsdGVySXRlbUlkOiBzdHJpbmcsXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmdcbik6IFNlbGVjdGVkRmlsdGVyT3B0aW9uID0+ICh7XG4gIGlkOiBgJHtmaWx0ZXJJZH06JHtmaWx0ZXJJdGVtSWR9YCxcbiAgZGlzcGxheU5hbWUsXG4gIGZpbHRlcklkLFxuICBmaWx0ZXJJdGVtSWQsXG59KTtcblxuY29uc3QgaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tID0gYXRvbTx7XG4gIGlkOiBzdHJpbmcgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgbnVsbDtcbn0+KHtcbiAgaWQ6IG51bGwsXG4gIHF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQYXJhbXNBdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSksXG4gIChfLCBzZXQsIHZhbHVlOiB7IGlkOiBzdHJpbmcgfCBudWxsOyBxdWVyeTogc3RyaW5nIHwgbnVsbCB9KSA9PiB7XG4gICAgc2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSwgdmFsdWUpO1xuICB9XG4pO1xuZXhwb3J0IGNvbnN0IGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hTeXN0ZW1BdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgaWYgKHBhcmFtcy5nZXQoXCJlc1wiKSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KFwiZXNpXCIpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy5nZXQoXCJlc3FcIik7XG4gICAgICAgIHNldChzZWFyY2hQYXJhbXNBdG9tLCB7IGlkLCBxdWVyeSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldChzZWFyY2hQYXJhbXNBdG9tLCB7IGlkOiBudWxsLCBxdWVyeTogbnVsbCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgc2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tLCB0cnVlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9wc3RhdGVcIiwgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgIC8vIEFsc28gdHJpZ2dlciB0aGUgaGFzaCBjaGFuZ2UgaGFuZGxlciB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgIHN0YXRlQ2hhbmdlSGFuZGxlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIGZhbHNlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9wc3RhdGVcIiwgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICB9XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJlZFNlYXJjaFByb2R1Y3RzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNvcnRpbmcgPSBnZXQoc2VhcmNoUHJvZHVjdFNvcnRpbmdBdG9tKTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKFxuICAgICFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fFxuICAgICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZ1xuICApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGZpbHRlcmVkUHJvZHVjdHMgPSBQcm9kdWN0RmlsdGVycy5maWx0ZXJQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuYWRkaXRpdmVEeW5hbWljRmlsdGVyc1xuICApO1xuXG4gIHJldHVybiBQcm9kdWN0U29ydGVyLnNvcnQoZmlsdGVyZWRQcm9kdWN0cywgc29ydGluZyk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKFxuICAgICFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fFxuICAgICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZ1xuICApXG4gICAgcmV0dXJuIFtdO1xuXG4gIHJldHVybiBQcm9kdWN0RmlsdGVycy5nZXRGaWx0ZXJzRm9yUHJvZHVjdHMoXG4gICAgc2VhcmNoRGF0YS5wcm9kdWN0cyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5zZWFyY2hGaWx0ZXJDb25maWcsXG4gICAgc2VsZWN0ZWRGaWx0ZXJzXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlYXJjaEZpbHRlckF0b20gPSBhdG9tKFxuICBudWxsLFxuICAoZ2V0LCBzZXQsIGZpbHRlcjogU2VsZWN0ZWRGaWx0ZXJPcHRpb24pID0+IHtcbiAgICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICAgIGlmICghY3VycmVudC5zb21lKChmKSA9PiBmLmlkID09PSBmaWx0ZXIuaWQpKSB7XG4gICAgICBzZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSwgWy4uLmN1cnJlbnQsIGZpbHRlcl0pO1xuICAgIH1cbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVNlYXJjaEZpbHRlckF0b20gPSBhdG9tKFxuICBudWxsLFxuICAoZ2V0LCBzZXQsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICAgIHNldChcbiAgICAgIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG4gICAgICBjdXJyZW50LmZpbHRlcigoZikgPT4gZi5pZCAhPT0gZmlsdGVySWQpXG4gICAgKTtcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyU2VhcmNoRmlsdGVyc0F0b20gPSBhdG9tKG51bGwsIChfLCBzZXQpID0+IHtcbiAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFtdKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcGVyZm9ybVNlYXJjaEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogU2VhcmNoUGFyYW1zLCBhbGxvd1JlZGlyZWN0ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXQoc2VhcmNoQXRvbSk7XG4gICAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuICAgIGNvbnN0IHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCA9XG4gICAgICBuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZ1xuICAgICAgICA/LnJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybDtcblxuICAgIGlmIChhbGxvd1JlZGlyZWN0ICYmIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCkge1xuICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSBuZXcgVVJMKHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCk7XG4gICAgICByZWRpcmVjdFVybC5zZWFyY2hQYXJhbXMuc2V0KFwiZXNcIiwgXCJ0cnVlXCIpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldChcImVzcVwiLCBwYXJhbXMucXVlcnkpO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVybC50b1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGUgVVJMIGFuZCBtYW51YWxseSB0cmlnZ2VyIHN0YXRlIGNoYW5nZSAoc2luY2UgcHVzaFN0YXRlIGRvZXNuJ3QgdHJpZ2dlciBwb3BzdGF0ZSlcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoXCJlc1wiLCBcInRydWVcIik7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChcImVzcVwiLCBwYXJhbXMucXVlcnkpO1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCB1cmwpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KFwicG9wc3RhdGVcIiwgeyBzdGF0ZToge30gfSkpO1xuICAgIH1cblxuICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudChcInBvcHN0YXRlXCIsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICBpZiAoY3VycmVudFN0YXRlLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjsgLy8gUHJldmVudCBjb25jdXJyZW50IHNlYXJjaGVzXG4gICAgfVxuXG4gICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgIGRhdGE6IG51bGwsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBsYXN0UXVlcnk6IHBhcmFtcy5xdWVyeSxcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VhcmNoU2VydmljZUZ1bmN0aW9uID0gZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uKCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZWFyY2hTZXJ2aWNlRnVuY3Rpb24ocGFyYW1zKTtcbiAgICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICBsYXN0UXVlcnk6IHBhcmFtcy5xdWVyeSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFwiQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZFwiO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBc0JBLE1BQWEsYUFBYSxLQUFrQjtDQUMxQyxNQUFNO0NBQ04sU0FBUztDQUNULE9BQU87Q0FDUCxXQUFXO0NBQ1osQ0FBQztBQUVGLE1BQWEsMkJBQTJCLEtBQ3RDLGVBQWUsU0FDaEI7QUFDRCxNQUFhLDRCQUE0QixLQUE2QixFQUFFLENBQUM7QUFFekUsTUFBYSxzQkFDWCxVQUNBLGNBQ0EsaUJBQzBCO0NBQzFCLElBQUksR0FBRyxTQUFTLEdBQUc7Q0FDbkI7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxNQUFNLDJCQUEyQixLQUc5QjtDQUNELElBQUk7Q0FDSixP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
@@ -0,0 +1,102 @@
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 };
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci10eXBlcy1CaEsyMHRzMy5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy9zZWFyY2gtZmlsdGVyLXR5cGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTW9kYWxTaGVldFByb3BzID0ge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIGNsb3NlTW9kYWw6ICgpID0+IHZvaWQ7XG4gICAgZGVza3RvcFdpZHRoPzogbnVtYmVyO1xuICAgIG1vYmlsZUZ1bGxIZWlnaHQ/OiBudW1iZXI7XG4gICAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXI7XG4gICAgaGVhZGVyUHJvcHM6IE1vZGFsU2hlZXRIZWFkZXJQcm9wcztcbiAgICBmb290ZXJQcm9wcz86IE1vZGFsU2hlZXRGb290ZXJQcm9wcztcbiAgICBzaG93T3ZlcmxheT86IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgTW9kYWxTaGVldEhlYWRlclByb3BzID0ge1xuICAgIGhlYWRlclZhcmlhbnQ/OiBNb2RhbFNoZWV0SGVhZGVyVmFyaWFudDtcbiAgICBoZWFkZXJDb250ZW50OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgaGFuZGxlSGVhZGVyQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcbmV4cG9ydCB0eXBlIE1vZGFsU2hlZXRGb290ZXJQcm9wcyA9IHtcbiAgICBmb290ZXJDb250ZW50OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgZm9vdGVyQ2xhc3NOYW1lPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE1vZGFsU2hlZXRIZWFkZXJWYXJpYW50ID0gXCJwcmltYXJ5XCI7XG5leHBvcnQgdHlwZSBDbG9zZUljb25WYXJpYW50ID0gXCJsaWdodFwiIHwgXCJ0ZXJ0aWFyeVwiIHwgXCJkYXJrXCI7XG5leHBvcnQgdHlwZSBNb2RhbFNoZWV0Q2xvc2VJY29uUHJvcHMgPSB7XG4gICAgY2xvc2VJY29uVmFyaWFudDogQ2xvc2VJY29uVmFyaWFudDtcbiAgICBjbG9zZUljb24/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgY2xvc2VNb2RhbD86ICgpID0+IHZvaWQ7XG4gICAgaWNvblNpemU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU2VhcmNoRmlsdGVyUHJvcHMgPSB7XG4gICAgZmlsdGVyczogU2VhcmNoRmlsdGVyRGF0dW1bXTtcbiAgICBzZWxlY3RGaWx0ZXJJdGVtOiBTZWxlY3RGaWx0ZXJJdGVtO1xuICAgIGNsZWFyQWxsRmlsdGVyczogKCkgPT4gdm9pZDtcbiAgICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBpc09wZW46IGJvb2xlYW47XG4gICAgc2V0SXNPcGVuOiAoaXNPcGVuOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGFwcGx5RmlsdGVyc1VuY2hhbmdlZENsYXNzZXM6IHN0cmluZztcbiAgICBhcHBseUZpbHRlcnNDaGFuZ2VkQ2xhc3Nlczogc3RyaW5nO1xuICAgIGhlYWRlckNvbnRlbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgZm9vdGVyQ29udGVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICBmaWx0ZXJCdXR0b25UZXh0Pzogc3RyaW5nO1xuICAgIGhlYWRlckNsYXNzTmFtZT86IHN0cmluZztcbiAgICByYWRpb0J1dHRvbkZpbGxDb2xvcjogc3RyaW5nO1xuICAgIHJhZGlvQnV0dG9uSG92ZXJDb2xvcj86IHN0cmluZztcbiAgICByYWRpb0J1dHRvblVuY2hlY2tlZEJvcmRlckNvbG9yPzogc3RyaW5nO1xuICAgIGZpbHRlckNsb3NlSWNvblZhcmlhbnQ6IENsb3NlSWNvblZhcmlhbnQ7XG59O1xuZXhwb3J0IHR5cGUgU2VsZWN0RmlsdGVySXRlbSA9ICh7IGZpbHRlcklkLCBmaWx0ZXJJdGVtSWQsIGlzU2VsZWN0ZWQsIGRpc3BsYXlOYW1lLCB9OiB7XG4gICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICBmaWx0ZXJJdGVtSWQ6IHN0cmluZztcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG59KSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgU2VsZWN0ZWRGaWx0ZXJJdGVtRGF0dW0gPSB7XG4gICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICBmaWx0ZXJJdGVtSWQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJEYXR1bSA9IHtcbiAgICBmaWx0ZXJJZDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgaXRlbXM6IFNlYXJjaEZpbHRlckl0ZW1EYXR1bVtdO1xufTtcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlckl0ZW1EYXR1bSA9IHtcbiAgICBmaWx0ZXJJdGVtSWQ6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIHByb2R1Y3RDb3VudDogbnVtYmVyO1xuICAgIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgU2VhcmNoRmlsdGVySGVhZGVyUHJvcHMgPSB7XG4gICAgY2xvc2VNb2RhbDogKCkgPT4gdm9pZDtcbiAgICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBoZWFkZXJDbGFzc05hbWU6IHN0cmluZztcbiAgICBmaWx0ZXJDbG9zZUljb25WYXJpYW50OiBDbG9zZUljb25WYXJpYW50O1xufTtcbmV4cG9ydCB0eXBlIEZpbHRlclByb3BzID0ge1xuICAgIGZpbHRlcjogU2VhcmNoRmlsdGVyRGF0dW07XG4gICAgc2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbTtcbiAgICByYWRpb0J1dHRvbkZpbGxDb2xvcj86IHN0cmluZztcbiAgICByYWRpb0J1dHRvbkhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gICAgcmFkaW9CdXR0b25VbmNoZWNrZWRCb3JkZXJDb2xvcj86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBGaWx0ZXJJdGVtUHJvcHMgPSB7XG4gICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICBmaWx0ZXJJdGVtOiBTZWFyY2hGaWx0ZXJJdGVtRGF0dW07XG4gICAgc2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbTtcbn07XG5leHBvcnQgdHlwZSBGaWx0ZXJGb290ZXJQcm9wcyA9IHtcbiAgICBjbG9zZU1vZGFsOiAoKSA9PiB2b2lkO1xuICAgIGNsZWFyQWxsRmlsdGVyczogKCkgPT4gdm9pZDtcbiAgICBmaWx0ZXJDb3VudDogbnVtYmVyO1xuICAgIGhhc0ZpbHRlcnNDaGFuZ2VkOiBib29sZWFuO1xuICAgIGFwcGx5RmlsdGVyc1VuY2hhbmdlZENsYXNzZXM6IHN0cmluZztcbiAgICBhcHBseUZpbHRlcnNDaGFuZ2VkQ2xhc3Nlczogc3RyaW5nO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcsa0JBQWtCO0NBQUM7T0FBQSxNQUFBO09BQUE7T0FBQTtDQUFBO0FBQzlCLElBQVcsd0JBQWtCO0NBQUE7T0FBQTtPQUFBLE1BQUE7Q0FBQTtBQUM3QixJQUFXLHdCQUFRLENBQUEsV0FBQSxNQUFBLFVBQUE7QUFDbkIsSUFBVywwQkFBZSxDQUFBLElBQUE7QUFDMUIsSUFBVyxtQkFBYyxDQUFBLElBQUE7QUFDekIsSUFBVywyQkFBa0I7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQzdCLElBQVcsb0JBQW1CO0NBQUE7T0FBQTtPQUFBO09BQUEsTUFBQTtPQUFBLE1BQUE7T0FBQTtDQUFBO0FBQzlCLElBQVcsbUJBQW1CO0NBQUM7T0FBTztPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3RDLElBQVcsMEJBQTBCLENBQUMsSUFBQztBQUN2QyxJQUFXLG9CQUFjLENBQUEsV0FBQSxzQkFBQTtBQUN6QixJQUFDLHdCQUFBLENBQUEsSUFBQTtBQUNELElBQVcsMEJBQXlCLENBQUEsV0FBQSxpQkFBQTtBQUNwQyxJQUFXLGNBQWM7Q0FBQztPQUFXO09BQU07Q0FBQTtBQUMzQyxJQUFXLGtCQUFrQjtDQUFDO09BQUk7T0FBQTtDQUFBO0FBQ2xDLElBQVcsb0JBQW9CLENBQUMsSUFBRSJ9
@@ -0,0 +1,102 @@
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 };
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci10eXBlcy1CeGFOU0xzXy5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMvc2VhcmNoLWZpbHRlci10eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1vZGFsU2hlZXRQcm9wcyA9IHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgICBjbG9zZU1vZGFsOiAoKSA9PiB2b2lkO1xuICAgIGRlc2t0b3BXaWR0aD86IG51bWJlcjtcbiAgICBtb2JpbGVGdWxsSGVpZ2h0PzogbnVtYmVyO1xuICAgIGFuaW1hdGlvbkR1cmF0aW9uPzogbnVtYmVyO1xuICAgIGhlYWRlclByb3BzOiBNb2RhbFNoZWV0SGVhZGVyUHJvcHM7XG4gICAgZm9vdGVyUHJvcHM/OiBNb2RhbFNoZWV0Rm9vdGVyUHJvcHM7XG4gICAgc2hvd092ZXJsYXk/OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIE1vZGFsU2hlZXRIZWFkZXJQcm9wcyA9IHtcbiAgICBoZWFkZXJWYXJpYW50PzogTW9kYWxTaGVldEhlYWRlclZhcmlhbnQ7XG4gICAgaGVhZGVyQ29udGVudDogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGhhbmRsZUhlYWRlckNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5leHBvcnQgdHlwZSBNb2RhbFNoZWV0Rm9vdGVyUHJvcHMgPSB7XG4gICAgZm9vdGVyQ29udGVudDogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGZvb3RlckNsYXNzTmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBNb2RhbFNoZWV0SGVhZGVyVmFyaWFudCA9IFwicHJpbWFyeVwiO1xuZXhwb3J0IHR5cGUgQ2xvc2VJY29uVmFyaWFudCA9IFwibGlnaHRcIiB8IFwidGVydGlhcnlcIiB8IFwiZGFya1wiO1xuZXhwb3J0IHR5cGUgTW9kYWxTaGVldENsb3NlSWNvblByb3BzID0ge1xuICAgIGNsb3NlSWNvblZhcmlhbnQ6IENsb3NlSWNvblZhcmlhbnQ7XG4gICAgY2xvc2VJY29uPzogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGNsb3NlTW9kYWw/OiAoKSA9PiB2b2lkO1xuICAgIGljb25TaXplPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlclByb3BzID0ge1xuICAgIGZpbHRlcnM6IFNlYXJjaEZpbHRlckRhdHVtW107XG4gICAgc2VsZWN0RmlsdGVySXRlbTogU2VsZWN0RmlsdGVySXRlbTtcbiAgICBjbGVhckFsbEZpbHRlcnM6ICgpID0+IHZvaWQ7XG4gICAgcHJvZHVjdENvdW50OiBudW1iZXI7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIHNldElzT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBhcHBseUZpbHRlcnNVbmNoYW5nZWRDbGFzc2VzOiBzdHJpbmc7XG4gICAgYXBwbHlGaWx0ZXJzQ2hhbmdlZENsYXNzZXM6IHN0cmluZztcbiAgICBoZWFkZXJDb250ZW50PzogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGZvb3RlckNvbnRlbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgZmlsdGVyQnV0dG9uVGV4dD86IHN0cmluZztcbiAgICBoZWFkZXJDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgcmFkaW9CdXR0b25GaWxsQ29sb3I6IHN0cmluZztcbiAgICByYWRpb0J1dHRvbkhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gICAgcmFkaW9CdXR0b25VbmNoZWNrZWRCb3JkZXJDb2xvcj86IHN0cmluZztcbiAgICBmaWx0ZXJDbG9zZUljb25WYXJpYW50OiBDbG9zZUljb25WYXJpYW50O1xufTtcbmV4cG9ydCB0eXBlIFNlbGVjdEZpbHRlckl0ZW0gPSAoeyBmaWx0ZXJJZCwgZmlsdGVySXRlbUlkLCBpc1NlbGVjdGVkLCBkaXNwbGF5TmFtZSwgfToge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG4gICAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xufSkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVySXRlbURhdHVtID0ge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU2VhcmNoRmlsdGVyRGF0dW0gPSB7XG4gICAgZmlsdGVySWQ6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGl0ZW1zOiBTZWFyY2hGaWx0ZXJJdGVtRGF0dW1bXTtcbn07XG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJJdGVtRGF0dW0gPSB7XG4gICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlckhlYWRlclByb3BzID0ge1xuICAgIGNsb3NlTW9kYWw6ICgpID0+IHZvaWQ7XG4gICAgcHJvZHVjdENvdW50OiBudW1iZXI7XG4gICAgaGVhZGVyQ2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgZmlsdGVyQ2xvc2VJY29uVmFyaWFudDogQ2xvc2VJY29uVmFyaWFudDtcbn07XG5leHBvcnQgdHlwZSBGaWx0ZXJQcm9wcyA9IHtcbiAgICBmaWx0ZXI6IFNlYXJjaEZpbHRlckRhdHVtO1xuICAgIHNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW07XG4gICAgcmFkaW9CdXR0b25GaWxsQ29sb3I/OiBzdHJpbmc7XG4gICAgcmFkaW9CdXR0b25Ib3ZlckNvbG9yPzogc3RyaW5nO1xuICAgIHJhZGlvQnV0dG9uVW5jaGVja2VkQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRmlsdGVySXRlbVByb3BzID0ge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZmlsdGVySXRlbTogU2VhcmNoRmlsdGVySXRlbURhdHVtO1xuICAgIHNlbGVjdEZpbHRlckl0ZW06IFNlbGVjdEZpbHRlckl0ZW07XG59O1xuZXhwb3J0IHR5cGUgRmlsdGVyRm9vdGVyUHJvcHMgPSB7XG4gICAgY2xvc2VNb2RhbDogKCkgPT4gdm9pZDtcbiAgICBjbGVhckFsbEZpbHRlcnM6ICgpID0+IHZvaWQ7XG4gICAgZmlsdGVyQ291bnQ6IG51bWJlcjtcbiAgICBoYXNGaWx0ZXJzQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBhcHBseUZpbHRlcnNVbmNoYW5nZWRDbGFzc2VzOiBzdHJpbmc7XG4gICAgYXBwbHlGaWx0ZXJzQ2hhbmdlZENsYXNzZXM6IHN0cmluZztcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGtCQUFrQjtDQUFDO09BQUEsTUFBQTtPQUFBO09BQUE7Q0FBQTtBQUM5QixJQUFXLHdCQUFrQjtDQUFBO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDN0IsSUFBVyx3QkFBUSxDQUFBLFdBQUEsTUFBQSxVQUFBO0FBQ25CLElBQVcsMEJBQWUsQ0FBQSxJQUFBO0FBQzFCLElBQVcsbUJBQWMsQ0FBQSxJQUFBO0FBQ3pCLElBQVcsMkJBQWtCO0NBQUE7T0FBQTtPQUFBLE1BQUE7Q0FBQTtBQUM3QixJQUFXLG9CQUFtQjtDQUFBO09BQUE7T0FBQTtPQUFBLE1BQUE7T0FBQSxNQUFBO09BQUE7Q0FBQTtBQUM5QixJQUFXLG1CQUFtQjtDQUFDO09BQU87T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN0QyxJQUFXLDBCQUEwQixDQUFDLElBQUM7QUFDdkMsSUFBVyxvQkFBYyxDQUFBLFdBQUEsc0JBQUE7QUFDekIsSUFBQyx3QkFBQSxDQUFBLElBQUE7QUFDRCxJQUFXLDBCQUF5QixDQUFBLFdBQUEsaUJBQUE7QUFDcEMsSUFBVyxjQUFjO0NBQUM7T0FBVztPQUFNO0NBQUE7QUFDM0MsSUFBVyxrQkFBa0I7Q0FBQztPQUFJO09BQUE7Q0FBQTtBQUNsQyxJQUFXLG9CQUFvQixDQUFDLElBQUUifQ==
@@ -0,0 +1,20 @@
1
+ import { CamelCasedPropertiesDeep } from "./index-CESxqFso.cjs";
2
+ import { ProductSearchResponse, ProductSearchResponseAttributes, SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
3
+
4
+ //#region src/application/models/api/search.d.ts
5
+ interface ProductSearchResponse$1 extends CamelCasedPropertiesDeep<ProductSearchResponse> {}
6
+ interface ProductSearchResponseAttributes$1 extends CamelCasedPropertiesDeep<ProductSearchResponseAttributes> {}
7
+ interface SearchResult {
8
+ products: SearchResponseProduct[];
9
+ filters: string[];
10
+ generatedQuery?: string;
11
+ totalProductCount: number;
12
+ searchResponseId: string;
13
+ }
14
+ interface SearchParams {
15
+ query: string;
16
+ limit?: number;
17
+ }
18
+ //#endregion
19
+ export { ProductSearchResponse$1 as ProductSearchResponse, ProductSearchResponseAttributes$1 as ProductSearchResponseAttributes, SearchParams, SearchResult };
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXktaW9YNU16LmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3NlYXJjaC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTZWFyY2hSZXNwb25zZSBhcyBBcGlQcm9kdWN0U2VhcmNoUmVzcG9uc2UsIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgYXMgQXBpUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcywgU2VhcmNoUmVzcG9uc2VQcm9kdWN0IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbGl0eVR5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFNlYXJjaFJlc3BvbnNlIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVByb2R1Y3RTZWFyY2hSZXNwb25zZT4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0U2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0IHtcbiAgICBwcm9kdWN0czogU2VhcmNoUmVzcG9uc2VQcm9kdWN0W107XG4gICAgZmlsdGVyczogc3RyaW5nW107XG4gICAgZ2VuZXJhdGVkUXVlcnk/OiBzdHJpbmc7XG4gICAgdG90YWxQcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBzZWFyY2hSZXNwb25zZUlkOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFBhcmFtcyB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBsaW1pdD86IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQVcsMEJBQXdCO0NBQUM7T0FBVztPQUFnQztDQUFtQjtBQUNsRyxJQUFBLG9DQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDQSxJQUFXLGVBQWUsQ0FBQyxXQUFXLHNCQUFzQjtBQUM1RCxJQUFBLGVBQUEsQ0FBQSxJQUFBIn0=
@@ -0,0 +1,145 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_logger = require('./logger-TBIl4uIH.cjs');
3
+ const require_enviveConfig = require('./enviveConfig-Dv9-esGV.cjs');
4
+ const require_utils = require('./utils-CLGXsOwE.cjs');
5
+ const require_enviveConfigContext = require('./enviveConfigContext-D2OELZDR.cjs');
6
+ const require_searchServiceAdapter = require('./searchServiceAdapter-BczodJGV.cjs');
7
+ const require_useAppDetails = require('./useAppDetails-BgqbPlfR.cjs');
8
+ let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
9
+ __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
10
+ let react = require("react");
11
+ react = require_chunk.__toESM(react);
12
+ let jotai = require("jotai");
13
+ jotai = require_chunk.__toESM(jotai);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
16
+
17
+ //#region src/contexts/searchContext/searchContext.tsx
18
+ const transformProductResponses = (products) => products.map((data) => ({
19
+ id: data.id,
20
+ responseId: data.response_id,
21
+ category: __spiffy_ai_commerce_api_client.ResponseCategory.Product,
22
+ description: data.description,
23
+ imageUrl: data.image_url,
24
+ imageUrls: data.image_urls,
25
+ title: data.title,
26
+ url: data.url,
27
+ originalPrice: data.original_price,
28
+ salePrice: data.sale_price,
29
+ averageRating: data.average_rating,
30
+ numberReviews: data.number_reviews,
31
+ metadata: data.metadata,
32
+ isForGrid: data.is_for_grid,
33
+ colors: data.colors,
34
+ sizes: data.sizes,
35
+ filters: data.filters
36
+ }));
37
+ async function errorResponseBody(error) {
38
+ try {
39
+ return await error.response.json();
40
+ } catch {
41
+ return {};
42
+ }
43
+ }
44
+ async function throwSessionRestartRequiredIf(errorMsg, error) {
45
+ if (!(error instanceof __spiffy_ai_commerce_api_client.ResponseError)) {
46
+ require_logger.logger_default.logInfo(errorMsg, error);
47
+ throw error;
48
+ }
49
+ const errorResponse = await errorResponseBody(error);
50
+ if (errorResponse?.message?.toLowerCase() === "unsupported product" || errorResponse?.app_code?.toUpperCase() === "PRODUCT_NOT_FOUND") throw new require_utils.UnsupportedProductException();
51
+ else if (errorResponse?.app_code?.toUpperCase() === "RESTART_SESSION" || errorResponse?.sub_code?.toUpperCase() === "NOT_FOUND") {
52
+ require_logger.logger_default.logInfo("Session does not exist. Re-start session", error, error.response, errorResponse);
53
+ throw new require_utils.SessionRestartRequired();
54
+ }
55
+ require_logger.logger_default.logInfo(errorMsg, error);
56
+ throw error;
57
+ }
58
+ const SearchContext = (0, react.createContext)(void 0);
59
+ const SearchProvider = ({ children }) => {
60
+ const { orgLevelApiKey, publicKey } = require_enviveConfigContext.useEnviveConfig();
61
+ const apiKey = orgLevelApiKey || publicKey;
62
+ const appDetails = require_useAppDetails.useAppDetails();
63
+ const baseUrl = (0, jotai.useAtomValue)(require_enviveConfig.baseUrlAtom);
64
+ const isReady = Boolean(apiKey && appDetails && baseUrl);
65
+ const searchApi = (0, react.useMemo)(() => {
66
+ if (!isReady) return null;
67
+ const config = new __spiffy_ai_commerce_api_client.Configuration({
68
+ accessToken: apiKey,
69
+ basePath: baseUrl,
70
+ headers: {
71
+ "Content-Type": "application/json",
72
+ Accept: "application/json"
73
+ }
74
+ });
75
+ return new __spiffy_ai_commerce_api_client.SearchApi(config);
76
+ }, [
77
+ apiKey,
78
+ baseUrl,
79
+ isReady
80
+ ]);
81
+ const searchProducts = (0, react.useCallback)(async (params) => {
82
+ if (!isReady || !searchApi) throw new Error("SearchService not ready - missing dependencies");
83
+ try {
84
+ const { products, filters, search_response_id: searchResponseId } = await searchApi.v1SearchQueryGet({
85
+ query: params.query,
86
+ limit: params.limit,
87
+ org_id: appDetails.orgId,
88
+ user_id: appDetails.userId
89
+ });
90
+ return {
91
+ products: transformProductResponses(products) || [],
92
+ filters: filters || [],
93
+ totalProductCount: products?.length || 0,
94
+ searchResponseId: searchResponseId || ""
95
+ };
96
+ } catch (error) {
97
+ await throwSessionRestartRequiredIf("Failed to search products", error);
98
+ return {
99
+ products: [],
100
+ filters: [],
101
+ totalProductCount: 0,
102
+ searchResponseId: ""
103
+ };
104
+ }
105
+ }, [
106
+ searchApi,
107
+ isReady,
108
+ appDetails
109
+ ]);
110
+ (0, react.useEffect)(() => {
111
+ if (isReady) require_searchServiceAdapter.setSearchServiceFunction(searchProducts);
112
+ else require_searchServiceAdapter.clearSearchServiceFunction();
113
+ return () => {
114
+ require_searchServiceAdapter.clearSearchServiceFunction();
115
+ };
116
+ }, [searchProducts, isReady]);
117
+ const value = (0, react.useMemo)(() => ({
118
+ searchProducts,
119
+ isReady
120
+ }), [searchProducts, isReady]);
121
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchContext.Provider, {
122
+ value,
123
+ children
124
+ });
125
+ };
126
+ const useSearchService = () => {
127
+ const context = (0, react.useContext)(SearchContext);
128
+ if (!context) throw new Error("useSearchService must be used within a SearchProvider");
129
+ return context;
130
+ };
131
+
132
+ //#endregion
133
+ Object.defineProperty(exports, 'SearchProvider', {
134
+ enumerable: true,
135
+ get: function () {
136
+ return SearchProvider;
137
+ }
138
+ });
139
+ Object.defineProperty(exports, 'useSearchService', {
140
+ enumerable: true,
141
+ get: function () {
142
+ return useSearchService;
143
+ }
144
+ });
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1DbXNMUjZLYS5janMiLCJuYW1lcyI6WyJSZXNwb25zZUNhdGVnb3J5IiwiUmVzcG9uc2VFcnJvciIsIlVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiIsIlNlc3Npb25SZXN0YXJ0UmVxdWlyZWQiLCJTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+IiwidXNlRW52aXZlQ29uZmlnIiwidXNlQXBwRGV0YWlscyIsImJhc2VVcmxBdG9tIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiQ29uZmlndXJhdGlvbiIsIlNlYXJjaEFwaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zZWFyY2hDb250ZXh0L3NlYXJjaENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlRWZmZWN0LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgUmVzcG9uc2VDYXRlZ29yeSxcbiAgUmVzcG9uc2VFcnJvcixcbiAgU2VhcmNoQXBpLFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgeyBiYXNlVXJsQXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZ1wiO1xuaW1wb3J0IExvZ2dlciBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyXCI7XG5pbXBvcnQgeyB1c2VBcHBEZXRhaWxzIH0gZnJvbSBcInNyYy9ob29rcy9BcHBEZXRhaWxzL3VzZUFwcERldGFpbHNcIjtcbmltcG9ydCB7IHVzZUVudml2ZUNvbmZpZyB9IGZyb20gXCJzcmMvY29udGV4dHMvZW52aXZlQ29uZmlnQ29udGV4dC9lbnZpdmVDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBTZXNzaW9uUmVzdGFydFJlcXVpcmVkIH0gZnJvbSBcInNyYy90eXBlcy9leGNlcHRpb25zL3Nlc3Npb25FeGNlcHRpb25zXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24gfSBmcm9tIFwic3JjL3R5cGVzL2V4Y2VwdGlvbnMvdW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uc1wiO1xuaW1wb3J0IHsgU2VhcmNoUGFyYW1zLCBTZWFyY2hSZXN1bHQgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoXCI7XG5pbXBvcnQge1xuICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbiAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uLFxufSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hTZXJ2aWNlQWRhcHRlclwiO1xuXG5jb25zdCB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzID0gKHByb2R1Y3RzOiBTZWFyY2hSZXN1bHRbXCJwcm9kdWN0c1wiXSkgPT5cbiAgcHJvZHVjdHMubWFwKChkYXRhKSA9PiAoe1xuICAgIGlkOiBkYXRhLmlkLFxuICAgIHJlc3BvbnNlSWQ6IGRhdGEucmVzcG9uc2VfaWQsXG4gICAgY2F0ZWdvcnk6IFJlc3BvbnNlQ2F0ZWdvcnkuUHJvZHVjdCxcbiAgICBkZXNjcmlwdGlvbjogZGF0YS5kZXNjcmlwdGlvbixcbiAgICBpbWFnZVVybDogZGF0YS5pbWFnZV91cmwsXG4gICAgaW1hZ2VVcmxzOiBkYXRhLmltYWdlX3VybHMsXG4gICAgdGl0bGU6IGRhdGEudGl0bGUsXG4gICAgdXJsOiBkYXRhLnVybCxcbiAgICBvcmlnaW5hbFByaWNlOiBkYXRhLm9yaWdpbmFsX3ByaWNlLFxuICAgIHNhbGVQcmljZTogZGF0YS5zYWxlX3ByaWNlLFxuICAgIGF2ZXJhZ2VSYXRpbmc6IGRhdGEuYXZlcmFnZV9yYXRpbmcsXG4gICAgbnVtYmVyUmV2aWV3czogZGF0YS5udW1iZXJfcmV2aWV3cyxcbiAgICBtZXRhZGF0YTogZGF0YS5tZXRhZGF0YSxcbiAgICBpc0ZvckdyaWQ6IGRhdGEuaXNfZm9yX2dyaWQsXG4gICAgY29sb3JzOiBkYXRhLmNvbG9ycyxcbiAgICBzaXplczogZGF0YS5zaXplcyxcbiAgICBmaWx0ZXJzOiBkYXRhLmZpbHRlcnMsXG4gIH0pKTtcblxuYXN5bmMgZnVuY3Rpb24gZXJyb3JSZXNwb25zZUJvZHkoZXJyb3I6IFJlc3BvbnNlRXJyb3IpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZXJyb3IucmVzcG9uc2UuanNvbigpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoZXJyb3JNc2c6IHN0cmluZywgZXJyb3I6IHVua25vd24pIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBSZXNwb25zZUVycm9yKSkge1xuICAgIExvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBjb25zdCBlcnJvclJlc3BvbnNlID0gYXdhaXQgZXJyb3JSZXNwb25zZUJvZHkoZXJyb3IpO1xuICBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ1bnN1cHBvcnRlZCBwcm9kdWN0XCIgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gXCJQUk9EVUNUX05PVF9GT1VORFwiXG4gICkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24oKTtcbiAgfSBlbHNlIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gXCJSRVNUQVJUX1NFU1NJT05cIiB8fFxuICAgIGVycm9yUmVzcG9uc2U/LnN1Yl9jb2RlPy50b1VwcGVyQ2FzZSgpID09PSBcIk5PVF9GT1VORFwiXG4gICkge1xuICAgIExvZ2dlci5sb2dJbmZvKFxuICAgICAgXCJTZXNzaW9uIGRvZXMgbm90IGV4aXN0LiBSZS1zdGFydCBzZXNzaW9uXCIsXG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yLnJlc3BvbnNlLFxuICAgICAgZXJyb3JSZXNwb25zZVxuICAgICk7XG4gICAgdGhyb3cgbmV3IFNlc3Npb25SZXN0YXJ0UmVxdWlyZWQoKTtcbiAgfVxuXG4gIExvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gIHRocm93IGVycm9yO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoQ29udGV4dFZhbHVlIHtcbiAgc2VhcmNoUHJvZHVjdHM6IChwYXJhbXM6IFNlYXJjaFBhcmFtcykgPT4gUHJvbWlzZTxTZWFyY2hSZXN1bHQ+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBTZWFyY2hDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTZWFyY2hDb250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+ID0gKHtcbiAgY2hpbGRyZW4sXG59KSA9PiB7XG4gIGNvbnN0IHsgb3JnTGV2ZWxBcGlLZXksIHB1YmxpY0tleSB9ID0gdXNlRW52aXZlQ29uZmlnKCk7XG4gIGNvbnN0IGFwaUtleSA9IG9yZ0xldmVsQXBpS2V5IHx8IHB1YmxpY0tleTsgLy8gUmVwbGljYXRlIGFwaUtleUF0b20gbG9naWNcbiAgY29uc3QgYXBwRGV0YWlscyA9IHVzZUFwcERldGFpbHMoKTtcbiAgY29uc3QgYmFzZVVybCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG5cbiAgY29uc3QgaXNSZWFkeSA9IEJvb2xlYW4oYXBpS2V5ICYmIGFwcERldGFpbHMgJiYgYmFzZVVybCk7XG5cbiAgY29uc3Qgc2VhcmNoQXBpID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc1JlYWR5KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNvbmZpZzogQ29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiBhcGlLZXksXG4gICAgICBiYXNlUGF0aDogYmFzZVVybCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgU2VhcmNoQXBpKGNvbmZpZyk7XG4gIH0sIFthcGlLZXksIGJhc2VVcmwsIGlzUmVhZHldKTtcblxuICBjb25zdCBzZWFyY2hQcm9kdWN0cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXJhbXM6IFNlYXJjaFBhcmFtcyk6IFByb21pc2U8U2VhcmNoUmVzdWx0PiA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkgfHwgIXNlYXJjaEFwaSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTZWFyY2hTZXJ2aWNlIG5vdCByZWFkeSAtIG1pc3NpbmcgZGVwZW5kZW5jaWVzXCIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlYXJjaEFwaS52MVNlYXJjaFF1ZXJ5R2V0KHtcbiAgICAgICAgICBxdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiBwYXJhbXMubGltaXQsXG4gICAgICAgICAgb3JnX2lkOiBhcHBEZXRhaWxzLm9yZ0lkLFxuICAgICAgICAgIHVzZXJfaWQ6IGFwcERldGFpbHMudXNlcklkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHByb2R1Y3RzLFxuICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgc2VhcmNoX3Jlc3BvbnNlX2lkOiBzZWFyY2hSZXNwb25zZUlkLFxuICAgICAgICB9ID0gcmVzcG9uc2U7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyhwcm9kdWN0cykgfHwgW10sXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyB8fCBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogcHJvZHVjdHM/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6IHNlYXJjaFJlc3BvbnNlSWQgfHwgXCJcIixcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKFwiRmFpbGVkIHRvIHNlYXJjaCBwcm9kdWN0c1wiLCBlcnJvcik7XG4gICAgICAgIC8vIFRoaXMgcGFydCB3aWxsIG5vdCBiZSByZWFjaGVkIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24sIGJ1dCBpdCdzIHJlcXVpcmVkIGZvciB0eXBlIHNhZmV0eVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHByb2R1Y3RzOiBbXSxcbiAgICAgICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICBzZWFyY2hSZXNwb25zZUlkOiBcIlwiLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NlYXJjaEFwaSwgaXNSZWFkeSwgYXBwRGV0YWlsc11cbiAgKTtcblxuICAvLyBSZWdpc3RlciB0aGUgc2VhcmNoIGZ1bmN0aW9uIHdpdGggdGhlIGFkYXB0ZXIgZm9yIHVzZSBpbiBhdG9tc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1JlYWR5KSB7XG4gICAgICBzZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oc2VhcmNoUHJvZHVjdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH07XG4gIH0sIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgc2VhcmNoUHJvZHVjdHMsXG4gICAgICBpc1JlYWR5LFxuICAgIH0pLFxuICAgIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTZWFyY2hDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2VhcmNoQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTZWFyY2hTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChTZWFyY2hDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlU2VhcmNoU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VhcmNoUHJvdmlkZXJcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQSxNQUFNLDZCQUE2QixhQUNqQyxTQUFTLEtBQUssVUFBVTtDQUN0QixJQUFJLEtBQUs7Q0FDVCxZQUFZLEtBQUs7Q0FDakIsVUFBVUEsaURBQWlCO0NBQzNCLGFBQWEsS0FBSztDQUNsQixVQUFVLEtBQUs7Q0FDZixXQUFXLEtBQUs7Q0FDaEIsT0FBTyxLQUFLO0NBQ1osS0FBSyxLQUFLO0NBQ1YsZUFBZSxLQUFLO0NBQ3BCLFdBQVcsS0FBSztDQUNoQixlQUFlLEtBQUs7Q0FDcEIsZUFBZSxLQUFLO0NBQ3BCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixRQUFRLEtBQUs7Q0FDYixPQUFPLEtBQUs7Q0FDWixTQUFT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