@faststore/core 3.65.0 → 3.65.2

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 (81) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/routes-manifest.json +1 -1
  12. package/.next/server/chunks/2445.js +1 -22
  13. package/.next/server/chunks/{3412.js → 4168.js} +1 -1
  14. package/.next/server/chunks/9563.js +1 -1
  15. package/.next/server/chunks/9630.js +395 -0
  16. package/.next/server/functions-config-manifest.json +1 -1
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/pages/404.js +1 -1
  19. package/.next/server/pages/404.js.nft.json +1 -1
  20. package/.next/server/pages/500.js +1 -1
  21. package/.next/server/pages/500.js.nft.json +1 -1
  22. package/.next/server/pages/[...slug].js +1 -1
  23. package/.next/server/pages/[...slug].js.nft.json +1 -1
  24. package/.next/server/pages/[slug]/p.js +1 -1
  25. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  26. package/.next/server/pages/_app.js +1 -1
  27. package/.next/server/pages/_app.js.nft.json +1 -1
  28. package/.next/server/pages/_document.js +1 -1
  29. package/.next/server/pages/_document.js.nft.json +1 -1
  30. package/.next/server/pages/_error.js +1 -1
  31. package/.next/server/pages/_error.js.nft.json +1 -1
  32. package/.next/server/pages/account/403.js +1 -1
  33. package/.next/server/pages/account/403.js.nft.json +1 -1
  34. package/.next/server/pages/account/404.js +1 -1
  35. package/.next/server/pages/account/404.js.nft.json +1 -1
  36. package/.next/server/pages/account/[...unknown].js +1 -1
  37. package/.next/server/pages/account/[...unknown].js.nft.json +1 -1
  38. package/.next/server/pages/account/orders/[id].js +1 -1
  39. package/.next/server/pages/account/orders/[id].js.nft.json +1 -1
  40. package/.next/server/pages/account/orders.js +1 -1
  41. package/.next/server/pages/account/orders.js.nft.json +1 -1
  42. package/.next/server/pages/account/profile.js +1 -1
  43. package/.next/server/pages/account/profile.js.nft.json +1 -1
  44. package/.next/server/pages/account/security.js +1 -1
  45. package/.next/server/pages/account/security.js.nft.json +1 -1
  46. package/.next/server/pages/account/user-details.js +1 -1
  47. package/.next/server/pages/account/user-details.js.nft.json +1 -1
  48. package/.next/server/pages/account.js +1 -1
  49. package/.next/server/pages/account.js.nft.json +1 -1
  50. package/.next/server/pages/api/graphql.js +1 -1
  51. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  52. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  53. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  54. package/.next/server/pages/api/preview.js.nft.json +1 -1
  55. package/.next/server/pages/checkout.js +1 -1
  56. package/.next/server/pages/checkout.js.nft.json +1 -1
  57. package/.next/server/pages/en-US/404.html +2 -2
  58. package/.next/server/pages/en-US/500.html +2 -2
  59. package/.next/server/pages/en-US/checkout.html +2 -2
  60. package/.next/server/pages/en-US/login.html +2 -2
  61. package/.next/server/pages/en-US/s.html +2 -2
  62. package/.next/server/pages/en-US.html +2 -2
  63. package/.next/server/pages/index.js +1 -1
  64. package/.next/server/pages/index.js.nft.json +1 -1
  65. package/.next/server/pages/login.js +1 -1
  66. package/.next/server/pages/login.js.nft.json +1 -1
  67. package/.next/server/pages/s.js +1 -1
  68. package/.next/server/pages/s.js.nft.json +1 -1
  69. package/.next/server/pages-manifest.json +1 -1
  70. package/.next/static/chunks/pages/_app-1885a948b243078c.js +1 -0
  71. package/.next/trace +132 -131
  72. package/.turbo/turbo-build.log +31 -31
  73. package/.turbo/turbo-test.log +5 -5
  74. package/CHANGELOG.md +10 -0
  75. package/package.json +3 -3
  76. package/src/pages/_app.tsx +4 -1
  77. package/src/pages/_document.tsx +0 -2
  78. package/.next/server/chunks/6011.js +0 -374
  79. package/.next/static/chunks/pages/_app-1c533ab202b7acef.js +0 -1
  80. /package/.next/static/{czdZM7l3yYhwzU9FTEtWh → uTGLMZTZ3r9iTQ1Xoztdx}/_buildManifest.js +0 -0
  81. /package/.next/static/{czdZM7l3yYhwzU9FTEtWh → uTGLMZTZ3r9iTQ1Xoztdx}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.64.1 prebuild /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.65.1 prebuild /home/runner/work/faststore/faststore/packages/core
3
3
  > na run partytown && na run generate
4
4
 
5
5
 
6
- > @faststore/core@3.64.1 partytown /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@3.65.1 partytown /home/runner/work/faststore/faststore/packages/core
7
7
  > partytown copylib ./public/~partytown
8
8
 
9
9
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
10
10
 
11
- > @faststore/core@3.64.1 generate /home/runner/work/faststore/faststore/packages/core
11
+ > @faststore/core@3.65.1 generate /home/runner/work/faststore/faststore/packages/core
12
12
  > na run generate:schema && na run generate:codegen && na run format:generated
13
13
 
14
14
 
15
- > @faststore/core@3.64.1 generate:schema /home/runner/work/faststore/faststore/packages/core
15
+ > @faststore/core@3.65.1 generate:schema /home/runner/work/faststore/faststore/packages/core
16
16
  > tsx src/server/generator/generateGraphQLSchemaFile.ts
17
17
 
18
18
  Schema GraphQL file generated successfully
19
19
 
20
- > @faststore/core@3.64.1 generate:codegen /home/runner/work/faststore/faststore/packages/core
20
+ > @faststore/core@3.65.1 generate:codegen /home/runner/work/faststore/faststore/packages/core
21
21
  > graphql-codegen
22
22
 
23
23
  [STARTED] Parse Configuration
@@ -37,11 +37,11 @@ Running lifecycle hook "afterStart" scripts...
37
37
  [CLI] Loading Documents
38
38
  [CLI] Generating output
39
39
 
40
- > @faststore/core@3.64.1 format:generated /home/runner/work/faststore/faststore/packages/core
40
+ > @faststore/core@3.65.1 format:generated /home/runner/work/faststore/faststore/packages/core
41
41
  > prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
42
42
 
43
43
 
44
- > @faststore/core@3.64.1 build /home/runner/work/faststore/faststore/packages/core
44
+ > @faststore/core@3.65.1 build /home/runner/work/faststore/faststore/packages/core
45
45
  > next build
46
46
 
47
47
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
@@ -70,43 +70,43 @@ Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Cont
70
70
  Collecting build traces ...
71
71
 
72
72
  Route (pages) Size First Load JS
73
- ┌ ● / 3.87 kB 134 kB
73
+ ┌ ● / 3.87 kB 136 kB
74
74
  ├ └ css/b1806cbafd0c1f81.css 3.06 kB
75
- ├ /_app 0 B 100 kB
76
- ├ ● /[...slug] 2.38 kB 141 kB
77
- ├ ● /[slug]/p 32.4 kB 162 kB
75
+ ├ /_app 0 B 102 kB
76
+ ├ ● /[...slug] 2.38 kB 143 kB
77
+ ├ ● /[slug]/p 32.4 kB 164 kB
78
78
  ├ ├ css/a3ca6a9b63f657be.css 5.75 kB
79
79
  ├ ├ css/62a5153ac7061286.css 6.11 kB
80
80
  ├ └ css/6831395ff5fd317a.css 16.1 kB
81
- ├ ○ /404 1.48 kB 131 kB
82
- ├ ● /500 1.48 kB 131 kB
83
- ├ λ /account 240 B 101 kB
84
- ├ ● /account/[...unknown] 281 B 101 kB
85
- ├ λ /account/403 2.39 kB 132 kB
81
+ ├ ○ /404 1.48 kB 133 kB
82
+ ├ ● /500 1.48 kB 133 kB
83
+ ├ λ /account 240 B 103 kB
84
+ ├ ● /account/[...unknown] 281 B 103 kB
85
+ ├ λ /account/403 2.39 kB 134 kB
86
86
  ├ └ css/b7bba8fce075688b.css 4.2 kB
87
- ├ λ /account/404 2.07 kB 132 kB
87
+ ├ λ /account/404 2.07 kB 134 kB
88
88
  ├ └ css/5347dbc8b71de47d.css 4.25 kB
89
- ├ λ /account/orders 8.66 kB 139 kB
89
+ ├ λ /account/orders 8.66 kB 141 kB
90
90
  ├ └ css/8a3f440e0ff9cd8e.css 11.9 kB
91
- ├ λ /account/orders/[id] 11.9 kB 142 kB
91
+ ├ λ /account/orders/[id] 11.9 kB 144 kB
92
92
  ├ └ css/ba1d8927d8745656.css 12.6 kB
93
- ├ λ /account/profile 1.75 kB 132 kB
93
+ ├ λ /account/profile 1.75 kB 134 kB
94
94
  ├ └ css/831a1f72fe4b2d80.css 3.97 kB
95
- ├ λ /account/security 2.44 kB 132 kB
95
+ ├ λ /account/security 2.44 kB 134 kB
96
96
  ├ └ css/32b1696118552960.css 5.19 kB
97
- ├ λ /account/user-details 1.7 kB 132 kB
97
+ ├ λ /account/user-details 1.7 kB 134 kB
98
98
  ├ └ css/e46393a76c5d93a9.css 4.17 kB
99
- ├ λ /api/graphql 0 B 100 kB
100
- ├ λ /api/health/live 0 B 100 kB
101
- ├ λ /api/health/ready 0 B 100 kB
102
- ├ λ /api/preview 0 B 100 kB
103
- ├ ● /checkout 696 B 131 kB
104
- ├ ● /login 1.59 kB 131 kB
105
- └ ● /s 3.16 kB 142 kB
106
- + First Load JS shared by all 104 kB
99
+ ├ λ /api/graphql 0 B 102 kB
100
+ ├ λ /api/health/live 0 B 102 kB
101
+ ├ λ /api/health/ready 0 B 102 kB
102
+ ├ λ /api/preview 0 B 102 kB
103
+ ├ ● /checkout 696 B 133 kB
104
+ ├ ● /login 1.59 kB 134 kB
105
+ └ ● /s 3.16 kB 144 kB
106
+ + First Load JS shared by all 106 kB
107
107
  ├ chunks/framework-807b0f81cbc129f0.js 45.4 kB
108
108
  ├ chunks/main-f658704b53a96ab1.js 33.1 kB
109
- ├ chunks/pages/_app-1c533ab202b7acef.js 18.2 kB
109
+ ├ chunks/pages/_app-1885a948b243078c.js 20.2 kB
110
110
  ├ chunks/webpack-a24b8ac1ca628dfe.js 3.76 kB
111
111
  └ css/0a57ee6c7a57788c.css 3.49 kB
112
112
 
@@ -1,14 +1,14 @@
1
1
 
2
- > @faststore/core@3.64.1 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.65.1 test /home/runner/work/faststore/faststore/packages/core
3
3
  > jest
4
4
 
5
- PASS test/utils/multipleTemplates.test.ts (25.013 s)
6
- PASS test/server/cms/global.test.ts (25.425 s)
5
+ PASS test/utils/multipleTemplates.test.ts (24.937 s)
6
+ PASS test/server/cms/global.test.ts (25.854 s)
7
7
  PASS test/server/cms/index.test.ts
8
- PASS test/server/index.test.ts (29.551 s)
8
+ PASS test/server/index.test.ts (30.5 s)
9
9
 
10
10
  Test Suites: 4 passed, 4 total
11
11
  Tests: 22 passed, 22 total
12
12
  Snapshots: 0 total
13
- Time: 30.76 s
13
+ Time: 31.703 s
14
14
  Ran all test suites.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.65.2](https://github.com/vtex/faststore/compare/v3.65.1...v3.65.2) (2025-07-22)
7
+
8
+ ### Bug Fixes
9
+
10
+ - duplicated meta tags ([#2947](https://github.com/vtex/faststore/issues/2947)) ([4934609](https://github.com/vtex/faststore/commit/4934609cca34b1e5e7c843a4bd61fb851e954f03))
11
+
12
+ ## [3.65.1](https://github.com/vtex/faststore/compare/v3.65.0...v3.65.1) (2025-07-17)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
6
16
  # [3.65.0](https://github.com/vtex/faststore/compare/v3.64.1...v3.65.0) (2025-07-16)
7
17
 
8
18
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.65.0",
3
+ "version": "3.65.2",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -44,7 +44,7 @@
44
44
  "@envelop/graphql-jit": "^8.0.3",
45
45
  "@envelop/parser-cache": "^6.0.2",
46
46
  "@envelop/validation-cache": "^6.0.2",
47
- "@faststore/api": "^3.65.0",
47
+ "@faststore/api": "^3.65.1",
48
48
  "@faststore/graphql-utils": "^3.56.1",
49
49
  "@faststore/lighthouse": "^3.56.1",
50
50
  "@faststore/sdk": "^3.63.0",
@@ -107,5 +107,5 @@
107
107
  "ts-jest": "29.1.1",
108
108
  "typescript": "5.3.2"
109
109
  },
110
- "gitHead": "1dea73f0a9afa63aa0edcc3eb8433bd1155f3e74"
110
+ "gitHead": "fc92f046aaa199da3d0b6a704ed9dcd22ef2da1d"
111
111
  }
@@ -1,5 +1,6 @@
1
1
  import { UIProvider } from '@faststore/ui'
2
2
  import type { AppProps } from 'next/app'
3
+ import ThirdPartyScripts from 'src/components/ThirdPartyScripts'
3
4
  import Layout from 'src/Layout'
4
5
  import AnalyticsHandler from 'src/sdk/analytics'
5
6
  import ErrorBoundary from 'src/sdk/error/ErrorBoundary'
@@ -9,9 +10,10 @@ import SEO from '../../next-seo.config'
9
10
  // FastStore UI's base styles
10
11
  import '../styles/main.scss'
11
12
 
13
+ import { useSearch } from '@faststore/sdk'
12
14
  import { DefaultSeo } from 'next-seo'
15
+ import Head from 'next/head'
13
16
  import { useRouter } from 'next/router'
14
- import { useSearch } from '@faststore/sdk'
15
17
  import { ITEMS_PER_PAGE } from 'src/constants'
16
18
 
17
19
  function App({ Component, pageProps }: AppProps) {
@@ -25,6 +27,7 @@ function App({ Component, pageProps }: AppProps) {
25
27
 
26
28
  return (
27
29
  <ErrorBoundary>
30
+ <Head> {!process.env.DISABLE_3P_SCRIPTS && <ThirdPartyScripts />}</Head>
28
31
  <DefaultSeo {...SEO} />
29
32
 
30
33
  <AnalyticsHandler />
@@ -1,7 +1,6 @@
1
1
  import { Head, Html, Main, NextScript } from 'next/document'
2
2
  import storeConfig from '../../discovery.config'
3
3
 
4
- import ThirdPartyScripts from 'src/components/ThirdPartyScripts'
5
4
  import { WebFonts } from 'src/customizations/src/GlobalOverrides'
6
5
 
7
6
  function Document() {
@@ -17,7 +16,6 @@ function Document() {
17
16
  href={`https://${storeConfig.api.storeId}.vtexassets.com`}
18
17
  />
19
18
  <meta name="storefront" content="fast_store" />
20
- {!process.env.DISABLE_3P_SCRIPTS && <ThirdPartyScripts />}
21
19
  <WebFonts />
22
20
  </Head>
23
21
  <body className="theme">
@@ -1,374 +0,0 @@
1
- exports.id=6011,exports.ids=[6011],exports.modules={25487:(e,t,r)=>{"use strict";r.d(t,{$G:()=>D,Ce:()=>j,D5:()=>y,Fs:()=>b,HZ:()=>_,Hk:()=>p,M:()=>C,Pq:()=>I,UZ:()=>u,Ud:()=>o,VA:()=>P,Yz:()=>l,bi:()=>v,fW:()=>g,fh:()=>n,gN:()=>h,gU:()=>S,hM:()=>c,j9:()=>a,lZ:()=>E,pR:()=>O,pi:()=>i,rd:()=>f,sE:()=>s,vX:()=>d,vt:()=>m,wA:()=>w});let TypedDocumentString=class TypedDocumentString extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t,function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(this,"__apiType",void 0)}toString(){return this.value}};new TypedDocumentString(`
2
- fragment ProductSummary_product on StoreProduct {
3
- id: productID
4
- slug
5
- sku
6
- brand {
7
- brandName: name
8
- }
9
- name
10
- gtin
11
- unitMultiplier
12
- isVariantOf {
13
- productGroupID
14
- name
15
- skuVariants {
16
- allVariantsByName
17
- activeVariations
18
- slugsMap
19
- availableVariations
20
- }
21
- }
22
- image {
23
- url
24
- alternateName
25
- }
26
- brand {
27
- name
28
- }
29
- offers {
30
- lowPrice
31
- lowPriceWithTaxes
32
- offers {
33
- availability
34
- price
35
- listPrice
36
- listPriceWithTaxes
37
- priceWithTaxes
38
- quantity
39
- seller {
40
- identifier
41
- }
42
- }
43
- }
44
- additionalProperty {
45
- propertyID
46
- name
47
- value
48
- valueReference
49
- }
50
- advertisement {
51
- adId
52
- adResponseId
53
- }
54
- }
55
- `,{fragmentName:"ProductSummary_product"});let a=new TypedDocumentString(`
56
- fragment Filter_facets on StoreFacet {
57
- ... on StoreFacetRange {
58
- key
59
- label
60
- min {
61
- selected
62
- absolute
63
- }
64
- max {
65
- selected
66
- absolute
67
- }
68
- __typename
69
- }
70
- ... on StoreFacetBoolean {
71
- key
72
- label
73
- values {
74
- label
75
- value
76
- selected
77
- quantity
78
- }
79
- __typename
80
- }
81
- }
82
- `,{fragmentName:"Filter_facets"});new TypedDocumentString(`
83
- fragment CartProductItem on StoreProduct {
84
- sku
85
- name
86
- unitMultiplier
87
- image {
88
- url
89
- alternateName
90
- }
91
- brand {
92
- name
93
- }
94
- isVariantOf {
95
- productGroupID
96
- name
97
- skuVariants {
98
- activeVariations
99
- slugsMap
100
- availableVariations
101
- }
102
- }
103
- gtin
104
- additionalProperty {
105
- propertyID
106
- name
107
- value
108
- valueReference
109
- }
110
- }
111
- `,{fragmentName:"CartProductItem"}),new TypedDocumentString(`
112
- fragment ProductDetailsFragment_product on StoreProduct {
113
- id: productID
114
- sku
115
- name
116
- gtin
117
- description
118
- unitMultiplier
119
- isVariantOf {
120
- name
121
- productGroupID
122
- skuVariants {
123
- activeVariations
124
- slugsMap
125
- availableVariations
126
- }
127
- }
128
- image {
129
- url
130
- alternateName
131
- }
132
- brand {
133
- name
134
- }
135
- offers {
136
- lowPrice
137
- lowPriceWithTaxes
138
- offers {
139
- availability
140
- price
141
- priceWithTaxes
142
- listPrice
143
- listPriceWithTaxes
144
- seller {
145
- identifier
146
- }
147
- }
148
- }
149
- additionalProperty {
150
- propertyID
151
- name
152
- value
153
- valueReference
154
- }
155
- ...CartProductItem
156
- }
157
- fragment CartProductItem on StoreProduct {
158
- sku
159
- name
160
- unitMultiplier
161
- image {
162
- url
163
- alternateName
164
- }
165
- brand {
166
- name
167
- }
168
- isVariantOf {
169
- productGroupID
170
- name
171
- skuVariants {
172
- activeVariations
173
- slugsMap
174
- availableVariations
175
- }
176
- }
177
- gtin
178
- additionalProperty {
179
- propertyID
180
- name
181
- value
182
- valueReference
183
- }
184
- }`,{fragmentName:"ProductDetailsFragment_product"});let o=new TypedDocumentString(`
185
- fragment ProductSKUMatrixSidebarFragment_product on StoreProduct {
186
- id: productID
187
- isVariantOf {
188
- name
189
- productGroupID
190
- skuVariants {
191
- activeVariations
192
- slugsMap
193
- availableVariations
194
- allVariantProducts {
195
- sku
196
- name
197
- image {
198
- url
199
- alternateName
200
- }
201
- offers {
202
- highPrice
203
- lowPrice
204
- lowPriceWithTaxes
205
- offerCount
206
- priceCurrency
207
- offers {
208
- listPrice
209
- listPriceWithTaxes
210
- sellingPrice
211
- priceCurrency
212
- price
213
- priceWithTaxes
214
- priceValidUntil
215
- itemCondition
216
- availability
217
- quantity
218
- }
219
- }
220
- additionalProperty {
221
- propertyID
222
- value
223
- name
224
- valueReference
225
- }
226
- }
227
- }
228
- }
229
- }
230
- `,{fragmentName:"ProductSKUMatrixSidebarFragment_product"});new TypedDocumentString(`
231
- fragment ClientManyProducts on Query {
232
- search(
233
- first: $first
234
- after: $after
235
- sort: $sort
236
- term: $term
237
- selectedFacets: $selectedFacets
238
- sponsoredCount: $sponsoredCount
239
- ) {
240
- products {
241
- pageInfo {
242
- totalCount
243
- }
244
- }
245
- }
246
- }
247
- `,{fragmentName:"ClientManyProducts"}),new TypedDocumentString(`
248
- fragment ClientProduct on Query {
249
- product(locator: $locator) {
250
- id: productID
251
- }
252
- }
253
- `,{fragmentName:"ClientProduct"}),new TypedDocumentString(`
254
- fragment ClientProductGallery on Query {
255
- search(
256
- first: $first
257
- after: $after
258
- sort: $sort
259
- term: $term
260
- selectedFacets: $selectedFacets
261
- ) {
262
- products {
263
- pageInfo {
264
- totalCount
265
- }
266
- }
267
- }
268
- }
269
- `,{fragmentName:"ClientProductGallery"}),new TypedDocumentString(`
270
- fragment ClientSearchSuggestions on Query {
271
- search(first: 5, term: $term, selectedFacets: $selectedFacets) {
272
- suggestions {
273
- terms {
274
- value
275
- }
276
- }
277
- }
278
- }
279
- `,{fragmentName:"ClientSearchSuggestions"}),new TypedDocumentString(`
280
- fragment ClientShippingSimulation on Query {
281
- shipping(items: $items, postalCode: $postalCode, country: $country) {
282
- address {
283
- city
284
- }
285
- }
286
- }
287
- `,{fragmentName:"ClientShippingSimulation"}),new TypedDocumentString(`
288
- fragment ClientTopSearchSuggestions on Query {
289
- search(first: 5, term: $term, selectedFacets: $selectedFacets) {
290
- suggestions {
291
- terms {
292
- value
293
- }
294
- }
295
- }
296
- }
297
- `,{fragmentName:"ClientTopSearchSuggestions"}),new TypedDocumentString(`
298
- fragment ServerCollectionPage on Query {
299
- collection(slug: $slug) {
300
- id
301
- }
302
- }
303
- `,{fragmentName:"ServerCollectionPage"}),new TypedDocumentString(`
304
- fragment ServerProduct on Query {
305
- product(locator: $locator) {
306
- id: productID
307
- }
308
- }
309
- `,{fragmentName:"ServerProduct"});let n=new TypedDocumentString(`
310
- fragment UserOrderItemsFragment on UserOrderItems {
311
- id
312
- name
313
- quantity
314
- sellingPrice
315
- unitMultiplier
316
- measurementUnit
317
- imageUrl
318
- detailUrl
319
- refId
320
- rewardValue
321
- }
322
- `,{fragmentName:"UserOrderItemsFragment"});new TypedDocumentString(`
323
- fragment CartMessage on StoreCartMessage {
324
- text
325
- status
326
- }
327
- `,{fragmentName:"CartMessage"}),new TypedDocumentString(`
328
- fragment CartItem on StoreOffer {
329
- seller {
330
- identifier
331
- }
332
- quantity
333
- price
334
- priceWithTaxes
335
- listPrice
336
- listPriceWithTaxes
337
- itemOffered {
338
- ...CartProductItem
339
- }
340
- }
341
- fragment CartProductItem on StoreProduct {
342
- sku
343
- name
344
- unitMultiplier
345
- image {
346
- url
347
- alternateName
348
- }
349
- brand {
350
- name
351
- }
352
- isVariantOf {
353
- productGroupID
354
- name
355
- skuVariants {
356
- activeVariations
357
- slugsMap
358
- availableVariations
359
- }
360
- }
361
- gtin
362
- additionalProperty {
363
- propertyID
364
- name
365
- value
366
- valueReference
367
- }
368
- }`,{fragmentName:"CartItem"}),new TypedDocumentString(`
369
- fragment SearchEvent_metadata on SearchMetadata {
370
- isTermMisspelled
371
- logicalOperator
372
- fuzzy
373
- }
374
- `,{fragmentName:"SearchEvent_metadata"});let i={__meta__:{operationName:"ServerAccountPageQuery",operationHash:"47315a3cd26ddd9c7fa963778988464341b8193f"}},s={__meta__:{operationName:"ServerCollectionPageQuery",operationHash:"4b33c5c07f440dc7489e55619dc2211a13786e72"}},c={__meta__:{operationName:"ServerProductQuery",operationHash:"46103bee661405bde706d72126fdbf9b0a0c9e6e"}},l={__meta__:{operationName:"ServerOrderDetailsQuery",operationHash:"4758ccbf776bfa5d9b9f15f92bee6ecb78706b20"}},d={__meta__:{operationName:"ServerListOrdersQuery",operationHash:"ee84ac3f5b58c5e1950a927a42c5c1dd6012fcc4"}},u={__meta__:{operationName:"ServerProfileQuery",operationHash:"0ed4b5db8fed122d8418195d01fb91b30261d587"}},p={__meta__:{operationName:"ServerSecurityQuery",operationHash:"9f24767f16e6e05c168336701a6c6c7b6b5dc1c6"}},m={__meta__:{operationName:"ServerUserDetailsQuery",operationHash:"522e5feeb80e67cee931bc98eac9d08ea75c75d2"}},f={__meta__:{operationName:"CancelOrderMutation",operationHash:"e2b06da6840614d3c72768e56579b9d3b8e80802"}},b={__meta__:{operationName:"ProcessOrderAuthorizationMutation",operationHash:"8c25d37c8d6e7c20ab21bb8a4f4e6a2fe320ea8d"}},g={__meta__:{operationName:"ValidateUser",operationHash:"32f99c73c3de958b64d6bece1afe800469f54548"}},y={__meta__:{operationName:"ValidateCartMutation",operationHash:"c2b3f8bff73ebf6ac79d758c66cabbc21ba9fcc0"}},_={__meta__:{operationName:"SubscribeToNewsletter",operationHash:"feb7005103a859e2bc8cf2360d568806fd88deba"}},v={__meta__:{operationName:"ClientProductCountQuery",operationHash:"dc912e7272e3d9f5ced206837df87f544d39d0a5"}},h={__meta__:{operationName:"ClientAllVariantProductsQuery",operationHash:"4039e05f01a2fe449e20e8b82170d0ba94b1fbe9"}},S={__meta__:{operationName:"ClientManyProductsQuery",operationHash:"1adc93c70f16173540c50f725ee09a2d67cb85ab"}},P={__meta__:{operationName:"ClientProductGalleryQuery",operationHash:"bfc40da32b60f9404a4adb96b0856e3fbb04b076"}},w={__meta__:{operationName:"ClientProductQuery",operationHash:"7d121ef8d4dc99174e64e4429a9b977b8bbebed8"}},O={__meta__:{operationName:"ClientProfileQuery",operationHash:"34ea14c0d4a57ddf9bc11e4be0cd2b5a6506d3d4"}},j={__meta__:{operationName:"ClientSearchSuggestionsQuery",operationHash:"b548281d477a173be7b6960434604d69769a97e7"}},C={__meta__:{operationName:"ClientTopSearchSuggestionsQuery",operationHash:"e2385b0f11726d0068f96548f57a8dd441c064e3"}},D={__meta__:{operationName:"ValidateSession",operationHash:"259dd10b1c65ce4b20c9181feb7bec85ecb402e6"}},I={__meta__:{operationName:"ClientShippingSimulationQuery",operationHash:"c35bad22f67f3eb34fea52bb49efa6b1da6b728d"}},E={__meta__:{operationName:"ServerManyProductsQuery",operationHash:"5c2181dde311ca80b72e0cc76ac0855d8aa8b51e"}}},45011:(e,t,r)=>{"use strict";r.d(t,{A:()=>l,Z:()=>c});var a=r(43412),o=r.n(a);let n=new Date().toISOString(),i=Date.now(),s={norobots:o().experimental.noRobots,dangerouslySetAllPagesToNoFollow:o().experimental.nofollow,dangerouslySetAllPagesToNoIndex:o().experimental.noindex,additionalMetaTags:[{name:"generated-at",content:n}]},c=s,l=i},16422:(e,t,r)=>{"use strict";r.d(t,{g:()=>useRegionModal});var a=r(16652),o=r(43412),n=r(16689),i=r(70031);function useRegionModal(){let{openModal:e}=(0,a.l)(),{isValidating:t}=(0,i.kP)(),r=(0,n.useRef)(t),{0:s,1:c}=(0,n.useState)(!1),openRegionModal=()=>{let{postalCode:t}=i.Qf.read();t||e()};return(0,n.useEffect)(()=>{o.deliveryPromise.enabled&&(r.current&&!t&&(c(!0),o.deliveryPromise.mandatory&&openRegionModal()),r.current=t)},[openRegionModal]),{openRegionModal,isValidationComplete:s}}},98132:(e,t,r)=>{"use strict";r.d(t,{KS:()=>o,YQ:()=>n,gK:()=>a});let a=12,o=5,n=3e3},46011:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>_app});var a=r(16652),o=r(16689),n=r(16422),i=r(33339);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}let usePageViewEvent=e=>{let t=(0,o.useCallback)(()=>{Promise.all([r.e(2792),r.e(6393)]).then(r.bind(r,66393)).then(({sendAnalyticsEvent:t})=>{t({name:"page_view",params:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({page_title:document.title,page_location:location.href,send_page_view:!0},e)})})},[e]),a=(0,i.useRouter)();return(0,o.useEffect)(()=>{t()},[a.pathname,t]),{sendPageViewEvent:t}};var s=r(20997);let src_Layout=function({children:e}){let t=(0,o.useMemo)(()=>e?.props,[]);return usePageViewEvent(t),(0,n.g)(),s.jsx(s.Fragment,{children:e})};var c=r(28529),l=r(43412),d=r.n(l);function analytics_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}let analytics=()=>((0,c.W)(e=>{window.dataLayer.push({ecommerce:null});let t=e.isEcommerceEvent?{event:e.name,ecommerce:e.params}:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?analytics_ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):analytics_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({event:e.name},e.params);window.dataLayer.push(t),r(73982)(`./${d().platform}`).then(({default:t})=>{t(e)})}),null),getReloads=()=>Number(window.sessionStorage.getItem("store:reloads")??"0"),setReloads=e=>window.sessionStorage.setItem("store:reloads",`${e}`),canRecover=()=>2>getReloads(),isFrameworkLevelError=e=>e?.name==="ChunkLoadError";let ErrorBoundary=class ErrorBoundary extends o.Component{constructor(...e){super(...e),function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){if(console.error(`React Error: ${e.message} ${t.componentStack}`),window.location.pathname.startsWith("/404")||window.location.pathname.startsWith("/500"))return;let r=encodeURIComponent(window.location.pathname),a=e?.extensions?.exception?.status===404;isFrameworkLevelError(e)&&canRecover()?(setReloads(getReloads()+1),window.location.reload()):a?window.location.href=`/404?from=${r}`:window.location.href=`/500?from=${r}&errorId=unknown`}render(){return this.state.hasError?null:this.props.children}};var u=r(98132),p=r(70031);function useGeolocation_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function useGeolocation_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?useGeolocation_ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):useGeolocation_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}async function askGeolocationConsent(){let{postalCode:e,geoCoordinates:t}=p.Qf.read();!navigator?.geolocation||e&&t||navigator.geolocation.getCurrentPosition(async({coords:{latitude:e,longitude:t}})=>{let r=p.Qf.read();if(r.postalCode||r.geoCoordinates)return;let a=useGeolocation_objectSpread(useGeolocation_objectSpread({},r),{},{geoCoordinates:{latitude:e,longitude:t}}),o=await (0,p.je)(a);p.Qf.set(o??a)})}var m=r(45011);r(45276);var f=r(16641),b=r(69029);function _app_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _app_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_app_ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_app_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let _app=function({Component:e,pageProps:t}){let{key:r}=t;(0,o.useEffect)(()=>{l.deliveryPromise.enabled&&setTimeout(()=>askGeolocationConsent(),u.YQ)},[]);let n=(0,i.useRouter)(),{start:c}=(0,b.R)();return c(n.asPath,{itemsPerPage:u.gK}),(0,s.jsxs)(ErrorBoundary,{children:[s.jsx(f.DefaultSeo,_app_objectSpread({},m.Z)),s.jsx(analytics,{}),s.jsx(a.Z,{children:s.jsx(src_Layout,{children:(0,o.createElement)(e,_app_objectSpread(_app_objectSpread({},t),{},{key:r}))})})]})}},71041:(e,t,r)=>{"use strict";r.d(t,{i8:()=>b,jD:()=>useCart});var a=r(25487),o=r(29380),n=r(16689),i=r(43412),s=r.n(i),c=r(57440),l=r(70031),d=r(50135);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let u=a.D5,isGift=e=>0===e.price,getItemId=e=>[e.itemOffered.sku,e.seller.identifier,e.itemOffered.additionalProperty?.map(({propertyID:e})=>e).join("-")].filter(Boolean).join("::"),validateCart=async e=>{let{validateCart:t=null}=await (0,c.W)(u,{session:l.Qf.read(),cart:{order:{orderNumber:e.id,shouldSplitItem:e.shouldSplitItem,acceptedOffer:e.items.map(({price:e,listPrice:t,seller:r,quantity:a,itemOffered:o})=>({price:e,listPrice:t,seller:r,quantity:a,itemOffered:{sku:o.sku,image:o.image,name:o.name,additionalProperty:o.additionalProperty}}))}}});return t&&{id:t.order.orderNumber,items:t.order.acceptedOffer.map(e=>_objectSpread(_objectSpread({},e),{},{id:getItemId(e)})),messages:t.messages,shouldSplitItem:t.order.shouldSplitItem}},[p,m]=(0,d.d)(validateCart),f=(0,o.n)(s().cart,m),b=_objectSpread(_objectSpread({},f),{},{addItem:e=>{let t=_objectSpread(_objectSpread({},e),{},{id:getItemId(e)});f.addItem(t)}}),useCart=({useUnitMultiplier:e}={useUnitMultiplier:!1})=>{let t=(0,d.o)(b),r=(0,d.o)(p);return(0,n.useMemo)(()=>{let a=t.items.reduce((t,r)=>{t.total+=r.price*r.quantity,t.totalWithTaxes+=r.priceWithTaxes*r.quantity;let a=e?r.quantity*(r?.itemOffered?.unitMultiplier??1):r.quantity;return t.totalItems+=isGift(r)?0:a,t.subTotal+=r.listPrice*a,t.subTotalWithTaxes+=r.listPriceWithTaxes*a,t},{totalItems:0,total:0,subTotal:0,totalWithTaxes:0,subTotalWithTaxes:0});return _objectSpread(_objectSpread(_objectSpread({},t),a),{},{isValidating:r,messages:t.messages,gifts:t.items.filter(e=>isGift(e)),items:t.items.filter(e=>!isGift(e)),totalUniqueItems:t.items.length})},[t,r,e])}},57440:(e,t,r)=>{"use strict";function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}r.d(t,{W:()=>request});let a={POST:{"Content-Type":"application/json"}},request=async(e,t,r)=>{let{data:a,errors:o}=await baseRequest("/api/graphql",_objectSpread(_objectSpread({},r),{},{variables:t,operation:e}));if(o?.length)throw o[0];return a},baseRequest=async(e,{operation:t,variables:r,fetchOptions:o})=>{let{operationName:n,operationHash:i}=t.__meta__,s=o?.method!==void 0?o.method.toUpperCase():n.endsWith("Query")?"GET":"POST",c=new URLSearchParams(_objectSpread({operationName:n,operationHash:i},"GET"===s&&{variables:JSON.stringify(r)})),l="POST"===s?JSON.stringify({operationName:n,operationHash:i,variables:r}):void 0,d=`${e}?${c.toString()}`,u=await fetch(d,_objectSpread(_objectSpread({method:s,body:l},o),{},{headers:_objectSpread(_objectSpread({},a[s]),o?.headers)}));return u.json()}},70031:(e,t,r)=>{"use strict";r.d(t,{Qf:()=>_,kP:()=>useSession,je:()=>validateSession});var a=r(25487),o=r(88987),n=r(16689),i=r(43412),s=r.n(i),c=r(71041),l=r(57440);let d=a.pR,getAddresses=async e=>{let t=await (0,l.W)(d,{id:e});return t.profile.addresses},getSavedAddress=async e=>{let t=await getAddresses(e);return t?t[0]:null};var u=r(50135);let p=["channel"],m=["hasOnlyDefaultSalesChannel"];function _objectWithoutProperties(e,t){if(null==e)return{};var r,a,o=function(e,t){if(null==e)return{};var r,a,o={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var a;a=r[t],t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let f=a.$G,validateSession=async e=>{if(s().deliveryPromise?.enabled&&!e.postalCode){if(e.b2b&&e.b2b?.savedPostalCode)_.set(_objectSpread(_objectSpread({},e),{},{postalCode:e.b2b.savedPostalCode}));else if(e.person?.id){let t=await getSavedAddress(e.person?.id);t&&_.set(_objectSpread(_objectSpread({},e),{},{city:t?.city,postalCode:t?.postalCode,geoCoordinates:{latitude:t?.geoCoordinate?t?.geoCoordinate[1]:null,longitude:t?.geoCoordinate?t?.geoCoordinate[0]:null},country:t?.country}))}else{let t=y.readInitial().postalCode;t&&_.set(_objectSpread(_objectSpread({},e),{},{postalCode:t}))}}let t=await (0,l.W)(f,{session:e,search:window.location.search});return t.validateSession},[b,g]=(0,u.d)(validateSession),y=(0,o.S)(s().session,g),_=_objectSpread(_objectSpread({},y),{},{set:e=>{y.set(e),c.i8.set(c.i8.read())}}),useSession=({filter:e}={filter:!0})=>{let t=(0,u.o)(_),{channel:r}=t,a=_objectWithoutProperties(t,p),o=(0,u.o)(b);if(e){let e=JSON.parse(r),{hasOnlyDefaultSalesChannel:t}=e,a=_objectWithoutProperties(e,m);r=JSON.stringify(a)}return(0,n.useMemo)(()=>_objectSpread(_objectSpread({},a),{},{channel:r,isValidating:o}),[o,a,r])}},50135:(e,t,r)=>{"use strict";r.d(t,{d:()=>createValidationStore,o:()=>useStore});var a=r(73365),o=r(16689);let useStore=e=>(0,o.useSyncExternalStore)(e.subscribe,e.read,e.readInitial),createValidationStore=e=>{let t=(0,a.M)(!1),onValidate=async r=>{try{return t.set(!0),await e(r)}finally{t.set(!1)}};return[t,onValidate]}},45276:()=>{},16652:(e,t,r)=>{"use strict";r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__,l:()=>useUI});var a=r(16689),o=r.n(a);let reducer=(e,t)=>{let{type:r}=t;switch(r){case"open":{let{payload:r}=t;return document.body.classList.add("no-scroll"),{...e,[r]:!0}}case"close":{let{payload:r}=t;return document.body.classList.remove("no-scroll"),{...e,[r]:!1}}case"pushToast":{let r=e.toasts.some(e=>e.message===t.payload.message&&e.status===t.payload.status);if(r)return e;return{...e,toasts:[...e.toasts,t.payload]}}case"popToast":return{...e,toasts:e.toasts.slice(1)};case"openPopover":return{...e,popover:{isOpen:!0,triggerRef:t.payload.triggerRef}};case"closePopover":return{...e,popover:{isOpen:!1,triggerRef:void 0}};default:throw Error(`Action ${r} not implemented`)}},initializer=()=>({cart:!1,modal:!1,navbar:!1,filter:!1,toasts:[],popover:{isOpen:!1,triggerRef:void 0}}),n=(0,a.createContext)(void 0);function useUI(){let e=(0,a.useContext)(n);if(void 0===e)throw Error("Missing UI context on React tree");return e}let __WEBPACK_DEFAULT_EXPORT__=function({children:e}){let[t,r]=(0,a.useReducer)(reducer,void 0,initializer),i=(0,a.useMemo)(()=>({openFilter:()=>r({type:"open",payload:"filter"}),closeFilter:()=>r({type:"close",payload:"filter"}),openNavbar:()=>r({type:"open",payload:"navbar"}),closeNavbar:()=>r({type:"close",payload:"navbar"}),openCart:()=>r({type:"open",payload:"cart"}),closeCart:()=>r({type:"close",payload:"cart"}),openModal:()=>r({type:"open",payload:"modal"}),closeModal:()=>r({type:"close",payload:"modal"}),pushToast:e=>r({type:"pushToast",payload:e}),popToast:()=>r({type:"popToast"}),openPopover:e=>r({type:"openPopover",payload:e}),closePopover:()=>r({type:"closePopover"})}),[]),s=(0,a.useMemo)(()=>({...t,...i}),[i,t]);return o().createElement(n.Provider,{value:s},e)}},73982:(e,t,r)=>{var a={"./vtex":[7692,4365,7692],"./vtex/":[7692,4365,7692],"./vtex/index":[7692,4365,7692],"./vtex/index.ts":[7692,4365,7692],"./vtex/rc":[38068,8068],"./vtex/rc.ts":[38068,8068],"./vtex/search":[4365,4365],"./vtex/search.ts":[4365,4365]};function webpackAsyncContext(e){if(!r.o(a,e))return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=a[e],o=t[0];return Promise.all(t.slice(1).map(r.e)).then(()=>r(o))}webpackAsyncContext.keys=()=>Object.keys(a),webpackAsyncContext.id=73982,e.exports=webpackAsyncContext},28529:(e,t,r)=>{"use strict";r.d(t,{W:()=>useAnalyticsEvent});var a=r(16689),o=r(14950);let useAnalyticsEvent=e=>{let t=(0,a.useCallback)(t=>{try{if(t.data.name!==o.vi)return;e((0,o.Wg)(t.data))}catch(e){console.error("Something went wrong while running Analytics handler")}},[e]);(0,a.useEffect)(()=>(window.addEventListener("message",t),()=>window.removeEventListener("message",t)),[t])}},14950:(e,t,r)=>{"use strict";r.d(t,{Mi:()=>a,Wg:()=>unwrap,re:()=>wrap,vi:()=>o});let a="store:",o="AnalyticsEvent",wrap=e=>({name:o,isEcommerceEvent:e.isEcommerceEvent??!0,params:{...e,name:`${a}${e.name}`}}),unwrap=e=>({...e.params,isEcommerceEvent:e.isEcommerceEvent??!0,name:e.params.name.slice(a.length,e.params.name.length)})},29380:(e,t,r)=>{"use strict";r.d(t,{n:()=>createCartStore});var a=r(12254),o=r(49578);let createCartStore=(e,t,r="fs::cart")=>{let n=(0,o.M)(e,r,t),getItem=e=>n.read().items.find(t=>t.id===e);return{...n,getItem,addItem:e=>{if(!e.id)throw new a.q("You must provide an `id` for items");if(e.quantity<0)throw new a.q("Item quantity needs to be higher than zero");let t=n.read(),r=getItem(e.id),o=r?{...e,quantity:r.quantity+e.quantity}:e;n.set({...t,items:r?t.items.map(e=>e===r?o:e):[...t.items,o]})},updateItemQuantity:(e,t)=>{let r=n.read(),o=getItem(e);if(!o)throw new a.q(`Item with id not found: ${e}`);let i={...o,quantity:t};n.set({...r,items:r.items.map(e=>e===o?i:e).filter(e=>e.quantity>0)})},removeItem:e=>{let t=n.read(),r=getItem(e);n.set({...t,items:t.items.filter(e=>e!==r)})},emptyCart:()=>n.set({...n.read(),items:[]}),inCart:e=>!!getItem(e),isEmpty:()=>0===n.read().items.length}}},9664:(e,t,r)=>{"use strict";r.d(t,{Ru:()=>removeFacet,a2:()=>toggleFacets,uL:()=>setFacet,wB:()=>toggleFacet,wb:()=>isSearchSort});var a=r(12254);let o=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>o.has(e),removeFacet=(e,t)=>{let{value:r}=t,o=e.findIndex(e=>e.value===r);if(o<0)throw new a.q(`Cannot remove ${r} from search params`);return e.filter((e,t)=>t!==o)},setFacet=(e,t,r)=>{if(!0===r){let r=e.findIndex(e=>e.key===t.key);if(r>-1)return e.map((e,a)=>a===r?t:e)}return[...e,t]},toggleFacet=(e,t)=>{let r=e.find(e=>e.key===t.key&&e.value===t.value);return void 0!==r?removeFacet(e,t):setFacet(e,t,!1)},toggleFacets=(e,t)=>t.reduce((e,t)=>toggleFacet(e,t),e)},86878:(e,t,r)=>{"use strict";r.d(t,{j:()=>initialize,X:()=>l});var a=r(43778),o=r(26142),n=r(72339),i=r(12404),s=r.n(i);let initialize=({sort:e="score_desc",selectedFacets:t=[],term:r=null,base:a="/",page:o=0,passThrough:n=new URLSearchParams}={})=>({sort:e,selectedFacets:t,term:r,base:a,page:o,passThrough:n}),c=(0,a.U)((e,t)=>({state:initialize(),setState:r=>{let a=t().state,o={...a,...r};!1===s()(a,o)&&e({state:o})},appendFacet:t=>e(e=>({state:{...e.state,selectedFacets:[...e.state.selectedFacets.filter(e=>!t.some(t=>t.key===e.key)),...t]}})),itemsPerPage:0,setItemsPerPage:t=>e({itemsPerPage:t}),pages:function(){try{let e=window.history.state?.key;if(!e)return null;let t=getSessionStorageKey(e),r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}}()??[0],addPrevPage:()=>{let{pages:r}=t(),a=r[0]-1,o=[a,...r];setPagesSessionStorage(o),e({pages:o})},addNextPage:()=>{let{pages:r}=t(),a=Number(r.at(-1))+1,o=[...r,a];setPagesSessionStorage(o),e({pages:o})},resetInfiniteScroll:t=>{let r=[t];setPagesSessionStorage(r),e({pages:r})},parseURL:r=>{let a=(0,o.Q)(r),i=(0,n.Z)(t().state);(0,n.Z)(a).href!==i.href&&e({state:a})},serializedState:()=>(0,n.Z)(t().state),initialized:!1,reset:()=>{e({state:{...initialize({base:t().state.base})}})},start:(r,a)=>{t().initialized||e(e=>({initialized:!0,state:initialize({...e.state,...a,...(0,o.Q)(new URL(r,"http://localhost"))}),itemsPerPage:a.itemsPerPage??e.itemsPerPage,pages:a.pages??e.pages}))}})),l=(e=>{for(let t of(e.use={},Object.keys(e.getState())))e.use[t]=()=>e(e=>e[t]);return e})(c),getSessionStorageKey=e=>`__fs_gallery_page_${e}`;function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let r=getSessionStorageKey(t);sessionStorage.setItem(r,JSON.stringify(e))}catch(e){return}}},26142:(e,t,r)=>{"use strict";r.d(t,{Q:()=>parse});var a=r(12254),o=r(9664),n=r(86878);let parse=({pathname:e,searchParams:t})=>{let r=(0,n.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,o.wb)(r.sort))throw new a.q(`Uknown sorting option ${r.sort}`);let i=t.get("facets")?.split(",")??[];for(let e of i){let a=t.getAll(e);for(let t of a)r.selectedFacets=(0,o.uL)(r.selectedFacets,{key:e,value:t})}return r.passThrough=function(e,t){let r=new URLSearchParams,a=new Set(t),o=Array.from(e.entries());for(let[e,t]of o)a.has(e)||r.append(e,t);return r}(t,["q","sort","page","facets",...i]),r}},69029:(e,t,r)=>{"use strict";r.d(t,{R:()=>useSearch});var a=r(86878);let useSearch=()=>{let e=(0,a.X)();return e}},88987:(e,t,r)=>{"use strict";r.d(t,{S:()=>createSessionStore});var a=r(49578);let createSessionStore=(e,t,r="fs::session")=>(0,a.M)(e,r,t)},73365:(e,t,r)=>{"use strict";r.d(t,{M:()=>createStore});let createStore=e=>{let t=new Set,r=new Set,a=e;return{set:e=>{a=e,r.forEach(e=>e()),r.clear(),t.forEach(t=>{let a=t(e);"function"==typeof a&&r.add(a)})},read:()=>a,readInitial:()=>e,subscribe:e=>(t.add(e),()=>{t.delete(e)})}}},49578:(e,t,r)=>{"use strict";r.d(t,{M:()=>createStore});var a=r(74375),o=r(25214),n=r(78901),i=r(68956),s=r(73365);let identity=e=>e,createStore=(e,t,r)=>(0,i.q)([t?(0,n.r)(t):identity,t?(0,a.R)(t):identity,r?(0,o.A)(r):identity],(0,s.M)(e))},25214:(e,t,r)=>{"use strict";r.d(t,{A:()=>optimistic});let trivial=async()=>null,optimistic=(e=trivial)=>{let t=Promise.resolve();return r=>(r.subscribe(a=>{let o=!1,handler=async()=>{if(o)return;let t=await e(a);o||null===t||r.set(t)};return t=t.then(handler),()=>{o=!0}}),r)}},74375:(e,t,r)=>{"use strict";r.d(t,{R:()=>persisted});var a=r(87337);let getIDB=async e=>{try{return await (0,a.U2)(e)}catch(e){return}},setIDB=async(e,t)=>{try{await (0,a.t8)(e,t)}catch(e){}},debounce=(e,t)=>{let r;return(...a)=>{clearTimeout(r),r=setTimeout(()=>{e(...a)},t)}},persisted=e=>t=>{let handler=async()=>{let r=await getIDB(e);"undefined"!=typeof document&&t.set(r??t.readInitial())},r=debounce(handler,500);return r(),globalThis.addEventListener?.("focus",()=>r()),globalThis.document?.addEventListener("visibilitychange",()=>"visible"===document.visibilityState&&r()),t.subscribe(t=>{setIDB(e,t)}),t}},78901:(e,t,r)=>{"use strict";r.d(t,{r:()=>singleton}),globalThis.faststore_sdk_stores=globalThis.faststore_sdk_stores??new Map;let singleton=e=>t=>{let r=globalThis.faststore_sdk_stores;return r.has(e)||r.set(e,t),r.get(e)}},68956:(e,t,r)=>{"use strict";r.d(t,{q:()=>compose});let compose=(e,t)=>e.reduce((e,t)=>t(e),t)},12254:(e,t,r)=>{"use strict";r.d(t,{q:()=>SDKError});let SDKError=class SDKError extends Error{constructor(e){super(`[sdk]: ${e}`)}}},72339:(e,t,r)=>{"use strict";r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});let __WEBPACK_DEFAULT_EXPORT__=e=>{let t=new URL(e.base,"http://localhost"),{page:r,selectedFacets:a,sort:o,term:n,passThrough:i}=e;null!==n&&t.searchParams.set("q",n);let s=new Set;for(let e of a)t.searchParams.append(e.key,e.value),s.add(e.key);if(a.length>0&&t.searchParams.set("facets",Array.from(s).join(",")),t.searchParams.set("sort",o),t.searchParams.set("page",r.toString()),i)for(let[e,r]of i.entries())t.searchParams.append(e,r);return t}}};