@faststore/core 3.9.3 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +5 -5
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1gneedd +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/371.js +1 -1
- package/.next/server/chunks/5430.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/[...slug].js +1 -1
- package/.next/server/pages/en-US/404.html +1 -1
- package/.next/server/pages/en-US/500.html +1 -1
- package/.next/server/pages/en-US/account.html +1 -1
- package/.next/server/pages/en-US/checkout.html +1 -1
- package/.next/server/pages/en-US/login.html +1 -1
- package/.next/server/pages/en-US/s.html +1 -1
- package/.next/server/pages/en-US.html +1 -1
- package/.next/server/pages/s.js +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/{qStjoQW6ZM1UbmV1436TX → KFQxTEob6--CeDLEHBRNA}/_buildManifest.js +1 -1
- package/.next/static/chunks/pages/[...slug]-ea558b39fbfcc27f.js +1 -0
- package/.next/static/chunks/pages/{_app-9d35d5919aef5334.js → _app-91d65e1abd88251d.js} +1 -1
- package/.next/static/chunks/pages/s-e609aea0cbb6c9fd.js +1 -0
- package/.next/trace +102 -101
- package/.turbo/turbo-build.log +12 -12
- package/.turbo/turbo-test.log +5 -5
- package/CHANGELOG.md +12 -0
- package/discovery.config.default.js +9 -0
- package/package.json +2 -2
- package/src/components/templates/ProductListingPage/ProductListingPage.tsx +12 -4
- package/src/experimental/searchServerSideFunctions/getServerSideProps.ts +51 -0
- package/src/experimental/searchServerSideFunctions/getStaticProps.ts +57 -0
- package/src/experimental/searchServerSideFunctions/index.ts +2 -0
- package/src/pages/s.tsx +61 -65
- package/.next/static/chunks/pages/[...slug]-535243edd040fc0c.js +0 -1
- package/.next/static/chunks/pages/s-a932301211f32425.js +0 -1
- /package/.next/static/{qStjoQW6ZM1UbmV1436TX → KFQxTEob6--CeDLEHBRNA}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -38,8 +38,8 @@ https://nextjs.org/telemetry
|
|
|
38
38
|
Collecting page data ...
|
|
39
39
|
Generating static pages (0/7) ...
|
|
40
40
|
|
|
41
41
|
Generating static pages (1/7)
|
|
42
|
-
|
|
43
42
|
Generating static pages (3/7)
|
|
44
43
|
Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
|
|
44
|
+
|
|
45
45
|
Generating static pages (3/7)
|
|
46
46
|
|
|
47
47
|
Generating static pages (5/7)
|
|
48
48
|
|
|
49
49
|
✓ Generating static pages (7/7)
|
|
50
50
|
Finalizing page optimization ...
|
|
@@ -48,26 +48,26 @@ Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Cont
|
|
|
48
48
|
Route (pages) Size First Load JS
|
|
49
49
|
┌ ● / 3.23 kB 122 kB
|
|
50
50
|
├ └ css/b1806cbafd0c1f81.css 3.06 kB
|
|
51
|
-
├ /_app 0 B
|
|
52
|
-
├ ● /[...slug] 2.
|
|
51
|
+
├ /_app 0 B 92 kB
|
|
52
|
+
├ ● /[...slug] 2.09 kB 131 kB
|
|
53
53
|
├ ● /[slug]/p 34.1 kB 153 kB
|
|
54
54
|
├ ├ css/bf1560439df2c1a1.css 5.66 kB
|
|
55
55
|
├ ├ css/e3ff5d95518a5c79.css 6.01 kB
|
|
56
56
|
├ └ css/d92839440872e246.css 15.6 kB
|
|
57
|
-
├ ○ /404 1.48 kB
|
|
58
|
-
├ ● /500 1.48 kB
|
|
57
|
+
├ ○ /404 1.48 kB 121 kB
|
|
58
|
+
├ ● /500 1.48 kB 121 kB
|
|
59
59
|
├ ● /account 714 B 120 kB
|
|
60
|
-
├ λ /api/graphql 0 B
|
|
61
|
-
├ λ /api/health/live 0 B
|
|
62
|
-
├ λ /api/health/ready 0 B
|
|
63
|
-
├ λ /api/preview 0 B
|
|
60
|
+
├ λ /api/graphql 0 B 92 kB
|
|
61
|
+
├ λ /api/health/live 0 B 92 kB
|
|
62
|
+
├ λ /api/health/ready 0 B 92 kB
|
|
63
|
+
├ λ /api/preview 0 B 92 kB
|
|
64
64
|
├ ● /checkout 695 B 120 kB
|
|
65
65
|
├ ● /login 1.59 kB 121 kB
|
|
66
|
-
└ ● /s 2.
|
|
66
|
+
└ ● /s 2.92 kB 132 kB
|
|
67
67
|
+ First Load JS shared by all 95 kB
|
|
68
68
|
├ chunks/framework-12a146e94cfcf7c4.js 45.4 kB
|
|
69
69
|
├ chunks/main-209ac4974b020af1.js 33.1 kB
|
|
70
|
-
├ chunks/pages/_app-
|
|
70
|
+
├ chunks/pages/_app-91d65e1abd88251d.js 9.97 kB
|
|
71
71
|
├ chunks/webpack-bf502499da135235.js 3.57 kB
|
|
72
72
|
└ css/ee0556daedda6306.css 3.07 kB
|
|
73
73
|
|
|
@@ -75,4 +75,4 @@ Route (pages) Size First Load JS
|
|
|
75
75
|
○ (Static) automatically rendered as static HTML (uses no initial props)
|
|
76
76
|
● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
|
|
77
77
|
|
|
78
|
-
Done in
|
|
78
|
+
Done in 71.98s.
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
yarn run v1.22.22
|
|
2
2
|
$ jest
|
|
3
|
-
PASS test/utils/multipleTemplates.test.ts (
|
|
4
|
-
PASS test/server/cms/index.test.ts (
|
|
5
|
-
PASS test/server/index.test.ts (
|
|
3
|
+
PASS test/utils/multipleTemplates.test.ts (36.481 s)
|
|
4
|
+
PASS test/server/cms/index.test.ts (37.308 s)
|
|
5
|
+
PASS test/server/index.test.ts (40.683 s)
|
|
6
6
|
|
|
7
7
|
Test Suites: 3 passed, 3 total
|
|
8
8
|
Tests: 19 passed, 19 total
|
|
9
9
|
Snapshots: 0 total
|
|
10
|
-
Time:
|
|
10
|
+
Time: 41.777 s
|
|
11
11
|
Ran all test suites.
|
|
12
|
-
Done in
|
|
12
|
+
Done in 43.65s.
|
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.11.0](https://github.com/vtex/faststore/compare/v3.10.0...v3.11.0) (2025-01-29)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- search page with SSR ([#2619](https://github.com/vtex/faststore/issues/2619)) ([6fd2d0d](https://github.com/vtex/faststore/commit/6fd2d0d5e92f0922f8d97237d9d04a7eadc5e894))
|
|
11
|
+
|
|
12
|
+
# [3.10.0](https://github.com/vtex/faststore/compare/v3.9.3...v3.10.0) (2025-01-29)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- add `title` and `description` templates for product listing pages ([#2643](https://github.com/vtex/faststore/issues/2643)) ([00221d9](https://github.com/vtex/faststore/commit/00221d98439b693af3c2c0082ec7ef600637e19e))
|
|
17
|
+
|
|
6
18
|
## [3.9.3](https://github.com/vtex/faststore/compare/v3.9.2...v3.9.3) (2025-01-28)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
|
@@ -4,6 +4,14 @@ module.exports = {
|
|
|
4
4
|
description: 'Fast Demo Store',
|
|
5
5
|
titleTemplate: '%s | FastStore',
|
|
6
6
|
author: 'Store Framework',
|
|
7
|
+
plp: {
|
|
8
|
+
titleTemplate: '%s | FastStore PLP',
|
|
9
|
+
descriptionTemplate: '%s products on FastStore Product Listing Page'
|
|
10
|
+
},
|
|
11
|
+
search: {
|
|
12
|
+
titleTemplate: '%s: Search results title',
|
|
13
|
+
descriptionTemplate: '%s: Search results description',
|
|
14
|
+
},
|
|
7
15
|
},
|
|
8
16
|
|
|
9
17
|
// Theming
|
|
@@ -102,5 +110,6 @@ module.exports = {
|
|
|
102
110
|
noRobots: false,
|
|
103
111
|
preact: false,
|
|
104
112
|
enableRedirects: false,
|
|
113
|
+
enableSearchSSR: false,
|
|
105
114
|
},
|
|
106
115
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "vtex/faststore",
|
|
6
6
|
"browserslist": "supports es6-module and not dead",
|
|
@@ -128,5 +128,5 @@
|
|
|
128
128
|
"node": "18.19.0",
|
|
129
129
|
"yarn": "1.19.1"
|
|
130
130
|
},
|
|
131
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "28973b45d9822065e6ed2890f29447b29c820306"
|
|
132
132
|
}
|
|
@@ -12,7 +12,7 @@ import type { ServerCollectionPageQueryQuery } from '@generated/graphql'
|
|
|
12
12
|
import { ITEMS_PER_PAGE } from 'src/constants'
|
|
13
13
|
import { useApplySearchState } from 'src/sdk/search/state'
|
|
14
14
|
|
|
15
|
-
import { PLPContentType } from 'src/server/cms/plp'
|
|
15
|
+
import type { PLPContentType } from 'src/server/cms/plp'
|
|
16
16
|
|
|
17
17
|
import storeConfig from '../../../../discovery.config'
|
|
18
18
|
import ProductListing from './ProductListing'
|
|
@@ -68,8 +68,16 @@ export default function ProductListingPage({
|
|
|
68
68
|
sort: settings?.productGallery?.sortBySelection as SearchState['sort'],
|
|
69
69
|
})
|
|
70
70
|
|
|
71
|
-
const
|
|
72
|
-
|
|
71
|
+
const {
|
|
72
|
+
seo: { plp: plpSeo, ...storeSeo },
|
|
73
|
+
} = storeConfig
|
|
74
|
+
const title = collection?.seo.title ?? storeSeo.title
|
|
75
|
+
const titleTemplate = plpSeo?.titleTemplate ?? storeSeo.titleTemplate
|
|
76
|
+
const description =
|
|
77
|
+
collection?.seo.description || // Use description that comes from the Checkout API
|
|
78
|
+
plpSeo?.descriptionTemplate?.replace(/%s/g, () => title) || // Use description template from the SEO config for PLP
|
|
79
|
+
storeSeo.description // Use default description from the store SEO config
|
|
80
|
+
|
|
73
81
|
const [pathname] = router.asPath.split('?')
|
|
74
82
|
const canonical = `${storeConfig.storeUrl}${pathname}`
|
|
75
83
|
const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
|
|
@@ -84,7 +92,7 @@ export default function ProductListingPage({
|
|
|
84
92
|
<NextSeo
|
|
85
93
|
title={title}
|
|
86
94
|
description={description}
|
|
87
|
-
titleTemplate={
|
|
95
|
+
titleTemplate={titleTemplate}
|
|
88
96
|
canonical={canonical}
|
|
89
97
|
openGraph={{
|
|
90
98
|
type: 'website',
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { GetServerSideProps } from 'next'
|
|
2
|
+
import { SearchPageProps } from './getStaticProps'
|
|
3
|
+
|
|
4
|
+
import { getGlobalSectionsData } from 'src/components/cms/GlobalSections'
|
|
5
|
+
import { SearchContentType, getPage } from 'src/server/cms'
|
|
6
|
+
import { Locator } from '@vtex/client-cms'
|
|
7
|
+
import storeConfig from 'discovery.config'
|
|
8
|
+
|
|
9
|
+
export const getServerSideProps: GetServerSideProps<
|
|
10
|
+
SearchPageProps,
|
|
11
|
+
Record<string, string>,
|
|
12
|
+
Locator
|
|
13
|
+
> = async (context) => {
|
|
14
|
+
const { previewData, query, res } = context
|
|
15
|
+
const searchTerm = (query.q as string)?.split('+').join(' ')
|
|
16
|
+
|
|
17
|
+
const globalSections = await getGlobalSectionsData(previewData)
|
|
18
|
+
|
|
19
|
+
if (storeConfig.cms.data) {
|
|
20
|
+
const cmsData = JSON.parse(storeConfig.cms.data)
|
|
21
|
+
const page = cmsData['search'][0]
|
|
22
|
+
if (page) {
|
|
23
|
+
const pageData = await getPage<SearchContentType>({
|
|
24
|
+
contentType: 'search',
|
|
25
|
+
documentId: page.documentId,
|
|
26
|
+
versionId: page.versionId,
|
|
27
|
+
})
|
|
28
|
+
return {
|
|
29
|
+
props: { page: pageData, globalSections, searchTerm },
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const page = await getPage<SearchContentType>({
|
|
35
|
+
...(previewData?.contentType === 'search' ? previewData : null),
|
|
36
|
+
contentType: 'search',
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
res.setHeader(
|
|
40
|
+
'Cache-Control',
|
|
41
|
+
'public, s-maxage=300, stale-while-revalidate=31536000, stale-if-error=31536000'
|
|
42
|
+
) // 5 minutes of fresh content and 1 year of stale content
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
props: {
|
|
46
|
+
page,
|
|
47
|
+
globalSections,
|
|
48
|
+
searchTerm,
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { GetStaticProps } from 'next'
|
|
2
|
+
import {
|
|
3
|
+
getGlobalSectionsData,
|
|
4
|
+
GlobalSectionsData,
|
|
5
|
+
} from 'src/components/cms/GlobalSections'
|
|
6
|
+
import { SearchContentType, getPage } from 'src/server/cms'
|
|
7
|
+
import { Locator } from '@vtex/client-cms'
|
|
8
|
+
import storeConfig from 'discovery.config'
|
|
9
|
+
|
|
10
|
+
export type SearchPageProps = {
|
|
11
|
+
page: SearchContentType
|
|
12
|
+
globalSections: GlobalSectionsData
|
|
13
|
+
searchTerm?: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
Depending on the value of the storeConfig.experimental.enableSearchSSR flag, the function used will be getServerSideProps (./getServerSideProps).
|
|
18
|
+
Our CLI that does this process of converting from getStaticProps to getServerSideProps.
|
|
19
|
+
*/
|
|
20
|
+
export const getStaticProps: GetStaticProps<
|
|
21
|
+
SearchPageProps,
|
|
22
|
+
Record<string, string>,
|
|
23
|
+
Locator
|
|
24
|
+
> = async (context) => {
|
|
25
|
+
const { previewData } = context
|
|
26
|
+
|
|
27
|
+
const globalSections = await getGlobalSectionsData(previewData)
|
|
28
|
+
|
|
29
|
+
if (storeConfig.cms.data) {
|
|
30
|
+
const cmsData = JSON.parse(storeConfig.cms.data)
|
|
31
|
+
const page = cmsData['search'][0]
|
|
32
|
+
|
|
33
|
+
if (page) {
|
|
34
|
+
const pageData = await getPage<SearchContentType>({
|
|
35
|
+
contentType: 'search',
|
|
36
|
+
documentId: page.documentId,
|
|
37
|
+
versionId: page.versionId,
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
props: { page: pageData, globalSections },
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const page = await getPage<SearchContentType>({
|
|
47
|
+
...(previewData?.contentType === 'search' ? previewData : null),
|
|
48
|
+
contentType: 'search',
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
props: {
|
|
53
|
+
page,
|
|
54
|
+
globalSections,
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
}
|
package/src/pages/s.tsx
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { GetStaticProps } from 'next'
|
|
2
1
|
import { NextSeo } from 'next-seo'
|
|
3
2
|
import { useRouter } from 'next/router'
|
|
4
3
|
import { useMemo } from 'react'
|
|
@@ -14,19 +13,13 @@ import { SROnly as UISROnly } from '@faststore/ui'
|
|
|
14
13
|
import { ITEMS_PER_PAGE } from 'src/constants'
|
|
15
14
|
import { useApplySearchState } from 'src/sdk/search/state'
|
|
16
15
|
|
|
17
|
-
import { Locator } from '@vtex/client-cms'
|
|
18
16
|
import storeConfig from 'discovery.config'
|
|
19
|
-
import {
|
|
20
|
-
getGlobalSectionsData,
|
|
21
|
-
GlobalSectionsData,
|
|
22
|
-
} from 'src/components/cms/GlobalSections'
|
|
23
|
-
import { SearchWrapper } from 'src/components/templates/SearchPage'
|
|
24
|
-
import { getPage, SearchContentType } from 'src/server/cms'
|
|
25
17
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
18
|
+
import { SearchWrapper } from 'src/components/templates/SearchPage'
|
|
19
|
+
import {
|
|
20
|
+
getStaticProps,
|
|
21
|
+
SearchPageProps,
|
|
22
|
+
} from 'src/experimental/searchServerSideFunctions'
|
|
30
23
|
|
|
31
24
|
export interface SearchPageContextType {
|
|
32
25
|
title: string
|
|
@@ -54,21 +47,69 @@ const useSearchParams = ({
|
|
|
54
47
|
}, [asPath, defaultSort])
|
|
55
48
|
}
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
type StoreConfig = typeof storeConfig
|
|
51
|
+
|
|
52
|
+
function generateSEOData(storeConfig: StoreConfig, searchTerm?: string) {
|
|
53
|
+
const { search: searchSeo, ...seo } = storeConfig.seo
|
|
54
|
+
|
|
55
|
+
const isSSREnabled = storeConfig.experimental.enableSearchSSR
|
|
56
|
+
|
|
57
|
+
// default behavior without SSR
|
|
58
|
+
if (!isSSREnabled) {
|
|
59
|
+
return {
|
|
60
|
+
title: seo.title,
|
|
61
|
+
description: seo.description,
|
|
62
|
+
titleTemplate: seo.titleTemplate,
|
|
63
|
+
openGraph: {
|
|
64
|
+
type: 'website',
|
|
65
|
+
title: seo.title,
|
|
66
|
+
description: seo.description,
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const title = searchTerm ?? 'Search Results'
|
|
72
|
+
const titleTemplate = searchSeo?.titleTemplate ?? seo.titleTemplate
|
|
73
|
+
const description = searchSeo?.descriptionTemplate
|
|
74
|
+
? searchSeo.descriptionTemplate.replace(/%s/g, () => searchTerm)
|
|
75
|
+
: seo.description
|
|
76
|
+
|
|
77
|
+
const canonical = searchTerm
|
|
78
|
+
? `${storeConfig.storeUrl}/s?q=${searchTerm}`
|
|
79
|
+
: undefined
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
title,
|
|
83
|
+
description,
|
|
84
|
+
titleTemplate,
|
|
85
|
+
canonical,
|
|
86
|
+
openGraph: {
|
|
87
|
+
type: 'website',
|
|
88
|
+
title: title,
|
|
89
|
+
description: description,
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function Page({
|
|
95
|
+
page: searchContentType,
|
|
96
|
+
globalSections,
|
|
97
|
+
searchTerm,
|
|
98
|
+
}: SearchPageProps) {
|
|
58
99
|
const { settings } = searchContentType
|
|
59
100
|
const applySearchState = useApplySearchState()
|
|
60
101
|
const searchParams = useSearchParams({
|
|
61
102
|
sort: settings?.productGallery?.sortBySelection as SearchState['sort'],
|
|
62
103
|
})
|
|
63
104
|
|
|
64
|
-
const title = 'Search Results'
|
|
65
|
-
const { description, titleTemplate } = storeConfig.seo
|
|
66
105
|
const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
|
|
67
106
|
|
|
68
107
|
if (!searchParams) {
|
|
69
108
|
return null
|
|
70
109
|
}
|
|
71
110
|
|
|
111
|
+
const seoData = generateSEOData(storeConfig, searchTerm)
|
|
112
|
+
|
|
72
113
|
return (
|
|
73
114
|
<SearchProvider
|
|
74
115
|
onChange={applySearchState}
|
|
@@ -76,19 +117,9 @@ function Page({ page: searchContentType, globalSections }: Props) {
|
|
|
76
117
|
{...searchParams}
|
|
77
118
|
>
|
|
78
119
|
{/* SEO */}
|
|
79
|
-
<NextSeo
|
|
80
|
-
noindex
|
|
81
|
-
title={title}
|
|
82
|
-
description={description}
|
|
83
|
-
titleTemplate={titleTemplate}
|
|
84
|
-
openGraph={{
|
|
85
|
-
type: 'website',
|
|
86
|
-
title,
|
|
87
|
-
description,
|
|
88
|
-
}}
|
|
89
|
-
/>
|
|
120
|
+
<NextSeo noindex {...seoData} />
|
|
90
121
|
|
|
91
|
-
<UISROnly text={title} />
|
|
122
|
+
<UISROnly text={seoData.title} />
|
|
92
123
|
|
|
93
124
|
{/*
|
|
94
125
|
WARNING: Do not import or render components from any
|
|
@@ -105,8 +136,8 @@ function Page({ page: searchContentType, globalSections }: Props) {
|
|
|
105
136
|
itemsPerPage={itemsPerPage}
|
|
106
137
|
searchContentType={searchContentType}
|
|
107
138
|
serverData={{
|
|
108
|
-
title,
|
|
109
|
-
searchTerm: searchParams.term ?? undefined,
|
|
139
|
+
title: seoData.title,
|
|
140
|
+
searchTerm: searchTerm ?? searchParams.term ?? undefined,
|
|
110
141
|
}}
|
|
111
142
|
globalSections={globalSections.sections}
|
|
112
143
|
/>
|
|
@@ -114,41 +145,6 @@ function Page({ page: searchContentType, globalSections }: Props) {
|
|
|
114
145
|
)
|
|
115
146
|
}
|
|
116
147
|
|
|
117
|
-
export
|
|
118
|
-
Props,
|
|
119
|
-
Record<string, string>,
|
|
120
|
-
Locator
|
|
121
|
-
> = async ({ previewData }) => {
|
|
122
|
-
const globalSections = await getGlobalSectionsData(previewData)
|
|
123
|
-
|
|
124
|
-
if (storeConfig.cms.data) {
|
|
125
|
-
const cmsData = JSON.parse(storeConfig.cms.data)
|
|
126
|
-
const page = cmsData['search'][0]
|
|
127
|
-
|
|
128
|
-
if (page) {
|
|
129
|
-
const pageData = await getPage<SearchContentType>({
|
|
130
|
-
contentType: 'search',
|
|
131
|
-
documentId: page.documentId,
|
|
132
|
-
versionId: page.versionId,
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
return {
|
|
136
|
-
props: { page: pageData, globalSections },
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const page = await getPage<SearchContentType>({
|
|
142
|
-
...(previewData?.contentType === 'search' ? previewData : null),
|
|
143
|
-
contentType: 'search',
|
|
144
|
-
})
|
|
145
|
-
|
|
146
|
-
return {
|
|
147
|
-
props: {
|
|
148
|
-
page,
|
|
149
|
-
globalSections,
|
|
150
|
-
},
|
|
151
|
-
}
|
|
152
|
-
}
|
|
148
|
+
export { getStaticProps }
|
|
153
149
|
|
|
154
150
|
export default Page
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[330],{3054:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return M},default:function(){return _slug_}});var n=r(9499),o=r(4730),c=r(5152),i=r.n(c),s=r(6142),a=r(2339),l=r(1197),u=r(5351),d=r(1163),p=r(2784),b=r(1023),g=r(5403),P=r(5430),j=r.n(P),O=r(9029),f=r(9996),y=r.n(f),w=r(3472),v=r(3638),_=r(4485),h=r(4439),m=r(7641),S=r(1271);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 L=i()(()=>Promise.all([r.e(9161),r.e(84)]).then(r.bind(r,3620)).then(e=>e.OverriddenDefaultBannerText),{ssr:!1,loadableGenerated:{webpack:()=>[3620]}}),D=i()(()=>Promise.all([r.e(1770),r.e(218),r.e(9704)]).then(r.bind(r,1482)).then(e=>e.OverriddenDefaultNewsletter),{ssr:!1,loadableGenerated:{webpack:()=>[1482]}}),x=i()(()=>Promise.all([r.e(3472),r.e(3506)]).then(r.bind(r,1171)).then(e=>e.OverriddenDefaultProductShelf),{ssr:!1,loadableGenerated:{webpack:()=>[1171]}}),E=i()(()=>r.e(7181).then(r.bind(r,9755)),{ssr:!1,loadableGenerated:{webpack:()=>[9755]}}),k=_objectSpread(_objectSpread(_objectSpread({},S.Z),{},{Breadcrumb:w.j,Hero:v.V,ProductGallery:_.f,BannerText:L,Newsletter:D,ProductShelf:x,ProductTiles:E},m.Z),h.Z),G=r(7563),K=r(4960),Z=r(7171),N=r(7921),T=r(2322);function ProductListing_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 ProductListing_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListing_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListing_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var B=i()(()=>r.e(6636).then(r.bind(r,7917)),{loadableGenerated:{webpack:()=>[7917]}}),overwriteMerge=(e,t)=>t;function ProductListing(e){var t,r,{page:{sections:n,settings:o},data:c,globalSections:i}=e,{state:{sort:s,term:a,selectedFacets:l}}=(0,O.R)(),u=null!==(t=null==o?void 0:null===(r=o.productGallery)||void 0===r?void 0:r.itemsPerPage)&&void 0!==t?t:b.g,{data:d}=(0,N.UO)({term:a,sort:s,selectedFacets:l,itemsPerPage:u}),{pages:p,useGalleryPage:g}=(0,Z.Y_)(),P={data:ProductListing_objectSpread(ProductListing_objectSpread({},y()(ProductListing_objectSpread({},c),ProductListing_objectSpread({},d),{arrayMerge:overwriteMerge})),{},{pages:p})};return(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(K.ZP,{context:P,children:(0,T.jsx)(Z.Bj.Provider,{value:g,children:(0,T.jsx)(G.Z,{sections:n,globalSections:i,components:k,children:(0,T.jsx)(G.w,{sectionName:"ScrollToTopButton",children:(0,T.jsx)(B,{})})})})})})}function ProductListingPage_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 ProductListingPage_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListingPage_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListingPage_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var useSearchParams=e=>{var{collection:t,sort:r}=e,n=null==t?void 0:t.meta.selectedFacets,{asPath:o}=(0,d.useRouter)(),c=(0,p.useMemo)(()=>{var e=new URL(o,"http://localhost");r&&!e.searchParams.has("sort")&&e.searchParams.set("sort",r);var t=(0,s.Q)(e);return 0===t.selectedFacets.length&&(t.selectedFacets=n),(0,a.Z)(t).href},[o,n,r]);return(0,p.useMemo)(()=>(0,s.Q)(new URL(c)),[c])};function ProductListingPage(e){var t,r,n,o,c,i,{page:s,data:a,globalSections:p}=e,{settings:P}=s,O=a.collection,f=(0,d.useRouter)(),y=(0,g.j)(),w=useSearchParams({collection:O,sort:null==P?void 0:null===(t=P.productGallery)||void 0===t?void 0:t.sortBySelection}),v=null!==(r=null==O?void 0:O.seo.title)&&void 0!==r?r:j().seo.title,_=null!==(n=null==O?void 0:O.seo.description)&&void 0!==n?n:j().seo.title,[h]=f.asPath.split("?"),m="".concat(j().storeUrl).concat(h),S=null!==(o=null==P?void 0:null===(c=P.productGallery)||void 0===c?void 0:c.itemsPerPage)&&void 0!==o?o:b.g;return(0,T.jsxs)(l.z,ProductListingPage_objectSpread(ProductListingPage_objectSpread({onChange:y,itemsPerPage:S},w),{},{children:[(0,T.jsx)(u.PB,{title:v,description:_,titleTemplate:j().seo.titleTemplate,canonical:m,openGraph:{type:"website",title:v,description:_}}),(0,T.jsx)(u.gR,{itemListElements:null!==(i=null==O?void 0:O.breadcrumbList.itemListElement)&&void 0!==i?i:[]}),(0,T.jsx)(ProductListing,{globalSections:p,page:s,data:a})]}))}var R=["globalSections","type"];function _slug_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 _slug_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_slug_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_slug_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var F=i()(()=>Promise.all([r.e(1770),r.e(5997),r.e(3472),r.e(218),r.e(9161),r.e(6379),r.e(1978)]).then(r.bind(r,8205)),{loadableGenerated:{webpack:()=>[8205]}}),M=!0,_slug_=function(e){var{globalSections:t,type:r}=e,n=(0,o.Z)(e,R);return(0,T.jsxs)(T.Fragment,{children:["plp"===r&&(0,T.jsx)(ProductListingPage,_slug_objectSpread({globalSections:t.sections},n)),"page"===r&&(0,T.jsx)(F,_slug_objectSpread({globalSections:t.sections},n))]})}},881:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[...slug]",function(){return r(3054)}])}},function(e){e.O(0,[6941,7563,4501,9774,2888,179],function(){return e(e.s=881)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6552],{5450:function(e,t,r){"use strict";var n=r(2784);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(2784);t.Z=function({testId:e="fs-empty-state",title:t,titleIcon:r,variant:o="default",bkgColor:a="default",children:c,...i}){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,...i},t&&n.createElement("header",{"data-fs-empty-state-title":!0},r&&n.createElement(n.Fragment,null,r),n.createElement("p",null,t)),c)}},945:function(e,t,r){"use strict";r.d(t,{Z:function(){return j}});var n=r(9499),o=r(1163),a=r(2614),c=r(1667),i=r(4329),l=r(9089),u=r(8919),p=r.n(u),d={EmptyState:r(6133).Z},b=r(7296),f=r(2322);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var 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}},j=(0,b.B)("EmptyState",function(e){var t,r,n,o,{title:u,titleIcon:d,children:b,subtitle:j,errorState:h,showLoader:y=!1}=e,{EmptyState:O}=(0,i.r3)(),{errorId:v,fromUrl:P}=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"}):O.props.titleIcon;return(0,f.jsx)(l.Z,{className:"".concat(p().section," section-empty-state"),children:(0,f.jsxs)(O.Component,_objectSpread(_objectSpread({bkgColor:"light"},O.props),{},{title:null!=u?u:O.props.title,titleIcon:g,children:[!!j&&(0,f.jsx)("h2",{children:j}),!!(null!=h&&null!==(t=h.errorId)&&void 0!==t&&t.show)&&(0,f.jsx)("p",{children:"".concat(null==h?void 0:null===(r=h.errorId)||void 0===r?void 0:r.description," ").concat(v)}),!!(null!=h&&null!==(n=h.fromUrl)&&void 0!==n&&n.show)&&(0,f.jsx)("p",{children:"".concat(null==h?void 0:null===(o=h.fromUrl)||void 0===o?void 0:o.description," ").concat(P)}),y&&(0,f.jsx)(c.Z,{}),b]}))})},d)},4654:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return I},default:function(){return s}});var n=r(9499),o=r(5351),a=r(1163),c=r(2784),i=r(6142),l=r(2339),u=r(1197),p=r(5450),d=r(1023),b=r(5403),f=r(5430),j=r.n(f),h=r(9029),y=r(945),O=r(1080),v=r.n(O),P=r(9089),g=r(7921),w=r(7563),S=r(5152),m=r.n(S),_=r(3472),E=r(3638),x=r(4485),D=r(4439),Z=r(7641),K=r(1271);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 k=m()(()=>Promise.all([r.e(9161),r.e(84)]).then(r.bind(r,3620)).then(e=>e.OverriddenDefaultBannerText),{ssr:!1,loadableGenerated:{webpack:()=>[3620]}}),G=m()(()=>Promise.all([r.e(1770),r.e(218),r.e(9161),r.e(2858)]).then(r.bind(r,8545)),{ssr:!1,loadableGenerated:{webpack:()=>[8545]}}),N=m()(()=>Promise.all([r.e(1770),r.e(218),r.e(9704)]).then(r.bind(r,1482)).then(e=>e.OverriddenDefaultNewsletter),{ssr:!1,loadableGenerated:{webpack:()=>[1482]}}),W=m()(()=>Promise.all([r.e(3472),r.e(3506)]).then(r.bind(r,1171)).then(e=>e.OverriddenDefaultProductShelf),{ssr:!1,loadableGenerated:{webpack:()=>[1171]}}),C=m()(()=>r.e(7181).then(r.bind(r,9755)),{ssr:!1,loadableGenerated:{webpack:()=>[9755]}}),R=_objectSpread(_objectSpread(_objectSpread({},K.Z),{},{Breadcrumb:_.j,Hero:E.V,ProductGallery:x.f,BannerText:k,BannerNewsletter:G,Newsletter:N,ProductShelf:W,ProductTiles:C},Z.Z),D.Z),B=r(4960),T=r(7171),U=r(2322);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}=e,{pages:o,useGalleryPage:a}=(0,T.Y_)(),c={data:SearchPage_objectSpread(SearchPage_objectSpread({},r),{},{pages:o})};return(0,U.jsx)(U.Fragment,{children:(0,U.jsx)(B.ZP,{context:c,children:(0,U.jsx)(T.Bj.Provider,{value:a,children:(0,U.jsx)(w.Z,{sections:t,globalSections:n,components:R})})})})};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 EmptySearch(){return(0,U.jsx)(P.Z,{className:"".concat(v().section," section-product-gallery"),children:(0,U.jsx)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:(0,U.jsx)(y.Z,{title:"",showLoader:!0})})})}function SearchWrapper(e){var t,r,n,o,{itemsPerPage:c,searchContentType:i,serverData:l,globalSections:u}=e,p=(0,a.useRouter)(),{state:{term:d,sort:b,selectedFacets:f},pages:j,resetInfiniteScroll:y}=(0,h.R)(),{data:O,isValidating:v}=(0,g.UO)({term:d,sort:b,itemsPerPage:c,selectedFacets:f});if(v||!O)return(0,U.jsx)(EmptySearch,{});if(null!=O&&null!==(t=O.redirect)&&void 0!==t&&t.url)return p.replace(null==O?void 0:null===(o=O.redirect)||void 0===o?void 0:o.url,null,{shallow:!0}),(0,U.jsx)(EmptySearch,{});var P=null==O?void 0:null===(r=O.search)||void 0===r?void 0:r.products,w=j.length,S=Math.ceil((null==P?void 0:null===(n=P.pageInfo)||void 0===n?void 0:n.totalCount)/c);return S>0&&S<w&&y(0),(0,U.jsx)(SearchPage_SearchPage,{page:i,data:SearchWrapper_objectSpread(SearchWrapper_objectSpread({},l),O),globalSections:u})}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 I=!0,useSearchParams=e=>{var{sort:t}=e,{asPath:r}=(0,a.useRouter)();return(0,c.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,l.Z)(n).href;return(0,i.Q)(new URL(o))},[r,t])},s=function(e){var t,r,n,a,{page:c,globalSections:i}=e,{settings:l}=c,f=(0,b.j)(),h=useSearchParams({sort:null==l?void 0:null===(t=l.productGallery)||void 0===t?void 0:t.sortBySelection}),y="Search Results",{description:O,titleTemplate:v}=j().seo,P=null!==(r=null==l?void 0:null===(n=l.productGallery)||void 0===n?void 0:n.itemsPerPage)&&void 0!==r?r:d.g;return h?(0,U.jsxs)(u.z,s_objectSpread(s_objectSpread({onChange:f,itemsPerPage:P},h),{},{children:[(0,U.jsx)(o.PB,{noindex:!0,title:y,description:O,titleTemplate:v,openGraph:{type:"website",title:y,description:O}}),(0,U.jsx)(p.Z,{text:y}),(0,U.jsx)(SearchWrapper,{itemsPerPage:P,searchContentType:c,serverData:{title:y,searchTerm:null!==(a=h.term)&&void 0!==a?a:void 0},globalSections:i.sections})]})):null}},1343:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/s",function(){return r(4654)}])},8919:function(e){e.exports={section:"section_section__KG_b8",load:"section_load__DKeod"}}},function(e){e.O(0,[6941,7563,4501,9774,2888,179],function(){return e(e.s=1343)}),_N_E=e.O()}]);
|
|
File without changes
|