@faststore/core 2.0.173-alpha.0 → 2.0.175-alpha.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 (183) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/CHANGELOG.md +6 -0
  3. package/package.json +4 -4
  4. package/src/components/navigation/Navbar/Navbar.tsx +37 -29
  5. package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +9 -9
  6. package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +23 -18
  7. package/src/components/sections/Alert/Alert.tsx +0 -1
  8. package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +13 -9
  9. package/src/components/sections/BannerNewsletter/section.module.scss +1 -1
  10. package/src/components/sections/BannerText/BannerText.tsx +31 -20
  11. package/src/components/sections/BannerText/Overrides.tsx +30 -0
  12. package/src/components/sections/BannerText/section.module.scss +1 -1
  13. package/src/components/sections/Breadcrumb/Overrides.tsx +27 -0
  14. package/src/components/sections/Hero/Hero.tsx +19 -13
  15. package/src/components/sections/Hero/Overrides.tsx +32 -0
  16. package/src/components/sections/Navbar/Navbar.tsx +6 -6
  17. package/src/components/sections/Navbar/Overrides.tsx +48 -0
  18. package/src/components/sections/ProductDetails/Overrides.tsx +13 -4
  19. package/src/components/sections/ProductDetails/ProductDetails.tsx +7 -7
  20. package/src/components/sections/ProductShelf/Overrides.tsx +34 -0
  21. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +14 -5
  22. package/src/components/ui/ProductDetails/ProductDetailsSettings.tsx +9 -8
  23. package/src/components/ui/ProductShelf/ProductShelf.tsx +26 -17
  24. package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +6 -5
  25. package/src/components/ui/SkuSelector/Selectors.tsx +6 -2
  26. package/src/customizations/components/CustomComponent.tsx +9 -0
  27. package/src/customizations/components/overrides/BannerText.tsx +15 -0
  28. package/src/customizations/components/overrides/Breadcrumb.tsx +15 -0
  29. package/src/customizations/components/overrides/Hero.tsx +16 -0
  30. package/src/customizations/components/overrides/Navbar.tsx +24 -0
  31. package/src/customizations/components/overrides/ProductDetails.tsx +6 -4
  32. package/src/customizations/components/overrides/ProductShelf.tsx +11 -5
  33. package/src/typings/overrides.d.ts +54 -17
  34. package/.next/BUILD_ID +0 -1
  35. package/.next/build-manifest.json +0 -123
  36. package/.next/cache/.tsbuildinfo +0 -1
  37. package/.next/cache/config.json +0 -7
  38. package/.next/cache/eslint/.cache_1gneedd +0 -1
  39. package/.next/cache/next-server.js.nft.json +0 -1
  40. package/.next/cache/webpack/client-production/0.pack +0 -0
  41. package/.next/cache/webpack/client-production/index.pack +0 -0
  42. package/.next/cache/webpack/server-production/0.pack +0 -0
  43. package/.next/cache/webpack/server-production/index.pack +0 -0
  44. package/.next/export-marker.json +0 -1
  45. package/.next/images-manifest.json +0 -1
  46. package/.next/next-server.js.nft.json +0 -1
  47. package/.next/package.json +0 -1
  48. package/.next/prerender-manifest.json +0 -1
  49. package/.next/react-loadable-manifest.json +0 -44
  50. package/.next/required-server-files.json +0 -1
  51. package/.next/routes-manifest.json +0 -1
  52. package/.next/server/chunks/123.js +0 -58
  53. package/.next/server/chunks/143.js +0 -106
  54. package/.next/server/chunks/183.js +0 -90
  55. package/.next/server/chunks/205.js +0 -692
  56. package/.next/server/chunks/247.js +0 -61
  57. package/.next/server/chunks/280.js +0 -324
  58. package/.next/server/chunks/287.js +0 -58
  59. package/.next/server/chunks/289.js +0 -229
  60. package/.next/server/chunks/312.js +0 -697
  61. package/.next/server/chunks/350.js +0 -143
  62. package/.next/server/chunks/368.js +0 -253
  63. package/.next/server/chunks/487.js +0 -9142
  64. package/.next/server/chunks/502.js +0 -626
  65. package/.next/server/chunks/576.js +0 -90
  66. package/.next/server/chunks/597.js +0 -211
  67. package/.next/server/chunks/650.js +0 -9142
  68. package/.next/server/chunks/676.js +0 -32
  69. package/.next/server/chunks/701.js +0 -87
  70. package/.next/server/chunks/74.js +0 -3819
  71. package/.next/server/chunks/82.js +0 -371
  72. package/.next/server/chunks/825.js +0 -4039
  73. package/.next/server/chunks/854.js +0 -72
  74. package/.next/server/chunks/859.js +0 -959
  75. package/.next/server/chunks/874.js +0 -487
  76. package/.next/server/chunks/886.js +0 -120
  77. package/.next/server/chunks/907.js +0 -1803
  78. package/.next/server/chunks/970.js +0 -200
  79. package/.next/server/chunks/98.js +0 -124
  80. package/.next/server/chunks/font-manifest.json +0 -1
  81. package/.next/server/font-manifest.json +0 -1
  82. package/.next/server/middleware-build-manifest.js +0 -1
  83. package/.next/server/middleware-manifest.json +0 -6
  84. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  85. package/.next/server/pages/404.js +0 -393
  86. package/.next/server/pages/404.js.nft.json +0 -1
  87. package/.next/server/pages/500.js +0 -395
  88. package/.next/server/pages/500.js.nft.json +0 -1
  89. package/.next/server/pages/[...slug].js +0 -786
  90. package/.next/server/pages/[...slug].js.nft.json +0 -1
  91. package/.next/server/pages/[slug]/p.js +0 -2532
  92. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  93. package/.next/server/pages/_app.js +0 -281
  94. package/.next/server/pages/_app.js.nft.json +0 -1
  95. package/.next/server/pages/_document.js +0 -340
  96. package/.next/server/pages/_document.js.nft.json +0 -1
  97. package/.next/server/pages/_error.js +0 -164
  98. package/.next/server/pages/_error.js.nft.json +0 -1
  99. package/.next/server/pages/account.js +0 -370
  100. package/.next/server/pages/account.js.nft.json +0 -1
  101. package/.next/server/pages/api/graphql.js +0 -365
  102. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  103. package/.next/server/pages/api/preview.js +0 -119
  104. package/.next/server/pages/api/preview.js.nft.json +0 -1
  105. package/.next/server/pages/checkout.js +0 -370
  106. package/.next/server/pages/checkout.js.nft.json +0 -1
  107. package/.next/server/pages/en-US/404.html +0 -81
  108. package/.next/server/pages/en-US/404.json +0 -1
  109. package/.next/server/pages/en-US/500.html +0 -81
  110. package/.next/server/pages/en-US/500.json +0 -1
  111. package/.next/server/pages/en-US/account.html +0 -81
  112. package/.next/server/pages/en-US/account.json +0 -1
  113. package/.next/server/pages/en-US/checkout.html +0 -81
  114. package/.next/server/pages/en-US/checkout.json +0 -1
  115. package/.next/server/pages/en-US/login.html +0 -81
  116. package/.next/server/pages/en-US/login.json +0 -1
  117. package/.next/server/pages/en-US/s.html +0 -81
  118. package/.next/server/pages/en-US/s.json +0 -1
  119. package/.next/server/pages/en-US.html +0 -81
  120. package/.next/server/pages/en-US.json +0 -1
  121. package/.next/server/pages/index.js +0 -966
  122. package/.next/server/pages/index.js.nft.json +0 -1
  123. package/.next/server/pages/login.js +0 -375
  124. package/.next/server/pages/login.js.nft.json +0 -1
  125. package/.next/server/pages/s.js +0 -473
  126. package/.next/server/pages/s.js.nft.json +0 -1
  127. package/.next/server/pages-manifest.json +0 -16
  128. package/.next/server/webpack-api-runtime.js +0 -229
  129. package/.next/server/webpack-runtime.js +0 -229
  130. package/.next/static/PhpKjbrX2m-wtpeOa39bI/_buildManifest.js +0 -1
  131. package/.next/static/PhpKjbrX2m-wtpeOa39bI/_ssgManifest.js +0 -1
  132. package/.next/static/chunks/0-82274e07cb857231.js +0 -1
  133. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  134. package/.next/static/chunks/240-8e66b2892f9d8c40.js +0 -1
  135. package/.next/static/chunks/460-08f41a79ff49f7be.js +0 -1
  136. package/.next/static/chunks/495.0ecd099878b2a36d.js +0 -1
  137. package/.next/static/chunks/502.ec90d1859d393d34.js +0 -1
  138. package/.next/static/chunks/597.f8d0595b113c70af.js +0 -1
  139. package/.next/static/chunks/64.ebbe1d2b40f980c7.js +0 -1
  140. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  141. package/.next/static/chunks/671-b9052a742f78868a.js +0 -1
  142. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  143. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  144. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  145. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  146. package/.next/static/chunks/pages/404-1d46047d84c70397.js +0 -1
  147. package/.next/static/chunks/pages/500-e0780a8c9c2b95b9.js +0 -1
  148. package/.next/static/chunks/pages/[...slug]-790467346ef6ea71.js +0 -1
  149. package/.next/static/chunks/pages/[slug]/p-cacfd98badcab1cc.js +0 -1
  150. package/.next/static/chunks/pages/_app-79d333aa6001a806.js +0 -1
  151. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  152. package/.next/static/chunks/pages/account-e2c5451023a787be.js +0 -1
  153. package/.next/static/chunks/pages/checkout-4f9386de28fa9bab.js +0 -1
  154. package/.next/static/chunks/pages/index-eed785c65060e408.js +0 -1
  155. package/.next/static/chunks/pages/login-2e426ab5bd8af906.js +0 -1
  156. package/.next/static/chunks/pages/s-8dbc6ab055ffb6b3.js +0 -1
  157. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  158. package/.next/static/chunks/webpack-d62f6560695a4b1b.js +0 -1
  159. package/.next/static/css/13a4da555ff5e3be.css +0 -1
  160. package/.next/static/css/23a9d5dfc051ec6e.css +0 -1
  161. package/.next/static/css/287f5ba239375052.css +0 -1
  162. package/.next/static/css/2e00f7ba49c754b3.css +0 -1
  163. package/.next/static/css/6e41f1b6078c14c1.css +0 -1
  164. package/.next/static/css/7d822a137c54a781.css +0 -1
  165. package/.next/static/css/c6f97f692b2efad9.css +0 -1
  166. package/.next/static/css/d4a0d9df8c6df555.css +0 -1
  167. package/.next/static/css/e02cdad8fc000339.css +0 -1
  168. package/.next/static/css/e2dad288b79896b9.css +0 -1
  169. package/.next/trace +0 -71
  170. package/public/~partytown/debug/partytown-atomics.js +0 -556
  171. package/public/~partytown/debug/partytown-media.js +0 -374
  172. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  173. package/public/~partytown/debug/partytown-sw.js +0 -59
  174. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  175. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  176. package/public/~partytown/debug/partytown.js +0 -72
  177. package/public/~partytown/partytown-atomics.js +0 -2
  178. package/public/~partytown/partytown-media.js +0 -2
  179. package/public/~partytown/partytown-sw.js +0 -2
  180. package/public/~partytown/partytown.js +0 -2
  181. package/src/components/ui/BannerText/BannerText.tsx +0 -69
  182. package/src/components/ui/BannerText/index.ts +0 -2
  183. package/src/components/ui/ProductShelf/Overrides.tsx +0 -10
@@ -1,58 +0,0 @@
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
- ;
@@ -1,106 +0,0 @@
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
- ;
@@ -1,90 +0,0 @@
1
- exports.id = 183;
2
- exports.ids = [183];
3
- exports.modules = {
4
-
5
- /***/ 97183:
6
- /***/ ((module) => {
7
-
8
- module.exports = {
9
- seo: {
10
- title: 'NextJSStore',
11
- description: 'Fast Demo Store',
12
- titleTemplate: '%s | FastStore',
13
- author: 'Store Framework'
14
- },
15
- // Theming
16
- theme: 'custom-theme',
17
- // Ecommerce Platform
18
- platform: 'vtex',
19
- // Platform specific configs for API
20
- api: {
21
- storeId: 'storeframework',
22
- workspace: 'master',
23
- environment: 'vtexcommercestable',
24
- hideUnavailableItems: true,
25
- incrementAddress: false
26
- },
27
- // Default session
28
- session: {
29
- currency: {
30
- code: 'USD',
31
- symbol: '$'
32
- },
33
- locale: 'en-US',
34
- channel: '{"salesChannel":"1","regionId":""}',
35
- country: 'USA',
36
- deliveryMode: null,
37
- addressType: null,
38
- postalCode: null,
39
- geoCoordinates: null,
40
- person: null
41
- },
42
- // Default cart
43
- cart: {
44
- id: '',
45
- items: [],
46
- messages: [],
47
- shouldSplitItem: true
48
- },
49
- // Production URLs
50
- storeUrl: 'https://vtexfaststore.com',
51
- secureSubdomain: 'https://secure.vtexfaststore.com',
52
- checkoutUrl: 'https://secure.vtexfaststore.com/checkout',
53
- loginUrl: 'https://secure.vtexfaststore.com/api/io/login',
54
- accountUrl: 'https://secure.vtexfaststore.com/api/io/account',
55
- // Preview redirects
56
- previewRedirects: {
57
- home: '/',
58
- plp: '/office',
59
- search: '/s?q=headphone',
60
- pdp: '/apple-magic-mouse/p'
61
- },
62
- // Lighthouse CI
63
- lighthouse: {
64
- server: process.env.BASE_SITE_URL || 'http://localhost:3000',
65
- pages: {
66
- home: '/',
67
- pdp: '/apple-magic-mouse/p',
68
- collection: '/office'
69
- }
70
- },
71
- // E2E CI
72
- cypress: {
73
- pages: {
74
- home: '/',
75
- pdp: '/apple-magic-mouse/p',
76
- collection: '/office',
77
- collection_filtered: '/office/?category-1=office&marca=acer&facets=category-1%2Cmarca',
78
- search: '/s?q=orange'
79
- }
80
- },
81
- analytics: {
82
- // https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,
83
- gtmContainerId: 'GTM-PGHZ95N'
84
- }
85
- };
86
-
87
- /***/ })
88
-
89
- };
90
- ;