@faststore/core 2.1.17 → 2.1.19

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 (187) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/build-manifest.json +129 -0
  3. package/.next/cache/.tsbuildinfo +1 -0
  4. package/.next/cache/config.json +7 -0
  5. package/.next/cache/eslint/.cache_1gneedd +1 -0
  6. package/.next/cache/next-server.js.nft.json +1 -0
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/export-marker.json +1 -0
  12. package/.next/images-manifest.json +1 -0
  13. package/.next/next-server.js.nft.json +1 -0
  14. package/.next/package.json +1 -0
  15. package/.next/prerender-manifest.json +1 -0
  16. package/.next/react-loadable-manifest.json +44 -0
  17. package/.next/required-server-files.json +1 -0
  18. package/.next/routes-manifest.json +1 -0
  19. package/.next/server/chunks/123.js +58 -0
  20. package/.next/server/chunks/143.js +106 -0
  21. package/.next/server/chunks/144.js +1338 -0
  22. package/.next/server/chunks/183.js +90 -0
  23. package/.next/server/chunks/184.js +61 -0
  24. package/.next/server/chunks/186.js +136 -0
  25. package/.next/server/chunks/247.js +61 -0
  26. package/.next/server/chunks/253.js +535 -0
  27. package/.next/server/chunks/269.js +517 -0
  28. package/.next/server/chunks/287.js +58 -0
  29. package/.next/server/chunks/289.js +242 -0
  30. package/.next/server/chunks/312.js +697 -0
  31. package/.next/server/chunks/350.js +143 -0
  32. package/.next/server/chunks/487.js +9142 -0
  33. package/.next/server/chunks/502.js +626 -0
  34. package/.next/server/chunks/576.js +90 -0
  35. package/.next/server/chunks/597.js +211 -0
  36. package/.next/server/chunks/650.js +9142 -0
  37. package/.next/server/chunks/676.js +32 -0
  38. package/.next/server/chunks/721.js +679 -0
  39. package/.next/server/chunks/74.js +4100 -0
  40. package/.next/server/chunks/825.js +4039 -0
  41. package/.next/server/chunks/854.js +72 -0
  42. package/.next/server/chunks/859.js +959 -0
  43. package/.next/server/chunks/886.js +120 -0
  44. package/.next/server/chunks/907.js +1956 -0
  45. package/.next/server/chunks/98.js +124 -0
  46. package/.next/server/chunks/font-manifest.json +1 -0
  47. package/.next/server/font-manifest.json +1 -0
  48. package/.next/server/middleware-build-manifest.js +1 -0
  49. package/.next/server/middleware-manifest.json +6 -0
  50. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  51. package/.next/server/pages/404.js +386 -0
  52. package/.next/server/pages/404.js.nft.json +1 -0
  53. package/.next/server/pages/500.js +388 -0
  54. package/.next/server/pages/500.js.nft.json +1 -0
  55. package/.next/server/pages/[...slug].js +1005 -0
  56. package/.next/server/pages/[...slug].js.nft.json +1 -0
  57. package/.next/server/pages/[slug]/p.js +2390 -0
  58. package/.next/server/pages/[slug]/p.js.nft.json +1 -0
  59. package/.next/server/pages/_app.js +281 -0
  60. package/.next/server/pages/_app.js.nft.json +1 -0
  61. package/.next/server/pages/_document.js +340 -0
  62. package/.next/server/pages/_document.js.nft.json +1 -0
  63. package/.next/server/pages/_error.js +164 -0
  64. package/.next/server/pages/_error.js.nft.json +1 -0
  65. package/.next/server/pages/account.js +363 -0
  66. package/.next/server/pages/account.js.nft.json +1 -0
  67. package/.next/server/pages/api/graphql.js +365 -0
  68. package/.next/server/pages/api/graphql.js.nft.json +1 -0
  69. package/.next/server/pages/api/preview.js +148 -0
  70. package/.next/server/pages/api/preview.js.nft.json +1 -0
  71. package/.next/server/pages/checkout.js +363 -0
  72. package/.next/server/pages/checkout.js.nft.json +1 -0
  73. package/.next/server/pages/en-US/404.html +81 -0
  74. package/.next/server/pages/en-US/404.json +1 -0
  75. package/.next/server/pages/en-US/500.html +81 -0
  76. package/.next/server/pages/en-US/500.json +1 -0
  77. package/.next/server/pages/en-US/account.html +81 -0
  78. package/.next/server/pages/en-US/account.json +1 -0
  79. package/.next/server/pages/en-US/checkout.html +81 -0
  80. package/.next/server/pages/en-US/checkout.json +1 -0
  81. package/.next/server/pages/en-US/login.html +81 -0
  82. package/.next/server/pages/en-US/login.json +1 -0
  83. package/.next/server/pages/en-US/s.html +81 -0
  84. package/.next/server/pages/en-US/s.json +1 -0
  85. package/.next/server/pages/en-US.html +81 -0
  86. package/.next/server/pages/en-US.json +1 -0
  87. package/.next/server/pages/index.js +439 -0
  88. package/.next/server/pages/index.js.nft.json +1 -0
  89. package/.next/server/pages/login.js +368 -0
  90. package/.next/server/pages/login.js.nft.json +1 -0
  91. package/.next/server/pages/s.js +466 -0
  92. package/.next/server/pages/s.js.nft.json +1 -0
  93. package/.next/server/pages-manifest.json +16 -0
  94. package/.next/server/webpack-api-runtime.js +229 -0
  95. package/.next/server/webpack-runtime.js +229 -0
  96. package/.next/static/HWyxnnh37qprVz28Rroho/_buildManifest.js +1 -0
  97. package/.next/static/HWyxnnh37qprVz28Rroho/_ssgManifest.js +1 -0
  98. package/.next/static/chunks/130-15325805e3c8d5f4.js +1 -0
  99. package/.next/static/chunks/143.dd8a556e6957baa1.js +1 -0
  100. package/.next/static/chunks/495.0ecd099878b2a36d.js +1 -0
  101. package/.next/static/chunks/502.b14533723651e5a1.js +1 -0
  102. package/.next/static/chunks/548-ab84e9e8b49413ab.js +1 -0
  103. package/.next/static/chunks/597.f8d0595b113c70af.js +1 -0
  104. package/.next/static/chunks/64.7ea3677ac3a10e00.js +1 -0
  105. package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
  106. package/.next/static/chunks/706-5aea41dd07970d2d.js +1 -0
  107. package/.next/static/chunks/738-67a288ca3569cdbb.js +1 -0
  108. package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
  109. package/.next/static/chunks/791-63b1ccf9964b6517.js +1 -0
  110. package/.next/static/chunks/98.97381d2021f86cd9.js +1 -0
  111. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
  112. package/.next/static/chunks/main-fd466221927468fd.js +1 -0
  113. package/.next/static/chunks/pages/404-d5f20744ecd83121.js +1 -0
  114. package/.next/static/chunks/pages/500-3911549ab88d0378.js +1 -0
  115. package/.next/static/chunks/pages/[...slug]-3a37fd4d13cb2ba8.js +1 -0
  116. package/.next/static/chunks/pages/[slug]/p-bf47c90571846f86.js +1 -0
  117. package/.next/static/chunks/pages/_app-79d333aa6001a806.js +1 -0
  118. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
  119. package/.next/static/chunks/pages/account-d248acc931146694.js +1 -0
  120. package/.next/static/chunks/pages/checkout-97f6d6f36f041a6f.js +1 -0
  121. package/.next/static/chunks/pages/index-e9727cb06d9ae961.js +1 -0
  122. package/.next/static/chunks/pages/login-4cc4b8e52608f076.js +1 -0
  123. package/.next/static/chunks/pages/s-aabfa5c08338974a.js +1 -0
  124. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
  125. package/.next/static/chunks/webpack-cbb5ca873d13aa82.js +1 -0
  126. package/.next/static/css/08e3fc80f9bad95d.css +1 -0
  127. package/.next/static/css/0e00026896a2ee3e.css +1 -0
  128. package/.next/static/css/1b23beb5af203ffb.css +1 -0
  129. package/.next/static/css/584640ffee46aa49.css +1 -0
  130. package/.next/static/css/7d822a137c54a781.css +1 -0
  131. package/.next/static/css/a49f71ae6bb528e0.css +1 -0
  132. package/.next/static/css/ccbb6df6cae68586.css +1 -0
  133. package/.next/static/css/e02cdad8fc000339.css +1 -0
  134. package/.next/static/css/f7ed956d370744ea.css +1 -0
  135. package/.next/static/css/f9d59f597a4d8f82.css +1 -0
  136. package/.next/trace +80 -0
  137. package/.turbo/turbo-build.log +13 -14
  138. package/README.md +1 -2
  139. package/cms/faststore/content-types.json +2 -2
  140. package/package.json +4 -4
  141. package/public/~partytown/debug/partytown-atomics.js +556 -0
  142. package/public/~partytown/debug/partytown-media.js +374 -0
  143. package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
  144. package/public/~partytown/debug/partytown-sw.js +59 -0
  145. package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
  146. package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
  147. package/public/~partytown/debug/partytown.js +72 -0
  148. package/public/~partytown/partytown-atomics.js +2 -0
  149. package/public/~partytown/partytown-media.js +2 -0
  150. package/public/~partytown/partytown-sw.js +2 -0
  151. package/public/~partytown/partytown.js +2 -0
  152. package/src/components/cms/GlobalSections.tsx +2 -3
  153. package/src/components/common/Alert/section.module.scss +2 -0
  154. package/src/components/common/Footer/Footer.tsx +5 -14
  155. package/src/components/navigation/Navbar/Navbar.tsx +1 -1
  156. package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +1 -1
  157. package/src/components/product/ProductCard/ProductCard.tsx +1 -1
  158. package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +2 -4
  159. package/src/components/sections/BannerText/BannerText.tsx +0 -2
  160. package/src/components/sections/Breadcrumb/Breadcrumb.tsx +1 -1
  161. package/src/components/sections/Incentives/Incentives.tsx +1 -1
  162. package/src/components/sections/Incentives/section.module.scss +2 -0
  163. package/src/components/sections/Navbar/section.module.scss +4 -0
  164. package/src/components/sections/Newsletter/section.module.scss +2 -0
  165. package/src/components/sections/ProductDetails/ProductDetails.tsx +2 -4
  166. package/src/components/sections/ProductGallery/ProductGallery.tsx +2 -4
  167. package/src/components/sections/ProductGallery/section.module.scss +13 -0
  168. package/src/components/sections/ProductShelf/section.module.scss +5 -0
  169. package/src/components/sections/ProductTiles/ProductTiles.tsx +18 -20
  170. package/src/components/sections/Section/section.scss +8 -0
  171. package/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx +1 -1
  172. package/src/components/templates/LandingPage/LandingPage.tsx +102 -0
  173. package/src/components/templates/LandingPage/index.ts +2 -0
  174. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +138 -0
  175. package/src/components/templates/ProductListingPage/index.ts +2 -0
  176. package/src/components/ui/Incentives/Incentives.tsx +1 -1
  177. package/src/components/ui/Newsletter/Newsletter.tsx +1 -1
  178. package/src/components/ui/ProductGallery/ProductGallery.tsx +5 -2
  179. package/src/pages/[...slug].tsx +45 -130
  180. package/src/pages/api/preview.ts +18 -2
  181. package/src/pages/index.tsx +1 -3
  182. package/src/sdk/error/MissingContentError/MissingContentError.ts +15 -0
  183. package/src/sdk/error/MissingContentError/index.ts +1 -0
  184. package/src/sdk/error/MultipleContentError/MultipleContentError.ts +15 -0
  185. package/src/sdk/error/MultipleContentError/index.ts +1 -0
  186. package/src/server/cms.ts +7 -21
  187. package/src/styles/global/components.scss +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"pages404":true,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","locale":false,"internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/[slug]/p","regex":"^/([^/]+?)/p(?:/)?$","routeKeys":{"slug":"slug"},"namedRegex":"^/(?<slug>[^/]+?)/p(?:/)?$"},{"page":"/[...slug]","regex":"^/(.+?)(?:/)?$","routeKeys":{"slug":"slug"},"namedRegex":"^/(?<slug>.+?)(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/404","regex":"^/404(?:/)?$","routeKeys":{},"namedRegex":"^/404(?:/)?$"},{"page":"/500","regex":"^/500(?:/)?$","routeKeys":{},"namedRegex":"^/500(?:/)?$"},{"page":"/account","regex":"^/account(?:/)?$","routeKeys":{},"namedRegex":"^/account(?:/)?$"},{"page":"/checkout","regex":"^/checkout(?:/)?$","routeKeys":{},"namedRegex":"^/checkout(?:/)?$"},{"page":"/login","regex":"^/login(?:/)?$","routeKeys":{},"namedRegex":"^/login(?:/)?$"},{"page":"/s","regex":"^/s(?:/)?$","routeKeys":{},"namedRegex":"^/s(?:/)?$"}],"dataRoutes":[{"page":"/","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/index.json$"},{"page":"/404","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/404.json$"},{"page":"/500","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/500.json$"},{"page":"/account","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/account.json$"},{"page":"/checkout","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/checkout.json$"},{"page":"/login","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/login.json$"},{"page":"/s","dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/s.json$"},{"page":"/[slug]/p","routeKeys":{"slug":"slug"},"dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/([^/]+?)/p\\.json$","namedDataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/(?<slug>[^/]+?)/p\\.json$"},{"page":"/[...slug]","routeKeys":{"slug":"slug"},"dataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/(.+?)\\.json$","namedDataRouteRegex":"^/_next/data/HWyxnnh37qprVz28Rroho/(?<slug>.+?)\\.json$"}],"i18n":{"locales":["en-US"],"defaultLocale":"en-US"},"rewrites":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ exports.id = 123;
3
+ exports.ids = [123];
4
+ exports.modules = {
5
+
6
+ /***/ 60123:
7
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
+
9
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
11
+ /* harmony export */ });
12
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82765);
15
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25045);
16
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(875);
17
+
18
+
19
+ const QuantitySelector = ({ max, min = 1, initial, disabled = false, onChange, testId = 'fs-quantity-selector', ...otherProps }) => {
20
+ const [quantity, setQuantity] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial ?? min);
21
+ const isLeftDisabled = quantity === min;
22
+ const isRightDisabled = quantity === max;
23
+ const changeQuantity = (increaseValue) => {
24
+ const quantityValue = validateQuantityBounds(quantity + increaseValue);
25
+ onChange?.(quantityValue);
26
+ setQuantity(quantityValue);
27
+ };
28
+ const increase = () => changeQuantity(1);
29
+ const decrease = () => changeQuantity(-1);
30
+ function validateQuantityBounds(n) {
31
+ const maxValue = min ? Math.max(n, min) : n;
32
+ return max ? Math.min(maxValue, max) : maxValue;
33
+ }
34
+ function validateInput(e) {
35
+ const val = e.currentTarget.value;
36
+ if (!Number.isNaN(Number(val))) {
37
+ setQuantity(() => {
38
+ const quantityValue = validateQuantityBounds(Number(val));
39
+ onChange?.(quantityValue);
40
+ return quantityValue;
41
+ });
42
+ }
43
+ }
44
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
45
+ initial && setQuantity(initial);
46
+ }, [initial]);
47
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-quantity-selector": disabled ? 'disabled' : 'true', "data-testid": testId, ...otherProps },
48
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "left", icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Minus", width: 16, height: 16, weight: "bold" }), "aria-label": "Decrement Quantity", "aria-controls": "quantity-selector-input", disabled: isLeftDisabled || disabled, onClick: decrease, testId: `${testId}-left-button`, size: "small" }),
49
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-quantity-selector-input": true, id: "quantity-selector-input", "aria-label": "Quantity", value: quantity, onChange: validateInput, disabled: disabled }),
50
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "right", "aria-controls": "quantity-selector-input", "aria-label": "Increment Quantity", disabled: isRightDisabled || disabled, icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Plus", width: 16, height: 16, weight: "bold" }), onClick: increase, testId: `${testId}-right-button`, size: "small" })));
51
+ };
52
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuantitySelector);
53
+ //# sourceMappingURL=QuantitySelector.js.map
54
+
55
+ /***/ })
56
+
57
+ };
58
+ ;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ exports.id = 143;
3
+ exports.ids = [143];
4
+ exports.modules = {
5
+
6
+ /***/ 29143:
7
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
+
9
+ __webpack_require__.r(__webpack_exports__);
10
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12
+ /* harmony export */ });
13
+ /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97183);
14
+ /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_0__);
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+
17
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
+
19
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+
21
+ /**
22
+ * More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
23
+ */
24
+
25
+ const THIRTY_MINUTES_S = 30 * 60;
26
+ const ONE_YEAR_S = 365 * 24 * 3600;
27
+
28
+ const randomUUID = () => typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : (Math.random() * 1e6).toFixed(0);
29
+
30
+ const createStorage = (key, expiresSecond) => {
31
+ const timelapsed = past => (Date.now() - past) / 1e3;
32
+
33
+ return () => {
34
+ const item = JSON.parse(localStorage.getItem(key) ?? 'null');
35
+ const isExpired = !item || timelapsed(item.createdAt) > expiresSecond;
36
+ const payload = isExpired ? randomUUID() : item.payload;
37
+
38
+ if (isExpired) {
39
+ const data = {
40
+ payload,
41
+ createdAt: Date.now()
42
+ };
43
+ localStorage.setItem(key, JSON.stringify(data));
44
+ }
45
+
46
+ return payload;
47
+ };
48
+ };
49
+
50
+ const user = {
51
+ anonymous: createStorage('vtex.search.anonymous', ONE_YEAR_S),
52
+ session: createStorage('vtex.search.session', THIRTY_MINUTES_S)
53
+ };
54
+
55
+ const sendEvent = options => fetch(`https://sp.vtex.com/event-api/v1/${(_faststore_config__WEBPACK_IMPORTED_MODULE_0___default().api.storeId)}/event`, {
56
+ method: 'POST',
57
+ body: JSON.stringify(_objectSpread(_objectSpread({}, options), {}, {
58
+ userAgent: navigator.userAgent,
59
+ anonymous: user.anonymous(),
60
+ session: user.session()
61
+ })),
62
+ headers: {
63
+ 'content-type': 'application/json'
64
+ }
65
+ });
66
+
67
+ const isFullTextSearch = url => typeof url.searchParams.get('q') === 'string' && /^\/s(\/)?$/g.test(url.pathname);
68
+
69
+ const handleEvent = event => {
70
+ if (event.name !== 'search_select_item') {
71
+ return;
72
+ }
73
+
74
+ const url = new URL(event.params.url);
75
+
76
+ if (!isFullTextSearch(url)) {
77
+ return;
78
+ }
79
+
80
+ for (const item of event.params.items ?? []) {
81
+ const productId = item.item_id ?? item.item_variant;
82
+ const position = item.index;
83
+
84
+ if (productId && position) {
85
+ sendEvent({
86
+ type: 'search.click',
87
+ productId,
88
+ position,
89
+ url: url.href,
90
+ text: url.searchParams.get('q') ?? '<empty>'
91
+ });
92
+ }
93
+ }
94
+ };
95
+
96
+ setInterval(() => sendEvent({
97
+ type: 'session.ping'
98
+ }), 60 * 1e3
99
+ /* One minute */
100
+ );
101
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleEvent);
102
+
103
+ /***/ })
104
+
105
+ };
106
+ ;