@faststore/core 3.41.9 → 3.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +34 -34
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/react-loadable-manifest.json +24 -18
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/1454.js +1 -0
  14. package/.next/server/chunks/3684.js +1 -1
  15. package/.next/server/chunks/416.js +1 -0
  16. package/.next/server/chunks/4289.js +13 -5
  17. package/.next/server/chunks/4746.js +1 -1
  18. package/.next/server/chunks/4816.js +1 -0
  19. package/.next/server/chunks/6026.js +9 -0
  20. package/.next/server/chunks/6030.js +1 -0
  21. package/.next/server/chunks/6076.js +1 -1
  22. package/.next/server/chunks/6594.js +1 -0
  23. package/.next/server/chunks/6999.js +1 -0
  24. package/.next/server/chunks/7371.js +1 -0
  25. package/.next/server/chunks/831.js +1 -0
  26. package/.next/server/chunks/8482.js +1 -0
  27. package/.next/server/chunks/UIBannerText.js +1 -1
  28. package/.next/server/chunks/UISKUMatrixSidebar.js +1 -0
  29. package/.next/server/middleware-build-manifest.js +1 -1
  30. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  31. package/.next/server/pages/404.js.nft.json +1 -1
  32. package/.next/server/pages/500.js.nft.json +1 -1
  33. package/.next/server/pages/[...slug].js +1 -1
  34. package/.next/server/pages/[...slug].js.nft.json +1 -1
  35. package/.next/server/pages/[slug]/p.js +1 -1
  36. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  37. package/.next/server/pages/_app.js.nft.json +1 -1
  38. package/.next/server/pages/_document.js.nft.json +1 -1
  39. package/.next/server/pages/_error.js.nft.json +1 -1
  40. package/.next/server/pages/account/profile.js.nft.json +1 -1
  41. package/.next/server/pages/account.js.nft.json +1 -1
  42. package/.next/server/pages/api/graphql.js +1 -1
  43. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  44. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  45. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  46. package/.next/server/pages/api/preview.js.nft.json +1 -1
  47. package/.next/server/pages/checkout.js.nft.json +1 -1
  48. package/.next/server/pages/en-US/404.html +2 -2
  49. package/.next/server/pages/en-US/404.json +1 -1
  50. package/.next/server/pages/en-US/500.html +2 -2
  51. package/.next/server/pages/en-US/500.json +1 -1
  52. package/.next/server/pages/en-US/checkout.html +2 -2
  53. package/.next/server/pages/en-US/checkout.json +1 -1
  54. package/.next/server/pages/en-US/login.html +2 -2
  55. package/.next/server/pages/en-US/login.json +1 -1
  56. package/.next/server/pages/en-US/s.html +2 -2
  57. package/.next/server/pages/en-US/s.json +1 -1
  58. package/.next/server/pages/en-US.html +2 -2
  59. package/.next/server/pages/en-US.json +1 -1
  60. package/.next/server/pages/index.js +1 -1
  61. package/.next/server/pages/index.js.nft.json +1 -1
  62. package/.next/server/pages/login.js.nft.json +1 -1
  63. package/.next/server/pages/s.js +1 -1
  64. package/.next/server/pages/s.js.nft.json +1 -1
  65. package/.next/server/pages-manifest.json +1 -1
  66. package/.next/server/webpack-runtime.js +1 -1
  67. package/.next/static/{YZbl2rCQaXL1-tNjqawX_ → Ra_8xXVEVCNHcT2KePSUO}/_buildManifest.js +1 -1
  68. package/.next/static/chunks/{1552.b5a073e7ac834965.js → 1552.e7cece605fc2e1cd.js} +1 -1
  69. package/.next/static/chunks/417.c39c1c5e5ef57b4a.js +1 -0
  70. package/.next/static/chunks/4865.3e2ae9feb511c870.js +1 -0
  71. package/.next/static/chunks/6335-5870fc075bf96b86.js +1 -0
  72. package/.next/static/chunks/{7498-49bf89838314b503.js → 7498-415859c993f5002b.js} +1 -1
  73. package/.next/static/chunks/UISKUMatrixSidebar.c68540bda6d40e13.js +1 -0
  74. package/.next/static/chunks/pages/[slug]/p-3b513ae37c648620.js +1 -0
  75. package/.next/static/chunks/webpack-d72e5eb27bf80195.js +1 -0
  76. package/.next/static/css/31fb64e064998460.css +1 -0
  77. package/.next/trace +109 -109
  78. package/.turbo/turbo-build.log +10 -16
  79. package/.turbo/turbo-test.log +5 -5
  80. package/@generated/gql.ts +2 -2
  81. package/@generated/graphql.ts +59 -7
  82. package/@generated/persisted-documents.json +3 -3
  83. package/CHANGELOG.md +6 -0
  84. package/cms/faststore/sections.json +85 -0
  85. package/package.json +4 -4
  86. package/src/components/navigation/Navbar/Navbar.tsx +2 -0
  87. package/src/components/product/ProductCard/ProductCard.tsx +8 -0
  88. package/src/components/search/SearchDropdown/SearchDropdown.tsx +14 -1
  89. package/src/components/search/SearchInput/SearchInput.tsx +17 -2
  90. package/src/components/search/SearchProductItem/SearchProductItem.tsx +120 -1
  91. package/src/components/sections/Navbar/DefaultComponents.ts +7 -0
  92. package/src/components/sections/Navbar/Navbar.tsx +16 -0
  93. package/src/components/sections/Navbar/section.module.scss +11 -0
  94. package/src/components/ui/SKUMatrix/SKUMatrixSidebar.tsx +12 -4
  95. package/src/sdk/cart/useBuyButton.ts +7 -2
  96. package/src/typings/overrides.ts +1 -0
  97. package/.next/server/chunks/5071.js +0 -1
  98. package/.next/server/chunks/5284.js +0 -1
  99. package/.next/server/chunks/6198.js +0 -1
  100. package/.next/server/chunks/804.js +0 -1
  101. package/.next/server/chunks/8112.js +0 -9
  102. package/.next/server/chunks/9019.js +0 -1
  103. package/.next/server/chunks/9068.js +0 -1
  104. package/.next/static/chunks/417.08663bd4b5809548.js +0 -1
  105. package/.next/static/chunks/4865.8b1970610c412187.js +0 -1
  106. package/.next/static/chunks/6335-7aa183582a89bc0e.js +0 -1
  107. package/.next/static/chunks/pages/[slug]/p-2e02254149cef33d.js +0 -1
  108. package/.next/static/chunks/webpack-f0ee32c953ec8952.js +0 -1
  109. package/.next/static/css/b0c0e0632c5d7f52.css +0 -1
  110. /package/.next/static/{YZbl2rCQaXL1-tNjqawX_ → Ra_8xXVEVCNHcT2KePSUO}/_ssgManifest.js +0 -0
@@ -1,8 +1,13 @@
1
+ import { type Dispatch, type SetStateAction, useMemo, useState } from 'react'
1
2
  import {
3
+ Icon,
2
4
  SearchProductItem as UISearchProductItem,
3
5
  SearchProductItemContent as UISearchProductItemContent,
4
6
  SearchProductItemImage as UISearchProductItemImage,
7
+ SKUMatrix as UISKUMatrix,
8
+ SKUMatrixTrigger as UISKUMatrixTrigger,
5
9
  useSearch,
10
+ useUI,
6
11
  } from '@faststore/ui'
7
12
 
8
13
  import { Image } from 'src/components/ui/Image'
@@ -10,6 +15,11 @@ import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
10
15
  import { useProductLink } from 'src/sdk/product/useProductLink'
11
16
  import { sendAutocompleteClickEvent } from '../SearchDropdown'
12
17
  import type { ProductSummary_ProductFragment } from '@generated/graphql'
18
+ import { useBuyButton } from 'src/sdk/cart/useBuyButton'
19
+ import type { NavbarProps } from 'src/components/sections/Navbar'
20
+ import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
21
+
22
+ import styles from 'src/components/sections/Navbar/section.module.scss'
13
23
 
14
24
  type SearchProductItemProps = {
15
25
  /**
@@ -20,16 +30,30 @@ type SearchProductItemProps = {
20
30
  * Index to generate product link.
21
31
  */
22
32
  index: number
33
+ /**
34
+ * Quick Order settings.
35
+ */
36
+ quickOrderSettings: NavbarProps['searchInput']['quickOrderSettings']
37
+ /**
38
+ * Method to manage the visibility state of the dropdown when SKU Matrix is active.
39
+ */
40
+ onChangeCustomSearchDropdownVisible: Dispatch<SetStateAction<boolean>>
23
41
  }
24
42
 
25
43
  function SearchProductItem({
26
44
  product,
27
45
  index,
46
+ quickOrderSettings,
47
+ onChangeCustomSearchDropdownVisible,
28
48
  ...otherProps
29
49
  }: SearchProductItemProps) {
30
50
  const {
31
51
  values: { onSearchSelection },
32
52
  } = useSearch()
53
+ const { pushToast } = useUI()
54
+
55
+ const { __experimentalSKUMatrixSidebar: UISKUMatrixSidebar } =
56
+ useOverrideComponents<'Navbar'>()
33
57
 
34
58
  const { href, onClick, ...baseLinkProps } = useProductLink({
35
59
  product,
@@ -37,13 +61,32 @@ function SearchProductItem({
37
61
  index,
38
62
  })
39
63
 
64
+ const [quantity, setQuantity] = useState<number>(1)
65
+
40
66
  const {
67
+ id,
68
+ sku,
69
+ gtin,
70
+ brand,
71
+ isVariantOf,
41
72
  isVariantOf: { name },
73
+ unitMultiplier,
42
74
  image: [img],
43
75
  offers: {
44
76
  lowPrice: spotPrice,
45
- offers: [{ listPrice }],
77
+ offers: [
78
+ {
79
+ listPrice,
80
+ availability,
81
+ price,
82
+ listPriceWithTaxes,
83
+ seller,
84
+ priceWithTaxes,
85
+ quantity: offersQuantity,
86
+ },
87
+ ],
46
88
  },
89
+ additionalProperty,
47
90
  } = product
48
91
 
49
92
  const linkProps = {
@@ -61,6 +104,43 @@ function SearchProductItem({
61
104
  ...baseLinkProps,
62
105
  }
63
106
 
107
+ const outOfStock = useMemo(
108
+ () => availability === 'https://schema.org/OutOfStock',
109
+ [availability]
110
+ )
111
+
112
+ const hasVariants = useMemo(
113
+ () =>
114
+ Boolean(
115
+ Object.keys(product.isVariantOf.skuVariants.allVariantsByName).length
116
+ ),
117
+
118
+ [product]
119
+ )
120
+
121
+ const buyProps = useBuyButton(
122
+ {
123
+ id,
124
+ price,
125
+ priceWithTaxes,
126
+ listPrice,
127
+ listPriceWithTaxes,
128
+ seller,
129
+ quantity,
130
+ itemOffered: {
131
+ sku,
132
+ name,
133
+ gtin,
134
+ image: [img],
135
+ brand,
136
+ isVariantOf,
137
+ additionalProperty,
138
+ unitMultiplier,
139
+ },
140
+ },
141
+ false
142
+ )
143
+
64
144
  return (
65
145
  <UISearchProductItem linkProps={linkProps} {...otherProps}>
66
146
  <UISearchProductItemImage>
@@ -73,6 +153,45 @@ function SearchProductItem({
73
153
  listPrice: listPrice,
74
154
  formatter: useFormattedPrice,
75
155
  }}
156
+ onValidateBlur={(min, max, quantity) =>
157
+ pushToast({
158
+ title: 'Invalid quantity!',
159
+ message: `The quantity you entered is outside the range of ${min} to ${max}. The quantity was set to ${quantity}.`,
160
+ status: 'INFO',
161
+ icon: <Icon name="CircleWavyWarning" width={30} height={30} />,
162
+ })
163
+ }
164
+ quickOrder={{
165
+ enabled: quickOrderSettings?.quickOrder,
166
+ outOfStockLabel: 'Out of stock',
167
+ availability: !outOfStock,
168
+ hasVariants,
169
+ buyProps,
170
+ quantity,
171
+ onChangeQuantity: setQuantity,
172
+ max: offersQuantity,
173
+ skuMatrixControl: (
174
+ <>
175
+ {quickOrderSettings?.quickOrder && (
176
+ <UISKUMatrix>
177
+ <UISKUMatrixTrigger>
178
+ {quickOrderSettings?.skuMatrix.triggerButtonLabel}
179
+ </UISKUMatrixTrigger>
180
+
181
+ <UISKUMatrixSidebar.Component
182
+ overlayProps={{ className: styles.section }}
183
+ formatter={useFormattedPrice}
184
+ columns={quickOrderSettings?.skuMatrix.columns}
185
+ product={product}
186
+ status={(status: string | null) =>
187
+ onChangeCustomSearchDropdownVisible(status === 'visible')
188
+ }
189
+ />
190
+ </UISKUMatrix>
191
+ )}
192
+ </>
193
+ ),
194
+ }}
76
195
  ></UISearchProductItemContent>
77
196
  </UISearchProductItem>
78
197
  )
@@ -37,6 +37,12 @@ const UINavbarSliderFooter = dynamic(() =>
37
37
  )
38
38
  )
39
39
 
40
+ const SKUMatrixSidebar = dynamic(() =>
41
+ import(
42
+ /* webpackChunkName: "UISKUMatrixSidebar" */ 'src/components/ui/SKUMatrix/SKUMatrixSidebar'
43
+ ).then((module) => module.default)
44
+ )
45
+
40
46
  export const NavbarDefaultComponents = {
41
47
  Navbar: UINavbar,
42
48
  NavbarLinks: UINavbarLinks,
@@ -50,4 +56,5 @@ export const NavbarDefaultComponents = {
50
56
  NavbarButtons: UINavbarButtons,
51
57
  IconButton: UIIconButton,
52
58
  _experimentalButtonSignIn: ButtonSignIn,
59
+ __experimentalSKUMatrixSidebar: SKUMatrixSidebar,
53
60
  } as const
@@ -23,6 +23,22 @@ export interface NavbarProps {
23
23
  searchInput: {
24
24
  placeholder?: string
25
25
  sort: string
26
+ quickOrderSettings: {
27
+ quickOrder: boolean
28
+ skuMatrix: {
29
+ triggerButtonLabel: string
30
+ columns: {
31
+ name: string
32
+ additionalColumns: Array<{ label: string; value: string }>
33
+ price: number
34
+ quantitySelector: number
35
+ availability: {
36
+ label: string
37
+ stockDisplaySettings: 'showAvailability' | 'showStockQuantity'
38
+ }
39
+ }
40
+ }
41
+ }
26
42
  }
27
43
  signInButton: {
28
44
  icon: {
@@ -7,12 +7,15 @@
7
7
  @import "@faststore/ui/src/components/atoms/Badge/styles.scss";
8
8
  @import "@faststore/ui/src/components/atoms/Button/styles.scss";
9
9
  @import "@faststore/ui/src/components/atoms/Icon/styles.scss";
10
+ @import "@faststore/ui/src/components/atoms/Loader/styles.scss";
10
11
  @import "@faststore/ui/src/components/atoms/Input/styles.scss";
11
12
  @import "@faststore/ui/src/components/atoms/Link/styles.scss";
12
13
  @import "@faststore/ui/src/components/atoms/List/styles.scss";
13
14
  @import "@faststore/ui/src/components/atoms/Logo/styles.scss";
15
+ @import "@faststore/ui/src/components/atoms/Overlay/styles.scss";
14
16
  @import "@faststore/ui/src/components/atoms/Price/styles.scss";
15
17
  @import "@faststore/ui/src/components/molecules/LinkButton/styles.scss";
18
+ @import "@faststore/ui/src/components/molecules/QuantitySelector/styles.scss";
16
19
  @import "@faststore/ui/src/components/molecules/NavbarLinks/styles.scss";
17
20
  @import "@faststore/ui/src/components/molecules/ProductPrice/styles.scss";
18
21
  @import "@faststore/ui/src/components/molecules/SearchAutoComplete/styles.scss";
@@ -21,8 +24,12 @@
21
24
  @import "@faststore/ui/src/components/molecules/SearchInputField/styles.scss";
22
25
  @import "@faststore/ui/src/components/molecules/SearchProducts/styles.scss";
23
26
  @import "@faststore/ui/src/components/molecules/SearchTop/styles.scss";
27
+ @import "@faststore/ui/src/components/molecules/SkuSelector/styles.scss";
28
+ @import "@faststore/ui/src/components/molecules/Table/styles.scss";
24
29
  @import "@faststore/ui/src/components/organisms/SearchInput/styles.scss";
25
30
  @import "@faststore/ui/src/components/organisms/Navbar/styles.scss";
31
+ @import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
32
+ @import "@faststore/ui/src/components/organisms/SKUMatrix/styles.scss";
26
33
 
27
34
  // Sets Navbar height on desktop to avoid CLS issue - Cumulative Layout Shift
28
35
  --fs-navbar-height-desktop: 4.5rem;
@@ -39,5 +46,9 @@
39
46
  margin-bottom: 0;
40
47
  }
41
48
  }
49
+
50
+ &[data-fs-overlay] {
51
+ height: 100%;
52
+ }
42
53
  }
43
54
  }
@@ -1,15 +1,20 @@
1
+ import { useEffect } from 'react'
1
2
  import type { SKUMatrixSidebarProps as UISKUMatrixSidebarProps } from '@faststore/ui'
2
3
  import {
3
4
  SKUMatrixSidebar as UISKUMatrixSidebar,
4
5
  useSKUMatrix,
5
6
  } from '@faststore/ui'
6
7
  import { gql } from '@generated/gql'
8
+ import type { ProductSummary_ProductFragment } from '@generated/graphql'
7
9
  import { useBuyButton } from 'src/sdk/cart/useBuyButton'
8
10
  import { usePDP } from 'src/sdk/overrides/PageProvider'
9
11
  import { useAllVariantProducts } from 'src/sdk/product/useAllVariantProducts'
10
12
  import { Image } from '../Image'
11
13
 
12
- interface SKUMatrixProps extends UISKUMatrixSidebarProps {}
14
+ interface SKUMatrixProps extends UISKUMatrixSidebarProps {
15
+ product?: ProductSummary_ProductFragment
16
+ status?(data: 'visible' | null): void
17
+ }
13
18
 
14
19
  const ImageComponent: UISKUMatrixSidebarProps['ImageComponent'] = ({
15
20
  src,
@@ -18,9 +23,8 @@ const ImageComponent: UISKUMatrixSidebarProps['ImageComponent'] = ({
18
23
  }) => <Image src={src} alt={alt} width={48} height={48} {...otherProps} />
19
24
 
20
25
  function SKUMatrixSidebar(props: SKUMatrixProps) {
21
- const {
22
- data: { product },
23
- } = usePDP()
26
+ const { data } = usePDP()
27
+ const product = props.product ?? data.product
24
28
 
25
29
  const { allVariantProducts, isOpen, setAllVariantProducts } = useSKUMatrix()
26
30
  const { isValidating } = useAllVariantProducts(
@@ -29,6 +33,10 @@ function SKUMatrixSidebar(props: SKUMatrixProps) {
29
33
  setAllVariantProducts
30
34
  )
31
35
 
36
+ useEffect(() => {
37
+ props.status?.(isOpen ? 'visible' : null)
38
+ }, [isOpen])
39
+
32
40
  const {
33
41
  gtin,
34
42
  unitMultiplier,
@@ -8,7 +8,10 @@ import { useUI } from '@faststore/ui'
8
8
  import { useSession } from '../session'
9
9
  import { cartStore } from './index'
10
10
 
11
- export const useBuyButton = (item: CartItem | CartItem[] | null) => {
11
+ export const useBuyButton = (
12
+ item: CartItem | CartItem[] | null,
13
+ shouldOpenCart = true
14
+ ) => {
12
15
  const { openCart } = useUI()
13
16
  const {
14
17
  currency: { code },
@@ -68,7 +71,9 @@ export const useBuyButton = (item: CartItem | CartItem[] | null) => {
68
71
  ? item.forEach((value) => cartStore.addItem(value))
69
72
  : cartStore.addItem(item)
70
73
 
71
- openCart()
74
+ if (shouldOpenCart) {
75
+ openCart()
76
+ }
72
77
  },
73
78
  [code, item, openCart, itemIsArray]
74
79
  )
@@ -197,6 +197,7 @@ export type SectionsOverrides = {
197
197
  IconButtonProps,
198
198
  Omit<IconButtonProps, 'onClick'>
199
199
  >
200
+ __experimentalSKUMatrixSidebar: ComponentOverrideDefinition<any, any>
200
201
  _experimentalButtonSignIn: ComponentOverrideDefinition<any, any>
201
202
  }
202
203
  }
@@ -1 +0,0 @@
1
- "use strict";exports.id=5071,exports.ids=[5071],exports.modules={35071:(e,t,r)=>{r.d(t,{Z:()=>f});var o=r(38394),a=r(65167),n=r(50547),s=r(16689),i=r(35236),c=r.n(i),d=r(76659),l=r(56087),u=r(5436),p=r(20997);let b=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let f=(0,s.memo)(function(e){let{product:t,index:r,bordered:i=!0,variant:f="default",aspectRatio:O=1,imgProps:j,ratingValue:g,buttonLabel:h="Add",onButtonClick:y,showDiscountBadge:w=!0,taxesConfiguration:m,sponsoredLabel:v}=e,x=function(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},n=Object.keys(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,b),{sku:P,isVariantOf:{name:S},image:[k],advertisement:D,offers:{lowPrice:_,lowPriceWithTaxes:B,offers:[{listPrice:L,availability:T,listPriceWithTaxes:Z}]}}=t,I=_objectSpread(_objectSpread({},(0,u.w)({product:t,selectedOffer:0,index:r})),{},{as:c(),passHref:!0,legacyBehavior:!1,prefetch:!1}),C=(0,s.useMemo)(()=>"https://schema.org/InStock"!==T,[T]),E=m?.usePriceWithTaxes?B:_,K=m?.usePriceWithTaxes?Z:L,R=D?{"data-van-res-id":D.adResponseId,"data-van-aid":D.adId,"data-van-prod-name":S}:{};return(0,p.jsxs)(o.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:C,bordered:i,variant:f,"data-fs-product-card-sku":P},R),x),{},{children:[p.jsx(a.Z,{aspectRatio:O,children:p.jsx(d.Z,{src:k.url,alt:k.alternateName,sizes:`${j?.sizes??"(max-width: 768px) 40vw, 30vw"}`,width:j?.width??360,height:Math.round((Number(j?.height)||360)/O),loading:j?.loading})}),p.jsx(n.Z,{title:S,price:{value:E,listPrice:K,formatter:l.P},ratingValue:g,outOfStock:C,onButtonClick:y,linkProps:I,showDiscountBadge:E<=K&&w,includeTaxes:m?.usePriceWithTaxes,includeTaxesLabel:m?.taxesLabel,sponsored:!!D,sponsoredLabel:v})]}))})}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=5284,exports.ids=[5284],exports.modules={11933:(e,t,a)=>{a.d(t,{R:()=>useSearch});var r=a(16689),s=a(50101);let useSearch=()=>{let e=(0,r.useContext)(s.c);return e?{inContext:!0,values:e}:{inContext:!1}}},42174:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-auto-complete",children:t,...a})=>{let{inContext:r,values:l}=(0,n.R)();return r&&(l.terms.length<=0||l.term.length<=0)?null:s().createElement("section",{"data-testid":e,"data-fs-search-auto-complete":!0,...a},s().createElement(c.Z,{as:"ol"},t))}},80757:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(2614),c=a(40727);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-auto-complete-term",suggestion:t,term:a,linkProps:l,icon:i=s().createElement(n.Z,{name:"MagnifyingGlass",width:18,height:18})})=>{let o=t.toLowerCase().split(a.toLowerCase());return s().createElement("li",{"data-fs-search-auto-complete-item":!0,"data-testid":e},s().createElement(c.Z,{...l,"data-fs-search-auto-complete-item-link":!0,variant:"display"},s().createElement("span",{"data-fs-search-auto-complete-item-icon":!0},i),s().createElement("p",null,o.map((e,n)=>s().createElement(r.Fragment,{key:[e,n].join()},e.length>0&&s().createElement("strong",{"data-fs-search-auto-complete-item-suggestion":!0},0===n?e.charAt(0).toUpperCase()+e.slice(1):e),n!==o.length-1&&function(e,t,a){return 0===e?t.split("").map((e,t)=>0===t&&0===a.indexOf(e.toUpperCase())?e.toUpperCase():e.toLowerCase()).join(""):t.toLowerCase()}(n,a,t))))))}},64583:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(11933);let SearchLoading=()=>{let{inContext:e,values:t}=(0,n.R)();return s().createElement(s().Fragment,null,e&&t.isLoading&&s().createElement("p",{"data-fs-search-dropdown-loading-text":!0},"Loading..."))},c=(0,r.forwardRef)(function({testId:e="fs-search-dropdown",children:t,...a},r){return s().createElement("div",{ref:r,"data-fs-search-dropdown":!0,"data-testid":e,...a},s().createElement("section",null,s().createElement(SearchLoading,null),t))}),l=c},22701:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(83339),l=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-history",title:t="History",clearLabel:a="Clear History",onClear:r,children:i,...o})=>{let{inContext:d,values:m}=(0,n.R)();return d&&(0!==m.term.length||m.isLoading)?null:s().createElement("section",{"data-testid":e,"data-fs-search-history":!0,...o},s().createElement("header",{"data-fs-search-history-header":!0},s().createElement("p",{"data-fs-search-history-title":!0},t),s().createElement(c.Z,{variant:"tertiary",onClick:r,size:"small"},a)),s().createElement(l.Z,{as:"ol"},i))}},9482:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(2614),c=a(40727);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-history-term",value:t,linkProps:a,icon:r=s().createElement(n.Z,{name:"ClockClockwise",width:18,height:18})})=>s().createElement("li",{"data-fs-search-history-item":!0,"data-testid":e},s().createElement(c.Z,{...a,"data-fs-search-history-item-link":!0,variant:"display"},s().createElement("span",{"data-fs-search-history-item-icon":!0},r),s().createElement("span",null,t)))},86035:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(40727);let c=(0,r.forwardRef)(function({testId:e="fs-search-product-item",linkProps:t,children:a},r){return s().createElement("li",{ref:r,"data-fs-search-product-item":!0,"data-testid":e},s().createElement(n.Z,{...t,"data-fs-search-product-item-link":!0,variant:"display"},a))}),l=c},73454:(e,t,a)=>{a.d(t,{Z:()=>l});var r=a(16689),s=a.n(r),n=a(69088);let c=(0,r.forwardRef)(function({price:e,title:t,...a},r){return s().createElement("section",{ref:r,"data-fs-search-product-item-content":!0,...a},s().createElement("p",{"data-fs-search-product-item-title":!0},t),0!==e.value&&s().createElement(n.Z,{"data-fs-search-product-item-prices":!0,listPrice:e.listPrice,value:e.value,formatter:e.formatter}))}),l=c},69082:(e,t,a)=>{a.d(t,{Z:()=>c});var r=a(16689),s=a.n(r);let n=(0,r.forwardRef)(function({testId:e="fs-search-product-item-image",children:t,...a},r){return s().createElement("div",{ref:r,"data-fs-search-product-item-image":!0,"data-testid":e,...a},t)}),c=n},19994:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let __WEBPACK_DEFAULT_EXPORT__=({testId:e="fs-search-products",title:t="Suggested Products",children:a,...r})=>{let{inContext:l,values:i}=(0,n.R)();return l&&i.products.length<=0?null:s().createElement("section",{"data-testid":e,"data-fs-search-products":!0,...r},s().createElement("header",{"data-fs-search-products-header":!0},s().createElement("p",{"data-fs-search-products-title":!0},t)),s().createElement(c.Z,{as:"ol"},a))}},43311:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(16689),s=a.n(r),n=a(11933),c=a(94564);let l=(0,r.forwardRef)(function({testId:e="fs-top-search",title:t="Top Search",children:a,...r},l){let{inContext:i,values:o}=(0,n.R)();return i&&(0!==o.term.length||o.isLoading)?null:s().createElement("section",{ref:l,"data-testid":e,"data-fs-search-top":!0,...r},s().createElement("header",{"data-fs-search-top-header":!0},s().createElement("p",{"data-fs-search-top-title":!0},t)),s().createElement(c.Z,{as:"ol"},a))}),i=l},21287:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(16689),s=a.n(r),n=a(40727),c=a(40276);let l=(0,r.forwardRef)(function({testId:e="fs-top-search-term",value:t,linkProps:a,index:r},l){return s().createElement("li",{ref:l,"data-fs-search-top-item":!0,"data-testid":e},s().createElement(n.Z,{...a,"data-fs-search-top-item-link":!0,variant:"display"},s().createElement(c.Z,{"data-fs-search-top-item-badge":!0,variant:"info"},r+1),t))}),i=l}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6198,exports.ids=[6198],exports.modules={71857:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({testId:e="fs-overlay",...t},a){return r().createElement("div",{ref:a,"data-fs-overlay":!0,role:"presentation","data-testid":e,...t})}),i=n},41232:(e,t,a)=>{a.d(t,{b:()=>useFadeEffect});var l=a(16689);let useFadeEffect=()=>{let[e,t]=(0,l.useState)("out"),a=(0,l.useCallback)(()=>t("out"),[]),r=(0,l.useCallback)(()=>t("in"),[]);return(0,l.useEffect)(()=>(r(),()=>{a()}),[r,a]),{fade:e,fadeIn:r,fadeOut:a}}},72955:(e,t,a)=>{a.d(t,{_:()=>useSKUMatrix});var l=a(16689),r=a(63442);function useSKUMatrix(){let e=(0,l.useContext)(r.m);if(!e)throw Error("Do not use SKUMatrix components outside the SKUMatrix context.");return e}},21640:(e,t,a)=>{a.d(t,{E:()=>useTrapFocus});var l=a(16689),r=a(21246);let useTrapFocus=({trapFocusRef:e,beforeElementRef:t,afterElementRef:a})=>{let n=(0,l.useRef)(),i=(0,l.useRef)(document.hasFocus()?document.activeElement:null);(0,l.useEffect)(()=>{let e=i.current;return()=>{e?.focus()}},[i]),(0,l.useEffect)(()=>{if(!e.current)return;n.current||(n.current=(0,r.ht)(e.current));let[t]=n.current;if(!t){e.current.focus();return}t.focus()},[e]),(0,l.useEffect)(()=>{if(!e.current||!t.current||!a.current)return;let l=t.current,i=a.current,o=e.current,handleLoopFocus=t=>{document.hasFocus()&&(n.current=(0,r.ht)(e.current),n.current.length||o.focus(),t.target===l&&n.current[n.current.length-1]?.focus(),t.target===i&&n.current[0]?.focus())};return l?.addEventListener("focusin",handleLoopFocus),i?.addEventListener("focusin",handleLoopFocus),()=>{l?.removeEventListener("focusin",handleLoopFocus),i?.removeEventListener("focusin",handleLoopFocus)}},[n,a,t,e])}},6476:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(83339);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-buy-button",icon:t,children:a,...l}){return r().createElement(n.Z,{"data-fs-buy-button":!0,icon:t,iconPosition:"left","data-testid":e,...l},a)}},68373:(e,t,a)=>{a.d(t,{Z:()=>Modal_Modal});var l=a(16689),r=a.n(l),n=a(66405),i=a(71857),o=a(16652),s=a(41232),c=a(21640);let ModalContentPure=({beforeElementRef:e,trapFocusRef:t,afterElementRef:a,testId:l="store-modal-content",children:n,...i})=>r().createElement(r().Fragment,null,r().createElement("div",{ref:e,"data-testid":"beforeElement",tabIndex:0,"aria-hidden":"true"}),r().createElement("div",{"data-fs-modal-content":!0,"data-testid":l,ref:t,"aria-modal":"true",role:"dialog",tabIndex:-1,...i},n),r().createElement("div",{ref:a,"data-testid":"afterElement",tabIndex:0,"aria-hidden":"true"})),Modal_ModalContent=({children:e,...t})=>{let a=(0,l.useRef)(null),n=(0,l.useRef)(null),i=(0,l.useRef)(null);return(0,c.E)({beforeElementRef:n,trapFocusRef:a,afterElementRef:i}),r().createElement(ModalContentPure,{...t,trapFocusRef:a,beforeElementRef:n,afterElementRef:i,onClick:e=>{e.stopPropagation()}},e)},Modal_Modal=({children:e,testId:t="fs-modal",isOpen:a=!0,onDismiss:l,overlayProps:c,...u})=>{let{closeModal:d}=(0,o.l)(),{fade:m,fadeOut:f,fadeIn:E}=(0,s.b)();return a?(0,n.createPortal)(r().createElement(i.Z,{onClick:e=>{e.defaultPrevented||(e.stopPropagation(),f?.(),l?.())},onKeyDown:e=>{"Escape"!==e.key||e.defaultPrevented||(e.stopPropagation(),f?.(),l?.())},...c},r().createElement(Modal_ModalContent,{onTransitionEnd:()=>"out"===m&&d(),"data-fs-modal":!0,"data-fs-modal-state":m,testId:t,...u},"function"==typeof e?e({fade:m,fadeOut:f,fadeIn:E}):e)),document.body):null}},8212:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(13024);let i=(0,l.forwardRef)(function({title:e,label:t,refTag:a="Ref.: ",refNumber:l,testId:i="fs-product-title",ratingValue:o,...s},c){return r().createElement("header",{ref:c,"data-fs-product-title":!0,"data-testid":i,...s},r().createElement("div",{"data-fs-product-title-header":!0},e,!!t&&t),(l||o)&&r().createElement("div",{"data-fs-product-title-addendum":!0},o&&r().createElement(n.Z,{value:o}),l&&r().createElement(r().Fragment,null,a," ",l)))}),o=i},6693:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(37041),i=a(2614),o=a(42256);let __WEBPACK_DEFAULT_EXPORT__=({max:e,min:t=1,unitMultiplier:a=1,useUnitMultiplier:s,initial:c,disabled:u=!1,onChange:d,onValidateBlur:m,testId:f="fs-quantity-selector",...E})=>{let[g,h]=(0,l.useState)(c??t),[p,_]=(0,l.useState)(g*a),roundUpQuantityIfNeeded=e=>s?Math.ceil(e/a)*a:e,v=g===t,b=g===e,changeQuantity=e=>{let t=validateQuantityBounds(g+e);d?.(t),h(t),_(t*a)};function validateQuantityBounds(l){let r=t?Math.max(l,t):l;return e?Math.min(r,s?e*a:e):r}return(0,l.useEffect)(()=>{c&&h(c)},[c]),r().createElement("div",{"data-fs-quantity-selector":u?"disabled":"true","data-testid":f,...E},r().createElement(n.Z,{"data-quantity-selector-button":"left",icon:r().createElement(i.Z,{name:"Minus",width:16,height:16,weight:"bold"}),"aria-label":"Decrement Quantity","aria-controls":"quantity-selector-input",disabled:v||u,onClick:()=>changeQuantity(-1),testId:`${f}-left-button`,size:"small"}),r().createElement(o.Z,{"data-quantity-selector-input":!0,id:"quantity-selector-input","aria-label":"Quantity",value:s?p:g,onChange:e=>{let t=e.target.value.replace(/\D/g,"");h(Number(t))},onBlur:function(){let l=validateQuantityBounds(g),r=roundUpQuantityIfNeeded(l),n=e??(t?Math.max(g,t):g),i=g>n||g<t;i&&m?.(t,n,r),h(()=>(_(r),d?.(r/a),r/a))},onInput:e=>{let t=e.currentTarget;t.value=t.value.replace(/\D/g,"")},disabled:u}),r().createElement(n.Z,{"data-quantity-selector-button":"right","aria-controls":"quantity-selector-input","aria-label":"Increment Quantity",disabled:b||u,icon:r().createElement(i.Z,{name:"Plus",width:16,height:16,weight:"bold"}),onClick:()=>changeQuantity(1),testId:`${f}-right-button`,size:"small"}))}},5136:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(16689),r=a.n(l),n=a(31953),i=a(40727),o=a(55450);let getImageName=e=>{let t=new URL(e).pathname,a=t.split("/").slice(-1)[0];return a},useDefineVariant=(e,t)=>(0,l.useMemo)(()=>{if(t)return t;let a=e.every(e=>e.hexColor);if(a)return"color";let l=e[0]?.src&&getImageName(e[0].src);if(l&&1===e.length)return"image";let r=e.every(e=>{if(!e.src)return!0;let t=getImageName(e.src);return t===l});return r?"label":"image"},[e,t]),useSkuSlug=(e,t,a,r)=>{let n=(0,l.useCallback)(l=>{if(r)return{getItemHrefProp:r};let n=`/${function(e,t,a){let l=Object.entries(t).flat().join("-");if(l in e)return e[l];let r=Object.keys(e),n=`${a}-${t[a]}`,i=r.filter(e=>e.includes(n)),o=i.length>1?function(e,t){let[a,l]=t.split("-");return e.find(e=>{let t=function(e){let t={},a=e.split("-");for(let e=0;e<a.length;e+=2){let l=a[e].trim(),r=a[e+1]?a[e+1].trim():"";t[l]=r}return t}(e);return t[a]===l})}(i,n):i[0];return e[o??r[0]]}(t,{...e,[a]:l.value},a)}/p`;return n},[e,r,t,a]);return{getItemHref:n}},ImageComponentFallback=({src:e,alt:t,...a})=>r().createElement("img",{src:e,alt:t,...a}),s=(0,l.forwardRef)(function({availableVariations:e,skuPropertyName:t,testId:a,activeVariations:l,linkProps:s,slugsMap:c,getItemHref:u,ImageComponent:d=ImageComponentFallback,variant:m,...f},E){let g=l[t],h=e[t],p=useDefineVariant(h,m),{getItemHref:_}=useSkuSlug(l,c,t,u);return r().createElement("div",{ref:E,"data-fs-sku-selector":!0,"data-testid":a,"data-fs-sku-selector-variant":p,...f},t&&r().createElement(n.Z,{"data-fs-sku-selector-title":!0},t,": ",r().createElement("strong",null,g)),r().createElement("ul",{"data-fs-sku-selector-list":!0},h.map((e,a)=>r().createElement("li",{key:String(a),title:e.label,"data-fs-sku-selector-option":!0,"data-fs-sku-selector-disabled":e.disabled,"data-fs-sku-selector-checked":e.value===l[t]},r().createElement(i.Z,{"data-fs-sku-selector-option-link":!0,href:_(e),...s},r().createElement(o.Z,{text:e.label})),"label"===p&&r().createElement("span",null,e.value),"image"===p&&d&&r().createElement("span",null,r().createElement(d,{src:e.src??"",alt:e.alt??"","data-fs-sku-selector-option-image":!0})),"color"===p&&r().createElement("span",null,r().createElement("div",{"data-fs-sku-selector-option-color":!0,title:e.value,style:{"--data-fs-sku-selector-option-color-bkg-color":e.hexColor}}))))))}),c=s},97336:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,variant:t="colored",testId:a="fs-table",...l},n){return r().createElement("div",{"data-fs-table":!0},r().createElement("table",{ref:n,"data-fs-table-content":!0,"data-fs-table-variant":t,"data-testid":a,...l},e))}),i=n},9336:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-body",...a},l){return r().createElement("tbody",{ref:l,"data-testid":t,"data-fs-table-body":!0,...a},e)}),i=n},84256:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({scope:e,align:t,children:a,variant:l="data",testId:n="fs-table-cell",...i},o){return r().createElement("header"===l?"th":"td",{ref:o,"data-fs-table-cell":l,"data-fs-table-cell-align":t,"data-testid":n,scope:e,...i},a)}),i=n},60411:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-head",...a},l){return r().createElement("thead",{ref:l,"data-testid":t,"data-fs-table-head":!0,...a},e)}),i=n},44236:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(16689),r=a.n(l);let n=(0,l.forwardRef)(function({children:e,testId:t="fs-table-row",...a},l){return r().createElement("tr",{ref:l,"data-fs-table-row":!0,"data-testid":t,...a},e)}),i=n},165:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(68778);let i=(0,l.forwardRef)(function({images:e,children:t,ImageComponent:a,selectedImageIdx:l,setSelectedImageIdx:i,testId:o="fs-image-gallery",...s},c){let u=e.length>1;return r().createElement("section",{ref:c,"data-fs-image-gallery":u?"with-selector":"without-selector","data-testid":o,...s},t,u&&r().createElement(n.Z,{images:e,onSelect:i,currentImageIdx:l,ImageComponent:a}))}),o=i},68778:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(19785),i=a(37041),o=a(2614),s=a(83339);let moveScroll=(e,t)=>{e&&(e.scrollHeight>e.clientHeight?(e.style.overflow="auto",window.requestAnimationFrame(()=>e.scrollTo({top:t,behavior:"smooth"})),setTimeout(()=>e.style.overflow="hidden",2e3)):e.scrollLeft+=t)},hasScroll=e=>!!e&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth),__WEBPACK_DEFAULT_EXPORT__=function({images:e,onSelect:t,ImageComponent:a,currentImageIdx:c,testId:u="fs-image-gallery-selector","aria-label":d="Product Images",navigationButtonLeftAriaLabel:m="Backward slide image selector",navigationButtonRightAriaLabel:f="Forward slide image selector"}){let E=(0,l.useRef)(null),g=hasScroll(E.current),[h,p]=(0,l.useState)(!0),[_,v]=(0,l.useState)(!0),b=(0,l.useCallback)((t,a)=>{0===t&&p(a),t===e.length-1&&v(a)},[e.length]);return r().createElement("section",{"data-fs-image-gallery-selector":!0,"data-testid":u,"aria-label":d},g&&!h&&r().createElement("div",{"data-fs-image-gallery-selector-control":!0},r().createElement(i.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":m,icon:r().createElement(o.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(E.current,-400)})),r().createElement("div",{"data-fs-image-gallery-selector-elements":!0,ref:E},e.map((l,i)=>r().createElement(n.InView,{key:i,onChange:e=>b(i,e)},r().createElement(s.Z,{key:i,"aria-label":`${l.alternateName} - Image ${i+1} of ${e.length}`,onClick:()=>t(i),"data-fs-image-gallery-selector-thumbnail":i===c?"selected":"true"},r().createElement(a,{url:l.url??"",loading:0===i?"eager":"lazy",alternateName:l.alternateName??""}))))),g&&!_&&r().createElement("div",{"data-fs-image-gallery-selector-control":!0},r().createElement(i.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":f,icon:r().createElement(o.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(E.current,400)})))}},11431:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l);let __WEBPACK_DEFAULT_EXPORT__=({children:e})=>r().createElement(r().Fragment,null,e)},47866:(e,t,a)=>{a.d(t,{Z:()=>o});var l=a(16689),r=a.n(l),n=a(63442);let i=(0,l.forwardRef)(function({testId:e="fs-sku-matrix",children:t,...a},l){return r().createElement("div",{ref:l,"data-fs-sku-matrix":!0,"data-testid":e,...a},r().createElement(n.Z,null,t))}),o=i},10831:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(10792),i=a(40276),o=a(6693),s=a(83339),c=a(2614),u=a(99767),d=a(72955),m=a(16652),f=a(41232),E=a(97336),g=a(60411),h=a(44236),p=a(84256),_=a(9336),v=a(77215),b=a(45049);let ImageComponentFallback=({src:e,alt:t,...a})=>r().createElement("img",{src:e,alt:t,...a}),__WEBPACK_DEFAULT_EXPORT__=function({title:e,direction:t="rightSide",size:a="partial",children:y,columns:Z,loading:C,formatter:k,ImageComponent:P=ImageComponentFallback,buyProps:{onClick:A,...T},overlayProps:F,...w}){let{isOpen:R,setIsOpen:S,setAllVariantProducts:L,allVariantProducts:x,onChangeQuantityItem:I}=(0,d._)(),{pushToast:O}=(0,m.l)(),{fade:D}=(0,f.b)(),B=(0,l.useMemo)(()=>x.reduce((e,t)=>({amount:e.amount+t.selectedCount,subtotal:e.subtotal+t.selectedCount*t.price}),{amount:0,subtotal:0}),[x]);function onClose(){L(e=>e.map(e=>({...e,quantity:0}))),S(!1)}let U=Object.keys(Z).filter(e=>"additionalColumns"!==e).length+(Z.additionalColumns?.length??0);return r().createElement(v.Z,{"data-fs-sku-matrix-sidebar":!0,size:a,direction:t,overlayProps:F,isOpen:R,fade:D,...w},r().createElement(b.Z,{onClose:onClose},r().createElement("h2",{"data-fs-sku-matrix-sidebar-title":!0},e)),y,r().createElement(E.Z,{variant:"bordered"},r().createElement(g.Z,null,r().createElement(h.Z,null,r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.name),Z.additionalColumns?.map(({label:e,value:t})=>r().createElement(p.Z,{key:t,align:"left",variant:"header",scope:"col"},e)),r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.availability.label),r().createElement(p.Z,{align:"right",variant:"header",scope:"col"},Z.price),r().createElement(p.Z,{align:"left",variant:"header",scope:"col"},Z.quantitySelector))),r().createElement(_.Z,null,C?r().createElement(r().Fragment,null,Array.from({length:5}).map((e,t)=>r().createElement(h.Z,{key:`table-row-${t}`},Array.from({length:U}).map((e,t)=>r().createElement(p.Z,{key:`table-cell-${t}`},r().createElement("span",null,r().createElement(n.Z,{key:t,size:{width:"100%",height:"30px"}}))))))):r().createElement(r().Fragment,null,x.map(e=>r().createElement(h.Z,{key:`${e.name}-${e.id}`},r().createElement(p.Z,{"data-fs-sku-matrix-sidebar-cell-image":!0,align:"left"},r().createElement(P,{src:e.image.url,alt:e.image.alternateName}),e.name),Z.additionalColumns?.map(({value:t})=>r().createElement(p.Z,{key:`${e.name}-${e.id}-${t}`,align:"left"},e.specifications[t.toLowerCase()])),r().createElement(p.Z,{align:"left"},"showAvailability"===Z.availability.stockDisplaySettings&&r().createElement(i.Z,{variant:"outOfStock"===e.availability?"warning":"success"},"outOfStock"===e.availability?"Out of stock":"Available"),"showStockQuantity"===Z.availability.stockDisplaySettings&&e.inventory),r().createElement(p.Z,{align:"right"},r().createElement("div",{"data-fs-sku-matrix-sidebar-table-price":!0},r().createElement(u.Z,{value:e.price,variant:"spot",formatter:k}))),r().createElement(p.Z,{align:"right","data-fs-sku-matrix-sidebar-table-cell-quantity-selector":!0},r().createElement("div",{"data-fs-sku-matrix-sidebar-table-action":!0},r().createElement(o.Z,{min:0,max:e.inventory,disabled:!e.inventory||"outOfStock"===e.availability,initial:e.selectedCount,onChange:t=>I(e.id,t),onValidateBlur:(e,t,a)=>{O({title:"Invalid quantity!",message:`The quantity you entered is outside the range of ${e} to ${t}. The quantity was set to ${a}.`,status:"INFO",icon:r().createElement(c.Z,{name:"CircleWavyWarning",width:30,height:30})})}})))))))),r().createElement("footer",{"data-fs-sku-matrix-sidebar-footer":!0},r().createElement("div",null,r().createElement("p",null,B.amount," ",1!==B.amount?"Items":"Item"),r().createElement(u.Z,{value:B.subtotal,variant:"spot",formatter:k})),r().createElement(s.Z,{variant:"primary",disabled:!B.amount,onClick:function(e){A(e),onClose()},...T},"Add to Cart")))}},27859:(e,t,a)=>{a.d(t,{Z:()=>s});var l=a(16689),r=a.n(l),n=a(83339),i=a(72955);let o=(0,l.forwardRef)(function({children:e,variant:t="secondary",onClick:a,...l},o){let{setIsOpen:s}=(0,i._)();return r().createElement(n.Z,{ref:o,variant:t,onClick:e=>{s(!0),a?.(e)},...l},e)}),s=o},63442:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__,m:()=>n});var l=a(16689),r=a.n(l);let n=(0,l.createContext)(null),__WEBPACK_DEFAULT_EXPORT__=function({children:e}){let[t,a]=(0,l.useState)(!1),[i,o]=(0,l.useState)([]),s=(0,l.useCallback)((e,t)=>{let a=[...i],l=a.find(t=>t.id===e);return l&&(l.selectedCount=t),o(a),a},[i]);return r().createElement(n.Provider,{value:{isOpen:t,allVariantProducts:i,setAllVariantProducts:o,onChangeQuantityItem:s,setIsOpen:a}},e)}},98878:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(93779),i=a(40727),o=a(2614),s=a(97336),c=a(9336),u=a(44236),d=a(84256),m=a(99767);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-shipping-simulation",formatter:t,title:a="Shipping",inputLabel:l="Postal Code",optionsLabel:f="Shipping options",idkPostalCodeLinkProps:E,onInput:g,onSubmit:h,onClear:p,location:_,options:v=[],displayClearButton:b=!1,errorMessage:y,postalCode:Z,...C}){let k=!!v&&v.length>0;return r().createElement("section",{"data-fs-shipping-simulation":!0,"data-fs-shipping-simulation-empty":k?"false":"true","data-testid":e,...C},r().createElement("h2",{"data-fs-shipping-simulation-title":!0},a),r().createElement(n.Z,{actionable:!0,error:y,id:`${e}-input-field`,label:l,value:Z,onInput:e=>g?.(e),onSubmit:()=>h?.(),onClear:()=>p?.(),displayClearButton:b}),r().createElement(i.Z,{href:"/","data-fs-shipping-simulation-link":!0,size:"small",...E},E?.children??r().createElement(r().Fragment,null,"I don't know my Postal Code",r().createElement(o.Z,{name:"ArrowSquareOut",width:20,height:20}))),k&&r().createElement(r().Fragment,null,r().createElement("header",{"data-fs-shipping-simulation-header":!0},r().createElement("h3",{"data-fs-shipping-simulation-subtitle":!0},f),r().createElement("p",{"data-fs-shipping-simulation-location":!0},_)),r().createElement(s.Z,null,r().createElement(c.Z,null,v.map(e=>r().createElement(u.Z,{key:e.carrier},r().createElement(d.Z,{align:"left"},e.carrier),r().createElement(d.Z,null,e.localizedEstimates),r().createElement(d.Z,{align:"right"},e.price&&r().createElement(m.Z,{formatter:t,value:e.price,SRText:"price"}))))))))}},77215:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(68373);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-slide-over",isOpen:t,direction:a="leftSide",size:l="full",fade:i="out",children:o,overlayProps:s,onDismiss:c,...u}){return r().createElement(n.Z,{"data-fs-modal":null,"data-fs-slide-over":!0,"data-fs-slide-over-direction":a,"data-fs-slide-over-size":l,"data-fs-slide-over-state":i,isOpen:t,onDismiss:c,testId:e,overlayProps:s,...u},o)}},45049:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var l=a(16689),r=a.n(l),n=a(37041),i=a(2614);let __WEBPACK_DEFAULT_EXPORT__=({children:e,closeBtnProps:t={},onClose:a,...l})=>r().createElement("header",{"data-fs-slide-over-header":!0,...l},e,r().createElement(n.Z,{"data-fs-slide-over-header-icon":!0,"aria-label":"Close",icon:r().createElement(i.Z,{name:"X"}),onClick:a,...t}))}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=804,exports.ids=[804],exports.modules={58025:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{P:()=>sendAutocompleteClickEvent,Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(64583),l=r(42174),i=r(80757),a=r(19994),s=r(18735),u=r(17894),p=r(31210),O=r(21284),b=r(20997),f=e([u,p]);[u,p]=f.then?(await f)():f;let y=["sort"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function sendAutocompleteClickEvent({url:e,term:t,position:n,productId:o}){Promise.all([r.e(2880),r.e(1153)]).then(r.bind(r,81153)).then(({sendAnalyticsEvent:r})=>{r({name:"intelligent_search_autocomplete_click",params:{term:t,url:e,productId:o,position:n}})})}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{sort:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,y),{values:{onSearchSelection:n,products:f,term:j,terms:_}}=(0,o.R)();return(0,b.jsxs)(c.Z,_objectSpread(_objectSpread({},r),{},{children:[b.jsx(s.Z,{sort:t}),b.jsx(u.Z,{sort:t}),b.jsx(l.Z,{children:_?.map(({value:e})=>b.jsx(i.Z,{term:j,suggestion:e,linkProps:{href:O.u({term:e,sort:t}),onClick:()=>{n?.(e,O.u({term:e,sort:t})),sendAutocompleteClickEvent({term:e,url:window.location.href})}}},e))}),b.jsx(a.Z,{children:f.map((e,t)=>b.jsx(p.Z,{product:e,index:t},e.id))})]}))};n()}catch(e){n(e)}})},92192:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{default:()=>o.Z,sendAutocompleteClickEvent:()=>o.P});var o=r(58025),c=e([o]);o=(c.then?(await c)():c)[0],n()}catch(e){n(e)}})},18735:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(11933),o=r(22701),c=r(9482),l=r(88118),i=r(20997);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=e=>{let t=Object.assign({},e),{values:{onSearchSelection:r}}=(0,n.R)(),{searchHistory:a,clearSearchHistory:s}=(0,l.Z)();return a.length?i.jsx(o.Z,_objectSpread(_objectSpread({title:"History",onClear:s},t),{},{children:a.map(e=>i.jsx(c.Z,{value:e.term,linkProps:{href:e.path,onClick:()=>r?.(e.term,e.path)}},e.term))})):null}},31210:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(86035),l=r(69082),i=r(73454),a=r(76659),s=r(56087),u=r(5436),p=r(58025),O=r(20997),b=e([p]);p=(b.then?(await b)():b)[0];let f=["product","index"],y=["href","onClick"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{product:t,index:r}=e,n=_objectWithoutProperties(e,f),{values:{onSearchSelection:b}}=(0,o.R)(),j=(0,u.w)({product:t,selectedOffer:0,index:r}),{href:_,onClick:P}=j,d=_objectWithoutProperties(j,y),{isVariantOf:{name:h},image:[v],offers:{lowPrice:w,offers:[{listPrice:m}]}}=t,g=_objectSpread({href:_,onClick:()=>{P(),b?.(h,_),(0,p.P)({url:_,term:h,position:r,productId:t.isVariantOf.productGroupID??t.sku})}},d);return(0,O.jsxs)(c.Z,_objectSpread(_objectSpread({linkProps:g},n),{},{children:[O.jsx(l.Z,{children:O.jsx(a.Z,{src:v.url,alt:v.alternateName,width:56,height:56})}),O.jsx(i.Z,{title:h,price:{value:w,listPrice:m,formatter:s.P}})]}))};n()}catch(e){n(e)}})},17894:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(11933),c=r(43311),l=r(21287),i=r(21284),a=r(65154),s=r(20997),u=e([a]);a=(u.then?(await u)():u)[0];let p=["topTerms","sort"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{topTerms:t=[],sort:r}=e,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,p),{values:{onSearchSelection:u}}=(0,o.R)(),{data:O}=(0,a.Z)(),b=(O?.search.suggestions.terms??t).slice(0,5);return 0===b.length?null:s.jsx(c.Z,_objectSpread(_objectSpread({title:"Top Search"},n),{},{children:b.map((e,t)=>s.jsx(l.Z,{value:e.value,index:t,linkProps:{href:(0,i.u)({term:e.value,sort:r}),onClick:()=>u?.(e.value,i.u({term:e.value,sort:r}))}},t))}))};n()}catch(e){n(e)}})},65154:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(21921),c=r(98385),l=r(84355),i=e([c]);c=(i.then?(await i)():i)[0];let a=o.M,__WEBPACK_DEFAULT_EXPORT__=function(){let{channel:e,locale:t}=(0,l.kP)(),{data:r,error:n}=(0,c.aM)(a,{term:"",selectedFacets:[{key:"channel",value:e??""},{key:"locale",value:t}]});return{data:r,error:n}};n()}catch(e){n(e)}})},55450:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(16689),o=r.n(n);let __WEBPACK_DEFAULT_EXPORT__=function({text:e,as:t}){let r=t??"span";return o().createElement(r,{"data-fs-sr-only":!0},e)}}};