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