@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.
Files changed (131) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +44 -44
  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/react-loadable-manifest.json +38 -38
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/2778.js +9 -0
  14. package/.next/server/chunks/2792.js +1 -0
  15. package/.next/server/chunks/3918.js +1 -0
  16. package/.next/server/chunks/3963.js +1 -0
  17. package/.next/server/chunks/{2554.js → 4941.js} +2 -2
  18. package/.next/server/chunks/6011.js +2 -2
  19. package/.next/server/chunks/6393.js +1 -0
  20. package/.next/server/chunks/7178.js +1 -1
  21. package/.next/server/chunks/76.js +1 -1
  22. package/.next/server/chunks/8687.js +1 -1
  23. package/.next/server/chunks/948.js +1 -1
  24. package/.next/server/chunks/9563.js +2 -2
  25. package/.next/server/chunks/9853.js +1 -1
  26. package/.next/server/functions-config-manifest.json +1 -1
  27. package/.next/server/middleware-build-manifest.js +1 -1
  28. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  29. package/.next/server/pages/404.js +1 -1
  30. package/.next/server/pages/404.js.nft.json +1 -1
  31. package/.next/server/pages/500.js +1 -1
  32. package/.next/server/pages/500.js.nft.json +1 -1
  33. package/.next/server/pages/[...slug].js +1 -1
  34. package/.next/server/pages/[...slug].js.nft.json +1 -1
  35. package/.next/server/pages/[slug]/p.js +1 -1
  36. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  37. package/.next/server/pages/_app.js +1 -1
  38. package/.next/server/pages/_app.js.nft.json +1 -1
  39. package/.next/server/pages/_document.js.nft.json +1 -1
  40. package/.next/server/pages/_error.js +1 -1
  41. package/.next/server/pages/_error.js.nft.json +1 -1
  42. package/.next/server/pages/account/403.js +1 -1
  43. package/.next/server/pages/account/403.js.nft.json +1 -1
  44. package/.next/server/pages/account/404.js +1 -1
  45. package/.next/server/pages/account/404.js.nft.json +1 -1
  46. package/.next/server/pages/account/[...unknown].js +1 -1
  47. package/.next/server/pages/account/[...unknown].js.nft.json +1 -1
  48. package/.next/server/pages/account/orders/[id].js +1 -1
  49. package/.next/server/pages/account/orders/[id].js.nft.json +1 -1
  50. package/.next/server/pages/account/orders.js +1 -1
  51. package/.next/server/pages/account/orders.js.nft.json +1 -1
  52. package/.next/server/pages/account/profile.js +1 -1
  53. package/.next/server/pages/account/profile.js.nft.json +1 -1
  54. package/.next/server/pages/account/security.js +1 -1
  55. package/.next/server/pages/account/security.js.nft.json +1 -1
  56. package/.next/server/pages/account/user-details.js +1 -1
  57. package/.next/server/pages/account/user-details.js.nft.json +1 -1
  58. package/.next/server/pages/account.js +1 -1
  59. package/.next/server/pages/account.js.nft.json +1 -1
  60. package/.next/server/pages/api/graphql.js +2 -2
  61. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  62. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  63. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  64. package/.next/server/pages/api/preview.js.nft.json +1 -1
  65. package/.next/server/pages/checkout.js +1 -1
  66. package/.next/server/pages/checkout.js.nft.json +1 -1
  67. package/.next/server/pages/en-US/404.html +2 -2
  68. package/.next/server/pages/en-US/404.json +1 -1
  69. package/.next/server/pages/en-US/500.html +2 -2
  70. package/.next/server/pages/en-US/500.json +1 -1
  71. package/.next/server/pages/en-US/checkout.html +2 -2
  72. package/.next/server/pages/en-US/checkout.json +1 -1
  73. package/.next/server/pages/en-US/login.html +2 -2
  74. package/.next/server/pages/en-US/login.json +1 -1
  75. package/.next/server/pages/en-US/s.html +2 -2
  76. package/.next/server/pages/en-US/s.json +1 -1
  77. package/.next/server/pages/en-US.html +2 -2
  78. package/.next/server/pages/en-US.json +1 -1
  79. package/.next/server/pages/index.js +1 -1
  80. package/.next/server/pages/index.js.nft.json +1 -1
  81. package/.next/server/pages/login.js +1 -1
  82. package/.next/server/pages/login.js.nft.json +1 -1
  83. package/.next/server/pages/s.js +1 -1
  84. package/.next/server/pages/s.js.nft.json +1 -1
  85. package/.next/server/pages-manifest.json +1 -1
  86. package/.next/static/{OTQR8Iw9Zpev4JgWAegsJ → B1tGZHuLyVThpqeX7jh3X}/_buildManifest.js +1 -1
  87. package/.next/static/chunks/{2284.abe693ea8fc2cb2d.js → 2284.1b43aea18c23c79e.js} +1 -1
  88. package/.next/static/chunks/{3166-24f6435f36cb29f1.js → 3166-1fd17b322ca991eb.js} +1 -1
  89. package/.next/static/chunks/{3399.2e58ebb0a25be0b0.js → 3399.13a97fefb512c902.js} +1 -1
  90. package/.next/static/chunks/{3836.bcaa7db71d61d35d.js → 3836.c0487aea7bd0c6f0.js} +1 -1
  91. package/.next/static/chunks/6393.361c44eb0818eb7e.js +1 -0
  92. package/.next/static/chunks/7191-2a7b8ddbd07128b6.js +1 -0
  93. package/.next/static/chunks/{9173-f1dbeccc6eaecda7.js → 9173-737c162805bb7193.js} +1 -1
  94. package/.next/static/chunks/9399.49b20139636a39f2.js +1 -0
  95. package/.next/static/chunks/{CartItem.879b31c2bb4b1620.js → CartItem.e010557e686e1009.js} +1 -1
  96. package/.next/static/chunks/{CartSidebar.9453ed62d746f533.js → CartSidebar.4822eeeb560ccb43.js} +1 -1
  97. package/.next/static/chunks/{ProductShelf.aa249e5172284411.js → ProductShelf.ffceb1cb3d66e171.js} +1 -1
  98. package/.next/static/chunks/{ProductTiles.c236bd96cffe5500.js → ProductTiles.77284431e2b8c898.js} +1 -1
  99. package/.next/static/chunks/{UISKUMatrixSidebar.b818031f8aeabed1.js → UISKUMatrixSidebar.782c55a97889e84a.js} +1 -1
  100. package/.next/static/chunks/pages/[...slug]-34d0d47df01bbdc6.js +1 -0
  101. package/.next/static/chunks/pages/[slug]/{p-6fff274a4d271328.js → p-a255e4a7352455df.js} +1 -1
  102. package/.next/static/chunks/pages/_app-52aa8f30f7707675.js +1 -0
  103. package/.next/static/chunks/pages/account/{orders-2e03fa7da5518d2e.js → orders-6aad8b35fc95ce57.js} +1 -1
  104. package/.next/static/chunks/pages/{s-2c16c11ad1e70f5a.js → s-9b0f606f120d66b0.js} +1 -1
  105. package/.next/static/chunks/webpack-cde3c2053d848754.js +1 -0
  106. package/.next/trace +128 -128
  107. package/.turbo/turbo-build.log +36 -33
  108. package/.turbo/turbo-test.log +6 -5
  109. package/@generated/gql.ts +2 -2
  110. package/@generated/graphql.ts +4 -1
  111. package/@generated/persisted-documents.json +1 -1
  112. package/@generated/schema.graphql +2 -0
  113. package/CHANGELOG.md +8 -0
  114. package/package.json +4 -4
  115. package/src/components/templates/ProductListingPage/ProductListing.tsx +2 -2
  116. package/src/pages/_app.tsx +8 -0
  117. package/src/sdk/search/state.ts +13 -11
  118. package/src/sdk/session/index.ts +13 -8
  119. package/.next/server/chunks/1153.js +0 -1
  120. package/.next/server/chunks/2524.js +0 -1
  121. package/.next/server/chunks/2880.js +0 -1
  122. package/.next/server/chunks/8474.js +0 -9
  123. package/.next/server/chunks/9664.js +0 -1
  124. package/.next/static/chunks/1153.8f0ac867c4ddce90.js +0 -1
  125. package/.next/static/chunks/1552.8751332da83cadc5.js +0 -1
  126. package/.next/static/chunks/4965-ec3d107320d2c4f8.js +0 -1
  127. package/.next/static/chunks/7195.fd4cacc0bef1a233.js +0 -1
  128. package/.next/static/chunks/pages/[...slug]-8430650764bc7f0a.js +0 -1
  129. package/.next/static/chunks/pages/_app-c3c48f43debbbf4b.js +0 -1
  130. package/.next/static/chunks/webpack-55615c90e2125cd2.js +0 -1
  131. /package/.next/static/{OTQR8Iw9Zpev4JgWAegsJ → B1tGZHuLyVThpqeX7jh3X}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.59.0 prebuild /home/runner/work/faststore/faststore/packages/core
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.59.0 partytown /home/runner/work/faststore/faststore/packages/core
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.59.0 generate /home/runner/work/faststore/faststore/packages/core
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.59.0 generate:schema /home/runner/work/faststore/faststore/packages/core
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.59.0 generate:codegen /home/runner/work/faststore/faststore/packages/core
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.59.0 format:generated /home/runner/work/faststore/faststore/packages/core
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.59.0 build /home/runner/work/faststore/faststore/packages/core
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 132 kB
78
+ ┌ ● / 3.87 kB 133 kB
76
79
  ├ └ css/b1806cbafd0c1f81.css 3.06 kB
77
- ├ /_app 0 B 98.4 kB
78
- ├ ● /[...slug] 2.43 kB 141 kB
79
- ├ ● /[slug]/p 32.4 kB 160 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 129 kB
84
- ├ ● /500 1.48 kB 129 kB
85
- ├ λ /account 240 B 98.6 kB
86
- ├ ● /account/[...unknown] 281 B 98.7 kB
87
- ├ λ /account/403 2.33 kB 130 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 130 kB
92
+ ├ λ /account/404 2.03 kB 131 kB
90
93
  ├ └ css/5347dbc8b71de47d.css 4.25 kB
91
- ├ λ /account/orders 8.86 kB 137 kB
94
+ ├ λ /account/orders 8.57 kB 138 kB
92
95
  ├ └ css/8a3f440e0ff9cd8e.css 11.9 kB
93
- ├ λ /account/orders/[id] 10 kB 138 kB
96
+ ├ λ /account/orders/[id] 10 kB 139 kB
94
97
  ├ └ css/506442c818624bd2.css 11.5 kB
95
- ├ λ /account/profile 1.27 kB 129 kB
96
- ├ λ /account/security 1.27 kB 129 kB
97
- ├ λ /account/user-details 1.28 kB 129 kB
98
- ├ λ /api/graphql 0 B 98.4 kB
99
- ├ λ /api/health/live 0 B 98.4 kB
100
- ├ λ /api/health/ready 0 B 98.4 kB
101
- ├ λ /api/preview 0 B 98.4 kB
102
- ├ ● /checkout 696 B 129 kB
103
- ├ ● /login 1.59 kB 130 kB
104
- └ ● /s 3.16 kB 141 kB
105
- + First Load JS shared by all 102 kB
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-c3c48f43debbbf4b.js 16.3 kB
109
- ├ chunks/webpack-55615c90e2125cd2.js 3.7 kB
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)
@@ -1,14 +1,15 @@
1
1
 
2
- > @faststore/core@3.59.0 test /home/runner/work/faststore/faststore/packages/core
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.82 s)
6
- PASS test/utils/multipleTemplates.test.ts (25.949 s)
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.673 s)
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.062 s
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.
@@ -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: '6f6d66826c836c3633a8dc3d2fe8220c386584d6',
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
- "6f6d66826c836c3633a8dc3d2fe8220c386584d6": "mutation ValidateSession($search: String!, $session: IStoreSession!) { validateSession(session: $session, search: $search) { addressType b2b { customerId firstName isRepresentative lastName 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 } }",
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.1",
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.59.0",
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.56.1",
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": "f66232e3ae15edd987ca0cb8c555e599c4979de1"
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(formatSearchState(state))
63
+ applySearchState(serializedState())
64
64
  }
65
65
  }, [])
66
66
 
@@ -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>
@@ -1,16 +1,18 @@
1
1
  import { useCallback } from 'react'
2
- import { useRouter } from 'next/router'
3
2
 
4
3
  export const useApplySearchState = () => {
5
- const router = useRouter()
4
+ return useCallback((url: URL) => {
5
+ const newUrl = `${url.pathname}${url.search}`
6
6
 
7
- return useCallback(
8
- (url: URL) => {
9
- const newUrl = `${url.pathname}${url.search}`
10
- return url.searchParams.has('fuzzy') && url.searchParams.has('operator')
11
- ? router.replace(newUrl)
12
- : router.push(newUrl)
13
- },
14
- [router]
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
  }
@@ -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
- const isLoggedIn = !!session.person?.id
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 user is logged try to get the location (postalCode / geoCoordinates / country) from the user's address
75
- if (isLoggedIn) {
76
- const userId = session.person?.id
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
- // Use the initial postalCode defined in discovery.config.js
102
+ // Fallback: use the initial postalCode defined in discovery.config.js
97
103
  const initialPostalCode = defaultStore.readInitial().postalCode
98
104
 
99
- if (!!initialPostalCode) {
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}}}]);