@faststore/core 3.60.1 → 3.60.3
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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +44 -44
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +38 -38
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/2778.js +9 -0
- package/.next/server/chunks/2792.js +1 -0
- package/.next/server/chunks/3918.js +1 -0
- package/.next/server/chunks/3963.js +1 -0
- package/.next/server/chunks/{2554.js → 4941.js} +2 -2
- package/.next/server/chunks/6011.js +2 -2
- package/.next/server/chunks/6393.js +1 -0
- package/.next/server/chunks/7178.js +1 -1
- package/.next/server/chunks/76.js +1 -1
- package/.next/server/chunks/8687.js +1 -1
- package/.next/server/chunks/948.js +1 -1
- package/.next/server/chunks/9563.js +2 -2
- package/.next/server/chunks/9853.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.js +1 -1
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.js +1 -1
- package/.next/server/pages/500.js.nft.json +1 -1
- package/.next/server/pages/[...slug].js +1 -1
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js +1 -1
- package/.next/server/pages/[slug]/p.js.nft.json +1 -1
- package/.next/server/pages/_app.js +1 -1
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/server/pages/_error.js +1 -1
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/account/403.js +1 -1
- package/.next/server/pages/account/403.js.nft.json +1 -1
- package/.next/server/pages/account/404.js +1 -1
- package/.next/server/pages/account/404.js.nft.json +1 -1
- package/.next/server/pages/account/[...unknown].js +1 -1
- package/.next/server/pages/account/[...unknown].js.nft.json +1 -1
- package/.next/server/pages/account/orders/[id].js +1 -1
- package/.next/server/pages/account/orders/[id].js.nft.json +1 -1
- package/.next/server/pages/account/orders.js +1 -1
- package/.next/server/pages/account/orders.js.nft.json +1 -1
- package/.next/server/pages/account/profile.js +1 -1
- package/.next/server/pages/account/profile.js.nft.json +1 -1
- package/.next/server/pages/account/security.js +1 -1
- package/.next/server/pages/account/security.js.nft.json +1 -1
- package/.next/server/pages/account/user-details.js +1 -1
- package/.next/server/pages/account/user-details.js.nft.json +1 -1
- package/.next/server/pages/account.js +1 -1
- package/.next/server/pages/account.js.nft.json +1 -1
- package/.next/server/pages/api/graphql.js +2 -2
- package/.next/server/pages/api/graphql.js.nft.json +1 -1
- package/.next/server/pages/api/health/live.js.nft.json +1 -1
- package/.next/server/pages/api/health/ready.js.nft.json +1 -1
- package/.next/server/pages/api/preview.js.nft.json +1 -1
- package/.next/server/pages/checkout.js +1 -1
- package/.next/server/pages/checkout.js.nft.json +1 -1
- package/.next/server/pages/en-US/404.html +2 -2
- package/.next/server/pages/en-US/404.json +1 -1
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/500.json +1 -1
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/checkout.json +1 -1
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/login.json +1 -1
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US/s.json +1 -1
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages/en-US.json +1 -1
- package/.next/server/pages/index.js +1 -1
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/login.js +1 -1
- package/.next/server/pages/login.js.nft.json +1 -1
- package/.next/server/pages/s.js +1 -1
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/{OTQR8Iw9Zpev4JgWAegsJ → B1tGZHuLyVThpqeX7jh3X}/_buildManifest.js +1 -1
- package/.next/static/chunks/{2284.abe693ea8fc2cb2d.js → 2284.1b43aea18c23c79e.js} +1 -1
- package/.next/static/chunks/{3166-24f6435f36cb29f1.js → 3166-1fd17b322ca991eb.js} +1 -1
- package/.next/static/chunks/{3399.2e58ebb0a25be0b0.js → 3399.13a97fefb512c902.js} +1 -1
- package/.next/static/chunks/{3836.bcaa7db71d61d35d.js → 3836.c0487aea7bd0c6f0.js} +1 -1
- package/.next/static/chunks/6393.361c44eb0818eb7e.js +1 -0
- package/.next/static/chunks/7191-2a7b8ddbd07128b6.js +1 -0
- package/.next/static/chunks/{9173-f1dbeccc6eaecda7.js → 9173-737c162805bb7193.js} +1 -1
- package/.next/static/chunks/9399.49b20139636a39f2.js +1 -0
- package/.next/static/chunks/{CartItem.879b31c2bb4b1620.js → CartItem.e010557e686e1009.js} +1 -1
- package/.next/static/chunks/{CartSidebar.9453ed62d746f533.js → CartSidebar.4822eeeb560ccb43.js} +1 -1
- package/.next/static/chunks/{ProductShelf.aa249e5172284411.js → ProductShelf.ffceb1cb3d66e171.js} +1 -1
- package/.next/static/chunks/{ProductTiles.c236bd96cffe5500.js → ProductTiles.77284431e2b8c898.js} +1 -1
- package/.next/static/chunks/{UISKUMatrixSidebar.b818031f8aeabed1.js → UISKUMatrixSidebar.782c55a97889e84a.js} +1 -1
- package/.next/static/chunks/pages/[...slug]-34d0d47df01bbdc6.js +1 -0
- package/.next/static/chunks/pages/[slug]/{p-6fff274a4d271328.js → p-a255e4a7352455df.js} +1 -1
- package/.next/static/chunks/pages/_app-52aa8f30f7707675.js +1 -0
- package/.next/static/chunks/pages/account/{orders-2e03fa7da5518d2e.js → orders-6aad8b35fc95ce57.js} +1 -1
- package/.next/static/chunks/pages/{s-2c16c11ad1e70f5a.js → s-9b0f606f120d66b0.js} +1 -1
- package/.next/static/chunks/webpack-cde3c2053d848754.js +1 -0
- package/.next/trace +128 -128
- package/.turbo/turbo-build.log +36 -33
- package/.turbo/turbo-test.log +6 -5
- package/@generated/gql.ts +2 -2
- package/@generated/graphql.ts +4 -1
- package/@generated/persisted-documents.json +1 -1
- package/@generated/schema.graphql +2 -0
- package/CHANGELOG.md +8 -0
- package/package.json +4 -4
- package/src/components/templates/ProductListingPage/ProductListing.tsx +2 -2
- package/src/pages/_app.tsx +8 -0
- package/src/sdk/search/state.ts +13 -11
- package/src/sdk/session/index.ts +13 -8
- package/.next/server/chunks/1153.js +0 -1
- package/.next/server/chunks/2524.js +0 -1
- package/.next/server/chunks/2880.js +0 -1
- package/.next/server/chunks/8474.js +0 -9
- package/.next/server/chunks/9664.js +0 -1
- package/.next/static/chunks/1153.8f0ac867c4ddce90.js +0 -1
- package/.next/static/chunks/1552.8751332da83cadc5.js +0 -1
- package/.next/static/chunks/4965-ec3d107320d2c4f8.js +0 -1
- package/.next/static/chunks/7195.fd4cacc0bef1a233.js +0 -1
- package/.next/static/chunks/pages/[...slug]-8430650764bc7f0a.js +0 -1
- package/.next/static/chunks/pages/_app-c3c48f43debbbf4b.js +0 -1
- package/.next/static/chunks/webpack-55615c90e2125cd2.js +0 -1
- /package/.next/static/{OTQR8Iw9Zpev4JgWAegsJ → B1tGZHuLyVThpqeX7jh3X}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@3.
|
|
2
|
+
> @faststore/core@3.60.2 prebuild /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> na run partytown && na run generate
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @faststore/core@3.
|
|
6
|
+
> @faststore/core@3.60.2 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.
|
|
11
|
+
> @faststore/core@3.60.2 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.
|
|
15
|
+
> @faststore/core@3.60.2 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.
|
|
20
|
+
> @faststore/core@3.60.2 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.
|
|
40
|
+
> @faststore/core@3.60.2 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.
|
|
44
|
+
> @faststore/core@3.60.2 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
|
|
@@ -55,53 +55,56 @@ https://nextjs.org/telemetry
|
|
|
55
55
|
Creating an optimized production build ...
|
|
56
56
|
Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc.js" https://nextjs.org/docs/messages/swc-disabled
|
|
57
57
|
Using external babel configuration from /home/runner/work/faststore/faststore/packages/core/.babelrc.js
|
|
58
|
+
Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
|
|
59
|
+
npx update-browserslist-db@latest
|
|
60
|
+
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
58
61
|
✓ Compiled successfully
|
|
59
62
|
Collecting page data ...
|
|
60
63
|
Generating static pages (0/6) ...
|
|
61
64
|
|
|
62
65
|
Generating static pages (1/6)
|
|
63
|
-
|
|
64
66
|
Generating static pages (2/6)
|
|
65
67
|
Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
|
|
68
|
+
|
|
66
69
|
Generating static pages (2/6)
|
|
67
70
|
|
|
68
71
|
Generating static pages (4/6)
|
|
69
72
|
|
|
70
73
|
✓ Generating static pages (6/6)
|
|
71
74
|
Finalizing page optimization ...
|
|
72
75
|
Collecting build traces ...
|
|
73
76
|
|
|
74
77
|
Route (pages) Size First Load JS
|
|
75
|
-
┌ ● / 3.87 kB
|
|
78
|
+
┌ ● / 3.87 kB 133 kB
|
|
76
79
|
├ └ css/b1806cbafd0c1f81.css 3.06 kB
|
|
77
|
-
├ /_app 0 B
|
|
78
|
-
├ ● /[...slug] 2.
|
|
79
|
-
├ ● /[slug]/p 32.4 kB
|
|
80
|
+
├ /_app 0 B 100 kB
|
|
81
|
+
├ ● /[...slug] 2.44 kB 141 kB
|
|
82
|
+
├ ● /[slug]/p 32.4 kB 162 kB
|
|
80
83
|
├ ├ css/a3ca6a9b63f657be.css 5.75 kB
|
|
81
84
|
├ ├ css/62a5153ac7061286.css 6.11 kB
|
|
82
85
|
├ └ css/b5bf49598c8f8b66.css 16.1 kB
|
|
83
|
-
├ ○ /404 1.48 kB
|
|
84
|
-
├ ● /500 1.48 kB
|
|
85
|
-
├ λ /account 240 B
|
|
86
|
-
├ ● /account/[...unknown] 281 B
|
|
87
|
-
├ λ /account/403 2.33 kB
|
|
86
|
+
├ ○ /404 1.48 kB 131 kB
|
|
87
|
+
├ ● /500 1.48 kB 131 kB
|
|
88
|
+
├ λ /account 240 B 100 kB
|
|
89
|
+
├ ● /account/[...unknown] 281 B 100 kB
|
|
90
|
+
├ λ /account/403 2.33 kB 132 kB
|
|
88
91
|
├ └ css/b7bba8fce075688b.css 4.2 kB
|
|
89
|
-
├ λ /account/404 2.03 kB
|
|
92
|
+
├ λ /account/404 2.03 kB 131 kB
|
|
90
93
|
├ └ css/5347dbc8b71de47d.css 4.25 kB
|
|
91
|
-
├ λ /account/orders 8.
|
|
94
|
+
├ λ /account/orders 8.57 kB 138 kB
|
|
92
95
|
├ └ css/8a3f440e0ff9cd8e.css 11.9 kB
|
|
93
|
-
├ λ /account/orders/[id] 10 kB
|
|
96
|
+
├ λ /account/orders/[id] 10 kB 139 kB
|
|
94
97
|
├ └ css/506442c818624bd2.css 11.5 kB
|
|
95
|
-
├ λ /account/profile 1.27 kB
|
|
96
|
-
├ λ /account/security 1.27 kB
|
|
97
|
-
├ λ /account/user-details 1.28 kB
|
|
98
|
-
├ λ /api/graphql 0 B
|
|
99
|
-
├ λ /api/health/live 0 B
|
|
100
|
-
├ λ /api/health/ready 0 B
|
|
101
|
-
├ λ /api/preview 0 B
|
|
102
|
-
├ ● /checkout 696 B
|
|
103
|
-
├ ● /login 1.59 kB
|
|
104
|
-
└ ● /s 3.16 kB
|
|
105
|
-
+ First Load JS shared by all
|
|
98
|
+
├ λ /account/profile 1.27 kB 131 kB
|
|
99
|
+
├ λ /account/security 1.27 kB 131 kB
|
|
100
|
+
├ λ /account/user-details 1.28 kB 131 kB
|
|
101
|
+
├ λ /api/graphql 0 B 100 kB
|
|
102
|
+
├ λ /api/health/live 0 B 100 kB
|
|
103
|
+
├ λ /api/health/ready 0 B 100 kB
|
|
104
|
+
├ λ /api/preview 0 B 100 kB
|
|
105
|
+
├ ● /checkout 696 B 130 kB
|
|
106
|
+
├ ● /login 1.59 kB 131 kB
|
|
107
|
+
└ ● /s 3.16 kB 142 kB
|
|
108
|
+
+ First Load JS shared by all 104 kB
|
|
106
109
|
├ chunks/framework-807b0f81cbc129f0.js 45.4 kB
|
|
107
110
|
├ chunks/main-f658704b53a96ab1.js 33.1 kB
|
|
108
|
-
├ chunks/pages/_app-
|
|
109
|
-
├ chunks/webpack-
|
|
111
|
+
├ chunks/pages/_app-52aa8f30f7707675.js 18.1 kB
|
|
112
|
+
├ chunks/webpack-cde3c2053d848754.js 3.69 kB
|
|
110
113
|
└ css/0a57ee6c7a57788c.css 3.49 kB
|
|
111
114
|
|
|
112
115
|
λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@3.
|
|
2
|
+
> @faststore/core@3.60.2 test /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> jest
|
|
4
4
|
|
|
5
|
-
PASS test/server/cms/global.test.ts (25.
|
|
6
|
-
PASS test/utils/multipleTemplates.test.ts (
|
|
5
|
+
PASS test/server/cms/global.test.ts (25.298 s)
|
|
6
|
+
PASS test/utils/multipleTemplates.test.ts (26.037 s)
|
|
7
7
|
PASS test/server/cms/index.test.ts
|
|
8
|
-
PASS test/server/index.test.ts (30.
|
|
8
|
+
PASS test/server/index.test.ts (30.622 s)
|
|
9
|
+
A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.
|
|
9
10
|
|
|
10
11
|
Test Suites: 4 passed, 4 total
|
|
11
12
|
Tests: 22 passed, 22 total
|
|
12
13
|
Snapshots: 0 total
|
|
13
|
-
Time: 32.
|
|
14
|
+
Time: 32.048 s
|
|
14
15
|
Ran all test suites.
|
package/@generated/gql.ts
CHANGED
|
@@ -78,7 +78,7 @@ const documents = {
|
|
|
78
78
|
types.ClientSearchSuggestionsQueryDocument,
|
|
79
79
|
'\n query ClientTopSearchSuggestionsQuery(\n $term: String!\n $selectedFacets: [IStoreSelectedFacet!]\n ) {\n ...ClientTopSearchSuggestions\n search(first: 5, term: $term, selectedFacets: $selectedFacets) {\n suggestions {\n terms {\n value\n }\n }\n }\n }\n':
|
|
80
80
|
types.ClientTopSearchSuggestionsQueryDocument,
|
|
81
|
-
'\n mutation ValidateSession($session: IStoreSession!, $search: String!) {\n validateSession(session: $session, search: $search) {\n locale\n channel\n country\n addressType\n postalCode\n city\n deliveryMode {\n deliveryChannel\n deliveryMethod\n deliveryWindow {\n startDate\n endDate\n }\n }\n geoCoordinates {\n latitude\n longitude\n }\n currency {\n code\n symbol\n }\n person {\n id\n email\n givenName\n familyName\n }\n b2b {\n customerId\n isRepresentative\n unitName\n unitId\n firstName\n lastName\n userName\n userEmail\n }\n marketingData {\n utmCampaign\n utmMedium\n utmSource\n utmiCampaign\n utmiPage\n utmiPart\n }\n }\n }\n':
|
|
81
|
+
'\n mutation ValidateSession($session: IStoreSession!, $search: String!) {\n validateSession(session: $session, search: $search) {\n locale\n channel\n country\n addressType\n postalCode\n city\n deliveryMode {\n deliveryChannel\n deliveryMethod\n deliveryWindow {\n startDate\n endDate\n }\n }\n geoCoordinates {\n latitude\n longitude\n }\n currency {\n code\n symbol\n }\n person {\n id\n email\n givenName\n familyName\n }\n b2b {\n customerId\n isRepresentative\n unitName\n unitId\n firstName\n lastName\n userName\n userEmail\n savedPostalCode\n }\n marketingData {\n utmCampaign\n utmMedium\n utmSource\n utmiCampaign\n utmiPage\n utmiPart\n }\n }\n }\n':
|
|
82
82
|
types.ValidateSessionDocument,
|
|
83
83
|
'\n query ClientShippingSimulationQuery(\n $postalCode: String!\n $country: String!\n $items: [IShippingItem!]!\n ) {\n ...ClientShippingSimulation\n shipping(items: $items, postalCode: $postalCode, country: $country) {\n logisticsInfo {\n slas {\n carrier\n price\n availableDeliveryWindows {\n startDateUtc\n endDateUtc\n price\n listPrice\n }\n shippingEstimate\n localizedEstimates\n deliveryChannel\n }\n }\n address {\n city\n neighborhood\n state\n }\n }\n }\n':
|
|
84
84
|
types.ClientShippingSimulationQueryDocument,
|
|
@@ -288,7 +288,7 @@ export function gql(
|
|
|
288
288
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
289
289
|
*/
|
|
290
290
|
export function gql(
|
|
291
|
-
source: '\n mutation ValidateSession($session: IStoreSession!, $search: String!) {\n validateSession(session: $session, search: $search) {\n locale\n channel\n country\n addressType\n postalCode\n city\n deliveryMode {\n deliveryChannel\n deliveryMethod\n deliveryWindow {\n startDate\n endDate\n }\n }\n geoCoordinates {\n latitude\n longitude\n }\n currency {\n code\n symbol\n }\n person {\n id\n email\n givenName\n familyName\n }\n b2b {\n customerId\n isRepresentative\n unitName\n unitId\n firstName\n lastName\n userName\n userEmail\n }\n marketingData {\n utmCampaign\n utmMedium\n utmSource\n utmiCampaign\n utmiPage\n utmiPart\n }\n }\n }\n'
|
|
291
|
+
source: '\n mutation ValidateSession($session: IStoreSession!, $search: String!) {\n validateSession(session: $session, search: $search) {\n locale\n channel\n country\n addressType\n postalCode\n city\n deliveryMode {\n deliveryChannel\n deliveryMethod\n deliveryWindow {\n startDate\n endDate\n }\n }\n geoCoordinates {\n latitude\n longitude\n }\n currency {\n code\n symbol\n }\n person {\n id\n email\n givenName\n familyName\n }\n b2b {\n customerId\n isRepresentative\n unitName\n unitId\n firstName\n lastName\n userName\n userEmail\n savedPostalCode\n }\n marketingData {\n utmCampaign\n utmMedium\n utmSource\n utmiCampaign\n utmiPage\n utmiPart\n }\n }\n }\n'
|
|
292
292
|
): typeof import('./graphql').ValidateSessionDocument
|
|
293
293
|
/**
|
|
294
294
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
package/@generated/graphql.ts
CHANGED
|
@@ -187,6 +187,7 @@ export type IStoreB2B = {
|
|
|
187
187
|
firstName: InputMaybe<Scalars['String']['input']>
|
|
188
188
|
isRepresentative: InputMaybe<Scalars['Boolean']['input']>
|
|
189
189
|
lastName: InputMaybe<Scalars['String']['input']>
|
|
190
|
+
savedPostalCode: InputMaybe<Scalars['String']['input']>
|
|
190
191
|
unitId: InputMaybe<Scalars['String']['input']>
|
|
191
192
|
unitName: InputMaybe<Scalars['String']['input']>
|
|
192
193
|
userEmail: InputMaybe<Scalars['String']['input']>
|
|
@@ -775,6 +776,7 @@ export type StoreB2B = {
|
|
|
775
776
|
firstName: Maybe<Scalars['String']['output']>
|
|
776
777
|
isRepresentative: Maybe<Scalars['Boolean']['output']>
|
|
777
778
|
lastName: Maybe<Scalars['String']['output']>
|
|
779
|
+
savedPostalCode: Maybe<Scalars['String']['output']>
|
|
778
780
|
unitId: Maybe<Scalars['String']['output']>
|
|
779
781
|
unitName: Maybe<Scalars['String']['output']>
|
|
780
782
|
userEmail: Maybe<Scalars['String']['output']>
|
|
@@ -2909,6 +2911,7 @@ export type ValidateSessionMutation = {
|
|
|
2909
2911
|
lastName: string | null
|
|
2910
2912
|
userName: string | null
|
|
2911
2913
|
userEmail: string | null
|
|
2914
|
+
savedPostalCode: string | null
|
|
2912
2915
|
} | null
|
|
2913
2916
|
marketingData: {
|
|
2914
2917
|
utmCampaign: string | null
|
|
@@ -3662,7 +3665,7 @@ export const ClientTopSearchSuggestionsQueryDocument = {
|
|
|
3662
3665
|
export const ValidateSessionDocument = {
|
|
3663
3666
|
__meta__: {
|
|
3664
3667
|
operationName: 'ValidateSession',
|
|
3665
|
-
operationHash: '
|
|
3668
|
+
operationHash: '259dd10b1c65ce4b20c9181feb7bec85ecb402e6',
|
|
3666
3669
|
},
|
|
3667
3670
|
} as unknown as TypedDocumentString<
|
|
3668
3671
|
ValidateSessionMutation,
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"34ea14c0d4a57ddf9bc11e4be0cd2b5a6506d3d4": "query ClientProfileQuery($id: String!) { profile(id: $id) { addresses { city country geoCoordinate postalCode } } }",
|
|
20
20
|
"b548281d477a173be7b6960434604d69769a97e7": "fragment ClientSearchSuggestions on Query { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } } fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } advertisement { adId adResponseId } brand { brandName: name } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantsByName availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku slug unitMultiplier } fragment SearchEvent_metadata on SearchMetadata { fuzzy isTermMisspelled logicalOperator } query ClientSearchSuggestionsQuery($selectedFacets: [IStoreSelectedFacet!], $term: String!) { search(first: 5, term: $term, selectedFacets: $selectedFacets) { metadata { ...SearchEvent_metadata } products { pageInfo { totalCount } } suggestions { products { ...ProductSummary_product } terms { value } } } ...ClientSearchSuggestions }",
|
|
21
21
|
"e2385b0f11726d0068f96548f57a8dd441c064e3": "fragment ClientTopSearchSuggestions on Query { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } } query ClientTopSearchSuggestionsQuery($selectedFacets: [IStoreSelectedFacet!], $term: String!) { search(first: 5, term: $term, selectedFacets: $selectedFacets) { suggestions { terms { value } } } ...ClientTopSearchSuggestions }",
|
|
22
|
-
"
|
|
22
|
+
"259dd10b1c65ce4b20c9181feb7bec85ecb402e6": "mutation ValidateSession($search: String!, $session: IStoreSession!) { validateSession(session: $session, search: $search) { addressType b2b { customerId firstName isRepresentative lastName savedPostalCode unitId unitName userEmail userName } channel city country currency { code symbol } deliveryMode { deliveryChannel deliveryMethod deliveryWindow { endDate startDate } } geoCoordinates { latitude longitude } locale marketingData { utmCampaign utmMedium utmSource utmiCampaign utmiPage utmiPart } person { email familyName givenName id } postalCode } }",
|
|
23
23
|
"c35bad22f67f3eb34fea52bb49efa6b1da6b728d": "fragment ClientShippingSimulation on Query { shipping(items: $items, postalCode: $postalCode, country: $country) { address { city } } } query ClientShippingSimulationQuery($country: String!, $items: [IShippingItem!]!, $postalCode: String!) { shipping(items: $items, postalCode: $postalCode, country: $country) { address { city neighborhood state } logisticsInfo { slas { availableDeliveryWindows { endDateUtc listPrice price startDateUtc } carrier deliveryChannel localizedEstimates price shippingEstimate } } } ...ClientShippingSimulation }",
|
|
24
24
|
"5c2181dde311ca80b72e0cc76ac0855d8aa8b51e": "fragment ClientManyProducts on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets sponsoredCount: $sponsoredCount ) { products { pageInfo { totalCount } } } } fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } advertisement { adId adResponseId } brand { brandName: name } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantsByName availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku slug unitMultiplier } fragment SearchEvent_metadata on SearchMetadata { fuzzy isTermMisspelled logicalOperator } query ServerManyProductsQuery($after: String, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $sponsoredCount: Int, $term: String!) { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets sponsoredCount: $sponsoredCount ) { metadata { ...SearchEvent_metadata } products { edges { node { ...ProductSummary_product } } pageInfo { totalCount } } } ...ClientManyProducts }"
|
|
25
25
|
}
|
|
@@ -895,6 +895,7 @@ type StoreB2B {
|
|
|
895
895
|
lastName: String
|
|
896
896
|
userName: String
|
|
897
897
|
userEmail: String
|
|
898
|
+
savedPostalCode: String
|
|
898
899
|
}
|
|
899
900
|
|
|
900
901
|
input IStoreB2B {
|
|
@@ -906,6 +907,7 @@ input IStoreB2B {
|
|
|
906
907
|
lastName: String
|
|
907
908
|
userName: String
|
|
908
909
|
userEmail: String
|
|
910
|
+
savedPostalCode: String
|
|
909
911
|
}
|
|
910
912
|
|
|
911
913
|
"""Session input."""
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.60.3](https://github.com/vtex/faststore/compare/v3.60.2...v3.60.3) (2025-07-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @faststore/core
|
|
9
|
+
|
|
10
|
+
## [3.60.2](https://github.com/vtex/faststore/compare/v3.60.1...v3.60.2) (2025-07-02)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @faststore/core
|
|
13
|
+
|
|
6
14
|
## [3.60.1](https://github.com/vtex/faststore/compare/v3.60.0...v3.60.1) (2025-06-24)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.60.
|
|
3
|
+
"version": "3.60.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "vtex/faststore",
|
|
6
6
|
"browserslist": "supports es6-module and not dead",
|
|
@@ -44,10 +44,10 @@
|
|
|
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.
|
|
47
|
+
"@faststore/api": "^3.60.3",
|
|
48
48
|
"@faststore/graphql-utils": "^3.56.1",
|
|
49
49
|
"@faststore/lighthouse": "^3.56.1",
|
|
50
|
-
"@faststore/sdk": "^3.
|
|
50
|
+
"@faststore/sdk": "^3.60.3",
|
|
51
51
|
"@faststore/ui": "^3.56.1",
|
|
52
52
|
"@graphql-codegen/cli": "5.0.2",
|
|
53
53
|
"@graphql-codegen/client-preset": "4.2.6",
|
|
@@ -105,5 +105,5 @@
|
|
|
105
105
|
"ts-jest": "29.1.1",
|
|
106
106
|
"typescript": "5.3.2"
|
|
107
107
|
},
|
|
108
|
-
"gitHead": "
|
|
108
|
+
"gitHead": "e0f5b29a904c59d59bdf348d5d6caebd311358fe"
|
|
109
109
|
}
|
|
@@ -52,7 +52,7 @@ export default function ProductListing({
|
|
|
52
52
|
globalSections,
|
|
53
53
|
}: ProductListingPageProps) {
|
|
54
54
|
const router = useRouter()
|
|
55
|
-
const { state } = useSearch()
|
|
55
|
+
const { state, serializedState } = useSearch()
|
|
56
56
|
const { sort, term, selectedFacets } = state
|
|
57
57
|
|
|
58
58
|
const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
|
|
@@ -60,7 +60,7 @@ export default function ProductListing({
|
|
|
60
60
|
const applySearchState = useApplySearchState()
|
|
61
61
|
useEffect(() => {
|
|
62
62
|
if (!isContentPlatformSource() || !router.isPreview) {
|
|
63
|
-
applySearchState(
|
|
63
|
+
applySearchState(serializedState())
|
|
64
64
|
}
|
|
65
65
|
}, [])
|
|
66
66
|
|
package/src/pages/_app.tsx
CHANGED
|
@@ -10,10 +10,18 @@ import SEO from '../../next-seo.config'
|
|
|
10
10
|
import '../styles/main.scss'
|
|
11
11
|
|
|
12
12
|
import { DefaultSeo } from 'next-seo'
|
|
13
|
+
import { useRouter } from 'next/router'
|
|
14
|
+
import { useSearch } from '@faststore/sdk'
|
|
15
|
+
import { ITEMS_PER_PAGE } from 'src/constants'
|
|
13
16
|
|
|
14
17
|
function App({ Component, pageProps }: AppProps) {
|
|
15
18
|
const { key } = pageProps
|
|
16
19
|
useGeolocation()
|
|
20
|
+
const router = useRouter()
|
|
21
|
+
const { start: startGlobalSearchState } = useSearch()
|
|
22
|
+
|
|
23
|
+
// Initialize global Search state
|
|
24
|
+
startGlobalSearchState(router.asPath, { itemsPerPage: ITEMS_PER_PAGE })
|
|
17
25
|
|
|
18
26
|
return (
|
|
19
27
|
<ErrorBoundary>
|
package/src/sdk/search/state.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { useCallback } from 'react'
|
|
2
|
-
import { useRouter } from 'next/router'
|
|
3
2
|
|
|
4
3
|
export const useApplySearchState = () => {
|
|
5
|
-
|
|
4
|
+
return useCallback((url: URL) => {
|
|
5
|
+
const newUrl = `${url.pathname}${url.search}`
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
// saves state on URL without triggering a re-render.
|
|
8
|
+
window.history.replaceState(
|
|
9
|
+
{
|
|
10
|
+
...window.history.state,
|
|
11
|
+
as: newUrl,
|
|
12
|
+
url: newUrl,
|
|
13
|
+
},
|
|
14
|
+
'',
|
|
15
|
+
newUrl
|
|
16
|
+
)
|
|
17
|
+
}, [])
|
|
16
18
|
}
|
package/src/sdk/session/index.ts
CHANGED
|
@@ -53,6 +53,7 @@ export const mutation = gql(`
|
|
|
53
53
|
lastName
|
|
54
54
|
userName
|
|
55
55
|
userEmail
|
|
56
|
+
savedPostalCode
|
|
56
57
|
}
|
|
57
58
|
marketingData {
|
|
58
59
|
utmCampaign
|
|
@@ -69,12 +70,17 @@ export const mutation = gql(`
|
|
|
69
70
|
export const validateSession = async (session: Session) => {
|
|
70
71
|
// If deliveryPromise is enabled and there is no postalCode in the session
|
|
71
72
|
if (storeConfig.deliveryPromise?.enabled && !session.postalCode) {
|
|
72
|
-
|
|
73
|
+
// Case B2B: If a B2B shopper is logged in and a saved address is available, the postalCode field is automatically updated with the postal code from that address by the B2B session apps (shopper-session and profile-session).
|
|
74
|
+
if (session.b2b && session.b2b?.savedPostalCode) {
|
|
75
|
+
sessionStore.set({
|
|
76
|
+
...session,
|
|
77
|
+
postalCode: session.b2b.savedPostalCode,
|
|
78
|
+
})
|
|
79
|
+
}
|
|
73
80
|
|
|
74
|
-
// If
|
|
75
|
-
if (
|
|
76
|
-
const
|
|
77
|
-
const address = await getSavedAddress(userId)
|
|
81
|
+
// Case B2C: If a B2C shopper is logged in, try to get the location (postalCode, geoCoordinates, and country) from their saved address
|
|
82
|
+
else if (session.person?.id) {
|
|
83
|
+
const address = await getSavedAddress(session.person?.id)
|
|
78
84
|
|
|
79
85
|
// Save the location in the session
|
|
80
86
|
if (address) {
|
|
@@ -93,12 +99,11 @@ export const validateSession = async (session: Session) => {
|
|
|
93
99
|
})
|
|
94
100
|
}
|
|
95
101
|
} else {
|
|
96
|
-
//
|
|
102
|
+
// Fallback: use the initial postalCode defined in discovery.config.js
|
|
97
103
|
const initialPostalCode = defaultStore.readInitial().postalCode
|
|
98
104
|
|
|
99
|
-
|
|
105
|
+
!!initialPostalCode &&
|
|
100
106
|
sessionStore.set({ ...session, postalCode: initialPostalCode })
|
|
101
|
-
}
|
|
102
107
|
}
|
|
103
108
|
}
|
|
104
109
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1153,exports.ids=[1153],exports.modules={81153:(e,t,r)=>{r.r(t),r.d(t,{ANALYTICS_EVENT_TYPE:()=>a.vi,STORE_EVENT_PREFIX:()=>a.Mi,SearchProvider:()=>l.z,UIContext:()=>E,UIProvider:()=>Provider_Provider,compose:()=>R.q,createBaseStore:()=>P.M,createCartStore:()=>y.n,createSessionStore:()=>M.S,createStore:()=>A.M,formatSearchState:()=>s.Z,initSearchState:()=>n.j,isSearchSort:()=>c.wb,optimistic:()=>C.A,parseSearchState:()=>i.Q,persisted:()=>f.R,removeFacet:()=>c.Ru,sendAnalyticsEvent:()=>sendAnalyticsEvent,setFacet:()=>c.uL,singleton:()=>N.r,toggleFacet:()=>c.wB,toggleFacets:()=>c.a2,useAnalyticsEvent:()=>o.W,useGlobalUIState:()=>useGlobalUIState,usePagination:()=>u.h,useSearch:()=>d.R});var a=r(14950);let sendAnalyticsEvent=e=>{try{window.postMessage((0,a.re)(e),window.origin)}catch(e){console.error(e)}};var o=r(28529),i=r(26142),s=r(72339),n=r(12524),c=r(9664),l=r(41197),d=r(69029),u=r(91341),S=r(16689),v=r.n(S);let E=(0,S.createContext)(void 0);E.displayName="UIContext";let I={displayMinicart:!1},reducer=e=>{let t={OPEN_MINICART:e=>({...e,displayMinicart:!0}),CLOSE_MINICART:e=>({...e,displayMinicart:!1}),...e};return(e,{type:r,data:a})=>{let o=t[r];if("function"==typeof o)return o(e,a);throw Error("Unknown UI state")}},defaultEffects=()=>({}),Provider_Provider=({children:e,actions:t={},effects:r=defaultEffects,initialState:a={}})=>{let[o,i]=(0,S.useReducer)(reducer(t),{...I,...a}),s=(0,S.useMemo)(()=>({...r(i),openMinicart:()=>i({type:"OPEN_MINICART"}),closeMinicart:()=>i({type:"CLOSE_MINICART"})}),[r]),n=(0,S.useMemo)(()=>({...o,...s}),[s,o]);return v().createElement(E.Provider,{value:n},e)};var p=r(77943);let useGlobalUIState=()=>(0,p.q)(E);var M=r(88987),y=r(29380),P=r(73365),A=r(49578),C=r(25214),f=r(74375),N=r(78901),R=r(68956)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2524,exports.ids=[2524],exports.modules={12524:(e,a,s)=>{s.d(a,{X:()=>useSearchState,j:()=>initialize});var t=s(16689),r=s(72339);let initialize=({sort:e="score_desc",selectedFacets:a=[],term:s=null,base:t="/",page:r=0,passThrough:l=new URLSearchParams}={})=>({sort:e,selectedFacets:a,term:s,base:t,page:r,passThrough:l}),equals=(e,a)=>(0,r.Z)(e).href===(0,r.Z)(a).href,useSearchState=(e,a)=>{let s=(0,t.useMemo)(()=>initialize(e),[e]);return(0,t.useMemo)(()=>({state:s,setState:e=>!equals(e,s)&&a((0,r.Z)(e))}),[a,s])}},72339:(e,a,s)=>{s.d(a,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});let __WEBPACK_DEFAULT_EXPORT__=e=>{let a=new URL(e.base,"http://localhost"),{page:s,selectedFacets:t,sort:r,term:l,passThrough:i}=e;null!==l&&a.searchParams.set("q",l);let o=new Set;for(let e of t)a.searchParams.append(e.key,e.value),o.add(e.key);if(t.length>0&&a.searchParams.set("facets",Array.from(o).join(",")),a.searchParams.set("sort",r),a.searchParams.set("page",s.toString()),i)for(let[e,s]of i.entries())a.searchParams.append(e,s);return a}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2880,exports.ids=[2880],exports.modules={41197:(e,t,r)=>{r.d(t,{_:()=>i,z:()=>Provider});var s=r(16689),a=r.n(s),n=r(12254);function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let r=`__fs_gallery_page_${t}`;sessionStorage.setItem(r,JSON.stringify(e))}catch(e){return}}let reducer=(e,t)=>{switch(t.type){case"addPrev":{let t=e[0]-1,r=[t,...e];return setPagesSessionStorage(r),r}case"addNext":{let t=Number(e[e.length-1])+1,r=[...e,t];return setPagesSessionStorage(r),r}case"reset":{let{payload:e}=t,r=[e];return setPagesSessionStorage(r),r}default:throw new n.q("Unknown action for infinite search")}},useSearchInfiniteState=e=>{let[t,r]=(0,s.useReducer)(reducer,void 0,()=>(function(){try{let e=window.history.state?.key;if(!e)return null;let t=`__fs_gallery_page_${e}`,r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}})()??[e]),a=(0,s.useMemo)(()=>({addPrevPage:()=>r({type:"addPrev"}),addNextPage:()=>r({type:"addNext"}),resetInfiniteScroll:e=>r({type:"reset",payload:e})}),[]);return{pages:t,...a}};var o=r(12524);let i=(0,s.createContext)(void 0),Provider=({children:e,itemsPerPage:t,onChange:r,...n})=>{let{state:l,...u}=(0,o.X)(n,r),{pages:d,...g}=useSearchInfiniteState(l.page),c=(0,s.useMemo)(()=>({state:l,...u,pages:d,...g,itemsPerPage:t}),[g,t,d,u,l]);return a().createElement(i.Provider,{value:c},e)}},26142:(e,t,r)=>{r.d(t,{Q:()=>parse});var s=r(12254),a=r(9664),n=r(12524);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,a.wb)(r.sort))throw new s.q(`Uknown sorting option ${r.sort}`);let o=t.get("facets")?.split(",")??[];for(let e of o){let s=t.getAll(e);for(let t of s)r.selectedFacets=(0,a.uL)(r.selectedFacets,{key:e,value:t})}return r.passThrough=function(e,t){let r=new URLSearchParams,s=new Set(t),a=Array.from(e.entries());for(let[e,t]of a)s.has(e)||r.append(e,t);return r}(t,["q","sort","page","facets",...o]),r}},91341:(e,t,r)=>{r.d(t,{h:()=>usePagination});var s=r(16689),a=r(72339),n=r(69029);let getLink=e=>{let{pathname:t,search:r}=(0,a.Z)(e);return`${t}${r}`},usePagination=e=>{let{pages:t,itemsPerPage:r,state:a}=(0,n.R)(),o=Math.ceil(e/r),i=Number(t[t.length-1])+1,l=t[0]-1;return(0,s.useMemo)(()=>({next:i<o&&{cursor:i,link:getLink({...a,page:i})},prev:l>-1&&{cursor:l,link:getLink({...a,page:l})}}),[i,l,a,o])}},69029:(e,t,r)=>{r.d(t,{R:()=>useSearch});var s=r(41197),a=r(77943);let useSearch=()=>(0,a.q)(s._)},77943:(e,t,r)=>{r.d(t,{q:()=>useContext});var s=r(16689),a=r(12254);let useContext=e=>{let t=(0,s.useContext)(e);if(void 0===t)throw new a.q(`${e.displayName??"Context"} needs to be on the React tree`);return t}}};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
exports.id=8474,exports.ids=[8474],exports.modules={80839:(e,t,r)=>{"use strict";r.d(t,{Z:()=>f});var n=r(38394),o=r(65167),a=r(50547),c=r(16689),i=r(82331),s=r.n(i),l=r(2056),u=r(70643),p=r(78563),d=r(20997);let b=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):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=(0,c.memo)(function(e){let{product:t,index:r,bordered:i=!0,variant:f="default",aspectRatio:O=1,imgProps:y,ratingValue:j,buttonLabel:m="Add",onButtonClick:g,showDiscountBadge:h=!0,taxesConfiguration:w,sponsoredLabel:P}=e,_=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,b),{sku:v,isVariantOf:{name:S},image:[x],advertisement:D,offers:{lowPrice:E,lowPriceWithTaxes:k,offers:[{listPrice:K,availability:B,listPriceWithTaxes:T}]}}=t,C=_objectSpread(_objectSpread({},(0,p.w)({product:t,selectedOffer:0,index:r})),{},{as:s(),passHref:!0,legacyBehavior:!1,prefetch:!1}),Z=(0,c.useMemo)(()=>"https://schema.org/InStock"!==B,[B]),L=w?.usePriceWithTaxes?k:E,I=w?.usePriceWithTaxes?T:K,N=D?{"data-van-res-id":D.adResponseId,"data-van-aid":D.adId,"data-van-prod-name":S}:{};return(0,d.jsxs)(n.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:Z,bordered:i,variant:f,"data-fs-product-card-sku":v},N),_),{},{children:[d.jsx(o.Z,{aspectRatio:O,children:d.jsx(l.Z,{src:x.url,alt:x.alternateName,sizes:`${y?.sizes??"(max-width: 768px) 40vw, 30vw"}`,width:y?.width??360,height:Math.round((Number(y?.height)||360)/O),loading:y?.loading})}),d.jsx(a.Z,{title:S,price:{value:L,listPrice:I,formatter:u.P},ratingValue:j,outOfStock:Z,onButtonClick:g,linkProps:C,showDiscountBadge:L<=I&&h,includeTaxes:w?.usePriceWithTaxes,includeTaxesLabel:w?.taxesLabel,sponsored:!!D,sponsoredLabel:P})]}))})},93143:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(94173),a=r(15988),c=r(41325),i=r(92258),s=r.n(i),l=r(20997),u=e([a]);a=(u.then?(await u)():u)[0];let __WEBPACK_DEFAULT_EXPORT__=function({banner:e,newsletter:t}){return l.jsx(c.Z,{className:`${s().section} section-banner-newsletter`,children:(0,l.jsxs)("div",{"data-fs-banner-text-newsletter":!0,"data-fs-content":"banner-newsletter",children:[l.jsx(o.i,{title:e.title,caption:e.caption,link:e?.link,variant:e.variant,colorVariant:e.colorVariant}),l.jsx(a.O,{card:!0,colorVariant:t.colorVariant,title:t.title,description:t.description,icon:t.icon,privacyPolicy:t.privacyPolicy,emailInputLabel:t.emailInputLabel,displayNameInput:t.displayNameInput,nameInputLabel:t.nameInputLabel,subscribeButtonLabel:t.subscribeButtonLabel,subscribeButtonLoadingLabel:t.subscribeButtonLoadingLabel,toastSubscribe:t.toastSubscribe,toastSubscribeError:t.toastSubscribeError})]})})};n()}catch(e){n(e)}})},94173:(e,t,r)=>{"use strict";r.d(t,{i:()=>O});let n={section:"BannerText"};var o=r(91716),a=r(29746),c=r(41325),i=r(14),s=r.n(i),l=r(73888),u=r.n(l);let p=u()(()=>Promise.all([r.e(7228),r.e(8482),r.e(831),r.e(3006),r.e(1454),r.e(416),r.e(7371),r.e(2230),r.e(4219),r.e(8569),r.e(7169),r.e(8307),r.e(4451),r.e(9570),r.e(6335),r.e(5890)]).then(r.bind(r,74179)).then(e=>e.BannerText),{loadableGenerated:{modules:["../components/sections/BannerText/DefaultComponents.ts -> @faststore/ui"]}}),d=u()(()=>Promise.all([r.e(7228),r.e(8482),r.e(831),r.e(3006),r.e(1454),r.e(416),r.e(7371),r.e(2230),r.e(4219),r.e(8569),r.e(7169),r.e(8307),r.e(4451),r.e(9570),r.e(6335),r.e(5890)]).then(r.bind(r,74179)).then(e=>e.BannerTextContent),{loadableGenerated:{modules:["../components/sections/BannerText/DefaultComponents.ts -> @faststore/ui"]}});var b=r(20997);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):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=(0,o.B)("BannerText",function({title:e,caption:t,link:{url:r,text:n,linkTargetBlank:o},variant:i,colorVariant:l}){let{BannerText:u,BannerTextContent:p}=(0,a.r3)();return b.jsx(c.Z,{className:`${s().section} section-banner layout__section`,children:b.jsx(u.Component,_objectSpread(_objectSpread({},u.props),{},{variant:i??u.props.variant??"primary",colorVariant:l??u.props.colorVariant??"main",children:b.jsx(p.Component,_objectSpread(_objectSpread({},p.props),{},{title:e,caption:t,link:r??p.props.link,linkText:n??p.props.linkText,linkTargetBlank:o??p.props.linkTargetBlank}))}))})},{BannerText:p,BannerTextContent:d});function OverriddenDefaultBannerText_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function OverriddenDefaultBannerText_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultBannerText_ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultBannerText_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let O=(0,o.v)(OverriddenDefaultBannerText_objectSpread(OverriddenDefaultBannerText_objectSpread(OverriddenDefaultBannerText_objectSpread({},n),n),{},{Section:f}))},12301:(e,t,r)=>{"use strict";r.d(t,{j:()=>h});let n={section:"Breadcrumb"};var o=r(91716),a=r(16689),c=r(41325),i=r(29746),s=r(56272),l=r(2614),u=r(91972),p=r(67345),d=r(20997);let b=["icon","alt"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):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=(0,a.memo)(e=>{let{icon:t,alt:r="Go to homepage"}=e,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,b),{Breadcrumb:o,Icon:a}=(0,i.r3)();return d.jsx(u.Z,_objectSpread(_objectSpread({homeLink:d.jsx(p.Z,{"data-fs-breadcrumb-link":!0,"data-fs-breadcrumb-link-home":!0,"aria-label":r,href:"/",prefetch:!1,children:d.jsx(a.Component,_objectSpread(_objectSpread({width:18,height:18,weight:"bold"},a.props),{},{name:t??a.props.name??"Home"}))}),renderLink:({itemProps:{item:e,name:t}})=>d.jsx(p.Z,{"data-fs-breadcrumb-link":!0,href:e,prefetch:!1,children:t})},o.props),n))}),O={Breadcrumb:f,Icon:l.Z};var y=r(91742),j=r.n(y);function Breadcrumb_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}let m=(0,o.B)("Breadcrumb",function(e){let t=Object.assign({},e),{Breadcrumb:r}=(0,i.r3)(),n=(0,s.qt)(),o=(0,s.OJ)(n)?n?.data?.collection?.seo?.title:"All Products",a=(0,s.tS)(n)?n?.data?.product?.breadcrumbList?.itemListElement:(0,s.OJ)(n)?n?.data?.collection?.breadcrumbList?.itemListElement:[{item:"/",name:o,position:1}];return d.jsx(c.Z,{className:`${j().section} section-breadcrumb`,children:d.jsx(r.Component,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Breadcrumb_ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Breadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({breadcrumbList:a},t))})},O),g=(0,a.memo)(m);function OverriddenDefaultBreadcrumb_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function OverriddenDefaultBreadcrumb_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultBreadcrumb_ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultBreadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let h=(0,o.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},n),n),{},{Section:g}))},32672:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>y});var o=r(16689),a=r(49428),c=r(19785),i=r(56272),s=r(50881),l=r.n(s),u=r(41325),p=r(63338),d=r(91716),b=r(20997),f=e([a]);a=(f.then?(await f)():f)[0];let O=(0,d.B)("CrossSellingShelf",({numberOfItems:e,itemsPerPage:t,title:r,kind:n,taxesConfiguration:s})=>{let{ref:p,inView:d}=(0,c.useInView)(),f=(0,i.al)(),O=f?.data?.product?.isVariantOf?.productGroupID,y=(0,o.useMemo)(()=>[{key:n,value:O}],[n,O]);return b.jsx(u.Z,{className:`${l().section} section-product-shelf layout__section`,ref:p,children:b.jsx(a.Z,{inView:d,numberOfItems:e,itemsPerPage:t,title:r,selectedFacets:y,taxesConfiguration:s})})},p.q),y=O;n()}catch(e){n(e)}})},63338:(e,t,r)=>{"use strict";r.d(t,{q:()=>c});var n=r(16737),o=r(80839),a=r(26039);let c={ProductShelf:n.Z,__experimentalCarousel:a.Z,__experimentalProductCard:o.Z}},53056:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>s});var o=r(7935),a=r(91716),c=r(32672),i=e([c]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}c=(i.then?(await i)():i)[0];let s=(0,a.v)(_objectSpread(_objectSpread(_objectSpread({},o.K),o.K),{},{Section:c.Z}));n()}catch(e){n(e)}})},88939:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{u:()=>e});var o=r(83339),a=r(2614),c=r(93779),i=r(37115),s=r(84207),l=r(32571),u=r(4796),p=r(82044);let e={Button:o.Z,HeaderIcon:a.Z,InputFieldEmail:c.Z,InputFieldName:c.Z,Newsletter:i.Z,NewsletterAddendum:p.a,NewsletterContent:s.Z,NewsletterForm:l.Z,NewsletterHeader:u.Z,ToastIconError:a.Z,ToastIconSuccess:a.Z};n()}catch(e){n(e)}})},71565:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>f});var o=r(64497),a=r(41325),c=r(63775),i=r.n(c),s=r(91716),l=r(88939),u=r(20997),p=e([o,l]);[o,l]=p.then?(await p)():p;let d=["icon","title","description","privacyPolicy","emailInputLabel","displayNameInput","nameInputLabel","subscribeButtonLabel","subscribeButtonLoadingLabel","card","toastSubscribe","toastSubscribeError","colorVariant"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}let b=(0,s.B)("Newsletter",function(e){let{icon:t,title:r,description:n,privacyPolicy:c,emailInputLabel:s,displayNameInput:l,nameInputLabel:p,subscribeButtonLabel:b,subscribeButtonLoadingLabel:f,card:O,toastSubscribe:y,toastSubscribeError:j,colorVariant:m}=e,g=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,d);return u.jsx(a.Z,{className:`${i().section} section-newsletter layout__section`,children:u.jsx(o.Z,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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({icon:t,title:r,description:n,privacyPolicy:c,emailInputLabel:s,displayNameInput:l,nameInputLabel:p,subscribeButtonLabel:b,subscribeButtonLoadingLabel:f,toastSubscribe:y,toastSubscribeError:j,card:O,colorVariant:m},g))})},l.u),f=b;n()}catch(e){n(e)}})},15988:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{O:()=>s});var o=r(8959),a=r(91716),c=r(71565),i=e([c]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}c=(i.then?(await i)():i)[0];let s=(0,a.v)(_objectSpread(_objectSpread(_objectSpread({},o.K),o.K),{},{Section:c.Z}));n()}catch(e){n(e)}})},76675:(e,t,r)=>{"use strict";r.d(t,{B:()=>s});var n=r(73888),o=r.n(n);let a=o()(()=>Promise.all([r.e(7228),r.e(8482),r.e(831),r.e(3006),r.e(1454),r.e(416),r.e(7371),r.e(2230),r.e(4219),r.e(8569),r.e(7169),r.e(8307),r.e(4451),r.e(9570),r.e(6335),r.e(5890)]).then(r.bind(r,74179)).then(e=>e.ProductShelf),{loadableGenerated:{modules:["../components/sections/ProductShelf/DefaultComponents.ts -> @faststore/ui"]}}),c=o()(()=>r.e(294).then(r.bind(r,294)),{loadableGenerated:{modules:["../components/sections/ProductShelf/DefaultComponents.ts -> src/components/ui/Carousel"]}}),i=o()(()=>r.e(3836).then(r.bind(r,33836)),{loadableGenerated:{modules:["../components/sections/ProductShelf/DefaultComponents.ts -> src/components/product/ProductCard"]}}),s={ProductShelf:a,__experimentalCarousel:c,__experimentalProductCard:i}},48459:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{T:()=>s});var o=r(47290),a=r(91716),c=r(26984),i=e([c]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}c=(i.then?(await i)():i)[0];let s=(0,a.v)(_objectSpread(_objectSpread(_objectSpread({},o.K),o.K),{},{Section:c.Z}));n()}catch(e){n(e)}})},26984:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>f});var o=r(19785),a=r(41325),c=r(49428),i=r(50881),s=r.n(i),l=r(76675),u=r(91716),p=r(20997),d=e([c]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}c=(d.then?(await d)():d)[0];let b=(0,u.B)("ProductShelf",function(e){let t=Object.assign({},e),{ref:r,inView:n}=(0,o.useInView)();return p.jsx(a.Z,{className:`${s().section} section-product-shelf layout__section`,ref:r,children:p.jsx(c.Z,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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({inView:n},t))})},l.B),f=b;n()}catch(e){n(e)}})},38342:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(16689),a=r(19785),c=r(80839),i=r(63994),s=r(73559),l=r(67901),u=r(21917),p=r(6377),d=r(41325),b=r(61044),f=r.n(b),O=r(20997),y=e([p]);p=(y.then?(await y)():y)[0];let j=["title","taxesConfiguration"],getRatio=(e,t)=>3===e&&0===t||2===e&&(0===t||1===t)?5/3:3/4,getSizes=(e,t)=>3===e&&0===t||2===e&&(0===t||1===t)?{width:594,height:364}:{width:284,height:364},__WEBPACK_DEFAULT_EXPORT__=e=>{let{title:t,taxesConfiguration:r}=e,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,j),b=(0,o.useRef)(!1),{ref:y,inView:m}=(0,a.useInView)(),g=(0,p.k)(n),h=g?.search?.products,w=h?.edges??[],{sendViewItemListEvent:P}=(0,u.m)({products:w,title:t,page:0,pageSize:0});return((0,o.useEffect)(()=>{m&&!b.current&&w.length&&(P(),b.current=!0)},[m,w.length,P]),h?.edges.length===0)?null:(0,O.jsxs)(d.Z,{className:`${f().section} section-product-tiles layout__section`,ref:y,children:[O.jsx("h2",{className:"text__title-section layout__content",children:t}),O.jsx(i.Z,{loading:!h,children:O.jsx(s.Z,{children:w.map((e,t)=>O.jsx(l.Z,{children:O.jsx(c.Z,{"data-testid":"tile-card",product:e.node,index:t+1,variant:"wide",aspectRatio:getRatio(w.length,t),imgProps:getSizes(w.length,t),taxesConfiguration:r})},e.node.id))})})]})};n()}catch(e){n(e)}})},63994:(e,t,r)=>{"use strict";r.d(t,{Z:()=>ProductTilesSkeleton_ProductTilesSkeleton});var n=r(73559),o=r(67901),a=r(10792),c=r(20997);let ProductTileSkeleton_ProductTileSkeleton=function({index:e,aspectRatio:t=1}){return(0,c.jsxs)("div",{"data-fs-product-tile-skeleton":!0,"data-fs-product-tile-skeleton-index":e,children:[c.jsx("div",{"data-fs-product-tile-skeleton-image":!0,"data-fs-product-tile-skeleton-index":e,style:{"--fs-product-tile-skeleton-image-aspect-ratio":t},children:c.jsx(a.Z,{size:{width:"auto",height:"100%"},loading:!0})}),(0,c.jsxs)("div",{"data-fs-product-tile-skeleton-content":!0,"data-fs-product-tile-skeleton-index":e,children:[(0,c.jsxs)("div",{"data-fs-product-tile-skeleton-heading":!0,children:[c.jsx("div",{"data-fs-product-tile-skeleton-text":!0,"data-fs-product-tile-skeleton-index":e,children:c.jsx(a.Z,{size:{width:"70%",height:"1.5rem"}})}),c.jsx("div",{"data-fs-product-tile-skeleton-price":!0,children:c.jsx(a.Z,{size:{width:"60%",height:"1.5rem"}})})]}),c.jsx("div",{"data-fs-product-tile-skeleton-badge":!0,"data-fs-product-tile-skeleton-index":e,children:c.jsx(a.Z,{size:{width:"6rem",height:"2rem"},border:"pill"})})]})]})},getRatio=(e,t)=>3===e&&0===t||2===e&&(0===t||1===t)?5/3:3/4,ProductTilesSkeleton_ProductTilesSkeleton=function({children:e,loading:t=!0}){return t?c.jsx(n.Z,{children:Array.from({length:3},(e,t)=>c.jsx(o.Z,{children:c.jsx(ProductTileSkeleton_ProductTileSkeleton,{index:t+1,aspectRatio:getRatio(3,t)})},String(t)))}):c.jsx(c.Fragment,{children:e})}},26039:(e,t,r)=>{"use strict";r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(39237),o=r(60679),a=r(20997);let __WEBPACK_DEFAULT_EXPORT__=function({id:e,testId:t,children:r,itemsPerPage:c,variant:i="scroll",infiniteMode:s=!1}){let{loading:l,isTablet:u,isMobile:p}=(0,o.Z)();return l?null:a.jsx(n.Z,{id:e,testId:t,variant:i,infiniteMode:s,itemsPerPage:u||p?1.6:c,children:r})}},64497:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(16689),a=r(16652),c=r(66372),i=r(29746),s=r(20997),l=e([c]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}c=(l.then?(await l)():l)[0];let __WEBPACK_DEFAULT_EXPORT__=function({icon:{icon:e,alt:t},title:r,description:n,privacyPolicy:l,emailInputLabel:u,displayNameInput:p,nameInputLabel:d,subscribeButtonLabel:b,subscribeButtonLoadingLabel:f,card:O,toastSubscribe:y,toastSubscribeError:j,colorVariant:m}){let{Button:g,HeaderIcon:h,InputFieldName:w,InputFieldEmail:P,Newsletter:_,NewsletterAddendum:v,NewsletterContent:S,NewsletterForm:x,NewsletterHeader:D,ToastIconError:E,ToastIconSuccess:k}=(0,i.r3)(),{pushToast:K}=(0,a.l)(),{subscribeUser:B,loading:T}=(0,c.u)(),C=(0,o.useRef)(null),Z=(0,o.useRef)(null),L=(0,o.useRef)(null),onSubmit=async e=>{e.preventDefault();try{let e=await B({data:{name:Z.current?.value??"",email:L.current?.value??""}});e?.subscribeToNewsletter?.id&&(K(_objectSpread(_objectSpread({},y),{},{status:"INFO",icon:s.jsx(k.Component,_objectSpread(_objectSpread({width:30,height:30},k.props),{},{name:y.icon??k.props.name}))})),C.current.reset())}catch(e){K(_objectSpread(_objectSpread({},j),{},{status:"ERROR",icon:s.jsx(E.Component,_objectSpread(_objectSpread({width:30,height:30},E.props),{},{name:y.icon??E.props.name}))}))}};return s.jsx(_.Component,_objectSpread(_objectSpread({card:O,colorVariant:m},_.props),{},{children:(0,s.jsxs)(x.Component,_objectSpread(_objectSpread({ref:C,onSubmit:onSubmit},x.props),{},{children:[s.jsx(D.Component,_objectSpread({title:r,description:n,icon:s.jsx(h.Component,_objectSpread(_objectSpread({width:32,height:32},h.props),{},{name:e??h.props.name,"aria-label":t??h.props["aria-label"]}))},D.props)),(0,s.jsxs)(S.Component,_objectSpread(_objectSpread({},S.props),{},{children:[p&&s.jsx(w.Component,_objectSpread(_objectSpread({id:"newsletter-name",required:!0},w.props),{},{label:d??w.props.label,inputRef:Z})),s.jsx(P.Component,_objectSpread(_objectSpread({id:"newsletter-email",type:"email",required:!0},P.props),{},{label:u??P.props.label,inputRef:L})),s.jsx(v.Component,_objectSpread({addendum:l},v.props)),s.jsx(g.Component,_objectSpread(_objectSpread({variant:"secondary",inverse:!0,type:"submit"},g.props),{},{children:T?f:b}))]}))]}))}))};n()}catch(e){n(e)}})},82044:(e,t,r)=>{"use strict";r.d(t,{a:()=>NewsletterAddendum});var n=r(78641),o=r.n(n),a=r(92294),c=r(20997);let i=["addendum"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function NewsletterAddendum(e){let{addendum:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,i);return c.jsx(a.Z,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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({dangerouslySetInnerHTML:{__html:function(e){if(!e)return"";let t=null;try{t=JSON.parse(e)}catch(e){throw Error('Newsletter\'s prop "addendum" is not a JSON string. This is happening because the overridden prop is malformed or the CMS is providing malformed content for that prop.',{cause:e})}return t?o()(t,void 0,void 0,(e,t)=>{var r;return"LINK"!==e.type?null:(r=e.data.url,`
|
|
2
|
-
<a
|
|
3
|
-
data-fs-link="true"
|
|
4
|
-
data-fs-link-variant="inline"
|
|
5
|
-
data-fs-link-inverse="true"
|
|
6
|
-
data-fs-link-size="regular"
|
|
7
|
-
data-testid="fs-link"
|
|
8
|
-
href="${r}"
|
|
9
|
-
>${t}</a>`)}):""}(t)}},r))}},49428:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(73888),a=r.n(o),c=r(16689),i=r(21917),s=r(29746),l=r(6377),u=r(4018),p=r(20997),d=e([l]);l=(d.then?(await d)():d)[0];let b=["title","inView","productCardConfiguration","numberOfItems","itemsPerPage","taxesConfiguration"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):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()(()=>Promise.all([r.e(8335),r.e(4799)]).then(r.bind(r,14799)),{loadableGenerated:{modules:["../components/ui/ProductShelf/ProductShelf.tsx -> src/components/skeletons/ProductShelfSkeleton"]}}),__WEBPACK_DEFAULT_EXPORT__=function(e){let{title:t,inView:r,productCardConfiguration:{bordered:n,showDiscountBadge:o}={},numberOfItems:a,itemsPerPage:d=5,taxesConfiguration:O={}}=e,y=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,b),{ProductShelf:j,__experimentalCarousel:m,__experimentalProductCard:g}=(0,s.r3)(),h=(0,u.B5)(t),w=(0,c.useId)(),P=(0,c.useRef)(!1),_=(0,l.k)(_objectSpread({first:a},y)),v=_?.search?.products,S=v?.edges??[],{sendViewItemListEvent:x}=(0,i.m)({products:S,title:t,page:0,pageSize:0});return((0,c.useEffect)(()=>{r&&!P.current&&S.length&&(x(),P.current=!0)},[r,S.length,x]),v?.edges.length===0)?null:(0,p.jsxs)(p.Fragment,{children:[p.jsx("h2",{className:"text__title-section layout__content",children:t}),p.jsx(f,{aspectRatio:1,loading:void 0===v,itemsPerPage:d,children:p.jsx(j.Component,_objectSpread(_objectSpread({},j.props),{},{children:p.jsx(m.Component,_objectSpread(_objectSpread({id:h||w,itemsPerPage:d},m.props),{},{children:S.map((e,t)=>(0,c.createElement)(g.Component,_objectSpread(_objectSpread({aspectRatio:1,imgProps:{width:216,height:216,sizes:"(max-width: 768px) 42vw, 30vw"}},g.props),{},{bordered:n??g.props.bordered,showDiscountBadge:o??g.props.showDiscountBadge,taxesConfiguration:O,key:`${e.node.id}`,product:e.node,index:t+1})))}))}))})]})};n()}catch(e){n(e)}})},73559:(e,t,r)=>{"use strict";r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(23877),o=r(20997);let a=["children"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):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 __WEBPACK_DEFAULT_EXPORT__=e=>{let{children:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,a);return o.jsx(n.Z,_objectSpread(_objectSpread({},r),{},{children:t}))}},7935:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});let n={section:"CrossSellingShelf"}},8959:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});let n={section:"Newsletter"}},47290:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});let n={section:"ProductShelf"}},21917:(e,t,r)=>{"use strict";r.d(t,{m:()=>useViewItemListEvent});var n=r(16689),o=r(70031);let useViewItemListEvent=({products:e,title:t,page:a,pageSize:c})=>{let{currency:{code:i}}=(0,o.kP)(),s=(0,n.useCallback)(n=>{let o=e?.length?e:n?.products;o&&0!==o.length&&Promise.all([r.e(9664),r.e(2880),r.e(1153)]).then(r.bind(r,81153)).then(({sendAnalyticsEvent:e})=>{e({name:"view_item_list",params:{item_list_name:t,item_list_id:t,items:o.map(({node:e},t)=>({item_id:e.isVariantOf.productGroupID,item_name:e.isVariantOf.name,item_brand:e.brand.name,item_variant:e.sku,price:e.offers.offers[0].price,index:a*c+t+1,discount:e.offers.offers[0].listPrice-e.offers.offers[0].price,currency:i,item_variant_name:e.name,product_reference_id:e.gtin}))}})})},[i,e,t,a,c]);return{sendViewItemListEvent:s}}},8098:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{t:()=>useLazyQuery});var o=r(15941),a=r(57440),c=r(52693),i=e([o,c]);[o,c]=i.then?(await i)():i;let useLazyQuery=(e,t,r)=>{let n=(0,o.default)((0,c.km)(e.__meta__.operationName,t),()=>null,c.WN),execute=async t=>{let o=await (0,a.W)(e,t,r),c=await n.mutate(o,!1);return c};return[execute,n]};n()}catch(e){n(e)}})},66372:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{u:()=>useNewsletter});var o=r(25487),a=r(8098),c=e([a]);a=(c.then?(await c)():c)[0];let i=o.HZ,useNewsletter=()=>{let[e,{data:t,error:r,isValidating:n}]=(0,a.t)(i,{data:{name:"",email:""}});return{subscribeUser:e,data:t,error:r,loading:n}};n()}catch(e){n(e)}})},27772:(e,t,r)=>{"use strict";r.d(t,{y:()=>useLocalizedVariables});var n=r(16689),o=r(98132),a=r(70031);let toArray=e=>Array.isArray(e)?e:e?[e]:[],useLocalizedVariables=({first:e,after:t,sort:r,term:c,selectedFacets:i,sponsoredCount:s})=>{let{channel:l,locale:u}=(0,a.kP)();return(0,n.useMemo)(()=>{let n=toArray(i);return{first:e??o.KS,after:t??"0",sort:r??"score_desc",term:c??"",selectedFacets:[...n,{key:"channel",value:l??""},{key:"locale",value:u}],sponsoredCount:s??3}},[i,e,t,r,c,l,u,s])}},6377:(e,t,r)=>{"use strict";r.a(e,async(e,n)=>{try{r.d(t,{k:()=>useProductsQuery});var o=r(25487),a=r(52693),c=r(27772),i=e([a]);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}a=(i.then?(await i)():i)[0];let s=o.gU,useProductsQuery=(e,t)=>{let r=(0,c.y)(e),{data:n}=(0,a.aM)(s,r,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 n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({fallbackData:null,suspense:!0},t));return n};n()}catch(e){n(e)}})},6359:(e,t,r)=>{"use strict";r.d(t,{s:()=>getRedirect});var n=r(43412),o=r.n(n);let a=/\.(js|css|png|jpg|jpeg|svg|gif|webp|ico|json|map)$/i;async function getRedirect({pathname:e}){let t=!a.test(e);if(!t)return null;try{let t=await fetch(`https://${o().api.storeId}.myvtex.com/_v/public/redirect-evaluate${e}`);if(!t.ok)return null;let r=await t.json();if(r.location)return{destination:r.location,permanent:308===r.status};return null}catch(e){return console.error(e),null}}},92258:e=>{e.exports={section:"section_section__YBgvV"}},14:e=>{e.exports={section:"section_section__p_P_L"}},91742:e=>{e.exports={section:"section_section__dvBbv"}},63775:e=>{e.exports={section:"section_section__6iqtV"}},50881:e=>{e.exports={section:"section_section__TjtMz",loading:"section_loading__ffSvt"}},61044:e=>{e.exports={section:"section_section__Wwc_y",loading:"section_loading__7M1Dl"}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=9664,exports.ids=[9664],exports.modules={9664:(e,t,r)=>{r.d(t,{Ru:()=>removeFacet,a2:()=>toggleFacets,uL:()=>setFacet,wB:()=>toggleFacet,wb:()=>isSearchSort});var a=r(12254);let s=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>s.has(e),removeFacet=(e,t)=>{let{value:r}=t,s=e.findIndex(e=>e.value===r);if(s<0)throw new a.q(`Cannot remove ${r} from search params`);return e.filter((e,t)=>t!==s)},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)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1153],{1153:function(e,t,n){n.r(t),n.d(t,{ANALYTICS_EVENT_TYPE:function(){return r.vi},STORE_EVENT_PREFIX:function(){return r.Mi},SearchProvider:function(){return s.z},UIContext:function(){return S},UIProvider:function(){return Provider_Provider},compose:function(){return N.q},createBaseStore:function(){return M.M},createCartStore:function(){return p.n},createSessionStore:function(){return I.S},createStore:function(){return _.M},formatSearchState:function(){return o.Z},initSearchState:function(){return c.j},isSearchSort:function(){return a.wb},optimistic:function(){return C.A},parseSearchState:function(){return i.Q},persisted:function(){return h.R},removeFacet:function(){return a.Ru},sendAnalyticsEvent:function(){return sendAnalyticsEvent},setFacet:function(){return a.uL},singleton:function(){return y.r},toggleFacet:function(){return a.wB},toggleFacets:function(){return a.a2},useAnalyticsEvent:function(){return u.W},useGlobalUIState:function(){return useGlobalUIState},usePagination:function(){return l.h},useSearch:function(){return f.R}});var r=n(4950);let sendAnalyticsEvent=e=>{try{window.postMessage((0,r.re)(e),window.origin)}catch(e){console.error(e)}};var u=n(8529),i=n(6142),o=n(2339),c=n(2524),a=n(9664),s=n(1197),f=n(9029),l=n(1341),d=n(4194);let S=(0,d.createContext)(void 0);S.displayName="UIContext";let E={displayMinicart:!1},reducer=e=>{let t={OPEN_MINICART:e=>({...e,displayMinicart:!0}),CLOSE_MINICART:e=>({...e,displayMinicart:!1}),...e};return(e,{type:n,data:r})=>{let u=t[n];if("function"==typeof u)return u(e,r);throw Error("Unknown UI state")}},defaultEffects=()=>({}),Provider_Provider=({children:e,actions:t={},effects:n=defaultEffects,initialState:r={}})=>{let[u,i]=(0,d.useReducer)(reducer(t),{...E,...r}),o=(0,d.useMemo)(()=>({...n(i),openMinicart:()=>i({type:"OPEN_MINICART"}),closeMinicart:()=>i({type:"CLOSE_MINICART"})}),[n]),c=(0,d.useMemo)(()=>({...u,...o}),[o,u]);return d.createElement(S.Provider,{value:c},e)};var v=n(7943);let useGlobalUIState=()=>(0,v.q)(S);var I=n(8987),p=n(9380),M=n(3365),_=n(9578),C=n(5214),h=n(3169),y=n(8901),N=n(8956)}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1552,7195,1153],{1153:function(e,t,r){r.r(t),r.d(t,{ANALYTICS_EVENT_TYPE:function(){return n.vi},STORE_EVENT_PREFIX:function(){return n.Mi},SearchProvider:function(){return c.z},UIContext:function(){return g},UIProvider:function(){return Provider_Provider},compose:function(){return I.q},createBaseStore:function(){return m.M},createCartStore:function(){return v.n},createSessionStore:function(){return p.S},createStore:function(){return y.M},formatSearchState:function(){return u.Z},initSearchState:function(){return i.j},isSearchSort:function(){return s.wb},optimistic:function(){return _.A},parseSearchState:function(){return o.Q},persisted:function(){return w.R},removeFacet:function(){return s.Ru},sendAnalyticsEvent:function(){return sendAnalyticsEvent},setFacet:function(){return s.uL},singleton:function(){return P.r},toggleFacet:function(){return s.wB},toggleFacets:function(){return s.a2},useAnalyticsEvent:function(){return a.W},useGlobalUIState:function(){return useGlobalUIState},usePagination:function(){return f.h},useSearch:function(){return l.R}});var n=r(4950);let sendAnalyticsEvent=e=>{try{window.postMessage((0,n.re)(e),window.origin)}catch(e){console.error(e)}};var a=r(8529),o=r(6142),u=r(2339),i=r(2524),s=r(9664),c=r(1197),l=r(9029),f=r(1341),d=r(4194);let g=(0,d.createContext)(void 0);g.displayName="UIContext";let S={displayMinicart:!1},reducer=e=>{let t={OPEN_MINICART:e=>({...e,displayMinicart:!0}),CLOSE_MINICART:e=>({...e,displayMinicart:!1}),...e};return(e,{type:r,data:n})=>{let a=t[r];if("function"==typeof a)return a(e,n);throw Error("Unknown UI state")}},defaultEffects=()=>({}),Provider_Provider=({children:e,actions:t={},effects:r=defaultEffects,initialState:n={}})=>{let[a,o]=(0,d.useReducer)(reducer(t),{...S,...n}),u=(0,d.useMemo)(()=>({...r(o),openMinicart:()=>o({type:"OPEN_MINICART"}),closeMinicart:()=>o({type:"CLOSE_MINICART"})}),[r]),i=(0,d.useMemo)(()=>({...a,...u}),[u,a]);return d.createElement(g.Provider,{value:i},e)};var h=r(7943);let useGlobalUIState=()=>(0,h.q)(g);var p=r(8987),v=r(9380),m=r(3365),y=r(9578),_=r(5214),w=r(3169),P=r(8901),I=r(8956)},1197:function(e,t,r){r.d(t,{_:function(){return u},z:function(){return Provider}});var n=r(4194),a=r(2254);function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let r=`__fs_gallery_page_${t}`;sessionStorage.setItem(r,JSON.stringify(e))}catch(e){return}}let reducer=(e,t)=>{switch(t.type){case"addPrev":{let t=e[0]-1,r=[t,...e];return setPagesSessionStorage(r),r}case"addNext":{let t=Number(e[e.length-1])+1,r=[...e,t];return setPagesSessionStorage(r),r}case"reset":{let{payload:e}=t,r=[e];return setPagesSessionStorage(r),r}default:throw new a.q("Unknown action for infinite search")}},useSearchInfiniteState=e=>{let[t,r]=(0,n.useReducer)(reducer,void 0,()=>(function(){try{let e=window.history.state?.key;if(!e)return null;let t=`__fs_gallery_page_${e}`,r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}})()??[e]),a=(0,n.useMemo)(()=>({addPrevPage:()=>r({type:"addPrev"}),addNextPage:()=>r({type:"addNext"}),resetInfiniteScroll:e=>r({type:"reset",payload:e})}),[]);return{pages:t,...a}};var o=r(2524);let u=(0,n.createContext)(void 0),Provider=({children:e,itemsPerPage:t,onChange:r,...a})=>{let{state:i,...s}=(0,o.X)(a,r),{pages:c,...l}=useSearchInfiniteState(i.page),f=(0,n.useMemo)(()=>({state:i,...s,pages:c,...l,itemsPerPage:t}),[l,t,c,s,i]);return n.createElement(u.Provider,{value:f},e)}},9664:function(e,t,r){r.d(t,{Ru:function(){return removeFacet},a2:function(){return toggleFacets},uL:function(){return setFacet},wB:function(){return toggleFacet},wb:function(){return isSearchSort}});var n=r(2254);let a=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>a.has(e),removeFacet=(e,t)=>{let{value:r}=t,a=e.findIndex(e=>e.value===r);if(a<0)throw new n.q(`Cannot remove ${r} from search params`);return e.filter((e,t)=>t!==a)},setFacet=(e,t,r)=>{if(!0===r){let r=e.findIndex(e=>e.key===t.key);if(r>-1)return e.map((e,n)=>n===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)},6142:function(e,t,r){r.d(t,{Q:function(){return parse}});var n=r(2254),a=r(9664),o=r(2524);let parse=({pathname:e,searchParams:t})=>{let r=(0,o.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,a.wb)(r.sort))throw new n.q(`Uknown sorting option ${r.sort}`);let u=t.get("facets")?.split(",")??[];for(let e of u){let n=t.getAll(e);for(let t of n)r.selectedFacets=(0,a.uL)(r.selectedFacets,{key:e,value:t})}return r.passThrough=function(e,t){let r=new URLSearchParams,n=new Set(t),a=Array.from(e.entries());for(let[e,t]of a)n.has(e)||r.append(e,t);return r}(t,["q","sort","page","facets",...u]),r}},1341:function(e,t,r){r.d(t,{h:function(){return usePagination}});var n=r(4194),a=r(2339),o=r(9029);let getLink=e=>{let{pathname:t,search:r}=(0,a.Z)(e);return`${t}${r}`},usePagination=e=>{let{pages:t,itemsPerPage:r,state:a}=(0,o.R)(),u=Math.ceil(e/r),i=Number(t[t.length-1])+1,s=t[0]-1;return(0,n.useMemo)(()=>({next:i<u&&{cursor:i,link:getLink({...a,page:i})},prev:s>-1&&{cursor:s,link:getLink({...a,page:s})}}),[i,s,a,u])}},9029:function(e,t,r){r.d(t,{R:function(){return useSearch}});var n=r(1197),a=r(7943);let useSearch=()=>(0,a.q)(n._)},2524:function(e,t,r){r.d(t,{X:function(){return useSearchState},j:function(){return initialize}});var n=r(4194),a=r(2339);let initialize=({sort:e="score_desc",selectedFacets:t=[],term:r=null,base:n="/",page:a=0,passThrough:o=new URLSearchParams}={})=>({sort:e,selectedFacets:t,term:r,base:n,page:a,passThrough:o}),equals=(e,t)=>(0,a.Z)(e).href===(0,a.Z)(t).href,useSearchState=(e,t)=>{let r=(0,n.useMemo)(()=>initialize(e),[e]);return(0,n.useMemo)(()=>({state:r,setState:e=>!equals(e,r)&&t((0,a.Z)(e))}),[t,r])}},2339:function(e,t){t.Z=e=>{let t=new URL(e.base,"http://localhost"),{page:r,selectedFacets:n,sort:a,term:o,passThrough:u}=e;null!==o&&t.searchParams.set("q",o);let i=new Set;for(let e of n)t.searchParams.append(e.key,e.value),i.add(e.key);if(n.length>0&&t.searchParams.set("facets",Array.from(i).join(",")),t.searchParams.set("sort",a),t.searchParams.set("page",r.toString()),u)for(let[e,r]of u.entries())t.searchParams.append(e,r);return t}},7943:function(e,t,r){r.d(t,{q:function(){return useContext}});var n=r(4194),a=r(2254);let useContext=e=>{let t=(0,n.useContext)(e);if(void 0===t)throw new a.q(`${e.displayName??"Context"} needs to be on the React tree`);return t}}}]);
|