@faststore/core 3.77.1 → 3.77.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +27 -27
  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/2778.js +1 -1
  13. package/.next/server/chunks/3918.js +1 -1
  14. package/.next/server/chunks/9630.js +1 -1
  15. package/.next/server/functions-config-manifest.json +1 -1
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/en-US/404.html +1 -1
  18. package/.next/server/pages/en-US/500.html +1 -1
  19. package/.next/server/pages/en-US/checkout.html +1 -1
  20. package/.next/server/pages/en-US/login.html +1 -1
  21. package/.next/server/pages/en-US/s.html +1 -1
  22. package/.next/server/pages/en-US.html +1 -1
  23. package/.next/server/pages/s.js +1 -1
  24. package/.next/server/pages-manifest.json +1 -1
  25. package/.next/static/chunks/{7191-a72fe20ee3eb28ec.js → 7191-7badbb9888b79ce9.js} +1 -1
  26. package/.next/static/chunks/pages/{_app-36fb57bc394108e6.js → _app-df4ba03d82beaf86.js} +1 -1
  27. package/.next/static/chunks/pages/s-989fccebe1b60a4e.js +1 -0
  28. package/.next/static/chunks/{webpack-b6bad1900f53d6e6.js → webpack-c996443db6f4fa91.js} +1 -1
  29. package/.next/static/css/4bd5e2314f697713.css +1 -0
  30. package/.next/static/{iXvT-zPQB_d_X-quEoUcr → xFgIjKNUaH5r_Yo0uIAnc}/_buildManifest.js +1 -1
  31. package/.next/trace +135 -135
  32. package/.turbo/turbo-build.log +11 -11
  33. package/.turbo/turbo-test.log +5 -6
  34. package/CHANGELOG.md +10 -0
  35. package/package.json +3 -3
  36. package/src/components/templates/SearchPage/SearchPage.tsx +3 -1
  37. package/src/components/templates/SearchPage/SearchWrapper.tsx +1 -1
  38. package/src/pages/s.tsx +8 -5
  39. package/src/sdk/product/usePageProductsQuery.ts +80 -64
  40. package/.next/static/chunks/pages/s-3197dfed5c06ad7b.js +0 -1
  41. package/.next/static/css/9bdd3be2a41064c6.css +0 -1
  42. /package/.next/static/{iXvT-zPQB_d_X-quEoUcr → xFgIjKNUaH5r_Yo0uIAnc}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.76.0 prebuild /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.77.2 prebuild /home/runner/work/faststore/faststore/packages/core
3
3
  > na run partytown && na run generate
4
4
 
5
5
 
6
- > @faststore/core@3.76.0 partytown /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@3.77.2 partytown /home/runner/work/faststore/faststore/packages/core
7
7
  > partytown copylib ./public/~partytown
8
8
 
9
9
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
10
10
 
11
- > @faststore/core@3.76.0 generate /home/runner/work/faststore/faststore/packages/core
11
+ > @faststore/core@3.77.2 generate /home/runner/work/faststore/faststore/packages/core
12
12
  > na run generate:schema && na run generate:codegen && na run format:generated
13
13
 
14
14
 
15
- > @faststore/core@3.76.0 generate:schema /home/runner/work/faststore/faststore/packages/core
15
+ > @faststore/core@3.77.2 generate:schema /home/runner/work/faststore/faststore/packages/core
16
16
  > tsx src/server/generator/generateGraphQLSchemaFile.ts
17
17
 
18
18
  Schema GraphQL file generated successfully
19
19
 
20
- > @faststore/core@3.76.0 generate:codegen /home/runner/work/faststore/faststore/packages/core
20
+ > @faststore/core@3.77.2 generate:codegen /home/runner/work/faststore/faststore/packages/core
21
21
  > graphql-codegen
22
22
 
23
23
  [STARTED] Parse Configuration
@@ -37,11 +37,11 @@ Running lifecycle hook "afterStart" scripts...
37
37
  [CLI] Loading Documents
38
38
  [CLI] Generating output
39
39
 
40
- > @faststore/core@3.76.0 format:generated /home/runner/work/faststore/faststore/packages/core
40
+ > @faststore/core@3.77.2 format:generated /home/runner/work/faststore/faststore/packages/core
41
41
  > prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
42
42
 
43
43
 
44
- > @faststore/core@3.76.0 build /home/runner/work/faststore/faststore/packages/core
44
+ > @faststore/core@3.77.2 build /home/runner/work/faststore/faststore/packages/core
45
45
  > next build
46
46
 
47
47
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
@@ -58,7 +58,7 @@ Browserslist: caniuse-lite is outdated. Please run:
58
58
  Creating an optimized production build ...
59
59
  Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc.js" https://nextjs.org/docs/messages/swc-disabled
60
60
  Using external babel configuration from /home/runner/work/faststore/faststore/packages/core/.babelrc.js
61
- Browserslist: browsers data (caniuse-lite) is 7 months old. Please run:
61
+ Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
62
62
  npx update-browserslist-db@latest
63
63
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
64
64
  ✓ Compiled successfully
@@ -105,12 +105,12 @@ Route (pages) Size First Load JS
105
105
  ├ λ /api/preview 0 B 106 kB
106
106
  ├ ● /checkout 737 B 137 kB
107
107
  ├ ● /login 1.68 kB 138 kB
108
- └ ● /s 3.28 kB 149 kB
108
+ └ ● /s 3.35 kB 149 kB
109
109
  + First Load JS shared by all 109 kB
110
110
  ├ chunks/framework-807b0f81cbc129f0.js 45.4 kB
111
111
  ├ chunks/main-f658704b53a96ab1.js 33.1 kB
112
- ├ chunks/pages/_app-36fb57bc394108e6.js 23.6 kB
113
- ├ chunks/webpack-b6bad1900f53d6e6.js 3.81 kB
112
+ ├ chunks/pages/_app-df4ba03d82beaf86.js 23.6 kB
113
+ ├ chunks/webpack-c996443db6f4fa91.js 3.81 kB
114
114
  └ css/0a57ee6c7a57788c.css 3.49 kB
115
115
 
116
116
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -1,15 +1,14 @@
1
1
 
2
- > @faststore/core@3.76.0 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.77.2 test /home/runner/work/faststore/faststore/packages/core
3
3
  > jest
4
4
 
5
- PASS test/server/cms/global.test.ts (26.87 s)
6
- PASS test/utils/multipleTemplates.test.ts (26.954 s)
5
+ PASS test/utils/multipleTemplates.test.ts (25.887 s)
6
+ PASS test/server/cms/global.test.ts (26.054 s)
7
7
  PASS test/server/cms/index.test.ts
8
- PASS test/server/index.test.ts (31.076 s)
9
- A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.
8
+ PASS test/server/index.test.ts (30.05 s)
10
9
 
11
10
  Test Suites: 4 passed, 4 total
12
11
  Tests: 22 passed, 22 total
13
12
  Snapshots: 0 total
14
- Time: 32.61 s
13
+ Time: 31.377 s
15
14
  Ran all test suites.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
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.77.3](https://github.com/vtex/faststore/compare/v3.77.2...v3.77.3) (2025-09-01)
7
+
8
+ ### Bug Fixes
9
+
10
+ - Update search page when changing terms ([#2992](https://github.com/vtex/faststore/issues/2992)) ([90be90f](https://github.com/vtex/faststore/commit/90be90ff8aa29127dbe89d4a9b8512f6d1427f38)), closes [dp-faststore-org/vendemo-dp#74](https://github.com/dp-faststore-org/vendemo-dp/issues/74) [vtex-sites/faststoreqa.store#857](https://github.com/vtex-sites/faststoreqa.store/issues/857)
11
+
12
+ ## [3.77.2](https://github.com/vtex/faststore/compare/v3.77.1...v3.77.2) (2025-08-21)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
6
16
  ## [3.77.1](https://github.com/vtex/faststore/compare/v3.77.0...v3.77.1) (2025-08-20)
7
17
 
8
18
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.77.1",
3
+ "version": "3.77.3",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -47,7 +47,7 @@
47
47
  "@faststore/api": "^3.73.0",
48
48
  "@faststore/graphql-utils": "^3.56.1",
49
49
  "@faststore/lighthouse": "^3.56.1",
50
- "@faststore/sdk": "^3.72.0",
50
+ "@faststore/sdk": "^3.77.2",
51
51
  "@faststore/ui": "^3.70.2",
52
52
  "@graphql-codegen/cli": "5.0.2",
53
53
  "@graphql-codegen/client-preset": "4.2.6",
@@ -108,5 +108,5 @@
108
108
  "ts-jest": "29.1.1",
109
109
  "typescript": "5.3.2"
110
110
  },
111
- "gitHead": "e711a9315d715e7a1a28b599f9a733e7327ab21a"
111
+ "gitHead": "87d2a27bd3afc8327bda2d611ac08d64b00fc607"
112
112
  }
@@ -24,7 +24,9 @@ function SearchPage({
24
24
  globalSections,
25
25
  globalSettings,
26
26
  }: SearchPageProps) {
27
- const { pages, useGalleryPage } = useCreateUseGalleryPage()
27
+ const { pages, useGalleryPage } = useCreateUseGalleryPage({
28
+ searchTerm: serverData?.searchTerm,
29
+ })
28
30
 
29
31
  const context = {
30
32
  data: {
@@ -34,7 +34,7 @@ export default function SearchWrapper({
34
34
  } = useSearch()
35
35
 
36
36
  const { data: pageProductGalleryData } = useProductGalleryQuery({
37
- term,
37
+ term: serverData?.searchTerm ?? term ?? '',
38
38
  sort,
39
39
  itemsPerPage,
40
40
  selectedFacets,
package/src/pages/s.tsx CHANGED
@@ -98,8 +98,9 @@ function generateSEOData(storeConfig: StoreConfig, searchTerm?: string) {
98
98
  function Page({
99
99
  page: searchContentType,
100
100
  globalSections: globalSectionsProp,
101
- searchTerm,
101
+ searchTerm: serverSearchTerm,
102
102
  }: SearchPageProps) {
103
+ const router = useRouter()
103
104
  const { sections: globalSections, settings: globalSettings } =
104
105
  globalSectionsProp ?? {}
105
106
  const { settings } = searchContentType
@@ -109,6 +110,11 @@ function Page({
109
110
  })
110
111
 
111
112
  const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
113
+ const searchTerm =
114
+ serverSearchTerm ??
115
+ (router.query?.q as string) ??
116
+ searchParams.term ??
117
+ undefined
112
118
 
113
119
  if (!searchParams) {
114
120
  return null
@@ -144,10 +150,7 @@ function Page({
144
150
  <SearchWrapper
145
151
  itemsPerPage={itemsPerPage}
146
152
  searchContentType={searchContentType}
147
- serverData={{
148
- title: seoData.title,
149
- searchTerm: searchTerm ?? searchParams.term ?? undefined,
150
- }}
153
+ serverData={{ title: seoData.title, searchTerm }}
151
154
  globalSections={globalSections}
152
155
  globalSettings={globalSettings}
153
156
  />
@@ -18,6 +18,7 @@ import { useQuery } from 'src/sdk/graphql/useQuery'
18
18
  import { generatedBuildTime } from '../../../next-seo.config'
19
19
  import { useLocalizedVariables } from './useLocalizedVariables'
20
20
  import { useShouldFetchFirstPage } from './useShouldFetchFirstPage'
21
+ import { useSession } from 'src/sdk/session'
21
22
 
22
23
  export const UseGalleryPageContext = createContext<
23
24
  ReturnType<typeof useCreateUseGalleryPage>['useGalleryPage']
@@ -68,8 +69,9 @@ export const query = gql(`
68
69
  const getKey = (object: any) => JSON.stringify(object)
69
70
 
70
71
  interface UseCreateUseGalleryPageProps {
71
- initialPages: ClientManyProductsQueryQuery
72
- serverManyProductsVariables: ClientManyProductsQueryQueryVariables
72
+ initialPages?: ClientManyProductsQueryQuery
73
+ serverManyProductsVariables?: ClientManyProductsQueryQueryVariables
74
+ searchTerm?: string
73
75
  }
74
76
 
75
77
  /**
@@ -78,6 +80,7 @@ interface UseCreateUseGalleryPageProps {
78
80
  export const useCreateUseGalleryPage = (
79
81
  params?: UseCreateUseGalleryPageProps
80
82
  ) => {
83
+ const { postalCode: sessionPostalCode } = useSession()
81
84
  const initialPages = params?.initialPages?.search ? [params.initialPages] : []
82
85
  const initialVariables = params?.serverManyProductsVariables
83
86
  ? [getKey(params.serverManyProductsVariables)]
@@ -88,73 +91,86 @@ export const useCreateUseGalleryPage = (
88
91
  // We create pagesRef as a mirror of the pages state so we don't have to add pages as a dependency of the useGalleryPage hook
89
92
  const pagesRef = useRef<ClientManyProductsQueryQuery[]>(initialPages)
90
93
  const pagesCache = useRef<string[]>(initialVariables)
94
+ const postalCodeRef = useRef<string>(sessionPostalCode)
95
+
96
+ const useGalleryPage = useCallback(
97
+ function useGalleryPage(page: number) {
98
+ const {
99
+ state: { sort, term, selectedFacets },
100
+ itemsPerPage,
101
+ } = useSearch()
102
+
103
+ const localizedVariables = useLocalizedVariables({
104
+ first: itemsPerPage,
105
+ after: (itemsPerPage * page).toString(),
106
+ sort,
107
+ term: params?.searchTerm ?? term ?? '',
108
+ selectedFacets,
109
+ })
110
+
111
+ const hasSameVariables = deepEquals(
112
+ pagesCache.current[page],
113
+ getKey(localizedVariables)
114
+ )
115
+
116
+ const shouldFetchFirstPage = useShouldFetchFirstPage({
117
+ page,
118
+ generatedBuildTime,
119
+ })
120
+
121
+ const shouldFetch =
122
+ !hasSameVariables || shouldFetchFirstPage || !!sessionPostalCode
123
+
124
+ const { data, mutate } = useQuery<
125
+ ClientManyProductsQueryQuery,
126
+ ClientManyProductsQueryQueryVariables
127
+ >(query, localizedVariables, {
128
+ fallbackData: null,
129
+ suspense: true,
130
+ doNotRun: !shouldFetch,
131
+ })
132
+
133
+ const shouldUpdatePages = data !== null
91
134
 
92
- const useGalleryPage = useCallback(function useGalleryPage(page: number) {
93
- const {
94
- state: { sort, term, selectedFacets },
95
- itemsPerPage,
96
- } = useSearch()
97
-
98
- const localizedVariables = useLocalizedVariables({
99
- first: itemsPerPage,
100
- after: (itemsPerPage * page).toString(),
101
- sort,
102
- term: term ?? '',
103
- selectedFacets,
104
- })
105
-
106
- const hasSameVariables = deepEquals(
107
- pagesCache.current[page],
108
- getKey(localizedVariables)
109
- )
110
-
111
- const shouldFetchFirstPage = useShouldFetchFirstPage({
112
- page,
113
- generatedBuildTime,
114
- })
115
-
116
- const shouldFetch = !hasSameVariables || shouldFetchFirstPage
117
-
118
- const { data } = useQuery<
119
- ClientManyProductsQueryQuery,
120
- ClientManyProductsQueryQueryVariables
121
- >(query, localizedVariables, {
122
- fallbackData: null,
123
- suspense: true,
124
- doNotRun: !shouldFetch,
125
- })
126
-
127
- const shouldUpdatePages = data !== null
128
-
129
- if (shouldUpdatePages) {
130
- pagesCache.current[page] = getKey(localizedVariables)
131
-
132
- // Update refs
133
- const newPages = [...pagesRef.current]
134
- newPages[page] = data
135
- pagesRef.current = newPages
136
- }
137
-
138
- // Prevents error: Cannot update a component (`ProductListing`) while rendering a different component (`ProductGalleryPage`).
139
- useEffect(() => {
140
135
  if (shouldUpdatePages) {
141
- // Update state
142
- setPages((oldPages) => {
143
- const newPages = [...oldPages]
144
- newPages[page] = data
145
- return newPages
146
- })
147
- }
148
- }, [data, page, shouldUpdatePages])
136
+ pagesCache.current[page] = getKey(localizedVariables)
149
137
 
150
- return useMemo(() => {
151
- if (hasSameVariables) {
152
- return { data: pagesRef.current[page] }
138
+ // Update refs
139
+ const newPages = [...pagesRef.current]
140
+ newPages[page] = data
141
+ pagesRef.current = newPages
153
142
  }
154
143
 
155
- return { data }
156
- }, [hasSameVariables, data, page])
157
- }, [])
144
+ // Prevents error: Cannot update a component (`ProductListing`) while rendering a different component (`ProductGalleryPage`).
145
+ useEffect(() => {
146
+ if (shouldUpdatePages) {
147
+ // Update state
148
+ setPages((oldPages) => {
149
+ const newPages = [...oldPages]
150
+ newPages[page] = data
151
+ return newPages
152
+ })
153
+ }
154
+ }, [data, page, shouldUpdatePages])
155
+
156
+ // Refetch query with updated regionId
157
+ useEffect(() => {
158
+ if (sessionPostalCode !== postalCodeRef.current) {
159
+ mutate()
160
+ postalCodeRef.current = sessionPostalCode
161
+ }
162
+ }, [sessionPostalCode])
163
+
164
+ return useMemo(() => {
165
+ if (hasSameVariables) {
166
+ return { data: pagesRef.current[page] }
167
+ }
168
+
169
+ return { data }
170
+ }, [hasSameVariables, data, page])
171
+ },
172
+ [params?.searchTerm, sessionPostalCode]
173
+ )
158
174
 
159
175
  return useMemo(
160
176
  () => ({
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6552],{1780:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(3067),o=r(3339),a=r(2614),c=r(1667),l=r(9746),i=r(1325),p=r(5093),u=r.n(p),d={EmptyState:r(6133).Z},b=r(1716),f=r(1549);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var useErrorState=()=>{var e,{query:{errorId:t,fromUrl:r},pathname:n,asPath:a}=(0,o.useRouter)();return{errorId:t,fromUrl:null!==(e=null!=r?r:a)&&void 0!==e?e:n}};function EmptyState_EmptyState(e){var t,r,n,o,{title:p,titleIcon:d,children:b,subtitle:h,errorState:j,showLoader:y=!1}=e,{EmptyState:v}=(0,l.r3)(),{errorId:O,fromUrl:S}=useErrorState(),g=null!=d&&d.icon?(0,f.jsx)(a.Z,{name:null==d?void 0:d.icon,"aria-label":null==d?void 0:d.alt,width:56,height:56,weight:"thin"}):v.props.titleIcon;return(0,f.jsx)(i.Z,{className:"".concat(u().section," section-empty-state"),children:(0,f.jsxs)(v.Component,_objectSpread(_objectSpread({bkgColor:"light"},v.props),{},{title:null!=p?p:v.props.title,titleIcon:g,children:[!!h&&(0,f.jsx)("h2",{children:h}),!!(null!=j&&null!==(t=j.errorId)&&void 0!==t&&t.show)&&(0,f.jsx)("p",{children:"".concat(null==j?void 0:null===(r=j.errorId)||void 0===r?void 0:r.description," ").concat(O)}),!!(null!=j&&null!==(n=j.fromUrl)&&void 0!==n&&n.show)&&(0,f.jsx)("p",{children:"".concat(null==j?void 0:null===(o=j.fromUrl)||void 0===o?void 0:o.description," ").concat(S)}),y&&(0,f.jsx)(c.Z,{}),b]}))})}EmptyState_EmptyState.$componentKey="EmptyState";var h=(0,b.B)("EmptyState",EmptyState_EmptyState,d)},6138:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return H},default:function(){return s}});var n=r(3067),o=r(4235),a=r(5935),c=r(3339),l=r(4194),i=r(6142),p=r(2339),u=r(6763),d=r(5450),b=r(8132),f=r(8998),h=r(3412),j=r.n(h),y=r(9029),v=r(7444),O=r(9173),S=r(6272),g=r(1780),P=r(2007),m=r.n(P),w=r(1325),_=r(1549);function EmptySearch(e){var{title:t,term:r}=e;return(0,_.jsx)(w.Z,{className:"".concat(m().section," section-product-gallery"),children:(0,_.jsxs)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,"data-fs-search-loading":!0,children:[t&&(0,_.jsxs)("h1",{"data-fs-empty-search-title":!0,children:[t," ",(0,_.jsx)("strong",{children:r})]}),(0,_.jsx)(g.Z,{title:"",showLoader:!0})]})})}var x=r(3888),E=r.n(x),Z=r(2301),D=r(3882),K=r(3954),k=r(6924),T=r(3091),G=r(1772),N=r(5949);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var W=E()(()=>Promise.all([r.e(2715),r.e(84)]).then(r.bind(r,4173)).then(e=>e.OverriddenDefaultBannerText),{ssr:!1,loadableGenerated:{webpack:()=>[4173]}}),R=E()(()=>Promise.all([r.e(1417),r.e(385),r.e(2715),r.e(2858)]).then(r.bind(r,3143)),{ssr:!1,loadableGenerated:{webpack:()=>[3143]}}),B=E()(()=>Promise.all([r.e(1417),r.e(385),r.e(9704)]).then(r.bind(r,7272)).then(e=>e.OverriddenDefaultNewsletter),{ssr:!1,loadableGenerated:{webpack:()=>[7272]}}),C=E()(()=>Promise.all([r.e(6863),r.e(3506)]).then(r.bind(r,552)).then(e=>e.OverriddenDefaultProductShelf),{ssr:!1,loadableGenerated:{webpack:()=>[552]}}),I=E()(()=>r.e(7181).then(r.bind(r,7226)),{ssr:!1,loadableGenerated:{webpack:()=>[7226]}}),U=_objectSpread(_objectSpread(_objectSpread({},G.Z),{},{[(0,N.x)(D.V,"Hero")]:D.V,[(0,N.x)(Z.j,"Breadcrumb")]:Z.j,[(0,N.x)(K.f,"ProductGallery")]:K.f,[(0,N.x)(W,"BannerText")]:W,[(0,N.x)(R,"BannerNewsletter")]:R,[(0,N.x)(B,"Newsletter")]:B,[(0,N.x)(C,"ProductShelf")]:C,[(0,N.x)(I,"ProductTiles")]:I},T.Z),k.Z),F=r(330);function SearchPage_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 SearchPage_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchPage_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchPage_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var SearchPage_SearchPage=function(e){var{page:{sections:t},data:r,globalSections:n,globalSettings:o}=e,{pages:a,useGalleryPage:c}=(0,F.Y_)(),l={data:SearchPage_objectSpread(SearchPage_objectSpread({},r),{},{pages:a}),globalSettings:o};return(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(S.ZP,{context:l,children:(0,_.jsx)(F.Bj.Provider,{value:c,children:(0,_.jsx)(O.ZP,{sections:t,globalSections:n,components:U})})})})};function SearchWrapper_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 SearchWrapper_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchWrapper_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchWrapper_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function SearchWrapper(e){var t,r,n,o,a,{itemsPerPage:l,searchContentType:i,serverData:p,globalSections:u,globalSettings:d}=e,b=(0,c.useRouter)(),{state:{term:f,sort:h,selectedFacets:g},pages:P,resetInfiniteScroll:m}=(0,y.R)(),{data:w}=(0,v.UO)({term:f,sort:h,itemsPerPage:l,selectedFacets:g}),x=j().experimental.enableSearchSSR?{title:null!==(t=j().seo.search.bodyH1)&&void 0!==t?t:"Showing results for:",term:p.searchTerm}:{};if(!w)return(0,_.jsx)(S.ZP,{context:{globalSettings:d},children:(0,_.jsx)(O.ZP,{globalSections:u,children:(0,_.jsx)(EmptySearch,SearchWrapper_objectSpread({},x))})});if(null!=w&&null!==(r=w.redirect)&&void 0!==r&&r.url)return b.replace(null==w?void 0:null===(a=w.redirect)||void 0===a?void 0:a.url,null,{shallow:!0}),(0,_.jsx)(S.ZP,{context:{globalSettings:d},children:(0,_.jsx)(O.ZP,{globalSections:u,children:(0,_.jsx)(EmptySearch,SearchWrapper_objectSpread({},x))})});var E=null==w?void 0:null===(n=w.search)||void 0===n?void 0:n.products,Z=P.length,D=Math.ceil((null==E?void 0:null===(o=E.pageInfo)||void 0===o?void 0:o.totalCount)/l);return D>0&&D<Z&&m(0),(0,_.jsx)(SearchPage_SearchPage,{page:i,data:SearchWrapper_objectSpread(SearchWrapper_objectSpread({},p),w),globalSections:u,globalSettings:d})}var L=["search"],q=["noindex","nofollow"];function s_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 s_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var H=!0,useSearchParams=e=>{var{sort:t}=e,{asPath:r}=(0,c.useRouter)();return(0,l.useMemo)(()=>{var e=new URL(r,"http://localhost");t&&!e.searchParams.has("sort")&&e.searchParams.set("sort",t);var n=(0,i.Q)(e),o=(0,p.Z)(n).href;return(0,i.Q)(new URL(o))},[r,t])},s=function(e){var t,r,n,c,{page:l,globalSections:i,searchTerm:p}=e,{sections:h,settings:y}=null!=i?i:{},{settings:v}=l,O=(0,f.j)(),S=useSearchParams({sort:null==v?void 0:null===(t=v.productGallery)||void 0===t?void 0:t.sortBySelection}),g=null!==(r=null==v?void 0:null===(n=v.productGallery)||void 0===n?void 0:n.itemsPerPage)&&void 0!==r?r:b.gK;if(!S)return null;var P=function(e,t){var r,n,a,c,l,i=e.seo,{search:p}=i,u=(0,o.Z)(i,L);if(!e.experimental.enableSearchSSR)return{noindex:null===(c=null==p?void 0:p.noIndex)||void 0===c||c,nofollow:null===(l=null==p?void 0:p.noFollow)||void 0===l||l,title:u.title,description:u.description,titleTemplate:u.titleTemplate,openGraph:{type:"website",title:u.title,description:u.description}};var d=null!=t?t:"Search Results",b=null!==(r=null==p?void 0:p.titleTemplate)&&void 0!==r?r:u.titleTemplate,f=null!=p&&p.descriptionTemplate?p.descriptionTemplate.replace(/%s/g,()=>t):u.description,h=t?"".concat(e.storeUrl,"/s?q=").concat(t.replaceAll(" ","+")):void 0;return{noindex:null===(n=null==p?void 0:p.noIndex)||void 0===n||n,nofollow:null===(a=null==p?void 0:p.noFollow)||void 0===a||a,title:d,description:f,titleTemplate:b,canonical:h,openGraph:{type:"website",title:d,description:f}}}(j(),p),{noindex:m,nofollow:w}=P,x=(0,o.Z)(P,q);return(0,_.jsxs)(u.z,s_objectSpread(s_objectSpread({onChange:O,itemsPerPage:g},S),{},{children:[(0,_.jsx)(a.PB,s_objectSpread({noindex:m,nofollow:w},x)),(0,_.jsx)(d.Z,{text:x.title}),(0,_.jsx)(SearchWrapper,{itemsPerPage:g,searchContentType:l,serverData:{title:x.title,searchTerm:null!==(c=null!=p?p:S.term)&&void 0!==c?c:void 0},globalSections:h,globalSettings:y})]}))}},9590:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/s",function(){return r(6138)}])},5093:function(e){e.exports={section:"section_section__KG_b8",load:"section_load__DKeod"}},5450:function(e,t,r){"use strict";var n=r(4194);t.Z=function({text:e,as:t}){let r=t??"span";return n.createElement(r,{"data-fs-sr-only":!0},e)}},6133:function(e,t,r){"use strict";var n=r(4194);t.Z=function({testId:e="fs-empty-state",title:t,titleIcon:r,variant:o="default",bkgColor:a="default",children:c,...l}){return n.createElement("section",{"data-fs-empty-state":!0,"data-fs-empty-state-variant":o,"data-fs-empty-state-bkg-color":a,"data-fs-content":"empty-state","data-testid":e,...l},t&&n.createElement("header",{"data-fs-empty-state-title":!0},r&&n.createElement(n.Fragment,null,r),n.createElement("p",null,t)),c)}}},function(e){e.O(0,[6031,9173,7191,9774,2888,179],function(){return e(e.s=9590)}),_N_E=e.O()}]);