@faststore/core 3.62.0 → 3.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/routes-manifest.json +1 -1
  12. package/.next/server/chunks/6011.js +2 -2
  13. package/.next/server/chunks/9563.js +2 -2
  14. package/.next/server/functions-config-manifest.json +1 -1
  15. package/.next/server/middleware-build-manifest.js +1 -1
  16. package/.next/server/pages/account/orders/[id].js +1 -1
  17. package/.next/server/pages/api/graphql.js +2 -2
  18. package/.next/server/pages/en-US/404.html +2 -2
  19. package/.next/server/pages/en-US/500.html +2 -2
  20. package/.next/server/pages/en-US/checkout.html +2 -2
  21. package/.next/server/pages/en-US/login.html +2 -2
  22. package/.next/server/pages/en-US/s.html +2 -2
  23. package/.next/server/pages/en-US.html +2 -2
  24. package/.next/server/pages-manifest.json +1 -1
  25. package/.next/static/{xhKBJ7tlyHwALHIa3Y3JM → IwvKHHiKmlhXatR48ylgQ}/_buildManifest.js +1 -1
  26. package/.next/static/chunks/pages/_app-c3dce4c45c6c6b35.js +1 -0
  27. package/.next/static/chunks/pages/account/orders/{[id]-40637c13cd4487aa.js → [id]-fdf7677a1aa1c58d.js} +1 -1
  28. package/.next/trace +129 -129
  29. package/.turbo/turbo-build.log +10 -10
  30. package/.turbo/turbo-test.log +5 -5
  31. package/@generated/gql.ts +2 -2
  32. package/@generated/graphql.ts +1 -4
  33. package/@generated/persisted-documents.json +1 -1
  34. package/@generated/schema.graphql +0 -2
  35. package/CHANGELOG.md +12 -0
  36. package/package.json +4 -4
  37. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderActions/MyAccountOrderActions.tsx +3 -3
  38. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx +1 -1
  39. package/src/pages/account/orders/[id].tsx +0 -1
  40. package/src/sdk/analytics/index.tsx +13 -4
  41. package/.next/static/chunks/pages/_app-64f7ace1026eb755.js +0 -1
  42. /package/.next/static/{xhKBJ7tlyHwALHIa3Y3JM → IwvKHHiKmlhXatR48ylgQ}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.61.0 prebuild /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.63.0 prebuild /home/runner/work/faststore/faststore/packages/core
3
3
  > na run partytown && na run generate
4
4
 
5
5
 
6
- > @faststore/core@3.61.0 partytown /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@3.63.0 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.61.0 generate /home/runner/work/faststore/faststore/packages/core
11
+ > @faststore/core@3.63.0 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.61.0 generate:schema /home/runner/work/faststore/faststore/packages/core
15
+ > @faststore/core@3.63.0 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.61.0 generate:codegen /home/runner/work/faststore/faststore/packages/core
20
+ > @faststore/core@3.63.0 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.61.0 format:generated /home/runner/work/faststore/faststore/packages/core
40
+ > @faststore/core@3.63.0 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.61.0 build /home/runner/work/faststore/faststore/packages/core
44
+ > @faststore/core@3.63.0 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
@@ -62,8 +62,8 @@ Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
62
62
  Collecting page data ...
63
63
  Generating static pages (0/6) ...
64
64
 
65
65
  Generating static pages (1/6)
66
-
67
66
  Generating static pages (2/6)
68
67
  Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
68
+
69
69
  Generating static pages (2/6)
70
70
 
71
71
  Generating static pages (4/6)
72
72
 
73
73
  ✓ Generating static pages (6/6)
74
74
  Finalizing page optimization ...
@@ -80,7 +80,7 @@ Route (pages) Size First Load JS
80
80
  ├ └ css/6831395ff5fd317a.css 16.1 kB
81
81
  ├ ○ /404 1.48 kB 131 kB
82
82
  ├ ● /500 1.48 kB 131 kB
83
- ├ λ /account 240 B 100 kB
83
+ ├ λ /account 240 B 101 kB
84
84
  ├ ● /account/[...unknown] 281 B 101 kB
85
85
  ├ λ /account/403 2.33 kB 132 kB
86
86
  ├ └ css/b7bba8fce075688b.css 4.2 kB
@@ -103,7 +103,7 @@ Route (pages) Size First Load JS
103
103
  + First Load JS shared by all 104 kB
104
104
  ├ chunks/framework-807b0f81cbc129f0.js 45.4 kB
105
105
  ├ chunks/main-f658704b53a96ab1.js 33.1 kB
106
- ├ chunks/pages/_app-64f7ace1026eb755.js 18.1 kB
106
+ ├ chunks/pages/_app-c3dce4c45c6c6b35.js 18.1 kB
107
107
  ├ chunks/webpack-c76f1cac87402029.js 3.73 kB
108
108
  └ css/0a57ee6c7a57788c.css 3.49 kB
109
109
 
@@ -1,15 +1,15 @@
1
1
 
2
- > @faststore/core@3.61.0 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.63.0 test /home/runner/work/faststore/faststore/packages/core
3
3
  > jest
4
4
 
5
- PASS test/utils/multipleTemplates.test.ts (24.622 s)
6
- PASS test/server/cms/global.test.ts (24.849 s)
5
+ PASS test/utils/multipleTemplates.test.ts (25.849 s)
6
+ PASS test/server/cms/global.test.ts (25.82 s)
7
7
  PASS test/server/cms/index.test.ts
8
- PASS test/server/index.test.ts (30.066 s)
8
+ PASS test/server/index.test.ts (30.206 s)
9
9
  A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.
10
10
 
11
11
  Test Suites: 4 passed, 4 total
12
12
  Tests: 22 passed, 22 total
13
13
  Snapshots: 0 total
14
- Time: 31.483 s
14
+ Time: 31.709 s
15
15
  Ran all test suites.
package/@generated/gql.ts CHANGED
@@ -44,7 +44,7 @@ const documents = {
44
44
  types.ServerProductQueryDocument,
45
45
  '\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n':
46
46
  types.UserOrderItemsFragmentFragmentDoc,
47
- '\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n status\n canCancelOrder\n statusDescription\n allowCancellation\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n name\n quantity\n price\n imageUrl\n tax\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n }\n accountName\n }\n':
47
+ '\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n status\n statusDescription\n allowCancellation\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n name\n quantity\n price\n imageUrl\n tax\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n }\n accountName\n }\n':
48
48
  types.ServerOrderDetailsQueryDocument,
49
49
  '\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountName\n }\n':
50
50
  types.ServerListOrdersQueryDocument,
@@ -186,7 +186,7 @@ export function gql(
186
186
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
187
187
  */
188
188
  export function gql(
189
- source: '\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n status\n canCancelOrder\n statusDescription\n allowCancellation\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n name\n quantity\n price\n imageUrl\n tax\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n }\n accountName\n }\n'
189
+ source: '\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n status\n statusDescription\n allowCancellation\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n name\n quantity\n price\n imageUrl\n tax\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n }\n accountName\n }\n'
190
190
  ): typeof import('./graphql').ServerOrderDetailsQueryDocument
191
191
  /**
192
192
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
@@ -1270,7 +1270,6 @@ export type UserOrder = {
1270
1270
  allowEdition: Maybe<Scalars['Boolean']['output']>
1271
1271
  authorizedDate: Maybe<Scalars['String']['output']>
1272
1272
  callCenterOperatorData: Maybe<Scalars['String']['output']>
1273
- canCancelOrder: Maybe<Scalars['Boolean']['output']>
1274
1273
  cancelReason: Maybe<Scalars['String']['output']>
1275
1274
  cancellationData: Maybe<UserOrderCancellationData>
1276
1275
  cancellationRequests: Maybe<Array<Maybe<UserOrderCancellationRequest>>>
@@ -1918,7 +1917,6 @@ export type UserOrderRestitutions = {
1918
1917
 
1919
1918
  export type UserOrderResult = {
1920
1919
  allowCancellation: Maybe<Scalars['Boolean']['output']>
1921
- canCancelOrder: Maybe<Scalars['Boolean']['output']>
1922
1920
  clientProfileData: Maybe<UserOrderClientProfileData>
1923
1921
  customData: Maybe<UserOrderCustomData>
1924
1922
  customFields: Maybe<Array<Maybe<UserOrderCustomFieldsGrouped>>>
@@ -2277,7 +2275,6 @@ export type ServerOrderDetailsQueryQuery = {
2277
2275
  userOrder: {
2278
2276
  orderId: string | null
2279
2277
  status: string | null
2280
- canCancelOrder: boolean | null
2281
2278
  statusDescription: string | null
2282
2279
  allowCancellation: boolean | null
2283
2280
  storePreferencesData: { currencyCode: string | null } | null
@@ -3512,7 +3509,7 @@ export const ServerProductQueryDocument = {
3512
3509
  export const ServerOrderDetailsQueryDocument = {
3513
3510
  __meta__: {
3514
3511
  operationName: 'ServerOrderDetailsQuery',
3515
- operationHash: 'e0fbde45eca1af0aeda0314c5d1c37e8fe520312',
3512
+ operationHash: 'c957b142e7f211126246f91a42db6d76c519da77',
3516
3513
  },
3517
3514
  } as unknown as TypedDocumentString<
3518
3515
  ServerOrderDetailsQueryQuery,
@@ -2,7 +2,7 @@
2
2
  "47315a3cd26ddd9c7fa963778988464341b8193f": "query ServerAccountPageQuery { accountName }",
3
3
  "4b33c5c07f440dc7489e55619dc2211a13786e72": "fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } seo { description title } } ...ServerCollectionPage }",
4
4
  "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 }",
5
- "e0fbde45eca1af0aeda0314c5d1c37e8fe520312": "query ServerOrderDetailsQuery($orderId: String!) { accountName userOrder(orderId: $orderId) { allowCancellation canCancelOrder clientProfileData { corporateName email firstName isCorporate lastName phone } customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity tax total } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
5
+ "c957b142e7f211126246f91a42db6d76c519da77": "query ServerOrderDetailsQuery($orderId: String!) { accountName userOrder(orderId: $orderId) { allowCancellation clientProfileData { corporateName email firstName isCorporate lastName phone } customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity tax total } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
6
6
  "ee84ac3f5b58c5e1950a927a42c5c1dd6012fcc4": "query ServerListOrdersQuery($clientEmail: String, $dateFinal: String, $dateInitial: String, $page: Int, $perPage: Int, $status: [String], $text: String) { accountName listUserOrders( page: $page perPage: $perPage status: $status dateInitial: $dateInitial dateFinal: $dateFinal text: $text clientEmail: $clientEmail ) { list { ShippingEstimatedDate clientName creationDate currencyCode customFields { type value } items { description ean id price productId quantity refId seller sellingPrice } orderId status statusDescription totalValue } paging { currentPage pages perPage total } } }",
7
7
  "c4191223fe0b642eee3aaaa2c56563da7d163265": "query ServerProfileQuery { accountName }",
8
8
  "9f24767f16e6e05c168336701a6c6c7b6b5dc1c6": "query ServerSecurityQuery { accountName }",
@@ -1280,13 +1280,11 @@ type UserOrder {
1280
1280
  totals: [UserOrderTotals]
1281
1281
  deliveryOptionsData: UserOrderDeliveryOptionsData
1282
1282
  customFields: [UserOrderCustomFieldsGrouped]
1283
- canCancelOrder: Boolean
1284
1283
  }
1285
1284
 
1286
1285
  type UserOrderResult {
1287
1286
  orderId: String
1288
1287
  status: String
1289
- canCancelOrder: Boolean
1290
1288
  statusDescription: String
1291
1289
  allowCancellation: Boolean
1292
1290
  storePreferencesData: UserOrderStorePreferencesData
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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.63.1](https://github.com/vtex/faststore/compare/v3.63.0...v3.63.1) (2025-07-15)
7
+
8
+ ### Bug Fixes
9
+
10
+ - use allowCancellation to validate cancel order button ([#2942](https://github.com/vtex/faststore/issues/2942)) ([1f0f6a9](https://github.com/vtex/faststore/commit/1f0f6a9dc27436b6de63e2aff58a1086d4b2ae2a)), closes [/github.com/vtex/my-orders/blob/ff400736a4b6ea8eb70298c2de26a6e974489fc3/react/pages/CancelOrder.jsx#L116](https://github.com//github.com/vtex/my-orders/blob/ff400736a4b6ea8eb70298c2de26a6e974489fc3/react/pages/CancelOrder.jsx/issues/L116) [/github.com/vtex/my-orders/blob/ff400736a4b6ea8eb70298c2de26a6e974489fc3/react/components/Order/OrderActions.jsx#L41](https://github.com//github.com/vtex/my-orders/blob/ff400736a4b6ea8eb70298c2de26a6e974489fc3/react/components/Order/OrderActions.jsx/issues/L41)
11
+
12
+ # [3.63.0](https://github.com/vtex/faststore/compare/v3.62.0...v3.63.0) (2025-07-14)
13
+
14
+ ### Features
15
+
16
+ - add param for custom event ([#2927](https://github.com/vtex/faststore/issues/2927)) ([b73d4da](https://github.com/vtex/faststore/commit/b73d4dad8d22a9eb498e020af6db24a8e8cd16f7)), closes [#parameter_2](https://github.com/vtex/faststore/issues/parameter_2) [#parameter_3](https://github.com/vtex/faststore/issues/parameter_3) [#parameter_2](https://github.com/vtex/faststore/issues/parameter_2) [#parameter_3](https://github.com/vtex/faststore/issues/parameter_3)
17
+
6
18
  # [3.62.0](https://github.com/vtex/faststore/compare/v3.61.0...v3.62.0) (2025-07-11)
7
19
 
8
20
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.62.0",
3
+ "version": "3.63.1",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -44,10 +44,10 @@
44
44
  "@envelop/graphql-jit": "^8.0.3",
45
45
  "@envelop/parser-cache": "^6.0.2",
46
46
  "@envelop/validation-cache": "^6.0.2",
47
- "@faststore/api": "^3.62.0",
47
+ "@faststore/api": "^3.63.1",
48
48
  "@faststore/graphql-utils": "^3.56.1",
49
49
  "@faststore/lighthouse": "^3.56.1",
50
- "@faststore/sdk": "^3.60.3",
50
+ "@faststore/sdk": "^3.63.0",
51
51
  "@faststore/ui": "^3.60.4",
52
52
  "@graphql-codegen/cli": "5.0.2",
53
53
  "@graphql-codegen/client-preset": "4.2.6",
@@ -105,5 +105,5 @@
105
105
  "ts-jest": "29.1.1",
106
106
  "typescript": "5.3.2"
107
107
  },
108
- "gitHead": "44698cbcd20daea64c6e9e7b0132bf112a7c17a8"
108
+ "gitHead": "0d2dfd4709b4726d432f91957e723546f628a9d3"
109
109
  }
@@ -23,13 +23,13 @@ const TOASTS_CONFIG = {
23
23
  }
24
24
 
25
25
  interface MyAccountOrderActionsProps {
26
- canCancelOrder: boolean
26
+ allowCancellation: boolean
27
27
  orderId: string
28
28
  customerEmail?: string
29
29
  }
30
30
 
31
31
  export default function MyAccountOrderActions({
32
- canCancelOrder,
32
+ allowCancellation,
33
33
  orderId,
34
34
  customerEmail,
35
35
  }: MyAccountOrderActionsProps) {
@@ -89,7 +89,7 @@ export default function MyAccountOrderActions({
89
89
  return (
90
90
  <>
91
91
  <div data-fs-order-details-header-actions>
92
- {canCancelOrder && (
92
+ {allowCancellation && (
93
93
  <UIButton
94
94
  variant="secondary"
95
95
  data-fs-order-details-header-actions-cancel
@@ -52,7 +52,7 @@ export default function MyAccountOrderDetails({
52
52
  </div>
53
53
  </div>
54
54
  <MyAccountOrderActions
55
- canCancelOrder={order.canCancelOrder}
55
+ allowCancellation={order.allowCancellation}
56
56
  orderId={order.orderId}
57
57
  customerEmail={order.clientProfileData?.email}
58
58
  />
@@ -73,7 +73,6 @@ const query = gql(`
73
73
  userOrder(orderId: $orderId) {
74
74
  orderId
75
75
  status
76
- canCancelOrder
77
76
  statusDescription
78
77
  allowCancellation
79
78
  storePreferencesData {
@@ -1,5 +1,5 @@
1
1
  import type { AnalyticsEvent } from '@faststore/sdk'
2
- import { useAnalyticsEvent } from '@faststore/sdk'
2
+ import { useAnalyticsEvent, type UnknownEvent } from '@faststore/sdk'
3
3
 
4
4
  import storeConfig from '../../../discovery.config'
5
5
 
@@ -12,14 +12,23 @@ if (typeof window !== 'undefined') {
12
12
  }
13
13
 
14
14
  const AnalyticsHandler = (): null => {
15
- useAnalyticsEvent((event: AnalyticsEvent) => {
15
+ useAnalyticsEvent((event: UnknownEvent) => {
16
16
  // Cleans the ecommerce object before pushing a new one
17
17
  // This prevents the new data from getting merged with the previous one
18
18
  // which could lead do inaccurate and old data being sent with events
19
- //
19
+
20
20
  // source: https://developers.google.com/tag-manager/ecommerce-ga4?hl=pt-br#clearing_the_ecommerce_object
21
+
21
22
  window.dataLayer.push({ ecommerce: null })
22
- window.dataLayer.push({ event: event.name, ecommerce: event.params })
23
+
24
+ const payload = event.isEcommerceEvent
25
+ ? ({ event: event.name, ecommerce: event.params } as {
26
+ event: AnalyticsEvent['name']
27
+ ecommerce: AnalyticsEvent['params']
28
+ })
29
+ : { event: event.name, ...event.params }
30
+
31
+ window.dataLayer.push(payload)
23
32
 
24
33
  import(`./platform/${storeConfig.platform}`).then(
25
34
  ({ default: sendEvent }) => {
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2888],{4876:function(e){"use strict";var isMergeableObject=function(e){var n;return!!e&&"object"==typeof e&&"[object RegExp]"!==(n=Object.prototype.toString.call(e))&&"[object Date]"!==n&&e.$$typeof!==t},t="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function cloneUnlessOtherwiseSpecified(e,t){return!1!==t.clone&&t.isMergeableObject(e)?deepmerge(Array.isArray(e)?[]:{},e,t):e}function defaultArrayMerge(e,t,n){return e.concat(t).map(function(e){return cloneUnlessOtherwiseSpecified(e,n)})}function getKeys(e){return Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[])}function propertyIsOnObject(e,t){try{return t in e}catch(e){return!1}}function deepmerge(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||defaultArrayMerge,n.isMergeableObject=n.isMergeableObject||isMergeableObject,n.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var r,o,a=Array.isArray(t);return a!==Array.isArray(e)?cloneUnlessOtherwiseSpecified(t,n):a?n.arrayMerge(e,t,n):(o={},(r=n).isMergeableObject(e)&&getKeys(e).forEach(function(t){o[t]=cloneUnlessOtherwiseSpecified(e[t],r)}),getKeys(t).forEach(function(n){(!propertyIsOnObject(e,n)||Object.hasOwnProperty.call(e,n)&&Object.propertyIsEnumerable.call(e,n))&&(propertyIsOnObject(e,n)&&r.isMergeableObject(t[n])?o[n]=(function(e,t){if(!t.customMerge)return deepmerge;var n=t.customMerge(e);return"function"==typeof n?n:deepmerge})(n,r)(e[n],t[n],r):o[n]=cloneUnlessOtherwiseSpecified(t[n],r))}),o)}deepmerge.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,n){return deepmerge(e,n,t)},{})},e.exports=deepmerge},4204:function(e){"use strict";e.exports=function equal(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(!equal(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){var n,r,o,a=o[r];if(!equal(e[a],t[a]))return!1}return!0}return e!=e&&t!=t}},5935:function(e,t,n){"use strict";n.d(t,{PB:function(){return NextSeo},Qb:function(){return ProductJsonLd},gR:function(){return BreadCrumbJsonLd},iu:function(){return SiteLinksSearchBoxJsonLd},lX:function(){return DefaultSeo},ns:function(){return OrganizationJsonLd}});var r=n(4194),o=n(7401),a=n.n(o);function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var i=["keyOverride"],s=["crossOrigin"],c={templateTitle:"",noindex:!1,nofollow:!1,norobots:!1,defaultOpenGraphImageWidth:0,defaultOpenGraphImageHeight:0,defaultOpenGraphVideoWidth:0,defaultOpenGraphVideoHeight:0},buildOpenGraphMediaTags=function(e,t,n){void 0===t&&(t=[]);var o=void 0===n?{}:n,a=o.defaultWidth,i=o.defaultHeight;return t.reduce(function(t,n,o){return t.push(r.createElement("meta",{key:"og:"+e+":0"+o,property:"og:"+e,content:n.url})),n.alt&&t.push(r.createElement("meta",{key:"og:"+e+":alt0"+o,property:"og:"+e+":alt",content:n.alt})),n.secureUrl&&t.push(r.createElement("meta",{key:"og:"+e+":secure_url0"+o,property:"og:"+e+":secure_url",content:n.secureUrl.toString()})),n.type&&t.push(r.createElement("meta",{key:"og:"+e+":type0"+o,property:"og:"+e+":type",content:n.type.toString()})),n.width?t.push(r.createElement("meta",{key:"og:"+e+":width0"+o,property:"og:"+e+":width",content:n.width.toString()})):a&&t.push(r.createElement("meta",{key:"og:"+e+":width0"+o,property:"og:"+e+":width",content:a.toString()})),n.height?t.push(r.createElement("meta",{key:"og:"+e+":height"+o,property:"og:"+e+":height",content:n.height.toString()})):i&&t.push(r.createElement("meta",{key:"og:"+e+":height"+o,property:"og:"+e+":height",content:i.toString()})),t},[])},buildTags=function(e){var t,n,o,a,l,u=[];e.titleTemplate&&(c.templateTitle=e.titleTemplate);var p="";e.title?(p=e.title,c.templateTitle&&(p=c.templateTitle.replace(/%s/g,function(){return p}))):e.defaultTitle&&(p=e.defaultTitle),p&&u.push(r.createElement("title",{key:"title"},p));var d=void 0===e.noindex?c.noindex||e.dangerouslySetAllPagesToNoIndex:e.noindex,f=void 0===e.nofollow?c.nofollow||e.dangerouslySetAllPagesToNoFollow:e.nofollow,m=e.norobots||c.norobots,g="";if(e.robotsProps){var h=e.robotsProps,y=h.nosnippet,b=h.maxSnippet,v=h.maxImagePreview,S=h.maxVideoPreview,w=h.noarchive,O=h.noimageindex,_=h.notranslate,P=h.unavailableAfter;g=(y?",nosnippet":"")+(b?",max-snippet:"+b:"")+(v?",max-image-preview:"+v:"")+(w?",noarchive":"")+(P?",unavailable_after:"+P:"")+(O?",noimageindex":"")+(S?",max-video-preview:"+S:"")+(_?",notranslate":"")}if(e.norobots&&(c.norobots=!0),d||f?(e.dangerouslySetAllPagesToNoIndex&&(c.noindex=!0),e.dangerouslySetAllPagesToNoFollow&&(c.nofollow=!0),u.push(r.createElement("meta",{key:"robots",name:"robots",content:(d?"noindex":"index")+","+(f?"nofollow":"follow")+g}))):(!m||g)&&u.push(r.createElement("meta",{key:"robots",name:"robots",content:"index,follow"+g})),e.description&&u.push(r.createElement("meta",{key:"description",name:"description",content:e.description})),e.themeColor&&u.push(r.createElement("meta",{key:"theme-color",name:"theme-color",content:e.themeColor})),e.mobileAlternate&&u.push(r.createElement("link",{rel:"alternate",key:"mobileAlternate",media:e.mobileAlternate.media,href:e.mobileAlternate.href})),e.languageAlternates&&e.languageAlternates.length>0&&e.languageAlternates.forEach(function(e){u.push(r.createElement("link",{rel:"alternate",key:"languageAlternate-"+e.hrefLang,hrefLang:e.hrefLang,href:e.href}))}),e.twitter&&(e.twitter.cardType&&u.push(r.createElement("meta",{key:"twitter:card",name:"twitter:card",content:e.twitter.cardType})),e.twitter.site&&u.push(r.createElement("meta",{key:"twitter:site",name:"twitter:site",content:e.twitter.site})),e.twitter.handle&&u.push(r.createElement("meta",{key:"twitter:creator",name:"twitter:creator",content:e.twitter.handle}))),e.facebook&&e.facebook.appId&&u.push(r.createElement("meta",{key:"fb:app_id",property:"fb:app_id",content:e.facebook.appId})),(null!=(t=e.openGraph)&&t.title||p)&&u.push(r.createElement("meta",{key:"og:title",property:"og:title",content:(null==(a=e.openGraph)?void 0:a.title)||p})),(null!=(n=e.openGraph)&&n.description||e.description)&&u.push(r.createElement("meta",{key:"og:description",property:"og:description",content:(null==(l=e.openGraph)?void 0:l.description)||e.description})),e.openGraph){if((e.openGraph.url||e.canonical)&&u.push(r.createElement("meta",{key:"og:url",property:"og:url",content:e.openGraph.url||e.canonical})),e.openGraph.type){var j=e.openGraph.type.toLowerCase();u.push(r.createElement("meta",{key:"og:type",property:"og:type",content:j})),"profile"===j&&e.openGraph.profile?(e.openGraph.profile.firstName&&u.push(r.createElement("meta",{key:"profile:first_name",property:"profile:first_name",content:e.openGraph.profile.firstName})),e.openGraph.profile.lastName&&u.push(r.createElement("meta",{key:"profile:last_name",property:"profile:last_name",content:e.openGraph.profile.lastName})),e.openGraph.profile.username&&u.push(r.createElement("meta",{key:"profile:username",property:"profile:username",content:e.openGraph.profile.username})),e.openGraph.profile.gender&&u.push(r.createElement("meta",{key:"profile:gender",property:"profile:gender",content:e.openGraph.profile.gender}))):"book"===j&&e.openGraph.book?(e.openGraph.book.authors&&e.openGraph.book.authors.length&&e.openGraph.book.authors.forEach(function(e,t){u.push(r.createElement("meta",{key:"book:author:0"+t,property:"book:author",content:e}))}),e.openGraph.book.isbn&&u.push(r.createElement("meta",{key:"book:isbn",property:"book:isbn",content:e.openGraph.book.isbn})),e.openGraph.book.releaseDate&&u.push(r.createElement("meta",{key:"book:release_date",property:"book:release_date",content:e.openGraph.book.releaseDate})),e.openGraph.book.tags&&e.openGraph.book.tags.length&&e.openGraph.book.tags.forEach(function(e,t){u.push(r.createElement("meta",{key:"book:tag:0"+t,property:"book:tag",content:e}))})):"article"===j&&e.openGraph.article?(e.openGraph.article.publishedTime&&u.push(r.createElement("meta",{key:"article:published_time",property:"article:published_time",content:e.openGraph.article.publishedTime})),e.openGraph.article.modifiedTime&&u.push(r.createElement("meta",{key:"article:modified_time",property:"article:modified_time",content:e.openGraph.article.modifiedTime})),e.openGraph.article.expirationTime&&u.push(r.createElement("meta",{key:"article:expiration_time",property:"article:expiration_time",content:e.openGraph.article.expirationTime})),e.openGraph.article.authors&&e.openGraph.article.authors.length&&e.openGraph.article.authors.forEach(function(e,t){u.push(r.createElement("meta",{key:"article:author:0"+t,property:"article:author",content:e}))}),e.openGraph.article.section&&u.push(r.createElement("meta",{key:"article:section",property:"article:section",content:e.openGraph.article.section})),e.openGraph.article.tags&&e.openGraph.article.tags.length&&e.openGraph.article.tags.forEach(function(e,t){u.push(r.createElement("meta",{key:"article:tag:0"+t,property:"article:tag",content:e}))})):("video.movie"===j||"video.episode"===j||"video.tv_show"===j||"video.other"===j)&&e.openGraph.video&&(e.openGraph.video.actors&&e.openGraph.video.actors.length&&e.openGraph.video.actors.forEach(function(e,t){e.profile&&u.push(r.createElement("meta",{key:"video:actor:0"+t,property:"video:actor",content:e.profile})),e.role&&u.push(r.createElement("meta",{key:"video:actor:role:0"+t,property:"video:actor:role",content:e.role}))}),e.openGraph.video.directors&&e.openGraph.video.directors.length&&e.openGraph.video.directors.forEach(function(e,t){u.push(r.createElement("meta",{key:"video:director:0"+t,property:"video:director",content:e}))}),e.openGraph.video.writers&&e.openGraph.video.writers.length&&e.openGraph.video.writers.forEach(function(e,t){u.push(r.createElement("meta",{key:"video:writer:0"+t,property:"video:writer",content:e}))}),e.openGraph.video.duration&&u.push(r.createElement("meta",{key:"video:duration",property:"video:duration",content:e.openGraph.video.duration.toString()})),e.openGraph.video.releaseDate&&u.push(r.createElement("meta",{key:"video:release_date",property:"video:release_date",content:e.openGraph.video.releaseDate})),e.openGraph.video.tags&&e.openGraph.video.tags.length&&e.openGraph.video.tags.forEach(function(e,t){u.push(r.createElement("meta",{key:"video:tag:0"+t,property:"video:tag",content:e}))}),e.openGraph.video.series&&u.push(r.createElement("meta",{key:"video:series",property:"video:series",content:e.openGraph.video.series})))}e.defaultOpenGraphImageWidth&&(c.defaultOpenGraphImageWidth=e.defaultOpenGraphImageWidth),e.defaultOpenGraphImageHeight&&(c.defaultOpenGraphImageHeight=e.defaultOpenGraphImageHeight),e.openGraph.images&&e.openGraph.images.length&&u.push.apply(u,buildOpenGraphMediaTags("image",e.openGraph.images,{defaultWidth:c.defaultOpenGraphImageWidth,defaultHeight:c.defaultOpenGraphImageHeight})),e.defaultOpenGraphVideoWidth&&(c.defaultOpenGraphVideoWidth=e.defaultOpenGraphVideoWidth),e.defaultOpenGraphVideoHeight&&(c.defaultOpenGraphVideoHeight=e.defaultOpenGraphVideoHeight),e.openGraph.videos&&e.openGraph.videos.length&&u.push.apply(u,buildOpenGraphMediaTags("video",e.openGraph.videos,{defaultWidth:c.defaultOpenGraphVideoWidth,defaultHeight:c.defaultOpenGraphVideoHeight})),e.openGraph.audio&&u.push.apply(u,buildOpenGraphMediaTags("audio",e.openGraph.audio)),e.openGraph.locale&&u.push(r.createElement("meta",{key:"og:locale",property:"og:locale",content:e.openGraph.locale})),(e.openGraph.siteName||e.openGraph.site_name)&&u.push(r.createElement("meta",{key:"og:site_name",property:"og:site_name",content:e.openGraph.siteName||e.openGraph.site_name}))}return e.canonical&&u.push(r.createElement("link",{rel:"canonical",href:e.canonical,key:"canonical"})),e.additionalMetaTags&&e.additionalMetaTags.length>0&&e.additionalMetaTags.forEach(function(e){var t,n,o=e.keyOverride,a=_objectWithoutPropertiesLoose(e,i);u.push(r.createElement("meta",_extends({key:"meta:"+(null!=(t=null!=(n=null!=o?o:a.name)?n:a.property)?t:a.httpEquiv)},a)))}),null!=(o=e.additionalLinkTags)&&o.length&&e.additionalLinkTags.forEach(function(e){var t,n=e.crossOrigin,o=_objectWithoutPropertiesLoose(e,s);u.push(r.createElement("link",_extends({key:"link"+(null!=(t=o.keyOverride)?t:o.href)+o.rel},o,{crossOrigin:"anonymous"===n||"use-credentials"===n||""===n?n:void 0})))}),u},WithHead=function(e){return r.createElement(a(),null,buildTags(e))},DefaultSeo=function(e){var t=e.title,n=e.titleTemplate,o=e.defaultTitle,a=e.themeColor,i=e.dangerouslySetAllPagesToNoIndex,s=e.dangerouslySetAllPagesToNoFollow,c=e.description,l=e.canonical,u=e.facebook,p=e.openGraph,d=e.additionalMetaTags,f=e.twitter,m=e.defaultOpenGraphImageWidth,g=e.defaultOpenGraphImageHeight,h=e.defaultOpenGraphVideoWidth,y=e.defaultOpenGraphVideoHeight,b=e.mobileAlternate,v=e.languageAlternates,S=e.additionalLinkTags,w=e.robotsProps,O=e.norobots;return r.createElement(WithHead,{title:t,titleTemplate:n,defaultTitle:o,themeColor:a,dangerouslySetAllPagesToNoIndex:void 0!==i&&i,dangerouslySetAllPagesToNoFollow:void 0!==s&&s,description:c,canonical:l,facebook:u,openGraph:p,additionalMetaTags:d,twitter:f,defaultOpenGraphImageWidth:m,defaultOpenGraphImageHeight:g,defaultOpenGraphVideoWidth:h,defaultOpenGraphVideoHeight:y,mobileAlternate:b,languageAlternates:v,additionalLinkTags:S,robotsProps:w,norobots:O})},NextSeo=function(e){var t=e.title,n=e.themeColor,o=e.noindex,a=e.nofollow,i=e.robotsProps,s=e.description,c=e.canonical,l=e.openGraph,u=e.facebook,p=e.twitter,d=e.additionalMetaTags,f=e.titleTemplate,m=e.defaultTitle,g=e.mobileAlternate,h=e.languageAlternates,y=e.additionalLinkTags;return r.createElement(r.Fragment,null,r.createElement(WithHead,{title:t,themeColor:n,noindex:o,nofollow:a,robotsProps:i,description:s,canonical:c,facebook:u,openGraph:l,additionalMetaTags:d,twitter:p,titleTemplate:f,defaultTitle:m,mobileAlternate:g,languageAlternates:h,additionalLinkTags:y}))},toJson=function(e,t){var n=t;return Array.isArray(n)&&1===n.length&&(n=_extends({},t[0])),{__html:JSON.stringify(Array.isArray(n)?n.map(function(t){return formatObjectForSchema(e,t)}):formatObjectForSchema(e,n),safeJsonLdReplacer)}},formatObjectForSchema=function(e,t){var n=t.id,r=_extends({},(void 0===n?void 0:n)?{"@id":t.id}:{},t);return delete r.id,_extends({"@context":"https://schema.org","@type":e},r)},l=Object.freeze({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"}),u=RegExp("["+Object.keys(l).join("")+"]","g"),ESCAPE_REPLACER=function(e){return l[e]},safeJsonLdReplacer=function(e,t){switch(typeof t){case"object":if(null===t)return;return t;case"number":case"boolean":case"bigint":return t;case"string":return t.replace(u,ESCAPE_REPLACER);default:return}},p=["type","keyOverride","scriptKey","scriptId","dataArray","useAppDir"];function JsonLd(e){var t=e.type,n=void 0===t?"Thing":t,o=e.keyOverride,i=e.scriptKey,s=e.scriptId,c=void 0===s?void 0:s,l=e.dataArray,u=e.useAppDir,d=_objectWithoutPropertiesLoose(e,p),JsonLdScript=function(){return r.createElement("script",{type:"application/ld+json",id:c,"data-testid":c,dangerouslySetInnerHTML:toJson(n,void 0===l?_extends({},d):l),key:"jsonld-"+i+(o?"-"+o:"")})};return void 0!==u&&u?r.createElement(JsonLdScript,null):r.createElement(a(),null,JsonLdScript())}function generateAuthorInfo(e){if("string"==typeof e)return{"@type":"Person",name:e};if(e.name){var t;return{"@type":null!=(t=null==e?void 0:e.type)?t:"Person",name:e.name,url:null==e?void 0:e.url}}}function setImage(e){if(e)return{"@type":"ImageObject",url:e}}var d=["reviewRating","author","publisher"];function toPostalAddress(e){return"string"==typeof e?e:_extends({"@type":"PostalAddress"},e)}var f=["type","keyOverride","potentialActions"];function SiteLinksSearchBoxJsonLd(e){var t=e.type,n=e.keyOverride,o=e.potentialActions,a=_objectWithoutPropertiesLoose(e,f),i=_extends({},a,{potentialAction:o.map(function(e){if(e){var t=e.target,n=e.queryInput;return{"@type":"SearchAction",target:t+"={"+n+"}","query-input":"required name="+n}}})});return r.createElement(JsonLd,_extends({type:void 0===t?"WebSite":t,keyOverride:n},i,{scriptKey:"jsonld-siteLinksSearchBox"}))}var m=["seller"];function setOffers(e){function mapOffer(e){var t=e.seller,n=_objectWithoutPropertiesLoose(e,m);return _extends({},n,{"@type":"Offer"},t&&{seller:{"@type":"Organization",name:t.name}})}return Array.isArray(e)?e.map(mapOffer):e?mapOffer(e):void 0}var g=["type","keyOverride","images","brand","reviews","aggregateRating","manufacturerLogo","manufacturerName","offers","aggregateOffer","productName"];function ProductJsonLd(e){var t=e.type,n=e.keyOverride,o=e.images,a=e.brand,i=e.reviews,s=e.aggregateRating,c=e.manufacturerLogo,l=e.manufacturerName,u=e.offers,p=e.aggregateOffer,f=e.productName,m=_objectWithoutPropertiesLoose(e,g),h=_extends({},m,{image:o,brand:function(e){if(e)return{"@type":"Brand",name:e}}(a),review:function(e){function mapReview(e){var t=e.reviewRating,n=e.author,r=e.publisher,o=_objectWithoutPropertiesLoose(e,d);return _extends({},o,{"@type":"Review"},n&&{author:Array.isArray(n)?n.map(function(e){return generateAuthorInfo(e)}).filter(function(e){return!!e}):n?generateAuthorInfo(n):void 0},t&&{reviewRating:function(e){if(e)return _extends({},e,{"@type":"Rating"})}(t)},r&&{publisher:function(e,t){if(e)return{"@type":"Organization",name:e,logo:setImage(void 0)}}(r.name)})}return Array.isArray(e)?e.map(mapReview):e?mapReview(e):void 0}(i),aggregateRating:function(e){if(e)return{"@type":"AggregateRating",ratingCount:e.ratingCount,reviewCount:e.reviewCount,bestRating:e.bestRating,ratingValue:e.ratingValue,worstRating:e.worstRating}}(s),manufacturer:function(e){if(e&&(e.manufacturerName||e.manufacturerLogo))return{"@type":"Organization",name:e.manufacturerName,logo:setImage(e.manufacturerLogo)}}({manufacturerLogo:c,manufacturerName:l}),offers:u?setOffers(u):function(e){if(e)return{"@type":"AggregateOffer",priceCurrency:e.priceCurrency,highPrice:e.highPrice,lowPrice:e.lowPrice,offerCount:e.offerCount,offers:setOffers(e.offers)}}(p),name:f});return r.createElement(JsonLd,_extends({type:void 0===t?"Product":t,keyOverride:n},h,{scriptKey:"Product"}))}var h=["type","keyOverride","address","contactPoints","contactPoint"];function OrganizationJsonLd(e){var t=e.type,n=e.keyOverride,o=e.address,a=e.contactPoints,i=e.contactPoint,s=_objectWithoutPropertiesLoose(e,h),c=_extends({},s,{address:function(e){if(e)return Array.isArray(e)?1===e.length?toPostalAddress(e[0]):e.map(toPostalAddress):toPostalAddress(e)}(o),contactPoint:function(e){if(e&&e.length)return e.map(function(e){return _extends({"@type":"ContactPoint"},e)})}(i||a)});return r.createElement(JsonLd,_extends({type:void 0===t?"Organization":t,keyOverride:n},c,{scriptKey:"organization"}))}var y=["type","keyOverride","itemListElements"];function BreadCrumbJsonLd(e){var t=e.type,n=e.keyOverride,o=e.itemListElements,a=_objectWithoutPropertiesLoose(e,y),i=_extends({},a,{itemListElement:function(e){if(e&&e.length)return e.map(function(e){return{"@type":"ListItem",position:e.position,item:e.item,name:e.name}})}(o)});return r.createElement(JsonLd,_extends({type:void 0===t?"BreadcrumbList":t,keyOverride:n},i,{scriptKey:"breadcrumb"}))}},7884:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});var r=n(3166)._(n(4194)).default.createContext({})},3358:function(e,t){"use strict";function isInAmpMode(e){var{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return isInAmpMode}})},1554:function(e,t,n){"use strict";var r=n(7399);function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{defaultHead:function(){return _defaultHead},default:function(){return _default2}});var o=n(3166),a=n(4925)._(n(4194)),i=o._(n(9086)),s=n(7884),c=n(9366),l=n(3358);function _defaultHead(e){void 0===e&&(e=!1);var t=[a.default.createElement("meta",{charSet:"utf-8"})];return e||t.push(a.default.createElement("meta",{name:"viewport",content:"width=device-width"})),t}function onlyReactElement(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(8629);var u=["name","httpEquiv","charSet","itemProp"];function reduceComponents(e,t){var n,o,i,s,{inAmpMode:c}=t;return e.reduce(onlyReactElement,[]).reverse().concat(_defaultHead(c).reverse()).filter((n=new Set,o=new Set,i=new Set,s={},e=>{var t=!0,r=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){r=!0;var a=e.key.slice(e.key.indexOf("$")+1);n.has(a)?t=!1:n.add(a)}switch(e.type){case"title":case"base":o.has(e.type)?t=!1:o.add(e.type);break;case"meta":for(var c=0,l=u.length;c<l;c++){var p=u[c];if(e.props.hasOwnProperty(p)){if("charSet"===p)i.has(p)?t=!1:i.add(p);else{var d=e.props[p],f=s[p]||new Set;("name"!==p||!r)&&f.has(d)?t=!1:(f.add(d),s[p]=f)}}}}return t})).reverse().map((e,t)=>{var n=e.key||t;if(!c&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){var o=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){r(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},e.props||{});return o["data-href"]=o.href,o.href=void 0,o["data-optimized-fonts"]=!0,a.default.cloneElement(e,o)}return a.default.cloneElement(e,{key:n})})}var _default2=function(e){var{children:t}=e,n=(0,a.useContext)(s.AmpStateContext),r=(0,a.useContext)(c.HeadManagerContext);return a.default.createElement(i.default,{reduceComponentsToState:reduceComponents,headManager:r,inAmpMode:(0,l.isInAmpMode)(n)},t)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9086:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return SideEffect}});var r=n(4194),o=r.useLayoutEffect,a=r.useEffect;function SideEffect(e){var{headManager:t,reduceComponentsToState:n}=e;function emitChange(){if(t&&t.mountedInstances){var o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=emitChange),()=>{t&&(t._pendingUpdate=emitChange)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},8629:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return warnOnce}});var warnOnce=e=>{}},5487:function(e,t,n){"use strict";n.d(t,{$G:function(){return b},Ce:function(){return h},D5:function(){return c},HZ:function(){return l},M:function(){return y},Pq:function(){return v},Ud:function(){return a},VA:function(){return f},bi:function(){return u},fh:function(){return i},gN:function(){return p},gU:function(){return d},j9:function(){return o},pR:function(){return g},rd:function(){return s},wA:function(){return m}});var r=n(3067);let TypedDocumentString=class TypedDocumentString extends String{constructor(e,t){super(e),this.value=e,this.__meta__=t,(0,r.Z)(this,"__apiType",void 0)}toString(){return this.value}};new TypedDocumentString("\n fragment ProductSummary_product on StoreProduct {\n id: productID\n slug\n sku\n brand {\n brandName: name\n }\n name\n gtin\n unitMultiplier\n isVariantOf {\n productGroupID\n name\n skuVariants {\n allVariantsByName\n activeVariations\n slugsMap\n availableVariations\n }\n }\n image {\n url\n alternateName\n }\n brand {\n name\n }\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n listPrice\n listPriceWithTaxes\n priceWithTaxes\n quantity\n seller {\n identifier\n }\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n advertisement {\n adId\n adResponseId\n }\n}\n ",{fragmentName:"ProductSummary_product"});var o=new TypedDocumentString("\n fragment Filter_facets on StoreFacet {\n ... on StoreFacetRange {\n key\n label\n min {\n selected\n absolute\n }\n max {\n selected\n absolute\n }\n __typename\n }\n ... on StoreFacetBoolean {\n key\n label\n values {\n label\n value\n selected\n quantity\n }\n __typename\n }\n}\n ",{fragmentName:"Filter_facets"});new TypedDocumentString("\n fragment CartProductItem on StoreProduct {\n sku\n name\n unitMultiplier\n image {\n url\n alternateName\n }\n brand {\n name\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n gtin\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n}\n ",{fragmentName:"CartProductItem"}),new TypedDocumentString("\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n image {\n url\n alternateName\n }\n brand {\n name\n }\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n seller {\n identifier\n }\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n ...CartProductItem\n}\n fragment CartProductItem on StoreProduct {\n sku\n name\n unitMultiplier\n image {\n url\n alternateName\n }\n brand {\n name\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n gtin\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n}",{fragmentName:"ProductDetailsFragment_product"});var a=new TypedDocumentString("\n fragment ProductSKUMatrixSidebarFragment_product on StoreProduct {\n id: productID\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n allVariantProducts {\n sku\n name\n image {\n url\n alternateName\n }\n offers {\n highPrice\n lowPrice\n lowPriceWithTaxes\n offerCount\n priceCurrency\n offers {\n listPrice\n listPriceWithTaxes\n sellingPrice\n priceCurrency\n price\n priceWithTaxes\n priceValidUntil\n itemCondition\n availability\n quantity\n }\n }\n additionalProperty {\n propertyID\n value\n name\n valueReference\n }\n }\n }\n }\n}\n ",{fragmentName:"ProductSKUMatrixSidebarFragment_product"});new TypedDocumentString("\n fragment ClientManyProducts on Query {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n sponsoredCount: $sponsoredCount\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n }\n}\n ",{fragmentName:"ClientManyProducts"}),new TypedDocumentString("\n fragment ClientProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n}\n ",{fragmentName:"ClientProduct"}),new TypedDocumentString("\n fragment ClientProductGallery on Query {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n }\n}\n ",{fragmentName:"ClientProductGallery"}),new TypedDocumentString("\n fragment ClientSearchSuggestions on Query {\n search(first: 5, term: $term, selectedFacets: $selectedFacets) {\n suggestions {\n terms {\n value\n }\n }\n }\n}\n ",{fragmentName:"ClientSearchSuggestions"}),new TypedDocumentString("\n fragment ClientShippingSimulation on Query {\n shipping(items: $items, postalCode: $postalCode, country: $country) {\n address {\n city\n }\n }\n}\n ",{fragmentName:"ClientShippingSimulation"}),new TypedDocumentString("\n fragment ClientTopSearchSuggestions on Query {\n search(first: 5, term: $term, selectedFacets: $selectedFacets) {\n suggestions {\n terms {\n value\n }\n }\n }\n}\n ",{fragmentName:"ClientTopSearchSuggestions"}),new TypedDocumentString("\n fragment ServerCollectionPage on Query {\n collection(slug: $slug) {\n id\n }\n}\n ",{fragmentName:"ServerCollectionPage"}),new TypedDocumentString("\n fragment ServerProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n}\n ",{fragmentName:"ServerProduct"});var i=new TypedDocumentString("\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n}\n ",{fragmentName:"UserOrderItemsFragment"});new TypedDocumentString("\n fragment CartMessage on StoreCartMessage {\n text\n status\n}\n ",{fragmentName:"CartMessage"}),new TypedDocumentString("\n fragment CartItem on StoreOffer {\n seller {\n identifier\n }\n quantity\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n itemOffered {\n ...CartProductItem\n }\n}\n fragment CartProductItem on StoreProduct {\n sku\n name\n unitMultiplier\n image {\n url\n alternateName\n }\n brand {\n name\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n gtin\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n}",{fragmentName:"CartItem"}),new TypedDocumentString("\n fragment SearchEvent_metadata on SearchMetadata {\n isTermMisspelled\n logicalOperator\n fuzzy\n}\n ",{fragmentName:"SearchEvent_metadata"});var s={__meta__:{operationName:"CancelOrderMutation",operationHash:"e2b06da6840614d3c72768e56579b9d3b8e80802"}},c={__meta__:{operationName:"ValidateCartMutation",operationHash:"c2b3f8bff73ebf6ac79d758c66cabbc21ba9fcc0"}},l={__meta__:{operationName:"SubscribeToNewsletter",operationHash:"feb7005103a859e2bc8cf2360d568806fd88deba"}},u={__meta__:{operationName:"ClientProductCountQuery",operationHash:"dc912e7272e3d9f5ced206837df87f544d39d0a5"}},p={__meta__:{operationName:"ClientAllVariantProductsQuery",operationHash:"4039e05f01a2fe449e20e8b82170d0ba94b1fbe9"}},d={__meta__:{operationName:"ClientManyProductsQuery",operationHash:"1adc93c70f16173540c50f725ee09a2d67cb85ab"}},f={__meta__:{operationName:"ClientProductGalleryQuery",operationHash:"bfc40da32b60f9404a4adb96b0856e3fbb04b076"}},m={__meta__:{operationName:"ClientProductQuery",operationHash:"7d121ef8d4dc99174e64e4429a9b977b8bbebed8"}},g={__meta__:{operationName:"ClientProfileQuery",operationHash:"34ea14c0d4a57ddf9bc11e4be0cd2b5a6506d3d4"}},h={__meta__:{operationName:"ClientSearchSuggestionsQuery",operationHash:"b548281d477a173be7b6960434604d69769a97e7"}},y={__meta__:{operationName:"ClientTopSearchSuggestionsQuery",operationHash:"e2385b0f11726d0068f96548f57a8dd441c064e3"}},b={__meta__:{operationName:"ValidateSession",operationHash:"259dd10b1c65ce4b20c9181feb7bec85ecb402e6"}},v={__meta__:{operationName:"ClientShippingSimulationQuery",operationHash:"c35bad22f67f3eb34fea52bb49efa6b1da6b728d"}}},8038:function(e,t,n){var r=n(3656);e.exports={seo:{title:"FastStore Starter",description:"Fast Demo Store",titleTemplate:"%s | FastStore",author:"Store Framework",name:"FastStore",publisherId:"",plp:{titleTemplate:"%s | FastStore PLP",descriptionTemplate:"%s products on FastStore Product Listing Page"},pdp:{titleTemplate:"%s | FastStore PDP",descriptionTemplate:"%s products on FastStore Product Detail Page"},search:{titleTemplate:"%s: Search results title",descriptionTemplate:"%s: Search results description",noIndex:!0,noFollow:!0,bodyH1:"Showing results for:"}},theme:"custom-theme",platform:"vtex",api:{storeId:"storeframework",workspace:"master",subDomainPrefix:["www"],environment:"vtexcommercestable",hideUnavailableItems:!1,showSponsored:!1,incrementAddress:!0,enableUnavailableItemsOnCart:!1},session:{currency:{code:"USD",symbol:"$"},locale:"en-US",channel:'{"salesChannel":"1","regionId":"","hasOnlyDefaultSalesChannel":"true"}',country:"USA",deliveryMode:null,addressType:null,city:null,postalCode:null,geoCoordinates:null,b2b:null,person:null,marketingData:{utmCampaign:"",utmMedium:"",utmSource:"",utmiCampaign:"",utmiPart:"",utmiPage:""}},cart:{id:"",items:[],messages:[],shouldSplitItem:!0},storeUrl:"https://homebrewqa.fast.store",secureSubdomain:"https://homebrewqa.fast.store",checkoutUrl:"https://homebrewqa.fast.store/checkout",loginUrl:"https://homebrewqa.fast.store/api/io/login",accountUrl:"https://homebrewqa.fast.store/api/io/account",previewRedirects:{home:"/",plp:"/office",search:"/s?q=headphone",pdp:"/apple-magic-mouse/p",500:"/500",404:"/404"},lighthouse:{server:r.env.BASE_SITE_URL||"http://localhost:3000",pages:{home:"/",pdp:"/4k-philips-monitor-99988213/p",collection:"/office"}},cypress:{pages:{home:"/",pdp:"/4k-philips-monitor-99988213/p",collection:"/office",collection_2:"/technology",collection_filtered:"/office/?category-1=office&marca=acer&facets=category-1%2Cmarca",search:"/s?q=orange"}},analytics:{gtmContainerId:"GTM-PGHZ95N"},cms:{data:r.env.CMS_DATA},contentSource:{type:"CMS"},deliveryPromise:{enabled:!1,mandatory:!1},experimental:{cypressVersion:12,enableCypressExtension:!1,noRobots:!1,noindex:!1,nofollow:!1,preact:!1,enableRedirects:!1,enableSearchSSR:!1,enableFaststoreMyAccount:!0,enableVtexAssetsLoader:!1,graphqlCacheControl:{maxAge:0,staleWhileRevalidate:60}}}},3412:function(e,t,n){var r=n(8038),o=n(2512),a=n(4876)(r,o);e.exports=a},5011:function(e,t,n){"use strict";n.d(t,{A:function(){return c}});var r=n(3412),o=n.n(r),a=new Date().toISOString(),i=Date.now(),s={norobots:o().experimental.noRobots,dangerouslySetAllPagesToNoFollow:o().experimental.nofollow,dangerouslySetAllPagesToNoIndex:o().experimental.noindex,additionalMetaTags:[{name:"generated-at",content:a}]};t.Z=s;var c=i},6422:function(e,t,n){"use strict";n.d(t,{g:function(){return useRegionModal}});var r=n(6652),o=n(3412),a=n(4194),i=n(31);function useRegionModal(){var{openModal:e}=(0,r.l)(),{isValidating:t}=(0,i.kP)(),n=(0,a.useRef)(t),{0:s,1:c}=(0,a.useState)(!1),openRegionModal=()=>{var{postalCode:t}=i.Qf.read();t||e()};return(0,a.useEffect)(()=>{o.deliveryPromise.enabled&&(n.current&&!t&&(c(!0),o.deliveryPromise.mandatory&&openRegionModal()),n.current=t)},[openRegionModal]),{openRegionModal,isValidationComplete:s}}},8132:function(e,t,n){"use strict";n.d(t,{KS:function(){return o},YQ:function(){return a},gK:function(){return r}});var r=12,o=5,a=3e3},2512:function(e){e.exports={}},6011:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _app}});var r,o=n(3067),a=n(6652),i=n(4194),s=n(6422),c=n(3339);function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var usePageViewEvent=e=>{var t=(0,i.useCallback)(()=>{n.e(6393).then(n.bind(n,6393)).then(t=>{var{sendAnalyticsEvent:n}=t;n({name:"page_view",params:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){(0,o.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({page_title:document.title,page_location:location.href,send_page_view:!0},e)})})},[e]),r=(0,c.useRouter)();return(0,i.useEffect)(()=>{t()},[r.pathname,t]),{sendPageViewEvent:t}},l=n(1549),src_Layout=function(e){var{children:t}=e;return usePageViewEvent((0,i.useMemo)(()=>null==t?void 0:t.props,[])),(0,s.g)(),(0,l.jsx)(l.Fragment,{children:t})},u=n(8529),p=n(3412),d=n.n(p);window.dataLayer=null!==(r=window.dataLayer)&&void 0!==r?r:[],window.VTEX_METADATA={account:d().api.storeId,renderer:"faststore"};var analytics=()=>((0,u.W)(e=>{window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:e.name,ecommerce:e.params}),n(3982)("./".concat(d().platform)).then(t=>{var{default:n}=t;n(e)})}),null),getReloads=()=>{var e;return Number(null!==(e=window.sessionStorage.getItem("store:reloads"))&&void 0!==e?e:"0")},setReloads=e=>window.sessionStorage.setItem("store:reloads","".concat(e)),canRecover=()=>2>getReloads(),isFrameworkLevelError=e=>(null==e?void 0:e.name)==="ChunkLoadError";window.setInterval(()=>setReloads(0),3e4);let ErrorBoundary=class ErrorBoundary extends i.Component{constructor(){super(...arguments),(0,o.Z)(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){if(console.error("React Error: ".concat(e.message," ").concat(t.componentStack)),!(window.location.pathname.startsWith("/404")||window.location.pathname.startsWith("/500"))){var n,r,o=encodeURIComponent(window.location.pathname),a=(null==e?void 0:null===(n=e.extensions)||void 0===n?void 0:null===(r=n.exception)||void 0===r?void 0:r.status)===404;isFrameworkLevelError(e)&&canRecover()?(setReloads(getReloads()+1),window.location.reload()):a?window.location.href="/404?from=".concat(o):window.location.href="/500?from=".concat(o,"&errorId=").concat("unknown")}}render(){return this.state.hasError?null:this.props.children}};var f=n(4988),m=n(8132),g=n(31);function useGeolocation_ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function useGeolocation_objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?useGeolocation_ownKeys(Object(n),!0).forEach(function(t){(0,o.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):useGeolocation_ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _askGeolocationConsent(){return(_askGeolocationConsent=(0,f.Z)(function*(){var e,t,{postalCode:n,geoCoordinates:r}=g.Qf.read();null===(t=navigator)||void 0===t||!t.geolocation||n&&r||navigator.geolocation.getCurrentPosition((e=(0,f.Z)(function*(e){var{coords:{latitude:t,longitude:n}}=e,r=g.Qf.read();if(!r.postalCode&&!r.geoCoordinates){var o=useGeolocation_objectSpread(useGeolocation_objectSpread({},r),{},{geoCoordinates:{latitude:t,longitude:n}}),a=yield(0,g.je)(o);g.Qf.set(null!=a?a:o)}}),function(t){return e.apply(this,arguments)}))})).apply(this,arguments)}var h=n(5011);n(6207);var y=n(5935),b=n(9029);function _app_ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _app_objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_app_ownKeys(Object(n),!0).forEach(function(t){(0,o.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_app_ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var _app=function(e){var{Component:t,pageProps:n}=e,{key:r}=n;(0,i.useEffect)(()=>{p.deliveryPromise.enabled&&setTimeout(()=>(function(){return _askGeolocationConsent.apply(this,arguments)})(),m.YQ)},[]);var o=(0,c.useRouter)(),{start:s}=(0,b.R)();return s(o.asPath,{itemsPerPage:m.gK}),(0,l.jsxs)(ErrorBoundary,{children:[(0,l.jsx)(y.lX,_app_objectSpread({},h.Z)),(0,l.jsx)(analytics,{}),(0,l.jsx)(a.Z,{children:(0,l.jsx)(src_Layout,{children:(0,i.createElement)(t,_app_objectSpread(_app_objectSpread({},n),{},{key:r}))})})]})}},1041:function(e,t,n){"use strict";n.d(t,{i8:function(){return v},jD:function(){return useCart}});var r,o=n(3067),a=n(4988),i=n(5487),s=n(9380),c=n(4194),l=n(3412),u=n.n(l),p=n(7440),d=n(31),f=n(135);function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){(0,o.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var m=i.D5,isGift=e=>0===e.price,getItemId=e=>{var t;return[e.itemOffered.sku,e.seller.identifier,null===(t=e.itemOffered.additionalProperty)||void 0===t?void 0:t.map(e=>{var{propertyID:t}=e;return t}).join("-")].filter(Boolean).join("::")},g=(r=(0,a.Z)(function*(e){var{validateCart:t=null}=yield(0,p.W)(m,{session:d.Qf.read(),cart:{order:{orderNumber:e.id,shouldSplitItem:e.shouldSplitItem,acceptedOffer:e.items.map(e=>{var{price:t,listPrice:n,seller:r,quantity:o,itemOffered:a}=e;return{price:t,listPrice:n,seller:r,quantity:o,itemOffered:{sku:a.sku,image:a.image,name:a.name,additionalProperty:a.additionalProperty}}})}}});return t&&{id:t.order.orderNumber,items:t.order.acceptedOffer.map(e=>_objectSpread(_objectSpread({},e),{},{id:getItemId(e)})),messages:t.messages,shouldSplitItem:t.order.shouldSplitItem}}),function(e){return r.apply(this,arguments)}),[h,y]=(0,f.d)(g),b=(0,s.n)(u().cart,y),v=_objectSpread(_objectSpread({},b),{},{addItem:e=>{var t=_objectSpread(_objectSpread({},e),{},{id:getItemId(e)});b.addItem(t)}}),useCart=function(){var{useUnitMultiplier:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{useUnitMultiplier:!1},t=(0,f.o)(v),n=(0,f.o)(h);return(0,c.useMemo)(()=>{var r=t.items.reduce((t,n)=>{t.total+=n.price*n.quantity,t.totalWithTaxes+=n.priceWithTaxes*n.quantity;var r,o,a=e?n.quantity*(null!==(r=null==n?void 0:null===(o=n.itemOffered)||void 0===o?void 0:o.unitMultiplier)&&void 0!==r?r:1):n.quantity;return t.totalItems+=isGift(n)?0:a,t.subTotal+=n.listPrice*a,t.subTotalWithTaxes+=n.listPriceWithTaxes*a,t},{totalItems:0,total:0,subTotal:0,totalWithTaxes:0,subTotalWithTaxes:0});return _objectSpread(_objectSpread(_objectSpread({},t),r),{},{isValidating:n,messages:t.messages,gifts:t.items.filter(e=>isGift(e)),items:t.items.filter(e=>!isGift(e)),totalUniqueItems:t.items.length})},[t,n,e])}},7440:function(e,t,n){"use strict";n.d(t,{W:function(){return c}});var r,o,a=n(3067),i=n(4988);function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){(0,a.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var s={POST:{"Content-Type":"application/json"}},c=(r=(0,i.Z)(function*(e,t,n){var{data:r,errors:o}=yield l("/api/graphql",_objectSpread(_objectSpread({},n),{},{variables:t,operation:e}));if(null!=o&&o.length)throw o[0];return r}),function(e,t,n){return r.apply(this,arguments)}),l=(o=(0,i.Z)(function*(e,t){var{operation:n,variables:r,fetchOptions:o}=t,{operationName:a,operationHash:i}=n.__meta__,c=(null==o?void 0:o.method)!==void 0?o.method.toUpperCase():a.endsWith("Query")?"GET":"POST",l=new URLSearchParams(_objectSpread({operationName:a,operationHash:i},"GET"===c&&{variables:JSON.stringify(r)})),u="POST"===c?JSON.stringify({operationName:a,operationHash:i,variables:r}):void 0,p="".concat(e,"?").concat(l.toString());return(yield fetch(p,_objectSpread(_objectSpread({method:c,body:u},o),{},{headers:_objectSpread(_objectSpread({},s[c]),null==o?void 0:o.headers)}))).json()}),function(e,t){return o.apply(this,arguments)})},31:function(e,t,n){"use strict";n.d(t,{Qf:function(){return E},kP:function(){return useSession},je:function(){return _}});var r,o,a,i=n(4235),s=n(3067),c=n(4988),l=n(5487),u=n(8987),p=n(4194),d=n(3412),f=n.n(d),m=n(1041),g=n(7440),h=l.pR,y=(r=(0,c.Z)(function*(e){return(yield(0,g.W)(h,{id:e})).profile.addresses}),function(e){return r.apply(this,arguments)}),b=(o=(0,c.Z)(function*(e){var t=yield y(e);return t?t[0]:null}),function(e){return o.apply(this,arguments)}),v=n(135),S=["channel"],w=["hasOnlyDefaultSalesChannel"];function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){(0,s.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var O=l.$G,_=(a=(0,c.Z)(function*(e){if(null!==(t=f().deliveryPromise)&&void 0!==t&&t.enabled&&!e.postalCode){if(e.b2b&&null!==(n=e.b2b)&&void 0!==n&&n.savedPostalCode)E.set(_objectSpread(_objectSpread({},e),{},{postalCode:e.b2b.savedPostalCode}));else if(null!==(r=e.person)&&void 0!==r&&r.id){var t,n,r,o,a=yield b(null===(o=e.person)||void 0===o?void 0:o.id);a&&E.set(_objectSpread(_objectSpread({},e),{},{city:null==a?void 0:a.city,postalCode:null==a?void 0:a.postalCode,geoCoordinates:{latitude:null!=a&&a.geoCoordinate?null==a?void 0:a.geoCoordinate[1]:null,longitude:null!=a&&a.geoCoordinate?null==a?void 0:a.geoCoordinate[0]:null},country:null==a?void 0:a.country}))}else{var i=k.readInitial().postalCode;i&&E.set(_objectSpread(_objectSpread({},e),{},{postalCode:i}))}}return(yield(0,g.W)(O,{session:e,search:window.location.search})).validateSession}),function(e){return a.apply(this,arguments)}),[P,j]=(0,v.d)(_),k=(0,u.S)(f().session,j),E=_objectSpread(_objectSpread({},k),{},{set:e=>{k.set(e),m.i8.set(m.i8.read())}}),useSession=function(){var{filter:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{filter:!0},t=(0,v.o)(E),{channel:n}=t,r=(0,i.Z)(t,S),o=(0,v.o)(P);if(e){var a=JSON.parse(n),{hasOnlyDefaultSalesChannel:s}=a;n=JSON.stringify((0,i.Z)(a,w))}return(0,p.useMemo)(()=>_objectSpread(_objectSpread({},r),{},{channel:n,isValidating:o}),[o,r,n])}},135:function(e,t,n){"use strict";n.d(t,{d:function(){return createValidationStore},o:function(){return useStore}});var r=n(4988),o=n(3365),a=n(4194),useStore=e=>(0,a.useSyncExternalStore)(e.subscribe,e.read,e.readInitial),createValidationStore=e=>{var t,n=(0,o.M)(!1),a=(t=(0,r.Z)(function*(t){try{return n.set(!0),yield e(t)}finally{n.set(!1)}}),function(e){return t.apply(this,arguments)});return[n,a]}},2516:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(6011)}])},6207:function(){},7401:function(e,t,n){e.exports=n(1554)},3339:function(e,t,n){e.exports=n(4308)},3656:function(e){var t,n,r,o=e.exports={};function defaultSetTimout(){throw Error("setTimeout has not been defined")}function defaultClearTimeout(){throw Error("clearTimeout has not been defined")}function runTimeout(e){if(t===setTimeout)return setTimeout(e,0);if((t===defaultSetTimout||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){t=defaultSetTimout}try{n="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){n=defaultClearTimeout}}();var a=[],i=!1,s=-1;function cleanUpNextTick(){i&&r&&(i=!1,r.length?a=r.concat(a):s=-1,a.length&&drainQueue())}function drainQueue(){if(!i){var e=runTimeout(cleanUpNextTick);i=!0;for(var t=a.length;t;){for(r=a,a=[];++s<t;)r&&r[s].run();s=-1,t=a.length}r=null,i=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===defaultClearTimeout||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function Item(e,t){this.fun=e,this.array=t}function noop(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];a.push(new Item(e,t)),1!==a.length||i||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=noop,o.addListener=noop,o.once=noop,o.off=noop,o.removeListener=noop,o.removeAllListeners=noop,o.emit=noop,o.prependListener=noop,o.prependOnceListener=noop,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}},6652:function(e,t,n){"use strict";n.d(t,{l:function(){return useUI}});var r=n(4194);let reducer=(e,t)=>{let{type:n}=t;switch(n){case"open":{let{payload:n}=t;return document.body.classList.add("no-scroll"),{...e,[n]:!0}}case"close":{let{payload:n}=t;return document.body.classList.remove("no-scroll"),{...e,[n]:!1}}case"pushToast":{let n=e.toasts.some(e=>e.message===t.payload.message&&e.status===t.payload.status);if(n)return e;return{...e,toasts:[...e.toasts,t.payload]}}case"popToast":return{...e,toasts:e.toasts.slice(1)};case"openPopover":return{...e,popover:{isOpen:!0,triggerRef:t.payload.triggerRef}};case"closePopover":return{...e,popover:{isOpen:!1,triggerRef:void 0}};default:throw Error(`Action ${n} not implemented`)}},initializer=()=>({cart:!1,modal:!1,navbar:!1,filter:!1,toasts:[],popover:{isOpen:!1,triggerRef:void 0}}),o=(0,r.createContext)(void 0);function useUI(){let e=(0,r.useContext)(o);if(void 0===e)throw Error("Missing UI context on React tree");return e}t.Z=function({children:e}){let[t,n]=(0,r.useReducer)(reducer,void 0,initializer),a=(0,r.useMemo)(()=>({openFilter:()=>n({type:"open",payload:"filter"}),closeFilter:()=>n({type:"close",payload:"filter"}),openNavbar:()=>n({type:"open",payload:"navbar"}),closeNavbar:()=>n({type:"close",payload:"navbar"}),openCart:()=>n({type:"open",payload:"cart"}),closeCart:()=>n({type:"close",payload:"cart"}),openModal:()=>n({type:"open",payload:"modal"}),closeModal:()=>n({type:"close",payload:"modal"}),pushToast:e=>n({type:"pushToast",payload:e}),popToast:()=>n({type:"popToast"}),openPopover:e=>n({type:"openPopover",payload:e}),closePopover:()=>n({type:"closePopover"})}),[]),i=(0,r.useMemo)(()=>({...t,...a}),[a,t]);return r.createElement(o.Provider,{value:i},e)}},3982:function(e,t,n){var r={"./vtex":[7692,7692],"./vtex/":[7692,7692],"./vtex/index":[7692,7692],"./vtex/index.ts":[7692,7692],"./vtex/rc":[8068,8068],"./vtex/rc.ts":[8068,8068],"./vtex/search":[941,941],"./vtex/search.ts":[941,941]};function webpackAsyncContext(e){if(!n.o(r,e))return Promise.resolve().then(function(){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=r[e],o=t[0];return n.e(t[1]).then(function(){return n(o)})}webpackAsyncContext.keys=function(){return Object.keys(r)},webpackAsyncContext.id=3982,e.exports=webpackAsyncContext},8529:function(e,t,n){"use strict";n.d(t,{W:function(){return useAnalyticsEvent}});var r=n(4194),o=n(4950);let useAnalyticsEvent=e=>{let t=(0,r.useCallback)(t=>{try{if(t.data.name!==o.vi)return;e((0,o.Wg)(t.data))}catch(e){console.error("Something went wrong while running Analytics handler")}},[e]);(0,r.useEffect)(()=>(window.addEventListener("message",t),()=>window.removeEventListener("message",t)),[t])}},4950:function(e,t,n){"use strict";n.d(t,{Mi:function(){return r},Wg:function(){return unwrap},re:function(){return wrap},vi:function(){return o}});let r="store:",o="AnalyticsEvent",wrap=e=>({name:o,params:{...e,name:`${r}${e.name}`}}),unwrap=e=>({...e.params,name:e.params.name.slice(r.length,e.params.name.length)})},9380:function(e,t,n){"use strict";n.d(t,{n:function(){return createCartStore}});var r=n(2254),o=n(9578);let createCartStore=(e,t,n="fs::cart")=>{let a=(0,o.M)(e,n,t),getItem=e=>a.read().items.find(t=>t.id===e);return{...a,getItem,addItem:e=>{if(!e.id)throw new r.q("You must provide an `id` for items");if(e.quantity<0)throw new r.q("Item quantity needs to be higher than zero");let t=a.read(),n=getItem(e.id),o=n?{...e,quantity:n.quantity+e.quantity}:e;a.set({...t,items:n?t.items.map(e=>e===n?o:e):[...t.items,o]})},updateItemQuantity:(e,t)=>{let n=a.read(),o=getItem(e);if(!o)throw new r.q(`Item with id not found: ${e}`);let i={...o,quantity:t};a.set({...n,items:n.items.map(e=>e===o?i:e).filter(e=>e.quantity>0)})},removeItem:e=>{let t=a.read(),n=getItem(e);a.set({...t,items:t.items.filter(e=>e!==n)})},emptyCart:()=>a.set({...a.read(),items:[]}),inCart:e=>!!getItem(e),isEmpty:()=>0===a.read().items.length}}},9664:function(e,t,n){"use strict";n.d(t,{Ru:function(){return removeFacet},a2:function(){return toggleFacets},uL:function(){return setFacet},wB:function(){return toggleFacet},wb:function(){return isSearchSort}});var r=n(2254);let o=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>o.has(e),removeFacet=(e,t)=>{let{value:n}=t,o=e.findIndex(e=>e.value===n);if(o<0)throw new r.q(`Cannot remove ${n} from search params`);return e.filter((e,t)=>t!==o)},setFacet=(e,t,n)=>{if(!0===n){let n=e.findIndex(e=>e.key===t.key);if(n>-1)return e.map((e,r)=>r===n?t:e)}return[...e,t]},toggleFacet=(e,t)=>{let n=e.find(e=>e.key===t.key&&e.value===t.value);return void 0!==n?removeFacet(e,t):setFacet(e,t,!1)},toggleFacets=(e,t)=>t.reduce((e,t)=>toggleFacet(e,t),e)},2489:function(e,t,n){"use strict";n.d(t,{j:function(){return initialize},X:function(){return u}});var r,o=n(4194);let createStoreImpl=e=>{let t;let n=new Set,setState=(e,r)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},getState=()=>t,r={setState,getState,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(setState,getState,r);return r},createStore=e=>e?createStoreImpl(e):createStoreImpl,identity=e=>e,createImpl=e=>{let t=createStore(e),useBoundStore=e=>(function(e,t=identity){let n=o.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return o.useDebugValue(n),n})(t,e);return Object.assign(useBoundStore,t),useBoundStore};var a=n(6142),i=n(2339),s=n(4204),c=n.n(s);let initialize=({sort:e="score_desc",selectedFacets:t=[],term:n=null,base:r="/",page:o=0,passThrough:a=new URLSearchParams}={})=>({sort:e,selectedFacets:t,term:n,base:r,page:o,passThrough:a}),l=(r=(e,t)=>({state:initialize(),setState:n=>{let r=t().state,o={...r,...n};!1===c()(r,o)&&e({state:o})},appendFacet:t=>e(e=>({state:{...e.state,selectedFacets:[...e.state.selectedFacets.filter(e=>!t.some(t=>t.key===e.key)),...t]}})),itemsPerPage:0,setItemsPerPage:t=>e({itemsPerPage:t}),pages:function(){try{let e=window.history.state?.key;if(!e)return null;let t=getSessionStorageKey(e),n=sessionStorage.getItem(t);return n?JSON.parse(n):null}catch(e){return null}}()??[0],addPrevPage:()=>{let{pages:n}=t(),r=n[0]-1,o=[r,...n];setPagesSessionStorage(o),e({pages:o})},addNextPage:()=>{let{pages:n}=t(),r=Number(n.at(-1))+1,o=[...n,r];setPagesSessionStorage(o),e({pages:o})},resetInfiniteScroll:t=>{let n=[t];setPagesSessionStorage(n),e({pages:n})},parseURL:n=>{let r=(0,a.Q)(n),o=(0,i.Z)(t().state);(0,i.Z)(r).href!==o.href&&e({state:r})},serializedState:()=>(0,i.Z)(t().state),initialized:!1,reset:()=>{e({state:{...initialize({base:t().state.base})}})},start:(n,r)=>{t().initialized||e(e=>({initialized:!0,state:initialize({...e.state,...r,...(0,a.Q)(new URL(n,"http://localhost"))}),itemsPerPage:r.itemsPerPage??e.itemsPerPage,pages:r.pages??e.pages}))}}))?createImpl(r):createImpl,u=(e=>{for(let t of(e.use={},Object.keys(e.getState())))e.use[t]=()=>e(e=>e[t]);return e})(l),getSessionStorageKey=e=>`__fs_gallery_page_${e}`;function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let n=getSessionStorageKey(t);sessionStorage.setItem(n,JSON.stringify(e))}catch(e){return}}},6142:function(e,t,n){"use strict";n.d(t,{Q:function(){return parse}});var r=n(2254),o=n(9664),a=n(2489);let parse=({pathname:e,searchParams:t})=>{let n=(0,a.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,o.wb)(n.sort))throw new r.q(`Uknown sorting option ${n.sort}`);let i=t.get("facets")?.split(",")??[];for(let e of i){let r=t.getAll(e);for(let t of r)n.selectedFacets=(0,o.uL)(n.selectedFacets,{key:e,value:t})}return n.passThrough=function(e,t){let n=new URLSearchParams,r=new Set(t),o=Array.from(e.entries());for(let[e,t]of o)r.has(e)||n.append(e,t);return n}(t,["q","sort","page","facets",...i]),n}},9029:function(e,t,n){"use strict";n.d(t,{R:function(){return useSearch}});var r=n(2489);let useSearch=()=>{let e=(0,r.X)();return e}},8987:function(e,t,n){"use strict";n.d(t,{S:function(){return createSessionStore}});var r=n(9578);let createSessionStore=(e,t,n="fs::session")=>(0,r.M)(e,n,t)},3365:function(e,t,n){"use strict";n.d(t,{M:function(){return createStore}});let createStore=e=>{let t=new Set,n=new Set,r=e;return{set:e=>{r=e,n.forEach(e=>e()),n.clear(),t.forEach(t=>{let r=t(e);"function"==typeof r&&n.add(r)})},read:()=>r,readInitial:()=>e,subscribe:e=>(t.add(e),()=>{t.delete(e)})}}},9578:function(e,t,n){"use strict";n.d(t,{M:function(){return createStore}});var r=n(3169),o=n(5214),a=n(8901),i=n(8956),s=n(3365);let identity=e=>e,createStore=(e,t,n)=>(0,i.q)([t?(0,a.r)(t):identity,t?(0,r.R)(t):identity,n?(0,o.A)(n):identity],(0,s.M)(e))},5214:function(e,t,n){"use strict";n.d(t,{A:function(){return optimistic}});let trivial=async()=>null,optimistic=(e=trivial)=>{let t=Promise.resolve();return n=>(n.subscribe(r=>{let o=!1,handler=async()=>{if(o)return;let t=await e(r);o||null===t||n.set(t)};return t=t.then(handler),()=>{o=!0}}),n)}},3169:function(e,t,n){"use strict";let r;n.d(t,{R:function(){return persisted}});var esm=function(){let e;let t=!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent);return t&&indexedDB.databases?new Promise(t=>{let tryIdb=()=>indexedDB.databases().finally(t);e=setInterval(tryIdb,100),tryIdb()}).finally(()=>clearInterval(e)):Promise.resolve()};function promisifyRequest(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function defaultGetStore(){return r||(r=function(e,t){let n=esm().then(()=>{let n=indexedDB.open(e);return n.onupgradeneeded=()=>n.result.createObjectStore(t),promisifyRequest(n)});return(e,r)=>n.then(n=>r(n.transaction(t,e).objectStore(t)))}("keyval-store","keyval")),r}let getIDB=async e=>{try{return await function(e,t=defaultGetStore()){return t("readonly",t=>promisifyRequest(t.get(e)))}(e)}catch(e){return}},setIDB=async(e,t)=>{try{await function(e,t,n=defaultGetStore()){return n("readwrite",n=>(n.put(t,e),promisifyRequest(n.transaction)))}(e,t)}catch(e){}},debounce=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}},persisted=e=>t=>{let handler=async()=>{let n=await getIDB(e);"undefined"!=typeof document&&t.set(n??t.readInitial())},n=debounce(handler,500);return n(),globalThis.addEventListener?.("focus",()=>n()),globalThis.document?.addEventListener("visibilitychange",()=>"visible"===document.visibilityState&&n()),t.subscribe(t=>{setIDB(e,t)}),t}},8901:function(e,t,n){"use strict";n.d(t,{r:function(){return singleton}}),globalThis.faststore_sdk_stores=globalThis.faststore_sdk_stores??new Map;let singleton=e=>t=>{let n=globalThis.faststore_sdk_stores;return n.has(e)||n.set(e,t),n.get(e)}},8956:function(e,t,n){"use strict";n.d(t,{q:function(){return compose}});let compose=(e,t)=>e.reduce((e,t)=>t(e),t)},2254:function(e,t,n){"use strict";n.d(t,{q:function(){return SDKError}});let SDKError=class SDKError extends Error{constructor(e){super(`[sdk]: ${e}`)}}},2339:function(e,t){"use strict";t.Z=e=>{let t=new URL(e.base,"http://localhost"),{page:n,selectedFacets:r,sort:o,term:a,passThrough:i}=e;null!==a&&t.searchParams.set("q",a);let s=new Set;for(let e of r)t.searchParams.append(e.key,e.value),s.add(e.key);if(r.length>0&&t.searchParams.set("facets",Array.from(s).join(",")),t.searchParams.set("sort",o),t.searchParams.set("page",n.toString()),i)for(let[e,n]of i.entries())t.searchParams.append(e,n);return t}},4988:function(e,t,n){"use strict";function asyncGeneratorStep(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,o)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function _next(e){asyncGeneratorStep(a,r,o,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(a,r,o,_next,_throw,"throw",e)}_next(void 0)})}}n.d(t,{Z:function(){return _asyncToGenerator}})},3067:function(e,t,n){"use strict";function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return _defineProperty}})},4235:function(e,t,n){"use strict";function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,{Z:function(){return _objectWithoutProperties}})}},function(e){var __webpack_exec__=function(t){return e(e.s=t)};e.O(0,[9774,179],function(){return __webpack_exec__(2516),__webpack_exec__(4308)}),_N_E=e.O()}]);