@envive-ai/react-hooks 0.2.3 → 0.2.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 (441) hide show
  1. package/README.md +35 -0
  2. package/dist/AmplitudeOperations-CEwp7tPJ.cjs +0 -0
  3. package/dist/AmplitudeOperations-uF2zIi_1.js +1 -0
  4. package/dist/NewOrgConfig-B_1A1d9q.cjs +15 -0
  5. package/dist/NewOrgConfig-xNlcpcF_.js +10 -0
  6. package/dist/SystemSettingsContext-CCuS3kWH.js +13 -0
  7. package/dist/SystemSettingsContext-Dh_35fES.cjs +20 -0
  8. package/dist/TrackComponentVisibleEvent-B828giM-.js +52 -0
  9. package/dist/TrackComponentVisibleEvent-DsTIH7Yt.cjs +59 -0
  10. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  11. package/dist/amplitudeContext-BfRDG5CX.d.ts +52 -0
  12. package/dist/api-Bc3_julZ.cjs +239 -0
  13. package/dist/api-D9gmGNAV.js +166 -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-8ppNkJ_n.cjs +58 -0
  43. package/dist/atomStore-BLYJ2ZoQ.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-BlRI74F-.cjs +53 -0
  77. package/dist/cdnContext-D26C8Y4H.js +38 -0
  78. package/dist/chat-2NGrmU_Z.cjs +393 -0
  79. package/dist/chat-Bg3wEfNd.js +257 -0
  80. package/dist/chat-pXCsesuS.js +25 -0
  81. package/dist/chat-sCX7aTrz.cjs +145 -0
  82. package/dist/chatElementDisplayLocation-D6oLuQS4.d.ts +25 -0
  83. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  84. package/dist/chatSearch-B4dsxGth.cjs +418 -0
  85. package/dist/chatSearch-Cvc_eBFV.js +295 -0
  86. package/dist/chatState-2bMtvPgG.js +34 -0
  87. package/dist/chatState-fP1r34CN.cjs +120 -0
  88. package/dist/chunk-CUT6urMc.cjs +30 -0
  89. package/dist/common-4xhjcUbt.cjs +189 -0
  90. package/dist/common-DhKoZ6jN.js +39 -0
  91. package/dist/components-BUisjl4v.js +11 -0
  92. package/dist/components-DVaYBroL.cjs +29 -0
  93. package/dist/config/locators/components/chat/index.cjs +22 -0
  94. package/dist/config/locators/components/chat/index.d.cts +2 -0
  95. package/dist/config/locators/components/chat/index.d.ts +2 -0
  96. package/dist/config/locators/components/chat/index.js +3 -0
  97. package/dist/config/locators/components/chat/variants/index.cjs +29 -0
  98. package/dist/config/locators/components/chat/variants/index.d.cts +16 -0
  99. package/dist/config/locators/components/chat/variants/index.d.ts +16 -0
  100. package/dist/config/locators/components/chat/variants/index.js +17 -0
  101. package/dist/config/locators/components/common/index.cjs +27 -0
  102. package/dist/config/locators/components/common/index.d.cts +2 -0
  103. package/dist/config/locators/components/common/index.d.ts +2 -0
  104. package/dist/config/locators/components/common/index.js +3 -0
  105. package/dist/config/locators/components/index.cjs +5 -0
  106. package/dist/config/locators/components/index.d.cts +2 -0
  107. package/dist/config/locators/components/index.d.ts +2 -0
  108. package/dist/config/locators/components/index.js +3 -0
  109. package/dist/config/locators/components/search/index.cjs +13 -0
  110. package/dist/config/locators/components/search/index.d.cts +8 -0
  111. package/dist/config/locators/components/search/index.d.ts +8 -0
  112. package/dist/config/locators/components/search/index.js +9 -0
  113. package/dist/config/locators/index.cjs +92 -0
  114. package/dist/config/locators/index.d.cts +26 -0
  115. package/dist/config/locators/index.d.ts +26 -0
  116. package/dist/config/locators/index.js +27 -0
  117. package/dist/contexts/amplitudeContext/index.cjs +23 -0
  118. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  119. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  120. package/dist/contexts/amplitudeContext/index.js +21 -0
  121. package/dist/contexts/cdnContext/index.cjs +7 -0
  122. package/dist/contexts/cdnContext/index.d.cts +15 -0
  123. package/dist/contexts/cdnContext/index.d.ts +15 -0
  124. package/dist/contexts/cdnContext/index.js +6 -0
  125. package/dist/contexts/chatContext/index.cjs +326 -0
  126. package/dist/contexts/chatContext/index.d.cts +15 -0
  127. package/dist/contexts/chatContext/index.d.ts +15 -0
  128. package/dist/contexts/chatContext/index.js +319 -0
  129. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  130. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  131. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  132. package/dist/contexts/enviveConfigContext/index.js +6 -0
  133. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  134. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  135. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  136. package/dist/contexts/enviveCssContext/index.js +63 -0
  137. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  138. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  139. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  140. package/dist/contexts/featureFlagContext/index.js +103 -0
  141. package/dist/contexts/featureFlagServiceContext/index.cjs +7 -0
  142. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  143. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  144. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  145. package/dist/contexts/graphqlContext/index.cjs +16 -0
  146. package/dist/contexts/graphqlContext/index.d.cts +14 -0
  147. package/dist/contexts/graphqlContext/index.d.ts +14 -0
  148. package/dist/contexts/graphqlContext/index.js +15 -0
  149. package/dist/contexts/localStorageContext/index.cjs +6 -0
  150. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  151. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  152. package/dist/contexts/localStorageContext/index.js +4 -0
  153. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  154. package/dist/contexts/newOrgConfigContext/index.d.cts +15 -0
  155. package/dist/contexts/newOrgConfigContext/index.d.ts +15 -0
  156. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  157. package/dist/contexts/searchContext/index.cjs +27 -0
  158. package/dist/contexts/searchContext/index.d.cts +16 -0
  159. package/dist/contexts/searchContext/index.d.ts +16 -0
  160. package/dist/contexts/searchContext/index.js +26 -0
  161. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  162. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  163. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  164. package/dist/contexts/sessionStorageContext/index.js +4 -0
  165. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  166. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  167. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  168. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  169. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  170. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  171. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  172. package/dist/contexts/systemSettingsContext/index.js +6 -0
  173. package/dist/contexts/types.cjs +7 -0
  174. package/dist/contexts/types.d.cts +4 -0
  175. package/dist/contexts/types.d.ts +4 -0
  176. package/dist/contexts/types.js +3 -0
  177. package/dist/contexts/userIdentityContext/index.cjs +22 -0
  178. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  179. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  180. package/dist/contexts/userIdentityContext/index.js +21 -0
  181. package/dist/domObserver-DKcas6tl.js +285 -0
  182. package/dist/domObserver-Do6RAJdf.cjs +304 -0
  183. package/dist/enviveConfig-BSfyz_pm.js +62 -0
  184. package/dist/enviveConfig-D8vcVPWD.cjs +130 -0
  185. package/dist/enviveConfigContext-C8cCcdKU.cjs +60 -0
  186. package/dist/enviveConfigContext-CJqpRSKu.js +45 -0
  187. package/dist/events/index.cjs +4 -0
  188. package/dist/events/index.d.cts +46 -0
  189. package/dist/events/index.d.ts +46 -0
  190. package/dist/events/index.js +3 -0
  191. package/dist/events-BHJJjPDN.js +78 -0
  192. package/dist/events-B_fJZf9E.cjs +90 -0
  193. package/dist/featureFlagServiceContext-C2Yj-Uyh.d.ts +23 -0
  194. package/dist/featureFlagServiceContext-CiKWV306.d.cts +23 -0
  195. package/dist/featureFlagServiceContext-DFb-uLHN.cjs +62 -0
  196. package/dist/featureFlagServiceContext-Dd_Hbq6e.js +42 -0
  197. package/dist/featureGates-BdvOVv8N.cjs +32 -0
  198. package/dist/featureGates-DhoJq4io.js +26 -0
  199. package/dist/frontendConfig-CbyjUXZW.d.ts +856 -0
  200. package/dist/frontendConfig-tVg0hsWZ.d.cts +856 -0
  201. package/dist/globalSearch-B_v9qfCT.js +14 -0
  202. package/dist/globalSearch-OiF96VLG.cjs +39 -0
  203. package/dist/graphql-B9HhDXYt.cjs +53 -0
  204. package/dist/graphql-W7GMIHUu.js +36 -0
  205. package/dist/graphqlConfig-DZHeFKDY.cjs +73 -0
  206. package/dist/graphqlConfig-Xk--JbPl.js +24 -0
  207. package/dist/graphqlContext-BotK7KCg.d.ts +28 -0
  208. package/dist/graphqlContext-CMav2igl.d.cts +28 -0
  209. package/dist/graphqlContext-CSVwhCnP.js +96 -0
  210. package/dist/graphqlContext-aaOOb79d.cjs +111 -0
  211. package/dist/hooks/AmplitudeOperations/index.cjs +23 -0
  212. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  213. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  214. package/dist/hooks/AmplitudeOperations/index.js +23 -0
  215. package/dist/hooks/AppDetails/index.cjs +24 -0
  216. package/dist/hooks/AppDetails/index.d.cts +27 -0
  217. package/dist/hooks/AppDetails/index.d.ts +27 -0
  218. package/dist/hooks/AppDetails/index.js +24 -0
  219. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  220. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  221. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  222. package/dist/hooks/BlockBackButton/index.js +27 -0
  223. package/dist/hooks/CdnOperations/index.cjs +24 -0
  224. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  225. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  226. package/dist/hooks/CdnOperations/index.js +22 -0
  227. package/dist/hooks/ChatToggle/index.cjs +64 -0
  228. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  229. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  230. package/dist/hooks/ChatToggle/index.js +62 -0
  231. package/dist/hooks/ChatToggleAnalytics/index.cjs +39 -0
  232. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  233. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  234. package/dist/hooks/ChatToggleAnalytics/index.js +37 -0
  235. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  236. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  237. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  238. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  239. package/dist/hooks/Debounce/index.cjs +3 -0
  240. package/dist/hooks/Debounce/index.d.cts +5 -0
  241. package/dist/hooks/Debounce/index.d.ts +5 -0
  242. package/dist/hooks/Debounce/index.js +3 -0
  243. package/dist/hooks/ElementObserver/index.cjs +179 -0
  244. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  245. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  246. package/dist/hooks/ElementObserver/index.js +177 -0
  247. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  248. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  249. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  250. package/dist/hooks/GrabAndScroll/index.js +97 -0
  251. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  252. package/dist/hooks/GraphQLConfig/index.d.cts +28 -0
  253. package/dist/hooks/GraphQLConfig/index.d.ts +28 -0
  254. package/dist/hooks/GraphQLConfig/index.js +16 -0
  255. package/dist/hooks/IdentifyUser/index.cjs +55 -0
  256. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  257. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  258. package/dist/hooks/IdentifyUser/index.js +53 -0
  259. package/dist/hooks/ImageResolver/index.cjs +55 -0
  260. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  261. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  262. package/dist/hooks/ImageResolver/index.js +53 -0
  263. package/dist/hooks/Intersection/index.cjs +3 -0
  264. package/dist/hooks/Intersection/index.d.cts +7 -0
  265. package/dist/hooks/Intersection/index.d.ts +7 -0
  266. package/dist/hooks/Intersection/index.js +3 -0
  267. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  268. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  269. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  270. package/dist/hooks/IsSmallScreen/index.js +20 -0
  271. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  272. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  273. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  274. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  275. package/dist/hooks/MessageFilter/index.cjs +54 -0
  276. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  277. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  278. package/dist/hooks/MessageFilter/index.js +54 -0
  279. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  280. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  281. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  282. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  283. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  284. package/dist/hooks/NewOrgConfig/index.d.cts +20 -0
  285. package/dist/hooks/NewOrgConfig/index.d.ts +20 -0
  286. package/dist/hooks/NewOrgConfig/index.js +20 -0
  287. package/dist/hooks/Search/index.cjs +325 -0
  288. package/dist/hooks/Search/index.d.cts +61 -0
  289. package/dist/hooks/Search/index.d.ts +61 -0
  290. package/dist/hooks/Search/index.js +322 -0
  291. package/dist/hooks/SearchOperations/index.cjs +105 -0
  292. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  293. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  294. package/dist/hooks/SearchOperations/index.js +102 -0
  295. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  296. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  297. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  298. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  299. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  300. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  301. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  302. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  303. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  304. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  305. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  306. package/dist/hooks/SnapCalculator/index.js +27 -0
  307. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  308. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  309. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  310. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  311. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +23 -0
  312. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  313. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  314. package/dist/hooks/TrackComponentVisibleEvent/index.js +23 -0
  315. package/dist/hooks/UpdateAnalyticsProps/index.cjs +63 -0
  316. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  317. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  318. package/dist/hooks/UpdateAnalyticsProps/index.js +60 -0
  319. package/dist/hooks/utils.cjs +8 -0
  320. package/dist/hooks/utils.d.cts +13 -0
  321. package/dist/hooks/utils.d.ts +13 -0
  322. package/dist/hooks/utils.js +3 -0
  323. package/dist/index-7VOYQNo5.d.ts +184 -0
  324. package/dist/index-9NE86em3.d.cts +35 -0
  325. package/dist/index-Bmub8e38.d.cts +98 -0
  326. package/dist/index-C1nwLU6Q.d.ts +35 -0
  327. package/dist/index-CESxqFso.d.cts +228 -0
  328. package/dist/index-CG3P8xE1.d.cts +676 -0
  329. package/dist/index-CalyvQj_.d.ts +1 -0
  330. package/dist/index-CiWEYzXl.d.cts +184 -0
  331. package/dist/index-Cyq5HiC0.d.cts +44 -0
  332. package/dist/index-D9SzePCE.d.cts +186 -0
  333. package/dist/index-DDZmV951.d.ts +186 -0
  334. package/dist/index-Da1s8h5C.d.cts +9 -0
  335. package/dist/index-Dy22w7kg.d.ts +24 -0
  336. package/dist/index-DzbkQtaK.d.cts +24 -0
  337. package/dist/index-DzzKdrcZ.d.ts +9 -0
  338. package/dist/index-L7SEpDLz.d.ts +228 -0
  339. package/dist/index-RcVcRKH7.d.cts +1 -0
  340. package/dist/index-YrhxAGtH.d.ts +676 -0
  341. package/dist/index-exSzn3SP.d.ts +44 -0
  342. package/dist/index-hebsV7fc.d.ts +98 -0
  343. package/dist/interceptors/index.cjs +4 -0
  344. package/dist/interceptors/index.d.cts +20 -0
  345. package/dist/interceptors/index.d.ts +20 -0
  346. package/dist/interceptors/index.js +4 -0
  347. package/dist/interceptors/types.cjs +1 -0
  348. package/dist/interceptors/types.d.cts +13 -0
  349. package/dist/interceptors/types.d.ts +13 -0
  350. package/dist/interceptors/types.js +3 -0
  351. package/dist/localStorageContext-Dwgto93_.js +95 -0
  352. package/dist/localStorageContext-cnMYDllE.cjs +115 -0
  353. package/dist/logger-Cp7J4YJT.cjs +26 -0
  354. package/dist/logger-oAgZx2-m.js +20 -0
  355. package/dist/models-B1P-dSCW.cjs +1537 -0
  356. package/dist/models-CgvSM2fW.js +1296 -0
  357. package/dist/newOrgConfigAtom-B9FW3fDc.cjs +15 -0
  358. package/dist/newOrgConfigAtom-CMeY5c6t.js +8 -0
  359. package/dist/newOrgConfigContext-1uwWWCPa.js +53 -0
  360. package/dist/newOrgConfigContext-B0v1q3dk.cjs +68 -0
  361. package/dist/newOrgConfigContext-C8wBmK3q.d.cts +16 -0
  362. package/dist/newOrgConfigContext-D180PO0t.d.ts +16 -0
  363. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  364. package/dist/nodeSelector-DQicm08Y.d.ts +31 -0
  365. package/dist/org-DU3Wck0R.cjs +43 -0
  366. package/dist/org-DptftvB6.js +12 -0
  367. package/dist/search-BtYKpiNB.js +126 -0
  368. package/dist/search-DYVQuYti.d.ts +20 -0
  369. package/dist/search-Du6HZpO6.cjs +205 -0
  370. package/dist/search-filter-types-B5xcaEit.d.ts +102 -0
  371. package/dist/search-filter-types-DZPTzUK9.d.cts +102 -0
  372. package/dist/search-y-ioX5Mz.d.cts +20 -0
  373. package/dist/searchContext-BK43ArCs.cjs +145 -0
  374. package/dist/searchContext-JjZZhDCe.js +129 -0
  375. package/dist/searchServiceAdapter-BSPZOg1r.js +16 -0
  376. package/dist/searchServiceAdapter-DrjFCiw8.cjs +34 -0
  377. package/dist/sessionStorageContext-BQY9r8zz.js +52 -0
  378. package/dist/sessionStorageContext-R2yUAkd9.cjs +66 -0
  379. package/dist/shopifyUrlContext-Bon8_SUJ.js +61 -0
  380. package/dist/shopifyUrlContext-DUdw1xUH.cjs +75 -0
  381. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  382. package/dist/spiffyWidgets-DZqG5plz.d.ts +20 -0
  383. package/dist/systemSettingsContext-BjbhIz6y.js +39 -0
  384. package/dist/systemSettingsContext-Dv9EmjmZ.cjs +60 -0
  385. package/dist/test-types-Dl5puRHC.d.ts +40 -0
  386. package/dist/test-types-ThQiO_cc.d.cts +40 -0
  387. package/dist/types/index.cjs +34 -0
  388. package/dist/types/index.d.cts +3 -0
  389. package/dist/types/index.d.ts +3 -0
  390. package/dist/types/index.js +31 -0
  391. package/dist/types-BwNrLPSZ.cjs +106 -0
  392. package/dist/types-CKMMb_gX.d.cts +51 -0
  393. package/dist/types-Csgpt7EV.d.ts +51 -0
  394. package/dist/types-D3uOF0Oy.js +76 -0
  395. package/dist/types-DIk0FLwd.js +30 -0
  396. package/dist/types-DNLkuGWZ.cjs +48 -0
  397. package/dist/types-DSW9XODe.d.cts +10 -0
  398. package/dist/types-DtTnp0o0.js +1 -0
  399. package/dist/types-a8gm_IaQ.cjs +0 -0
  400. package/dist/types-oSg-AkO5.d.ts +10 -0
  401. package/dist/types.cjs +0 -0
  402. package/dist/types.d.cts +15 -0
  403. package/dist/types.d.ts +15 -0
  404. package/dist/types.js +1 -0
  405. package/dist/urlsParser-BV5yF8sa.cjs +78 -0
  406. package/dist/urlsParser-DUgV_Qy9.js +42 -0
  407. package/dist/useAmplitudeOperations-C9o_wDU6.cjs +41 -0
  408. package/dist/useAmplitudeOperations-COq3L1no.js +34 -0
  409. package/dist/useAppDetails-C4GTLEIR.cjs +38 -0
  410. package/dist/useAppDetails-CEksA88Q.js +30 -0
  411. package/dist/useDebounce--rPGMuE7.js +19 -0
  412. package/dist/useDebounce-DECHWSTn.cjs +26 -0
  413. package/dist/useGraphQLConfig-DQoMmpNM.js +63 -0
  414. package/dist/useGraphQLConfig-DzH1nVBh.cjs +76 -0
  415. package/dist/useIntersection-UEO0Cezc.js +21 -0
  416. package/dist/useIntersection-rV0Q8mBH.cjs +28 -0
  417. package/dist/useMessageInterceptor-CstX10ih.cjs +33 -0
  418. package/dist/useMessageInterceptor-D5oAekXn.js +25 -0
  419. package/dist/userIdentityContext-8kfKQRFx.d.ts +20 -0
  420. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  421. package/dist/utilityTypes-DynzxjK3.js +1 -0
  422. package/dist/utilityTypes-xb8SjKSV.cjs +0 -0
  423. package/dist/utils-ARmpTh1O.js +27 -0
  424. package/dist/utils-B3x_9JTY.d.cts +15 -0
  425. package/dist/utils-B8rATLoc.d.ts +22 -0
  426. package/dist/utils-BLe5oreh.d.ts +15 -0
  427. package/dist/utils-Bcz5kAgP.js +92 -0
  428. package/dist/utils-CMqFfqZx.cjs +130 -0
  429. package/dist/utils-Cavu4XiM.cjs +33 -0
  430. package/dist/utils-CqVRbvfN.cjs +29 -0
  431. package/dist/utils-DQhbbAnt.js +23 -0
  432. package/dist/utils-EDgzCG3Q.d.cts +22 -0
  433. package/dist/utils-V1YTUQng.js +1385 -0
  434. package/dist/utils-VI19AC8S.cjs +1591 -0
  435. package/dist/variantInfo-BRmDpamJ.cjs +17 -0
  436. package/dist/variantInfo-BwBBEWSA.js +11 -0
  437. package/package.json +3 -2
  438. package/src/config/locators/components/chat/index.ts +0 -1
  439. package/src/config/locators/components/chat/preview.ts +0 -1
  440. package/src/config/locators/components/common/index.ts +4 -0
  441. package/src/config/locators/index.ts +1 -0
@@ -0,0 +1,205 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_newOrgConfigAtom = require('./newOrgConfigAtom-B9FW3fDc.cjs');
3
+ const require_chatSearch = require('./chatSearch-B4dsxGth.cjs');
4
+ const require_types = require('./types-DNLkuGWZ.cjs');
5
+ const require_searchServiceAdapter = require('./searchServiceAdapter-DrjFCiw8.cjs');
6
+ let jotai = require("jotai");
7
+ jotai = require_chunk.__toESM(jotai);
8
+
9
+ //#region src/atoms/search/searchAPI.ts
10
+ const searchAtom = (0, jotai.atom)({
11
+ data: null,
12
+ loading: false,
13
+ error: null,
14
+ lastQuery: null
15
+ });
16
+ const searchProductSortingAtom = (0, jotai.atom)(require_types.ProductSorting.FEATURED);
17
+ const searchSelectedFiltersAtom = (0, jotai.atom)([]);
18
+ const createFilterOption = (filterId, filterItemId, displayName) => ({
19
+ id: `${filterId}:${filterItemId}`,
20
+ displayName,
21
+ filterId,
22
+ filterItemId
23
+ });
24
+ const internalSearchParamsAtom = (0, jotai.atom)({
25
+ id: null,
26
+ query: null
27
+ });
28
+ const searchParamsAtom = (0, jotai.atom)((get) => get(internalSearchParamsAtom), (_, set, value) => {
29
+ set(internalSearchParamsAtom, value);
30
+ });
31
+ const internalSearchSystemStateAtom = (0, jotai.atom)(false);
32
+ const searchSystemAtom = (0, jotai.atom)((get) => get(internalSearchSystemStateAtom), (get, set, value) => {
33
+ if (value === get(internalSearchSystemStateAtom)) return;
34
+ const stateChangeHandler = () => {
35
+ const params = new URLSearchParams(window.location.search);
36
+ if (params.get("es") === "true") {
37
+ const id = params.get("esi");
38
+ const query = params.get("esq");
39
+ set(searchParamsAtom, {
40
+ id,
41
+ query
42
+ });
43
+ } else set(searchParamsAtom, {
44
+ id: null,
45
+ query: null
46
+ });
47
+ };
48
+ if (value) {
49
+ set(internalSearchSystemStateAtom, true);
50
+ window.addEventListener("popstate", stateChangeHandler);
51
+ stateChangeHandler();
52
+ } else {
53
+ set(internalSearchSystemStateAtom, false);
54
+ window.removeEventListener("popstate", stateChangeHandler);
55
+ }
56
+ });
57
+ const filteredSearchProductsAtom = (0, jotai.atom)((get) => {
58
+ const searchData = get(searchAtom).data;
59
+ const sorting = get(searchProductSortingAtom);
60
+ const selectedFilters = get(searchSelectedFiltersAtom);
61
+ const newOrgConfig = get(require_newOrgConfigAtom.newOrgConfigAtom);
62
+ if (!searchData?.products || !newOrgConfig?.frontendConfig?.uiConfigs?.searchConfig) return [];
63
+ const filteredProducts = require_chatSearch.ProductFilters.filterProducts(searchData.products, newOrgConfig.frontendConfig.uiConfigs.searchConfig.searchFilterConfig, selectedFilters, newOrgConfig.frontendConfig.uiConfigs.searchConfig.additiveDynamicFilters);
64
+ return require_chatSearch.ProductSorter.sort(filteredProducts, sorting);
65
+ });
66
+ const searchFiltersAtom = (0, jotai.atom)((get) => {
67
+ const searchData = get(searchAtom).data;
68
+ const selectedFilters = get(searchSelectedFiltersAtom);
69
+ const newOrgConfig = get(require_newOrgConfigAtom.newOrgConfigAtom);
70
+ if (!searchData?.products || !newOrgConfig?.frontendConfig?.uiConfigs?.searchConfig) return [];
71
+ return require_chatSearch.ProductFilters.getFiltersForProducts(searchData.products, newOrgConfig.frontendConfig.uiConfigs.searchConfig.searchFilterConfig, selectedFilters);
72
+ });
73
+ const addSearchFilterAtom = (0, jotai.atom)(null, (get, set, filter) => {
74
+ const current = get(searchSelectedFiltersAtom);
75
+ if (!current.some((f) => f.id === filter.id)) set(searchSelectedFiltersAtom, [...current, filter]);
76
+ });
77
+ const removeSearchFilterAtom = (0, jotai.atom)(null, (get, set, filterId) => {
78
+ const current = get(searchSelectedFiltersAtom);
79
+ set(searchSelectedFiltersAtom, current.filter((f) => f.id !== filterId));
80
+ });
81
+ const clearSearchFiltersAtom = (0, jotai.atom)(null, (_, set) => {
82
+ set(searchSelectedFiltersAtom, []);
83
+ });
84
+ const performSearchAtom = (0, jotai.atom)(null, async (get, set, params, allowRedirect = false) => {
85
+ const currentState = get(searchAtom);
86
+ const redirectSearchResultsUrl = get(require_newOrgConfigAtom.newOrgConfigAtom)?.frontendConfig?.uiConfigs?.searchConfig?.redirectSearchResultsUrl;
87
+ if (allowRedirect && redirectSearchResultsUrl) {
88
+ const redirectUrl = new URL(redirectSearchResultsUrl);
89
+ redirectUrl.searchParams.set("es", "true");
90
+ redirectUrl.searchParams.set("esq", params.query);
91
+ window.location.href = redirectUrl.toString();
92
+ } else {
93
+ const url = new URL(window.location.href);
94
+ url.searchParams.set("es", "true");
95
+ url.searchParams.set("esq", params.query);
96
+ window.history.pushState({}, "", url);
97
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
98
+ }
99
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
100
+ if (currentState.loading) return;
101
+ set(searchAtom, {
102
+ data: null,
103
+ loading: true,
104
+ error: null,
105
+ lastQuery: params.query
106
+ });
107
+ try {
108
+ const result = await require_searchServiceAdapter.getSearchServiceFunction()(params);
109
+ set(searchAtom, {
110
+ data: result,
111
+ loading: false,
112
+ error: null,
113
+ lastQuery: params.query
114
+ });
115
+ } catch (error) {
116
+ const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
117
+ set(searchAtom, {
118
+ data: null,
119
+ loading: false,
120
+ error: errorMessage,
121
+ lastQuery: params.query
122
+ });
123
+ }
124
+ });
125
+
126
+ //#endregion
127
+ Object.defineProperty(exports, 'addSearchFilterAtom', {
128
+ enumerable: true,
129
+ get: function () {
130
+ return addSearchFilterAtom;
131
+ }
132
+ });
133
+ Object.defineProperty(exports, 'clearSearchFiltersAtom', {
134
+ enumerable: true,
135
+ get: function () {
136
+ return clearSearchFiltersAtom;
137
+ }
138
+ });
139
+ Object.defineProperty(exports, 'createFilterOption', {
140
+ enumerable: true,
141
+ get: function () {
142
+ return createFilterOption;
143
+ }
144
+ });
145
+ Object.defineProperty(exports, 'filteredSearchProductsAtom', {
146
+ enumerable: true,
147
+ get: function () {
148
+ return filteredSearchProductsAtom;
149
+ }
150
+ });
151
+ Object.defineProperty(exports, 'internalSearchSystemStateAtom', {
152
+ enumerable: true,
153
+ get: function () {
154
+ return internalSearchSystemStateAtom;
155
+ }
156
+ });
157
+ Object.defineProperty(exports, 'performSearchAtom', {
158
+ enumerable: true,
159
+ get: function () {
160
+ return performSearchAtom;
161
+ }
162
+ });
163
+ Object.defineProperty(exports, 'removeSearchFilterAtom', {
164
+ enumerable: true,
165
+ get: function () {
166
+ return removeSearchFilterAtom;
167
+ }
168
+ });
169
+ Object.defineProperty(exports, 'searchAtom', {
170
+ enumerable: true,
171
+ get: function () {
172
+ return searchAtom;
173
+ }
174
+ });
175
+ Object.defineProperty(exports, 'searchFiltersAtom', {
176
+ enumerable: true,
177
+ get: function () {
178
+ return searchFiltersAtom;
179
+ }
180
+ });
181
+ Object.defineProperty(exports, 'searchParamsAtom', {
182
+ enumerable: true,
183
+ get: function () {
184
+ return searchParamsAtom;
185
+ }
186
+ });
187
+ Object.defineProperty(exports, 'searchProductSortingAtom', {
188
+ enumerable: true,
189
+ get: function () {
190
+ return searchProductSortingAtom;
191
+ }
192
+ });
193
+ Object.defineProperty(exports, 'searchSelectedFiltersAtom', {
194
+ enumerable: true,
195
+ get: function () {
196
+ return searchSelectedFiltersAtom;
197
+ }
198
+ });
199
+ Object.defineProperty(exports, 'searchSystemAtom', {
200
+ enumerable: true,
201
+ get: function () {
202
+ return searchSystemAtom;
203
+ }
204
+ });
205
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLUR1NkhacE82LmNqcyIsIm5hbWVzIjpbIlByb2R1Y3RTb3J0aW5nIiwibmV3T3JnQ29uZmlnQXRvbSIsIlByb2R1Y3RGaWx0ZXJzIiwiUHJvZHVjdFNvcnRlciIsImdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbiIsImVycm9yOiB1bmtub3duIl0sInNvdXJjZXMiOlsiLi4vc3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXRvbSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0LCBTZWFyY2hQYXJhbXMgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoXCI7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBQcm9kdWN0RmlsdGVycyB9IGZyb20gXCIuL3Byb2R1Y3RGaWx0ZXJzXCI7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGVyIH0gZnJvbSBcIi4vcHJvZHVjdFNvcnRlclwiO1xuaW1wb3J0IHsgbmV3T3JnQ29uZmlnQXRvbSB9IGZyb20gXCIuLi9vcmdcIjtcbmltcG9ydCB7IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbiB9IGZyb20gXCIuL3NlYXJjaFNlcnZpY2VBZGFwdGVyXCI7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nOyAvLyBcImZpbHRlcklkOmZpbHRlckl0ZW1JZFwiIC0gbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGNvbXBhcmlzb25zXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGZpbHRlcklkOiBzdHJpbmc7IC8vIEZpbHRlciBjYXRlZ29yeVxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZzsgLy8gRmlsdGVyIHZhbHVlXG59O1xuXG5pbnRlcmZhY2UgU2VhcmNoU3RhdGUge1xuICBkYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoQXRvbSA9IGF0b208U2VhcmNoU3RhdGU+KHtcbiAgZGF0YTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGVycm9yOiBudWxsLFxuICBsYXN0UXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSA9IGF0b208UHJvZHVjdFNvcnRpbmc+KFxuICBQcm9kdWN0U29ydGluZy5GRUFUVVJFRFxuKTtcbmV4cG9ydCBjb25zdCBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tID0gYXRvbTxTZWxlY3RlZEZpbHRlck9wdGlvbltdPihbXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWx0ZXJPcHRpb24gPSAoXG4gIGZpbHRlcklkOiBzdHJpbmcsXG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nLFxuICBkaXNwbGF5TmFtZTogc3RyaW5nXG4pOiBTZWxlY3RlZEZpbHRlck9wdGlvbiA9PiAoe1xuICBpZDogYCR7ZmlsdGVySWR9OiR7ZmlsdGVySXRlbUlkfWAsXG4gIGRpc3BsYXlOYW1lLFxuICBmaWx0ZXJJZCxcbiAgZmlsdGVySXRlbUlkLFxufSk7XG5cbmNvbnN0IGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSA9IGF0b208e1xuICBpZDogc3RyaW5nIHwgbnVsbDtcbiAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG59Pih7XG4gIGlkOiBudWxsLFxuICBxdWVyeTogbnVsbCxcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoUGFyYW1zQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20pLFxuICAoXywgc2V0LCB2YWx1ZTogeyBpZDogc3RyaW5nIHwgbnVsbDsgcXVlcnk6IHN0cmluZyB8IG51bGwgfSkgPT4ge1xuICAgIHNldChpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20sIHZhbHVlKTtcbiAgfVxuKTtcbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoU3lzdGVtQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSksXG4gIChnZXQsIHNldCwgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KFwiZXNcIikgPT09IFwidHJ1ZVwiKSB7XG4gICAgICAgIGNvbnN0IGlkID0gcGFyYW1zLmdldChcImVzaVwiKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXMuZ2V0KFwiZXNxXCIpO1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZCwgcXVlcnkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZDogbnVsbCwgcXVlcnk6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgdHJ1ZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgICAvLyBBbHNvIHRyaWdnZXIgdGhlIGhhc2ggY2hhbmdlIGhhbmRsZXIgdG8gc2V0IHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICBzdGF0ZUNoYW5nZUhhbmRsZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tLCBmYWxzZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgfVxuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3Qgc2VhcmNoRGF0YSA9IGdldChzZWFyY2hBdG9tKS5kYXRhO1xuICBjb25zdCBzb3J0aW5nID0gZ2V0KHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmIChcbiAgICAhc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHxcbiAgICAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWdcbiAgKVxuICAgIHJldHVybiBbXTtcblxuICBjb25zdCBmaWx0ZXJlZFByb2R1Y3RzID0gUHJvZHVjdEZpbHRlcnMuZmlsdGVyUHJvZHVjdHMoXG4gICAgc2VhcmNoRGF0YS5wcm9kdWN0cyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5zZWFyY2hGaWx0ZXJDb25maWcsXG4gICAgc2VsZWN0ZWRGaWx0ZXJzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLmFkZGl0aXZlRHluYW1pY0ZpbHRlcnNcbiAgKTtcblxuICByZXR1cm4gUHJvZHVjdFNvcnRlci5zb3J0KGZpbHRlcmVkUHJvZHVjdHMsIHNvcnRpbmcpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmIChcbiAgICAhc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHxcbiAgICAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWdcbiAgKVxuICAgIHJldHVybiBbXTtcblxuICByZXR1cm4gUHJvZHVjdEZpbHRlcnMuZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVyc1xuICApO1xufSk7XG5cbmV4cG9ydCBjb25zdCBhZGRTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShcbiAgbnVsbCxcbiAgKGdldCwgc2V0LCBmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgICBpZiAoIWN1cnJlbnQuc29tZSgoZikgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSkge1xuICAgICAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFsuLi5jdXJyZW50LCBmaWx0ZXJdKTtcbiAgICB9XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShcbiAgbnVsbCxcbiAgKGdldCwgc2V0LCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgICBzZXQoXG4gICAgICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICAgICAgY3VycmVudC5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbHRlcklkKVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCBjbGVhclNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbShudWxsLCAoXywgc2V0KSA9PiB7XG4gIHNldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLCBbXSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHBlcmZvcm1TZWFyY2hBdG9tID0gYXRvbShcbiAgbnVsbCxcbiAgYXN5bmMgKGdldCwgc2V0LCBwYXJhbXM6IFNlYXJjaFBhcmFtcywgYWxsb3dSZWRpcmVjdCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gZ2V0KHNlYXJjaEF0b20pO1xuICAgIGNvbnN0IG5ld09yZ0NvbmZpZyA9IGdldChuZXdPcmdDb25maWdBdG9tKTtcbiAgICBjb25zdCByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwgPVxuICAgICAgbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWdcbiAgICAgICAgPy5yZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw7XG5cbiAgICBpZiAoYWxsb3dSZWRpcmVjdCAmJiByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpIHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gbmV3IFVSTChyZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldChcImVzXCIsIFwidHJ1ZVwiKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoXCJlc3FcIiwgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlIFVSTCBhbmQgbWFudWFsbHkgdHJpZ2dlciBzdGF0ZSBjaGFuZ2UgKHNpbmNlIHB1c2hTdGF0ZSBkb2Vzbid0IHRyaWdnZXIgcG9wc3RhdGUpXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KFwiZXNcIiwgXCJ0cnVlXCIpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoXCJlc3FcIiwgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgXCJcIiwgdXJsKTtcblxuICAgICAgLy8gTWFudWFsbHkgdHJpZ2dlciBwYWdlIHZhcmlhbnQgcmUtZXZhbHVhdGlvbiBieSBkaXNwYXRjaGluZyBhIHBvcHN0YXRlIGV2ZW50XG4gICAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudChcInBvcHN0YXRlXCIsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoXCJwb3BzdGF0ZVwiLCB7IHN0YXRlOiB7fSB9KSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgY29uY3VycmVudCBzZWFyY2hlc1xuICAgIH1cblxuICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbiA9IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VhcmNoU2VydmljZUZ1bmN0aW9uKHBhcmFtcyk7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBcIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWRcIjtcbiAgICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogZXJyb3JNZXNzYWdlLFxuICAgICAgICBsYXN0UXVlcnk6IHBhcmFtcy5xdWVyeSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBc0JBLE1BQWEsNkJBQStCO0NBQzFDLE1BQU07Q0FDTixTQUFTO0NBQ1QsT0FBTztDQUNQLFdBQVc7Q0FDWixDQUFDO0FBRUYsTUFBYSwyQ0FDWEEsNkJBQWUsU0FDaEI7QUFDRCxNQUFhLDRDQUF5RCxFQUFFLENBQUM7QUFFekUsTUFBYSxzQkFDWCxVQUNBLGNBQ0EsaUJBQzBCO0NB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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci10eXBlcy1CNXhjYUVpdC5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy9zZWFyY2gtZmlsdGVyLXR5cGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTW9kYWxTaGVldFByb3BzID0ge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIGNsb3NlTW9kYWw6ICgpID0+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci10eXBlcy1EWlBUelVLOS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMvc2VhcmNoLWZpbHRlci10eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1vZGFsU2hlZXRQcm9wcyA9IHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgICBjbG9zZU1vZGFsOiAoKSA9PiB2b2lkO1xuICAgIGRlc2t0b3BXaWR0aD86IG51bWJlcjtcbiAgICBtb2JpbGVGdWxsSGVpZ2h0PzogbnVtYmVyO1xuICAgIGFuaW1hdGlvbkR1cmF0aW9uPzogbnVtYmVyO1xuICAgIGhlYWRlclByb3BzOiBNb2RhbFNoZWV0SGVhZGVyUHJvcHM7XG4gICAgZm9vdGVyUHJvcHM/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-Cp7J4YJT.cjs');
3
+ const require_enviveConfig = require('./enviveConfig-D8vcVPWD.cjs');
4
+ const require_utils = require('./utils-VI19AC8S.cjs');
5
+ const require_enviveConfigContext = require('./enviveConfigContext-C8cCcdKU.cjs');
6
+ const require_searchServiceAdapter = require('./searchServiceAdapter-DrjFCiw8.cjs');
7
+ const require_useAppDetails = require('./useAppDetails-C4GTLEIR.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1CSzQzQXJDcy5janMiLCJuYW1lcyI6WyJSZXNwb25zZUNhdGVnb3J5IiwiUmVzcG9uc2VFcnJvciIsIlVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiIsIlNlc3Npb25SZXN0YXJ0UmVxdWlyZWQiLCJTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+IiwidXNlRW52aXZlQ29uZmlnIiwidXNlQXBwRGV0YWlscyIsImJhc2VVcmxBdG9tIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiQ29uZmlndXJhdGlvbiIsIlNlYXJjaEFwaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zZWFyY2hDb250ZXh0L3NlYXJjaENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlRWZmZWN0LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgUmVzcG9uc2VDYXRlZ29yeSxcbiAgUmVzcG9uc2VFcnJvcixcbiAgU2VhcmNoQXBpLFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgeyBiYXNlVXJsQXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZ1wiO1xuaW1wb3J0IExvZ2dlciBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyXCI7XG5pbXBvcnQgeyB1c2VBcHBEZXRhaWxzIH0gZnJvbSBcInNyYy9ob29rcy9BcHBEZXRhaWxzL3VzZUFwcERldGFpbHNcIjtcbmltcG9ydCB7IHVzZUVudml2ZUNvbmZpZyB9IGZyb20gXCJzcmMvY29udGV4dHMvZW52aXZlQ29uZmlnQ29udGV4dC9lbnZpdmVDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBTZXNzaW9uUmVzdGFydFJlcXVpcmVkIH0gZnJvbSBcInNyYy90eXBlcy9leGNlcHRpb25zL3Nlc3Npb25FeGNlcHRpb25zXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24gfSBmcm9tIFwic3JjL3R5cGVzL2V4Y2VwdGlvbnMvdW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uc1wiO1xuaW1wb3J0IHsgU2VhcmNoUGFyYW1zLCBTZWFyY2hSZXN1bHQgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoXCI7XG5pbXBvcnQge1xuICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbiAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uLFxufSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hTZXJ2aWNlQWRhcHRlclwiO1xuXG5jb25zdCB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzID0gKHByb2R1Y3RzOiBTZWFyY2hSZXN1bHRbXCJwcm9kdWN0c1wiXSkgPT5cbiAgcHJvZHVjdHMubWFwKChkYXRhKSA9PiAoe1xuICAgIGlkOiBkYXRhLmlkLFxuICAgIHJlc3BvbnNlSWQ6IGRhdGEucmVzcG9uc2VfaWQsXG4gICAgY2F0ZWdvcnk6IFJlc3BvbnNlQ2F0ZWdvcnkuUHJvZHVjdCxcbiAgICBkZXNjcmlwdGlvbjogZGF0YS5kZXNjcmlwdGlvbixcbiAgICBpbWFnZVVybDogZGF0YS5pbWFnZV91cmwsXG4gICAgaW1hZ2VVcmxzOiBkYXRhLmltYWdlX3VybHMsXG4gICAgdGl0bGU6IGRhdGEudGl0bGUsXG4gICAgdXJsOiBkYXRhLnVybCxcbiAgICBvcmlnaW5hbFByaWNlOiBkYXRhLm9yaWdpbmFsX3ByaWNlLFxuICAgIHNhbGVQcmljZTogZGF0YS5zYWxlX3ByaWNlLFxuICAgIGF2ZXJhZ2VSYXRpbmc6IGRhdGEuYXZlcmFnZV9yYXRpbmcsXG4gICAgbnVtYmVyUmV2aWV3czogZGF0YS5udW1iZXJfcmV2aWV3cyxcbiAgICBtZXRhZGF0YTogZGF0YS5tZXRhZGF0YSxcbiAgICBpc0ZvckdyaWQ6IGRhdGEuaXNfZm9yX2dyaWQsXG4gICAgY29sb3JzOiBkYXRhLmNvbG9ycyxcbiAgICBzaXplczogZGF0YS5zaXplcyxcbiAgICBmaWx0ZXJzOiBkYXRhLmZpbHRlcnMsXG4gIH0pKTtcblxuYXN5bmMgZnVuY3Rpb24gZXJyb3JSZXNwb25zZUJvZHkoZXJyb3I6IFJlc3BvbnNlRXJyb3IpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZXJyb3IucmVzcG9uc2UuanNvbigpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoZXJyb3JNc2c6IHN0cmluZywgZXJyb3I6IHVua25vd24pIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBSZXNwb25zZUVycm9yKSkge1xuICAgIExvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBjb25zdCBlcnJvclJlc3BvbnNlID0gYXdhaXQgZXJyb3JSZXNwb25zZUJvZHkoZXJyb3IpO1xuICBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ1bnN1cHBvcnRlZCBwcm9kdWN0XCIgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gXCJQUk9EVUNUX05PVF9GT1VORFwiXG4gICkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24oKTtcbiAgfSBlbHNlIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gXCJSRVNUQVJUX1NFU1NJT05cIiB8fFxuICAgIGVycm9yUmVzcG9uc2U/LnN1Yl9jb2RlPy50b1VwcGVyQ2FzZSgpID09PSBcIk5PVF9GT1VORFwiXG4gICkge1xuICAgIExvZ2dlci5sb2dJbmZvKFxuICAgICAgXCJTZXNzaW9uIGRvZXMgbm90IGV4aXN0LiBSZS1zdGFydCBzZXNzaW9uXCIsXG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yLnJlc3BvbnNlLFxuICAgICAgZXJyb3JSZXNwb25zZVxuICAgICk7XG4gICAgdGhyb3cgbmV3IFNlc3Npb25SZXN0YXJ0UmVxdWlyZWQoKTtcbiAgfVxuXG4gIExvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gIHRocm93IGVycm9yO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoQ29udGV4dFZhbHVlIHtcbiAgc2VhcmNoUHJvZHVjdHM6IChwYXJhbXM6IFNlYXJjaFBhcmFtcykgPT4gUHJvbWlzZTxTZWFyY2hSZXN1bHQ+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBTZWFyY2hDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTZWFyY2hDb250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+ID0gKHtcbiAgY2hpbGRyZW4sXG59KSA9PiB7XG4gIGNvbnN0IHsgb3JnTGV2ZWxBcGlLZXksIHB1YmxpY0tleSB9ID0gdXNlRW52aXZlQ29uZmlnKCk7XG4gIGNvbnN0IGFwaUtleSA9IG9yZ0xldmVsQXBpS2V5IHx8IHB1YmxpY0tleTsgLy8gUmVwbGljYXRlIGFwaUtleUF0b20gbG9naWNcbiAgY29uc3QgYXBwRGV0YWlscyA9IHVzZUFwcERldGFpbHMoKTtcbiAgY29uc3QgYmFzZVVybCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG5cbiAgY29uc3QgaXNSZWFkeSA9IEJvb2xlYW4oYXBpS2V5ICYmIGFwcERldGFpbHMgJiYgYmFzZVVybCk7XG5cbiAgY29uc3Qgc2VhcmNoQXBpID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc1JlYWR5KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNvbmZpZzogQ29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiBhcGlLZXksXG4gICAgICBiYXNlUGF0aDogYmFzZVVybCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgU2VhcmNoQXBpKGNvbmZpZyk7XG4gIH0sIFthcGlLZXksIGJhc2VVcmwsIGlzUmVhZHldKTtcblxuICBjb25zdCBzZWFyY2hQcm9kdWN0cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXJhbXM6IFNlYXJjaFBhcmFtcyk6IFByb21pc2U8U2VhcmNoUmVzdWx0PiA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkgfHwgIXNlYXJjaEFwaSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTZWFyY2hTZXJ2aWNlIG5vdCByZWFkeSAtIG1pc3NpbmcgZGVwZW5kZW5jaWVzXCIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlYXJjaEFwaS52MVNlYXJjaFF1ZXJ5R2V0KHtcbiAgICAgICAgICBxdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiBwYXJhbXMubGltaXQsXG4gICAgICAgICAgb3JnX2lkOiBhcHBEZXRhaWxzLm9yZ0lkLFxuICAgICAgICAgIHVzZXJfaWQ6IGFwcERldGFpbHMudXNlcklkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHByb2R1Y3RzLFxuICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgc2VhcmNoX3Jlc3BvbnNlX2lkOiBzZWFyY2hSZXNwb25zZUlkLFxuICAgICAgICB9ID0gcmVzcG9uc2U7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyhwcm9kdWN0cykgfHwgW10sXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyB8fCBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogcHJvZHVjdHM/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6IHNlYXJjaFJlc3BvbnNlSWQgfHwgXCJcIixcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKFwiRmFpbGVkIHRvIHNlYXJjaCBwcm9kdWN0c1wiLCBlcnJvcik7XG4gICAgICAgIC8vIFRoaXMgcGFydCB3aWxsIG5vdCBiZSByZWFjaGVkIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24sIGJ1dCBpdCdzIHJlcXVpcmVkIGZvciB0eXBlIHNhZmV0eVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHByb2R1Y3RzOiBbXSxcbiAgICAgICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICBzZWFyY2hSZXNwb25zZUlkOiBcIlwiLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NlYXJjaEFwaSwgaXNSZWFkeSwgYXBwRGV0YWlsc11cbiAgKTtcblxuICAvLyBSZWdpc3RlciB0aGUgc2VhcmNoIGZ1bmN0aW9uIHdpdGggdGhlIGFkYXB0ZXIgZm9yIHVzZSBpbiBhdG9tc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1JlYWR5KSB7XG4gICAgICBzZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oc2VhcmNoUHJvZHVjdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH07XG4gIH0sIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgc2VhcmNoUHJvZHVjdHMsXG4gICAgICBpc1JlYWR5LFxuICAgIH0pLFxuICAgIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTZWFyY2hDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2VhcmNoQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTZWFyY2hTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChTZWFyY2hDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlU2VhcmNoU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VhcmNoUHJvdmlkZXJcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQSxNQUFNLDZCQUE2QixhQUNqQyxTQUFTLEtBQUssVUFBVTtDQUN0QixJQUFJLEtBQUs7Q0FDVCxZQUFZLEtBQUs7Q0FDakIsVUFBVUEsaURBQWlCO0NBQzNCLGFBQWEsS0FBSztDQUNsQixVQUFVLEtBQUs7Q0FDZixXQUFXLEtBQUs7Q0FDaEIsT0FBTyxLQUFLO0NBQ1osS0FBSyxLQUFLO0NBQ1YsZUFBZSxLQUFLO0NBQ3BCLFdBQVcsS0FBSztDQUNoQixlQUFlLEtBQUs7Q0FDcEIsZUFBZSxLQUFLO0NBQ3BCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixRQUFRLEtBQUs7Q0FDYixPQUFPLEtBQUs7Q0FDWixTQUFT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