@faststore/core 2.0.74-alpha.0 → 2.0.76-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/CHANGELOG.md +12 -0
  3. package/package.json +4 -4
  4. package/src/components/cart/CartSidebar/CartSidebar.tsx +5 -1
  5. package/src/components/common/Navbar/navbar.module.scss +0 -1
  6. package/src/components/search/SearchInput/SearchInput.tsx +7 -3
  7. package/src/components/search/SearchInput/search-input.module.scss +0 -8
  8. package/src/components/search/{SearchProductCard/SearchProductCard.tsx → SearchProductItem/SearchProductItem.tsx} +25 -22
  9. package/src/components/search/SearchProductItem/index.ts +1 -0
  10. package/src/components/search/SearchSuggestions/SearchSuggestions.tsx +27 -79
  11. package/src/components/search/search.module.scss +9 -80
  12. package/.next/BUILD_ID +0 -1
  13. package/.next/build-manifest.json +0 -103
  14. package/.next/cache/.tsbuildinfo +0 -1
  15. package/.next/cache/config.json +0 -7
  16. package/.next/cache/eslint/.cache_1gneedd +0 -1
  17. package/.next/cache/next-server.js.nft.json +0 -1
  18. package/.next/cache/webpack/client-production/0.pack +0 -0
  19. package/.next/cache/webpack/client-production/index.pack +0 -0
  20. package/.next/cache/webpack/server-production/0.pack +0 -0
  21. package/.next/cache/webpack/server-production/index.pack +0 -0
  22. package/.next/export-marker.json +0 -1
  23. package/.next/images-manifest.json +0 -1
  24. package/.next/next-server.js.nft.json +0 -1
  25. package/.next/package.json +0 -1
  26. package/.next/prerender-manifest.json +0 -1
  27. package/.next/react-loadable-manifest.json +0 -50
  28. package/.next/required-server-files.json +0 -1
  29. package/.next/routes-manifest.json +0 -1
  30. package/.next/server/chunks/104.js +0 -196
  31. package/.next/server/chunks/143.js +0 -106
  32. package/.next/server/chunks/154.js +0 -201
  33. package/.next/server/chunks/183.js +0 -72
  34. package/.next/server/chunks/247.js +0 -61
  35. package/.next/server/chunks/264.js +0 -67
  36. package/.next/server/chunks/280.js +0 -417
  37. package/.next/server/chunks/287.js +0 -79
  38. package/.next/server/chunks/307.js +0 -109
  39. package/.next/server/chunks/312.js +0 -708
  40. package/.next/server/chunks/317.js +0 -126
  41. package/.next/server/chunks/350.js +0 -120
  42. package/.next/server/chunks/371.js +0 -1467
  43. package/.next/server/chunks/377.js +0 -82
  44. package/.next/server/chunks/394.js +0 -3801
  45. package/.next/server/chunks/439.js +0 -175
  46. package/.next/server/chunks/444.js +0 -464
  47. package/.next/server/chunks/465.js +0 -91
  48. package/.next/server/chunks/576.js +0 -72
  49. package/.next/server/chunks/650.js +0 -216
  50. package/.next/server/chunks/664.js +0 -124
  51. package/.next/server/chunks/676.js +0 -32
  52. package/.next/server/chunks/732.js +0 -51
  53. package/.next/server/chunks/746.js +0 -237
  54. package/.next/server/chunks/849.js +0 -665
  55. package/.next/server/chunks/854.js +0 -72
  56. package/.next/server/chunks/859.js +0 -959
  57. package/.next/server/chunks/872.js +0 -378
  58. package/.next/server/chunks/881.js +0 -320
  59. package/.next/server/chunks/898.js +0 -240
  60. package/.next/server/chunks/914.js +0 -96
  61. package/.next/server/chunks/953.js +0 -673
  62. package/.next/server/chunks/98.js +0 -266
  63. package/.next/server/chunks/992.js +0 -562
  64. package/.next/server/chunks/font-manifest.json +0 -1
  65. package/.next/server/font-manifest.json +0 -1
  66. package/.next/server/middleware-build-manifest.js +0 -1
  67. package/.next/server/middleware-manifest.json +0 -6
  68. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  69. package/.next/server/pages/404.js.nft.json +0 -1
  70. package/.next/server/pages/500.js.nft.json +0 -1
  71. package/.next/server/pages/[...slug].js +0 -609
  72. package/.next/server/pages/[...slug].js.nft.json +0 -1
  73. package/.next/server/pages/[slug]/p.js +0 -2560
  74. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  75. package/.next/server/pages/_app.js +0 -2041
  76. package/.next/server/pages/_app.js.nft.json +0 -1
  77. package/.next/server/pages/_document.js +0 -304
  78. package/.next/server/pages/_document.js.nft.json +0 -1
  79. package/.next/server/pages/_error.js +0 -164
  80. package/.next/server/pages/_error.js.nft.json +0 -1
  81. package/.next/server/pages/account.js.nft.json +0 -1
  82. package/.next/server/pages/api/graphql.js +0 -259
  83. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  84. package/.next/server/pages/api/preview.js +0 -118
  85. package/.next/server/pages/api/preview.js.nft.json +0 -1
  86. package/.next/server/pages/checkout.js.nft.json +0 -1
  87. package/.next/server/pages/en-US/404.html +0 -81
  88. package/.next/server/pages/en-US/500.html +0 -81
  89. package/.next/server/pages/en-US/account.html +0 -81
  90. package/.next/server/pages/en-US/checkout.html +0 -81
  91. package/.next/server/pages/en-US/login.html +0 -81
  92. package/.next/server/pages/en-US/s.html +0 -81
  93. package/.next/server/pages/en-US.html +0 -81
  94. package/.next/server/pages/en-US.json +0 -1
  95. package/.next/server/pages/index.js +0 -407
  96. package/.next/server/pages/index.js.nft.json +0 -1
  97. package/.next/server/pages/login.js.nft.json +0 -1
  98. package/.next/server/pages/s.js.nft.json +0 -1
  99. package/.next/server/pages-manifest.json +0 -16
  100. package/.next/server/webpack-api-runtime.js +0 -229
  101. package/.next/server/webpack-runtime.js +0 -229
  102. package/.next/static/M7OQ7A7JAyTrgvf0m1Ztu/_buildManifest.js +0 -1
  103. package/.next/static/M7OQ7A7JAyTrgvf0m1Ztu/_ssgManifest.js +0 -1
  104. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  105. package/.next/static/chunks/153-a20e3f2da180607e.js +0 -1
  106. package/.next/static/chunks/260-994385416f68673d.js +0 -1
  107. package/.next/static/chunks/307.10facde65af3066a.js +0 -1
  108. package/.next/static/chunks/337-4b719ca7a86d8d8c.js +0 -1
  109. package/.next/static/chunks/351-a4e28d64f48c5269.js +0 -1
  110. package/.next/static/chunks/588.591fb3bf1a136c66.js +0 -1
  111. package/.next/static/chunks/650.807852d1c36bfe44.js +0 -1
  112. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  113. package/.next/static/chunks/686.36adeba271636edd.js +0 -1
  114. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  115. package/.next/static/chunks/791.e9be2b77d132c1b1.js +0 -1
  116. package/.next/static/chunks/817-728f854c2948afc0.js +0 -1
  117. package/.next/static/chunks/953.77a48c854f628dcf.js +0 -1
  118. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  119. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  120. package/.next/static/chunks/main-9746772201fe3ac1.js +0 -1
  121. package/.next/static/chunks/pages/404-ba608a2a9f0c420a.js +0 -1
  122. package/.next/static/chunks/pages/500-910883c20541d9ce.js +0 -1
  123. package/.next/static/chunks/pages/[...slug]-9443b18a60d89746.js +0 -1
  124. package/.next/static/chunks/pages/[slug]/p-cb8ef12f6449cf26.js +0 -1
  125. package/.next/static/chunks/pages/_app-286bcfa03a5e17a7.js +0 -1
  126. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  127. package/.next/static/chunks/pages/account-f19102933e6fd84c.js +0 -1
  128. package/.next/static/chunks/pages/checkout-f8cb7cb22225ef9d.js +0 -1
  129. package/.next/static/chunks/pages/index-6717326cc207d674.js +0 -1
  130. package/.next/static/chunks/pages/login-0b9ea80d9fa0f91b.js +0 -1
  131. package/.next/static/chunks/pages/s-86fe1e3303388123.js +0 -1
  132. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  133. package/.next/static/chunks/webpack-8f397ae160440a8e.js +0 -1
  134. package/.next/static/css/430b8cafbf7c23c1.css +0 -1
  135. package/.next/static/css/43d61b402f41569b.css +0 -1
  136. package/.next/static/css/4d7e7f156483493d.css +0 -1
  137. package/.next/static/css/6507cb48401e73a4.css +0 -1
  138. package/.next/static/css/9dd1d1084d254c66.css +0 -1
  139. package/.next/static/css/b2f16bd4b93e0aca.css +0 -1
  140. package/.next/static/css/bd743407c8049677.css +0 -1
  141. package/.next/static/css/d78f4c5305f398ac.css +0 -1
  142. package/.next/static/css/e1c24beb73906eed.css +0 -1
  143. package/.next/static/css/e63697a078fd522e.css +0 -1
  144. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  145. package/.next/trace +0 -64
  146. package/public/~partytown/debug/partytown-atomics.js +0 -556
  147. package/public/~partytown/debug/partytown-media.js +0 -374
  148. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  149. package/public/~partytown/debug/partytown-sw.js +0 -59
  150. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  151. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  152. package/public/~partytown/debug/partytown.js +0 -72
  153. package/public/~partytown/partytown-atomics.js +0 -2
  154. package/public/~partytown/partytown-media.js +0 -2
  155. package/public/~partytown/partytown-sw.js +0 -2
  156. package/public/~partytown/partytown.js +0 -2
  157. package/src/components/search/SearchHistory/SearchHistory.stories.mdx +0 -54
  158. package/src/components/search/SearchProductCard/SearchProductCard.stories.mdx +0 -95
  159. package/src/components/search/SearchProductCard/index.ts +0 -1
  160. package/src/components/search/SearchSuggestions/SearchSuggestions.stories.mdx +0 -58
  161. package/src/components/search/SearchTop/SearchTop.stories.mdx +0 -57
@@ -1,1467 +0,0 @@
1
- exports.id = 371;
2
- exports.ids = [371];
3
- exports.modules = {
4
-
5
- /***/ 1347:
6
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
-
8
- "use strict";
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- "C": () => (/* reexport */ Filter_Filter)
13
- });
14
-
15
- // UNUSED EXPORTS: FilterSlider
16
-
17
- // EXTERNAL MODULE: ./node_modules/@faststore/sdk/dist/search/useSearch.js + 1 modules
18
- var useSearch = __webpack_require__(7794);
19
- // EXTERNAL MODULE: ./node_modules/@faststore/sdk/dist/search/facets.js
20
- var search_facets = __webpack_require__(3291);
21
- // EXTERNAL MODULE: ../components/dist/hooks/UIProvider.js
22
- var UIProvider = __webpack_require__(395);
23
- // EXTERNAL MODULE: ../components/dist/molecules/Accordion/Accordion.js
24
- var Accordion = __webpack_require__(9739);
25
- // EXTERNAL MODULE: ../components/dist/molecules/Accordion/AccordionItem.js
26
- var AccordionItem = __webpack_require__(5705);
27
- // EXTERNAL MODULE: ../components/dist/molecules/Accordion/AccordionButton.js + 2 modules
28
- var AccordionButton = __webpack_require__(7831);
29
- // EXTERNAL MODULE: ../components/dist/molecules/Accordion/AccordionPanel.js
30
- var AccordionPanel = __webpack_require__(331);
31
- // EXTERNAL MODULE: ../components/dist/atoms/List/List.js
32
- var List = __webpack_require__(1329);
33
- // EXTERNAL MODULE: external "react"
34
- var external_react_ = __webpack_require__(6689);
35
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
36
- ;// CONCATENATED MODULE: ../components/dist/atoms/Checkbox/Checkbox.js
37
-
38
- const Checkbox = (0,external_react_.forwardRef)(function Checkbox({ testId = 'fs-checkbox', partial, ...otherProps }, ref) {
39
- return (external_react_default().createElement("input", { ref: ref, "data-fs-checkbox": true, "data-testid": testId, "data-fs-checkbox-partial": partial, type: "checkbox", ...otherProps }));
40
- });
41
- /* harmony default export */ const Checkbox_Checkbox = (Checkbox);
42
- //# sourceMappingURL=Checkbox.js.map
43
- // EXTERNAL MODULE: ../components/dist/atoms/Label/Label.js
44
- var Label = __webpack_require__(7216);
45
- // EXTERNAL MODULE: ../components/dist/atoms/Badge/Badge.js
46
- var Badge = __webpack_require__(44);
47
- ;// CONCATENATED MODULE: ../components/dist/atoms/Slider/Slider.js
48
- /**
49
- * This code is inspired by the work of [sandra-lewis](https://codesandbox.io/u/sandra-lewis)
50
- */
51
-
52
- const percent = (value, min, max) => Math.round(((value - min) / (max - min)) * 100);
53
- const Slider = (0,external_react_.forwardRef)(function Slider({ min, max, absoluteValuesLabel, onChange, onEnd, testId = 'fs-slider', getAriaValueText, step, minValueLabelComponent, maxValueLabelComponent, ...otherProps }, ref) {
54
- const widthPercent = (0,external_react_.useMemo)(() => (max.absolute - min.absolute) / 100, [max.absolute, min.absolute]);
55
- const [minPercent, setMinPercent] = (0,external_react_.useState)(() => percent(min.selected, min.absolute, max.absolute));
56
- const [maxPercent, setMaxPercent] = (0,external_react_.useState)(() => percent(max.selected, min.absolute, max.absolute));
57
- const [minVal, setMinVal] = (0,external_react_.useState)(() => Math.floor(min.absolute + minPercent * widthPercent));
58
- const [maxVal, setMaxVal] = (0,external_react_.useState)(() => Math.round(min.absolute + maxPercent * widthPercent));
59
- const percentage = (value) => (value / max.absolute) * 100;
60
- (0,external_react_.useImperativeHandle)(ref, () => ({
61
- setSliderValues: (values) => {
62
- const sliderMinValue = Math.min(Number(values.min), maxVal);
63
- setMinVal(sliderMinValue);
64
- setMinPercent(percent(sliderMinValue, min.absolute, max.absolute));
65
- if (values.max > max.absolute) {
66
- setMaxVal(max.absolute);
67
- setMaxPercent(percent(max.absolute, min.absolute, max.absolute));
68
- return;
69
- }
70
- const sliderMaxValue = Math.max(Number(values.max), minVal);
71
- setMaxVal(sliderMaxValue);
72
- setMaxPercent(percent(sliderMaxValue, min.absolute, max.absolute));
73
- },
74
- }));
75
- return (external_react_default().createElement("div", { "data-fs-slider": true, "data-testid": testId },
76
- external_react_default().createElement("div", { "data-fs-slider-absolute-values": true },
77
- external_react_default().createElement("span", null, absoluteValuesLabel.min),
78
- external_react_default().createElement("span", null, absoluteValuesLabel.max)),
79
- external_react_default().createElement("div", { "data-fs-slider-wrapper": true },
80
- external_react_default().createElement("div", { "data-fs-slider-range": true, style: {
81
- left: `${minPercent}%`,
82
- width: `${maxPercent - minPercent}%`,
83
- } }),
84
- external_react_default().createElement("input", { type: "range", min: Math.floor(min.absolute), max: Math.round(max.absolute), value: minVal, step: step, onMouseUp: () => onEnd?.({ min: minVal, max: maxVal }), onTouchEnd: () => onEnd?.({ min: minVal, max: maxVal }), onChange: (event) => {
85
- const minValue = Math.min(Number(event.target.value), maxVal);
86
- setMinVal(minValue);
87
- setMinPercent(percent(minValue, min.absolute, max.absolute));
88
- onChange?.({ min: minValue, max: maxVal });
89
- }, "data-fs-slider-thumb": "left", "aria-valuemin": min.absolute, "aria-valuemax": max.absolute, "aria-valuenow": minVal, "aria-label": String(minVal), "aria-labelledby": getAriaValueText?.(minVal, 'min'), ...otherProps }),
90
- minValueLabelComponent && (external_react_default().createElement("span", { "data-fs-slider-value-label": "min", style: {
91
- left: `calc(${percentage(minVal)}% + (${8 - percentage(minVal) * 0.2}px))`,
92
- } }, minValueLabelComponent(minVal))),
93
- external_react_default().createElement("input", { type: "range", min: Math.floor(min.absolute), max: Math.round(max.absolute), value: maxVal, step: step, onMouseUp: () => onEnd?.({ min: minVal, max: maxVal }), onTouchEnd: () => onEnd?.({ min: minVal, max: maxVal }), onChange: (event) => {
94
- const maxValue = Math.max(Number(event.target.value), minVal);
95
- setMaxVal(maxValue);
96
- setMaxPercent(percent(maxValue, min.absolute, max.absolute));
97
- onChange?.({ min: minVal, max: maxValue });
98
- }, "data-fs-slider-thumb": "right", "aria-valuemin": min.absolute, "aria-valuemax": max.absolute, "aria-valuenow": maxVal, "aria-label": String(maxVal), "aria-labelledby": getAriaValueText?.(maxVal, 'max') }),
99
- maxValueLabelComponent && (external_react_default().createElement("span", { "data-fs-slider-value-label": "max", style: {
100
- left: `calc(${percentage(maxVal)}% + (${8 - percentage(maxVal) * 0.2}px))`,
101
- } }, maxValueLabelComponent(maxVal))))));
102
- });
103
- /* harmony default export */ const Slider_Slider = (Slider);
104
- //# sourceMappingURL=Slider.js.map
105
- // EXTERNAL MODULE: ../components/dist/atoms/Price/Price.js
106
- var Price = __webpack_require__(7549);
107
- // EXTERNAL MODULE: ../components/dist/molecules/InputField/InputField.js
108
- var InputField = __webpack_require__(8287);
109
- ;// CONCATENATED MODULE: ../components/dist/organisms/PriceRange/PriceRange.js
110
-
111
-
112
- const PriceRange = (0,external_react_.forwardRef)(function PriceRange({ formatter, max, min, step = 1, onChange, onEnd, testId = 'fs-price-range', variant, 'aria-label': ariaLabel, ...otherProps }, ref) {
113
- const sliderRef = (0,external_react_.useRef)();
114
- (0,external_react_.useImperativeHandle)(ref, () => ({
115
- setPriceRangeValues: (values) => {
116
- onChange?.(values);
117
- sliderRef.current?.setSliderValues(values);
118
- },
119
- }));
120
- const inputMinRef = (0,external_react_.useRef)(null);
121
- const inputMaxRef = (0,external_react_.useRef)(null);
122
- const [inputMinError, setInputMinError] = (0,external_react_.useState)();
123
- const [inputMaxError, setInputMaxError] = (0,external_react_.useState)();
124
- const [priceRange, setPriceRange] = (0,external_react_.useState)({
125
- min: Math.floor(min.selected),
126
- max: Math.round(max.selected),
127
- });
128
- function onChangePriceRange(value) {
129
- setInputMinError(undefined);
130
- setInputMaxError(undefined);
131
- setPriceRange({ min: value.min, max: value.max });
132
- if (inputMinRef.current?.value) {
133
- inputMinRef.current.value = String(value.min);
134
- }
135
- if (inputMaxRef.current?.value) {
136
- inputMaxRef.current.value = String(value.max);
137
- }
138
- }
139
- function onChangeInputMin(value) {
140
- setInputMinError(undefined);
141
- if (Number(value) < Math.floor(min.absolute)) {
142
- return;
143
- }
144
- if (Number(value) > Math.floor(priceRange.max)) {
145
- setInputMinError(`Min price can't be greater than max`);
146
- }
147
- setPriceRange({ ...priceRange, min: Number(value) });
148
- sliderRef.current?.setSliderValues({
149
- ...priceRange,
150
- min: Number(value),
151
- });
152
- }
153
- function onChangeInputMax(value) {
154
- setInputMaxError(undefined);
155
- if (Number(value) > Math.round(max.absolute)) {
156
- return;
157
- }
158
- if (Number(value) < Math.round(priceRange.min)) {
159
- setInputMaxError(`Max price can't be smaller than min`);
160
- }
161
- setPriceRange({ ...priceRange, max: Number(value) });
162
- sliderRef.current?.setSliderValues({
163
- ...priceRange,
164
- max: Number(value),
165
- });
166
- }
167
- return (external_react_default().createElement("div", { "data-fs-price-range": true, "data-testid": testId, ...otherProps },
168
- external_react_default().createElement(Slider_Slider, { ref: sliderRef, min: min, max: max, step: step, onEnd: (value) => {
169
- onEnd?.(value);
170
- onChangePriceRange(value);
171
- }, "aria-label": ariaLabel, onChange: (value) => onChange?.(value), absoluteValuesLabel: {
172
- min: (external_react_default().createElement(Price/* default */.Z, { value: Math.floor(min.absolute), variant: variant, formatter: formatter })),
173
- max: (external_react_default().createElement(Price/* default */.Z, { value: Math.round(max.absolute), variant: variant, formatter: formatter })),
174
- }, minValueLabelComponent: (minValue) => {
175
- return (external_react_default().createElement(Price/* default */.Z, { value: minValue, variant: variant, formatter: formatter }));
176
- }, maxValueLabelComponent: (maxValue) => {
177
- return (external_react_default().createElement(Price/* default */.Z, { value: maxValue, variant: variant, formatter: formatter }));
178
- } }),
179
- external_react_default().createElement("div", { "data-fs-price-range-inputs": true },
180
- external_react_default().createElement(InputField/* default */.Z, { id: "price-range-min", step: step, label: "Min", type: "number", inputMode: "numeric", error: inputMinError, inputRef: inputMinRef, min: Math.floor(min.absolute), max: priceRange.max, value: priceRange.min, onChange: (e) => onChangeInputMin(e.target.value), onBlur: () => !inputMinError && onEnd?.(priceRange) }),
181
- external_react_default().createElement(InputField/* default */.Z, { id: "price-range-max", label: "Max", step: step, type: "number", inputMode: "numeric", error: inputMaxError, inputRef: inputMaxRef, max: Math.round(max.absolute), min: priceRange.min, value: priceRange.max, onChange: (e) => onChangeInputMax(e.target.value), onBlur: () => !inputMaxError && onEnd?.(priceRange) }))));
182
- });
183
- /* harmony default export */ const PriceRange_PriceRange = (PriceRange);
184
- //# sourceMappingURL=PriceRange.js.map
185
- // EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
186
- var useFormattedPrice = __webpack_require__(5346);
187
- // EXTERNAL MODULE: ./src/components/search/Filter/facets.module.scss
188
- var facets_module = __webpack_require__(8209);
189
- var facets_module_default = /*#__PURE__*/__webpack_require__.n(facets_module);
190
- // EXTERNAL MODULE: external "react/jsx-runtime"
191
- var jsx_runtime_ = __webpack_require__(997);
192
- ;// CONCATENATED MODULE: ./src/components/search/Filter/Facets.tsx
193
-
194
-
195
-
196
-
197
-
198
-
199
- const formatRange = (min, max) => `${min.toFixed(2)}-to-${max.toFixed(2)}`;
200
-
201
- function Facets({
202
- testId,
203
- facets,
204
- indicesExpanded,
205
- onFacetChange,
206
- onAccordionChange
207
- }) {
208
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
209
- className: (facets_module_default()).fsFacets,
210
- "data-fs-filter": true,
211
- "data-testid": testId,
212
- children: [/*#__PURE__*/jsx_runtime_.jsx("h2", {
213
- className: "text__title-mini-alt",
214
- "data-fs-facets-title": true,
215
- children: "Filters"
216
- }), /*#__PURE__*/jsx_runtime_.jsx(Accordion/* default */.Z, {
217
- indices: indicesExpanded,
218
- onChange: onAccordionChange,
219
- "data-fs-facets-accordion": true,
220
- children: facets.map((facet, index) => {
221
- const isExpanded = indicesExpanded.has(index);
222
- const {
223
- __typename: type,
224
- label
225
- } = facet;
226
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)(AccordionItem/* default */.Z, {
227
- prefixId: testId,
228
- testId: `${testId}-accordion`,
229
- "data-type": type,
230
- "data-fs-facets-accordion-item": true,
231
- children: [/*#__PURE__*/jsx_runtime_.jsx(AccordionButton/* default */.Z, {
232
- testId: `${testId}-accordion-button`,
233
- children: label
234
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)(AccordionPanel/* default */.Z, {
235
- children: [type === 'StoreFacetBoolean' && isExpanded && /*#__PURE__*/jsx_runtime_.jsx(List/* default */.Z, {
236
- "data-fs-facets-list": true,
237
- children: facet.values.map(item => {
238
- const id = `${testId}-${facet.label}-${item.label}`;
239
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)("li", {
240
- "data-fs-facets-list-item": true,
241
- children: [/*#__PURE__*/jsx_runtime_.jsx(Checkbox_Checkbox, {
242
- id: id,
243
- checked: item.selected,
244
- onChange: () => onFacetChange({
245
- key: facet.key,
246
- value: item.value
247
- }, 'BOOLEAN'),
248
- "data-fs-facets-list-item-checkbox": true,
249
- "data-testid": `${testId}-accordion-panel-checkbox`,
250
- "data-value": item.value,
251
- "data-quantity": item.quantity
252
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)(Label/* default */.Z, {
253
- htmlFor: id,
254
- className: "text__title-mini-alt",
255
- "data-fs-facets-list-item-label": true,
256
- children: [item.label, ' ', /*#__PURE__*/jsx_runtime_.jsx(Badge/* default */.Z, {
257
- "data-fs-facets-list-item-badge": true,
258
- children: item.quantity
259
- })]
260
- })]
261
- }, id);
262
- })
263
- }), type === 'StoreFacetRange' && isExpanded && /*#__PURE__*/jsx_runtime_.jsx(PriceRange_PriceRange, {
264
- min: facet.min,
265
- max: facet.max,
266
- formatter: useFormattedPrice/* useFormattedPrice */.P,
267
- step: 1,
268
- onEnd: v => onFacetChange({
269
- key: facet.key,
270
- value: formatRange(v.min, v.max)
271
- }, 'RANGE')
272
- })]
273
- })]
274
- }, `${label}-${index}`);
275
- })
276
- })]
277
- });
278
- }
279
-
280
- /* harmony default export */ const Filter_Facets = (Facets);
281
- // EXTERNAL MODULE: ../components/dist/organisms/SlideOver/SlideOver.js
282
- var SlideOver = __webpack_require__(1021);
283
- // EXTERNAL MODULE: ../components/dist/organisms/SlideOver/SlideOverHeader.js
284
- var SlideOverHeader = __webpack_require__(9648);
285
- // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js + 1 modules
286
- var Button = __webpack_require__(4842);
287
- // EXTERNAL MODULE: ../components/dist/hooks/useFadeEffect.js
288
- var useFadeEffect = __webpack_require__(6074);
289
- // EXTERNAL MODULE: ./src/components/search/Filter/filter-slider.module.scss
290
- var filter_slider_module = __webpack_require__(4618);
291
- var filter_slider_module_default = /*#__PURE__*/__webpack_require__.n(filter_slider_module);
292
- ;// CONCATENATED MODULE: ./src/components/search/Filter/FilterSlider.tsx
293
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
294
-
295
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
296
-
297
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
298
-
299
-
300
-
301
-
302
-
303
-
304
-
305
-
306
-
307
-
308
- function FilterSlider({
309
- facets,
310
- testId,
311
- dispatch,
312
- expanded,
313
- selected
314
- }) {
315
- const {
316
- closeFilter
317
- } = (0,UIProvider/* useUI */.l)();
318
- const {
319
- fade,
320
- fadeOut
321
- } = (0,useFadeEffect/* useFadeEffect */.b)();
322
- const {
323
- resetInfiniteScroll,
324
- setState,
325
- state
326
- } = (0,useSearch/* useSearch */.R)();
327
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)(SlideOver/* default */.Z, {
328
- isOpen: true,
329
- fade: fade,
330
- onDismiss: fadeOut,
331
- size: "partial",
332
- direction: "rightSide",
333
- className: (filter_slider_module_default()).fsFilterSlider,
334
- onTransitionEnd: () => fade === 'out' && closeFilter(),
335
- children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
336
- "data-fs-filter-slider-content": true,
337
- children: [/*#__PURE__*/jsx_runtime_.jsx(SlideOverHeader/* default */.Z, {
338
- onClose: () => {
339
- dispatch({
340
- type: 'selectFacets',
341
- payload: state.selectedFacets
342
- });
343
- fadeOut();
344
- },
345
- children: /*#__PURE__*/jsx_runtime_.jsx("h2", {
346
- className: "text__lead",
347
- children: "Filters"
348
- })
349
- }), /*#__PURE__*/jsx_runtime_.jsx(Filter_Facets, {
350
- facets: facets,
351
- testId: `mobile-${testId}`,
352
- indicesExpanded: expanded,
353
- onFacetChange: (facet, type) => type === 'BOOLEAN' ? dispatch({
354
- type: 'toggleFacet',
355
- payload: facet
356
- }) : dispatch({
357
- type: 'setFacet',
358
- payload: {
359
- facet,
360
- unique: true
361
- }
362
- }),
363
- onAccordionChange: index => dispatch({
364
- type: 'toggleExpanded',
365
- payload: index
366
- })
367
- })]
368
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("footer", {
369
- "data-fs-filter-slider-footer": true,
370
- children: [/*#__PURE__*/jsx_runtime_.jsx(Button/* default */.Z, {
371
- "data-fs-filter-slider-footer-button-clear": true,
372
- variant: "secondary",
373
- onClick: () => dispatch({
374
- type: 'selectFacets',
375
- payload: []
376
- }),
377
- children: "Clear All"
378
- }), /*#__PURE__*/jsx_runtime_.jsx(Button/* default */.Z, {
379
- "data-fs-filter-slider-footer-button-apply": true,
380
- variant: "primary",
381
- "data-testid": "filter-slider-button-apply",
382
- onClick: () => {
383
- resetInfiniteScroll(0);
384
- setState(_objectSpread(_objectSpread({}, state), {}, {
385
- selectedFacets: selected,
386
- page: 0
387
- }));
388
- fadeOut();
389
- },
390
- children: "Apply"
391
- })]
392
- })]
393
- });
394
- }
395
-
396
- /* harmony default export */ const Filter_FilterSlider = (FilterSlider);
397
- ;// CONCATENATED MODULE: ./src/components/search/Filter/useFilter.ts
398
- const _excluded = ["value"];
399
-
400
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
401
-
402
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
403
-
404
- function useFilter_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
405
-
406
- function useFilter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? useFilter_ownKeys(Object(source), !0).forEach(function (key) { useFilter_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : useFilter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
407
-
408
- function useFilter_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
409
-
410
-
411
-
412
-
413
- const reducer = (state, action) => {
414
- const {
415
- expanded,
416
- selected
417
- } = state;
418
- const {
419
- type,
420
- payload
421
- } = action;
422
-
423
- switch (type) {
424
- case 'toggleExpanded':
425
- {
426
- if (expanded.has(payload)) {
427
- expanded.delete(payload);
428
- } else {
429
- expanded.add(payload);
430
- }
431
-
432
- return useFilter_objectSpread(useFilter_objectSpread({}, state), {}, {
433
- expanded: new Set(expanded)
434
- });
435
- }
436
-
437
- case 'selectFacets':
438
- {
439
- if (payload !== selected) {
440
- return useFilter_objectSpread(useFilter_objectSpread({}, state), {}, {
441
- selected: payload
442
- });
443
- }
444
-
445
- break;
446
- }
447
-
448
- case 'toggleFacet':
449
- {
450
- return useFilter_objectSpread(useFilter_objectSpread({}, state), {}, {
451
- selected: (0,search_facets/* toggleFacet */.wB)(state.selected, payload)
452
- });
453
- }
454
-
455
- case 'setFacet':
456
- {
457
- return useFilter_objectSpread(useFilter_objectSpread({}, state), {}, {
458
- selected: (0,search_facets/* setFacet */.uL)(state.selected, payload.facet, payload.unique)
459
- });
460
- }
461
-
462
- default:
463
- throw new Error(`Action ${type} not implemented`);
464
- }
465
-
466
- return state;
467
- };
468
-
469
- const useFilter = allFacets => {
470
- const {
471
- state: {
472
- selectedFacets
473
- }
474
- } = (0,useSearch/* useSearch */.R)();
475
- const {
476
- 0: {
477
- selected,
478
- expanded
479
- },
480
- 1: dispatch
481
- } = (0,external_react_.useReducer)(reducer, null, () => ({
482
- expanded: new Set([]),
483
- selected: selectedFacets
484
- }));
485
- const selectedMap = (0,external_react_.useMemo)(() => selected.reduce((acc, facet) => {
486
- if (!acc.has(facet.key)) {
487
- acc.set(facet.key, new Map());
488
- }
489
-
490
- acc.get(facet.key)?.set(facet.value, facet);
491
- return acc;
492
- }, new Map()), [selected]);
493
- const facets = (0,external_react_.useMemo)(() => allFacets.map(facet => {
494
- if (facet.__typename === 'StoreFacetBoolean') {
495
- return useFilter_objectSpread(useFilter_objectSpread({}, facet), {}, {
496
- values: facet.values.map(_ref => {
497
- let {
498
- value
499
- } = _ref,
500
- rest = _objectWithoutProperties(_ref, _excluded);
501
-
502
- return useFilter_objectSpread(useFilter_objectSpread({}, rest), {}, {
503
- value,
504
- selected: Boolean(selectedMap.get(facet.key)?.has(value))
505
- });
506
- })
507
- });
508
- }
509
-
510
- return facet;
511
- }), [allFacets, selectedMap]);
512
- (0,external_react_.useEffect)(() => {
513
- dispatch({
514
- type: 'selectFacets',
515
- payload: selectedFacets
516
- });
517
- }, [selectedFacets]);
518
- return {
519
- facets,
520
- selected,
521
- expanded,
522
- dispatch
523
- };
524
- };
525
- ;// CONCATENATED MODULE: ./src/components/search/Filter/Filter.tsx
526
- function Filter_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
527
-
528
- function Filter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Filter_ownKeys(Object(source), !0).forEach(function (key) { Filter_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Filter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
529
-
530
- function Filter_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
531
-
532
-
533
-
534
-
535
-
536
-
537
-
538
-
539
-
540
-
541
- function Filter({
542
- facets: allFacets,
543
- testId = 'store-filter'
544
- }) {
545
- const filter = useFilter(allFacets);
546
- const {
547
- resetInfiniteScroll,
548
- state,
549
- setState
550
- } = (0,useSearch/* useSearch */.R)();
551
- const {
552
- filter: displayFilter
553
- } = (0,UIProvider/* useUI */.l)();
554
- const {
555
- facets,
556
- expanded,
557
- dispatch
558
- } = filter;
559
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
560
- children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
561
- className: "hidden-mobile",
562
- children: /*#__PURE__*/jsx_runtime_.jsx(Filter_Facets, {
563
- facets: facets,
564
- testId: `desktop-${testId}`,
565
- indicesExpanded: expanded,
566
- onFacetChange: (facet, type) => {
567
- setState(Filter_objectSpread(Filter_objectSpread({}, state), {}, {
568
- selectedFacets: type === 'BOOLEAN' ? (0,search_facets/* toggleFacet */.wB)(state.selectedFacets, facet) : (0,search_facets/* setFacet */.uL)(state.selectedFacets, facet, true),
569
- page: 0
570
- }));
571
- resetInfiniteScroll(0);
572
- },
573
- onAccordionChange: index => dispatch({
574
- type: 'toggleExpanded',
575
- payload: index
576
- })
577
- })
578
- }), displayFilter && /*#__PURE__*/jsx_runtime_.jsx(Filter_FilterSlider, Filter_objectSpread(Filter_objectSpread({}, filter), {}, {
579
- testId: testId
580
- }))]
581
- });
582
- }
583
-
584
- const fragment = "unknown";
585
- /* harmony default export */ const Filter_Filter = (Filter);
586
- ;// CONCATENATED MODULE: ./src/components/search/Filter/index.ts
587
-
588
-
589
-
590
- /***/ }),
591
-
592
- /***/ 3503:
593
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
594
-
595
- "use strict";
596
-
597
- // EXPORTS
598
- __webpack_require__.d(__webpack_exports__, {
599
- "Z": () => (/* reexport */ Sort_Sort)
600
- });
601
-
602
- // EXTERNAL MODULE: ./node_modules/@faststore/sdk/dist/search/useSearch.js + 1 modules
603
- var useSearch = __webpack_require__(7794);
604
- // EXTERNAL MODULE: external "react"
605
- var external_react_ = __webpack_require__(6689);
606
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
607
- // EXTERNAL MODULE: ../components/dist/atoms/Label/Label.js
608
- var Label = __webpack_require__(7216);
609
- // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
610
- var Icon = __webpack_require__(5045);
611
- ;// CONCATENATED MODULE: ../components/dist/assets/CaretDown.js
612
-
613
- // Icon from Phosphor Icons
614
- const CaretDown = () => (external_react_default().createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 256 256", strokeWidth: "16", width: 24, height: 24 },
615
- external_react_default().createElement("rect", { width: "256", height: "256", fill: "none" }),
616
- external_react_default().createElement("polyline", { points: "208 96 128 176 48 96", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "24" })));
617
- /* harmony default export */ const assets_CaretDown = (CaretDown);
618
- //# sourceMappingURL=CaretDown.js.map
619
- ;// CONCATENATED MODULE: ../components/dist/atoms/Select/Select.js
620
-
621
-
622
-
623
- const Select = (0,external_react_.forwardRef)(function Select({ options, id, testId = 'fs-select', ...otherProps }, ref) {
624
- return (external_react_default().createElement("div", { "data-fs-select": true },
625
- external_react_default().createElement("select", { ref: ref, id: id, "data-testid": testId, ...otherProps }, Object.keys(options).map((key) => (external_react_default().createElement("option", { key: key, value: key }, options[key])))),
626
- external_react_default().createElement(Icon/* default */.Z, { "data-fs-select-icon": true, component: external_react_default().createElement(assets_CaretDown, null) })));
627
- });
628
- /* harmony default export */ const Select_Select = (Select);
629
- //# sourceMappingURL=Select.js.map
630
- ;// CONCATENATED MODULE: ../components/dist/molecules/SelectField/SelectField.js
631
-
632
-
633
- const SelectField = (0,external_react_.forwardRef)(function SelectField({ id, label, options, testId = 'fs-select-field', ...otherProps }, ref) {
634
- return (external_react_default().createElement("div", { ref: ref, "data-fs-select-field": true },
635
- external_react_default().createElement(Label/* default */.Z, { "data-fs-select-field-label": true, htmlFor: id }, label),
636
- external_react_default().createElement(Select_Select, { id: id, options: options, "data-testid": testId, ...otherProps })));
637
- });
638
- /* harmony default export */ const SelectField_SelectField = (SelectField);
639
- //# sourceMappingURL=SelectField.js.map
640
- // EXTERNAL MODULE: external "react/jsx-runtime"
641
- var jsx_runtime_ = __webpack_require__(997);
642
- ;// CONCATENATED MODULE: ./src/components/search/Sort/Sort.tsx
643
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
644
-
645
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
646
-
647
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
648
-
649
-
650
-
651
-
652
- const OptionsMap = {
653
- price_desc: 'Price, descending',
654
- price_asc: 'Price, ascending',
655
- orders_desc: 'Top sales',
656
- name_asc: 'Name, A-Z',
657
- name_desc: 'Name, Z-A',
658
- release_desc: 'Release date',
659
- discount_desc: 'Discount',
660
- score_desc: 'Relevance'
661
- };
662
- const keys = Object.keys(OptionsMap);
663
-
664
- function Sort() {
665
- const {
666
- state,
667
- setState
668
- } = (0,useSearch/* useSearch */.R)();
669
- return /*#__PURE__*/jsx_runtime_.jsx(SelectField_SelectField, {
670
- id: "sort-select",
671
- className: "sort / text__title-mini-alt",
672
- label: "Sort by",
673
- options: OptionsMap,
674
- onChange: e => {
675
- const sort = keys[e.target.selectedIndex];
676
- setState(_objectSpread(_objectSpread({}, state), {}, {
677
- sort,
678
- page: 0
679
- }));
680
- },
681
- value: state.sort,
682
- testId: "search-sort"
683
- });
684
- }
685
-
686
- /* harmony default export */ const Sort_Sort = (Sort);
687
- ;// CONCATENATED MODULE: ./src/components/search/Sort/index.ts
688
-
689
-
690
- /***/ }),
691
-
692
- /***/ 3769:
693
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
694
-
695
- "use strict";
696
-
697
- // EXPORTS
698
- __webpack_require__.d(__webpack_exports__, {
699
- "Z": () => (/* reexport */ sections_Breadcrumb_Breadcrumb)
700
- });
701
-
702
- // EXTERNAL MODULE: external "react"
703
- var external_react_ = __webpack_require__(6689);
704
- // EXTERNAL MODULE: ./src/components/ui/Breadcrumb/index.ts + 17 modules
705
- var Breadcrumb = __webpack_require__(1444);
706
- // EXTERNAL MODULE: ./src/components/sections/Section/index.ts + 1 modules
707
- var Section = __webpack_require__(8879);
708
- // EXTERNAL MODULE: external "react/jsx-runtime"
709
- var jsx_runtime_ = __webpack_require__(997);
710
- ;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/Breadcrumb.tsx
711
-
712
-
713
-
714
-
715
-
716
- function Breadcrumb_Breadcrumb({
717
- breadcrumbList,
718
- name
719
- }) {
720
- const fallback = [{
721
- item: '/',
722
- name,
723
- position: 1
724
- }];
725
- const list = breadcrumbList ?? fallback;
726
- return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
727
- className: "layout__content",
728
- children: /*#__PURE__*/jsx_runtime_.jsx(Breadcrumb/* default */.Z, {
729
- breadcrumbList: list
730
- })
731
- });
732
- }
733
-
734
- /* harmony default export */ const sections_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(Breadcrumb_Breadcrumb));
735
- ;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/index.ts
736
-
737
-
738
- /***/ }),
739
-
740
- /***/ 5878:
741
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
742
-
743
- "use strict";
744
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
745
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
746
- /* harmony export */ });
747
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7703);
748
- /* harmony import */ var src_components_ui_EmptyState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9509);
749
- /* harmony import */ var src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2478);
750
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(997);
751
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
752
-
753
-
754
-
755
-
756
-
757
-
758
- function EmptyGallery() {
759
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(src_components_ui_EmptyState__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z, {
760
- variant: "rounded",
761
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("header", {
762
- "data-fs-empty-state-title": true,
763
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
764
- name: "CircleWavyWarning",
765
- width: 56,
766
- height: 56,
767
- weight: "thin"
768
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("p", {
769
- children: "Nothing matches with your search"
770
- })]
771
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
772
- "data-fs-empty-state-link": true,
773
- href: "/office",
774
- variant: "secondary",
775
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
776
- name: "CircleWavyWarning",
777
- width: 18,
778
- height: 18,
779
- weight: "bold"
780
- }),
781
- iconPosition: "left",
782
- children: "Browse Offers"
783
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
784
- "data-fs-empty-state-link": true,
785
- href: "/technology",
786
- variant: "secondary",
787
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
788
- name: "RocketLaunch",
789
- width: 18,
790
- height: 18,
791
- weight: "bold"
792
- }),
793
- iconPosition: "left",
794
- children: "Just Arrived"
795
- })]
796
- });
797
- }
798
-
799
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EmptyGallery);
800
-
801
- /***/ }),
802
-
803
- /***/ 8273:
804
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
805
-
806
- "use strict";
807
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
808
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
809
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
810
- /* harmony export */ });
811
- /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(7794);
812
- /* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6641);
813
- /* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_seo__WEBPACK_IMPORTED_MODULE_0__);
814
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
815
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
816
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(2928);
817
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(4842);
818
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(7703);
819
- /* harmony import */ var src_components_search_Filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1347);
820
- /* harmony import */ var src_components_search_Sort__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3503);
821
- /* harmony import */ var src_components_skeletons_FilterSkeleton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5473);
822
- /* harmony import */ var src_components_skeletons_ProductGridSkeleton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9913);
823
- /* harmony import */ var src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2478);
824
- /* harmony import */ var src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2541);
825
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(395);
826
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8879);
827
- /* harmony import */ var _EmptyGallery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(5878);
828
- /* harmony import */ var _product_gallery_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(2304);
829
- /* harmony import */ var _product_gallery_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_product_gallery_module_scss__WEBPACK_IMPORTED_MODULE_17__);
830
- /* harmony import */ var _useDelayedFacets__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3740);
831
- /* harmony import */ var _useDelayedPagination__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(9361);
832
- /* harmony import */ var _useGalleryQuery__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(3840);
833
- /* harmony import */ var _usePageProducts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(763);
834
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(997);
835
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__);
836
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useGalleryQuery__WEBPACK_IMPORTED_MODULE_12__, _usePageProducts__WEBPACK_IMPORTED_MODULE_13__]);
837
- ([_useGalleryQuery__WEBPACK_IMPORTED_MODULE_12__, _usePageProducts__WEBPACK_IMPORTED_MODULE_13__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
838
-
839
-
840
-
841
-
842
-
843
-
844
-
845
-
846
-
847
-
848
-
849
-
850
-
851
-
852
-
853
-
854
-
855
-
856
-
857
-
858
- const GalleryPage = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(154), __webpack_require__.e(854), __webpack_require__.e(280), __webpack_require__.e(872), __webpack_require__.e(746)]).then(__webpack_require__.bind(__webpack_require__, 3746)));
859
-
860
- const GalleryPageSkeleton = /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_skeletons_ProductGridSkeleton__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
861
- loading: true
862
- });
863
-
864
- function ProductGallery({
865
- title,
866
- searchTerm
867
- }) {
868
- const {
869
- openFilter
870
- } = (0,_faststore_ui__WEBPACK_IMPORTED_MODULE_15__/* .useUI */ .l)();
871
- const {
872
- pages,
873
- addNextPage,
874
- addPrevPage
875
- } = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_16__/* .useSearch */ .R)();
876
- const {
877
- data
878
- } = (0,_useGalleryQuery__WEBPACK_IMPORTED_MODULE_12__/* .useGalleryQuery */ .r)();
879
- const facets = (0,_useDelayedFacets__WEBPACK_IMPORTED_MODULE_10__/* .useDelayedFacets */ .u)(data);
880
- const totalCount = data?.search.products.pageInfo.totalCount ?? 0;
881
- const {
882
- next,
883
- prev
884
- } = (0,_useDelayedPagination__WEBPACK_IMPORTED_MODULE_11__/* .useDelayedPagination */ .g)(totalCount);
885
- (0,_usePageProducts__WEBPACK_IMPORTED_MODULE_13__/* .useProductsPrefetch */ .F)(prev ? prev.cursor : null);
886
- (0,_usePageProducts__WEBPACK_IMPORTED_MODULE_13__/* .useProductsPrefetch */ .F)(next ? next.cursor : null);
887
-
888
- if (data && totalCount === 0) {
889
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_Section__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
890
- "data-testid": "product-gallery",
891
- className: `${(_product_gallery_module_scss__WEBPACK_IMPORTED_MODULE_17___default().fsProductListing)} layout__content`,
892
- "data-fs-product-listing": true,
893
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_EmptyGallery__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {})
894
- });
895
- }
896
-
897
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)(_Section__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
898
- "data-testid": "product-gallery",
899
- className: `${(_product_gallery_module_scss__WEBPACK_IMPORTED_MODULE_17___default().fsProductListing)} layout__content-full`,
900
- "data-fs-product-listing": true,
901
- children: [searchTerm && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx("header", {
902
- "data-fs-product-listing-search-term": true,
903
- className: "layout__content",
904
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("h1", {
905
- children: ["Showing results for: ", /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx("span", {
906
- children: searchTerm
907
- })]
908
- })
909
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
910
- "data-fs-product-listing-content-grid": true,
911
- className: "layout__content",
912
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx("div", {
913
- "data-fs-product-listing-filters": true,
914
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_skeletons_FilterSkeleton__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
915
- loading: facets?.length === 0,
916
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_search_Filter__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .C, {
917
- facets: facets
918
- })
919
- })
920
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx("div", {
921
- "data-fs-product-listing-results-count": true,
922
- "data-count": totalCount,
923
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z, {
924
- "data-fs-product-listing-results-count-skeleton": true,
925
- loading: !data,
926
- size: {
927
- width: '100%',
928
- height: '1.5rem'
929
- },
930
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("h2", {
931
- "data-testid": "total-product-count",
932
- children: [totalCount, " Results"]
933
- })
934
- })
935
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
936
- "data-fs-product-listing-sort": true,
937
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z, {
938
- "data-fs-product-listing-sort-skeleton": true,
939
- loading: facets?.length === 0,
940
- size: {
941
- width: 'auto',
942
- height: '1.5rem'
943
- },
944
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_search_Sort__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {})
945
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z, {
946
- "data-fs-product-listing-filter-button-skeleton": true,
947
- loading: facets?.length === 0,
948
- size: {
949
- width: '6rem',
950
- height: '1.5rem'
951
- },
952
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .Z, {
953
- variant: "tertiary",
954
- "data-testid": "open-filter-button",
955
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
956
- name: "FadersHorizontal",
957
- width: 16,
958
- height: 16
959
- }),
960
- iconPosition: "left",
961
- "aria-label": "Open Filters",
962
- onClick: openFilter,
963
- children: "Filters"
964
- })
965
- })]
966
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
967
- "data-fs-product-listing-results": true,
968
- children: [prev !== false && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
969
- "data-fs-product-listing-pagination": "top",
970
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_0__.NextSeo, {
971
- additionalLinkTags: [{
972
- rel: 'prev',
973
- href: prev.link
974
- }]
975
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .Z, {
976
- onClick: e => {
977
- e.currentTarget.blur();
978
- e.preventDefault();
979
- addPrevPage();
980
- },
981
- href: prev.link,
982
- rel: "prev",
983
- variant: "secondary",
984
- iconPosition: "left",
985
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(src_components_ui_Icon__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
986
- name: "ArrowLeft",
987
- width: 16,
988
- height: 16,
989
- weight: "bold"
990
- }),
991
- children: "Previous Page"
992
- })]
993
- }), data ? /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(react__WEBPACK_IMPORTED_MODULE_1__.Suspense, {
994
- fallback: GalleryPageSkeleton,
995
- children: pages.map(page => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(GalleryPage, {
996
- showSponsoredProducts: false,
997
- page: page,
998
- title: title
999
- }, `gallery-page-${page}`))
1000
- }) : GalleryPageSkeleton, next !== false && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
1001
- "data-fs-product-listing-pagination": "bottom",
1002
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_0__.NextSeo, {
1003
- additionalLinkTags: [{
1004
- rel: 'next',
1005
- href: next.link
1006
- }]
1007
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .Z, {
1008
- testId: "show-more",
1009
- onClick: e => {
1010
- e.currentTarget.blur();
1011
- e.preventDefault();
1012
- addNextPage();
1013
- },
1014
- href: next.link,
1015
- rel: "next",
1016
- variant: "secondary",
1017
- children: "Load more products"
1018
- })]
1019
- })]
1020
- })]
1021
- })]
1022
- });
1023
- }
1024
-
1025
- ProductGallery.displayName = 'ProductGallery';
1026
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_7__/* .mark */ .B)(ProductGallery));
1027
- __webpack_async_result__();
1028
- } catch(e) { __webpack_async_result__(e); } });
1029
-
1030
- /***/ }),
1031
-
1032
- /***/ 2618:
1033
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1034
-
1035
- "use strict";
1036
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1037
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1038
- /* harmony export */ "Z": () => (/* reexport safe */ _ProductGallery__WEBPACK_IMPORTED_MODULE_0__.Z)
1039
- /* harmony export */ });
1040
- /* harmony import */ var _ProductGallery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8273);
1041
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ProductGallery__WEBPACK_IMPORTED_MODULE_0__]);
1042
- _ProductGallery__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1043
-
1044
- __webpack_async_result__();
1045
- } catch(e) { __webpack_async_result__(e); } });
1046
-
1047
- /***/ }),
1048
-
1049
- /***/ 3740:
1050
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1051
-
1052
- "use strict";
1053
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1054
- /* harmony export */ "u": () => (/* binding */ useDelayedFacets)
1055
- /* harmony export */ });
1056
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
1057
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1058
-
1059
- const useDelayedFacets = data => {
1060
- const facets = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)([]);
1061
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
1062
- if (data) {
1063
- facets.current = data.search.facets;
1064
- }
1065
-
1066
- return facets.current;
1067
- }, [data, facets]);
1068
- };
1069
-
1070
- /***/ }),
1071
-
1072
- /***/ 9361:
1073
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1074
-
1075
- "use strict";
1076
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1077
- /* harmony export */ "g": () => (/* binding */ useDelayedPagination)
1078
- /* harmony export */ });
1079
- /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2549);
1080
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
1081
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1082
-
1083
-
1084
- const useDelayedPagination = totalCount => {
1085
- const pagination = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_1__/* .usePagination */ .h)(totalCount);
1086
- const {
1087
- 0: pag,
1088
- 1: setPag
1089
- } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(() => ({
1090
- next: false,
1091
- prev: false
1092
- }));
1093
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1094
- setPag(pagination);
1095
- }, [pagination]);
1096
- return pag;
1097
- };
1098
-
1099
- /***/ }),
1100
-
1101
- /***/ 3840:
1102
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1103
-
1104
- "use strict";
1105
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1106
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1107
- /* harmony export */ "r": () => (/* binding */ useGalleryQuery)
1108
- /* harmony export */ });
1109
- /* unused harmony export query */
1110
- /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7794);
1111
- /* harmony import */ var src_sdk_graphql_useQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7732);
1112
- /* harmony import */ var _sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4867);
1113
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_graphql_useQuery__WEBPACK_IMPORTED_MODULE_0__, _sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__]);
1114
- ([src_sdk_graphql_useQuery__WEBPACK_IMPORTED_MODULE_0__, _sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1115
-
1116
-
1117
-
1118
- /**
1119
- * This query is run on the browser and contains
1120
- * the current search state of the user
1121
- */
1122
-
1123
- const query = "ProductGalleryQuery";
1124
- const useGalleryQuery = () => {
1125
- const {
1126
- state: {
1127
- term,
1128
- sort,
1129
- selectedFacets
1130
- },
1131
- itemsPerPage
1132
- } = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .useSearch */ .R)();
1133
- const localizedVariables = (0,_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__/* .useLocalizedVariables */ .yb)({
1134
- first: itemsPerPage,
1135
- after: '0',
1136
- sort,
1137
- term: term ?? '',
1138
- selectedFacets
1139
- });
1140
- return (0,src_sdk_graphql_useQuery__WEBPACK_IMPORTED_MODULE_0__/* .useQuery */ .aM)(query, localizedVariables);
1141
- };
1142
- __webpack_async_result__();
1143
- } catch(e) { __webpack_async_result__(e); } });
1144
-
1145
- /***/ }),
1146
-
1147
- /***/ 763:
1148
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1149
-
1150
- "use strict";
1151
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1152
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1153
- /* harmony export */ "F": () => (/* binding */ useProductsPrefetch),
1154
- /* harmony export */ "r": () => (/* binding */ useProducts)
1155
- /* harmony export */ });
1156
- /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7794);
1157
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
1158
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1159
- /* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4867);
1160
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__]);
1161
- src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1162
-
1163
-
1164
-
1165
- const useProductsPrefetch = page => {
1166
- const {
1167
- itemsPerPage,
1168
- state: {
1169
- sort,
1170
- term,
1171
- selectedFacets
1172
- }
1173
- } = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .useSearch */ .R)();
1174
- const prefetch = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__/* .useProductsQueryPrefetch */ .BG)({
1175
- first: itemsPerPage,
1176
- after: (itemsPerPage * (page ?? 0)).toString(),
1177
- sort,
1178
- term: term ?? '',
1179
- selectedFacets
1180
- });
1181
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1182
- if (page !== null) {
1183
- prefetch();
1184
- }
1185
- }, [page, prefetch]);
1186
- };
1187
- const useProducts = page => {
1188
- const {
1189
- itemsPerPage,
1190
- state: {
1191
- sort,
1192
- term,
1193
- selectedFacets
1194
- }
1195
- } = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .useSearch */ .R)();
1196
- const productList = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_1__/* .useProductsQuery */ .kN)({
1197
- first: itemsPerPage,
1198
- after: (itemsPerPage * page).toString(),
1199
- sort,
1200
- term: term ?? '',
1201
- selectedFacets
1202
- }, {
1203
- suspense: true
1204
- });
1205
- return productList?.edges;
1206
- };
1207
- __webpack_async_result__();
1208
- } catch(e) { __webpack_async_result__(e); } });
1209
-
1210
- /***/ }),
1211
-
1212
- /***/ 5473:
1213
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1214
-
1215
- "use strict";
1216
-
1217
- // EXPORTS
1218
- __webpack_require__.d(__webpack_exports__, {
1219
- "Z": () => (/* reexport */ FilterSkeleton_FilterSkeleton)
1220
- });
1221
-
1222
- // EXTERNAL MODULE: ../components/dist/atoms/Skeleton/Skeleton.js
1223
- var Skeleton = __webpack_require__(2928);
1224
- // EXTERNAL MODULE: ./src/components/skeletons/FilterSkeleton/filter-skeleton.module.scss
1225
- var filter_skeleton_module = __webpack_require__(5445);
1226
- var filter_skeleton_module_default = /*#__PURE__*/__webpack_require__.n(filter_skeleton_module);
1227
- // EXTERNAL MODULE: external "react/jsx-runtime"
1228
- var jsx_runtime_ = __webpack_require__(997);
1229
- ;// CONCATENATED MODULE: ./src/components/skeletons/FilterSkeleton/FilterSkeleton.tsx
1230
-
1231
-
1232
-
1233
-
1234
-
1235
-
1236
- function FilterSkeleton({
1237
- children,
1238
- loading = true
1239
- }) {
1240
- return loading ? /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
1241
- className: (filter_skeleton_module_default()).fsFilterSkeleton,
1242
- "data-fs-filter-skeleton": true,
1243
- children: [/*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
1244
- "data-fs-filter-skeleton-text": true,
1245
- size: {
1246
- width: '100%',
1247
- height: '1.5rem'
1248
- }
1249
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
1250
- "data-fs-filter-skeleton-content": true,
1251
- children: [/*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
1252
- "data-fs-filter-skeleton-text": true,
1253
- size: {
1254
- width: '100%',
1255
- height: '1.5rem'
1256
- },
1257
- shimmer: false
1258
- }), /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
1259
- "data-fs-filter-skeleton-text": true,
1260
- size: {
1261
- width: '100%',
1262
- height: '1.5rem'
1263
- },
1264
- shimmer: false
1265
- }), /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
1266
- "data-fs-filter-skeleton-text": true,
1267
- size: {
1268
- width: '100%',
1269
- height: '1.5rem'
1270
- },
1271
- shimmer: false
1272
- })]
1273
- })]
1274
- }) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
1275
- children: children
1276
- });
1277
- }
1278
-
1279
- /* harmony default export */ const FilterSkeleton_FilterSkeleton = (FilterSkeleton);
1280
- ;// CONCATENATED MODULE: ./src/components/skeletons/FilterSkeleton/index.ts
1281
-
1282
-
1283
- /***/ }),
1284
-
1285
- /***/ 9913:
1286
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1287
-
1288
- "use strict";
1289
-
1290
- // EXPORTS
1291
- __webpack_require__.d(__webpack_exports__, {
1292
- "Z": () => (/* reexport */ ProductGridSkeleton_ProductGridSkeleton)
1293
- });
1294
-
1295
- // EXTERNAL MODULE: ./src/constants.ts
1296
- var constants = __webpack_require__(8459);
1297
- // EXTERNAL MODULE: ./src/components/product/ProductGrid/product-grid.module.scss
1298
- var product_grid_module = __webpack_require__(4920);
1299
- var product_grid_module_default = /*#__PURE__*/__webpack_require__.n(product_grid_module);
1300
- // EXTERNAL MODULE: ./src/components/skeletons/ProductCardSkeleton/index.ts + 1 modules
1301
- var ProductCardSkeleton = __webpack_require__(3288);
1302
- // EXTERNAL MODULE: external "react/jsx-runtime"
1303
- var jsx_runtime_ = __webpack_require__(997);
1304
- ;// CONCATENATED MODULE: ./src/components/skeletons/ProductGridSkeleton/ProductGridSkeleton.tsx
1305
-
1306
-
1307
-
1308
-
1309
-
1310
-
1311
- function ProductGridSkeleton({
1312
- children,
1313
- aspectRatio,
1314
- loading = true
1315
- }) {
1316
- return loading ? /*#__PURE__*/jsx_runtime_.jsx("ul", {
1317
- className: (product_grid_module_default()).fsProductGrid,
1318
- children: Array.from({
1319
- length: constants/* ITEMS_PER_PAGE */.g
1320
- }, (_, index) => /*#__PURE__*/jsx_runtime_.jsx("li", {
1321
- children: /*#__PURE__*/jsx_runtime_.jsx(ProductCardSkeleton/* default */.Z, {
1322
- aspectRatio: aspectRatio,
1323
- bordered: true
1324
- })
1325
- }, String(index)))
1326
- }) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
1327
- children: children
1328
- });
1329
- }
1330
-
1331
- /* harmony default export */ const ProductGridSkeleton_ProductGridSkeleton = (ProductGridSkeleton);
1332
- ;// CONCATENATED MODULE: ./src/components/skeletons/ProductGridSkeleton/index.ts
1333
-
1334
-
1335
- /***/ }),
1336
-
1337
- /***/ 9509:
1338
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1339
-
1340
- "use strict";
1341
-
1342
- // EXPORTS
1343
- __webpack_require__.d(__webpack_exports__, {
1344
- "Z": () => (/* reexport */ EmptyState_EmptyState)
1345
- });
1346
-
1347
- // EXTERNAL MODULE: ./src/components/ui/EmptyState/empty-state.module.scss
1348
- var empty_state_module = __webpack_require__(8098);
1349
- var empty_state_module_default = /*#__PURE__*/__webpack_require__.n(empty_state_module);
1350
- // EXTERNAL MODULE: external "react/jsx-runtime"
1351
- var jsx_runtime_ = __webpack_require__(997);
1352
- ;// CONCATENATED MODULE: ./src/components/ui/EmptyState/EmptyState.tsx
1353
-
1354
-
1355
-
1356
- function EmptyState({
1357
- children,
1358
- variant = 'default'
1359
- }) {
1360
- return /*#__PURE__*/jsx_runtime_.jsx("section", {
1361
- className: (empty_state_module_default()).fsEmptyState,
1362
- "data-fs-empty-state": true,
1363
- "data-fs-empty-state-variant": variant,
1364
- children: children
1365
- });
1366
- }
1367
-
1368
- /* harmony default export */ const EmptyState_EmptyState = (EmptyState);
1369
- ;// CONCATENATED MODULE: ./src/components/ui/EmptyState/index.ts
1370
-
1371
-
1372
- /***/ }),
1373
-
1374
- /***/ 1523:
1375
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1376
-
1377
- "use strict";
1378
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1379
- /* harmony export */ "j": () => (/* binding */ useApplySearchState)
1380
- /* harmony export */ });
1381
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
1382
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1383
- /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1853);
1384
- /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
1385
-
1386
-
1387
- const useApplySearchState = () => {
1388
- const router = (0,next_router__WEBPACK_IMPORTED_MODULE_1__.useRouter)();
1389
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(url => router.push(`${url.pathname}${url.search}`), [router]);
1390
- };
1391
-
1392
- /***/ }),
1393
-
1394
- /***/ 4920:
1395
- /***/ ((module) => {
1396
-
1397
- // Exports
1398
- module.exports = {
1399
- "fs-product-grid": "product-grid_fs-product-grid__SF25P",
1400
- "fsProductGrid": "product-grid_fs-product-grid__SF25P"
1401
- };
1402
-
1403
-
1404
- /***/ }),
1405
-
1406
- /***/ 8209:
1407
- /***/ ((module) => {
1408
-
1409
- // Exports
1410
- module.exports = {
1411
- "fs-facets": "facets_fs-facets__Hva9t",
1412
- "fsFacets": "facets_fs-facets__Hva9t"
1413
- };
1414
-
1415
-
1416
- /***/ }),
1417
-
1418
- /***/ 4618:
1419
- /***/ ((module) => {
1420
-
1421
- // Exports
1422
- module.exports = {
1423
- "fs-filter-slider": "filter-slider_fs-filter-slider__bHe2U",
1424
- "fsFilterSlider": "filter-slider_fs-filter-slider__bHe2U"
1425
- };
1426
-
1427
-
1428
- /***/ }),
1429
-
1430
- /***/ 2304:
1431
- /***/ ((module) => {
1432
-
1433
- // Exports
1434
- module.exports = {
1435
- "fs-product-listing": "product-gallery_fs-product-listing__BBpw4",
1436
- "fsProductListing": "product-gallery_fs-product-listing__BBpw4"
1437
- };
1438
-
1439
-
1440
- /***/ }),
1441
-
1442
- /***/ 5445:
1443
- /***/ ((module) => {
1444
-
1445
- // Exports
1446
- module.exports = {
1447
- "fs-filter-skeleton": "filter-skeleton_fs-filter-skeleton___kwHE",
1448
- "fsFilterSkeleton": "filter-skeleton_fs-filter-skeleton___kwHE"
1449
- };
1450
-
1451
-
1452
- /***/ }),
1453
-
1454
- /***/ 8098:
1455
- /***/ ((module) => {
1456
-
1457
- // Exports
1458
- module.exports = {
1459
- "fs-empty-state": "empty-state_fs-empty-state__F7Xul",
1460
- "fsEmptyState": "empty-state_fs-empty-state__F7Xul"
1461
- };
1462
-
1463
-
1464
- /***/ })
1465
-
1466
- };
1467
- ;