@selwise/widget 0.0.2 → 1.0.0

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 (643) hide show
  1. package/README.md +2 -1
  2. package/dist/npm/cjs/index.cjs +2 -0
  3. package/dist/npm/cjs/index.cjs.LICENSE.txt +1 -0
  4. package/dist/npm/cjs/index.d.ts +59 -0
  5. package/dist/npm/esm/index.d.ts +59 -4
  6. package/dist/npm/esm/index.mjs +2 -0
  7. package/dist/npm/esm/index.mjs.LICENSE.txt +1 -0
  8. package/package.json +14 -16
  9. package/dist/npm/cjs/constants.js +0 -167
  10. package/dist/npm/cjs/constants.js.map +0 -1
  11. package/dist/npm/cjs/core/conflict-resolver.js +0 -203
  12. package/dist/npm/cjs/core/conflict-resolver.js.map +0 -1
  13. package/dist/npm/cjs/core/event-batcher.js +0 -977
  14. package/dist/npm/cjs/core/event-batcher.js.map +0 -1
  15. package/dist/npm/cjs/core/experiment-overrides.js +0 -178
  16. package/dist/npm/cjs/core/experiment-overrides.js.map +0 -1
  17. package/dist/npm/cjs/core/experiments.js +0 -317
  18. package/dist/npm/cjs/core/experiments.js.map +0 -1
  19. package/dist/npm/cjs/core/frequency-caps.js +0 -297
  20. package/dist/npm/cjs/core/frequency-caps.js.map +0 -1
  21. package/dist/npm/cjs/core/index.js +0 -27
  22. package/dist/npm/cjs/core/index.js.map +0 -1
  23. package/dist/npm/cjs/core/indexeddb-queue.js +0 -333
  24. package/dist/npm/cjs/core/indexeddb-queue.js.map +0 -1
  25. package/dist/npm/cjs/core/journey-tracker.js +0 -243
  26. package/dist/npm/cjs/core/journey-tracker.js.map +0 -1
  27. package/dist/npm/cjs/core/page-targeting/index.js +0 -72
  28. package/dist/npm/cjs/core/page-targeting/index.js.map +0 -1
  29. package/dist/npm/cjs/core/script-executor.js +0 -80
  30. package/dist/npm/cjs/core/script-executor.js.map +0 -1
  31. package/dist/npm/cjs/core/segments.js +0 -172
  32. package/dist/npm/cjs/core/segments.js.map +0 -1
  33. package/dist/npm/cjs/core/tracker.js +0 -798
  34. package/dist/npm/cjs/core/tracker.js.map +0 -1
  35. package/dist/npm/cjs/datalayer/basket.js +0 -385
  36. package/dist/npm/cjs/datalayer/basket.js.map +0 -1
  37. package/dist/npm/cjs/datalayer/cart-association.js +0 -226
  38. package/dist/npm/cjs/datalayer/cart-association.js.map +0 -1
  39. package/dist/npm/cjs/datalayer/checkout.js +0 -382
  40. package/dist/npm/cjs/datalayer/checkout.js.map +0 -1
  41. package/dist/npm/cjs/datalayer/constants.js +0 -163
  42. package/dist/npm/cjs/datalayer/constants.js.map +0 -1
  43. package/dist/npm/cjs/datalayer/index.js +0 -1010
  44. package/dist/npm/cjs/datalayer/index.js.map +0 -1
  45. package/dist/npm/cjs/datalayer/listener.js +0 -416
  46. package/dist/npm/cjs/datalayer/listener.js.map +0 -1
  47. package/dist/npm/cjs/datalayer/page.js +0 -343
  48. package/dist/npm/cjs/datalayer/page.js.map +0 -1
  49. package/dist/npm/cjs/datalayer/product.js +0 -517
  50. package/dist/npm/cjs/datalayer/product.js.map +0 -1
  51. package/dist/npm/cjs/datalayer/reverse-mappings.js +0 -139
  52. package/dist/npm/cjs/datalayer/reverse-mappings.js.map +0 -1
  53. package/dist/npm/cjs/datalayer/search.js +0 -363
  54. package/dist/npm/cjs/datalayer/search.js.map +0 -1
  55. package/dist/npm/cjs/datalayer/types.js +0 -134
  56. package/dist/npm/cjs/datalayer/types.js.map +0 -1
  57. package/dist/npm/cjs/datalayer/user.js +0 -372
  58. package/dist/npm/cjs/datalayer/user.js.map +0 -1
  59. package/dist/npm/cjs/debug/index.js +0 -679
  60. package/dist/npm/cjs/debug/index.js.map +0 -1
  61. package/dist/npm/cjs/entries/cdn.js +0 -72
  62. package/dist/npm/cjs/entries/cdn.js.map +0 -1
  63. package/dist/npm/cjs/index.js +0 -10
  64. package/dist/npm/cjs/index.js.map +0 -1
  65. package/dist/npm/cjs/modules/contract/recommendation-contract.js +0 -119
  66. package/dist/npm/cjs/modules/contract/recommendation-contract.js.map +0 -1
  67. package/dist/npm/cjs/modules/contract/search-contract.js +0 -18
  68. package/dist/npm/cjs/modules/contract/search-contract.js.map +0 -1
  69. package/dist/npm/cjs/modules/contract/tracking-contract.js +0 -16
  70. package/dist/npm/cjs/modules/contract/tracking-contract.js.map +0 -1
  71. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +0 -164
  72. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +0 -1
  73. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +0 -21
  74. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +0 -1
  75. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +0 -3
  76. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +0 -1
  77. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +0 -107
  78. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +0 -1
  79. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +0 -404
  80. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +0 -1
  81. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +0 -21
  82. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +0 -1
  83. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +0 -8
  84. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +0 -1
  85. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +0 -126
  86. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +0 -1
  87. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +0 -133
  88. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +0 -1
  89. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +0 -21
  90. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +0 -1
  91. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +0 -3
  92. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +0 -1
  93. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +0 -154
  94. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +0 -1
  95. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +0 -1481
  96. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +0 -1
  97. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +0 -22
  98. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +0 -1
  99. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +0 -21
  100. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +0 -1
  101. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +0 -8
  102. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +0 -1
  103. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +0 -139
  104. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +0 -1
  105. package/dist/npm/cjs/modules/contract/widget-contract.js +0 -10
  106. package/dist/npm/cjs/modules/contract/widget-contract.js.map +0 -1
  107. package/dist/npm/cjs/modules/products/tracking.js +0 -214
  108. package/dist/npm/cjs/modules/products/tracking.js.map +0 -1
  109. package/dist/npm/cjs/modules/recommendation/cart-handlers.js +0 -52
  110. package/dist/npm/cjs/modules/recommendation/cart-handlers.js.map +0 -1
  111. package/dist/npm/cjs/modules/recommendation/components/product-card-renderer.js +0 -287
  112. package/dist/npm/cjs/modules/recommendation/components/product-card-renderer.js.map +0 -1
  113. package/dist/npm/cjs/modules/recommendation/index.js +0 -678
  114. package/dist/npm/cjs/modules/recommendation/index.js.map +0 -1
  115. package/dist/npm/cjs/modules/recommendation/renderers/grid.js +0 -21
  116. package/dist/npm/cjs/modules/recommendation/renderers/grid.js.map +0 -1
  117. package/dist/npm/cjs/modules/recommendation/renderers/list.js +0 -22
  118. package/dist/npm/cjs/modules/recommendation/renderers/list.js.map +0 -1
  119. package/dist/npm/cjs/modules/recommendation/renderers/masonry.js +0 -22
  120. package/dist/npm/cjs/modules/recommendation/renderers/masonry.js.map +0 -1
  121. package/dist/npm/cjs/modules/recommendation/renderers/slider-renderer.js +0 -145
  122. package/dist/npm/cjs/modules/recommendation/renderers/slider-renderer.js.map +0 -1
  123. package/dist/npm/cjs/modules/recommendation/slider-controls.js +0 -201
  124. package/dist/npm/cjs/modules/recommendation/slider-controls.js.map +0 -1
  125. package/dist/npm/cjs/modules/recommendation/tracking.js +0 -247
  126. package/dist/npm/cjs/modules/recommendation/tracking.js.map +0 -1
  127. package/dist/npm/cjs/modules/recommendation/utils/dom.js +0 -70
  128. package/dist/npm/cjs/modules/recommendation/utils/dom.js.map +0 -1
  129. package/dist/npm/cjs/modules/recommendation/utils/format.js +0 -13
  130. package/dist/npm/cjs/modules/recommendation/utils/format.js.map +0 -1
  131. package/dist/npm/cjs/modules/recommendation/utils/index.js +0 -22
  132. package/dist/npm/cjs/modules/recommendation/utils/index.js.map +0 -1
  133. package/dist/npm/cjs/modules/renderer/helpers.js +0 -16
  134. package/dist/npm/cjs/modules/renderer/helpers.js.map +0 -1
  135. package/dist/npm/cjs/modules/renderer/index.js +0 -52
  136. package/dist/npm/cjs/modules/renderer/index.js.map +0 -1
  137. package/dist/npm/cjs/modules/renderer/style-resolver.js +0 -11
  138. package/dist/npm/cjs/modules/renderer/style-resolver.js.map +0 -1
  139. package/dist/npm/cjs/modules/renderer/styles/index.js +0 -254
  140. package/dist/npm/cjs/modules/renderer/styles/index.js.map +0 -1
  141. package/dist/npm/cjs/modules/renderer/styles.js +0 -7
  142. package/dist/npm/cjs/modules/renderer/styles.js.map +0 -1
  143. package/dist/npm/cjs/modules/renderer/utils/helpers.js +0 -243
  144. package/dist/npm/cjs/modules/renderer/utils/helpers.js.map +0 -1
  145. package/dist/npm/cjs/modules/renderer/utils/image-renderer.js +0 -65
  146. package/dist/npm/cjs/modules/renderer/utils/image-renderer.js.map +0 -1
  147. package/dist/npm/cjs/modules/renderer/utils/placement.js +0 -34
  148. package/dist/npm/cjs/modules/renderer/utils/placement.js.map +0 -1
  149. package/dist/npm/cjs/modules/renderer/utils.js +0 -61
  150. package/dist/npm/cjs/modules/renderer/utils.js.map +0 -1
  151. package/dist/npm/cjs/modules/renderer/widgets/announcement-bar.js +0 -84
  152. package/dist/npm/cjs/modules/renderer/widgets/announcement-bar.js.map +0 -1
  153. package/dist/npm/cjs/modules/renderer/widgets/cart-count.js +0 -211
  154. package/dist/npm/cjs/modules/renderer/widgets/cart-count.js.map +0 -1
  155. package/dist/npm/cjs/modules/renderer/widgets/cookie-consent.js +0 -459
  156. package/dist/npm/cjs/modules/renderer/widgets/cookie-consent.js.map +0 -1
  157. package/dist/npm/cjs/modules/renderer/widgets/countdown-timer.js +0 -132
  158. package/dist/npm/cjs/modules/renderer/widgets/countdown-timer.js.map +0 -1
  159. package/dist/npm/cjs/modules/renderer/widgets/custom.js +0 -58
  160. package/dist/npm/cjs/modules/renderer/widgets/custom.js.map +0 -1
  161. package/dist/npm/cjs/modules/renderer/widgets/embedded-card.js +0 -97
  162. package/dist/npm/cjs/modules/renderer/widgets/embedded-card.js.map +0 -1
  163. package/dist/npm/cjs/modules/renderer/widgets/exit-intent-popup.js +0 -151
  164. package/dist/npm/cjs/modules/renderer/widgets/exit-intent-popup.js.map +0 -1
  165. package/dist/npm/cjs/modules/renderer/widgets/floating-button.js +0 -70
  166. package/dist/npm/cjs/modules/renderer/widgets/floating-button.js.map +0 -1
  167. package/dist/npm/cjs/modules/renderer/widgets/helpers.js +0 -87
  168. package/dist/npm/cjs/modules/renderer/widgets/helpers.js.map +0 -1
  169. package/dist/npm/cjs/modules/renderer/widgets/index.js +0 -39
  170. package/dist/npm/cjs/modules/renderer/widgets/index.js.map +0 -1
  171. package/dist/npm/cjs/modules/renderer/widgets/inline-banner.js +0 -124
  172. package/dist/npm/cjs/modules/renderer/widgets/inline-banner.js.map +0 -1
  173. package/dist/npm/cjs/modules/renderer/widgets/newsletter.js +0 -280
  174. package/dist/npm/cjs/modules/renderer/widgets/newsletter.js.map +0 -1
  175. package/dist/npm/cjs/modules/renderer/widgets/product-view-count.js +0 -197
  176. package/dist/npm/cjs/modules/renderer/widgets/product-view-count.js.map +0 -1
  177. package/dist/npm/cjs/modules/renderer/widgets/slide-in.js +0 -105
  178. package/dist/npm/cjs/modules/renderer/widgets/slide-in.js.map +0 -1
  179. package/dist/npm/cjs/modules/renderer/widgets/sticky-footer.js +0 -47
  180. package/dist/npm/cjs/modules/renderer/widgets/sticky-footer.js.map +0 -1
  181. package/dist/npm/cjs/modules/search/cart/index.js +0 -42
  182. package/dist/npm/cjs/modules/search/cart/index.js.map +0 -1
  183. package/dist/npm/cjs/modules/search/components/index.js +0 -13
  184. package/dist/npm/cjs/modules/search/components/index.js.map +0 -1
  185. package/dist/npm/cjs/modules/search/components/search-box.js +0 -28
  186. package/dist/npm/cjs/modules/search/components/search-box.js.map +0 -1
  187. package/dist/npm/cjs/modules/search/components/search-item.js +0 -197
  188. package/dist/npm/cjs/modules/search/components/search-item.js.map +0 -1
  189. package/dist/npm/cjs/modules/search/components/suggestions.js +0 -132
  190. package/dist/npm/cjs/modules/search/components/suggestions.js.map +0 -1
  191. package/dist/npm/cjs/modules/search/index.js +0 -646
  192. package/dist/npm/cjs/modules/search/index.js.map +0 -1
  193. package/dist/npm/cjs/modules/search/renderers/position-renderers.js +0 -229
  194. package/dist/npm/cjs/modules/search/renderers/position-renderers.js.map +0 -1
  195. package/dist/npm/cjs/modules/search/renderers/results-renderer.js +0 -180
  196. package/dist/npm/cjs/modules/search/renderers/results-renderer.js.map +0 -1
  197. package/dist/npm/cjs/modules/search/services/api-service.js +0 -121
  198. package/dist/npm/cjs/modules/search/services/api-service.js.map +0 -1
  199. package/dist/npm/cjs/modules/search/services/tracking-service.js +0 -263
  200. package/dist/npm/cjs/modules/search/services/tracking-service.js.map +0 -1
  201. package/dist/npm/cjs/modules/search/styles.js +0 -864
  202. package/dist/npm/cjs/modules/search/styles.js.map +0 -1
  203. package/dist/npm/cjs/modules/search/utils/helpers.js +0 -100
  204. package/dist/npm/cjs/modules/search/utils/helpers.js.map +0 -1
  205. package/dist/npm/cjs/modules/search/utils/icons.js +0 -41
  206. package/dist/npm/cjs/modules/search/utils/icons.js.map +0 -1
  207. package/dist/npm/cjs/modules/search/utils/index.js +0 -22
  208. package/dist/npm/cjs/modules/search/utils/index.js.map +0 -1
  209. package/dist/npm/cjs/modules/search/utils/storage.js +0 -58
  210. package/dist/npm/cjs/modules/search/utils/storage.js.map +0 -1
  211. package/dist/npm/cjs/selwise.js +0 -1160
  212. package/dist/npm/cjs/selwise.js.map +0 -1
  213. package/dist/npm/cjs/sentry-test.js +0 -118
  214. package/dist/npm/cjs/sentry-test.js.map +0 -1
  215. package/dist/npm/cjs/sentry.js +0 -451
  216. package/dist/npm/cjs/sentry.js.map +0 -1
  217. package/dist/npm/cjs/shared/cart/handlers.js +0 -259
  218. package/dist/npm/cjs/shared/cart/handlers.js.map +0 -1
  219. package/dist/npm/cjs/shared/cart/index.js +0 -23
  220. package/dist/npm/cjs/shared/cart/index.js.map +0 -1
  221. package/dist/npm/cjs/shared/cart/types.js +0 -7
  222. package/dist/npm/cjs/shared/cart/types.js.map +0 -1
  223. package/dist/npm/cjs/shared/product-card/index.js +0 -24
  224. package/dist/npm/cjs/shared/product-card/index.js.map +0 -1
  225. package/dist/npm/cjs/shared/product-card/renderer.js +0 -341
  226. package/dist/npm/cjs/shared/product-card/renderer.js.map +0 -1
  227. package/dist/npm/cjs/shared/product-card/styles.js +0 -195
  228. package/dist/npm/cjs/shared/product-card/styles.js.map +0 -1
  229. package/dist/npm/cjs/shared/product-card/types.js +0 -67
  230. package/dist/npm/cjs/shared/product-card/types.js.map +0 -1
  231. package/dist/npm/cjs/types/config.js +0 -6
  232. package/dist/npm/cjs/types/config.js.map +0 -1
  233. package/dist/npm/cjs/types/experiments.js +0 -17
  234. package/dist/npm/cjs/types/experiments.js.map +0 -1
  235. package/dist/npm/cjs/types/global-api.js +0 -3
  236. package/dist/npm/cjs/types/global-api.js.map +0 -1
  237. package/dist/npm/cjs/types/index.js +0 -27
  238. package/dist/npm/cjs/types/index.js.map +0 -1
  239. package/dist/npm/cjs/types/recommendation.js +0 -6
  240. package/dist/npm/cjs/types/recommendation.js.map +0 -1
  241. package/dist/npm/cjs/types/renderer.js +0 -6
  242. package/dist/npm/cjs/types/renderer.js.map +0 -1
  243. package/dist/npm/cjs/types/search.js +0 -6
  244. package/dist/npm/cjs/types/search.js.map +0 -1
  245. package/dist/npm/cjs/utils/api-url.js +0 -35
  246. package/dist/npm/cjs/utils/api-url.js.map +0 -1
  247. package/dist/npm/cjs/utils/debounce.js +0 -74
  248. package/dist/npm/cjs/utils/debounce.js.map +0 -1
  249. package/dist/npm/cjs/utils/event-id.js +0 -23
  250. package/dist/npm/cjs/utils/event-id.js.map +0 -1
  251. package/dist/npm/cjs/utils/index.js +0 -28
  252. package/dist/npm/cjs/utils/index.js.map +0 -1
  253. package/dist/npm/cjs/utils/logger.js +0 -74
  254. package/dist/npm/cjs/utils/logger.js.map +0 -1
  255. package/dist/npm/cjs/utils/sanitize.js +0 -159
  256. package/dist/npm/cjs/utils/sanitize.js.map +0 -1
  257. package/dist/npm/cjs/utils/storage.js +0 -285
  258. package/dist/npm/cjs/utils/storage.js.map +0 -1
  259. package/dist/npm/cjs/utils/tracking-metadata.js +0 -18
  260. package/dist/npm/cjs/utils/tracking-metadata.js.map +0 -1
  261. package/dist/npm/cjs/utils/url-matcher.js +0 -11
  262. package/dist/npm/cjs/utils/url-matcher.js.map +0 -1
  263. package/dist/npm/esm/constants.d.ts +0 -130
  264. package/dist/npm/esm/constants.js +0 -164
  265. package/dist/npm/esm/constants.js.map +0 -1
  266. package/dist/npm/esm/core/conflict-resolver.d.ts +0 -96
  267. package/dist/npm/esm/core/conflict-resolver.js +0 -198
  268. package/dist/npm/esm/core/conflict-resolver.js.map +0 -1
  269. package/dist/npm/esm/core/event-batcher.d.ts +0 -253
  270. package/dist/npm/esm/core/event-batcher.js +0 -973
  271. package/dist/npm/esm/core/event-batcher.js.map +0 -1
  272. package/dist/npm/esm/core/experiment-overrides.d.ts +0 -7
  273. package/dist/npm/esm/core/experiment-overrides.js +0 -172
  274. package/dist/npm/esm/core/experiment-overrides.js.map +0 -1
  275. package/dist/npm/esm/core/experiments.d.ts +0 -90
  276. package/dist/npm/esm/core/experiments.js +0 -313
  277. package/dist/npm/esm/core/experiments.js.map +0 -1
  278. package/dist/npm/esm/core/frequency-caps.d.ts +0 -124
  279. package/dist/npm/esm/core/frequency-caps.js +0 -292
  280. package/dist/npm/esm/core/frequency-caps.js.map +0 -1
  281. package/dist/npm/esm/core/index.d.ts +0 -10
  282. package/dist/npm/esm/core/index.js +0 -11
  283. package/dist/npm/esm/core/index.js.map +0 -1
  284. package/dist/npm/esm/core/indexeddb-queue.d.ts +0 -83
  285. package/dist/npm/esm/core/indexeddb-queue.js +0 -328
  286. package/dist/npm/esm/core/indexeddb-queue.js.map +0 -1
  287. package/dist/npm/esm/core/journey-tracker.d.ts +0 -102
  288. package/dist/npm/esm/core/journey-tracker.js +0 -237
  289. package/dist/npm/esm/core/journey-tracker.js.map +0 -1
  290. package/dist/npm/esm/core/page-targeting/index.d.ts +0 -8
  291. package/dist/npm/esm/core/page-targeting/index.js +0 -67
  292. package/dist/npm/esm/core/page-targeting/index.js.map +0 -1
  293. package/dist/npm/esm/core/script-executor.d.ts +0 -31
  294. package/dist/npm/esm/core/script-executor.js +0 -76
  295. package/dist/npm/esm/core/script-executor.js.map +0 -1
  296. package/dist/npm/esm/core/segments.d.ts +0 -39
  297. package/dist/npm/esm/core/segments.js +0 -168
  298. package/dist/npm/esm/core/segments.js.map +0 -1
  299. package/dist/npm/esm/core/tracker.d.ts +0 -182
  300. package/dist/npm/esm/core/tracker.js +0 -794
  301. package/dist/npm/esm/core/tracker.js.map +0 -1
  302. package/dist/npm/esm/datalayer/basket.d.ts +0 -104
  303. package/dist/npm/esm/datalayer/basket.js +0 -381
  304. package/dist/npm/esm/datalayer/basket.js.map +0 -1
  305. package/dist/npm/esm/datalayer/cart-association.d.ts +0 -65
  306. package/dist/npm/esm/datalayer/cart-association.js +0 -222
  307. package/dist/npm/esm/datalayer/cart-association.js.map +0 -1
  308. package/dist/npm/esm/datalayer/checkout.d.ts +0 -96
  309. package/dist/npm/esm/datalayer/checkout.js +0 -378
  310. package/dist/npm/esm/datalayer/checkout.js.map +0 -1
  311. package/dist/npm/esm/datalayer/constants.d.ts +0 -77
  312. package/dist/npm/esm/datalayer/constants.js +0 -160
  313. package/dist/npm/esm/datalayer/constants.js.map +0 -1
  314. package/dist/npm/esm/datalayer/index.d.ts +0 -212
  315. package/dist/npm/esm/datalayer/index.js +0 -991
  316. package/dist/npm/esm/datalayer/index.js.map +0 -1
  317. package/dist/npm/esm/datalayer/listener.d.ts +0 -108
  318. package/dist/npm/esm/datalayer/listener.js +0 -411
  319. package/dist/npm/esm/datalayer/listener.js.map +0 -1
  320. package/dist/npm/esm/datalayer/page.d.ts +0 -94
  321. package/dist/npm/esm/datalayer/page.js +0 -339
  322. package/dist/npm/esm/datalayer/page.js.map +0 -1
  323. package/dist/npm/esm/datalayer/product.d.ts +0 -133
  324. package/dist/npm/esm/datalayer/product.js +0 -513
  325. package/dist/npm/esm/datalayer/product.js.map +0 -1
  326. package/dist/npm/esm/datalayer/reverse-mappings.d.ts +0 -62
  327. package/dist/npm/esm/datalayer/reverse-mappings.js +0 -135
  328. package/dist/npm/esm/datalayer/reverse-mappings.js.map +0 -1
  329. package/dist/npm/esm/datalayer/search.d.ts +0 -108
  330. package/dist/npm/esm/datalayer/search.js +0 -359
  331. package/dist/npm/esm/datalayer/search.js.map +0 -1
  332. package/dist/npm/esm/datalayer/types.d.ts +0 -292
  333. package/dist/npm/esm/datalayer/types.js +0 -131
  334. package/dist/npm/esm/datalayer/types.js.map +0 -1
  335. package/dist/npm/esm/datalayer/user.d.ts +0 -104
  336. package/dist/npm/esm/datalayer/user.js +0 -368
  337. package/dist/npm/esm/datalayer/user.js.map +0 -1
  338. package/dist/npm/esm/debug/index.d.ts +0 -173
  339. package/dist/npm/esm/debug/index.js +0 -673
  340. package/dist/npm/esm/debug/index.js.map +0 -1
  341. package/dist/npm/esm/entries/cdn.d.ts +0 -1
  342. package/dist/npm/esm/entries/cdn.js +0 -35
  343. package/dist/npm/esm/entries/cdn.js.map +0 -1
  344. package/dist/npm/esm/index.js +0 -4
  345. package/dist/npm/esm/index.js.map +0 -1
  346. package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +0 -5
  347. package/dist/npm/esm/modules/contract/recommendation-contract.js +0 -107
  348. package/dist/npm/esm/modules/contract/recommendation-contract.js.map +0 -1
  349. package/dist/npm/esm/modules/contract/search-contract.d.ts +0 -1
  350. package/dist/npm/esm/modules/contract/search-contract.js +0 -2
  351. package/dist/npm/esm/modules/contract/search-contract.js.map +0 -1
  352. package/dist/npm/esm/modules/contract/tracking-contract.d.ts +0 -1
  353. package/dist/npm/esm/modules/contract/tracking-contract.js +0 -2
  354. package/dist/npm/esm/modules/contract/tracking-contract.js.map +0 -1
  355. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +0 -8
  356. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +0 -160
  357. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +0 -1
  358. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +0 -3
  359. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +0 -5
  360. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +0 -1
  361. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +0 -56
  362. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +0 -2
  363. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +0 -1
  364. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +0 -3
  365. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +0 -103
  366. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +0 -1
  367. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +0 -35
  368. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +0 -396
  369. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +0 -1
  370. package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +0 -3
  371. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +0 -5
  372. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +0 -1
  373. package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +0 -119
  374. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +0 -7
  375. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +0 -1
  376. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +0 -22
  377. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +0 -118
  378. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +0 -1
  379. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +0 -7
  380. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +0 -130
  381. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +0 -1
  382. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +0 -3
  383. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +0 -5
  384. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +0 -1
  385. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +0 -37
  386. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +0 -2
  387. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +0 -1
  388. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +0 -6
  389. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +0 -147
  390. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +0 -1
  391. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +0 -22
  392. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +0 -1472
  393. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +0 -1
  394. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +0 -4
  395. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +0 -6
  396. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +0 -1
  397. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +0 -14
  398. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +0 -18
  399. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +0 -1
  400. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +0 -128
  401. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +0 -7
  402. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +0 -1
  403. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +0 -11
  404. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +0 -132
  405. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +0 -1
  406. package/dist/npm/esm/modules/contract/widget-contract.d.ts +0 -1
  407. package/dist/npm/esm/modules/contract/widget-contract.js +0 -2
  408. package/dist/npm/esm/modules/contract/widget-contract.js.map +0 -1
  409. package/dist/npm/esm/modules/products/tracking.d.ts +0 -122
  410. package/dist/npm/esm/modules/products/tracking.js +0 -203
  411. package/dist/npm/esm/modules/products/tracking.js.map +0 -1
  412. package/dist/npm/esm/modules/recommendation/cart-handlers.d.ts +0 -10
  413. package/dist/npm/esm/modules/recommendation/cart-handlers.js +0 -49
  414. package/dist/npm/esm/modules/recommendation/cart-handlers.js.map +0 -1
  415. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.d.ts +0 -37
  416. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.js +0 -281
  417. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.js.map +0 -1
  418. package/dist/npm/esm/modules/recommendation/index.d.ts +0 -11
  419. package/dist/npm/esm/modules/recommendation/index.js +0 -674
  420. package/dist/npm/esm/modules/recommendation/index.js.map +0 -1
  421. package/dist/npm/esm/modules/recommendation/renderers/grid.d.ts +0 -5
  422. package/dist/npm/esm/modules/recommendation/renderers/grid.js +0 -18
  423. package/dist/npm/esm/modules/recommendation/renderers/grid.js.map +0 -1
  424. package/dist/npm/esm/modules/recommendation/renderers/list.d.ts +0 -5
  425. package/dist/npm/esm/modules/recommendation/renderers/list.js +0 -19
  426. package/dist/npm/esm/modules/recommendation/renderers/list.js.map +0 -1
  427. package/dist/npm/esm/modules/recommendation/renderers/masonry.d.ts +0 -5
  428. package/dist/npm/esm/modules/recommendation/renderers/masonry.js +0 -19
  429. package/dist/npm/esm/modules/recommendation/renderers/masonry.js.map +0 -1
  430. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.d.ts +0 -10
  431. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.js +0 -140
  432. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.js.map +0 -1
  433. package/dist/npm/esm/modules/recommendation/slider-controls.d.ts +0 -17
  434. package/dist/npm/esm/modules/recommendation/slider-controls.js +0 -187
  435. package/dist/npm/esm/modules/recommendation/slider-controls.js.map +0 -1
  436. package/dist/npm/esm/modules/recommendation/tracking.d.ts +0 -28
  437. package/dist/npm/esm/modules/recommendation/tracking.js +0 -237
  438. package/dist/npm/esm/modules/recommendation/tracking.js.map +0 -1
  439. package/dist/npm/esm/modules/recommendation/utils/dom.d.ts +0 -10
  440. package/dist/npm/esm/modules/recommendation/utils/dom.js +0 -63
  441. package/dist/npm/esm/modules/recommendation/utils/dom.js.map +0 -1
  442. package/dist/npm/esm/modules/recommendation/utils/format.d.ts +0 -4
  443. package/dist/npm/esm/modules/recommendation/utils/format.js +0 -10
  444. package/dist/npm/esm/modules/recommendation/utils/format.js.map +0 -1
  445. package/dist/npm/esm/modules/recommendation/utils/index.d.ts +0 -5
  446. package/dist/npm/esm/modules/recommendation/utils/index.js +0 -6
  447. package/dist/npm/esm/modules/recommendation/utils/index.js.map +0 -1
  448. package/dist/npm/esm/modules/renderer/helpers.d.ts +0 -5
  449. package/dist/npm/esm/modules/renderer/helpers.js +0 -6
  450. package/dist/npm/esm/modules/renderer/helpers.js.map +0 -1
  451. package/dist/npm/esm/modules/renderer/index.d.ts +0 -8
  452. package/dist/npm/esm/modules/renderer/index.js +0 -48
  453. package/dist/npm/esm/modules/renderer/index.js.map +0 -1
  454. package/dist/npm/esm/modules/renderer/style-resolver.d.ts +0 -1
  455. package/dist/npm/esm/modules/renderer/style-resolver.js +0 -8
  456. package/dist/npm/esm/modules/renderer/style-resolver.js.map +0 -1
  457. package/dist/npm/esm/modules/renderer/styles/index.d.ts +0 -12
  458. package/dist/npm/esm/modules/renderer/styles/index.js +0 -250
  459. package/dist/npm/esm/modules/renderer/styles/index.js.map +0 -1
  460. package/dist/npm/esm/modules/renderer/styles.d.ts +0 -1
  461. package/dist/npm/esm/modules/renderer/styles.js +0 -2
  462. package/dist/npm/esm/modules/renderer/styles.js.map +0 -1
  463. package/dist/npm/esm/modules/renderer/utils/helpers.d.ts +0 -58
  464. package/dist/npm/esm/modules/renderer/utils/helpers.js +0 -225
  465. package/dist/npm/esm/modules/renderer/utils/helpers.js.map +0 -1
  466. package/dist/npm/esm/modules/renderer/utils/image-renderer.d.ts +0 -17
  467. package/dist/npm/esm/modules/renderer/utils/image-renderer.js +0 -60
  468. package/dist/npm/esm/modules/renderer/utils/image-renderer.js.map +0 -1
  469. package/dist/npm/esm/modules/renderer/utils/placement.d.ts +0 -6
  470. package/dist/npm/esm/modules/renderer/utils/placement.js +0 -31
  471. package/dist/npm/esm/modules/renderer/utils/placement.js.map +0 -1
  472. package/dist/npm/esm/modules/renderer/utils.d.ts +0 -11
  473. package/dist/npm/esm/modules/renderer/utils.js +0 -44
  474. package/dist/npm/esm/modules/renderer/utils.js.map +0 -1
  475. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.d.ts +0 -5
  476. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.js +0 -81
  477. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.js.map +0 -1
  478. package/dist/npm/esm/modules/renderer/widgets/cart-count.d.ts +0 -6
  479. package/dist/npm/esm/modules/renderer/widgets/cart-count.js +0 -208
  480. package/dist/npm/esm/modules/renderer/widgets/cart-count.js.map +0 -1
  481. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.d.ts +0 -18
  482. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.js +0 -454
  483. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.js.map +0 -1
  484. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.d.ts +0 -5
  485. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.js +0 -129
  486. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.js.map +0 -1
  487. package/dist/npm/esm/modules/renderer/widgets/custom.d.ts +0 -5
  488. package/dist/npm/esm/modules/renderer/widgets/custom.js +0 -55
  489. package/dist/npm/esm/modules/renderer/widgets/custom.js.map +0 -1
  490. package/dist/npm/esm/modules/renderer/widgets/embedded-card.d.ts +0 -5
  491. package/dist/npm/esm/modules/renderer/widgets/embedded-card.js +0 -94
  492. package/dist/npm/esm/modules/renderer/widgets/embedded-card.js.map +0 -1
  493. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.d.ts +0 -6
  494. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.js +0 -147
  495. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.js.map +0 -1
  496. package/dist/npm/esm/modules/renderer/widgets/floating-button.d.ts +0 -5
  497. package/dist/npm/esm/modules/renderer/widgets/floating-button.js +0 -67
  498. package/dist/npm/esm/modules/renderer/widgets/floating-button.js.map +0 -1
  499. package/dist/npm/esm/modules/renderer/widgets/helpers.d.ts +0 -29
  500. package/dist/npm/esm/modules/renderer/widgets/helpers.js +0 -82
  501. package/dist/npm/esm/modules/renderer/widgets/helpers.js.map +0 -1
  502. package/dist/npm/esm/modules/renderer/widgets/index.d.ts +0 -17
  503. package/dist/npm/esm/modules/renderer/widgets/index.js +0 -19
  504. package/dist/npm/esm/modules/renderer/widgets/index.js.map +0 -1
  505. package/dist/npm/esm/modules/renderer/widgets/inline-banner.d.ts +0 -5
  506. package/dist/npm/esm/modules/renderer/widgets/inline-banner.js +0 -121
  507. package/dist/npm/esm/modules/renderer/widgets/inline-banner.js.map +0 -1
  508. package/dist/npm/esm/modules/renderer/widgets/newsletter.d.ts +0 -6
  509. package/dist/npm/esm/modules/renderer/widgets/newsletter.js +0 -277
  510. package/dist/npm/esm/modules/renderer/widgets/newsletter.js.map +0 -1
  511. package/dist/npm/esm/modules/renderer/widgets/product-view-count.d.ts +0 -6
  512. package/dist/npm/esm/modules/renderer/widgets/product-view-count.js +0 -194
  513. package/dist/npm/esm/modules/renderer/widgets/product-view-count.js.map +0 -1
  514. package/dist/npm/esm/modules/renderer/widgets/slide-in.d.ts +0 -5
  515. package/dist/npm/esm/modules/renderer/widgets/slide-in.js +0 -102
  516. package/dist/npm/esm/modules/renderer/widgets/slide-in.js.map +0 -1
  517. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.d.ts +0 -5
  518. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.js +0 -44
  519. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.js.map +0 -1
  520. package/dist/npm/esm/modules/search/cart/index.d.ts +0 -26
  521. package/dist/npm/esm/modules/search/cart/index.js +0 -39
  522. package/dist/npm/esm/modules/search/cart/index.js.map +0 -1
  523. package/dist/npm/esm/modules/search/components/index.d.ts +0 -6
  524. package/dist/npm/esm/modules/search/components/index.js +0 -7
  525. package/dist/npm/esm/modules/search/components/index.js.map +0 -1
  526. package/dist/npm/esm/modules/search/components/search-box.d.ts +0 -11
  527. package/dist/npm/esm/modules/search/components/search-box.js +0 -25
  528. package/dist/npm/esm/modules/search/components/search-box.js.map +0 -1
  529. package/dist/npm/esm/modules/search/components/search-item.d.ts +0 -20
  530. package/dist/npm/esm/modules/search/components/search-item.js +0 -193
  531. package/dist/npm/esm/modules/search/components/search-item.js.map +0 -1
  532. package/dist/npm/esm/modules/search/components/suggestions.d.ts +0 -10
  533. package/dist/npm/esm/modules/search/components/suggestions.js +0 -129
  534. package/dist/npm/esm/modules/search/components/suggestions.js.map +0 -1
  535. package/dist/npm/esm/modules/search/index.d.ts +0 -67
  536. package/dist/npm/esm/modules/search/index.js +0 -642
  537. package/dist/npm/esm/modules/search/index.js.map +0 -1
  538. package/dist/npm/esm/modules/search/renderers/position-renderers.d.ts +0 -23
  539. package/dist/npm/esm/modules/search/renderers/position-renderers.js +0 -221
  540. package/dist/npm/esm/modules/search/renderers/position-renderers.js.map +0 -1
  541. package/dist/npm/esm/modules/search/renderers/results-renderer.d.ts +0 -20
  542. package/dist/npm/esm/modules/search/renderers/results-renderer.js +0 -176
  543. package/dist/npm/esm/modules/search/renderers/results-renderer.js.map +0 -1
  544. package/dist/npm/esm/modules/search/services/api-service.d.ts +0 -18
  545. package/dist/npm/esm/modules/search/services/api-service.js +0 -115
  546. package/dist/npm/esm/modules/search/services/api-service.js.map +0 -1
  547. package/dist/npm/esm/modules/search/services/tracking-service.d.ts +0 -16
  548. package/dist/npm/esm/modules/search/services/tracking-service.js +0 -250
  549. package/dist/npm/esm/modules/search/services/tracking-service.js.map +0 -1
  550. package/dist/npm/esm/modules/search/styles.d.ts +0 -13
  551. package/dist/npm/esm/modules/search/styles.js +0 -860
  552. package/dist/npm/esm/modules/search/styles.js.map +0 -1
  553. package/dist/npm/esm/modules/search/utils/helpers.d.ts +0 -24
  554. package/dist/npm/esm/modules/search/utils/helpers.js +0 -93
  555. package/dist/npm/esm/modules/search/utils/helpers.js.map +0 -1
  556. package/dist/npm/esm/modules/search/utils/icons.d.ts +0 -16
  557. package/dist/npm/esm/modules/search/utils/icons.js +0 -36
  558. package/dist/npm/esm/modules/search/utils/icons.js.map +0 -1
  559. package/dist/npm/esm/modules/search/utils/index.d.ts +0 -6
  560. package/dist/npm/esm/modules/search/utils/index.js +0 -7
  561. package/dist/npm/esm/modules/search/utils/index.js.map +0 -1
  562. package/dist/npm/esm/modules/search/utils/storage.d.ts +0 -7
  563. package/dist/npm/esm/modules/search/utils/storage.js +0 -52
  564. package/dist/npm/esm/modules/search/utils/storage.js.map +0 -1
  565. package/dist/npm/esm/package.json +0 -1
  566. package/dist/npm/esm/selwise.d.ts +0 -209
  567. package/dist/npm/esm/selwise.js +0 -1123
  568. package/dist/npm/esm/selwise.js.map +0 -1
  569. package/dist/npm/esm/sentry-test.d.ts +0 -45
  570. package/dist/npm/esm/sentry-test.js +0 -109
  571. package/dist/npm/esm/sentry-test.js.map +0 -1
  572. package/dist/npm/esm/sentry.d.ts +0 -86
  573. package/dist/npm/esm/sentry.js +0 -441
  574. package/dist/npm/esm/sentry.js.map +0 -1
  575. package/dist/npm/esm/shared/cart/handlers.d.ts +0 -46
  576. package/dist/npm/esm/shared/cart/handlers.js +0 -249
  577. package/dist/npm/esm/shared/cart/handlers.js.map +0 -1
  578. package/dist/npm/esm/shared/cart/index.d.ts +0 -6
  579. package/dist/npm/esm/shared/cart/index.js +0 -7
  580. package/dist/npm/esm/shared/cart/index.js.map +0 -1
  581. package/dist/npm/esm/shared/cart/types.d.ts +0 -30
  582. package/dist/npm/esm/shared/cart/types.js +0 -6
  583. package/dist/npm/esm/shared/cart/types.js.map +0 -1
  584. package/dist/npm/esm/shared/product-card/index.d.ts +0 -7
  585. package/dist/npm/esm/shared/product-card/index.js +0 -8
  586. package/dist/npm/esm/shared/product-card/index.js.map +0 -1
  587. package/dist/npm/esm/shared/product-card/renderer.d.ts +0 -35
  588. package/dist/npm/esm/shared/product-card/renderer.js +0 -334
  589. package/dist/npm/esm/shared/product-card/renderer.js.map +0 -1
  590. package/dist/npm/esm/shared/product-card/styles.d.ts +0 -17
  591. package/dist/npm/esm/shared/product-card/styles.js +0 -190
  592. package/dist/npm/esm/shared/product-card/styles.js.map +0 -1
  593. package/dist/npm/esm/shared/product-card/types.d.ts +0 -84
  594. package/dist/npm/esm/shared/product-card/types.js +0 -63
  595. package/dist/npm/esm/shared/product-card/types.js.map +0 -1
  596. package/dist/npm/esm/types/config.d.ts +0 -26
  597. package/dist/npm/esm/types/config.js +0 -5
  598. package/dist/npm/esm/types/config.js.map +0 -1
  599. package/dist/npm/esm/types/experiments.d.ts +0 -47
  600. package/dist/npm/esm/types/experiments.js +0 -14
  601. package/dist/npm/esm/types/experiments.js.map +0 -1
  602. package/dist/npm/esm/types/global-api.d.ts +0 -40
  603. package/dist/npm/esm/types/global-api.js +0 -2
  604. package/dist/npm/esm/types/global-api.js.map +0 -1
  605. package/dist/npm/esm/types/index.d.ts +0 -9
  606. package/dist/npm/esm/types/index.js +0 -11
  607. package/dist/npm/esm/types/index.js.map +0 -1
  608. package/dist/npm/esm/types/recommendation.d.ts +0 -186
  609. package/dist/npm/esm/types/recommendation.js +0 -5
  610. package/dist/npm/esm/types/recommendation.js.map +0 -1
  611. package/dist/npm/esm/types/renderer.d.ts +0 -99
  612. package/dist/npm/esm/types/renderer.js +0 -5
  613. package/dist/npm/esm/types/renderer.js.map +0 -1
  614. package/dist/npm/esm/types/search.d.ts +0 -186
  615. package/dist/npm/esm/types/search.js +0 -5
  616. package/dist/npm/esm/types/search.js.map +0 -1
  617. package/dist/npm/esm/utils/api-url.d.ts +0 -1
  618. package/dist/npm/esm/utils/api-url.js +0 -32
  619. package/dist/npm/esm/utils/api-url.js.map +0 -1
  620. package/dist/npm/esm/utils/debounce.d.ts +0 -27
  621. package/dist/npm/esm/utils/debounce.js +0 -70
  622. package/dist/npm/esm/utils/debounce.js.map +0 -1
  623. package/dist/npm/esm/utils/event-id.d.ts +0 -5
  624. package/dist/npm/esm/utils/event-id.js +0 -20
  625. package/dist/npm/esm/utils/event-id.js.map +0 -1
  626. package/dist/npm/esm/utils/index.d.ts +0 -11
  627. package/dist/npm/esm/utils/index.js +0 -12
  628. package/dist/npm/esm/utils/index.js.map +0 -1
  629. package/dist/npm/esm/utils/logger.d.ts +0 -31
  630. package/dist/npm/esm/utils/logger.js +0 -66
  631. package/dist/npm/esm/utils/logger.js.map +0 -1
  632. package/dist/npm/esm/utils/sanitize.d.ts +0 -38
  633. package/dist/npm/esm/utils/sanitize.js +0 -148
  634. package/dist/npm/esm/utils/sanitize.js.map +0 -1
  635. package/dist/npm/esm/utils/storage.d.ts +0 -72
  636. package/dist/npm/esm/utils/storage.js +0 -271
  637. package/dist/npm/esm/utils/storage.js.map +0 -1
  638. package/dist/npm/esm/utils/tracking-metadata.d.ts +0 -1
  639. package/dist/npm/esm/utils/tracking-metadata.js +0 -15
  640. package/dist/npm/esm/utils/tracking-metadata.js.map +0 -1
  641. package/dist/npm/esm/utils/url-matcher.d.ts +0 -4
  642. package/dist/npm/esm/utils/url-matcher.js +0 -8
  643. package/dist/npm/esm/utils/url-matcher.js.map +0 -1
@@ -1,642 +0,0 @@
1
- /**
2
- * Search Module for Widget Script
3
- * Refactored version - uses modular components
4
- */
5
- import { getOrCreateSessionId, getOrCreateVisitorId, getStoredSiteUserId, generateEventId } from '../../utils/index.js';
6
- import { STORAGE_KEYS } from '../../constants.js';
7
- import { testModeLog, testModeDebug, testModeError } from '../../utils/logger.js';
8
- import { renderSuggestions as renderSuggestionsComponent } from './components/suggestions.js';
9
- import { formatPrice, escapeHtml, formatCategoryName } from './utils/helpers.js';
10
- import { sanitizeHTML } from '../../utils/sanitize.js';
11
- import { getSearchIcon, getCloseIcon } from './utils/icons.js';
12
- import { getRecentSearches as getRecentSearchesFromStorage, addRecentSearch as addRecentSearchToStorage, clearRecentSearches as clearRecentSearchesFromStorage, removeRecentSearch as removeRecentSearchFromStorage } from './utils/storage.js';
13
- import { loadSearchConfig, loadSearchSuggestions, logSearchQuery, performSearch } from './services/api-service.js';
14
- import { trackSearchOpen, trackSearchClose, trackZeroResults, trackRecentSearchClick, trackPopularSearchClick, trackPopularCategoryClick, trackPopularProductClick, trackClick } from './services/tracking-service.js';
15
- import { injectSearchStyles } from './styles.js';
16
- import { handleAddToCart } from './cart/index.js';
17
- import { renderInlinePosition, renderModalPosition, renderFloatingPosition, renderSidebarPosition, renderFullscreenPosition, createSearchTrigger } from './renderers/position-renderers.js';
18
- import { renderResultsHTML, attachCategoryListeners } from './renderers/results-renderer.js';
19
- import { executeCardScriptsForSearch } from './components/search-item.js';
20
- export class SearchModule {
21
- constructor(apiUrl, siteKey, experimentManager, segmentManager) {
22
- this.config = null;
23
- this.suggestions = null;
24
- this.container = null;
25
- this.input = null;
26
- this.resultsContainer = null;
27
- this.debounceTimer = null;
28
- this.cache = new Map();
29
- this.cacheMaxAge = 60000;
30
- this.isOpen = false;
31
- this.focusedIndex = -1;
32
- this.selectedCategory = null;
33
- this.overlayElement = null;
34
- this.searchOpenTime = null;
35
- this.lastQuery = '';
36
- this.lastResultCount = 0;
37
- // Performance: AbortController for canceling pending fetch requests
38
- this.abortController = null;
39
- // Performance: Bound event handlers for proper cleanup
40
- this.boundHandleDocumentClick = null;
41
- this.boundHandleDocumentKeydown = null;
42
- this.boundHandleHotkey = null;
43
- this.boundHandleClearClick = null;
44
- this.clearButtonEl = null;
45
- this.spaObserver = null;
46
- this.isDestroyed = false;
47
- // Use shared utility functions
48
- this.getOrCreateVisitorId = getOrCreateVisitorId;
49
- this.getStoredSiteUserId = getStoredSiteUserId;
50
- this.generateEventId = generateEventId;
51
- this.apiUrl = apiUrl;
52
- this.siteKey = siteKey;
53
- this.sessionId = getOrCreateSessionId();
54
- this.experimentManager = experimentManager;
55
- this.segmentManager = segmentManager;
56
- }
57
- /**
58
- * Destroy the search module and cleanup all resources
59
- * Call this when navigating away in SPA or when module is no longer needed
60
- */
61
- destroy() {
62
- if (this.isDestroyed)
63
- return;
64
- this.isDestroyed = true;
65
- // Cancel pending fetch requests
66
- if (this.abortController) {
67
- this.abortController.abort();
68
- this.abortController = null;
69
- }
70
- // Clear debounce timer
71
- if (this.debounceTimer) {
72
- clearTimeout(this.debounceTimer);
73
- this.debounceTimer = null;
74
- }
75
- // Remove document-level event listeners
76
- if (this.boundHandleDocumentClick) {
77
- document.removeEventListener('click', this.boundHandleDocumentClick);
78
- this.boundHandleDocumentClick = null;
79
- }
80
- if (this.boundHandleDocumentKeydown) {
81
- document.removeEventListener('keydown', this.boundHandleDocumentKeydown);
82
- this.boundHandleDocumentKeydown = null;
83
- }
84
- if (this.boundHandleHotkey) {
85
- document.removeEventListener('keydown', this.boundHandleHotkey);
86
- this.boundHandleHotkey = null;
87
- }
88
- if (this.boundHandleClearClick && this.clearButtonEl) {
89
- this.clearButtonEl.removeEventListener('click', this.boundHandleClearClick);
90
- }
91
- this.boundHandleClearClick = null;
92
- this.clearButtonEl = null;
93
- // Disconnect SPA observer
94
- if (this.spaObserver) {
95
- this.spaObserver.disconnect();
96
- this.spaObserver = null;
97
- }
98
- // Remove DOM elements
99
- if (this.container && this.container.parentNode) {
100
- this.container.parentNode.removeChild(this.container);
101
- }
102
- if (this.overlayElement && this.overlayElement.parentNode) {
103
- this.overlayElement.parentNode.removeChild(this.overlayElement);
104
- }
105
- // Clear cache
106
- this.cache.clear();
107
- // Null out references to help GC
108
- this.container = null;
109
- this.input = null;
110
- this.resultsContainer = null;
111
- this.overlayElement = null;
112
- this.config = null;
113
- this.suggestions = null;
114
- testModeDebug('WidgetSearch', 'Module destroyed and cleaned up');
115
- }
116
- getAPIConfig() {
117
- return { apiUrl: this.apiUrl, siteKey: this.siteKey };
118
- }
119
- async init() {
120
- try {
121
- this.config = await loadSearchConfig(this.getAPIConfig(), this.experimentManager);
122
- if (!this.config?.enabled) {
123
- testModeDebug('WidgetSearch', 'Search module disabled');
124
- return;
125
- }
126
- // Check test mode
127
- if (this.config.isTestMode) {
128
- const testModeEnabled = typeof localStorage !== 'undefined' &&
129
- localStorage.getItem(STORAGE_KEYS.TEST_MODE) === 'true';
130
- if (!testModeEnabled) {
131
- testModeDebug(`WidgetSearch`, `Search is in test mode. Run localStorage.setItem('${STORAGE_KEYS.TEST_MODE}', 'true') to view.`);
132
- return;
133
- }
134
- testModeDebug('WidgetSearch', 'Test mode enabled, showing search widget');
135
- }
136
- // Check segment targeting
137
- if (this.segmentManager && this.config.segmentTargetingMode && this.config.segmentIds) {
138
- const shouldShow = await this.segmentManager.shouldShow(this.config.segmentTargetingMode, this.config.segmentIds);
139
- if (!shouldShow) {
140
- testModeDebug('WidgetSearch', 'Search module hidden due to segment targeting');
141
- return;
142
- }
143
- }
144
- // Load suggestions data
145
- this.suggestions = await loadSearchSuggestions(this.getAPIConfig());
146
- // Inject styles using the new styles module
147
- injectSearchStyles(this.config, this.getSuggestionStyles());
148
- this.render();
149
- this.attachEventListeners();
150
- this.setupHotkey();
151
- this.setupSpaNavigationWatcher();
152
- testModeDebug('WidgetSearch', 'Search module initialized');
153
- }
154
- catch (error) {
155
- testModeError('WidgetSearch', 'Failed to initialize:', error);
156
- }
157
- }
158
- getSuggestionStyles() {
159
- return this.suggestions?.styles || {};
160
- }
161
- setupSpaNavigationWatcher() {
162
- testModeLog('WidgetSearch', 'Setting up SPA watcher, position:', this.config?.position);
163
- const attachedTriggers = new WeakSet();
164
- // Ensure previous observer is cleaned up (re-init / SPA re-render)
165
- if (this.spaObserver) {
166
- this.spaObserver.disconnect();
167
- this.spaObserver = null;
168
- }
169
- const observer = new MutationObserver(() => {
170
- const position = this.config?.position;
171
- // INLINE MODE: Re-render search box if container destroyed
172
- if (position === 'inline') {
173
- if (this.container && !document.body.contains(this.container)) {
174
- this.container = null;
175
- testModeLog('WidgetSearch', 'Inline container was removed');
176
- }
177
- if (!this.container && this.config?.selector) {
178
- const target = document.querySelector(this.config.selector);
179
- if (target) {
180
- testModeLog('WidgetSearch', 'Re-rendering inline search');
181
- const result = renderInlinePosition(this.config, () => this.attachEventListeners());
182
- if (result) {
183
- this.container = result.container;
184
- this.input = result.input;
185
- this.resultsContainer = result.resultsContainer;
186
- this.attachEventListeners();
187
- }
188
- }
189
- }
190
- }
191
- // MODAL/FLOATING/SIDEBAR: Re-attach triggers if they were recreated
192
- if (position === 'modal' || position === 'floating' || position === 'sidebar') {
193
- const triggerSelector = this.config?.triggerSelector;
194
- if (triggerSelector) {
195
- const triggers = document.querySelectorAll(triggerSelector);
196
- triggers.forEach(trigger => {
197
- if (!attachedTriggers.has(trigger)) {
198
- attachedTriggers.add(trigger);
199
- trigger.addEventListener('click', (e) => {
200
- e.preventDefault();
201
- this.openOverlay();
202
- });
203
- const assignment = this.experimentManager?.getAssignmentByTargetType('search_config');
204
- if (assignment) {
205
- this.experimentManager?.trackEvent('search_instant_open', {
206
- experimentId: assignment.experimentId,
207
- variant: assignment.variantId,
208
- position: this.config?.position,
209
- });
210
- }
211
- testModeLog('WidgetSearch', 'Re-attached trigger listener to:', triggerSelector);
212
- const floatingBtn = document.querySelector('.ws-search-floating-btn:not(.ws-embedded)');
213
- if (floatingBtn) {
214
- floatingBtn.remove();
215
- testModeLog('WidgetSearch', 'Removed fallback floating button');
216
- }
217
- }
218
- });
219
- }
220
- }
221
- });
222
- observer.observe(document.body, { childList: true, subtree: true });
223
- this.spaObserver = observer;
224
- testModeLog('WidgetSearch', 'SPA watcher active for all modes');
225
- }
226
- render() {
227
- if (!this.config)
228
- return;
229
- const createTriggerFn = (onClick) => {
230
- createSearchTrigger(this.config, onClick, getSearchIcon);
231
- };
232
- let result;
233
- switch (this.config.position) {
234
- case 'inline':
235
- result = renderInlinePosition(this.config, () => this.attachEventListeners());
236
- break;
237
- case 'modal':
238
- result = renderModalPosition(this.config, () => this.openOverlay(), () => this.closeOverlay(), createTriggerFn);
239
- break;
240
- case 'floating':
241
- result = renderFloatingPosition(this.config, () => this.openOverlay(), () => this.closeOverlay(), createTriggerFn);
242
- break;
243
- case 'sidebar':
244
- result = renderSidebarPosition(this.config, () => this.openOverlay(), () => this.closeOverlay(), createTriggerFn, getCloseIcon);
245
- break;
246
- case 'fullscreen':
247
- result = renderFullscreenPosition(this.config, () => this.openOverlay(), () => this.closeOverlay(), createTriggerFn, getCloseIcon);
248
- break;
249
- default:
250
- return;
251
- }
252
- if (result) {
253
- this.container = result.container;
254
- this.overlayElement = result.overlayElement || null;
255
- this.input = result.input;
256
- this.resultsContainer = result.resultsContainer;
257
- }
258
- }
259
- attachEventListeners() {
260
- if (!this.input || !this.resultsContainer)
261
- return;
262
- // Prevent duplicate document listeners if attachEventListeners() is called multiple times
263
- if (this.boundHandleDocumentClick) {
264
- document.removeEventListener('click', this.boundHandleDocumentClick);
265
- this.boundHandleDocumentClick = null;
266
- }
267
- if (this.boundHandleDocumentKeydown) {
268
- document.removeEventListener('keydown', this.boundHandleDocumentKeydown);
269
- this.boundHandleDocumentKeydown = null;
270
- }
271
- // Input listeners (attached to specific elements, auto-cleaned with DOM removal)
272
- this.input.addEventListener('input', (e) => this.handleInput(e));
273
- this.input.addEventListener('focus', () => this.handleFocus());
274
- this.input.addEventListener('keydown', (e) => this.handleKeydown(e));
275
- if (this.boundHandleClearClick && this.clearButtonEl) {
276
- this.clearButtonEl.removeEventListener('click', this.boundHandleClearClick);
277
- }
278
- this.boundHandleClearClick = null;
279
- this.clearButtonEl = this.container?.querySelector('.ws-search-clear') || null;
280
- if (this.clearButtonEl) {
281
- this.boundHandleClearClick = (_e) => this.clearSearch();
282
- this.clearButtonEl.addEventListener('click', this.boundHandleClearClick);
283
- }
284
- // Document-level listeners - store bound references for cleanup
285
- this.boundHandleDocumentClick = (e) => {
286
- if (!this.container?.contains(e.target) && !this.overlayElement?.contains(e.target)) {
287
- this.closeResults();
288
- }
289
- };
290
- document.addEventListener('click', this.boundHandleDocumentClick);
291
- this.boundHandleDocumentKeydown = (e) => {
292
- if (e.key === 'Escape') {
293
- this.closeResults();
294
- this.closeOverlay();
295
- }
296
- };
297
- document.addEventListener('keydown', this.boundHandleDocumentKeydown);
298
- }
299
- setupHotkey() {
300
- if (!this.config?.hotkey)
301
- return;
302
- // Store bound reference for cleanup
303
- this.boundHandleHotkey = (e) => {
304
- const hotkey = this.config.hotkey.toLowerCase();
305
- const isCtrl = hotkey.includes('ctrl') && (e.ctrlKey || e.metaKey);
306
- const key = hotkey.replace('ctrl+', '').replace('cmd+', '');
307
- if (isCtrl && e.key.toLowerCase() === key) {
308
- e.preventDefault();
309
- this.openOverlay();
310
- setTimeout(() => this.input?.focus(), 100);
311
- }
312
- };
313
- document.addEventListener('keydown', this.boundHandleHotkey);
314
- }
315
- handleInput(e) {
316
- const query = e.target.value.trim();
317
- this.container?.classList.toggle('has-value', query.length > 0);
318
- if (query.length < (this.config?.minChars || 2)) {
319
- if (query.length === 0) {
320
- this.renderSuggestions();
321
- }
322
- else {
323
- this.closeResults();
324
- }
325
- return;
326
- }
327
- if (this.debounceTimer)
328
- clearTimeout(this.debounceTimer);
329
- this.debounceTimer = setTimeout(() => this.search(query), this.config?.debounceMs || 300);
330
- }
331
- handleFocus() {
332
- const query = this.input?.value?.trim() || '';
333
- if (query.length < (this.config?.minChars || 2)) {
334
- this.renderSuggestions();
335
- return;
336
- }
337
- if (this.config?.searchOnFocus && query) {
338
- this.search(query);
339
- }
340
- }
341
- handleKeydown(e) {
342
- if (!this.isOpen)
343
- return;
344
- const items = this.resultsContainer?.querySelectorAll('.ws-search-item');
345
- if (!items?.length)
346
- return;
347
- switch (e.key) {
348
- case 'ArrowDown':
349
- e.preventDefault();
350
- this.focusedIndex = this.focusedIndex < items.length - 1 ? this.focusedIndex + 1 : 0;
351
- break;
352
- case 'ArrowUp':
353
- e.preventDefault();
354
- this.focusedIndex = this.focusedIndex > 0 ? this.focusedIndex - 1 : items.length - 1;
355
- break;
356
- case 'Enter':
357
- e.preventDefault();
358
- if (this.focusedIndex >= 0)
359
- items[this.focusedIndex].click();
360
- return;
361
- default:
362
- return;
363
- }
364
- items.forEach((item, i) => item.classList.toggle('focused', i === this.focusedIndex));
365
- items[this.focusedIndex]?.scrollIntoView({ block: 'nearest' });
366
- }
367
- async search(query) {
368
- const isRealSearch = query !== '*' && query.length >= (this.config?.minChars || 2);
369
- const cacheKey = `${query}|${this.selectedCategory || ''}`;
370
- const cached = this.cache.get(cacheKey);
371
- if (cached && Date.now() - cached.timestamp < this.cacheMaxAge) {
372
- this.renderResults(cached.data);
373
- this.lastQuery = query;
374
- this.lastResultCount = cached.data.total;
375
- return;
376
- }
377
- // Cancel any pending search request
378
- if (this.abortController) {
379
- this.abortController.abort();
380
- }
381
- this.abortController = new AbortController();
382
- this.showLoading();
383
- try {
384
- const data = await performSearch(this.getAPIConfig(), query, {
385
- maxResults: this.config?.maxResults || 10,
386
- category: this.selectedCategory,
387
- signal: this.abortController.signal
388
- });
389
- // Handle redirect if present
390
- if (data.redirect) {
391
- testModeDebug('WidgetSearch', 'Redirecting to:', data.redirect);
392
- // Close search UI before redirecting
393
- this.closeResults();
394
- this.closeOverlay();
395
- // Navigate to redirect URL
396
- window.location.href = data.redirect;
397
- return;
398
- }
399
- this.cache.set(cacheKey, { data, timestamp: Date.now() });
400
- this.renderResults(data);
401
- this.lastQuery = query;
402
- this.lastResultCount = data.total;
403
- if (isRealSearch) {
404
- addRecentSearchToStorage(query, this.suggestions?.recentSearches?.maxCount || 5, this.siteKey);
405
- logSearchQuery(this.getAPIConfig(), query, data.total, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
406
- if (data.total === 0 && !data.redirect) {
407
- trackZeroResults(this.getAPIConfig(), query, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
408
- }
409
- }
410
- }
411
- catch (error) {
412
- // Silently ignore aborted requests (user typed faster than API responded)
413
- if (error instanceof Error && error.name === 'AbortError') {
414
- return;
415
- }
416
- testModeError('WidgetSearch', 'Search failed:', error);
417
- this.showEmpty('Search temporarily unavailable');
418
- }
419
- }
420
- renderResults(data) {
421
- if (!this.resultsContainer || !this.config)
422
- return;
423
- if (data.hits.length === 0) {
424
- this.showEmpty(this.config.styles?.textEmpty || 'No products found');
425
- return;
426
- }
427
- // Generate unique container ID for card JS execution
428
- const containerId = `search-results-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
429
- const html = renderResultsHTML(data, {
430
- config: this.config,
431
- selectedCategory: this.selectedCategory,
432
- formatPrice: (price) => formatPrice(price, this.config?.styles),
433
- formatCategoryName: (name) => this.formatCategoryName(name)
434
- }, containerId);
435
- this.resultsContainer.innerHTML = sanitizeHTML(html);
436
- // Execute custom JavaScript for product cards after DOM insertion
437
- if (this.config.productCard?.customJs) {
438
- executeCardScriptsForSearch(containerId, this.resultsContainer);
439
- }
440
- // Attach category listeners
441
- attachCategoryListeners(this.resultsContainer, (category) => {
442
- this.selectedCategory = category;
443
- if (this.input?.value)
444
- this.search(this.input.value);
445
- });
446
- // Attach item click listeners
447
- this.resultsContainer.querySelectorAll('.ws-search-item').forEach(item => {
448
- item.addEventListener('click', (e) => {
449
- const target = e.target;
450
- const productItemCode = item.dataset.productId;
451
- const hit = data.hits.find((h) => (h.itemCode || h.id) === productItemCode);
452
- const addToCartAction = target.closest('[data-selwise-action="add-to-cart"]');
453
- if (addToCartAction) {
454
- e.preventDefault();
455
- e.stopPropagation();
456
- if (hit)
457
- this.handleAddToCartClick(hit);
458
- return;
459
- }
460
- if (productItemCode) {
461
- trackClick(this.getAPIConfig(), productItemCode, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId(), this.selectedCategory || undefined, this.lastQuery);
462
- }
463
- if (!this.config?.keepOpen) {
464
- this.closeResults();
465
- this.closeOverlay();
466
- }
467
- const link = item.querySelector('a')?.href || hit?.url;
468
- if (link && !addToCartAction) {
469
- window.location.href = link;
470
- }
471
- });
472
- });
473
- this.focusedIndex = 0;
474
- this.openResults();
475
- }
476
- handleAddToCartClick(hit) {
477
- const context = {
478
- config: this.getAPIConfig(),
479
- sessionId: this.sessionId,
480
- getVisitorId: () => this.getOrCreateVisitorId(),
481
- getSiteUserId: () => this.getStoredSiteUserId(),
482
- generateEventId: () => this.generateEventId(),
483
- getResultsContainer: () => this.resultsContainer,
484
- cartPlatform: (this.config?.cartPlatform || 'custom'),
485
- customCartScript: this.config?.customCartScript
486
- };
487
- handleAddToCart(hit, context);
488
- }
489
- renderSuggestions() {
490
- if (!this.resultsContainer || !this.config || !this.suggestions)
491
- return;
492
- const html = renderSuggestionsComponent(this.suggestions, this.config, getRecentSearchesFromStorage(5, this.siteKey), {
493
- formatPrice: (price) => formatPrice(price, this.config?.styles),
494
- escapeHtml,
495
- formatCategoryName
496
- });
497
- if (!html)
498
- return;
499
- this.resultsContainer.innerHTML = sanitizeHTML(html);
500
- this.attachSuggestionListeners();
501
- this.openResults();
502
- }
503
- attachSuggestionListeners() {
504
- if (!this.resultsContainer)
505
- return;
506
- this.resultsContainer.querySelector('.ws-clear-recent')?.addEventListener('click', (e) => {
507
- e.stopPropagation();
508
- clearRecentSearchesFromStorage(this.siteKey);
509
- this.renderSuggestions();
510
- });
511
- this.resultsContainer.querySelectorAll('.ws-remove-recent').forEach(btn => {
512
- btn.addEventListener('click', (e) => {
513
- e.stopPropagation();
514
- const term = btn.dataset.term;
515
- if (term) {
516
- removeRecentSearchFromStorage(term, this.siteKey);
517
- this.renderSuggestions();
518
- }
519
- });
520
- });
521
- this.resultsContainer.querySelectorAll('.ws-recent-item').forEach(item => {
522
- item.addEventListener('click', () => {
523
- const term = item.dataset.term;
524
- if (term && this.input) {
525
- trackRecentSearchClick(this.getAPIConfig(), term, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
526
- this.input.value = term;
527
- this.container?.classList.add('has-value');
528
- this.search(term);
529
- }
530
- });
531
- });
532
- this.resultsContainer.querySelectorAll('.ws-popular-search-item').forEach(item => {
533
- item.addEventListener('click', () => {
534
- const term = item.dataset.term;
535
- if (term && this.input) {
536
- trackPopularSearchClick(this.getAPIConfig(), term, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
537
- this.input.value = term;
538
- this.container?.classList.add('has-value');
539
- this.search(term);
540
- }
541
- });
542
- });
543
- this.resultsContainer.querySelectorAll('.ws-category-card').forEach(card => {
544
- card.addEventListener('click', (e) => {
545
- e.preventDefault();
546
- const category = card.dataset.category;
547
- if (category && this.input) {
548
- trackPopularCategoryClick(this.getAPIConfig(), category, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
549
- this.selectedCategory = category;
550
- this.input.value = '';
551
- this.search('*');
552
- }
553
- });
554
- });
555
- this.resultsContainer.querySelectorAll('.ws-product-card').forEach(card => {
556
- card.addEventListener('click', () => {
557
- const productItemCode = card.dataset.productId;
558
- if (productItemCode) {
559
- trackPopularProductClick(this.getAPIConfig(), productItemCode, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
560
- trackClick(this.getAPIConfig(), productItemCode, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
561
- }
562
- });
563
- });
564
- }
565
- showLoading() {
566
- if (!this.resultsContainer)
567
- return;
568
- const loadingText = escapeHtml(this.config?.styles?.textLoading || 'Searching...');
569
- this.resultsContainer.innerHTML = sanitizeHTML(`
570
- <div class="ws-search-loading">
571
- <div class="ws-search-spinner"></div>
572
- <span>${loadingText}</span>
573
- </div>
574
- `);
575
- this.openResults();
576
- }
577
- showEmpty(message) {
578
- if (!this.resultsContainer)
579
- return;
580
- const safeMessage = escapeHtml(message);
581
- this.resultsContainer.innerHTML = sanitizeHTML(`
582
- <div class="ws-search-empty">
583
- ${getSearchIcon('', 48)}
584
- <p style="margin-top:12px;">${safeMessage}</p>
585
- </div>
586
- `);
587
- this.openResults();
588
- }
589
- openResults() {
590
- this.resultsContainer?.classList.add('open');
591
- if (this.config?.position === 'inline' && this.config?.animationType && this.config.animationType !== 'none') {
592
- this.resultsContainer?.classList.add(`anim-${this.config.animationType}`);
593
- }
594
- this.isOpen = true;
595
- }
596
- closeResults() {
597
- this.resultsContainer?.classList.remove('open');
598
- this.isOpen = false;
599
- this.focusedIndex = -1;
600
- }
601
- openOverlay() {
602
- this.overlayElement?.classList.add('open');
603
- if (this.config?.animationType && this.config.animationType !== 'none') {
604
- this.overlayElement?.classList.add(`anim-${this.config.animationType}`);
605
- }
606
- this.searchOpenTime = Date.now();
607
- trackSearchOpen(this.getAPIConfig(), 'click', this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
608
- setTimeout(() => this.input?.focus(), 100);
609
- }
610
- closeOverlay() {
611
- this.overlayElement?.classList.remove('open');
612
- if (this.searchOpenTime) {
613
- const dwellTime = Date.now() - this.searchOpenTime;
614
- trackSearchClose(this.getAPIConfig(), this.lastQuery, this.lastResultCount, dwellTime, this.sessionId, this.getOrCreateVisitorId(), this.getStoredSiteUserId(), this.generateEventId());
615
- this.searchOpenTime = null;
616
- }
617
- this.closeResults();
618
- this.clearSearch();
619
- }
620
- clearSearch() {
621
- if (this.input)
622
- this.input.value = '';
623
- this.container?.classList.remove('has-value');
624
- this.closeResults();
625
- this.selectedCategory = null;
626
- }
627
- formatCategoryName(name) {
628
- const s = this.config?.styles || {};
629
- const mode = s.categoryNaming || 'full_path';
630
- if (!name)
631
- return '';
632
- if (mode === 'last_part') {
633
- const parts = name.split('>');
634
- return parts[parts.length - 1].trim();
635
- }
636
- if (mode === 'first_part') {
637
- return name.split('>')[0].trim();
638
- }
639
- return name;
640
- }
641
- }
642
- //# sourceMappingURL=index.js.map