@faststore/core 3.91.2 → 3.91.3-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +77 -77
- 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/images-manifest.json +1 -1
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +10 -10
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/3836.js +1 -1
- package/.next/server/chunks/4168.js +1 -1
- package/.next/server/chunks/4803.js +1 -1
- package/.next/server/chunks/5683.js +1 -1
- package/.next/server/chunks/6789.js +1 -1
- package/.next/server/chunks/7098.js +1 -1
- package/.next/server/chunks/870.js +1 -1
- package/.next/server/chunks/948.js +1 -1
- package/.next/server/chunks/9563.js +1 -1
- package/.next/server/chunks/9740.js +1 -1
- package/.next/server/chunks/UISKUMatrixSidebar.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/[slug]/p.js +1 -1
- package/.next/server/pages/api/graphql.js +1 -1
- package/.next/server/pages/en-US/404.html +1 -1
- package/.next/server/pages/en-US/500.html +1 -1
- package/.next/server/pages/en-US/checkout.html +1 -1
- package/.next/server/pages/en-US/login.html +1 -1
- package/.next/server/pages/en-US/s.html +1 -1
- package/.next/server/pages/en-US.html +1 -1
- package/.next/server/pages/pvt/account/orders.js +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/chunks/2284.dffe7b0e5a5bfb4a.js +1 -0
- package/.next/static/chunks/3836.612763339fc4c64c.js +1 -0
- package/.next/static/chunks/5859.1023ecc1175e7e5a.js +1 -0
- package/.next/static/chunks/{6031-a7dfc540189ff57c.js → 6031-b0b111f48a7d504d.js} +2 -2
- package/.next/static/chunks/6789.960162355435a81d.js +1 -0
- package/.next/static/chunks/7191-500e9959223756a8.js +1 -0
- package/.next/static/chunks/{9173-51ba7ca2f546f879.js → 9173-2dea6acd60aa8030.js} +1 -1
- package/.next/static/chunks/CartItem.092df07db9e8b271.js +1 -0
- package/.next/static/chunks/Gift.08db4da8c89cacf1.js +1 -0
- package/.next/static/chunks/UISKUMatrixSidebar.87ba393b7d738e99.js +1 -0
- package/.next/static/chunks/{main-595f5e3b626b9fff.js → main-ec03882c4375091d.js} +1 -1
- package/.next/static/chunks/pages/[slug]/p-28fab8021db28766.js +1 -0
- package/.next/static/chunks/pages/_app-812458b055482ec9.js +1 -0
- package/.next/static/chunks/pages/index-900b6104074a72b8.js +1 -0
- package/.next/static/chunks/pages/pvt/account/orders-369a813fa114b381.js +1 -0
- package/.next/static/chunks/{webpack-95c6847556354c4b.js → webpack-d6cf2499d0200c56.js} +1 -1
- package/.next/static/css/{244373752cfc52c7.css → 9f8fb1ef9b49d844.css} +1 -1
- package/.next/static/{e1Iy_PbcFsZ57QejzRzyL → k4WXbVPgcGEZjcUDnpapc}/_buildManifest.js +1 -1
- package/.next/trace +137 -138
- package/.turbo/turbo-build.log +13 -13
- package/.turbo/turbo-test.log +5 -5
- package/CHANGELOG.md +7 -0
- package/discovery.config.default.js +0 -1
- package/next.config.js +2 -0
- package/package.json +7 -7
- package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterSlider.tsx +0 -8
- package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/section.module.scss +0 -2
- package/src/components/account/orders/MyAccountListOrders/MyAccountListOrders.tsx +1 -28
- package/src/components/account/orders/MyAccountListOrders/MyAccountSelectedTags/MyAccountSelectedTags.tsx +3 -20
- package/src/components/ui/Image/Image.tsx +4 -5
- package/src/components/ui/Image/loader.ts +60 -26
- package/src/pages/pvt/account/orders/index.tsx +0 -6
- package/src/sdk/search/useMyAccountFilter.ts +0 -7
- package/.next/static/chunks/2284.be64169724492654.js +0 -1
- package/.next/static/chunks/3836.5a76d717d95d1f2d.js +0 -1
- package/.next/static/chunks/5859.0b4ee873dc86bef7.js +0 -1
- package/.next/static/chunks/6789.856de844108ee5da.js +0 -1
- package/.next/static/chunks/7191-eef95438b827504b.js +0 -1
- package/.next/static/chunks/CartItem.afa42120880fcb94.js +0 -1
- package/.next/static/chunks/Gift.9d0570cbe866077f.js +0 -1
- package/.next/static/chunks/UISKUMatrixSidebar.2cfa8552a84d2f5f.js +0 -1
- package/.next/static/chunks/pages/[slug]/p-5f89d29d02064f15.js +0 -1
- package/.next/static/chunks/pages/_app-e8ac4d8f914feb94.js +0 -1
- package/.next/static/chunks/pages/index-f285046ed161df07.js +0 -1
- package/.next/static/chunks/pages/pvt/account/orders-34821345bd7401d9.js +0 -1
- package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/MyAccountFilterFacetPlacedBy.tsx +0 -172
- package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/index.ts +0 -2
- package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/styles.scss +0 -96
- package/src/sdk/account/useShopperSuggestions.ts +0 -151
- /package/.next/static/{e1Iy_PbcFsZ57QejzRzyL → k4WXbVPgcGEZjcUDnpapc}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@3.91.
|
|
2
|
+
> @faststore/core@3.91.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.91.
|
|
6
|
+
> @faststore/core@3.91.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.91.
|
|
11
|
+
> @faststore/core@3.91.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.91.
|
|
15
|
+
> @faststore/core@3.91.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.91.
|
|
20
|
+
> @faststore/core@3.91.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.91.
|
|
40
|
+
> @faststore/core@3.91.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.91.
|
|
44
|
+
> @faststore/core@3.91.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
|
|
@@ -93,22 +93,22 @@ Route (pages) Size First Load JS
|
|
|
93
93
|
├ └ css/c53b17b6fa994508.css 4.66 kB
|
|
94
94
|
├ λ /pvt/account/404 2.18 kB 141 kB
|
|
95
95
|
├ └ css/ceb410a7062740d1.css 4.72 kB
|
|
96
|
-
├ λ /pvt/account/orders
|
|
97
|
-
├ └ css/
|
|
96
|
+
├ λ /pvt/account/orders 9.4 kB 148 kB
|
|
97
|
+
├ └ css/9f8fb1ef9b49d844.css 13.3 kB
|
|
98
98
|
├ λ /pvt/account/orders/[id] 12.1 kB 151 kB
|
|
99
99
|
├ └ css/da5bfb1f39c54578.css 13.3 kB
|
|
100
100
|
├ λ /pvt/account/profile 1.98 kB 141 kB
|
|
101
101
|
├ └ css/b65e005fb943434c.css 4.4 kB
|
|
102
102
|
├ λ /pvt/account/security 3.96 kB 143 kB
|
|
103
103
|
├ └ css/6bb0abee27fe0019.css 5.65 kB
|
|
104
|
-
├ λ /pvt/account/user-details 1.91 kB
|
|
104
|
+
├ λ /pvt/account/user-details 1.91 kB 141 kB
|
|
105
105
|
├ └ css/bd121d85d6ceed46.css 4.52 kB
|
|
106
106
|
└ ● /s 3.29 kB 157 kB
|
|
107
107
|
+ First Load JS shared by all 111 kB
|
|
108
108
|
├ chunks/framework-d514426edf885c68.js 45.4 kB
|
|
109
|
-
├ chunks/main-
|
|
110
|
-
├ chunks/pages/_app-
|
|
111
|
-
├ chunks/webpack-
|
|
109
|
+
├ chunks/main-ec03882c4375091d.js 33.2 kB
|
|
110
|
+
├ chunks/pages/_app-812458b055482ec9.js 25.1 kB
|
|
111
|
+
├ chunks/webpack-d6cf2499d0200c56.js 3.84 kB
|
|
112
112
|
└ css/24a5e8f6808266fe.css 3.53 kB
|
|
113
113
|
|
|
114
114
|
λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@3.91.
|
|
2
|
+
> @faststore/core@3.91.2 test /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> jest
|
|
4
4
|
|
|
5
|
-
PASS test/
|
|
6
|
-
PASS test/
|
|
5
|
+
PASS test/utils/multipleTemplates.test.ts (27.212 s)
|
|
6
|
+
PASS test/server/cms/global.test.ts (27.989 s)
|
|
7
7
|
PASS test/server/cms/index.test.ts
|
|
8
|
-
PASS test/server/index.test.ts (
|
|
8
|
+
PASS test/server/index.test.ts (30.922 s)
|
|
9
9
|
|
|
10
10
|
Test Suites: 4 passed, 4 total
|
|
11
11
|
Tests: 22 passed, 22 total
|
|
12
12
|
Snapshots: 0 total
|
|
13
|
-
Time: 32.
|
|
13
|
+
Time: 32.118 s
|
|
14
14
|
Ran all test suites.
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
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.91.3-dev.0 (2025-10-30)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- add background color to TextareaField label ([#3079](https://github.com/vtex/faststore/issues/3079)) ([9e5a64d](https://github.com/vtex/faststore/commit/9e5a64d51d9983f028ec5cf0004cfed633b1ee8d)), closes [#2705](https://github.com/vtex/faststore/issues/2705) [/github.com/vtex/faststore/pull/2705#pullrequestreview-2710467780](https://github.com//github.com/vtex/faststore/pull/2705/issues/pullrequestreview-2710467780) [#2705](https://github.com/vtex/faststore/issues/2705) [/github.com/vtex/faststore/pull/2705#pullrequestreview-2710467780](https://github.com//github.com/vtex/faststore/pull/2705/issues/pullrequestreview-2710467780)
|
|
11
|
+
- remove purchaseAgentId filter - SFS-2942 ([#3085](https://github.com/vtex/faststore/issues/3085)) ([270588f](https://github.com/vtex/faststore/commit/270588f1e7490ff94e296c4da7116c4112883359))
|
|
12
|
+
|
|
6
13
|
## 3.91.2 (2025-10-27)
|
|
7
14
|
|
|
8
15
|
### Bug Fixes
|
|
@@ -146,7 +146,6 @@ module.exports = {
|
|
|
146
146
|
enableRedirects: false,
|
|
147
147
|
enableSearchSSR: false,
|
|
148
148
|
enableFaststoreMyAccount: false,
|
|
149
|
-
enableVtexAssetsLoader: false,
|
|
150
149
|
graphqlCacheControl: {
|
|
151
150
|
maxAge: 0, // 0 disables cache, 5 * 60 enable cache control maxAge 5 minutes
|
|
152
151
|
staleWhileRevalidate: 60 * 60, // 1 hour
|
package/next.config.js
CHANGED
|
@@ -13,6 +13,8 @@ const nextConfig = {
|
|
|
13
13
|
domains: [`${storeConfig.api.storeId}.vtexassets.com`],
|
|
14
14
|
deviceSizes: [360, 412, 540, 768, 1280, 1440],
|
|
15
15
|
imageSizes: [34, 68, 154, 320],
|
|
16
|
+
loader: 'custom',
|
|
17
|
+
loaderFile: './src/components/ui/Image/loader.ts',
|
|
16
18
|
},
|
|
17
19
|
i18n: {
|
|
18
20
|
locales: [storeConfig.session.locale],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.91.
|
|
3
|
+
"version": "3.91.3-dev.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "vtex/faststore",
|
|
6
6
|
"browserslist": "supports es6-module and not dead",
|
|
@@ -44,11 +44,11 @@
|
|
|
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.91.
|
|
48
|
-
"@faststore/graphql-utils": "^3.91.
|
|
49
|
-
"@faststore/lighthouse": "^3.91.
|
|
50
|
-
"@faststore/sdk": "^3.91.
|
|
51
|
-
"@faststore/ui": "^3.91.
|
|
47
|
+
"@faststore/api": "^3.91.3-dev.0",
|
|
48
|
+
"@faststore/graphql-utils": "^3.91.3-dev.0",
|
|
49
|
+
"@faststore/lighthouse": "^3.91.3-dev.0",
|
|
50
|
+
"@faststore/sdk": "^3.91.3-dev.0",
|
|
51
|
+
"@faststore/ui": "^3.91.3-dev.0",
|
|
52
52
|
"@graphql-codegen/cli": "5.0.2",
|
|
53
53
|
"@graphql-codegen/client-preset": "4.2.6",
|
|
54
54
|
"@graphql-codegen/typescript": "4.0.7",
|
|
@@ -116,5 +116,5 @@
|
|
|
116
116
|
"ts-jest": "29.1.1",
|
|
117
117
|
"typescript": "5.3.2"
|
|
118
118
|
},
|
|
119
|
-
"gitHead": "
|
|
119
|
+
"gitHead": "cc383c2683b0fb04ae9e176b4205d9cf7fed7762"
|
|
120
120
|
}
|
|
@@ -13,7 +13,6 @@ import type {
|
|
|
13
13
|
useMyAccountFilter,
|
|
14
14
|
} from 'src/sdk/search/useMyAccountFilter'
|
|
15
15
|
import FilterFacetDateRange from './MyAccountFilterFacetDateRange'
|
|
16
|
-
import FilterFacetPlacedBy from './MyAccountFilterFacetPlacedBy'
|
|
17
16
|
import styles from './section.module.scss'
|
|
18
17
|
|
|
19
18
|
export interface FilterSliderProps {
|
|
@@ -92,10 +91,6 @@ function MyAccountFilterSlider({
|
|
|
92
91
|
: [value]
|
|
93
92
|
}
|
|
94
93
|
|
|
95
|
-
if (key === 'purchaseAgentId') {
|
|
96
|
-
acc['purchaseAgentId'] = value
|
|
97
|
-
}
|
|
98
|
-
|
|
99
94
|
return acc
|
|
100
95
|
},
|
|
101
96
|
{} as Record<string, string | string[]>
|
|
@@ -208,9 +203,6 @@ function MyAccountFilterSlider({
|
|
|
208
203
|
})}
|
|
209
204
|
</UIFilterFacetBoolean>
|
|
210
205
|
)}
|
|
211
|
-
{type === 'StoreFacetPlacedBy' && isExpanded && (
|
|
212
|
-
<FilterFacetPlacedBy selected={selected} dispatch={dispatch} />
|
|
213
|
-
)}
|
|
214
206
|
{type === 'StoreFacetRange' && isExpanded && (
|
|
215
207
|
<FilterFacetDateRange
|
|
216
208
|
ref={dateRangeInputRef}
|
package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/section.module.scss
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
.section {
|
|
2
2
|
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
3
|
-
@import "@faststore/ui/src/components/atoms/Loader/styles.scss";
|
|
4
3
|
@import "@faststore/ui/src/components/atoms/Badge/styles.scss";
|
|
5
4
|
@import "@faststore/ui/src/components/atoms/Checkbox/styles.scss";
|
|
6
5
|
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
@import "@faststore/ui/src/components/organisms/FilterSlider/styles.scss";
|
|
18
17
|
@import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
|
|
19
18
|
@import "./MyAccountFilterFacetDateRange/styles.scss";
|
|
20
|
-
@import "./MyAccountFilterFacetPlacedBy/styles.scss";
|
|
21
19
|
|
|
22
20
|
[data-fs-badge] {
|
|
23
21
|
display: none;
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
} from '@faststore/ui'
|
|
15
15
|
import { useEffect } from 'react'
|
|
16
16
|
import MyAccountFilterSlider from 'src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider'
|
|
17
|
-
import AccountHeader from '../../components/MyAccountHeader'
|
|
18
17
|
import { useDebounce } from 'src/sdk/account/useDebounce'
|
|
19
18
|
import {
|
|
20
19
|
useMyAccountFilter,
|
|
@@ -23,6 +22,7 @@ import {
|
|
|
23
22
|
} from 'src/sdk/search/useMyAccountFilter'
|
|
24
23
|
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
25
24
|
import { FastStoreOrderStatus } from 'src/utils/userOrderStatus'
|
|
25
|
+
import AccountHeader from '../../components/MyAccountHeader'
|
|
26
26
|
import MyAccountListOrdersTable, {
|
|
27
27
|
Pagination,
|
|
28
28
|
} from './MyAccountListOrdersTable/MyAccountListOrdersTable'
|
|
@@ -40,7 +40,6 @@ export type MyAccountListOrdersProps = {
|
|
|
40
40
|
dateFinal: string
|
|
41
41
|
text: string
|
|
42
42
|
clientEmail: string
|
|
43
|
-
purchaseAgentId?: string
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
|
|
@@ -75,11 +74,6 @@ function getSelectedFacets({
|
|
|
75
74
|
key: 'dateFinal',
|
|
76
75
|
value: String(value),
|
|
77
76
|
})
|
|
78
|
-
} else if (filter === 'purchaseAgentId' && value) {
|
|
79
|
-
acc.push({
|
|
80
|
-
key: 'purchaseAgentId',
|
|
81
|
-
value: String(value),
|
|
82
|
-
})
|
|
83
77
|
}
|
|
84
78
|
|
|
85
79
|
return acc
|
|
@@ -103,12 +97,6 @@ function getAllFacets({
|
|
|
103
97
|
value: status.toLowerCase(),
|
|
104
98
|
})),
|
|
105
99
|
},
|
|
106
|
-
/* FIXME: Removing this facet until we have a cost-effective way to get the shopper name
|
|
107
|
-
{
|
|
108
|
-
__typename: 'StoreFacetPlacedBy',
|
|
109
|
-
key: 'purchaseAgentId',
|
|
110
|
-
label: 'Placed by',
|
|
111
|
-
} as any, */
|
|
112
100
|
{
|
|
113
101
|
__typename: 'StoreFacetRange',
|
|
114
102
|
key: 'dateRange',
|
|
@@ -246,8 +234,6 @@ export default function MyAccountListOrders({
|
|
|
246
234
|
status: filters.status,
|
|
247
235
|
dateInitial: filters.dateInitial,
|
|
248
236
|
dateFinal: filters.dateFinal,
|
|
249
|
-
// FIXME: Removing this filter until we have a cost-effective way to get the shopper name
|
|
250
|
-
// purchaseAgentId: filters.purchaseAgentId,
|
|
251
237
|
}}
|
|
252
238
|
onClearAll={() => {
|
|
253
239
|
window.location.href = '/pvt/account/orders'
|
|
@@ -255,17 +241,6 @@ export default function MyAccountListOrders({
|
|
|
255
241
|
onRemoveFilter={(key, value) => {
|
|
256
242
|
const { page, clientEmail, ...updatedFilters } = { ...filters }
|
|
257
243
|
|
|
258
|
-
if (key === 'status' && Array.isArray(updatedFilters[key])) {
|
|
259
|
-
updatedFilters[key] = updatedFilters[key].filter((v) => v !== value)
|
|
260
|
-
} else if (key === 'dateInitial' || key === 'dateFinal') {
|
|
261
|
-
delete updatedFilters.dateInitial
|
|
262
|
-
delete updatedFilters.dateFinal
|
|
263
|
-
} else if (key === 'purchaseAgentId') {
|
|
264
|
-
delete updatedFilters.purchaseAgentId
|
|
265
|
-
} else {
|
|
266
|
-
delete updatedFilters[key]
|
|
267
|
-
}
|
|
268
|
-
|
|
269
244
|
if (key === 'status' && Array.isArray(updatedFilters[key])) {
|
|
270
245
|
updatedFilters[key] = updatedFilters[key].filter(
|
|
271
246
|
(v) => v.toLowerCase() !== value.toLowerCase()
|
|
@@ -273,8 +248,6 @@ export default function MyAccountListOrders({
|
|
|
273
248
|
} else if (key === 'dateInitial' || key === 'dateFinal') {
|
|
274
249
|
delete updatedFilters.dateInitial
|
|
275
250
|
delete updatedFilters.dateFinal
|
|
276
|
-
} else if (key === 'purchaseAgentId') {
|
|
277
|
-
delete updatedFilters.purchaseAgentId
|
|
278
251
|
} else {
|
|
279
252
|
delete updatedFilters[key]
|
|
280
253
|
}
|
|
@@ -7,11 +7,10 @@ type MyAccountSelectedTagsProps = {
|
|
|
7
7
|
status?: string[]
|
|
8
8
|
dateInitial?: string
|
|
9
9
|
dateFinal?: string
|
|
10
|
-
purchaseAgentId?: string
|
|
11
10
|
}
|
|
12
11
|
onClearAll: () => void
|
|
13
12
|
onRemoveFilter: (
|
|
14
|
-
key: 'status' | 'dateInitial' | 'dateFinal'
|
|
13
|
+
key: 'status' | 'dateInitial' | 'dateFinal',
|
|
15
14
|
value: string
|
|
16
15
|
) => void
|
|
17
16
|
}
|
|
@@ -41,7 +40,7 @@ function Tags({
|
|
|
41
40
|
onRemoveFilter,
|
|
42
41
|
}: Pick<MyAccountSelectedTagsProps, 'filters' | 'onRemoveFilter'>) {
|
|
43
42
|
const { locale } = useSession()
|
|
44
|
-
const { dateInitial, dateFinal, status
|
|
43
|
+
const { dateInitial, dateFinal, status } = filters
|
|
45
44
|
const formattedDateInitial = dateInitial
|
|
46
45
|
? formatFilterDate(dateInitial, locale)
|
|
47
46
|
: ''
|
|
@@ -86,21 +85,8 @@ function Tags({
|
|
|
86
85
|
</div>
|
|
87
86
|
))
|
|
88
87
|
|
|
89
|
-
const placedByTag = purchaseAgentId && (
|
|
90
|
-
<div key={`placed-by-${purchaseAgentId}`} data-fs-list-orders-selected-tag>
|
|
91
|
-
<span>Placed by: {purchaseAgentId}</span>
|
|
92
|
-
<button
|
|
93
|
-
data-fs-list-orders-selected-tag-clear
|
|
94
|
-
onClick={() => onRemoveFilter('purchaseAgentId', purchaseAgentId)}
|
|
95
|
-
>
|
|
96
|
-
×
|
|
97
|
-
</button>
|
|
98
|
-
</div>
|
|
99
|
-
)
|
|
100
|
-
|
|
101
88
|
return (
|
|
102
89
|
<>
|
|
103
|
-
{placedByTag}
|
|
104
90
|
{dateTag}
|
|
105
91
|
{statusTags}
|
|
106
92
|
</>
|
|
@@ -114,10 +100,7 @@ function MyAccountSelectedTags({
|
|
|
114
100
|
}: MyAccountSelectedTagsProps) {
|
|
115
101
|
const hasFilters = Object.entries(filters).some(
|
|
116
102
|
([key, values]) =>
|
|
117
|
-
(key === 'status' ||
|
|
118
|
-
key === 'dateInitial' ||
|
|
119
|
-
key === 'dateFinal' ||
|
|
120
|
-
key === 'purchaseAgentId') &&
|
|
103
|
+
(key === 'status' || key === 'dateInitial' || key === 'dateFinal') &&
|
|
121
104
|
values &&
|
|
122
105
|
(Array.isArray(values) ? values.length > 0 : true)
|
|
123
106
|
)
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { memo } from 'react'
|
|
2
2
|
|
|
3
3
|
import NextImage, { type ImageProps as NextImageProps } from 'next/image'
|
|
4
|
-
import
|
|
4
|
+
import { faststoreLoader } from './loader'
|
|
5
5
|
|
|
6
6
|
export type ImageProps = NextImageProps
|
|
7
7
|
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// https://nextjs.org/docs/api-reference/next/image#loader
|
|
8
|
+
// FastStore Image component that uses custom loader for VTEX URLs (optimized)
|
|
9
|
+
// Returns src directly for all other images (no optimization)
|
|
11
10
|
function Image({ loading = 'lazy', ...otherProps }: ImageProps) {
|
|
12
11
|
return (
|
|
13
12
|
<NextImage
|
|
14
13
|
data-fs-image
|
|
15
|
-
loader={
|
|
14
|
+
loader={faststoreLoader}
|
|
16
15
|
loading={loading}
|
|
17
16
|
priority={loading === 'eager'}
|
|
18
17
|
{...otherProps}
|
|
@@ -1,39 +1,73 @@
|
|
|
1
|
-
import storeConfig from 'discovery.config'
|
|
2
1
|
import type { ImageLoaderProps } from 'next/image'
|
|
3
|
-
const THUMBOR_SERVER = `https://${storeConfig.api.storeId}.vtexassets.com`
|
|
4
2
|
|
|
3
|
+
function handleVtexUrls(src: string, width: number, quality = 8) {
|
|
4
|
+
const customQuality =
|
|
5
|
+
quality > 10 ? Math.ceil(Math.min(quality, 100) / 10) : quality
|
|
6
|
+
|
|
7
|
+
// Handle VTEX IDs pattern: /ids/{number}/{filename}.{extension}?{queryParams} (Product Images)
|
|
8
|
+
const regex = /(\/ids\/\d+)\/([^/?]+)(\.[^/?]+)(\?.+)?$/
|
|
9
|
+
if (regex.test(src)) {
|
|
10
|
+
return src.replace(
|
|
11
|
+
regex,
|
|
12
|
+
(_match, idPart, filename, _extension, queryString = '') => {
|
|
13
|
+
const qs = new URLSearchParams(queryString)
|
|
14
|
+
qs.set('quality', customQuality.toString())
|
|
15
|
+
return `${idPart}-${width}-auto/${filename}.webp?${qs.toString()}`
|
|
16
|
+
}
|
|
17
|
+
)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Handle VTEX file manager URLs (CMS Images)
|
|
21
|
+
if (src.includes('vtexassets') && src.includes('/assets')) {
|
|
22
|
+
const url = new URL(src)
|
|
23
|
+
url.searchParams.set('width', width.toString())
|
|
24
|
+
url.searchParams.set('aspect', 'true')
|
|
25
|
+
url.searchParams.set('quality', customQuality.toString())
|
|
26
|
+
return url.toString()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Global loader that handles VTEX-specific URLs with custom logic
|
|
34
|
+
* and falls back to Next.js default behavior for other images
|
|
35
|
+
*/
|
|
5
36
|
export default function customImageLoader({
|
|
6
37
|
src,
|
|
7
38
|
width,
|
|
8
39
|
quality,
|
|
9
40
|
}: ImageLoaderProps) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function thumborLoader({ src, width, quality }: ImageLoaderProps) {
|
|
16
|
-
const preSizeComponents = [THUMBOR_SERVER, 'unsafe']
|
|
17
|
-
|
|
18
|
-
// proportional to the width, enter a height of 0,
|
|
19
|
-
const height = 0
|
|
20
|
-
const finalSize = `${width}x${height}`
|
|
41
|
+
const vtexResult = handleVtexUrls(src, width, quality)
|
|
42
|
+
if (vtexResult) {
|
|
43
|
+
return vtexResult
|
|
44
|
+
}
|
|
21
45
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
46
|
+
try {
|
|
47
|
+
new URL(src)
|
|
48
|
+
const params = new URLSearchParams()
|
|
49
|
+
params.set('url', src)
|
|
50
|
+
params.set('w', width.toString())
|
|
51
|
+
if (quality) {
|
|
52
|
+
params.set('q', quality.toString())
|
|
53
|
+
}
|
|
25
54
|
|
|
26
|
-
|
|
55
|
+
return `/_next/image?${params.toString()}`
|
|
56
|
+
} catch {
|
|
57
|
+
// If URL parsing fails, it's a local path (/logo.svg) or an invalid URL
|
|
58
|
+
return src
|
|
59
|
+
}
|
|
27
60
|
}
|
|
28
61
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Loader used by FastStore Image component that only handles VTEX URLs
|
|
64
|
+
* Returns src directly for other images (no Next.js optimization)
|
|
65
|
+
*/
|
|
66
|
+
export function faststoreLoader({ src, width, quality }: ImageLoaderProps) {
|
|
67
|
+
const vtexResult = handleVtexUrls(src, width, quality)
|
|
68
|
+
if (vtexResult) {
|
|
69
|
+
return vtexResult
|
|
70
|
+
}
|
|
32
71
|
|
|
33
|
-
return src
|
|
34
|
-
regex,
|
|
35
|
-
(_match, idPart, filename, _extension, queryString = '') => {
|
|
36
|
-
return `${idPart}-${width}-auto/${filename}.webp${queryString}`
|
|
37
|
-
}
|
|
38
|
-
)
|
|
72
|
+
return src
|
|
39
73
|
}
|
|
@@ -45,7 +45,6 @@ type ListOrdersPageProps = {
|
|
|
45
45
|
dateFinal: string
|
|
46
46
|
text: string
|
|
47
47
|
clientEmail: string
|
|
48
|
-
purchaseAgentId?: string
|
|
49
48
|
}
|
|
50
49
|
} & MyAccountProps
|
|
51
50
|
|
|
@@ -162,10 +161,6 @@ export const getServerSideProps: GetServerSideProps<
|
|
|
162
161
|
const dateFinal = (context.query.dateFinal as string | undefined) || ''
|
|
163
162
|
const text = (context.query.text as string | undefined) || ''
|
|
164
163
|
const clientEmail = (context.query.clientEmail as string | undefined) || ''
|
|
165
|
-
// TODO: Integration: ensure `purchaseAgentId` is mapped to `purchase_agent_id`
|
|
166
|
-
// when calling the OMS API. Keep camelCase across the frontend.
|
|
167
|
-
const purchaseAgentId =
|
|
168
|
-
(context.query.purchaseAgentId as string | undefined) || ''
|
|
169
164
|
|
|
170
165
|
// Map labels from FastStore status to API status
|
|
171
166
|
const groupedStatus = groupOrderStatusByLabel()
|
|
@@ -249,7 +244,6 @@ export const getServerSideProps: GetServerSideProps<
|
|
|
249
244
|
dateFinal,
|
|
250
245
|
text,
|
|
251
246
|
clientEmail,
|
|
252
|
-
purchaseAgentId,
|
|
253
247
|
},
|
|
254
248
|
isRepresentative,
|
|
255
249
|
},
|
|
@@ -49,16 +49,9 @@ export type MyAccountFilter_Facets_StoreFacetRange_Fragment = {
|
|
|
49
49
|
to: string
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
export type MyAccountFilter_Facets_StoreFacetPlacedBy_Fragment = {
|
|
53
|
-
__typename: 'StoreFacetPlacedBy'
|
|
54
|
-
key: string
|
|
55
|
-
label: string
|
|
56
|
-
}
|
|
57
|
-
|
|
58
52
|
export type MyAccountFilter_FacetsFragment =
|
|
59
53
|
| MyAccountFilter_Facets_StoreFacetBoolean_Fragment
|
|
60
54
|
| MyAccountFilter_Facets_StoreFacetRange_Fragment
|
|
61
|
-
| MyAccountFilter_Facets_StoreFacetPlacedBy_Fragment
|
|
62
55
|
|
|
63
56
|
const reducer = (state: State, action: Action) => {
|
|
64
57
|
const { expanded, selected } = state
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2284],{42284:function(e,t,r){r.r(t),r.d(t,{default:function(){return search_SearchDropdown_SearchDropdown},sendAutocompleteClickEvent:function(){return sendAutocompleteClickEvent}});var a=r(33067),n=r(74988),i=r(34235),o=r(11933),c=r(64583),s=r(42174),l=r(80757),u=r(19994),d=r(44194),f=r(22701),m=r(9482),p=r(91379),h=r(31549);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchHistory_SearchHistory=e=>{var t=Object.assign({},e),{values:{onSearchSelection:r}}=(0,o.R)(),{searchHistory:a,clearSearchHistory:n}=(0,p.Z)();return a.length?(0,h.jsx)(f.Z,_objectSpread(_objectSpread({title:"History",onClear:n},t),{},{children:a.map(e=>(0,h.jsx)(m.Z,{value:e.term,linkProps:{href:e.path,onClick:()=>null==r?void 0:r(e.term,e.path)}},e.term))})):null},v=r(43311),y=r(21287),g=r(50704),b=r(25487),O=r(52693),w=r(97358),E=b.M,search_useTopSearch=function(){var{channel:e,locale:t}=(0,w.kP)(),{data:r,error:a}=(0,O.aM)(E,{term:"",selectedFacets:[{key:"channel",value:null!=e?e:""},{key:"locale",value:t}]});return{data:r,error:a}},S=["topTerms","sort"];function SearchTop_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchTop_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchTop_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchTop_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchTop_SearchTop=function(e){var t,{topTerms:r=[],sort:a}=e,n=(0,i.Z)(e,S),{values:{onSearchSelection:c}}=(0,o.R)(),{data:s}=search_useTopSearch(),l=(null!==(t=null==s?void 0:s.search.suggestions.terms)&&void 0!==t?t:r).slice(0,5);return 0===l.length?null:(0,h.jsx)(v.Z,SearchTop_objectSpread(SearchTop_objectSpread({title:"Top Search"},n),{},{children:l.map((e,t)=>(0,h.jsx)(y.Z,{value:e.value,index:t,linkProps:{href:(0,g.u)({term:e.value,sort:a}),onClick:()=>null==c?void 0:c(e.value,(0,g.u)({term:e.value,sort:a}))}},t))}))},k=r(16652),j=r(86035),P=r(69082),Z=r(57190),_=r(2614),C=r(47866),x=r(27859),D=r(2056),I=r(68687),q=r(29746),R=r(70643),T=r(78563),M=r(1090),K=r.n(M),V=["product","index","quickOrderSettings","onChangeCustomSearchDropdownVisible"],L=["href","onClick"];function SearchProductItem_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchProductItem_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchProductItem_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchProductItem_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchProductItem_SearchProductItem=function(e){var{product:t,index:r,quickOrderSettings:a,onChangeCustomSearchDropdownVisible:n}=e,c=(0,i.Z)(e,V),{values:{term:s,onSearchSelection:l}}=(0,o.R)(),{pushToast:u}=(0,k.l8)(),{__experimentalSKUMatrixSidebar:f}=(0,q.r3)(),m=(0,T.w)({product:t,selectedOffer:0,index:r}),{href:p,onClick:v}=m,y=(0,i.Z)(m,L),{0:g,1:b}=(0,d.useState)(1),{id:O,sku:w,gtin:E,brand:S,isVariantOf:M,isVariantOf:{name:Q},unitMultiplier:B,image:[F],offers:{lowPrice:N,offers:[{listPrice:U,availability:A,price:H,listPriceWithTaxes:G,seller:z,priceWithTaxes:W,quantity:$}]},additionalProperty:J}=t,X=SearchProductItem_objectSpread({href:p,onClick:()=>{var e;v(),null==l||l(Q,p),sendAutocompleteClickEvent({url:p,term:s,position:r,productId:null!==(e=t.isVariantOf.productGroupID)&&void 0!==e?e:t.sku})}},y),Y=(0,d.useMemo)(()=>"https://schema.org/OutOfStock"===A,[A]),ee=(0,d.useMemo)(()=>!!Object.keys(t.isVariantOf.skuVariants.allVariantsByName).length,[t]),et=(0,I.Q)({id:O,price:H,priceWithTaxes:W,listPrice:U,listPriceWithTaxes:G,seller:z,quantity:g,itemOffered:{sku:w,name:Q,gtin:E,image:[F],brand:S,isVariantOf:M,additionalProperty:J,unitMultiplier:B}},!1);return(0,h.jsxs)(j.Z,SearchProductItem_objectSpread(SearchProductItem_objectSpread({linkProps:X},c),{},{children:[(0,h.jsx)(P.Z,{children:(0,h.jsx)(D.Z,{src:F.url,alt:F.alternateName,width:56,height:56})}),(0,h.jsx)(Z.Z,{title:Q,price:{value:N,listPrice:U,formatter:R.P},onValidateBlur:(e,t,r)=>u({title:"Invalid quantity!",message:"The quantity you entered is outside the range of ".concat(e," to ").concat(t,". The quantity was set to ").concat(r,"."),status:"INFO",icon:(0,h.jsx)(_.Z,{name:"CircleWavyWarning",width:30,height:30})}),quickOrder:{enabled:null==a?void 0:a.quickOrder,outOfStockLabel:"Out of stock",availability:!Y,hasVariants:ee,buyProps:et,quantity:g,onChangeQuantity:b,max:$,skuMatrixControl:(0,h.jsx)(h.Fragment,{children:(null==a?void 0:a.quickOrder)&&(0,h.jsxs)(C.Z,{children:[(0,h.jsx)(x.Z,{children:null==a?void 0:a.skuMatrix.triggerButtonLabel}),(0,h.jsx)(f.Component,{overlayProps:{className:K().section},formatter:R.P,columns:null==a?void 0:a.skuMatrix.columns,product:t,status:e=>n("visible"===e)})]})})}})]}))},Q=["sort","quickOrderSettings","onChangeCustomSearchDropdownVisible"];function SearchDropdown_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchDropdown_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchDropdown_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchDropdown_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function sendAutocompleteClickEvent(e){var{url:t,term:a,position:n,productId:i}=e;return r.e(9399).then(r.bind(r,66393)).then(e=>{var{sendAnalyticsEvent:r}=e;return r({name:"intelligent_search_autocomplete_click",params:{term:a,url:t,productId:i,position:n}})})}var search_SearchDropdown_SearchDropdown=function(e){var{sort:t,quickOrderSettings:r,onChangeCustomSearchDropdownVisible:a}=e,d=(0,i.Z)(e,Q),{values:{onSearchSelection:f,products:m,term:p,terms:v}}=(0,o.R)();return(0,h.jsxs)(c.Z,SearchDropdown_objectSpread(SearchDropdown_objectSpread({},d),{},{children:[(0,h.jsx)(search_SearchHistory_SearchHistory,{sort:t}),(0,h.jsx)(search_SearchTop_SearchTop,{sort:t}),(0,h.jsx)(s.Z,{children:null==v?void 0:v.map(e=>{var r,{value:a}=e;return(0,h.jsx)(l.Z,{term:p,suggestion:a,linkProps:{href:(0,g.u)({term:a,sort:t}),onClick:(r=(0,n.Z)(function*(e){e.preventDefault();var r=(0,g.u)({term:a,sort:t});null==f||f(p,(0,g.u)({term:p,sort:t}));try{yield sendAutocompleteClickEvent({term:p,url:window.location.href})}catch(e){}window.location.href=r}),function(e){return r.apply(this,arguments)})}},a)})}),(0,h.jsx)(u.Z,{children:m.map((e,t)=>(0,h.jsx)(search_SearchProductItem_SearchProductItem,{product:e,index:t,quickOrderSettings:r,onChangeCustomSearchDropdownVisible:a},e.id))})]}))}},68687:function(e,t,r){r.d(t,{Q:function(){return useBuyButton}});var a=r(44194),n=r(16652),i=r(97358),o=r(71041),useBuyButton=function(e){var t,c=!(arguments.length>1)||void 0===arguments[1]||arguments[1],{openCart:s}=(0,n.l8)(),{currency:{code:l}}=(0,i.kP)(),u=Array.isArray(e);return{onClick:(0,a.useCallback)(t=>{if(t.preventDefault(),e){var a=u?e.reduce((e,t)=>e+=t.price*t.quantity,0):e.price*e.quantity;r.e(9399).then(r.bind(r,66393)).then(t=>{var{sendAnalyticsEvent:r}=t;r({name:"add_to_cart",params:{currency:l,value:a,items:u?e.map(generatedItem):[generatedItem(e)]}})}),u?e.forEach(e=>o.i8.addItem(e)):o.i8.addItem(e),c&&s()}function generatedItem(e){return{item_id:e.itemOffered.isVariantOf.productGroupID,item_name:e.itemOffered.isVariantOf.name,item_brand:e.itemOffered.brand.name,item_variant:e.itemOffered.sku,quantity:e.quantity,price:e.price,discount:e.listPrice-e.price,currency:l,item_variant_name:e.itemOffered.name,product_reference_id:e.itemOffered.gtin}}},[l,e,s,u]),"data-testid":"buy-button","data-sku":u?"sku-matrix-sidebar":null==e?void 0:e.itemOffered.sku,"data-seller":u?null===(t=e[0])||void 0===t?void 0:t.seller.identifier:null==e?void 0:e.seller.identifier}}},70643:function(e,t,r){r.d(t,{P:function(){return useFormattedPrice}});var a=r(44194),n=r(97358),usePriceFormatter=function(){var{decimals:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{currency:t,locale:r}=(0,n.kP)();return(0,a.useCallback)(a=>Intl.NumberFormat(r,{style:"currency",currency:t.code,minimumFractionDigits:e?2:0}).format(a),[t.code,r,e])},useFormattedPrice=e=>{var t=usePriceFormatter();return(0,a.useMemo)(()=>t(e),[t,e])}},78563:function(e,t,r){r.d(t,{w:function(){return useProductLink}});var a=r(44194),n=r(97358),useProductLink=e=>{var{index:t,product:i,selectedOffer:o}=e,{slug:c}=i,{currency:{code:s}}=(0,n.kP)(),l=(0,a.useCallback)(()=>{r.e(9399).then(r.bind(r,66393)).then(e=>{var{sendAnalyticsEvent:r}=e;r({name:"select_item",params:{items:[{item_id:i.isVariantOf.productGroupID,item_name:i.isVariantOf.name,item_brand:i.brand.name,item_variant:i.sku,index:t,price:i.offers.offers[o].price,discount:i.offers.offers[o].listPrice-i.offers.offers[o].price,currency:s,item_variant_name:i.name,product_reference_id:i.gtin}]}}),r({name:"search_select_item",params:{url:window.location.href,items:[{item_id:i.isVariantOf.productGroupID,item_variant:i.sku,index:t}]}})})},[s,i,t,o]);return{href:"/".concat(c,"/p"),onClick:l,"data-testid":"product-link"}}},99767:function(e,t,r){var a=r(44194),n=r(55450);let i=(0,a.forwardRef)(function({value:e,as:t="span",variant:r="selling",testId:i="fs-price",formatter:o=e=>e,SRText:c,...s},l){let u=o(e,r);return a.createElement(t,{ref:l,"data-fs-price":!0,"data-fs-price-variant":r,"data-testid":i,...s},c&&a.createElement(n.Z,{text:c}),u)});t.Z=i},55450:function(e,t,r){var a=r(44194);t.Z=function({text:e,as:t}){let r=t??"span";return a.createElement(r,{"data-fs-sr-only":!0},e)}},72955:function(e,t,r){r.d(t,{_:function(){return useSKUMatrix}});var a=r(44194),n=r(63442);function useSKUMatrix(){let e=(0,a.useContext)(n.m);if(!e)throw Error("Do not use SKUMatrix components outside the SKUMatrix context.");return e}},11933:function(e,t,r){r.d(t,{R:function(){return useSearch}});var a=r(44194),n=r(50101);let useSearch=()=>{let e=(0,a.useContext)(n.c);return e?{inContext:!0,values:e}:{inContext:!1}}},69088:function(e,t,r){var a=r(44194),n=r(99767);let i=(0,a.forwardRef)(function({testId:e="fs-product-price",value:t,listPrice:r,formatter:i,...o},c){let s=r??0,l=t??0;return a.createElement("div",{ref:c,"data-fs-product-price":!0,"data-testid":e,...o},l!==s&&0!==s?a.createElement(a.Fragment,null,a.createElement(n.Z,{value:s,formatter:i,testId:"list-price","data-value":s,variant:"listing",SRText:"Original price:"}),a.createElement(n.Z,{value:l,formatter:i,testId:"price","data-value":l,variant:"spot",SRText:"Price:"})):a.createElement(n.Z,{value:l,formatter:i,testId:"price","data-value":l,variant:"spot",SRText:"Price:"}))});t.Z=i},6693:function(e,t,r){var a=r(44194),n=r(37041),i=r(2614),o=r(42256);t.Z=({max:e,min:t=1,unitMultiplier:r=1,useUnitMultiplier:c,initial:s,disabled:l=!1,onChange:u,onValidateBlur:d,testId:f="fs-quantity-selector",...m})=>{let[p,h]=(0,a.useState)(s??t),[v,y]=(0,a.useState)(p*r),roundUpQuantityIfNeeded=e=>c?Math.ceil(e/r)*r:e,g=p===t,b=p===e,changeQuantity=e=>{let t=validateQuantityBounds(p+e);u?.(t),h(t),y(t*r)};function validateQuantityBounds(a){let n=t?Math.max(a,t):a;return e?Math.min(n,c?e*r:e):n}return(0,a.useEffect)(()=>{s&&h(s)},[s]),a.createElement("div",{"data-fs-quantity-selector":l?"disabled":"true","data-testid":f,...m},a.createElement(n.Z,{"data-quantity-selector-button":"left",icon:a.createElement(i.Z,{name:"Minus",width:16,height:16,weight:"bold"}),"aria-label":"Decrement Quantity","aria-controls":"quantity-selector-input",disabled:g||l,onClick:()=>changeQuantity(-1),testId:`${f}-left-button`,size:"small"}),a.createElement(o.Z,{"data-quantity-selector-input":!0,id:"quantity-selector-input","aria-label":"Quantity",value:c?v:p,onChange:e=>{let t=e.target.value.replace(/\D/g,"");h(Number(t))},onBlur:function(){let a=validateQuantityBounds(p),n=roundUpQuantityIfNeeded(a),i=e??(t?Math.max(p,t):p),o=p>i||p<t;o&&d?.(t,i,n),h(()=>(y(n),u?.(n/r),n/r))},onInput:e=>{let t=e.currentTarget;t.value=t.value.replace(/\D/g,"")},disabled:l}),a.createElement(n.Z,{"data-quantity-selector-button":"right","aria-controls":"quantity-selector-input","aria-label":"Increment Quantity",disabled:b||l,icon:a.createElement(i.Z,{name:"Plus",width:16,height:16,weight:"bold"}),onClick:()=>changeQuantity(1),testId:`${f}-right-button`,size:"small"}))}},42174:function(e,t,r){var a=r(44194),n=r(11933),i=r(94564);t.Z=({testId:e="fs-search-auto-complete",children:t,...r})=>{let{inContext:o,values:c}=(0,n.R)();return o&&(c.terms.length<=0||c.term.length<=0)?null:a.createElement("section",{"data-testid":e,"data-fs-search-auto-complete":!0,...r},a.createElement(i.Z,{as:"ol"},t))}},80757:function(e,t,r){var a=r(44194),n=r(2614),i=r(40727);t.Z=({testId:e="fs-search-auto-complete-term",suggestion:t,term:r,linkProps:o,icon:c=a.createElement(n.Z,{name:"MagnifyingGlass",width:18,height:18})})=>{let s=t.toLowerCase().split(r.toLowerCase());return a.createElement("li",{"data-fs-search-auto-complete-item":!0,"data-testid":e},a.createElement(i.Z,{...o,"data-fs-search-auto-complete-item-link":!0,variant:"display"},a.createElement("span",{"data-fs-search-auto-complete-item-icon":!0},c),a.createElement("p",null,s.map((e,n)=>a.createElement(a.Fragment,{key:[e,n].join()},e.length>0&&a.createElement("strong",{"data-fs-search-auto-complete-item-suggestion":!0},0===n?e.charAt(0).toUpperCase()+e.slice(1):e),n!==s.length-1&&(0===n?r.split("").map((e,r)=>0===r&&0===t.indexOf(e.toUpperCase())?e.toUpperCase():e.toLowerCase()).join(""):r.toLowerCase()))))))}},64583:function(e,t,r){var a=r(44194),n=r(11933);let SearchLoading=()=>{let{inContext:e,values:t}=(0,n.R)();return a.createElement(a.Fragment,null,e&&t.isLoading&&a.createElement("p",{"data-fs-search-dropdown-loading-text":!0},"Loading..."))},i=(0,a.forwardRef)(function({testId:e="fs-search-dropdown",children:t,...r},n){return a.createElement("div",{ref:n,"data-fs-search-dropdown":!0,"data-testid":e,...r},a.createElement("section",null,a.createElement(SearchLoading,null),t))});t.Z=i},22701:function(e,t,r){var a=r(44194),n=r(11933),i=r(83339),o=r(94564);t.Z=({testId:e="fs-search-history",title:t="History",clearLabel:r="Clear History",onClear:c,children:s,...l})=>{let{inContext:u,values:d}=(0,n.R)();return u&&(0!==d.term.length||d.isLoading)?null:a.createElement("section",{"data-testid":e,"data-fs-search-history":!0,...l},a.createElement("header",{"data-fs-search-history-header":!0},a.createElement("p",{"data-fs-search-history-title":!0},t),a.createElement(i.Z,{variant:"tertiary",onClick:c,size:"small"},r)),a.createElement(o.Z,{as:"ol"},s))}},9482:function(e,t,r){var a=r(44194),n=r(2614),i=r(40727);t.Z=({testId:e="fs-search-history-term",value:t,linkProps:r,icon:o=a.createElement(n.Z,{name:"ClockClockwise",width:18,height:18})})=>a.createElement("li",{"data-fs-search-history-item":!0,"data-testid":e},a.createElement(i.Z,{...r,"data-fs-search-history-item-link":!0,variant:"display"},a.createElement("span",{"data-fs-search-history-item-icon":!0},o),a.createElement("span",null,t)))},86035:function(e,t,r){var a=r(44194),n=r(40727);let i=(0,a.forwardRef)(function({testId:e="fs-search-product-item",linkProps:t,children:r},i){return a.createElement("li",{ref:i,"data-fs-search-product-item":!0,"data-testid":e},a.createElement(n.Z,{...t,"data-fs-search-product-item-link":!0,variant:"display"},r))});t.Z=i},57190:function(e,t,r){r.d(t,{Z:function(){return m}});var a=r(44194),n=r(69088),i=r(83982),o=r(2614),c=r(40276),s=r(6693),l=r(42256),u=r(37041);let d=(0,a.forwardRef)(function({availability:e,children:t,hasVariants:r,skuMatrixControl:n,quantity:d,outOfStockLabel:f,min:m=1,max:p,onClick:h,onChangeQuantity:v,onValidateBlur:y,...g},b){let[O,w]=(0,a.useState)("default"),E=e&&r;function stopPropagationClick(e){e.preventDefault(),e.stopPropagation()}let S=(0,a.useCallback)(()=>{switch(O){case"inProgress":return a.createElement(i.Z,null);case"completed":return a.createElement(o.Z,{name:"Checked",width:24,height:24});default:return a.createElement(o.Z,{name:"ShoppingCart",width:24,height:24})}},[O]);return a.createElement("div",{ref:b,"data-fs-search-product-item-control":!0,...g},a.createElement("div",{"data-fs-search-product-item-control-content":!0},!e&&a.createElement(c.Z,{"data-fs-search-product-item-control-badge":!0,variant:"warning"},f),t),e&&!r&&a.createElement("div",{"data-fs-search-product-item-control-actions":!0,role:"group","aria-hidden":!0,tabIndex:-1,onKeyDown:()=>{},onClick:stopPropagationClick},a.createElement("div",{"data-fs-search-product-item-control-actions-desktop":!0},a.createElement(s.Z,{disabled:"default"!==O,max:p,onValidateBlur:y,initial:d,onChange:v})),a.createElement("div",{"data-fs-search-product-item-control-actions-mobile":!0},a.createElement(l.Z,{"data-fs-product-item-control-input":!0,min:1,value:d,onChange:e=>v(e.target.value?Number(e.target.value):0),onBlur:function(){let e=p??(m?Math.max(d,m):d),t=d>e||d<m,r=d>e?e:d<m?m:d;t&&y?.(m,e,r),v(r)},onInput:e=>{let t=e.currentTarget;t.value=t.value.replace(/\D/g,"")}})),a.createElement(u.Z,{variant:"primary","aria-label":"Add product to cart",onClick:function(e){h&&(w("inProgress"),setTimeout(()=>{w("completed"),h(e)},1e3),setTimeout(()=>{w("default"),v(1)},2e3))},disabled:"inProgress"===O,icon:S()})),E&&a.createElement("div",{onClick:stopPropagationClick,"aria-hidden":!0,tabIndex:-1,onKeyDown:()=>{}},n))}),f=(0,a.forwardRef)(function({price:e,title:t,quickOrder:r,onValidateBlur:i,...o},c){let s=(0,a.useCallback)(()=>a.createElement(a.Fragment,null,a.createElement("p",{"data-fs-search-product-item-title":!0},t),0!==e.value&&a.createElement(n.Z,{"data-fs-search-product-item-prices":!0,listPrice:e.listPrice,value:e.value,formatter:e.formatter})),[e.formatter,e.listPrice,e.value,t]);return a.createElement("section",{ref:c,"data-fs-search-product-item-content":!0,...o},!r?.enabled&&s(),r?.enabled&&a.createElement(d,{outOfStockLabel:r.outOfStockLabel,availability:r.availability,hasVariants:r.hasVariants,skuMatrixControl:r.skuMatrixControl,quantity:r.quantity,onChangeQuantity:r.onChangeQuantity,max:r.max,onValidateBlur:i,...r.buyProps},s()))});var m=f},69082:function(e,t,r){var a=r(44194);let n=(0,a.forwardRef)(function({testId:e="fs-search-product-item-image",children:t,...r},n){return a.createElement("div",{ref:n,"data-fs-search-product-item-image":!0,"data-testid":e,...r},t)});t.Z=n},19994:function(e,t,r){var a=r(44194),n=r(11933),i=r(94564);t.Z=({testId:e="fs-search-products",title:t="Suggested Products",children:r,...o})=>{let{inContext:c,values:s}=(0,n.R)();return c&&s.products.length<=0?null:a.createElement("section",{"data-testid":e,"data-fs-search-products":!0,...o},a.createElement("header",{"data-fs-search-products-header":!0},a.createElement("p",{"data-fs-search-products-title":!0},t)),a.createElement(i.Z,{as:"ol"},r))}},43311:function(e,t,r){var a=r(44194),n=r(11933),i=r(94564);let o=(0,a.forwardRef)(function({testId:e="fs-top-search",title:t="Top Search",children:r,...o},c){let{inContext:s,values:l}=(0,n.R)();return s&&(0!==l.term.length||l.isLoading)?null:a.createElement("section",{ref:c,"data-testid":e,"data-fs-search-top":!0,...o},a.createElement("header",{"data-fs-search-top-header":!0},a.createElement("p",{"data-fs-search-top-title":!0},t)),a.createElement(i.Z,{as:"ol"},r))});t.Z=o},21287:function(e,t,r){var a=r(44194),n=r(40727),i=r(40276);let o=(0,a.forwardRef)(function({testId:e="fs-top-search-term",value:t,linkProps:r,index:o},c){return a.createElement("li",{ref:c,"data-fs-search-top-item":!0,"data-testid":e},a.createElement(n.Z,{...r,"data-fs-search-top-item-link":!0,variant:"display"},a.createElement(i.Z,{"data-fs-search-top-item-badge":!0,variant:"info"},o+1),t))});t.Z=o},47866:function(e,t,r){var a=r(44194),n=r(63442);let i=(0,a.forwardRef)(function({testId:e="fs-sku-matrix",children:t,...r},i){return a.createElement("div",{ref:i,"data-fs-sku-matrix":!0,"data-testid":e,...r},a.createElement(n.Z,null,t))});t.Z=i},27859:function(e,t,r){var a=r(44194),n=r(83339),i=r(72955);let o=(0,a.forwardRef)(function({children:e,variant:t="secondary",onClick:r,...o},c){let{setIsOpen:s}=(0,i._)();return a.createElement(n.Z,{ref:c,variant:t,onClick:e=>{s(!0),r?.(e)},...o},e)});t.Z=o},63442:function(e,t,r){r.d(t,{m:function(){return n}});var a=r(44194);let n=(0,a.createContext)(null);t.Z=function({children:e}){let[t,r]=(0,a.useState)(!1),[i,o]=(0,a.useState)([]),c=(0,a.useCallback)((e,t)=>{let r=[...i],a=r.find(t=>t.id===e);return a&&(a.selectedCount=t),o(r),r},[i]);return a.createElement(n.Provider,{value:{isOpen:t,allVariantProducts:i,setAllVariantProducts:o,onChangeQuantityItem:c,setIsOpen:r}},e)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3836,6789],{80839:function(e,t,a){var r=a(33067),n=a(34235),i=a(55402),c=a(38394),o=a(65167),d=a(50547),s=a(44194),l=a(82331),u=a.n(l),f=a(2056),m=a(52011),p=a(70643),v=a(78563),b=a(3303),g=a(31549),h=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel","enableCompareCheckbox","compareLabel"];function ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}t.Z=(0,s.memo)(function(e){var t,a,r,{product:l,index:E,bordered:P=!0,variant:k="default",aspectRatio:Z=1,imgProps:x,ratingValue:y,buttonLabel:w="Add",onButtonClick:O,showDiscountBadge:S=!0,taxesConfiguration:_,sponsoredLabel:j,enableCompareCheckbox:C=!1,compareLabel:D}=e,R=(0,n.Z)(e,h),{sku:F,isVariantOf:{name:B},image:[T],advertisement:I,offers:{lowPrice:L,lowPriceWithTaxes:V,offers:[{listPrice:M,availability:z,listPriceWithTaxes:A}]},deliveryPromiseBadges:N}=l,{deliveryPromise:K}=null!==(t=(0,b.T)())&&void 0!==t?t:{},{badges:W,shouldDisplayDeliveryPromiseBadges:$}=(0,m.z0)({deliveryPromiseBadges:N,deliveryPromiseSettings:K}),G=_objectSpread(_objectSpread({},(0,v.w)({product:l,selectedOffer:0,index:E})),{},{as:u(),passHref:!0,legacyBehavior:!1,prefetch:!1}),H=(0,s.useMemo)(()=>"https://schema.org/InStock"!==z,[z]),q=null!=_&&_.usePriceWithTaxes?V:L,J=null!=_&&_.usePriceWithTaxes?A:M,Q=I?{"data-van-res-id":I.adResponseId,"data-van-aid":I.adId,"data-van-prod-name":B}:{};return(0,g.jsxs)(g.Fragment,{children:[C&&(0,g.jsx)(i.Z,{label:D,product:l,id:l.id}),(0,g.jsxs)(c.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:H,bordered:P,variant:k,"data-fs-product-card-sku":F},Q),R),{},{children:[(0,g.jsx)(o.Z,{aspectRatio:Z,children:(0,g.jsx)(f.Z,{src:T.url,alt:T.alternateName,sizes:"".concat(null!==(a=null==x?void 0:x.sizes)&&void 0!==a?a:"(max-width: 768px) 40vw, 30vw"),width:null!==(r=null==x?void 0:x.width)&&void 0!==r?r:360,height:Math.round((Number(null==x?void 0:x.height)||360)/Z),loading:null==x?void 0:x.loading})}),(0,g.jsx)(d.Z,{title:B,price:{value:q,listPrice:J,formatter:p.P},ratingValue:y,outOfStock:H,onButtonClick:O,linkProps:G,showDiscountBadge:q<=J&&S,includeTaxes:null==_?void 0:_.usePriceWithTaxes,includeTaxesLabel:null==_?void 0:_.taxesLabel,sponsored:!!I,sponsoredLabel:j,deliveryPromiseBadges:$&&W})]}))]})})},33836:function(e,t,a){a.r(t),a.d(t,{default:function(){return r.Z}});var r=a(80839)},70643:function(e,t,a){a.d(t,{P:function(){return useFormattedPrice}});var r=a(44194),n=a(97358),usePriceFormatter=function(){var{decimals:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{currency:t,locale:a}=(0,n.kP)();return(0,r.useCallback)(r=>Intl.NumberFormat(a,{style:"currency",currency:t.code,minimumFractionDigits:e?2:0}).format(r),[t.code,a,e])},useFormattedPrice=e=>{var t=usePriceFormatter();return(0,r.useMemo)(()=>t(e),[t,e])}},78563:function(e,t,a){a.d(t,{w:function(){return useProductLink}});var r=a(44194),n=a(97358),useProductLink=e=>{var{index:t,product:i,selectedOffer:c}=e,{slug:o}=i,{currency:{code:d}}=(0,n.kP)(),s=(0,r.useCallback)(()=>{a.e(9399).then(a.bind(a,66393)).then(e=>{var{sendAnalyticsEvent:a}=e;a({name:"select_item",params:{items:[{item_id:i.isVariantOf.productGroupID,item_name:i.isVariantOf.name,item_brand:i.brand.name,item_variant:i.sku,index:t,price:i.offers.offers[c].price,discount:i.offers.offers[c].listPrice-i.offers.offers[c].price,currency:d,item_variant_name:i.name,product_reference_id:i.gtin}]}}),a({name:"search_select_item",params:{url:window.location.href,items:[{item_id:i.isVariantOf.productGroupID,item_variant:i.sku,index:t}]}})})},[d,i,t,c]);return{href:"/".concat(o,"/p"),onClick:s,"data-testid":"product-link"}}},82740:function(e,t,a){var r=a(44194);let n=(0,r.forwardRef)(function({testId:e="fs-checkbox",partial:t,...a},n){return r.createElement("input",{ref:n,"data-fs-checkbox":!0,"data-testid":e,"data-fs-checkbox-partial":t,type:"checkbox",...a})});t.Z=n},99767:function(e,t,a){var r=a(44194),n=a(55450);let i=(0,r.forwardRef)(function({value:e,as:t="span",variant:a="selling",testId:i="fs-price",formatter:c=e=>e,SRText:o,...d},s){let l=c(e,a);return r.createElement(t,{ref:s,"data-fs-price":!0,"data-fs-price-variant":a,"data-testid":i,...d},o&&r.createElement(n.Z,{text:o}),l)});t.Z=i},55450:function(e,t,a){var r=a(44194);t.Z=function({text:e,as:t}){let a=t??"span";return r.createElement(a,{"data-fs-sr-only":!0},e)}},52182:function(e,t,a){a.d(t,{S:function(){return useProductComparison}});var r=a(44194),n=a(82770);function useProductComparison(){let e=(0,r.useContext)(n.A);if(void 0===e)throw Error("useProductComparison must be used within a ProductComparisonProvider");return e}},673:function(e,t,a){var r=a(44194),n=a(82740),i=a(31953);let c=(0,r.forwardRef)(function({testId:e="fs-checkbox-field",id:t,label:a,value:c,name:o,error:d,disabled:s,alignment:l="center",...u},f){let m=!s&&d&&""!==d;return r.createElement("div",{ref:f,"data-testid":e,"data-fs-checkbox-field":!0,"data-fs-checkbox-field-error":d&&""!==d,"data-fs-checkbox-field-alignment":l},r.createElement(n.Z,{id:t,value:c??a,name:o,defaultChecked:u?.checked,disabled:s,...u}),r.createElement("div",{"data-fs-checkbox-field-content":!0},r.createElement(i.Z,{"data-fs-checkbox-field-label":!0,htmlFor:t},a),m&&r.createElement("span",{"data-fs-checkbox-field-error-message":!0},d)))});t.Z=c},2946:function(e,t,a){a.d(t,{Z:function(){return DiscountBadge_DiscountBadge}});var r=a(44194),n=a(40276);let useDiscountPercent=(e,t)=>(0,r.useMemo)(()=>{let a=e-t,r=100*a/e;return Math.round(r)},[t,e]);var DiscountBadge_DiscountBadge=({listPrice:e,spotPrice:t,thresholdLow:a=15,thresholdHigh:i=40,size:c,testId:o="fs-discount-badge"})=>{let d=useDiscountPercent(e,t);if(0===d)return r.createElement(r.Fragment,null);let s=d<=a?"low":d<=i?"medium":"high";return r.createElement(n.Z,{"data-fs-discount-badge":!0,"data-fs-discount-badge-variant":s,size:c,"data-testid":o},d,"% off")}},38394:function(e,t,a){var r=a(44194);let n=(0,r.forwardRef)(function({testId:e="fs-product-card",variant:t="default",bordered:a=!1,outOfStock:n,children:i,...c},o){return r.createElement("article",{ref:o,"data-fs-product-card":n?"out-of-stock":"","data-fs-product-card-variant":t,"data-fs-product-card-bordered":a,"data-testid":e,...c},i)});t.Z=n},50547:function(e,t,a){var r=a(44194),n=a(40727),i=a(69088),c=a(31953),o=a(13024),d=a(2614),s=a(2946),l=a(40276),u=a(83339);let f=(0,r.forwardRef)(function({testId:e="fs-product-card-content",title:t,linkProps:a,price:f,outOfStock:m,outOfStockLabel:p="Out of stock",ratingValue:v,showDiscountBadge:b,buttonLabel:g="Add",onButtonClick:h,children:E,includeTaxes:P=!1,includeTaxesLabel:k="Tax included",sponsored:Z=!1,sponsoredLabel:x="Sponsored",deliveryPromiseBadges:y,...w},O){let S=f?.listPrice?f.listPrice:0,_=f?.value?f.value:0;return r.createElement("section",{ref:O,"data-fs-product-card-content":!0,"data-fs-product-card-badge":b,"data-testid":e,...w},Z&&r.createElement("span",{"data-fs-product-card-sponsored-label":!0},x),r.createElement("div",{"data-fs-product-card-heading":!0},r.createElement("h3",{"data-fs-product-card-title":!0},r.createElement(n.Z,{...a,title:t},r.createElement("span",null,t))),!m&&r.createElement(i.Z,{"data-fs-product-card-prices":!0,value:_,listPrice:S,formatter:f?.formatter}),P&&r.createElement(c.Z,{"data-fs-product-card-taxes-label":!0},k),v&&r.createElement(o.Z,{value:v,icon:r.createElement(d.Z,{name:"Star"})})),b&&!m&&r.createElement(s.Z,{listPrice:S,spotPrice:_}),m&&r.createElement(l.Z,null,p),y&&r.createElement("div",{"data-fs-product-card-delivery-promise-badges":!0},y.map(e=>r.createElement("span",{"data-fs-product-card-delivery-promise-badge":!0,"data-fs-product-card-delivery-promise-badge-availability":e.availability,key:e.label},e.label))),h&&!m&&r.createElement("div",{"data-fs-product-card-actions":!0},r.createElement(u.Z,{variant:"primary",icon:r.createElement(d.Z,{name:"ShoppingCart"}),iconPosition:"left",size:"small",onClick:h},g)))});t.Z=f},65167:function(e,t,a){var r=a(44194);let n=(0,r.forwardRef)(function({testId:e="fs-product-card-image",aspectRatio:t=1,children:a,...n},i){return r.createElement("div",{ref:i,"data-fs-product-card-image":!0,"data-testid":e,style:{"--fs-product-card-image-aspect-ratio":t},...n},a)});t.Z=n},69088:function(e,t,a){var r=a(44194),n=a(99767);let i=(0,r.forwardRef)(function({testId:e="fs-product-price",value:t,listPrice:a,formatter:i,...c},o){let d=a??0,s=t??0;return r.createElement("div",{ref:o,"data-fs-product-price":!0,"data-testid":e,...c},s!==d&&0!==d?r.createElement(r.Fragment,null,r.createElement(n.Z,{value:d,formatter:i,testId:"list-price","data-value":d,variant:"listing",SRText:"Original price:"}),r.createElement(n.Z,{value:s,formatter:i,testId:"price","data-value":s,variant:"spot",SRText:"Price:"})):r.createElement(n.Z,{value:s,formatter:i,testId:"price","data-value":s,variant:"spot",SRText:"Price:"}))});t.Z=i},13024:function(e,t,a){var r=a(44194),n=a(2614),i=a(37041),c=a(94564);let o=(0,r.forwardRef)(function({children:e,testId:t="fs-rating",length:a=5,value:o=0,icon:d,onChange:s,disabled:l,...u},f){let[m,p]=(0,r.useState)(0),v={"data-fs-rating-icon-outline":!0},b=r.isValidElement(d)?d:r.createElement(n.Z,{name:"Star"});return r.createElement(c.Z,{ref:f,"data-fs-rating":!0,"data-fs-rating-actionable":"function"==typeof s,"data-testid":t,...u},Array.from({length:a}).map((e,a)=>{let c=a+1;return r.createElement("li",{key:`rating-${a}`,"data-fs-rating-item":c<=(m||o)?"full":c-o>0&&c-o<1?"partial":"empty","data-testid":`${t}-item`},s?r.createElement(i.Z,{"data-fs-rating-button":!0,icon:b,size:"small","aria-label":"rate",onClick:()=>{s(c)},onMouseEnter:()=>p(c),onMouseLeave:()=>p(o),disabled:l}):r.createElement(r.Fragment,null,r.createElement("div",{"data-fs-rating-icon-wrapper":!0},b),r.isValidElement(d)?r.cloneElement(d,v):r.createElement(n.Z,{name:"Star","data-fs-rating-icon-outline":!0})))}))});t.Z=o},55402:function(e,t,a){var r=a(44194),n=a(673),i=a(52182);let c=(0,r.forwardRef)(function({id:e,label:t,onChange:a,product:c,...o},d){let{productIds:s,handleProductsIds:l}=(0,i.S)(),u=s.some(e=>e===c.id);return r.createElement("div",{"data-fs-product-comparison-trigger":!0},c.hasSpecifications&&r.createElement(n.Z,{"data-fs-product-comparison-trigger-checkbox-field":!0,ref:d,id:`product-comparison-trigger-${e}`,label:t,checked:u,onClick:e=>{e.stopPropagation()},onChange:e=>{a?.(e),l(c)},...o}))});t.Z=c},82770:function(e,t,a){a.d(t,{A:function(){return n}});var r=a(44194);let n=(0,r.createContext)(void 0);t.Z=function({children:e}){let[t,a]=(0,r.useState)([]),[i,c]=(0,r.useState)([]),[o,d]=(0,r.useState)(!1),s=(0,r.useCallback)(e=>{a(t=>t.includes(e?.id)?t.filter(t=>t!==e.id):[...t,e.id]),c(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},[]);return r.createElement(n.Provider,{value:{isOpen:o,setIsOpen:d,productIds:t,products:i,handleProductsIds:s,handleProductsComparison:function(e){let t=e.map(t=>{let a=e.find(e=>e.id===t.id);return{...t,...a}});c(t)},clearProducts:function(){a([]),c([])}}},e)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5859],{80839:function(e,t,r){"use strict";var n=r(33067),i=r(34235),o=r(55402),s=r(38394),c=r(65167),a=r(50547),l=r(44194),d=r(82331),u=r.n(d),p=r(2056),f=r(52011),b=r(70643),h=r(78563),v=r(3303),m=r(31549),g=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel","enableCompareCheckbox","compareLabel"];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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}t.Z=(0,l.memo)(function(e){var t,r,n,{product:d,index:j,bordered:y=!0,variant:O="default",aspectRatio:P=1,imgProps:_,ratingValue:w,buttonLabel:k="Add",onButtonClick:x,showDiscountBadge:S=!0,taxesConfiguration:T,sponsoredLabel:D,enableCompareCheckbox:Z=!1,compareLabel:E}=e,K=(0,i.Z)(e,g),{sku:C,isVariantOf:{name:L},image:[V],advertisement:z,offers:{lowPrice:R,lowPriceWithTaxes:I,offers:[{listPrice:F,availability:B,listPriceWithTaxes:G}]},deliveryPromiseBadges:N}=d,{deliveryPromise:M}=null!==(t=(0,v.T)())&&void 0!==t?t:{},{badges:W,shouldDisplayDeliveryPromiseBadges:A}=(0,f.z0)({deliveryPromiseBadges:N,deliveryPromiseSettings:M}),Q=_objectSpread(_objectSpread({},(0,h.w)({product:d,selectedOffer:0,index:j})),{},{as:u(),passHref:!0,legacyBehavior:!1,prefetch:!1}),q=(0,l.useMemo)(()=>"https://schema.org/InStock"!==B,[B]),H=null!=T&&T.usePriceWithTaxes?I:R,U=null!=T&&T.usePriceWithTaxes?G:F,Y=z?{"data-van-res-id":z.adResponseId,"data-van-aid":z.adId,"data-van-prod-name":L}:{};return(0,m.jsxs)(m.Fragment,{children:[Z&&(0,m.jsx)(o.Z,{label:E,product:d,id:d.id}),(0,m.jsxs)(s.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:q,bordered:y,variant:O,"data-fs-product-card-sku":C},Y),K),{},{children:[(0,m.jsx)(c.Z,{aspectRatio:P,children:(0,m.jsx)(p.Z,{src:V.url,alt:V.alternateName,sizes:"".concat(null!==(r=null==_?void 0:_.sizes)&&void 0!==r?r:"(max-width: 768px) 40vw, 30vw"),width:null!==(n=null==_?void 0:_.width)&&void 0!==n?n:360,height:Math.round((Number(null==_?void 0:_.height)||360)/P),loading:null==_?void 0:_.loading})}),(0,m.jsx)(a.Z,{title:L,price:{value:H,listPrice:U,formatter:b.P},ratingValue:w,outOfStock:q,onButtonClick:x,linkProps:Q,showDiscountBadge:H<=U&&S,includeTaxes:null==T?void 0:T.usePriceWithTaxes,includeTaxesLabel:null==T?void 0:T.taxesLabel,sponsored:!!z,sponsoredLabel:D,deliveryPromiseBadges:A&&W})]}))]})})},45859:function(e,t,r){"use strict";r.d(t,{Z:function(){return _}});var n=r(33067),i=r(34235),o=r(44194),s=r(26410),c=r(80839),a=r(23877),l=r(31549),d=["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){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ui_Tiles_Tiles=e=>{var{children:t}=e,r=(0,i.Z)(e,d);return(0,l.jsx)(a.Z,_objectSpread(_objectSpread({},r),{},{children:t}))},u=r(67901),p=r(10792),ProductTileSkeleton_ProductTileSkeleton=function(e){var{index:t,aspectRatio:r=1}=e;return(0,l.jsxs)("div",{"data-fs-product-tile-skeleton":!0,"data-fs-product-tile-skeleton-index":t,children:[(0,l.jsx)("div",{"data-fs-product-tile-skeleton-image":!0,"data-fs-product-tile-skeleton-index":t,style:{"--fs-product-tile-skeleton-image-aspect-ratio":r},children:(0,l.jsx)(p.Z,{size:{width:"auto",height:"100%"},loading:!0})}),(0,l.jsxs)("div",{"data-fs-product-tile-skeleton-content":!0,"data-fs-product-tile-skeleton-index":t,children:[(0,l.jsxs)("div",{"data-fs-product-tile-skeleton-heading":!0,children:[(0,l.jsx)("div",{"data-fs-product-tile-skeleton-text":!0,"data-fs-product-tile-skeleton-index":t,children:(0,l.jsx)(p.Z,{size:{width:"70%",height:"1.5rem"}})}),(0,l.jsx)("div",{"data-fs-product-tile-skeleton-price":!0,children:(0,l.jsx)(p.Z,{size:{width:"60%",height:"1.5rem"}})})]}),(0,l.jsx)("div",{"data-fs-product-tile-skeleton-badge":!0,"data-fs-product-tile-skeleton-index":t,children:(0,l.jsx)(p.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(e){var{children:t,loading:r=!0}=e;return r?(0,l.jsx)(ui_Tiles_Tiles,{children:Array.from({length:3},(e,t)=>(0,l.jsx)(u.Z,{children:(0,l.jsx)(ProductTileSkeleton_ProductTileSkeleton,{index:t+1,aspectRatio:getRatio(3,t)})},String(t)))}):(0,l.jsx)(l.Fragment,{children:t})},f=r(21917),b=r(6377),h=r(41325),v=r(64876),m=r.n(v),g=r(58),j=r(4018),y=r(84578),O=r.n(y),P=["title","taxesConfiguration"];function ProductTiles_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 ProductTiles_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductTiles_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductTiles_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ProductTiles_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},ProductTiles=e=>{var t,r,{title:n,taxesConfiguration:a}=e,d=(0,i.Z)(e,P),p=(0,o.useRef)(!1),{ref:v,inView:y}=(0,s.YD)(),{globalDeliveryFacets:_}=(0,g.n)(),w=(0,b.k)(ProductTiles_objectSpread(ProductTiles_objectSpread({},d),{},{selectedFacets:m()((0,j.qo)(d.selectedFacets),_)})),k=null==w?void 0:null===(t=w.search)||void 0===t?void 0:t.products,x=null!==(r=null==k?void 0:k.edges)&&void 0!==r?r:[],{sendViewItemListEvent:S}=(0,f.m)({products:x,title:n,page:0,pageSize:0});return((0,o.useEffect)(()=>{y&&!p.current&&x.length&&(S(),p.current=!0)},[y,x.length,S]),(null==k?void 0:k.edges.length)===0)?null:(0,l.jsxs)(h.Z,{className:"".concat(O().section," section-product-tiles layout__section"),ref:v,children:[(0,l.jsx)("h2",{className:"text__title-section layout__content",children:n}),(0,l.jsx)(ProductTilesSkeleton_ProductTilesSkeleton,{loading:!k,children:(0,l.jsx)(ui_Tiles_Tiles,{children:x.map((e,t)=>(0,l.jsx)(u.Z,{children:(0,l.jsx)(c.Z,{"data-testid":"tile-card",product:e.node,index:t+1,variant:"wide",aspectRatio:ProductTiles_getRatio(x.length,t),imgProps:getSizes(x.length,t),taxesConfiguration:a})},e.node.id))})})]})};ProductTiles.$componentKey="ProductTiles";var _=ProductTiles},21917:function(e,t,r){"use strict";r.d(t,{m:function(){return useViewItemListEvent}});var n=r(44194),i=r(97358),useViewItemListEvent=e=>{var{products:t,title:o,page:s,pageSize:c}=e,{currency:{code:a}}=(0,i.kP)();return{sendViewItemListEvent:(0,n.useCallback)(e=>{var n=null!=t&&t.length?t:null==e?void 0:e.products;n&&0!==n.length&&r.e(9399).then(r.bind(r,66393)).then(e=>{var{sendAnalyticsEvent:t}=e;t({name:"view_item_list",params:{item_list_name:o,item_list_id:o,items:n.map((e,t)=>{var{node:r}=e;return{item_id:r.isVariantOf.productGroupID,item_name:r.isVariantOf.name,item_brand:r.brand.name,item_variant:r.sku,price:r.offers.offers[0].price,index:s*c+t+1,discount:r.offers.offers[0].listPrice-r.offers.offers[0].price,currency:a,item_variant_name:r.name,product_reference_id:r.gtin}})}})})},[a,t,o,s,c])}}},58:function(e,t,r){"use strict";r.d(t,{n:function(){return useDeliveryPromiseGlobalFacets}});var n=r(13028),i=r(52011);function useDeliveryPromiseGlobalFacets(){var{globalPickupPoint:e}=(0,n.P)();return{globalDeliveryFacets:e?[{key:i.sG,value:e.id},{key:i.gA,value:i.yp}]:[]}}},78563:function(e,t,r){"use strict";r.d(t,{w:function(){return useProductLink}});var n=r(44194),i=r(97358),useProductLink=e=>{var{index:t,product:o,selectedOffer:s}=e,{slug:c}=o,{currency:{code:a}}=(0,i.kP)(),l=(0,n.useCallback)(()=>{r.e(9399).then(r.bind(r,66393)).then(e=>{var{sendAnalyticsEvent:r}=e;r({name:"select_item",params:{items:[{item_id:o.isVariantOf.productGroupID,item_name:o.isVariantOf.name,item_brand:o.brand.name,item_variant:o.sku,index:t,price:o.offers.offers[s].price,discount:o.offers.offers[s].listPrice-o.offers.offers[s].price,currency:a,item_variant_name:o.name,product_reference_id:o.gtin}]}}),r({name:"search_select_item",params:{url:window.location.href,items:[{item_id:o.isVariantOf.productGroupID,item_variant:o.sku,index:t}]}})})},[a,o,t,s]);return{href:"/".concat(c,"/p"),onClick:l,"data-testid":"product-link"}}},6377:function(e,t,r){"use strict";r.d(t,{k:function(){return useProductsQuery}});var n=r(33067),i=r(25487),o=r(52693),s=r(27772);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}var c=i.gU,useProductsQuery=(e,t)=>{var r=(0,s.y)(e),{data:i}=(0,o.aM)(c,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){(0,n.Z)(e,t,r[t])}):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 i}},84578:function(e){e.exports={section:"section_section__Wwc_y",loading:"section_loading__7M1Dl"}}}]);
|