@faststore/core 3.0.116 → 3.0.117
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 +16 -16
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1gneedd +1 -1
- 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/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/350.js +1 -1
- package/.next/server/chunks/485.js +1 -1
- package/.next/server/chunks/498.js +1 -1
- package/.next/server/chunks/646.js +5 -1
- package/.next/server/chunks/933.js +1 -1
- package/.next/server/chunks/997.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/_error.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/account.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 +2 -2
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/{KTDlBYjCu5WzIPGoRYTKn → ZcioUQf53yK_7-v4Io2W-}/_buildManifest.js +1 -1
- package/.next/static/chunks/661-64696c6b69aad0cd.js +1 -0
- package/.next/static/chunks/968-3ed71db484b2d4e6.js +1 -0
- package/.next/static/chunks/pages/{_app-5d553d859f2f0ef5.js → _app-c735dc8671b02901.js} +1 -1
- package/.next/trace +95 -95
- package/.turbo/turbo-build.log +2 -2
- package/.turbo/turbo-test.log +4 -4
- package/@generated/gql.ts +2 -2
- package/@generated/graphql.ts +25 -2
- package/@generated/persisted-documents.json +2 -2
- package/@generated/schema.graphql +16 -0
- package/faststore.config.default.js +1 -0
- package/package.json +3 -3
- package/src/components/product/ProductCard/ProductCard.tsx +15 -0
- package/src/server/options.ts +1 -0
- package/.next/static/chunks/661-37d224da8cd18a0d.js +0 -1
- package/.next/static/chunks/968-2833bd4b4774c583.js +0 -1
- /package/.next/static/{KTDlBYjCu5WzIPGoRYTKn → ZcioUQf53yK_7-v4Io2W-}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -37,8 +37,8 @@ https://nextjs.org/telemetry
|
|
|
37
37
|
Collecting page data ...
|
|
38
38
|
Generating static pages (0/7) ...
|
|
39
39
|
|
|
40
40
|
Generating static pages (1/7)
|
|
41
|
-
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.
|
|
42
41
|
|
|
43
42
|
Generating static pages (3/7)
|
|
43
|
+
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.
|
|
44
44
|
|
|
45
45
|
Generating static pages (5/7)
|
|
46
46
|
|
|
47
47
|
✓ Generating static pages (7/7)
|
|
48
48
|
Finalizing page optimization ...
|
|
@@ -65,7 +65,7 @@ Route (pages) Size First Load JS
|
|
|
65
65
|
+ First Load JS shared by all 93.7 kB
|
|
66
66
|
├ chunks/framework-8e279965036b6169.js 45.4 kB
|
|
67
67
|
├ chunks/main-029f1328cfee9686.js 33.1 kB
|
|
68
|
-
├ chunks/pages/_app-
|
|
68
|
+
├ chunks/pages/_app-c735dc8671b02901.js 9.86 kB
|
|
69
69
|
├ chunks/webpack-8883d8523b03e385.js 2.38 kB
|
|
70
70
|
└ css/ee0556daedda6306.css 3.07 kB
|
|
71
71
|
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
$ jest
|
|
2
|
-
PASS test/utils/multipleTemplates.test.ts (36.
|
|
3
|
-
PASS test/server/cms/index.test.ts (
|
|
4
|
-
PASS test/server/index.test.ts (
|
|
2
|
+
PASS test/utils/multipleTemplates.test.ts (36.183 s)
|
|
3
|
+
PASS test/server/cms/index.test.ts (36.699 s)
|
|
4
|
+
PASS test/server/index.test.ts (39.743 s)
|
|
5
5
|
|
|
6
6
|
Test Suites: 3 passed, 3 total
|
|
7
7
|
Tests: 19 passed, 19 total
|
|
8
8
|
Snapshots: 0 total
|
|
9
|
-
Time:
|
|
9
|
+
Time: 40.871 s
|
|
10
10
|
Ran all test suites.
|
package/@generated/gql.ts
CHANGED
|
@@ -12,7 +12,7 @@ import * as types from './graphql'
|
|
|
12
12
|
* Therefore it is highly recommended to use the babel or swc plugin for production.
|
|
13
13
|
*/
|
|
14
14
|
const documents = {
|
|
15
|
-
'\n fragment ProductSummary_product on StoreProduct {\n id: productID\n slug\n sku\n brand {\n brandName: name\n }\n name\n gtin\n\n isVariantOf {\n productGroupID\n name\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n listPrice\n listPriceWithTaxes\n quantity\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n':
|
|
15
|
+
'\n fragment ProductSummary_product on StoreProduct {\n id: productID\n slug\n sku\n brand {\n brandName: name\n }\n name\n gtin\n\n isVariantOf {\n productGroupID\n name\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n listPrice\n listPriceWithTaxes\n quantity\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n advertisement {\n adId\n adResponseId\n }\n }\n':
|
|
16
16
|
types.ProductSummary_ProductFragmentDoc,
|
|
17
17
|
'\n fragment Filter_facets on StoreFacet {\n ... on StoreFacetRange {\n key\n label\n\n min {\n selected\n absolute\n }\n\n max {\n selected\n absolute\n }\n\n __typename\n }\n ... on StoreFacetBoolean {\n key\n label\n values {\n label\n value\n selected\n quantity\n }\n\n __typename\n }\n }\n':
|
|
18
18
|
types.Filter_FacetsFragmentDoc,
|
|
@@ -62,7 +62,7 @@ const documents = {
|
|
|
62
62
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
63
63
|
*/
|
|
64
64
|
export function gql(
|
|
65
|
-
source: '\n fragment ProductSummary_product on StoreProduct {\n id: productID\n slug\n sku\n brand {\n brandName: name\n }\n name\n gtin\n\n isVariantOf {\n productGroupID\n name\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n listPrice\n listPriceWithTaxes\n quantity\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n'
|
|
65
|
+
source: '\n fragment ProductSummary_product on StoreProduct {\n id: productID\n slug\n sku\n brand {\n brandName: name\n }\n name\n gtin\n\n isVariantOf {\n productGroupID\n name\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n listPrice\n listPriceWithTaxes\n quantity\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n advertisement {\n adId\n adResponseId\n }\n }\n'
|
|
66
66
|
): typeof import('./graphql').ProductSummary_ProductFragmentDoc
|
|
67
67
|
/**
|
|
68
68
|
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
package/@generated/graphql.ts
CHANGED
|
@@ -116,6 +116,20 @@ export type Address = {
|
|
|
116
116
|
street: Maybe<Scalars['String']['output']>
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
/** Advertisement information about a specific product in a campaign */
|
|
120
|
+
export type Advertisement = {
|
|
121
|
+
/** Cost of the action, usually Cost Per Click. */
|
|
122
|
+
actionCost: Scalars['Float']['output']
|
|
123
|
+
/** Advertiser ID of the product. */
|
|
124
|
+
adId: Scalars['String']['output']
|
|
125
|
+
/** Advertiser Request ID. */
|
|
126
|
+
adRequestId: Scalars['String']['output']
|
|
127
|
+
/** Advertiser Response ID. */
|
|
128
|
+
adResponseId: Scalars['String']['output']
|
|
129
|
+
/** Campaign ID. */
|
|
130
|
+
campaignId: Scalars['String']['output']
|
|
131
|
+
}
|
|
132
|
+
|
|
119
133
|
export type AvailableDeliveryWindows = {
|
|
120
134
|
/** Available delivery window end date in UTC */
|
|
121
135
|
endDateUtc: Maybe<Scalars['String']['output']>
|
|
@@ -901,6 +915,8 @@ export type StorePerson = {
|
|
|
901
915
|
export type StoreProduct = {
|
|
902
916
|
/** Array of additional properties. */
|
|
903
917
|
additionalProperty: Array<StorePropertyValue>
|
|
918
|
+
/** Advertisement information about the product. */
|
|
919
|
+
advertisement: Maybe<Advertisement>
|
|
904
920
|
/** Aggregate ratings data. */
|
|
905
921
|
aggregateRating: StoreAggregateRating
|
|
906
922
|
/** Product brand. */
|
|
@@ -1123,6 +1139,7 @@ export type ProductSummary_ProductFragment = {
|
|
|
1123
1139
|
value: any
|
|
1124
1140
|
valueReference: any
|
|
1125
1141
|
}>
|
|
1142
|
+
advertisement: { adId: string; adResponseId: string } | null
|
|
1126
1143
|
}
|
|
1127
1144
|
|
|
1128
1145
|
type Filter_Facets_StoreFacetBoolean_Fragment = {
|
|
@@ -1433,6 +1450,7 @@ export type ClientManyProductsQueryQuery = {
|
|
|
1433
1450
|
value: any
|
|
1434
1451
|
valueReference: any
|
|
1435
1452
|
}>
|
|
1453
|
+
advertisement: { adId: string; adResponseId: string } | null
|
|
1436
1454
|
}
|
|
1437
1455
|
}>
|
|
1438
1456
|
}
|
|
@@ -1560,6 +1578,7 @@ export type ClientSearchSuggestionsQueryQuery = {
|
|
|
1560
1578
|
value: any
|
|
1561
1579
|
valueReference: any
|
|
1562
1580
|
}>
|
|
1581
|
+
advertisement: { adId: string; adResponseId: string } | null
|
|
1563
1582
|
}>
|
|
1564
1583
|
}
|
|
1565
1584
|
products: { pageInfo: { totalCount: number } }
|
|
@@ -1690,6 +1709,10 @@ export const ProductSummary_ProductFragmentDoc = new TypedDocumentString(
|
|
|
1690
1709
|
value
|
|
1691
1710
|
valueReference
|
|
1692
1711
|
}
|
|
1712
|
+
advertisement {
|
|
1713
|
+
adId
|
|
1714
|
+
adResponseId
|
|
1715
|
+
}
|
|
1693
1716
|
}
|
|
1694
1717
|
`,
|
|
1695
1718
|
{ fragmentName: 'ProductSummary_product' }
|
|
@@ -2051,7 +2074,7 @@ export const SubscribeToNewsletterDocument = {
|
|
|
2051
2074
|
export const ClientManyProductsQueryDocument = {
|
|
2052
2075
|
__meta__: {
|
|
2053
2076
|
operationName: 'ClientManyProductsQuery',
|
|
2054
|
-
operationHash: '
|
|
2077
|
+
operationHash: 'ad2eb78cfccb9dbd5a9f2d1e150cc70fea5da99a',
|
|
2055
2078
|
},
|
|
2056
2079
|
} as unknown as TypedDocumentString<
|
|
2057
2080
|
ClientManyProductsQueryQuery,
|
|
@@ -2078,7 +2101,7 @@ export const ClientProductQueryDocument = {
|
|
|
2078
2101
|
export const ClientSearchSuggestionsQueryDocument = {
|
|
2079
2102
|
__meta__: {
|
|
2080
2103
|
operationName: 'ClientSearchSuggestionsQuery',
|
|
2081
|
-
operationHash: '
|
|
2104
|
+
operationHash: '4d9f934764d8578aea08673b8ba57e8bf738f534',
|
|
2082
2105
|
},
|
|
2083
2106
|
} as unknown as TypedDocumentString<
|
|
2084
2107
|
ClientSearchSuggestionsQueryQuery,
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"46103bee661405bde706d72126fdbf9b0a0c9e6e": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
|
|
4
4
|
"324471076994dca94a47adcaf1c6b8f7896e1b4f": "fragment CartItem on StoreOffer { itemOffered { ...CartProductItem } listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } fragment CartMessage on StoreCartMessage { status text } fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } mutation ValidateCartMutation($cart: IStoreCart!, $session: IStoreSession!) { validateCart(cart: $cart, session: $session) { messages { ...CartMessage } order { acceptedOffer { ...CartItem } orderNumber } } }",
|
|
5
5
|
"feb7005103a859e2bc8cf2360d568806fd88deba": "mutation SubscribeToNewsletter($data: IPersonNewsletter!) { subscribeToNewsletter(data: $data) { id } }",
|
|
6
|
-
"
|
|
6
|
+
"ad2eb78cfccb9dbd5a9f2d1e150cc70fea5da99a": "fragment ClientManyProducts on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { 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 } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price quantity seller { identifier } } } id: productID sku slug } query ClientManyProductsQuery($after: String, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $term: String!) { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { edges { node { ...ProductSummary_product } } pageInfo { totalCount } } } ...ClientManyProducts }",
|
|
7
7
|
"177fe68cb385737b0901fc9e105f0a4813e18a20": "fragment ClientProductGallery on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { pageInfo { totalCount } } } } fragment Filter_facets on StoreFacet { ... on StoreFacetBoolean { __typename key label values { label quantity selected value } } ... on StoreFacetRange { __typename key label max { absolute selected } min { absolute selected } } } fragment SearchEvent_metadata on SearchMetadata { isTermMisspelled logicalOperator } query ClientProductGalleryQuery($after: String!, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $term: String!) { redirect(term: $term, selectedFacets: $selectedFacets) { url } search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { facets { ...Filter_facets } metadata { ...SearchEvent_metadata } products { pageInfo { totalCount } } } ...ClientProductGallery }",
|
|
8
8
|
"7d121ef8d4dc99174e64e4429a9b977b8bbebed8": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ClientProduct on Query { product(locator: $locator) { id: productID } } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } query ClientProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { ...ProductDetailsFragment_product } ...ClientProduct }",
|
|
9
|
-
"
|
|
9
|
+
"4d9f934764d8578aea08673b8ba57e8bf738f534": "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 } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price quantity seller { identifier } } } id: productID sku slug } fragment SearchEvent_metadata on SearchMetadata { 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 }",
|
|
10
10
|
"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 }",
|
|
11
11
|
"5696202828f9275216a445e316ebf516f168c506": "mutation ValidateSession($search: String!, $session: IStoreSession!) { validateSession(session: $session, search: $search) { addressType channel country currency { code symbol } deliveryMode { deliveryChannel deliveryMethod deliveryWindow { endDate startDate } } geoCoordinates { latitude longitude } locale person { email familyName givenName id } postalCode } }",
|
|
12
12
|
"d6667f1de2a26b94b9b55f4b25d7d823f82635a0": "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 localizedEstimates price shippingEstimate } } } ...ClientShippingSimulation }"
|
|
@@ -29,6 +29,20 @@ type Address {
|
|
|
29
29
|
geoCoordinates: [Float]
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
"""Advertisement information about a specific product in a campaign"""
|
|
33
|
+
type Advertisement {
|
|
34
|
+
"""Advertiser ID of the product."""
|
|
35
|
+
adId: String!
|
|
36
|
+
"""Campaign ID."""
|
|
37
|
+
campaignId: String!
|
|
38
|
+
"""Cost of the action, usually Cost Per Click."""
|
|
39
|
+
actionCost: Float!
|
|
40
|
+
"""Advertiser Request ID."""
|
|
41
|
+
adRequestId: String!
|
|
42
|
+
"""Advertiser Response ID."""
|
|
43
|
+
adResponseId: String!
|
|
44
|
+
}
|
|
45
|
+
|
|
32
46
|
"""Aggregate offer information, for a given SKU that is available to be fulfilled by multiple sellers."""
|
|
33
47
|
type StoreAggregateOffer {
|
|
34
48
|
"""Highest price among all sellers."""
|
|
@@ -382,6 +396,8 @@ type StoreProduct {
|
|
|
382
396
|
releaseDate: String!
|
|
383
397
|
"""Sku Unit Multiplier"""
|
|
384
398
|
unitMultiplier: Float
|
|
399
|
+
"""Advertisement information about the product."""
|
|
400
|
+
advertisement: Advertisement
|
|
385
401
|
}
|
|
386
402
|
|
|
387
403
|
"""Product input. Products are variants within product groups, equivalent to VTEX [SKUs](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on."""
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.117",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "vtex/faststore",
|
|
6
6
|
"browserslist": "supports es6-module and not dead",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@envelop/graphql-jit": "^1.1.1",
|
|
44
44
|
"@envelop/parser-cache": "^2.2.0",
|
|
45
45
|
"@envelop/validation-cache": "^2.2.0",
|
|
46
|
-
"@faststore/api": "^3.0.
|
|
46
|
+
"@faststore/api": "^3.0.117",
|
|
47
47
|
"@faststore/components": "^3.0.116",
|
|
48
48
|
"@faststore/graphql-utils": "^3.0.116",
|
|
49
49
|
"@faststore/lighthouse": "^3.0.116",
|
|
@@ -128,5 +128,5 @@
|
|
|
128
128
|
"node": "18.19.0",
|
|
129
129
|
"yarn": "1.19.1"
|
|
130
130
|
},
|
|
131
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "7f082b44a4b4a5f79afc98b0c9803237feefd2e4"
|
|
132
132
|
}
|
|
@@ -77,6 +77,7 @@ function ProductCard({
|
|
|
77
77
|
sku,
|
|
78
78
|
isVariantOf: { name },
|
|
79
79
|
image: [img],
|
|
80
|
+
advertisement,
|
|
80
81
|
offers: {
|
|
81
82
|
lowPrice,
|
|
82
83
|
lowPriceWithTaxes,
|
|
@@ -106,12 +107,21 @@ function ProductCard({
|
|
|
106
107
|
|
|
107
108
|
const hasDiscount = spotPrice <= listPrice
|
|
108
109
|
|
|
110
|
+
const advertisementDataAttributes = advertisement
|
|
111
|
+
? {
|
|
112
|
+
'data-van-res-id': advertisement.adResponseId,
|
|
113
|
+
'data-van-aid': advertisement.adId,
|
|
114
|
+
'data-van-prod-name': name,
|
|
115
|
+
}
|
|
116
|
+
: {}
|
|
117
|
+
|
|
109
118
|
return (
|
|
110
119
|
<UIProductCard
|
|
111
120
|
outOfStock={outOfStock}
|
|
112
121
|
bordered={bordered}
|
|
113
122
|
variant={variant}
|
|
114
123
|
data-fs-product-card-sku={sku}
|
|
124
|
+
{...advertisementDataAttributes}
|
|
115
125
|
{...otherProps}
|
|
116
126
|
>
|
|
117
127
|
<UIProductCardImage aspectRatio={aspectRatio}>
|
|
@@ -189,6 +199,11 @@ export const fragment = gql(`
|
|
|
189
199
|
value
|
|
190
200
|
valueReference
|
|
191
201
|
}
|
|
202
|
+
|
|
203
|
+
advertisement {
|
|
204
|
+
adId
|
|
205
|
+
adResponseId
|
|
206
|
+
}
|
|
192
207
|
}
|
|
193
208
|
`)
|
|
194
209
|
|
package/src/server/options.ts
CHANGED
|
@@ -8,6 +8,7 @@ export const apiOptions: APIOptions = {
|
|
|
8
8
|
environment: storeConfig.api.environment as APIOptions['environment'],
|
|
9
9
|
subDomainPrefix: storeConfig.api.subDomainPrefix ?? ['www'],
|
|
10
10
|
hideUnavailableItems: storeConfig.api.hideUnavailableItems,
|
|
11
|
+
showSponsored: storeConfig.api.showSponsored,
|
|
11
12
|
simulationBehavior: (storeConfig.api as Record<string, any>)
|
|
12
13
|
.simulationBehavior,
|
|
13
14
|
incrementAddress: storeConfig.api.incrementAddress,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[661],{1770:function(e){e.exports=function(){"use strict";function forEach(e,t){if(e)for(var r in e)({}).hasOwnProperty.call(e,r)&&t(r,e[r])}var e={unstyled:"p","header-one":"h1","header-two":"h2","header-three":"h3","header-four":"h4","header-five":"h5","header-six":"h6","unordered-list-item":"ul","ordered-list-item":"ol",blockquote:"blockquote",code:"pre"};function getBlockTag(t){return t&&e[t]}function getBlockStyle(e){var t="";return forEach(e,function(e,r){r&&(t+="".concat(e,":").concat(r,";"))}),t}function getEntityMarkup(e,t,r,n){var o=e[t];if("function"==typeof n){var a=n(o,r);if(a)return a}if("MENTION"===o.type)return'<a href="'.concat(o.data.url,'" class="wysiwyg-mention" data-mention data-value="').concat(o.data.value,'">').concat(r,"</a>");if("LINK"===o.type){var i=o.data.targetOption||"_self";return'<a href="'.concat(o.data.url,'" target="').concat(i,'">').concat(r,"</a>")}if("IMAGE"===o.type){var s=o.data.alignment;return s&&s.length?'<div style="text-align:'.concat(s,';"><img src="').concat(o.data.src,'" alt="').concat(o.data.alt,'" style="height: ').concat(o.data.height,";width: ").concat(o.data.width,'"/></div>'):'<img src="'.concat(o.data.src,'" alt="').concat(o.data.alt,'" style="height: ').concat(o.data.height,";width: ").concat(o.data.width,'"/>')}return"EMBEDDED_LINK"===o.type?'<iframe width="'.concat(o.data.width,'" height="').concat(o.data.height,'" src="').concat(o.data.src,'" frameBorder="0"></iframe>'):r}function getInlineStyleSections(e,t,r,n){var o=[],a=Array.from(e.text);if(a.length>0)for(var i,s,c,l,u=(i=e.text,s=e.inlineStyleRanges,c={BOLD:Array(i.length),ITALIC:Array(i.length),UNDERLINE:Array(i.length),STRIKETHROUGH:Array(i.length),CODE:Array(i.length),SUPERSCRIPT:Array(i.length),SUBSCRIPT:Array(i.length),COLOR:Array(i.length),BGCOLOR:Array(i.length),FONTSIZE:Array(i.length),FONTFAMILY:Array(i.length),length:i.length},s&&s.length>0&&s.forEach(function(e){for(var t=e.offset,r=t+e.length,n=t;n<r;n+=1)0===e.style.indexOf("color-")?c.COLOR[n]=e.style.substring(6):0===e.style.indexOf("bgcolor-")?c.BGCOLOR[n]=e.style.substring(8):0===e.style.indexOf("fontsize-")?c.FONTSIZE[n]=e.style.substring(9):0===e.style.indexOf("fontfamily-")?c.FONTFAMILY[n]=e.style.substring(11):c[e.style]&&(c[e.style][n]=!0)}),c),d=r;d<n;d+=1)d!==r&&function(e,t,r){var n=!0;return r>0&&r<e.length?t.forEach(function(t){n=n&&e[t][r]===e[t][r-1]}):n=!1,n}(u,t,d)?(l.text.push(a[d]),l.end=d+1):o.push(l={styles:function(e,t){var r={};return e.COLOR[t]&&(r.COLOR=e.COLOR[t]),e.BGCOLOR[t]&&(r.BGCOLOR=e.BGCOLOR[t]),e.FONTSIZE[t]&&(r.FONTSIZE=e.FONTSIZE[t]),e.FONTFAMILY[t]&&(r.FONTFAMILY=e.FONTFAMILY[t]),e.UNDERLINE[t]&&(r.UNDERLINE=!0),e.ITALIC[t]&&(r.ITALIC=!0),e.BOLD[t]&&(r.BOLD=!0),e.STRIKETHROUGH[t]&&(r.STRIKETHROUGH=!0),e.CODE[t]&&(r.CODE=!0),e.SUBSCRIPT[t]&&(r.SUBSCRIPT=!0),e.SUPERSCRIPT[t]&&(r.SUPERSCRIPT=!0),r}(u,d),text:[a[d]],start:d,end:d+1});return o}function getBlockInnerMarkup(e,t,r,n){var o,a,i=[],s=(o=[],a=0,e.entityRanges.map(function(e){return{offset:e.offset,length:e.length,key:e.key,type:"ENTITY"}}).concat(function(e,t){var r=[];if(t){for(var n=0,o=0,a=e,i=t.trigger||"#",s=t.separator||" ";a.length>0&&o>=0;)if(a[0]===i?(o=0,n=0,a=a.substr(i.length)):(o=a.indexOf(s+i))>=0&&(a=a.substr(o+(s+i).length),n+=o+s.length),o>=0){var c=a.indexOf(s)>=0?a.indexOf(s):a.length,l=a.substr(0,c);l&&l.length>0&&r.push({offset:n,length:l.length+i.length,type:"HASHTAG"}),n+=i.length}}return r}(e.text,r)).sort(function(e,t){return e.offset-t.offset}).forEach(function(e){e.offset>a&&o.push({start:a,end:e.offset}),o.push({start:e.offset,end:e.offset+e.length,entityKey:e.key,type:e.type}),a=e.offset+e.length}),a<e.text.length&&o.push({start:a,end:e.text.length}),o);return s.forEach(function(r,o){var a=function(e,t,r,n){var o=[];getInlineStyleSections(e,["COLOR","BGCOLOR","FONTSIZE","FONTFAMILY"],r.start,r.end).forEach(function(t){var r,n;o.push((r=getInlineStyleSections(e,["BOLD","ITALIC","UNDERLINE","STRIKETHROUGH","CODE","SUPERSCRIPT","SUBSCRIPT"],t.start,t.end),n="",r.forEach(function(e){var t,r,o;n+=(t=e.styles,o=(r=e.text)&&r.length>0?r.map(function(e){switch(e){case"\n":return"<br>";case"&":return"&";case"<":return"<";case">":return">";default:return e}}).join(""):"",forEach(t,function(e,t){var r;r=o,o="BOLD"===e?"<strong>".concat(r,"</strong>"):"ITALIC"===e?"<em>".concat(r,"</em>"):"UNDERLINE"===e?"<ins>".concat(r,"</ins>"):"STRIKETHROUGH"===e?"<del>".concat(r,"</del>"):"CODE"===e?"<code>".concat(r,"</code>"):"SUPERSCRIPT"===e?"<sup>".concat(r,"</sup>"):"SUBSCRIPT"===e?"<sub>".concat(r,"</sub>"):r}),o)}),n=function(e,t){if(e&&(e.COLOR||e.BGCOLOR||e.FONTSIZE||e.FONTFAMILY)){var r='style="';return e.COLOR&&(r+="color: ".concat(e.COLOR,";")),e.BGCOLOR&&(r+="background-color: ".concat(e.BGCOLOR,";")),e.FONTSIZE&&(r+="font-size: ".concat(e.FONTSIZE).concat(/^\d+$/.test(e.FONTSIZE)?"px":"",";")),e.FONTFAMILY&&(r+="font-family: ".concat(e.FONTFAMILY,";")),r+='"',"<span ".concat(r,">").concat(t,"</span>")}return t}(t.styles,n)))});var a=o.join("");return"ENTITY"===r.type?void 0!==r.entityKey&&null!==r.entityKey&&(a=getEntityMarkup(t,r.entityKey,a,n)):"HASHTAG"===r.type&&(a='<a href="'.concat(a,'" class="wysiwyg-hashtag">').concat(a,"</a>")),a}(e,t,r,n);0===o&&(a=function(e){if(e){for(var t=e,r=0;r<t.length;r+=1)if(" "===e[r])t=t.replace(" "," ");else break;return t}return e}(a)),o===s.length-1&&(a=function(e){if(e){for(var t=e,r=t.length-1;r>=0;r-=1)if(" "===t[r])t="".concat(t.substring(0,r)," ").concat(t.substring(r+1));else break;return t}return e}(a)),i.push(a)}),i.join("")}function getListMarkup(e,t,r,n,o){var a,i=[],s=[];return e.forEach(function(e){var c=!1;if(a?a.type!==e.type?(i.push("</".concat(getBlockTag(a.type),">\n")),i.push("<".concat(getBlockTag(e.type),">\n"))):a.depth===e.depth?s&&s.length>0&&(i.push(getListMarkup(s,t,r,n,o)),s=[]):(c=!0,s.push(e)):i.push("<".concat(getBlockTag(e.type),">\n")),!c){i.push("<li");var l=getBlockStyle(e.data);l&&i.push(' style="'.concat(l,'"')),n&&i.push(' dir = "auto"'),i.push(">"),i.push(getBlockInnerMarkup(e,t,r,o)),i.push("</li>\n"),a=e}}),s&&s.length>0&&i.push(getListMarkup(s,t,r,n,o)),i.push("</".concat(getBlockTag(a.type),">\n")),i.join("")}return function(e,t,r,n){var o=[];if(e){var a=e.blocks,i=e.entityMap;if(a&&a.length>0){var s=[];if(a.forEach(function(e){var a;if("unordered-list-item"===(a=e.type)||"ordered-list-item"===a)s.push(e);else{if(s.length>0){var c=getListMarkup(s,i,t,n);o.push(c),s=[]}var l=function(e,t,r,n,o){var a,i=[];if(e.entityRanges.length>0&&(null==(a=e.text)||0===a.length||0===a.trim().length||"atomic"===e.type)?0:1){var s=getBlockTag(e.type);if(s){i.push("<".concat(s));var c=getBlockStyle(e.data);c&&i.push(' style="'.concat(c,'"')),n&&i.push(' dir = "auto"'),i.push(">"),i.push(getBlockInnerMarkup(e,t,r,o)),i.push("</".concat(s,">"))}}else i.push(getEntityMarkup(t,e.entityRanges[0].key,void 0,o));return i.push("\n"),i.join("")}(e,i,t,r,n);o.push(l)}}),s.length>0){var c=getListMarkup(s,i,t,r,n);o.push(c),s=[]}}}return o.join("")}}()},7704:function(e,t,r){"use strict";r.d(t,{YD:function(){return useInView},df:function(){return l}});var n=r(2784);function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var o=new Map,a=new WeakMap,i=0,s=void 0;function observe(e,t,r,n){if(void 0===r&&(r={}),void 0===n&&(n=s),void 0===window.IntersectionObserver&&void 0!==n){var c=e.getBoundingClientRect();return t(n,{isIntersecting:n,target:e,intersectionRatio:"number"==typeof r.threshold?r.threshold:0,time:0,boundingClientRect:c,intersectionRect:c,rootBounds:c}),function(){}}var l=function(e){var t=Object.keys(e).sort().filter(function(t){return void 0!==e[t]}).map(function(t){var r;return t+"_"+("root"===t?(r=e.root)?(a.has(r)||(i+=1,a.set(r,i.toString())),a.get(r)):"0":e[t])}).toString(),r=o.get(t);if(!r){var n,s=new Map,c=new IntersectionObserver(function(t){t.forEach(function(t){var r,o=t.isIntersecting&&n.some(function(e){return t.intersectionRatio>=e});e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=o),null==(r=s.get(t.target))||r.forEach(function(e){e(o,t)})})},e);n=c.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),r={id:t,observer:c,elements:s},o.set(t,r)}return r}(r),u=l.id,d=l.observer,f=l.elements,p=f.get(e)||[];return f.has(e)||f.set(e,p),p.push(t),d.observe(e),function(){p.splice(p.indexOf(t),1),0===p.length&&(f.delete(e),d.unobserve(e)),0===f.size&&(d.disconnect(),o.delete(u))}}var c=["children","as","triggerOnce","threshold","root","rootMargin","onChange","skip","trackVisibility","delay","initialInView","fallbackInView"];function isPlainChildren(e){return"function"!=typeof e.children}var l=function(e){function InView(t){var r;return(r=e.call(this,t)||this).node=null,r._unobserveCb=null,r.handleNode=function(e){!r.node||(r.unobserve(),e||r.props.triggerOnce||r.props.skip||r.setState({inView:!!r.props.initialInView,entry:void 0})),r.node=e||null,r.observeNode()},r.handleChange=function(e,t){e&&r.props.triggerOnce&&r.unobserve(),isPlainChildren(r.props)||r.setState({inView:e,entry:t}),r.props.onChange&&r.props.onChange(e,t)},r.state={inView:!!t.initialInView,entry:void 0},r}InView.prototype=Object.create(e.prototype),InView.prototype.constructor=InView,_setPrototypeOf(InView,e);var t=InView.prototype;return t.componentDidUpdate=function(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())},t.componentWillUnmount=function(){this.unobserve(),this.node=null},t.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,r=e.root,n=e.rootMargin,o=e.trackVisibility,a=e.delay,i=e.fallbackInView;this._unobserveCb=observe(this.node,this.handleChange,{threshold:t,root:r,rootMargin:n,trackVisibility:o,delay:a},i)}},t.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},t.render=function(){if(!isPlainChildren(this.props)){var e=this.state,t=e.inView,r=e.entry;return this.props.children({inView:t,entry:r,ref:this.handleNode})}var o=this.props,a=o.children,i=o.as,s=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}(o,c);return n.createElement(i||"div",_extends({ref:this.handleNode},s),a)},InView}(n.Component);function useInView(e){var t=void 0===e?{}:e,r=t.threshold,o=t.delay,a=t.trackVisibility,i=t.rootMargin,s=t.root,c=t.triggerOnce,l=t.skip,u=t.initialInView,d=t.fallbackInView,f=n.useRef(),p=n.useState({inView:!!u}),h=p[0],g=p[1],b=n.useCallback(function(e){void 0!==f.current&&(f.current(),f.current=void 0),!l&&e&&(f.current=observe(e,function(e,t){g({inView:e,entry:t}),t.isIntersecting&&c&&f.current&&(f.current(),f.current=void 0)},{root:s,rootMargin:i,threshold:r,trackVisibility:a,delay:o},d))},[Array.isArray(r)?r.toString():r,s,i,c,l,a,d,o]);(0,n.useEffect)(function(){f.current||!h.entry||c||l||g({inView:!!u})});var v=[b,h.inView,h.entry];return v.ref=v[0],v.inView=v[1],v.entry=v[2],v}l.displayName="InView",l.defaultProps={threshold:0,triggerOnce:!1,initialInView:!1}},792:function(e,t,r){"use strict";var n=r(2784);let o=(0,n.forwardRef)(function({testId:e="fs-skeleton",loading:t=!0,shimmer:r=!0,children:o,size:a,border:i,borderRadius:s,...c},l){let u={width:a.width,height:a.height};return t?n.createElement("div",{ref:l,"data-fs-skeleton":!0,"data-testid":e,"data-fs-skeleton-border":i||null,style:s?{...u,borderRadius:s}:u,...c},r&&n.createElement("div",{"data-fs-skeleton-shimmer":!0})):n.createElement(n.Fragment,null,o)});t.Z=o},2946:function(e,t,r){"use strict";r.d(t,{Z:function(){return DiscountBadge_DiscountBadge}});var n=r(2784),o=r(276);let useDiscountPercent=(e,t)=>(0,n.useMemo)(()=>{let r=e-t,n=100*r/e;return Math.round(n)},[t,e]);var DiscountBadge_DiscountBadge=({listPrice:e,spotPrice:t,thresholdLow:r=15,thresholdHigh:a=40,size:i,testId:s="fs-discount-badge"})=>{let c=useDiscountPercent(e,t);if(0===c)return n.createElement(n.Fragment,null);let l=c<=r?"low":c<=a?"medium":"high";return n.createElement(o.Z,{"data-fs-discount-badge":!0,"data-fs-discount-badge-variant":l,size:i,"data-testid":s},c,"% off")}},3024:function(e,t,r){"use strict";var n=r(2784),o=r(2614),a=r(7041),i=r(4564);let s=(0,n.forwardRef)(function({children:e,testId:t="fs-rating",length:r=5,value:s=0,icon:c,onChange:l,...u},d){let[f,p]=(0,n.useState)(0),h={"data-fs-rating-icon-outline":!0},g=n.isValidElement(c)?c:n.createElement(o.Z,{name:"Star"});return n.createElement(i.Z,{ref:d,"data-fs-rating":!0,"data-fs-rating-actionable":"function"==typeof l,"data-testid":t,...u},Array.from({length:r}).map((e,r)=>{let i=r+1;return n.createElement("li",{key:`rating-${r}`,"data-fs-rating-item":i<=(f||s)?"full":i-s>0&&i-s<1?"partial":"empty","data-testid":`${t}-item`},l?n.createElement(a.Z,{"data-fs-rating-button":!0,icon:g,size:"small","aria-label":"rate",onClick:()=>{l(i)},onMouseEnter:()=>p(i),onMouseLeave:()=>p(s)}):n.createElement(n.Fragment,null,n.createElement("div",{"data-fs-rating-icon-wrapper":!0},g),n.isValidElement(c)?n.cloneElement(c,h):n.createElement(o.Z,{name:"Star","data-fs-rating-icon-outline":!0})))}))});t.Z=s},6737:function(e,t,r){"use strict";var n=r(2784);let o=(0,n.forwardRef)(function({testId:e="fs-product-shelf",children:t,...r},o){return n.createElement("div",{ref:o,"data-fs-product-shelf":!0,"data-fs-content":"product-shelf","data-testid":e,...r},t)});t.Z=o},6068:function(e,t,r){"use strict";r.d(t,{Z:function(){return S}});var n=r(9499),o=r(4730),a=r(2784);let i=(0,a.forwardRef)(function({testId:e="fs-product-card",variant:t="default",bordered:r=!1,outOfStock:n,children:o,...i},s){return a.createElement("article",{ref:s,"data-fs-product-card":n?"out-of-stock":"","data-fs-product-card-variant":t,"data-fs-product-card-bordered":r,"data-testid":e,...i},o)}),s=(0,a.forwardRef)(function({testId:e="fs-product-card-image",aspectRatio:t=1,children:r,...n},o){return a.createElement("div",{ref:o,"data-fs-product-card-image":!0,"data-testid":e,style:{"--fs-product-card-image-aspect-ratio":t},...n},r)});var c=r(727),l=r(9088),u=r(1953),d=r(3024),f=r(2614),p=r(2946),h=r(276),g=r(3339);let b=(0,a.forwardRef)(function({testId:e="fs-product-card-content",title:t,linkProps:r,price:n,outOfStock:o,outOfStockLabel:i="Out of stock",ratingValue:s,showDiscountBadge:b,buttonLabel:v="Add",onButtonClick:m,children:O,includeTaxes:y=!1,includeTaxesLabel:w="Tax included",...j},P){let S=n?.listPrice?n.listPrice:0,_=n?.value?n.value:0;return a.createElement("section",{ref:P,"data-fs-product-card-content":!0,"data-fs-product-card-badge":b,"data-testid":e,...j},a.createElement("div",{"data-fs-product-card-heading":!0},a.createElement("h3",{"data-fs-product-card-title":!0},a.createElement(c.Z,{...r,title:t},a.createElement("span",null,t))),!o&&a.createElement(l.Z,{"data-fs-product-card-prices":!0,value:_,listPrice:S,formatter:n?.formatter}),y&&a.createElement(u.Z,{"data-fs-product-card-taxes-label":!0},w),s&&a.createElement(d.Z,{value:s,icon:a.createElement(f.Z,{name:"Star"})})),b&&!o&&a.createElement(p.Z,{listPrice:S,spotPrice:_}),o&&a.createElement(h.Z,null,i),m&&!o&&a.createElement("div",{"data-fs-product-card-actions":!0},a.createElement(g.Z,{variant:"primary",icon:a.createElement(f.Z,{name:"ShoppingCart"}),iconPosition:"left",size:"small",onClick:m},v)))});var v=r(1664),m=r.n(v),O=r(8918),y=r(113),w=r(5679),j=r(2322),P=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","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){(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 S=(0,a.memo)(function(e){var t,r,{product:n,index:c,bordered:l=!0,variant:u="default",aspectRatio:d=1,imgProps:f,ratingValue:p,buttonLabel:h="Add",onButtonClick:g,showDiscountBadge:v=!0,taxesConfiguration:S}=e,_=(0,o.Z)(e,P),{sku:E,isVariantOf:{name:x},image:[k],offers:{lowPrice:T,lowPriceWithTaxes:I,offers:[{listPrice:D,availability:C,listPriceWithTaxes:R}]}}=n,L=_objectSpread(_objectSpread({},(0,w.w)({product:n,selectedOffer:0,index:c})),{},{as:m(),passHref:!0,legacyBehavior:!1,prefetch:!1}),N=(0,a.useMemo)(()=>"https://schema.org/InStock"!==C,[C]),Z=null!=S&&S.usePriceWithTaxes?I:T,B=null!=S&&S.usePriceWithTaxes?R:D;return(0,j.jsxs)(i,_objectSpread(_objectSpread({outOfStock:N,bordered:l,variant:u,"data-fs-product-card-sku":E},_),{},{children:[(0,j.jsx)(s,{aspectRatio:d,children:(0,j.jsx)(O.Z,{src:k.url,alt:k.alternateName,sizes:"".concat(null!==(t=null==f?void 0:f.sizes)&&void 0!==t?t:"(max-width: 768px) 40vw, 30vw"),width:null!==(r=null==f?void 0:f.width)&&void 0!==r?r:360,height:Math.round((Number(null==f?void 0:f.height)||360)/d),loading:null==f?void 0:f.loading})}),(0,j.jsx)(b,{title:x,price:{value:Z,listPrice:B,formatter:y.P},ratingValue:p,outOfStock:N,onButtonClick:g,linkProps:L,showDiscountBadge:Z<=B&&v,includeTaxes:null==S?void 0:S.usePriceWithTaxes,includeTaxesLabel:null==S?void 0:S.taxesLabel})]}))})},8545:function(e,t,r){"use strict";var n=r(7542),o=r(9410),a=r(9089),i=r(9919),s=r.n(i),c=r(2322);t.Z=function(e){var{banner:t,newsletter:r}=e;return(0,c.jsx)(a.Z,{className:"".concat(s().section," section-banner-newsletter"),children:(0,c.jsxs)("div",{"data-fs-banner-text-newsletter":!0,"data-fs-content":"banner-newsletter",children:[(0,c.jsx)(n.i,{title:t.title,caption:t.caption,link:null==t?void 0:t.link,variant:t.variant,colorVariant:t.colorVariant}),(0,c.jsx)(o.O,{card:!0,colorVariant:r.colorVariant,title:r.title,description:r.description,icon:r.icon,privacyPolicy:r.privacyPolicy,emailInputLabel:r.emailInputLabel,displayNameInput:r.displayNameInput,nameInputLabel:r.nameInputLabel,subscribeButtonLabel:r.subscribeButtonLabel,subscribeButtonLoadingLabel:r.subscribeButtonLoadingLabel,toastSubscribe:r.toastSubscribe,toastSubscribeError:r.toastSubscribeError})]})})}},7542:function(e,t,r){"use strict";r.d(t,{i:function(){return b}});var n=r(9499),o=r(7296),a=r(4329),i=r(9089),s=r(8964),c=r.n(s),l=r(2784);let u=(0,l.createContext)(void 0),d=(0,l.forwardRef)(function({children:e,testId:t="fs-banner-text",variant:r="primary",colorVariant:n="main",...o},a){return l.createElement(u.Provider,{value:{variant:r,colorVariant:n}},l.createElement("article",{ref:a,"data-fs-banner-text":!0,"data-fs-content":"banner-text","data-fs-banner-text-variant":r,"data-fs-banner-text-color-variant":n,"data-testid":t,...o},e))});var f=r(3922);let p=(0,l.forwardRef)(function({testId:e="fs-banner-text-content",title:t,caption:r,link:n,linkText:o,linkTargetBlank:a,...i},s){let{variant:c,colorVariant:d}=function(){let e=(0,l.useContext)(u);if(void 0===e)throw Error("Do not use BannerText components outside the BannerText context.");return e}();return l.createElement("header",{ref:s,"data-fs-banner-text-content":!0,"data-fs-content":"banner-text","data-testid":e,...i},l.createElement("div",{"data-fs-banner-text-heading":!0,"data-fs-banner-text-color-variant":d},l.createElement("h2",null,t),"secondary"===c&&r&&l.createElement("p",null,r)),l.createElement(f.Z,{"data-fs-banner-text-link":!0,href:n,variant:c,inverse:"main"===d,"aria-label":o,target:a?"_blank":void 0},o))});var h=r(2322);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 g=(0,o.B)("BannerText",function(e){var t,r,{title:n,caption:o,link:{url:s,text:l,linkTargetBlank:u},variant:d,colorVariant:f}=e,{BannerText:p,BannerTextContent:g}=(0,a.r3)();return(0,h.jsx)(i.Z,{className:"".concat(c().section," section-banner layout__section"),children:(0,h.jsx)(p.Component,_objectSpread(_objectSpread({},p.props),{},{variant:null!==(t=null!=d?d:p.props.variant)&&void 0!==t?t:"primary",colorVariant:null!==(r=null!=f?f:p.props.colorVariant)&&void 0!==r?r:"main",children:(0,h.jsx)(g.Component,_objectSpread(_objectSpread({},g.props),{},{title:n,caption:o,link:null!=s?s:g.props.link,linkText:null!=l?l:g.props.linkText,linkTargetBlank:null!=u?u:g.props.linkTargetBlank}))}))})},{BannerText:d,BannerTextContent:p});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){(0,n.Z)(e,t,r[t])}):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}var b=(0,o.v)(OverriddenDefaultBannerText_objectSpread(OverriddenDefaultBannerText_objectSpread({},{section:"BannerText"}),{},{Section:g}))},3405:function(e,t,r){"use strict";r.d(t,{V:function(){return O}});var n=r(9499),o=r(7296),a=r(8918),i=r(4329),s=r(9089),c=r(1276),l=r.n(c),u=r(2784);let d=(0,u.createContext)(void 0),f=(0,u.forwardRef)(function({children:e,testId:t="fs-hero",variant:r="primary",colorVariant:n="main",...o},a){return u.createElement(d.Provider,{value:{variant:r,colorVariant:n}},u.createElement("article",{ref:a,"data-fs-hero":!0,"data-fs-hero-variant":r,"data-fs-hero-color-variant":n,"data-testid":t,...o},e))}),p=(0,u.forwardRef)(function({children:e,testId:t="fs-hero-image",...r},n){return u.createElement("div",{ref:n,"data-fs-hero-image":!0,"data-testid":t,...r},e)});var h=r(3922),g=r(2614);let b=(0,u.forwardRef)(function({icon:e,link:t,title:r,linkText:n,linkTargetBlank:o,subtitle:a,children:i,testId:s="fs-hero-heading",...c},l){let{variant:f,colorVariant:p}=function(){let e=(0,u.useContext)(d);if(void 0===e)throw Error("Do not use Hero components outside the Hero context.");return e}();return u.createElement("header",{ref:l,"data-fs-hero-heading":!0,"data-testid":s,...c},u.createElement("div",{"data-fs-hero-wrapper":!0,"data-fs-content":"hero"},u.createElement("div",{"data-fs-hero-info":!0},u.createElement("h1",{"data-fs-hero-title":!0},r),u.createElement("p",{"data-fs-hero-subtitle":!0},a),!!t&&u.createElement(h.Z,{href:t,inverse:"main"===p,icon:u.createElement(g.Z,{name:"ArrowRight"}),iconPosition:"right",target:o?"_blank":void 0},n)),!!e&&"secondary"===f&&u.createElement("span",{"data-fs-hero-icon":!0},e)))});var v=r(2322);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 m=(0,o.B)("Hero",e=>{var t,r,{link:n,title:o,subtitle:c,image:u,variant:d,colorVariant:f,icon:p}=e,{Hero:h,HeroImage:g,HeroHeader:b}=(0,i.r3)();return(0,v.jsx)(s.Z,{className:"".concat(l().section," section-hero"),children:(0,v.jsxs)(h.Component,_objectSpread(_objectSpread({},h.props),{},{variant:null!==(t=null!=d?d:h.props.variant)&&void 0!==t?t:"primary",colorVariant:null!==(r=null!=f?f:h.props.colorVariant)&&void 0!==r?r:"main",children:[(0,v.jsx)(g.Component,_objectSpread(_objectSpread({},g.props),{},{children:(0,v.jsx)(a.Z,{loading:"eager",src:u.src,alt:u.alt,width:360,height:240,sizes:"(max-width: 412px) 40vw, (max-width: 768px) 90vw, 50vw"})})),(0,v.jsx)(b.Component,_objectSpread({title:o,subtitle:c,link:null==n?void 0:n.url,linkText:null==n?void 0:n.text,linkTargetBlank:null==n?void 0:n.linkTargetBlank,icon:p},b.props))]}))})},{Hero:f,HeroImage:p,HeroHeader:b});function OverriddenDefaultHero_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 OverriddenDefaultHero_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultHero_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultHero_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var O=(0,o.v)(OverriddenDefaultHero_objectSpread(OverriddenDefaultHero_objectSpread({},{section:"Hero"}),{},{Section:m}))},9410:function(e,t,r){"use strict";r.d(t,{O:function(){return R}});var n=r(9499),o=r(7296),a=r(4730),i=r(2784),s=r(6652),c=r(3523),l=r(29),u=r(9857),d=r(2495),f=r(7553),useLazyQuery=(e,t,r)=>{var n,o=(0,u.ZP)((0,f.km)(e.__meta__.operationName,t),()=>null,f.WN);return[(n=(0,l.Z)(function*(t){var n=yield(0,d.W)(e,t,r);o.mutate(n,!1)}),function(e){return n.apply(this,arguments)}),o]},p=c.HZ,useNewsletter=()=>{var[e,{data:t,error:r,isValidating:n}]=useLazyQuery(p,{data:{name:"",email:""}});return{subscribeUser:e,data:t,error:r,loading:n}},h=r(4329),g=r(2322);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 Newsletter_Newsletter=function(e){var{icon:{icon:t,alt:r},title:n,description:o,privacyPolicy:a,emailInputLabel:c,displayNameInput:l,nameInputLabel:u,subscribeButtonLabel:d,subscribeButtonLoadingLabel:f,card:p,toastSubscribe:b,toastSubscribeError:v,colorVariant:m}=e,{Button:O,HeaderIcon:y,InputFieldName:w,InputFieldEmail:j,Newsletter:P,NewsletterAddendum:S,NewsletterContent:_,NewsletterForm:E,NewsletterHeader:x,ToastIconError:k,ToastIconSuccess:T}=(0,h.r3)(),{pushToast:I}=(0,s.l)(),{subscribeUser:D,loading:C,data:R}=useNewsletter(),L=(0,i.useRef)(null),N=(0,i.useRef)(null),Z=(0,i.useRef)(null);return(0,g.jsx)(P.Component,_objectSpread(_objectSpread({card:p,colorVariant:m},P.props),{},{children:(0,g.jsxs)(E.Component,_objectSpread(_objectSpread({ref:L,onSubmit:e=>{var t,r,n,o,a,i,s;e.preventDefault(),D({data:{name:null!==(t=null===(r=N.current)||void 0===r?void 0:r.value)&&void 0!==t?t:"",email:null!==(n=null===(o=Z.current)||void 0===o?void 0:o.value)&&void 0!==n?n:""}}),null!=R&&null!==(a=R.subscribeToNewsletter)&&void 0!==a&&a.id?I(_objectSpread(_objectSpread({},b),{},{status:"INFO",icon:(0,g.jsx)(T.Component,_objectSpread(_objectSpread({width:30,height:30},T.props),{},{name:null!==(i=b.icon)&&void 0!==i?i:T.props.name}))})):I(_objectSpread(_objectSpread({},v),{},{status:"ERROR",icon:(0,g.jsx)(k.Component,_objectSpread(_objectSpread({width:30,height:30},k.props),{},{name:null!==(s=b.icon)&&void 0!==s?s:k.props.name}))})),L.current.reset()}},E.props),{},{children:[(0,g.jsx)(x.Component,_objectSpread({title:n,description:o,icon:(0,g.jsx)(y.Component,_objectSpread(_objectSpread({width:32,height:32},y.props),{},{name:null!=t?t:y.props.name,"aria-label":null!=r?r:y.props["aria-label"]}))},x.props)),(0,g.jsxs)(_.Component,_objectSpread(_objectSpread({},_.props),{},{children:[l&&(0,g.jsx)(w.Component,_objectSpread(_objectSpread({id:"newsletter-name",required:!0},w.props),{},{label:null!=u?u:w.props.label,inputRef:N})),(0,g.jsx)(j.Component,_objectSpread(_objectSpread({id:"newsletter-email",type:"email",required:!0},j.props),{},{label:null!=c?c:j.props.label,inputRef:Z})),(0,g.jsx)(S.Component,_objectSpread({addendum:a},S.props)),(0,g.jsx)(O.Component,_objectSpread(_objectSpread({variant:"secondary",inverse:!0,type:"submit"},O.props),{},{children:C?f:d}))]}))]}))}))},b=r(9089),v=r(6541),m=r.n(v),O=r(3339),y=r(2614),w=r(3779);let j=(0,i.forwardRef)(function({card:e,children:t,colorVariant:r="main",testId:n="fs-newsletter",...o},a){return i.createElement("div",{ref:a,"data-testid":n,"data-fs-content":"newsletter","data-fs-newsletter":e?"card":"","data-fs-newsletter-color-variant":r,...o},t)}),P=(0,i.forwardRef)(function({children:e,testId:t="fs-newsletter-content",...r},n){return i.createElement("div",{ref:n,"data-testid":t,"data-fs-newsletter-content":!0,...r},e)}),S=(0,i.forwardRef)(function({children:e,onSubmit:t,testId:r="fs-newsletter-form",...n},o){return i.createElement("form",{ref:o,"data-testid":r,"data-fs-newsletter-form":!0,onSubmit:t,...n},e)}),_=(0,i.forwardRef)(function({icon:e,title:t,description:r,testId:n="fs-newsletter-header",...o},a){return i.createElement("header",{ref:a,"data-testid":n,"data-fs-newsletter-header":!0,...o},i.createElement("h3",{"data-fs-newsletter-header-title":!0},e,t),r&&i.createElement("span",{"data-fs-newsletter-header-description":!0},r))});var E=r(1770),x=r.n(E);let k=(0,i.forwardRef)(function({addendum:e,testId:t="fs-newsletter-addendum",...r},n){return i.createElement("span",{ref:n,"data-testid":t,"data-fs-newsletter-addendum":!0,...r},e)});var T=["addendum"];function NewsletterAddendum_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 I={Button:O.Z,HeaderIcon:y.Z,InputFieldEmail:w.Z,InputFieldName:w.Z,Newsletter:j,NewsletterAddendum:function(e){var{addendum:t}=e,r=(0,a.Z)(e,T);return(0,g.jsx)(k,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?NewsletterAddendum_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):NewsletterAddendum_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({dangerouslySetInnerHTML:{__html:function(e){if(!e)return"";var 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?x()(t,void 0,void 0,(e,t)=>{var r;return"LINK"!==e.type?null:(r=e.data.url,'\n <a\n data-fs-link="true"\n data-fs-link-variant="inline"\n data-fs-link-inverse="true"\n data-fs-link-size="regular"\n data-testid="fs-link"\n href="'.concat(r,'"\n >').concat(t,"</a>"))}):""}(t)}},r))},NewsletterContent:P,NewsletterForm:S,NewsletterHeader:_,ToastIconError:y.Z,ToastIconSuccess:y.Z},D=["icon","title","description","privacyPolicy","emailInputLabel","displayNameInput","nameInputLabel","subscribeButtonLabel","subscribeButtonLoadingLabel","card","toastSubscribe","toastSubscribeError","colorVariant"];function Newsletter_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=(0,o.B)("Newsletter",function(e){var{icon:t,title:r,description:o,privacyPolicy:i,emailInputLabel:s,displayNameInput:c,nameInputLabel:l,subscribeButtonLabel:u,subscribeButtonLoadingLabel:d,card:f,toastSubscribe:p,toastSubscribeError:h,colorVariant:v}=e,O=(0,a.Z)(e,D);return(0,g.jsx)(b.Z,{className:"".concat(m().section," section-newsletter layout__section"),children:(0,g.jsx)(Newsletter_Newsletter,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Newsletter_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Newsletter_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({icon:t,title:r,description:o,privacyPolicy:i,emailInputLabel:s,displayNameInput:c,nameInputLabel:l,subscribeButtonLabel:u,subscribeButtonLoadingLabel:d,toastSubscribe:p,toastSubscribeError:h,card:f,colorVariant:v},O))})},I);function OverriddenDefaultNewsletter_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 OverriddenDefaultNewsletter_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultNewsletter_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultNewsletter_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var R=(0,o.v)(OverriddenDefaultNewsletter_objectSpread(OverriddenDefaultNewsletter_objectSpread({},{section:"Newsletter"}),{},{Section:C}))},1171:function(e,t,r){"use strict";r.d(t,{T:function(){return b}});var n=r(9499),o=r(7296),a=r(7704),i=r(9089),s=r(8618),c=r(9322),l=r.n(c),u=r(6737),d=r(6068),f=r(9558),p={ProductShelf:u.Z,__experimentalCarousel:f.Z,__experimentalProductCard:d.Z},h=r(2322);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 g=(0,o.B)("ProductShelf",function(e){var t=Object.assign({},e),{ref:r,inView:o}=(0,a.YD)();return(0,h.jsx)(i.Z,{className:"".concat(l().section," section-product-shelf layout__section"),ref:r,children:(0,h.jsx)(s.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){(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}({inView:o},t))})},p);function OverriddenDefaultProductShelf_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 OverriddenDefaultProductShelf_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultProductShelf_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultProductShelf_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var b=(0,o.v)(OverriddenDefaultProductShelf_objectSpread(OverriddenDefaultProductShelf_objectSpread({},{section:"ProductShelf"}),{},{Section:g}))},5213:function(e,t,r){"use strict";r.d(t,{Z:function(){return ProductTiles_ProductTiles}});var n=r(4730),o=r(2784),a=r(7704),i=r(6068),s=r(9499);let c=(0,o.forwardRef)(function({testId:e="store-tiles",children:t,...r},n){let a=o.Children.count(t);return o.createElement("ul",{ref:n,role:"list","data-fs-tiles":!0,"data-fs-tiles-variant":3===a?"expanded-first":2===a?"expanded-first-two":"","data-fs-content":"tiles","data-testid":e,...r},t)});var l=r(2322),u=["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,s.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,n.Z)(e,u);return(0,l.jsx)(c,_objectSpread(_objectSpread({},r),{},{children:t}))};let d=(0,o.forwardRef)(function({testId:e="store-tile",children:t,...r},n){return o.createElement("li",{ref:n,role:"listitem","data-fs-tile":!0,"data-testid":e,...r},t)});var f=r(792),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)(f.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)(f.Z,{size:{width:"70%",height:"1.5rem"}})}),(0,l.jsx)("div",{"data-fs-product-tile-skeleton-price":!0,children:(0,l.jsx)(f.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)(f.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)(d,{children:(0,l.jsx)(ProductTileSkeleton_ProductTileSkeleton,{index:t+1,aspectRatio:getRatio(3,t)})},String(t)))}):(0,l.jsx)(l.Fragment,{children:t})},p=r(6414),h=r(173),g=r(9089),b=r(8419),v=r.n(b),m=["title","taxesConfiguration"],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_ProductTiles=e=>{var t,r,{title:s,taxesConfiguration:c}=e,u=(0,n.Z)(e,m),f=(0,o.useRef)(!1),{ref:b,inView:O}=(0,a.YD)(),y=(0,h.k)(u),w=null==y?void 0:null===(t=y.search)||void 0===t?void 0:t.products,j=null!==(r=null==w?void 0:w.edges)&&void 0!==r?r:[],{sendViewItemListEvent:P}=(0,p.m)({products:j,title:s,page:0,pageSize:0});return((0,o.useEffect)(()=>{O&&!f.current&&j.length&&(P(),f.current=!0)},[O,j.length,P]),(null==w?void 0:w.edges.length)===0)?null:(0,l.jsxs)(g.Z,{className:"".concat(v().section," section-product-tiles layout__section"),ref:b,children:[(0,l.jsx)("h2",{className:"text__title-section layout__content",children:s}),(0,l.jsx)(ProductTilesSkeleton_ProductTilesSkeleton,{loading:!w,children:(0,l.jsx)(ui_Tiles_Tiles,{children:j.map((e,t)=>(0,l.jsx)(d,{children:(0,l.jsx)(i.Z,{"data-testid":"tile-card",product:e.node,index:t+1,variant:"wide",aspectRatio:ProductTiles_getRatio(j.length,t),imgProps:getSizes(j.length,t),taxesConfiguration:c})},e.node.id))})})]})}},5476:function(e,t,r){"use strict";var n=r(792),o=r(2322);t.Z=function(e){var{bordered:t,sectioned:r,displayButton:a,aspectRatio:i=1,variant:s="default"}=e;return(0,o.jsxs)("div",{"data-fs-product-card-skeleton":!0,"data-fs-product-card-skeleton-variant":s,"data-fs-product-card-skeleton-bordered":t,"data-fs-product-card-skeleton-sectioned":r,children:[(0,o.jsx)("div",{"data-fs-product-card-skeleton-image":!0,style:{"--fs-product-card-skeleton-image-aspect-ratio":i},children:(0,o.jsx)(n.Z,{size:{width:"100%",height:"100%"}})}),(0,o.jsxs)("div",{"data-fs-product-card-skeleton-content":!0,children:[(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"90%",height:"1.5rem"}}),(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-text":!0,size:{width:"70%",height:"1.5rem"}}),(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-badge":!0,size:{width:"6rem",height:"2rem"},border:"pill"}),a&&(0,o.jsx)(n.Z,{"data-fs-product-card-skeleton-button":!0,size:{width:"6rem",height:"2rem"},style:{columnGap:".75rem"}})]})]})}},9558:function(e,t,r){"use strict";r.d(t,{Z:function(){return ui_Carousel_Carousel}});var n=r(2784),o=r(7041),a=r(2614);let i={delta:10,preventScrollOnSwipe:!1,rotationAngle:0,trackMouse:!1,trackTouch:!0,swipeDuration:1/0,touchEventOptions:{passive:!0}},s={first:!0,initial:[0,0],start:0,swiping:!1,xy:[0,0]},c="mousemove",l="mouseup";function rotateXYByAngle(e,t){if(0===t)return e;let r=Math.PI/180*t,n=e[0]*Math.cos(r)+e[1]*Math.sin(r),o=e[1]*Math.cos(r)-e[0]*Math.sin(r);return[n,o]}let nextPage=(e,t)=>(e+1)%t,previousPage=(e,t)=>(t-(t-e+1)%t)%t;function reducer(e,t){switch(t.type){case"NEXT_PAGE":{let t=e.infinite?e.totalPages+1:e.totalPages,r=nextPage(e.currentPage,t),n=r%t*e.itemsPerPage;return{...e,sliding:!0,slideDirection:"next",currentItem:n,currentPage:r}}case"PREVIOUS_PAGE":{let t=e.infinite?e.totalPages+1:e.totalPages,r=e.infinite&&0===e.currentPage,n=r?-1:previousPage(e.currentPage,e.totalPages);return{...e,sliding:!0,slideDirection:"previous",currentItem:n%t*e.itemsPerPage,currentPage:n}}case"GO_TO_PAGE":if(t.payload.pageIndex===e.currentPage)return e;return{...e,sliding:t.payload.shouldSlide,slideDirection:t.payload.pageIndex>e.currentPage?"next":"previous",currentItem:t.payload.pageIndex%e.totalPages*e.itemsPerPage,currentPage:t.payload.pageIndex};case"STOP_SLIDE":return{...e,sliding:!1};default:return e}}let defaultSliderState=(e,t,r)=>({currentItem:0,currentPage:0,sliding:!1,slideDirection:"next",totalItems:e,itemsPerPage:t,totalPages:Math.ceil(e/t),infinite:r}),slide=(e,t)=>{"next"===e&&t({type:"NEXT_PAGE"}),"previous"===e&&t({type:"PREVIOUS_PAGE"}),"number"==typeof e&&t({type:"GO_TO_PAGE",payload:{pageIndex:e,shouldSlide:!0}})},useSlider=({totalItems:e,itemsPerPage:t=1,infiniteMode:r=!1,shouldSlideOnSwipe:o=!0,...a})=>{let[u,d]=(0,n.useReducer)(reducer,void 0,()=>defaultSliderState(e,t,r)),f=function(e){var t,r,o;let a;let{trackMouse:u}=e,d=n.useRef(Object.assign({},s)),f=n.useRef(Object.assign({},i)),p=n.useRef(Object.assign({},f.current));for(a in p.current=Object.assign({},f.current),f.current=Object.assign(Object.assign({},i),e),i)void 0===f.current[a]&&(f.current[a]=i[a]);let[h,g]=n.useMemo(()=>(function(e,t){let onStart=t=>{let r="touches"in t;r&&t.touches.length>1||e((e,n)=>{n.trackMouse&&!r&&(document.addEventListener(c,onMove),document.addEventListener(l,onUp));let{clientX:o,clientY:a}=r?t.touches[0]:t,i=rotateXYByAngle([o,a],n.rotationAngle);return n.onTouchStartOrOnMouseDown&&n.onTouchStartOrOnMouseDown({event:t}),Object.assign(Object.assign(Object.assign({},e),s),{initial:i.slice(),xy:i,start:t.timeStamp||0})})},onMove=t=>{e((e,r)=>{let n="touches"in t;if(n&&t.touches.length>1)return e;if(t.timeStamp-e.start>r.swipeDuration)return e.swiping?Object.assign(Object.assign({},e),{swiping:!1}):e;let{clientX:o,clientY:a}=n?t.touches[0]:t,[s,c]=rotateXYByAngle([o,a],r.rotationAngle),l=s-e.xy[0],u=c-e.xy[1],d=Math.abs(l),f=Math.abs(u),p=(t.timeStamp||0)-e.start,h=Math.sqrt(d*d+f*f)/(p||1),g=[l/(p||1),u/(p||1)],b=d>f?l>0?"Right":"Left":u>0?"Down":"Up",v="number"==typeof r.delta?r.delta:r.delta[b.toLowerCase()]||i.delta;if(d<v&&f<v&&!e.swiping)return e;let m={absX:d,absY:f,deltaX:l,deltaY:u,dir:b,event:t,first:e.first,initial:e.initial,velocity:h,vxvy:g};m.first&&r.onSwipeStart&&r.onSwipeStart(m),r.onSwiping&&r.onSwiping(m);let O=!1;return(r.onSwiping||r.onSwiped||r[`onSwiped${b}`])&&(O=!0),O&&r.preventScrollOnSwipe&&r.trackTouch&&t.cancelable&&t.preventDefault(),Object.assign(Object.assign({},e),{first:!1,eventData:m,swiping:!0})})},onEnd=t=>{e((e,r)=>{let n;if(e.swiping&&e.eventData){if(t.timeStamp-e.start<r.swipeDuration){n=Object.assign(Object.assign({},e.eventData),{event:t}),r.onSwiped&&r.onSwiped(n);let o=r[`onSwiped${n.dir}`];o&&o(n)}}else r.onTap&&r.onTap({event:t});return r.onTouchEndOrOnMouseUp&&r.onTouchEndOrOnMouseUp({event:t}),Object.assign(Object.assign(Object.assign({},e),s),{eventData:n})})},cleanUpMouse=()=>{document.removeEventListener(c,onMove),document.removeEventListener(l,onUp)},onUp=e=>{cleanUpMouse(),onEnd(e)},attachTouch=(e,t)=>{let cleanup=()=>{};if(e&&e.addEventListener){let r=Object.assign(Object.assign({},i.touchEventOptions),t.touchEventOptions),n=[["touchstart",onStart,r],["touchmove",onMove,Object.assign(Object.assign({},r),t.preventScrollOnSwipe?{passive:!1}:{})],["touchend",onEnd,r]];n.forEach(([t,r,n])=>e.addEventListener(t,r,n)),cleanup=()=>n.forEach(([t,r])=>e.removeEventListener(t,r))}return cleanup},r={ref:t=>{null!==t&&e((e,r)=>{if(e.el===t)return e;let n={};return e.el&&e.el!==t&&e.cleanUpTouch&&(e.cleanUpTouch(),n.cleanUpTouch=void 0),r.trackTouch&&t&&(n.cleanUpTouch=attachTouch(t,r)),Object.assign(Object.assign(Object.assign({},e),{el:t}),n)})}};return t.trackMouse&&(r.onMouseDown=onStart),[r,attachTouch]})(e=>d.current=e(d.current,f.current),{trackMouse:u}),[u]);return d.current=(t=d.current,r=f.current,o=p.current,r.trackTouch&&t.el?t.cleanUpTouch?r.preventScrollOnSwipe!==o.preventScrollOnSwipe||r.touchEventOptions.passive!==o.touchEventOptions.passive?(t.cleanUpTouch(),Object.assign(Object.assign({},t),{cleanUpTouch:g(t.el,r)})):t:Object.assign(Object.assign({},t),{cleanUpTouch:g(t.el,r)}):(t.cleanUpTouch&&t.cleanUpTouch(),Object.assign(Object.assign({},t),{cleanUpTouch:void 0}))),h}({onSwipedRight:()=>o&&slide("previous",d),onSwipedLeft:()=>o&&slide("next",d),trackMouse:!0,...a});return{handlers:f,slide,sliderState:u,sliderDispatch:d}};var u=r(3339);let defaultAriaLabel=(e,t,r)=>r?`Current page from ${e}`:`Go to page ${t+1} from ${e}`,d=(0,n.forwardRef)(function({id:e,totalQuantity:t,activeBullet:r,onClick:o,testId:a="fs-carousel-bullets",ariaLabelGenerator:i=defaultAriaLabel,ariaControlsGenerator:s,...c},l){let d=(0,n.useMemo)(()=>Array(t).fill(0),[t]);return n.createElement("div",{ref:l,"data-fs-carousel-bullets":!0,"data-testid":a,role:"tablist",...c},d.map((t,c)=>{let l=r===c;return n.createElement(u.Z,{key:`${e}-${c}`,role:"tab",tabIndex:-1,"data-fs-carousel-bullet":!0,testId:`${a}-bullet`,onClick:e=>o(e,c),"aria-label":i(e,c,l),"aria-controls":s?.(c),"aria-selected":l,variant:"tertiary"})}))}),useSlideVisibility=({currentSlide:e,itemsPerPage:t,totalItems:r})=>{let o=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{for(let r=0;r<t;r++)o.current.add(e+r)},[e,t]);let isItemVisible=n=>(function({itemsPerPage:e,currentSlide:t,slideIdx:r,totalItems:n}){return t<0||t>=n||r>=t&&r<t+e})({slideIdx:n,currentSlide:e,itemsPerPage:t,totalItems:r});return{shouldRenderItem:e=>o.current.has(e)||isItemVisible(e),isItemVisible}};var Carousel_CarouselItem=function({id:e,index:t,state:r,children:o,totalItems:a,infiniteMode:i,isScrollCarousel:s,marginRightValue:c}){let{isItemVisible:l,shouldRenderItem:u}=useSlideVisibility({totalItems:a,currentSlide:r.currentItem,itemsPerPage:r.itemsPerPage}),d={width:`calc((100% - ${c} * ${r.itemsPerPage-1}) / ${r.itemsPerPage})`},f=s&&r.itemsPerPage>1?{...d}:{width:"100%"},p=s||u(t-Number(i));return n.createElement("li",{style:f,id:`${e}-carousel-item-${t}`,"data-fs-carousel-item":!0,"data-fs-carousel-item-visible":l(t-Number(i))||void 0},p?o:null)};let createTransformValues=(e,t)=>{let r={},n=100/t;for(let o=0;o<t;++o){let t=e?o-1:o,a=-(n*o);r[t]=a}return r};var Carousel_Carousel=function({children:e,className:t,"aria-label":r,infiniteMode:i=!1,controls:s="complete",testId:c="fs-carousel",transition:l={duration:400,property:"transform"},id:u="fs-carousel",variant:f="scroll",itemsPerPage:p=1,navigationIcons:h,...g}){if(p<1)throw Error("itemsPerPage must be greater than or equal to 1");let b=(0,n.useRef)(null),v="slide"===f,m="scroll"===f,O=n.Children.toArray(e),y=O.length,w=i?y+2:y,j=`${l.property} ${l.duration}ms ${l.timing??""} ${l.delay??""}`,{handlers:P,slide:S,sliderState:_,sliderDispatch:E}=useSlider({itemsPerPage:p,infiniteMode:i,totalItems:y,shouldSlideOnSwipe:v,...g}),x=Math.ceil(y/_.itemsPerPage),[k,T]=(0,n.useState)("16px"),[I,D]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=b.current?.firstElementChild;e&&(T(getComputedStyle(e).getPropertyValue("margin-right")),D(Number(e.clientWidth)+parseInt(k,10)+1))},[I]);let C=(0,n.useMemo)(()=>createTransformValues(i,w),[w,i]),R=i&&e?O.slice(0,1):[],L=i&&e?O.slice(y-1):[],N=L.concat(e??[],R),Z=(0,n.useMemo)(()=>({width:`${100*w}%`,transition:_.sliding?j:void 0,transform:`translate3d(${C[_.currentPage]}%, 0, 0)`}),[w,C,j,_.sliding,_.currentPage]),B=(0,n.useMemo)(()=>({width:"100%",overflowX:"scroll",whiteSpace:"nowrap"}),[]),slidePrevious=()=>{!_.sliding&&(i||0!==_.currentPage)&&S("previous",E)},slideNext=()=>{!_.sliding&&(i||_.currentPage!==y-1)&&S("next",E)},onScrollPagination=async(e,t)=>{if("previous"===t&&0===_.currentPage||"next"===t&&_.currentPage===_.totalPages-1)return;let r=e*I*p;b.current?.scrollTo({left:r,behavior:"smooth"}),S(e,E)};return n.createElement("section",{id:u,"data-fs-carousel":!0,"data-fs-carousel-variant":f,className:t,"data-testid":c,"aria-label":r},n.createElement("div",{"data-fs-carousel-track-container":!0,style:{width:"100%",overflow:"hidden",display:m?"block":void 0},...P},n.createElement("ul",{"aria-live":"polite",ref:b,style:v&&Z||m&&B,"data-fs-carousel-track":!0,onScroll:e=>{if(v||p>1)return;let t=Number(e.currentTarget.firstElementChild?.scrollWidth),r=e.currentTarget?.scrollLeft,n=r>t/2?Math.round:Math.floor,o=n(r/t);S(o,E)},onTransitionEnd:()=>{E({type:"STOP_SLIDE"}),i&&_.currentItem>=y&&E({type:"GO_TO_PAGE",payload:{pageIndex:0,shouldSlide:!1}}),i&&_.currentItem<0&&E({type:"GO_TO_PAGE",payload:{pageIndex:_.totalPages-1,shouldSlide:!1}})}},N.map((e,t)=>n.createElement(Carousel_CarouselItem,{id:u,index:t,key:String(t),state:_,totalItems:y,infiniteMode:i,isScrollCarousel:m,marginRightValue:k},e)))),1!==x&&("complete"===s||"navigationArrows"===s)&&n.createElement("div",{"data-fs-carousel-controls":!0},n.createElement(o.Z,{"data-fs-carousel-control":"left","aria-controls":u,disabled:!i&&0===_.currentPage,"aria-label":"previous",icon:h?.left??n.createElement(a.Z,{name:"ArrowLeft",width:20,height:20,weight:"bold"}),onClick:()=>{v&&slidePrevious(),m&&onScrollPagination(_.currentPage-1,"previous")}}),n.createElement(o.Z,{"data-fs-carousel-control":"right","aria-controls":u,disabled:!i&&_.currentPage===_.totalPages-1,"aria-label":"next",icon:h?.right??n.createElement(a.Z,{name:"ArrowRight",width:20,height:20,weight:"bold"}),onClick:()=>{v&&slideNext(),m&&onScrollPagination(_.currentPage+1,"next")}})),1!==x&&("complete"===s||"paginationBullets"===s)&&n.createElement(d,{id:u,tabIndex:0,activeBullet:_.currentPage,totalQuantity:x,onKeyDown:e=>{switch(e.key){case"ArrowLeft":v&&slidePrevious(),m&&onScrollPagination(_.currentPage-1,"previous");break;case"ArrowRight":v&&slideNext(),m&&onScrollPagination(_.currentPage+1,"next");break;case"Home":S(0,E);break;case"End":S(y-1,E)}},onClick:async(e,t)=>{v&&!_.sliding&&S(t,E),m&&onScrollPagination(t)},onFocus:e=>e.currentTarget.focus(),ariaControlsGenerator:e=>`${u}-carousel-item-${e}`}))},f=r(2322),ui_Carousel_Carousel=function(e){var{id:t,testId:r,children:n,itemsPerPage:o,variant:a="scroll",infiniteMode:i=!1}=e,s=window.innerWidth<=768;return(0,f.jsx)(Carousel_Carousel,{id:t,testId:r,variant:a,infiniteMode:i,itemsPerPage:s?1.6:o,children:n})}},8618:function(e,t,r){"use strict";r.d(t,{Z:function(){return ui_ProductShelf_ProductShelf}});var n=r(9499),o=r(4730),a=r(2784),i=r(6737);let s=(0,a.forwardRef)(function({testId:e="fs-product-shelf-items",children:t,...r},n){return a.createElement("ul",{role:"list",ref:n,"data-fs-product-shelf-items":!0,"data-fs-content":"product-shelf","data-testid":e,...r},t)}),c=(0,a.forwardRef)(function({testId:e="fs-product-shelf-item",children:t,...r},n){return a.createElement("li",{role:"listitem",ref:n,"data-fs-product-shelf-item":!0,"data-testid":e,...r},t)});var l=r(5476),u=r(2322),ProductShelfSkeleton_ProductShelfSkeleton=function(e){var{children:t,aspectRatio:r,itemsPerPage:n,loading:o=!0}=e;return o?(0,u.jsx)(i.Z,{"data-fs-product-shelf-skeleton":!0,children:(0,u.jsx)(s,{children:Array.from({length:n},(e,t)=>(0,u.jsx)(c,{children:(0,u.jsx)(l.Z,{aspectRatio:r,sectioned:!0,bordered:!0})},String(t)))})}):(0,u.jsx)(u.Fragment,{children:t})},d=r(6414),f=r(4329),p=r(173),h=["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){(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_ProductShelf_ProductShelf=function(e){var t,r,n,{title:i,inView:s,productCardConfiguration:{bordered:c,showDiscountBadge:l}={},numberOfItems:g,itemsPerPage:b=5,taxesConfiguration:v={}}=e,m=(0,o.Z)(e,h),{ProductShelf:O,__experimentalCarousel:y,__experimentalProductCard:w}=(0,f.r3)(),j=null!==(t=i.replace(/[^\w\s]/gi,"-").replace(/\s+/g,"-").toLowerCase())&&void 0!==t?t:"",P=(0,a.useId)(),S=(0,a.useRef)(!1),_=(0,p.k)(_objectSpread({first:g},m)),E=null==_?void 0:null===(r=_.search)||void 0===r?void 0:r.products,x=null!==(n=null==E?void 0:E.edges)&&void 0!==n?n:[],{sendViewItemListEvent:k}=(0,d.m)({products:x,title:i,page:0,pageSize:0});return((0,a.useEffect)(()=>{s&&!S.current&&x.length&&(k(),S.current=!0)},[s,x.length,k]),(null==E?void 0:E.edges.length)===0)?null:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("h2",{className:"text__title-section layout__content",children:i}),(0,u.jsx)(ProductShelfSkeleton_ProductShelfSkeleton,{aspectRatio:1,loading:void 0===E,itemsPerPage:b,children:(0,u.jsx)(O.Component,_objectSpread(_objectSpread({},O.props),{},{children:(0,u.jsx)(y.Component,_objectSpread(_objectSpread({id:j||P,itemsPerPage:b},y.props),{},{children:x.map((e,t)=>(0,a.createElement)(w.Component,_objectSpread(_objectSpread({aspectRatio:1,imgProps:{width:216,height:216,sizes:"(max-width: 768px) 42vw, 30vw"}},w.props),{},{bordered:null!=c?c:w.props.bordered,showDiscountBadge:null!=l?l:w.props.showDiscountBadge,taxesConfiguration:v,key:"".concat(e.node.id),product:e.node,index:t+1})))}))}))})]})}},1023:function(e,t,r){"use strict";r.d(t,{K:function(){return o},g:function(){return n}});var n=12,o=5},6414:function(e,t,r){"use strict";r.d(t,{m:function(){return useViewItemListEvent}});var n=r(1072),o=r(2784),a=r(1868),useViewItemListEvent=e=>{var{products:t,title:r,page:i,pageSize:s}=e,{currency:{code:c}}=(0,a.kP)();return{sendViewItemListEvent:(0,o.useCallback)(()=>{(0,n._)({name:"view_item_list",params:{item_list_name:r,item_list_id:r,items:t.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:i*s+t+1,discount:r.offers.offers[0].listPrice-r.offers.offers[0].price,currency:c,item_variant_name:r.name,product_reference_id:r.gtin}})}})},[c,t,r,i,s])}}},4960:function(e,t,r){"use strict";r.d(t,{En:function(){return isSearchPage},OJ:function(){return isPLP},al:function(){return usePDP},qt:function(){return usePage},tS:function(){return isPDP}});var n=r(2784),o=r(2322),isPDP=e=>{var t,r,n,o;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.product)||void 0===r?void 0:r.sku)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(o=n.product)||void 0===o?void 0:o.sku)!=null},isPLP=e=>{var t,r,n,o,a,i;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:r.seo)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(o=n.collection)||void 0===o?void 0:o.seo)!=null&&(null==e?void 0:null===(a=e.data)||void 0===a?void 0:null===(i=a.collection)||void 0===i?void 0:i.sku)==void 0},isSearchPage=e=>{var t,r;return void 0===e||(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.title)!=void 0||(null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.searchTerm)!=void 0},a=(0,n.createContext)(null);function usePage(){var{context:e}=(0,n.useContext)(a);if(null==e)throw Error("Missing Overrides context on React tree");return e}var usePDP=()=>usePage();t.ZP=function(e){var{context:t,children:r}=e,i=(0,n.useMemo)(()=>({context:t}),[t]);return(0,o.jsx)(a.Provider,{value:i,children:r})}},5081:function(e,t,r){"use strict";r.d(t,{y:function(){return useLocalizedVariables}});var n=r(2784),o=r(1023),a=r(1868),toArray=e=>Array.isArray(e)?e:e?[e]:[],useLocalizedVariables=e=>{var{first:t,after:r,sort:i,term:s,selectedFacets:c}=e,{channel:l,locale:u}=(0,a.kP)();return(0,n.useMemo)(()=>{var e=toArray(c);return{first:null!=t?t:o.K,after:null!=r?r:"0",sort:null!=i?i:"score_desc",term:null!=s?s:"",selectedFacets:[...e,{key:"channel",value:null!=l?l:""},{key:"locale",value:u}]}},[c,t,r,i,s,l,u])}},5679:function(e,t,r){"use strict";r.d(t,{w:function(){return useProductLink}});var n=r(1072),o=r(2784),a=r(1868),useProductLink=e=>{var{index:t,product:r,selectedOffer:i}=e,{slug:s}=r,{currency:{code:c}}=(0,a.kP)(),l=(0,o.useCallback)(()=>{(0,n._)({name:"select_item",params:{items:[{item_id:r.isVariantOf.productGroupID,item_name:r.isVariantOf.name,item_brand:r.brand.name,item_variant:r.sku,index:t,price:r.offers.offers[i].price,discount:r.offers.offers[i].listPrice-r.offers.offers[i].price,currency:c,item_variant_name:r.name,product_reference_id:r.gtin}]}}),(0,n._)({name:"search_select_item",params:{url:window.location.href,items:[{item_id:r.isVariantOf.productGroupID,item_variant:r.sku,index:t}]}})},[c,r,t,i]);return{href:"/".concat(s,"/p"),onClick:l,"data-testid":"product-link"}}},173:function(e,t,r){"use strict";r.d(t,{k:function(){return useProductsQuery}});var n=r(9499),o=r(3523),a=r(7553),i=r(5081);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 s=o.gU,useProductsQuery=(e,t)=>{var r=(0,i.y)(e),{data:o}=(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){(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 o}},9919:function(e){e.exports={section:"section_section__YBgvV"}},8964:function(e){e.exports={section:"section_section__p_P_L"}},1276:function(e){e.exports={section:"section_section__Pdf2v"}},6541:function(e){e.exports={section:"section_section__6iqtV"}},9322:function(e){e.exports={section:"section_section__TjtMz",loading:"section_loading__ffSvt"}},8419:function(e){e.exports={section:"section_section__Wwc_y",loading:"section_loading__7M1Dl"}}}]);
|