@faststore/core 3.0.131 → 3.0.133
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 +17 -17
- 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/158.js +1 -1
- package/.next/server/chunks/350.js +1 -1
- package/.next/server/chunks/646.js +2 -2
- package/.next/server/chunks/671.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/api/graphql.js +1 -1
- package/.next/server/pages/en-US/404.html +1 -1
- package/.next/server/pages/en-US/404.json +1 -1
- package/.next/server/pages/en-US/500.html +1 -1
- package/.next/server/pages/en-US/500.json +1 -1
- package/.next/server/pages/en-US/account.html +1 -1
- package/.next/server/pages/en-US/account.json +1 -1
- package/.next/server/pages/en-US/checkout.html +1 -1
- package/.next/server/pages/en-US/checkout.json +1 -1
- package/.next/server/pages/en-US/login.html +1 -1
- package/.next/server/pages/en-US/login.json +1 -1
- package/.next/server/pages/en-US/s.html +1 -1
- package/.next/server/pages/en-US/s.json +1 -1
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages/en-US.json +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/{o69X4-v2dIUnsnwvKME49 → IyPevAAG78YPlk_8u0B3B}/_buildManifest.js +1 -1
- package/.next/static/chunks/{235-a7d9d6cf81ae08ef.js → 235-973ebc8cf442e7f2.js} +1 -1
- package/.next/static/chunks/87-a5c39fc100e83f67.js +1 -0
- package/.next/static/chunks/968-1e18abc7032f157c.js +1 -0
- package/.next/trace +94 -94
- package/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-test.log +4 -4
- package/next.config.js +6 -1
- package/package.json +2 -2
- package/src/components/common/Footer/FooterLinks.tsx +6 -4
- package/src/components/navigation/Navbar/Navbar.tsx +4 -1
- package/src/components/search/Filter/Filter.tsx +4 -2
- package/src/components/sections/RegionBar/RegionBar.tsx +9 -7
- package/src/components/ui/Carousel/Carousel.tsx +6 -2
- package/src/sdk/ui/useScreenResize.ts +43 -0
- package/.next/static/chunks/87-84bd07d1b983e0d6.js +0 -1
- package/.next/static/chunks/968-dffabcd6f064d487.js +0 -1
- /package/.next/static/{o69X4-v2dIUnsnwvKME49 → IyPevAAG78YPlk_8u0B3B}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -37,20 +37,20 @@ https://nextjs.org/telemetry
|
|
|
37
37
|
Collecting page data ...
|
|
38
38
|
Generating static pages (0/7) ...
|
|
39
39
|
|
|
40
40
|
Generating static pages (1/7)
|
|
41
|
-
Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
|
|
42
41
|
|
|
43
42
|
Generating static pages (3/7)
|
|
43
|
+
Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
|
|
44
44
|
|
|
45
45
|
Generating static pages (5/7)
|
|
46
46
|
|
|
47
47
|
✓ Generating static pages (7/7)
|
|
48
48
|
Finalizing page optimization ...
|
|
49
49
|
Collecting build traces ...
|
|
50
50
|
|
|
51
51
|
Route (pages) Size First Load JS
|
|
52
|
-
┌ ● / 1.23 kB
|
|
52
|
+
┌ ● / 1.23 kB 143 kB
|
|
53
53
|
├ └ css/197e314c5a03eabd.css 740 B
|
|
54
54
|
├ /_app 0 B 90.7 kB
|
|
55
|
-
├ ● /[...slug] 2.79 kB
|
|
55
|
+
├ ● /[...slug] 2.79 kB 156 kB
|
|
56
56
|
├ └ css/e47f1a002bdcf76f.css 2.38 kB
|
|
57
|
-
├ ● /[slug]/p 11.2 kB
|
|
57
|
+
├ ● /[slug]/p 11.2 kB 153 kB
|
|
58
58
|
├ └ css/9b6bba2472d272ec.css 10.5 kB
|
|
59
59
|
├ ○ /404 1.28 kB 126 kB
|
|
60
60
|
├ ● /500 1.29 kB 126 kB
|
|
@@ -60,7 +60,7 @@ Route (pages) Size First Load JS
|
|
|
60
60
|
├ λ /api/health/ready 0 B 90.7 kB
|
|
61
61
|
├ λ /api/preview 0 B 90.7 kB
|
|
62
62
|
├ ● /checkout 661 B 126 kB
|
|
63
|
-
├ ● /login 1.4 kB
|
|
63
|
+
├ ● /login 1.4 kB 127 kB
|
|
64
64
|
└ ● /s 2.22 kB 155 kB
|
|
65
65
|
+ First Load JS shared by all 93.8 kB
|
|
66
66
|
├ chunks/framework-8e279965036b6169.js 45.4 kB
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
$ jest
|
|
2
|
-
PASS test/utils/multipleTemplates.test.ts (
|
|
3
|
-
PASS test/server/cms/index.test.ts (
|
|
4
|
-
PASS test/server/index.test.ts (38.
|
|
2
|
+
PASS test/utils/multipleTemplates.test.ts (34.399 s)
|
|
3
|
+
PASS test/server/cms/index.test.ts (36.222 s)
|
|
4
|
+
PASS test/server/index.test.ts (38.351 s)
|
|
5
5
|
|
|
6
6
|
Test Suites: 3 passed, 3 total
|
|
7
7
|
Tests: 19 passed, 19 total
|
|
8
8
|
Snapshots: 0 total
|
|
9
|
-
Time:
|
|
9
|
+
Time: 39.652 s
|
|
10
10
|
Ran all test suites.
|
package/next.config.js
CHANGED
|
@@ -24,7 +24,12 @@ const nextConfig = {
|
|
|
24
24
|
// TODO: We won't need to enable this experimental feature when migrating to Next.js 13
|
|
25
25
|
experimental: {
|
|
26
26
|
scrollRestoration: true,
|
|
27
|
-
|
|
27
|
+
/*
|
|
28
|
+
* The FastStore Discovery CLI will update this value to match the path where the
|
|
29
|
+
* command is being run, because that is where the node_modules directory is.
|
|
30
|
+
* For discovery-only paths, that is the user directory, and for monorepo, that is the base
|
|
31
|
+
* of the monorepo
|
|
32
|
+
* */
|
|
28
33
|
outputFileTracingRoot: path.join(__dirname, '../'),
|
|
29
34
|
},
|
|
30
35
|
webpack: (config, { isServer, dev }) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.133",
|
|
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": "0666c1692e31629d949a71768f8e156e820f9043"
|
|
132
132
|
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
import { useState } from 'react'
|
|
9
9
|
|
|
10
10
|
import Link from 'src/components/ui/Link'
|
|
11
|
+
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
11
12
|
|
|
12
13
|
type Item = {
|
|
13
14
|
url: string
|
|
@@ -38,6 +39,7 @@ export interface FooterLinksProps {
|
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
function FooterLinks({ links }: FooterLinksProps) {
|
|
42
|
+
const { isDesktop } = useScreenResize()
|
|
41
43
|
const [indicesExpanded, setIndicesExpanded] = useState<Set<number>>(
|
|
42
44
|
new Set([])
|
|
43
45
|
)
|
|
@@ -53,7 +55,7 @@ function FooterLinks({ links }: FooterLinksProps) {
|
|
|
53
55
|
|
|
54
56
|
return (
|
|
55
57
|
<section data-fs-footer data-fs-footer-links>
|
|
56
|
-
|
|
58
|
+
{!isDesktop && (
|
|
57
59
|
<UIAccordion indices={indicesExpanded} onChange={onChange}>
|
|
58
60
|
{links.map(({ sectionTitle, items }) => (
|
|
59
61
|
<UIAccordionItem key={sectionTitle}>
|
|
@@ -64,9 +66,9 @@ function FooterLinks({ links }: FooterLinksProps) {
|
|
|
64
66
|
</UIAccordionItem>
|
|
65
67
|
))}
|
|
66
68
|
</UIAccordion>
|
|
67
|
-
|
|
69
|
+
)}
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
{isDesktop && (
|
|
70
72
|
<nav data-fs-footer-links-columns aria-label="Footer Links Navigation">
|
|
71
73
|
{links.map(({ sectionTitle, items }) => (
|
|
72
74
|
<div key={sectionTitle}>
|
|
@@ -75,7 +77,7 @@ function FooterLinks({ links }: FooterLinksProps) {
|
|
|
75
77
|
</div>
|
|
76
78
|
))}
|
|
77
79
|
</nav>
|
|
78
|
-
|
|
80
|
+
)}
|
|
79
81
|
</section>
|
|
80
82
|
)
|
|
81
83
|
}
|
|
@@ -12,6 +12,7 @@ import Link from 'src/components/ui/Link'
|
|
|
12
12
|
import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
|
|
13
13
|
|
|
14
14
|
import type { NavbarProps as SectionNavbarProps } from '../../sections/Navbar'
|
|
15
|
+
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
15
16
|
|
|
16
17
|
export interface NavbarProps {
|
|
17
18
|
/**
|
|
@@ -78,6 +79,8 @@ function Navbar({
|
|
|
78
79
|
} = useOverrideComponents<'Navbar'>()
|
|
79
80
|
const scrollDirection = useScrollDirection()
|
|
80
81
|
const { openNavbar, navbar: displayNavbar } = useUI()
|
|
82
|
+
const { isDesktop } = useScreenResize()
|
|
83
|
+
|
|
81
84
|
const searchMobileRef = useRef<SearchInputRef>(null)
|
|
82
85
|
const [searchExpanded, setSearchExpanded] = useState(false)
|
|
83
86
|
|
|
@@ -157,7 +160,7 @@ function Navbar({
|
|
|
157
160
|
</NavbarRow.Component>
|
|
158
161
|
</NavbarHeader.Component>
|
|
159
162
|
|
|
160
|
-
<NavbarLinks links={links} region={region}
|
|
163
|
+
{isDesktop && <NavbarLinks links={links} region={region} />}
|
|
161
164
|
|
|
162
165
|
{displayNavbar && (
|
|
163
166
|
<NavbarSlider
|
|
@@ -6,6 +6,7 @@ import { gql } from '@generated'
|
|
|
6
6
|
import { ProductGalleryProps } from 'src/components/ui/ProductGallery/ProductGallery'
|
|
7
7
|
import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
|
|
8
8
|
import { useFilter } from 'src/sdk/search/useFilter'
|
|
9
|
+
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
9
10
|
|
|
10
11
|
interface Props {
|
|
11
12
|
/**
|
|
@@ -35,17 +36,18 @@ function Filter({
|
|
|
35
36
|
|
|
36
37
|
const filter = useFilter(allFacets)
|
|
37
38
|
const { filter: displayFilter } = useUI()
|
|
39
|
+
const { isDesktop } = useScreenResize()
|
|
38
40
|
|
|
39
41
|
return (
|
|
40
42
|
<>
|
|
41
|
-
|
|
43
|
+
{isDesktop && (
|
|
42
44
|
<FilterDesktop.Component
|
|
43
45
|
{...FilterDesktop.props}
|
|
44
46
|
{...filter}
|
|
45
47
|
testId={testId}
|
|
46
48
|
title={filterCmsData?.title}
|
|
47
49
|
/>
|
|
48
|
-
|
|
50
|
+
)}
|
|
49
51
|
|
|
50
52
|
{displayFilter && (
|
|
51
53
|
<Suspense fallback={null}>
|
|
@@ -3,6 +3,7 @@ import Section from '../Section/Section'
|
|
|
3
3
|
import styles from './section.module.scss'
|
|
4
4
|
import { RegionBarDefaultComponents } from './DefaultComponents'
|
|
5
5
|
import { getOverridableSection } from '../../..//sdk/overrides/getOverriddenSection'
|
|
6
|
+
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
6
7
|
|
|
7
8
|
type RegionBarSectionProps = {
|
|
8
9
|
/**
|
|
@@ -27,14 +28,15 @@ type RegionBarSectionProps = {
|
|
|
27
28
|
buttonIcon?: RegionBarProps['buttonIcon']
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
function RegionBarSection({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}: RegionBarSectionProps) {
|
|
31
|
+
function RegionBarSection({ ...otherProps }: RegionBarSectionProps) {
|
|
32
|
+
const { isMobile } = useScreenResize()
|
|
33
|
+
|
|
34
34
|
return (
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
35
|
+
isMobile && (
|
|
36
|
+
<Section className={`${styles.section} section-region-bar`}>
|
|
37
|
+
<RegionBar {...otherProps} />
|
|
38
|
+
</Section>
|
|
39
|
+
)
|
|
38
40
|
)
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -2,6 +2,8 @@ import type { PropsWithChildren } from 'react'
|
|
|
2
2
|
import { Carousel as UICarousel } from '@faststore/ui'
|
|
3
3
|
import type { CarouselProps as UICarouselProps } from '@faststore/ui'
|
|
4
4
|
|
|
5
|
+
import useScreenResize from 'src/sdk/ui/useScreenResize'
|
|
6
|
+
|
|
5
7
|
export type CarouselProps = {
|
|
6
8
|
id?: string
|
|
7
9
|
testId?: string
|
|
@@ -21,7 +23,9 @@ function Carousel({
|
|
|
21
23
|
variant = 'scroll',
|
|
22
24
|
infiniteMode = false,
|
|
23
25
|
}: PropsWithChildren<CarouselProps>) {
|
|
24
|
-
const isMobile =
|
|
26
|
+
const { loading, isTablet, isMobile } = useScreenResize()
|
|
27
|
+
|
|
28
|
+
if (loading) return null
|
|
25
29
|
|
|
26
30
|
return (
|
|
27
31
|
<UICarousel
|
|
@@ -29,7 +33,7 @@ function Carousel({
|
|
|
29
33
|
testId={testId}
|
|
30
34
|
variant={variant}
|
|
31
35
|
infiniteMode={infiniteMode}
|
|
32
|
-
itemsPerPage={isMobile ? 1.6 : itemsPerPage}
|
|
36
|
+
itemsPerPage={isTablet || isMobile ? 1.6 : itemsPerPage}
|
|
33
37
|
>
|
|
34
38
|
{children}
|
|
35
39
|
</UICarousel>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
// We are using the Moto G Power device measurement as a reference (mobile), as used by PageSpeed Insights.
|
|
4
|
+
const MAX_MOBILE_WIDTH = 420
|
|
5
|
+
const MAX_TABLET_WIDTH = 768
|
|
6
|
+
const MIN_NOTEBOOK_WIDTH = 1280
|
|
7
|
+
|
|
8
|
+
function useScreenResize() {
|
|
9
|
+
const [isMobile, setIsMobile] = useState(undefined)
|
|
10
|
+
const [isTablet, setIsTablet] = useState(undefined)
|
|
11
|
+
const [isDesktop, setIsDesktop] = useState(undefined)
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const handleResize = () => {
|
|
15
|
+
setIsMobile(window.innerWidth <= MAX_MOBILE_WIDTH)
|
|
16
|
+
setIsTablet(
|
|
17
|
+
window.innerWidth > MAX_MOBILE_WIDTH &&
|
|
18
|
+
window.innerWidth <= MAX_TABLET_WIDTH
|
|
19
|
+
)
|
|
20
|
+
setIsDesktop(window.innerWidth >= MIN_NOTEBOOK_WIDTH)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
handleResize()
|
|
24
|
+
|
|
25
|
+
window.addEventListener('resize', handleResize)
|
|
26
|
+
|
|
27
|
+
return () => {
|
|
28
|
+
window.removeEventListener('resize', handleResize)
|
|
29
|
+
}
|
|
30
|
+
}, [])
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
isMobile,
|
|
34
|
+
isTablet,
|
|
35
|
+
isDesktop,
|
|
36
|
+
loading:
|
|
37
|
+
isMobile === undefined ||
|
|
38
|
+
isTablet === undefined ||
|
|
39
|
+
isDesktop === undefined,
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default useScreenResize
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[87],{5699:function(e,t,r){"use strict";var n=r(2784),a=r(1516);t.Z=function({testId:e,title:t,indicesExpanded:r,onAccordionChange:o,children:l}){return n.createElement("div",{"data-fs-filter":!0,"data-testid":e},n.createElement("h2",{"data-fs-filter-title":!0},t),n.createElement(a.Z,{indices:r,onChange:o,"data-fs-filter-accordion":!0},l))}},2815:function(e,t,r){"use strict";var n=r(2784),a=r(4564);t.Z=function({children:e}){return n.createElement(a.Z,{"data-fs-filter-list":!0},e)}},1305:function(e,t,r){"use strict";r.d(t,{Z:function(){return Filter_FilterFacetBooleanItem}});var n=r(2784);let a=(0,n.forwardRef)(function({testId:e="fs-checkbox",partial:t,...r},a){return n.createElement("input",{ref:a,"data-fs-checkbox":!0,"data-testid":e,"data-fs-checkbox-partial":t,type:"checkbox",...r})});var o=r(1953),l=r(276),Filter_FilterFacetBooleanItem=function({testId:e,id:t,selected:r,value:i,quantity:c,facetKey:s,label:u,onFacetChange:d}){return n.createElement("li",{key:t,"data-fs-filter-list-item":!0},n.createElement(a,{id:t,checked:r,onChange:()=>d({key:s,value:i},"BOOLEAN"),"data-fs-filter-list-item-checkbox":!0,"data-testid":`${e}-accordion-panel-checkbox`,"data-value":i,"data-quantity":c}),n.createElement(o.Z,{htmlFor:t,className:"text__title-mini-alt","data-fs-filter-list-item-label":!0},u," ",n.createElement(l.Z,{"data-fs-filter-list-item-badge":!0},c)))}},1355:function(e,t,r){"use strict";r.d(t,{Z:function(){return Filter_FilterFacetRange}});var n=r(2784);let percent=(e,t,r)=>Math.round((e-t)/(r-t)*100),a=(0,n.forwardRef)(function({min:e,max:t,absoluteValuesLabel:r,onChange:a,onEnd:o,testId:l="fs-slider",getAriaValueText:i,step:c,minValueLabelComponent:s,maxValueLabelComponent:u,...d},p){let f=(0,n.useMemo)(()=>(t.absolute-e.absolute)/100,[t.absolute,e.absolute]),[m,b]=(0,n.useState)(()=>percent(e.selected,e.absolute,t.absolute)),[v,y]=(0,n.useState)(()=>percent(t.selected,e.absolute,t.absolute)),[h,g]=(0,n.useState)(()=>Math.floor(e.absolute+m*f)),[j,P]=(0,n.useState)(()=>Math.round(e.absolute+v*f));return(0,n.useImperativeHandle)(p,()=>({setSliderValues:r=>{let n=Math.min(Number(r.min),j);if(g(n),b(percent(n,e.absolute,t.absolute)),r.max>t.absolute){P(t.absolute),y(percent(t.absolute,e.absolute,t.absolute));return}let a=Math.max(Number(r.max),h);P(a),y(percent(a,e.absolute,t.absolute))}})),n.createElement("div",{"data-fs-slider":!0,"data-testid":l,...d},n.createElement("div",{"data-fs-slider-absolute-values":!0},n.createElement("span",null,r.min),n.createElement("span",null,r.max)),n.createElement("div",{"data-fs-slider-wrapper":!0},n.createElement("div",{"data-fs-slider-range":!0,style:{left:`${m}%`,width:`${v-m}%`}}),n.createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:h,step:c,onMouseUp:()=>o?.({min:h,max:j}),onTouchEnd:()=>o?.({min:h,max:j}),onChange:r=>{let n=Math.min(Number(r.target.value),j);g(n),b(percent(n,e.absolute,t.absolute)),a?.({min:n,max:j})},"data-fs-slider-thumb":"left","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":h,"aria-label":String(h),"aria-labelledby":i?.(h,"min")}),s&&n.createElement("span",{"data-fs-slider-value-label":"min",style:{left:`calc(${h/t.absolute*100}% + (${8-.2*(h/t.absolute*100)}px))`}},s(h)),n.createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:j,step:c,onMouseUp:()=>o?.({min:h,max:j}),onTouchEnd:()=>o?.({min:h,max:j}),onChange:r=>{let n=Math.max(Number(r.target.value),h);P(n),y(percent(n,e.absolute,t.absolute)),a?.({min:h,max:n})},"data-fs-slider-thumb":"right","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":j,"aria-label":String(j),"aria-labelledby":i?.(j,"max")}),u&&n.createElement("span",{"data-fs-slider-value-label":"max",style:{left:`calc(${j/t.absolute*100}% + (${8-.2*(j/t.absolute*100)}px))`}},u(j))))});var o=r(9767),l=r(3779);let i=(0,n.forwardRef)(function({formatter:e,max:t,min:r,step:i=1,onChange:c,onEnd:s,testId:u="fs-price-range",variant:d,"aria-label":p,...f},m){let b=(0,n.useRef)();(0,n.useImperativeHandle)(m,()=>({setPriceRangeValues:e=>{c?.(e),b.current?.setSliderValues(e)}}));let v=(0,n.useRef)(null),y=(0,n.useRef)(null),[h,g]=(0,n.useState)(),[j,P]=(0,n.useState)(),[w,O]=(0,n.useState)({min:Math.floor(r.selected),max:Math.round(t.selected)});return n.createElement("div",{"data-fs-price-range":!0,"data-testid":u,...f},n.createElement(a,{ref:b,min:r,max:t,step:i,onEnd:e=>{s?.(e),g(void 0),P(void 0),O({min:e.min,max:e.max}),v.current?.value&&(v.current.value=String(e.min)),y.current?.value&&(y.current.value=String(e.max))},"aria-label":p,onChange:e=>c?.(e),absoluteValuesLabel:{min:n.createElement(o.Z,{value:Math.floor(r.absolute),variant:d,formatter:e}),max:n.createElement(o.Z,{value:Math.round(t.absolute),variant:d,formatter:e})},minValueLabelComponent:t=>n.createElement(o.Z,{value:t,variant:d,formatter:e}),maxValueLabelComponent:t=>n.createElement(o.Z,{value:t,variant:d,formatter:e})}),n.createElement("div",{"data-fs-price-range-inputs":!0},n.createElement(l.Z,{id:"price-range-min",step:i,label:"Min",type:"number",inputMode:"numeric",error:h,inputRef:v,min:Math.floor(r.absolute),max:w.max,value:w.min,onChange:e=>{var t;return t=e.target.value,void(g(void 0),Number(t)<Math.floor(r.absolute)||(Number(t)>Math.floor(w.max)&&g("Min price can't be greater than max"),O({...w,min:Number(t)}),b.current?.setSliderValues({...w,min:Number(t)})))},onBlur:()=>!h&&s?.(w)}),n.createElement(l.Z,{id:"price-range-max",label:"Max",step:i,type:"number",inputMode:"numeric",error:j,inputRef:y,max:Math.round(t.absolute),min:w.min,value:w.max,onChange:e=>{var r;return r=e.target.value,void(P(void 0),Number(r)>Math.round(t.absolute)||(Number(r)<Math.round(w.min)&&P("Max price can't be smaller than min"),O({...w,max:Number(r)}),b.current?.setSliderValues({...w,max:Number(r)})))},onBlur:()=>!j&&s?.(w)})))}),formatRange=(e,t)=>`${e.toFixed(2)}-to-${t.toFixed(2)}`;var Filter_FilterFacetRange=function({min:e,max:t,formatter:r,facetKey:a,onFacetChange:o}){return n.createElement(i,{"data-fs-filter-facet-range":!0,min:e,max:t,formatter:r,step:1,onEnd:e=>o({key:a,value:formatRange(e.min,e.max)},"RANGE")})}},4199:function(e,t,r){"use strict";var n=r(2784),a=r(783),o=r(7734),l=r(7583);t.Z=function({testId:e,label:t,index:r,children:i,type:c}){return n.createElement(a.Z,{key:`${t}-${r}`,prefixId:e,testId:`${e}-accordion`,index:r,"data-type":c,"data-fs-filter-accordion-item":!0},n.createElement(o.Z,{testId:`${e}-accordion-button`},t),n.createElement(l.Z,null,i))}},8545:function(e,t,r){"use strict";var n=r(7542),a=r(9410),o=r(9089),l=r(9919),i=r.n(l),c=r(2322);t.Z=function(e){var{banner:t,newsletter:r}=e;return(0,c.jsx)(o.Z,{className:"".concat(i().section," section-banner-newsletter"),children:(0,c.jsxs)("div",{"data-fs-banner-text-newsletter":!0,"data-fs-content":"banner-newsletter",children:[(0,c.jsx)(n.i,{title:t.title,caption:t.caption,link:null==t?void 0:t.link,variant:t.variant,colorVariant:t.colorVariant}),(0,c.jsx)(a.O,{card:!0,colorVariant:r.colorVariant,title:r.title,description:r.description,icon:r.icon,privacyPolicy:r.privacyPolicy,emailInputLabel:r.emailInputLabel,displayNameInput:r.displayNameInput,nameInputLabel:r.nameInputLabel,subscribeButtonLabel:r.subscribeButtonLabel,subscribeButtonLoadingLabel:r.subscribeButtonLoadingLabel,toastSubscribe:r.toastSubscribe,toastSubscribeError:r.toastSubscribeError})]})})}},7936:function(e,t,r){"use strict";r.d(t,{j:function(){return S}});var n=r(9499),a=r(7296),o=r(2784),l=r(9089),i=r(4177),c=r.n(i),s=r(4960),u=r(4329),d=r(2614),p=r(727);let f=(0,o.createContext)({isOpen:!1,dropdownButtonRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});var Dropdown_Dropdown=({children:e,isOpen:t=!1,onDismiss:r,id:n="fs-dropdown"})=>{let[a,l]=(0,o.useState)(t),i=(0,o.useRef)([]),c=(0,o.useRef)(0),s=(0,o.useRef)(null),u=(0,o.useCallback)(()=>{l(!1),r?.()},[r]),open=()=>{l(!0)},d=(0,o.useCallback)(()=>{l(e=>(e&&(r?.(),s.current?.focus()),!e))},[r]);(0,o.useEffect)(()=>{l(t)},[t]),(0,o.useEffect)(()=>{a&&i?.current[0]?.focus()},[a]),(0,o.useEffect)(()=>{let e=!0,event=t=>{let r=i?.current.some(e=>t.target===e);if(e){e=!1;return}r||u()};return a?document.addEventListener("click",event):document.removeEventListener("click",event),()=>{document.removeEventListener("click",event)}},[u,a]);let p=(0,o.useMemo)(()=>({isOpen:a,close:u,open,toggle:d,dropdownButtonRef:s,onDismiss:r,selectedDropdownItemIndexRef:c,dropdownItemsRef:i,id:n}),[u,n,a,r,d]);return o.createElement(f.Provider,{value:p},e)},m=r(3339);let useDropdown=()=>{let e=(0,o.useContext)(f);if(void 0===e)throw Error("Do not use useDropdown hook outside the Dropdown context.");return e},b=(0,o.forwardRef)(function({testId:e="fs-dropdown-button","aria-label":t,children:r,...n},a){let{toggle:l,dropdownButtonRef:i,isOpen:c,id:s}=useDropdown();return(0,o.useImperativeHandle)(a,()=>i.current,[i]),o.createElement(m.Z,{"data-fs-dropdown-button":!0,onClick:l,"data-testid":e,ref:i,"aria-label":t,"aria-expanded":c,"aria-haspopup":"menu","aria-controls":s,variant:"tertiary",...n},r)});var v=r(8316);let useDropdownPosition=()=>{let{dropdownButtonRef:e}=useDropdown(),t="undefined"!=typeof window,r=e?.current?.getBoundingClientRect(),n=r?.top??0,a=r?.height??0,o=r?.left??0,l=t?document?.documentElement?.scrollTop:0,i=t?document?.documentElement?.scrollLeft:0;return{position:"absolute",top:n+a+l,left:o+i}};var Dropdown_DropdownMenu=({children:e,testId:t="fs-dropdown-menu",size:r="regular",style:n,...a})=>{let{isOpen:l,close:i,dropdownItemsRef:c,selectedDropdownItemIndexRef:s,dropdownButtonRef:u,id:d}=useDropdown(),p=useDropdownPosition(),f=o.Children.toArray(e).length,handleDownPress=()=>{s.current<f-1?s.current++:s.current=0,c?.current[s.current]?.focus()},handleUpPress=()=>{s.current>0?s.current--:s.current=f-1,c?.current[s.current]?.focus()},handleHomePress=()=>{s.current=0,c?.current[s.current]?.focus()},handleEndPress=()=>{s.current=f-1,c?.current[s.current]?.focus()},handleEscapePress=()=>{i?.(),u?.current?.focus()};return l?(0,v.createPortal)(o.createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{e.defaultPrevented||"Enter"===e.key||(e.preventDefault(),"Escape"===e.key&&handleEscapePress(),"ArrowDown"===e.key&&handleDownPress(),"ArrowUp"===e.key&&handleUpPress(),"Home"===e.key&&handleHomePress(),"End"===e.key&&handleEndPress(),e.stopPropagation())},"data-testid":`${t}-overlay`},o.createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":r,"data-testid":t,style:{...p,...n},id:d,...a},e)),document.body):(c.current=[],null)};let y=(0,o.forwardRef)(function({children:e,icon:t,onClick:r,testId:n="fs-dropdown-item",...a},l){let{dropdownItemsRef:i,selectedDropdownItemIndexRef:c,close:s}=useDropdown(),[u,d]=(0,o.useState)(0),p=(0,o.useRef)(),onFocusItem=()=>{c.current=u,i?.current[c.current]?.focus()};return(0,o.useImperativeHandle)(l,()=>p.current,[]),o.createElement("button",{"data-fs-dropdown-item":!0,"data-testid":n,ref:e=>{e&&!i?.current.includes(e)&&(i?.current.push(e),d(i?.current.findIndex(t=>t===e)??0)),p.current=e},onFocus:onFocusItem,onMouseEnter:onFocusItem,onClick:e=>{r?.(e),s?.()},role:"menuitem",tabIndex:-1,"data-index":u,...a},!!t&&t,e)});var h=r(4564),Breadcrumb_Divider=({divider:e,testId:t})=>{let r={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return o.isValidElement(e)?o.cloneElement(e,r):o.createElement("span",{...r},e??"/")},Breadcrumb_ListItem=({children:e,isLastItem:t,divider:r,testId:n})=>{let a={"data-testid":`${n}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return o.isValidElement(e)?o.createElement("li",{"data-fs-breadcrumb-list-item":!0},o.cloneElement(e,a),t?null:o.createElement(Breadcrumb_Divider,{divider:r,testId:n})):o.createElement("li",{"data-fs-breadcrumb-list-item":!0},o.createElement("span",{...a},e,t?null:o.createElement(Breadcrumb_Divider,{divider:r,testId:n})))};let g=(0,o.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",...n},a){return o.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:a,"data-fs-breadcrumb":!0,"data-testid":r,...n},o.createElement(h.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},o.Children.toArray(e).map((e,n,a)=>{let l=n===a.length-1;return o.createElement(Breadcrumb_ListItem,{isLastItem:l,divider:t,key:`breadcrumb-${n}`,testId:r},e)})))}),j=(0,o.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",breadcrumbList:n,isDesktop:a=!1,renderLink:l,homeLink:i,dropdownButtonIcon:c=o.createElement(d.Z,{name:"DotsThree"}),collapsedItemsIcon:s=o.createElement(d.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...u},f){let m=a?n[0]:null,v=a?n.slice(1,-2):n.slice(0,-2),h=n.slice(-2),j=n.length>4,P=(0,o.useCallback)(e=>{let t=l?.(e),r=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,o.cloneElement)(t,{...r,key:e.itemProps.position}):o.createElement(p.Z,{...r,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)},[l]);return o.createElement(g,{ref:f,"data-fs-breadcrumb-is-desktop":a,...u},i,!j&&n.map((e,t)=>n.length===t+1?o.createElement("span",{key:String(e.position)},e.name):P({itemProps:e,collapsed:!1})),j&&m&&P({itemProps:m,collapsed:!1}),j&&o.createElement(Dropdown_Dropdown,null,o.createElement(b,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},c),o.createElement(Dropdown_DropdownMenu,{"data-fs-breadcrumb-dropdown-menu":!0},v.map(e=>o.createElement(y,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:s},P({itemProps:e,collapsed:!0}))))),j&&h.map((e,t)=>h.length===t+1?o.createElement("span",{key:String(e.position)},e.name):P({itemProps:e,collapsed:!1})))});var P={Breadcrumb:({breadcrumbList:e,...t})=>o.createElement(o.Fragment,null,o.createElement(j,{breadcrumbList:e,...t}),o.createElement(j,{breadcrumbList:e,isDesktop:!0,...t})),Icon:d.Z},w=r(2322);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}var O=(0,a.B)("Breadcrumb",function(e){var t,r,a,o,i,d,p,f,m,b=Object.assign({},e),{Breadcrumb:v}=(0,u.r3)(),y=(0,s.qt)(),h=(0,s.OJ)(y)?null==y?void 0:null===(t=y.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:null===(a=r.seo)||void 0===a?void 0:a.title:"All Products",g=(0,s.tS)(y)?null==y?void 0:null===(o=y.data)||void 0===o?void 0:null===(i=o.product)||void 0===i?void 0:null===(d=i.breadcrumbList)||void 0===d?void 0:d.itemListElement:(0,s.OJ)(y)?null==y?void 0:null===(p=y.data)||void 0===p?void 0:null===(f=p.collection)||void 0===f?void 0:null===(m=f.breadcrumbList)||void 0===m?void 0:m.itemListElement:[{item:"/",name:h,position:1}];return(0,w.jsx)(l.Z,{className:"".concat(c().section," section-breadcrumb"),children:(0,w.jsx)(v.Component,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({breadcrumbList:g},b))})},P),_=(0,o.memo)(O);function OverriddenDefaultBreadcrumb_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 OverriddenDefaultBreadcrumb_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultBreadcrumb_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultBreadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var S=(0,a.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},{section:"Breadcrumb"}),{},{Section:_}))},306:function(e,t,r){"use strict";r.d(t,{f:function(){return Q}});var n=r(9499),a=r(7296),o=r(4730),l=r(9029),i=r(5351),c=r(2784),s=r(6652),u=r(4329),d=r(9664),p=["value"];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 reducer=(e,t)=>{var{expanded:r,selected:n}=e,{type:a,payload:o}=t;switch(a){case"toggleExpanded":return r.has(o)?r.delete(o):r.add(o),_objectSpread(_objectSpread({},e),{},{expanded:new Set(r)});case"selectFacets":if(o!==n)return _objectSpread(_objectSpread({},e),{},{selected:o});break;case"toggleFacet":return _objectSpread(_objectSpread({},e),{},{selected:(0,d.wB)(e.selected,o)});case"setFacet":return _objectSpread(_objectSpread({},e),{},{selected:(0,d.uL)(e.selected,o.facet,o.unique)});default:throw Error("Action ".concat(a," not implemented"))}return e},useFilter=e=>{var{state:{selectedFacets:t}}=(0,l.R)(),{0:{selected:r,expanded:n},1:a}=(0,c.useReducer)(reducer,null,()=>({expanded:new Set([]),selected:t})),i=(0,c.useMemo)(()=>r.reduce((e,t)=>{var r;return e.has(t.key)||e.set(t.key,new Map),null===(r=e.get(t.key))||void 0===r||r.set(t.value,t),e},new Map),[r]),s=(0,c.useMemo)(()=>e.map(e=>"StoreFacetBoolean"===e.__typename?_objectSpread(_objectSpread({},e),{},{values:e.values.map(t=>{var r,{value:n}=t;return _objectSpread(_objectSpread({},(0,o.Z)(t,p)),{},{value:n,selected:!!(null===(r=i.get(e.key))||void 0===r?void 0:r.has(n))})})}):e),[e,i]);return(0,c.useEffect)(()=>{a({type:"selectFacets",payload:t})},[t]),{facets:s,selected:r,expanded:n,dispatch:a}},f=r(2322);function Filter_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 Filter_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Filter_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Filter_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var Filter_Filter=function(e){var t,r,{facets:n,testId:a="fs-filter",filter:o}=e,{__experimentalFilterDesktop:l,__experimentalFilterSlider:i}=(0,u.r3)(),d=useFilter(n),{filter:p}=(0,s.l)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"hidden-mobile",children:(0,f.jsx)(l.Component,Filter_objectSpread(Filter_objectSpread(Filter_objectSpread({},l.props),d),{},{testId:a,title:null==o?void 0:o.title}))}),p&&(0,f.jsx)(c.Suspense,{fallback:null,children:(0,f.jsx)(i.Component,Filter_objectSpread(Filter_objectSpread(Filter_objectSpread({},i.props),d),{},{testId:a,title:null==o?void 0:o.title,clearButtonLabel:null==o?void 0:null===(t=o.mobileOnly)||void 0===t?void 0:t.clearButtonLabel,applyButtonLabel:null==o?void 0:null===(r=o.mobileOnly)||void 0===r?void 0:r.applyButtonLabel}))})]})},m=r(1953),b=r(2614);let v=(0,c.forwardRef)(function({options:e,id:t,testId:r="fs-select",...n},a){return c.createElement("div",{"data-fs-select":!0},c.createElement("select",{ref:a,id:t,"data-testid":r,...n},Object.keys(e).map(t=>c.createElement("option",{key:t,value:t},e[t]))),c.createElement(b.Z,{"data-fs-select-icon":!0,name:"CaretDown"}))}),y=(0,c.forwardRef)(function({id:e,label:t,options:r,testId:n="fs-select-field",...a},o){return c.createElement("div",{ref:o,"data-fs-select-field":!0},c.createElement(m.Z,{"data-fs-select-field-label":!0,htmlFor:e},t),c.createElement(v,{id:e,options:r,"data-testid":n,...a}))});function Sort_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 Sort_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Sort_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Sort_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var h={price_desc:"Price, descending",price_asc:"Price, ascending",orders_desc:"Top sales",name_asc:"Name, A-Z",name_desc:"Name, Z-A",release_desc:"Release date",discount_desc:"Discount",score_desc:"Relevance"},g=Object.keys(h),Sort_Sort=function(e){var{label:t="Sort by",options:r=h}=e,{state:n,setState:a}=(0,l.R)(),o=Object.keys(r).reduce((e,t)=>{var n;return e[t]=null!==(n=r[t])&&void 0!==n?n:h[t],e},{});return(0,f.jsx)(y,{id:"sort-select",className:"sort / text__title-mini-alt",label:t,options:o,onChange:e=>{var t=g[e.target.selectedIndex];a(Sort_objectSpread(Sort_objectSpread({},n),{},{sort:t,page:0}))},value:n.sort,testId:"search-sort"})},j=r(792),FilterSkeleton_FilterSkeleton=function(e){var{children:t,loading:r=!0}=e;return r?(0,f.jsxs)("div",{"data-fs-filter-skeleton":!0,children:[(0,f.jsx)(j.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"}}),(0,f.jsxs)("div",{"data-fs-filter-skeleton-content":!0,children:[(0,f.jsx)(j.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1}),(0,f.jsx)(j.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1}),(0,f.jsx)(j.Z,{"data-fs-filter-skeleton-text":!0,size:{width:"100%",height:"1.5rem"},shimmer:!1})]})]}):(0,f.jsx)(f.Fragment,{children:t})},P=r(4548),w=r(4960),O=r(3523),_=r(9857),S=r(2495),x=r(7553),E=["cache"],prefetchQuery=(e,t,r)=>{var{cache:n}=r,a=(0,o.Z)(r,E),l=(0,x.km)(e.__meta__.operationName,t);n.get(l)||(0,_.JG)(l,(0,S.W)(e,t,a))},k=r(5081);function useProductsPrefetch_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}var D=O.gU,useProductsQueryPrefetch=(e,t)=>{var r=(0,k.y)(e),{cache:a}=(0,_.kY)();return(0,c.useCallback)(()=>prefetchQuery(D,r,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?useProductsPrefetch_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):useProductsPrefetch_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({cache:a},t)),[r,a,t])},useProductsPrefetch=e=>{var{itemsPerPage:t,state:{sort:r,term:n,selectedFacets:a}}=(0,l.R)(),o=useProductsQueryPrefetch({first:t,after:(t*(null!=e?e:0)).toString(),sort:r,term:null!=n?n:"",selectedFacets:a});(0,c.useEffect)(()=>{null!==e&&o()},[e,o])},useDelayedFacets=e=>{var t=(0,c.useRef)([]);return(0,c.useMemo)(()=>{if(e){var r;t.current=null===(r=e.search)||void 0===r?void 0:r.facets}return t.current},[e,t])},F=r(1341),useDelayedPagination=e=>{var t=(0,F.h)(e),{0:r,1:n}=(0,c.useState)(()=>({next:!1,prev:!1}));return(0,c.useEffect)(()=>{n(t)},[t]),r};function ProductGallery_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 ProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var Z=(0,c.lazy)(()=>r.e(798).then(r.bind(r,3798))),C=(0,f.jsx)(P.Z,{loading:!0}),ProductGallery_ProductGallery=function(e){var t,r,n,a,o,d,p,m,b,v,y,h,g,j,P,O,_,S,{title:x,searchTerm:E,totalCount:k,searchTermLabel:D,totalCountLabel:F,filter:G,previousPageButton:R,loadMorePageButton:M,sortBySelector:B,productCard:I}=e,{FilterButtonSkeleton:L,FilterIcon:N,LinkButtonNext:K,LinkButtonPrev:$,MobileFilterButton:q,PrevIcon:A,ResultsCountSkeleton:V,SortSkeleton:z}=(0,u.r3)(),{openFilter:U}=(0,s.l)(),{pages:T,addNextPage:H,addPrevPage:J,itemsPerPage:Q}=(0,l.R)(),W=(0,w.qt)(),Y=null==W?void 0:W.data,X=null!==(t=useDelayedFacets(Y))&&void 0!==t?t:[],{next:ee,prev:et}=useDelayedPagination(k);useProductsPrefetch(et?et.cursor:null),useProductsPrefetch(ee?ee.cursor:null);var er=!!(null==Y?void 0:null===(r=Y.search)||void 0===r?void 0:r.facets),en=!!(null==Y?void 0:null===(n=Y.search)||void 0===n?void 0:n.products);return(0,f.jsxs)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:[E&&(0,f.jsx)("header",{"data-fs-product-listing-search-term":!0,"data-fs-content":"product-gallery",children:(0,f.jsxs)("h1",{children:[D," ",(0,f.jsx)("span",{children:E})]})}),(0,f.jsxs)("div",{"data-fs-product-listing-content-grid":!0,"data-fs-content":"product-gallery",children:[(0,f.jsx)("div",{"data-fs-product-listing-filters":!0,children:(0,f.jsx)(FilterSkeleton_FilterSkeleton,{loading:!er,children:er&&(null==X?void 0:X.length)>0&&(0,f.jsx)(Filter_Filter,{facets:X,filter:G})})}),(0,f.jsx)("div",{"data-fs-product-listing-results-count":!0,"data-count":k,children:(0,f.jsx)(V.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-results-count-skeleton":!0,size:{width:"100%",height:"1.5rem"}},V.props),{},{loading:!en,children:(0,f.jsxs)("h2",{"data-testid":"total-product-count",children:[k," ",F]})}))}),(0,f.jsxs)("div",{"data-fs-product-listing-sort":!0,children:[(0,f.jsx)(z.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-sort-skeleton":!0,size:{width:"auto",height:"1.5rem"}},z.props),{},{loading:!en,children:(0,f.jsx)(Sort_Sort,{label:null==B?void 0:B.label,options:null==B?void 0:B.options})})),(0,f.jsx)(L.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({"data-fs-product-listing-filter-button-skeleton":!0,size:{width:"6rem",height:"1.5rem"}},L.props),{},{loading:!er,children:er&&(null==X?void 0:X.length)>0&&(0,f.jsx)(q.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({variant:"tertiary","data-testid":"open-filter-button",icon:(0,f.jsx)(N.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16},N.props),{},{name:null!==(a=null==G?void 0:null===(o=G.mobileOnly)||void 0===o?void 0:null===(d=o.filterButton)||void 0===d?void 0:null===(p=d.icon)||void 0===p?void 0:p.icon)&&void 0!==a?a:N.props.name,"aria-label":null!==(m=null==G?void 0:null===(b=G.mobileOnly)||void 0===b?void 0:null===(v=b.filterButton)||void 0===v?void 0:null===(y=v.icon)||void 0===y?void 0:y.alt)&&void 0!==m?m:N.props["aria-label"]})),iconPosition:"left"},q.props),{},{onClick:U,children:null==G?void 0:null===(h=G.mobileOnly)||void 0===h?void 0:null===(g=h.filterButton)||void 0===g?void 0:g.label}))}))]}),(0,f.jsxs)("div",{"data-fs-product-listing-results":!0,children:[!1!==et&&(0,f.jsxs)("div",{"data-fs-product-listing-pagination":"top",children:[(0,f.jsx)(i.PB,{additionalLinkTags:[{rel:"prev",href:et.link}]}),(0,f.jsx)($.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({rel:"prev",variant:"secondary",iconPosition:"left",icon:(0,f.jsx)(A.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({width:16,height:16,weight:"bold"},A.props),{},{name:null!==(j=null==R?void 0:null===(P=R.icon)||void 0===P?void 0:P.icon)&&void 0!==j?j:A.props.name,"aria-label":null!==(O=null!==(_=null==R?void 0:null===(S=R.icon)||void 0===S?void 0:S.alt)&&void 0!==_?_:null==R?void 0:R.label)&&void 0!==O?O:A.props["aria-label"]}))},$.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),J()},href:et.link,children:null==R?void 0:R.label}))]}),en?(0,f.jsx)(c.Suspense,{fallback:C,children:T.map(e=>(0,f.jsx)(Z,{page:e,title:x,productCard:I,itemsPerPage:Q,firstPage:T[0]},"gallery-page-".concat(e)))}):C,!1!==ee&&(0,f.jsxs)("div",{"data-fs-product-listing-pagination":"bottom",children:[(0,f.jsx)(i.PB,{additionalLinkTags:[{rel:"next",href:ee.link}]}),(0,f.jsx)(K.Component,ProductGallery_objectSpread(ProductGallery_objectSpread({testId:"show-more",rel:"next",variant:"secondary"},K.props),{},{onClick:e=>{e.currentTarget.blur(),e.preventDefault(),H()},href:ee.link,children:null==M?void 0:M.label}))]})]})]})]})},G=r(9089),R=r(1080),M=r.n(R),B=r(3339),I=r(3922),L=r(6068),N=r(5699),K=r(4199),$=r(2815),q=r(1305),A=r(1355),V=r(113);function FilterDesktop_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 FilterDesktop_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?FilterDesktop_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):FilterDesktop_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var z=r(6133),U=(0,c.lazy)(()=>r.e(624).then(r.bind(r,7624))),T={MobileFilterButton:B.Z,FilterIcon:b.Z,PrevIcon:b.Z,ResultsCountSkeleton:j.Z,SortSkeleton:j.Z,FilterButtonSkeleton:j.Z,LinkButtonPrev:I.Z,LinkButtonNext:I.Z,__experimentalFilterDesktop:function(e){var{facets:t,testId:r,dispatch:n,expanded:a,title:o}=e,{resetInfiniteScroll:i,state:c,setState:s}=(0,l.R)();return(0,f.jsx)(N.Z,{testId:"desktop-".concat(r),title:o,indicesExpanded:a,onAccordionChange:e=>n({type:"toggleExpanded",payload:e}),children:t.map((e,t)=>{var{__typename:n,label:o}=e,l=a.has(t);return(0,f.jsxs)(K.Z,{testId:r,index:t,type:n,label:o,children:["StoreFacetBoolean"===n&&l&&(0,f.jsx)($.Z,{children:e.values.map(t=>(0,f.jsx)(q.Z,{id:"".concat(r,"-").concat(e.label,"-").concat(t.label),testId:r,onFacetChange:e=>{s(FilterDesktop_objectSpread(FilterDesktop_objectSpread({},c),{},{selectedFacets:(0,d.wB)(c.selectedFacets,e),page:0})),i(0)},selected:t.selected,value:t.value,quantity:t.quantity,facetKey:e.key,label:t.label},"".concat(r,"-").concat(e.label,"-").concat(t.label)))}),"StoreFacetRange"===n&&l&&(0,f.jsx)(A.Z,{facetKey:e.key,min:e.min,max:e.max,formatter:"price"===e.key.toLowerCase()?V.P:void 0,onFacetChange:e=>{s(FilterDesktop_objectSpread(FilterDesktop_objectSpread({},c),{},{selectedFacets:(0,d.uL)(c.selectedFacets,e,!0),page:0})),i(0)}})]},"".concat(r,"-").concat(o,"-").concat(t))})})},__experimentalFilterSlider:U,__experimentalProductCard:L.Z,__experimentalEmptyGallery:function(e){var t,r,n,a,o,l,{title:i,firstButton:c,secondButton:s}=e;return(0,f.jsxs)(z.Z,{variant:"rounded",title:null!=i?i:"Nothing matches with your search",titleIcon:(0,f.jsx)(b.Z,{name:"CircleWavyWarning",width:56,height:56,weight:"thin"}),children:[(0,f.jsx)(I.Z,{href:null!==(t=null==c?void 0:c.url)&&void 0!==t?t:"/office",variant:"secondary",icon:(0,f.jsx)(b.Z,{name:null!==(r=null==c?void 0:c.icon)&&void 0!==r?r:"CircleWavyWarning",width:18,height:18,weight:"bold"}),iconPosition:"left",children:null!==(n=null==c?void 0:c.label)&&void 0!==n?n:"Browse Offers"}),(0,f.jsx)(I.Z,{href:null!==(a=null==s?void 0:s.url)&&void 0!==a?a:"/technology",variant:"secondary",icon:(0,f.jsx)(b.Z,{name:null!==(o=null==s?void 0:s.icon)&&void 0!==o?o:"RocketLaunch",width:18,height:18,weight:"bold"}),iconPosition:"left",children:null!==(l=null==s?void 0:s.label)&&void 0!==l?l:"Just Arrived"})]})}},H=["emptyGallery"];function ProductGallery_ProductGallery_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 ProductGallery_ProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductGallery_ProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductGallery_ProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var J=(0,a.B)("ProductGallery",function(e){var t,r,n,a,l,i,c,s,d,p,m,b,{emptyGallery:v}=e,y=(0,o.Z)(e,H),{__experimentalEmptyGallery:h}=(0,u.r3)(),g=(0,w.qt)(),[j,P]=(0,w.En)(g)?[null==g?void 0:null===(t=g.data)||void 0===t?void 0:t.title,null==g?void 0:null===(r=g.data)||void 0===r?void 0:r.searchTerm]:(0,w.OJ)(g)?[null==g?void 0:null===(n=g.data)||void 0===n?void 0:null===(a=n.collection)||void 0===a?void 0:null===(l=a.seo)||void 0===l?void 0:l.title]:[""],O=null!==(i=null==g?void 0:null===(c=g.data)||void 0===c?void 0:null===(s=c.search)||void 0===s?void 0:null===(d=s.products)||void 0===d?void 0:null===(p=d.pageInfo)||void 0===p?void 0:p.totalCount)&&void 0!==i?i:0;return null!=g&&null!==(m=g.data)&&void 0!==m&&null!==(b=m.search)&&void 0!==b&&b.products&&0===O?(0,f.jsx)(G.Z,{className:"".concat(M().section," section-product-gallery"),children:(0,f.jsx)("section",{"data-testid":"product-gallery","data-fs-product-listing":!0,children:(0,f.jsx)(h.Component,ProductGallery_ProductGallery_objectSpread({},v))})}):(0,f.jsx)(G.Z,{className:"".concat(M().section," section-product-gallery layout__section"),children:(0,f.jsx)(ProductGallery_ProductGallery,ProductGallery_ProductGallery_objectSpread({title:j,searchTerm:P,totalCount:O},y))})},T);function OverriddenDefaultProductGallery_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 OverriddenDefaultProductGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultProductGallery_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultProductGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var Q=(0,a.v)(OverriddenDefaultProductGallery_objectSpread(OverriddenDefaultProductGallery_objectSpread({},{section:"ProductGallery"}),{},{Section:J}))},4548:function(e,t,r){"use strict";var n=r(1023),a=r(5476),o=r(2322);t.Z=function(e){var{children:t,aspectRatio:r,loading:l=!0}=e;return l?(0,o.jsx)("ul",{"data-fs-product-grid":!0,children:Array.from({length:n.g},(e,t)=>(0,o.jsx)("li",{children:(0,o.jsx)(a.Z,{aspectRatio:r,bordered:!0})},String(t)))}):(0,o.jsx)(o.Fragment,{children:t})}},7171:function(e,t,r){"use strict";r.d(t,{Bj:function(){return c},Y_:function(){return useCreateUseGalleryPage},__:function(){return useGalleryPage}});var n=r(3523),a=r(9029),o=r(2784),l=r(7553),i=r(5081),c=(0,o.createContext)(e=>({data:null})),useGalleryPage=e=>{var t=(0,o.useContext)(c);if(!t)throw Error("Missing UseGalleryPageContext on React tree");return t(e)},s=n.gU,getKey=e=>JSON.stringify(e),useCreateUseGalleryPage=()=>{var{0:e,1:t}=(0,o.useState)([]),r=(0,o.useRef)([]),n=(0,o.useRef)([]),c=(0,o.useCallback)(function(e){var{state:{sort:c,term:u,selectedFacets:d},itemsPerPage:p}=(0,a.R)(),f=(0,i.y)({first:p,after:(p*e).toString(),sort:c,term:null!=u?u:"",selectedFacets:d}),m=n.current[e]===getKey(f),{data:b}=(0,l.aM)(s,f,{fallbackData:null,suspense:!0,doNotRun:m}),v=!m&&null!==b;if(v){n.current[e]=getKey(f);var y=[...r.current];y[e]=b,r.current=y}return(0,o.useEffect)(()=>{v&&t(t=>{var r=[...t];return r[e]=b,r})},[b,e,v]),(0,o.useMemo)(()=>m?{data:r.current[e]}:{data:b},[m,b,e])},[]);return(0,o.useMemo)(()=>({pages:e,useGalleryPage:c}),[e,c])}},7921:function(e,t,r){"use strict";r.d(t,{U:function(){return useProductGalleryQuery}});var n=r(3523),a=r(7553),o=r(5238),l=r(5081),i=n.VA,useProductGalleryQuery=e=>{var{term:t,sort:n,selectedFacets:c,itemsPerPage:s}=e,{locale:u}=(0,o.kP)(),d=(0,l.y)({first:s,after:"0",sort:n,term:null!=t?t:"",selectedFacets:c});return(0,a.aM)(i,d,{onSuccess:e=>{e&&t&&r.e(195).then(r.bind(r,1153)).then(r=>{var n,a,o,l,{sendAnalyticsEvent:i}=r;i({name:"intelligent_search_query",params:{locale:u,term:t,url:window.location.href,logicalOperator:null!==(n=null===(a=e.search.metadata)||void 0===a?void 0:a.logicalOperator)&&void 0!==n?n:"and",isTermMisspelled:null!==(o=null===(l=e.search.metadata)||void 0===l?void 0:l.isTermMisspelled)&&void 0!==o&&o,totalCount:e.search.products.pageInfo.totalCount}})})}})}},5403:function(e,t,r){"use strict";r.d(t,{j:function(){return useApplySearchState}});var n=r(2784),a=r(1163),useApplySearchState=()=>{var e=(0,a.useRouter)();return(0,n.useCallback)(t=>e.push("".concat(t.pathname).concat(t.search)),[e])}},9919:function(e){e.exports={section:"section_section__YBgvV"}},4177:function(e){e.exports={section:"section_section__dvBbv"}},1080:function(e){e.exports={section:"section_section__4Hqa8",loading:"section_loading__GPzvE"}},1197:function(e,t,r){"use strict";r.d(t,{_:function(){return l},z:function(){return Provider}});var n=r(2784),a=r(2254);function setPagesSessionStorage(e){try{let t=window.history.state?.key;if(!t)return;let r=`__fs_gallery_page_${t}`;sessionStorage.setItem(r,JSON.stringify(e))}catch(e){return}}let reducer=(e,t)=>{switch(t.type){case"addPrev":{let t=e[0]-1,r=[t,...e];return setPagesSessionStorage(r),r}case"addNext":{let t=Number(e[e.length-1])+1,r=[...e,t];return setPagesSessionStorage(r),r}case"reset":{let{payload:e}=t,r=[e];return setPagesSessionStorage(r),r}default:throw new a.q("Unknown action for infinite search")}},useSearchInfiniteState=e=>{let[t,r]=(0,n.useReducer)(reducer,void 0,()=>(function(){try{let e=window.history.state?.key;if(!e)return null;let t=`__fs_gallery_page_${e}`,r=sessionStorage.getItem(t);return r?JSON.parse(r):null}catch(e){return null}})()??[e]),a=(0,n.useMemo)(()=>({addPrevPage:()=>r({type:"addPrev"}),addNextPage:()=>r({type:"addNext"}),resetInfiniteScroll:e=>r({type:"reset",payload:e})}),[]);return{pages:t,...a}};var o=r(2524);let l=(0,n.createContext)(void 0),Provider=({children:e,itemsPerPage:t,onChange:r,...a})=>{let{state:i,...c}=(0,o.X)(a,r),{pages:s,...u}=useSearchInfiniteState(i.page),d=(0,n.useMemo)(()=>({state:i,...c,pages:s,...u,itemsPerPage:t}),[u,t,s,c,i]);return n.createElement(l.Provider,{value:d},e)}},9664:function(e,t,r){"use strict";r.d(t,{Ru:function(){return removeFacet},a2:function(){return toggleFacets},uL:function(){return setFacet},wB:function(){return toggleFacet},wb:function(){return isSearchSort}});var n=r(2254);let a=new Set(["price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc"]),isSearchSort=e=>a.has(e),removeFacet=(e,t)=>{let{value:r}=t,a=e.findIndex(e=>e.value===r);if(a<0)throw new n.q(`Cannot remove ${r} from search params`);return e.filter((e,t)=>t!==a)},setFacet=(e,t,r)=>{if(!0===r){let r=e.findIndex(e=>e.key===t.key);if(r>-1)return e.map((e,n)=>n===r?t:e)}return[...e,t]},toggleFacet=(e,t)=>{let r=e.find(e=>e.key===t.key&&e.value===t.value);return void 0!==r?removeFacet(e,t):setFacet(e,t,!1)},toggleFacets=(e,t)=>t.reduce((e,t)=>toggleFacet(e,t),e)},6142:function(e,t,r){"use strict";r.d(t,{Q:function(){return parse}});var n=r(2254),a=r(9664),o=r(2524);let parse=({pathname:e,searchParams:t})=>{let r=(0,o.j)({base:e,term:t.get("q")??null,sort:t.get("sort")??void 0,page:Number(t.get("page")??0)});if(!(0,a.wb)(r.sort))throw new n.q(`Uknown sorting option ${r.sort}`);let l=t.get("facets")?.split(",")??[];for(let e of l){let n=t.getAll(e);for(let t of n)r.selectedFacets=(0,a.uL)(r.selectedFacets,{key:e,value:t})}return r.passThrough=function(e,t){let r=new URLSearchParams,n=new Set(t),a=Array.from(e.entries());for(let[e,t]of a)n.has(e)||r.append(e,t);return r}(t,["q","sort","page","facets",...l]),r}},1341:function(e,t,r){"use strict";r.d(t,{h:function(){return usePagination}});var n=r(2784),a=r(2339),o=r(9029);let getLink=e=>{let{pathname:t,search:r}=(0,a.Z)(e);return`${t}${r}`},usePagination=e=>{let{pages:t,itemsPerPage:r,state:a}=(0,o.R)(),l=Math.ceil(e/r),i=Number(t[t.length-1])+1,c=t[0]-1;return(0,n.useMemo)(()=>({next:i<l&&{cursor:i,link:getLink({...a,page:i})},prev:c>-1&&{cursor:c,link:getLink({...a,page:c})}}),[i,c,a,l])}},9029:function(e,t,r){"use strict";r.d(t,{R:function(){return useSearch}});var n=r(1197),a=r(7943);let useSearch=()=>(0,a.q)(n._)},2524:function(e,t,r){"use strict";r.d(t,{X:function(){return useSearchState},j:function(){return initialize}});var n=r(2784),a=r(2339);let initialize=({sort:e="score_desc",selectedFacets:t=[],term:r=null,base:n="/",page:a=0,passThrough:o=new URLSearchParams}={})=>({sort:e,selectedFacets:t,term:r,base:n,page:a,passThrough:o}),equals=(e,t)=>(0,a.Z)(e).href===(0,a.Z)(t).href,useSearchState=(e,t)=>{let r=(0,n.useMemo)(()=>initialize(e),[e]);return(0,n.useMemo)(()=>({state:r,setState:e=>!equals(e,r)&&t((0,a.Z)(e))}),[t,r])}},2339:function(e,t){"use strict";t.Z=e=>{let t=new URL(e.base,"http://localhost"),{page:r,selectedFacets:n,sort:a,term:o,passThrough:l}=e;null!==o&&t.searchParams.set("q",o);let i=new Set;for(let e of n)t.searchParams.append(e.key,e.value),i.add(e.key);if(n.length>0&&t.searchParams.set("facets",Array.from(i).join(",")),t.searchParams.set("sort",a),t.searchParams.set("page",r.toString()),l)for(let[e,r]of l.entries())t.searchParams.append(e,r);return t}},7943:function(e,t,r){"use strict";r.d(t,{q:function(){return useContext}});var n=r(2784),a=r(2254);let useContext=e=>{let t=(0,n.useContext)(e);if(void 0===t)throw new a.q(`${e.displayName??"Context"} needs to be on the React tree`);return t}}}]);
|