@faststore/core 2.2.63 → 2.2.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +40 -44
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1gneedd +1 -1
- package/.next/cache/next-server.js.nft.json +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +3 -3
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/289.js +11 -8
- package/.next/server/chunks/445.js +167 -0
- package/.next/server/chunks/585.js +0 -22
- package/.next/server/chunks/74.js +1758 -80
- package/.next/server/chunks/863.js +0 -22
- package/.next/server/chunks/934.js +125 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.js.nft.json +1 -1
- package/.next/server/pages/[...slug].js +5 -5
- package/.next/server/pages/[...slug].js.nft.json +1 -1
- package/.next/server/pages/[slug]/p.js.nft.json +1 -1
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/account.js.nft.json +1 -1
- package/.next/server/pages/checkout.js.nft.json +1 -1
- package/.next/server/pages/en-US/404.html +2 -2
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/account.html +2 -2
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/login.js.nft.json +1 -1
- package/.next/server/pages/s.js +5 -5
- package/.next/server/pages/s.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +4 -4
- package/.next/static/Z7PsIH45Cy7Rnzoy9ETnz/_buildManifest.js +1 -0
- package/.next/static/chunks/585.ee7478bead8853ae.js +1 -0
- package/.next/static/chunks/800.8f4f91b39aa47346.js +1 -0
- package/.next/static/chunks/846-fbe704a112d163f4.js +1 -0
- package/.next/static/chunks/pages/404-5e6c01505839ca4e.js +1 -0
- package/.next/static/chunks/pages/500-92239cdd00a581dd.js +1 -0
- package/.next/static/chunks/pages/[...slug]-c7b64458aaf57ba4.js +1 -0
- package/.next/static/chunks/pages/[slug]/{p-fd236c3b1d28734d.js → p-1b15ce4b48000425.js} +1 -1
- package/.next/static/chunks/pages/{account-acd169fb6e00021f.js → account-2d15d4e38b855872.js} +1 -1
- package/.next/static/chunks/pages/{checkout-5de711ccb807644b.js → checkout-e34b1a2945839749.js} +1 -1
- package/.next/static/chunks/pages/{index-66a1b740f1101ce4.js → index-9bda5b7b8c3a723e.js} +1 -1
- package/.next/static/chunks/pages/login-1b197c0b0d5ba457.js +1 -0
- package/.next/static/chunks/pages/s-ed126d7e39eec25b.js +1 -0
- package/.next/static/chunks/webpack-340b017ee637c5d4.js +1 -0
- package/.next/static/css/7926db3235e499be.css +1 -0
- package/.next/trace +82 -81
- package/.turbo/turbo-build.log +10 -10
- package/.turbo/turbo-test.log +10 -10
- package/package.json +2 -2
- package/src/components/cms/GlobalSections.tsx +1 -1
- package/src/components/product/ProductGrid/ProductGrid.tsx +8 -8
- package/src/components/region/RegionBar/RegionBar.tsx +17 -21
- package/src/components/search/Filter/Filter.tsx +6 -5
- package/src/components/sections/ProductGallery/DefaultComponents.ts +29 -0
- package/src/components/sections/ProductGallery/OverriddenDefaultProductGallery.ts +12 -0
- package/src/components/sections/ProductGallery/ProductGallery.tsx +4 -2
- package/src/components/sections/RegionBar/DefaultComponents.ts +7 -0
- package/src/components/sections/RegionBar/OverriddenDefaultRegionBar.ts +12 -0
- package/src/components/templates/ProductListingPage/ProductListing.tsx +1 -1
- package/src/components/templates/SearchPage/SearchPage.tsx +1 -1
- package/src/components/ui/ProductGallery/ProductGallery.tsx +12 -10
- package/src/sdk/overrides/sections.tsx +9 -1
- package/src/typings/overrides.ts +2 -0
- package/.next/server/chunks/732.js +0 -1887
- package/.next/static/chunks/238-6cdd6e7841eba836.js +0 -1
- package/.next/static/chunks/585.4d5c26d3a9861c00.js +0 -1
- package/.next/static/chunks/800.ea75aa39e939d9af.js +0 -1
- package/.next/static/chunks/875-299d78c2777aa78f.js +0 -1
- package/.next/static/chunks/pages/404-340e5868f79ee704.js +0 -1
- package/.next/static/chunks/pages/500-ee2a5efc5808cdd4.js +0 -1
- package/.next/static/chunks/pages/[...slug]-8e6c8b59791c31e9.js +0 -1
- package/.next/static/chunks/pages/login-e5ee36783a4877fd.js +0 -1
- package/.next/static/chunks/pages/s-669d2eccade79e75.js +0 -1
- package/.next/static/chunks/webpack-b302478d1b1f81e9.js +0 -1
- package/.next/static/css/ac16c756c850c474.css +0 -1
- package/.next/static/css/d973eeb803fd5b08.css +0 -1
- package/.next/static/yHO1tC6ibIFdp6AHIusRm/_buildManifest.js +0 -1
- package/src/components/sections/ProductGallery/Overrides.tsx +0 -65
- package/src/components/sections/RegionBar/Overrides.tsx +0 -16
- /package/.next/static/{yHO1tC6ibIFdp6AHIusRm → Z7PsIH45Cy7Rnzoy9ETnz}/_ssgManifest.js +0 -0
|
@@ -952,6 +952,300 @@ function SearchProvider({ onSearchSelection, children, term, terms, products, is
|
|
|
952
952
|
|
|
953
953
|
/***/ }),
|
|
954
954
|
|
|
955
|
+
/***/ 6133:
|
|
956
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
957
|
+
|
|
958
|
+
"use strict";
|
|
959
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
960
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
961
|
+
/* harmony export */ });
|
|
962
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
963
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
964
|
+
|
|
965
|
+
function EmptyState({ testId = 'fs-empty-state', title, titleIcon, variant = 'default', bkgColor = 'default', children, ...otherProps }) {
|
|
966
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("section", { "data-fs-empty-state": true, "data-fs-empty-state-variant": variant, "data-fs-empty-state-bkg-color": bkgColor, "data-fs-content": "empty-state", "data-testid": testId, ...otherProps },
|
|
967
|
+
title && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("header", { "data-fs-empty-state-title": true },
|
|
968
|
+
titleIcon && react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, titleIcon),
|
|
969
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, title))),
|
|
970
|
+
children));
|
|
971
|
+
}
|
|
972
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EmptyState);
|
|
973
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
974
|
+
|
|
975
|
+
/***/ }),
|
|
976
|
+
|
|
977
|
+
/***/ 5699:
|
|
978
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
979
|
+
|
|
980
|
+
"use strict";
|
|
981
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
982
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
983
|
+
/* harmony export */ });
|
|
984
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
985
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
986
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1516);
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
function Filter({ testId, title, indicesExpanded, onAccordionChange, children, }) {
|
|
990
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-filter": true, "data-testid": testId },
|
|
991
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", { "data-fs-filter-title": true }, title),
|
|
992
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { indices: indicesExpanded, onChange: onAccordionChange, "data-fs-filter-accordion": true }, children)));
|
|
993
|
+
}
|
|
994
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Filter);
|
|
995
|
+
//# sourceMappingURL=Filter.js.map
|
|
996
|
+
|
|
997
|
+
/***/ }),
|
|
998
|
+
|
|
999
|
+
/***/ 2815:
|
|
1000
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1001
|
+
|
|
1002
|
+
"use strict";
|
|
1003
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1004
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1005
|
+
/* harmony export */ });
|
|
1006
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
1007
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1008
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4564);
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
function FilterFacetBoolean({ children }) {
|
|
1012
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-fs-filter-list": true }, children);
|
|
1013
|
+
}
|
|
1014
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FilterFacetBoolean);
|
|
1015
|
+
//# sourceMappingURL=FilterFacetBoolean.js.map
|
|
1016
|
+
|
|
1017
|
+
/***/ }),
|
|
1018
|
+
|
|
1019
|
+
/***/ 1305:
|
|
1020
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1021
|
+
|
|
1022
|
+
"use strict";
|
|
1023
|
+
|
|
1024
|
+
// EXPORTS
|
|
1025
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1026
|
+
"Z": () => (/* binding */ Filter_FilterFacetBooleanItem)
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
// EXTERNAL MODULE: external "react"
|
|
1030
|
+
var external_react_ = __webpack_require__(6689);
|
|
1031
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
1032
|
+
;// CONCATENATED MODULE: ../components/dist/esm/atoms/Checkbox/Checkbox.js
|
|
1033
|
+
|
|
1034
|
+
const Checkbox = (0,external_react_.forwardRef)(function Checkbox({ testId = 'fs-checkbox', partial, ...otherProps }, ref) {
|
|
1035
|
+
return (external_react_default().createElement("input", { ref: ref, "data-fs-checkbox": true, "data-testid": testId, "data-fs-checkbox-partial": partial, type: "checkbox", ...otherProps }));
|
|
1036
|
+
});
|
|
1037
|
+
/* harmony default export */ const Checkbox_Checkbox = (Checkbox);
|
|
1038
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
1039
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Label/Label.js
|
|
1040
|
+
var Label = __webpack_require__(1953);
|
|
1041
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Badge/Badge.js
|
|
1042
|
+
var Badge = __webpack_require__(276);
|
|
1043
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Filter/FilterFacetBooleanItem.js
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
function FilterFacetBooleanItem({ testId, id, selected, value, quantity, facetKey, label, onFacetChange, }) {
|
|
1047
|
+
return (external_react_default().createElement("li", { key: id, "data-fs-filter-list-item": true },
|
|
1048
|
+
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 }),
|
|
1049
|
+
external_react_default().createElement(Label/* default */.Z, { htmlFor: id, className: "text__title-mini-alt", "data-fs-filter-list-item-label": true },
|
|
1050
|
+
label,
|
|
1051
|
+
" ",
|
|
1052
|
+
external_react_default().createElement(Badge/* default */.Z, { "data-fs-filter-list-item-badge": true }, quantity))));
|
|
1053
|
+
}
|
|
1054
|
+
/* harmony default export */ const Filter_FilterFacetBooleanItem = (FilterFacetBooleanItem);
|
|
1055
|
+
//# sourceMappingURL=FilterFacetBooleanItem.js.map
|
|
1056
|
+
|
|
1057
|
+
/***/ }),
|
|
1058
|
+
|
|
1059
|
+
/***/ 1355:
|
|
1060
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1061
|
+
|
|
1062
|
+
"use strict";
|
|
1063
|
+
|
|
1064
|
+
// EXPORTS
|
|
1065
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1066
|
+
"Z": () => (/* binding */ Filter_FilterFacetRange)
|
|
1067
|
+
});
|
|
1068
|
+
|
|
1069
|
+
// EXTERNAL MODULE: external "react"
|
|
1070
|
+
var external_react_ = __webpack_require__(6689);
|
|
1071
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
1072
|
+
;// CONCATENATED MODULE: ../components/dist/esm/atoms/Slider/Slider.js
|
|
1073
|
+
/**
|
|
1074
|
+
* This code is inspired by the work of [sandra-lewis](https://codesandbox.io/u/sandra-lewis)
|
|
1075
|
+
*/
|
|
1076
|
+
|
|
1077
|
+
const percent = (value, min, max) => Math.round(((value - min) / (max - min)) * 100);
|
|
1078
|
+
const Slider = (0,external_react_.forwardRef)(function Slider({ min, max, absoluteValuesLabel, onChange, onEnd, testId = 'fs-slider', getAriaValueText, step, minValueLabelComponent, maxValueLabelComponent, ...otherProps }, ref) {
|
|
1079
|
+
const widthPercent = (0,external_react_.useMemo)(() => (max.absolute - min.absolute) / 100, [max.absolute, min.absolute]);
|
|
1080
|
+
const [minPercent, setMinPercent] = (0,external_react_.useState)(() => percent(min.selected, min.absolute, max.absolute));
|
|
1081
|
+
const [maxPercent, setMaxPercent] = (0,external_react_.useState)(() => percent(max.selected, min.absolute, max.absolute));
|
|
1082
|
+
const [minVal, setMinVal] = (0,external_react_.useState)(() => Math.floor(min.absolute + minPercent * widthPercent));
|
|
1083
|
+
const [maxVal, setMaxVal] = (0,external_react_.useState)(() => Math.round(min.absolute + maxPercent * widthPercent));
|
|
1084
|
+
const percentage = (value) => (value / max.absolute) * 100;
|
|
1085
|
+
(0,external_react_.useImperativeHandle)(ref, () => ({
|
|
1086
|
+
setSliderValues: (values) => {
|
|
1087
|
+
const sliderMinValue = Math.min(Number(values.min), maxVal);
|
|
1088
|
+
setMinVal(sliderMinValue);
|
|
1089
|
+
setMinPercent(percent(sliderMinValue, min.absolute, max.absolute));
|
|
1090
|
+
if (values.max > max.absolute) {
|
|
1091
|
+
setMaxVal(max.absolute);
|
|
1092
|
+
setMaxPercent(percent(max.absolute, min.absolute, max.absolute));
|
|
1093
|
+
return;
|
|
1094
|
+
}
|
|
1095
|
+
const sliderMaxValue = Math.max(Number(values.max), minVal);
|
|
1096
|
+
setMaxVal(sliderMaxValue);
|
|
1097
|
+
setMaxPercent(percent(sliderMaxValue, min.absolute, max.absolute));
|
|
1098
|
+
},
|
|
1099
|
+
}));
|
|
1100
|
+
return (external_react_default().createElement("div", { "data-fs-slider": true, "data-testid": testId, ...otherProps },
|
|
1101
|
+
external_react_default().createElement("div", { "data-fs-slider-absolute-values": true },
|
|
1102
|
+
external_react_default().createElement("span", null, absoluteValuesLabel.min),
|
|
1103
|
+
external_react_default().createElement("span", null, absoluteValuesLabel.max)),
|
|
1104
|
+
external_react_default().createElement("div", { "data-fs-slider-wrapper": true },
|
|
1105
|
+
external_react_default().createElement("div", { "data-fs-slider-range": true, style: {
|
|
1106
|
+
left: `${minPercent}%`,
|
|
1107
|
+
width: `${maxPercent - minPercent}%`,
|
|
1108
|
+
} }),
|
|
1109
|
+
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) => {
|
|
1110
|
+
const minValue = Math.min(Number(event.target.value), maxVal);
|
|
1111
|
+
setMinVal(minValue);
|
|
1112
|
+
setMinPercent(percent(minValue, min.absolute, max.absolute));
|
|
1113
|
+
onChange?.({ min: minValue, max: maxVal });
|
|
1114
|
+
}, "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') }),
|
|
1115
|
+
minValueLabelComponent && (external_react_default().createElement("span", { "data-fs-slider-value-label": "min", style: {
|
|
1116
|
+
left: `calc(${percentage(minVal)}% + (${8 - percentage(minVal) * 0.2}px))`,
|
|
1117
|
+
} }, minValueLabelComponent(minVal))),
|
|
1118
|
+
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) => {
|
|
1119
|
+
const maxValue = Math.max(Number(event.target.value), minVal);
|
|
1120
|
+
setMaxVal(maxValue);
|
|
1121
|
+
setMaxPercent(percent(maxValue, min.absolute, max.absolute));
|
|
1122
|
+
onChange?.({ min: minVal, max: maxValue });
|
|
1123
|
+
}, "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') }),
|
|
1124
|
+
maxValueLabelComponent && (external_react_default().createElement("span", { "data-fs-slider-value-label": "max", style: {
|
|
1125
|
+
left: `calc(${percentage(maxVal)}% + (${8 - percentage(maxVal) * 0.2}px))`,
|
|
1126
|
+
} }, maxValueLabelComponent(maxVal))))));
|
|
1127
|
+
});
|
|
1128
|
+
/* harmony default export */ const Slider_Slider = (Slider);
|
|
1129
|
+
//# sourceMappingURL=Slider.js.map
|
|
1130
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Price/Price.js
|
|
1131
|
+
var Price = __webpack_require__(9767);
|
|
1132
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/InputField/InputField.js
|
|
1133
|
+
var InputField = __webpack_require__(3779);
|
|
1134
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/PriceRange/PriceRange.js
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
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) {
|
|
1138
|
+
const sliderRef = (0,external_react_.useRef)();
|
|
1139
|
+
(0,external_react_.useImperativeHandle)(ref, () => ({
|
|
1140
|
+
setPriceRangeValues: (values) => {
|
|
1141
|
+
onChange?.(values);
|
|
1142
|
+
sliderRef.current?.setSliderValues(values);
|
|
1143
|
+
},
|
|
1144
|
+
}));
|
|
1145
|
+
const inputMinRef = (0,external_react_.useRef)(null);
|
|
1146
|
+
const inputMaxRef = (0,external_react_.useRef)(null);
|
|
1147
|
+
const [inputMinError, setInputMinError] = (0,external_react_.useState)();
|
|
1148
|
+
const [inputMaxError, setInputMaxError] = (0,external_react_.useState)();
|
|
1149
|
+
const [priceRange, setPriceRange] = (0,external_react_.useState)({
|
|
1150
|
+
min: Math.floor(min.selected),
|
|
1151
|
+
max: Math.round(max.selected),
|
|
1152
|
+
});
|
|
1153
|
+
function onChangePriceRange(value) {
|
|
1154
|
+
setInputMinError(undefined);
|
|
1155
|
+
setInputMaxError(undefined);
|
|
1156
|
+
setPriceRange({ min: value.min, max: value.max });
|
|
1157
|
+
if (inputMinRef.current?.value) {
|
|
1158
|
+
inputMinRef.current.value = String(value.min);
|
|
1159
|
+
}
|
|
1160
|
+
if (inputMaxRef.current?.value) {
|
|
1161
|
+
inputMaxRef.current.value = String(value.max);
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
function onChangeInputMin(value) {
|
|
1165
|
+
setInputMinError(undefined);
|
|
1166
|
+
if (Number(value) < Math.floor(min.absolute)) {
|
|
1167
|
+
return;
|
|
1168
|
+
}
|
|
1169
|
+
if (Number(value) > Math.floor(priceRange.max)) {
|
|
1170
|
+
setInputMinError(`Min price can't be greater than max`);
|
|
1171
|
+
}
|
|
1172
|
+
setPriceRange({ ...priceRange, min: Number(value) });
|
|
1173
|
+
sliderRef.current?.setSliderValues({
|
|
1174
|
+
...priceRange,
|
|
1175
|
+
min: Number(value),
|
|
1176
|
+
});
|
|
1177
|
+
}
|
|
1178
|
+
function onChangeInputMax(value) {
|
|
1179
|
+
setInputMaxError(undefined);
|
|
1180
|
+
if (Number(value) > Math.round(max.absolute)) {
|
|
1181
|
+
return;
|
|
1182
|
+
}
|
|
1183
|
+
if (Number(value) < Math.round(priceRange.min)) {
|
|
1184
|
+
setInputMaxError(`Max price can't be smaller than min`);
|
|
1185
|
+
}
|
|
1186
|
+
setPriceRange({ ...priceRange, max: Number(value) });
|
|
1187
|
+
sliderRef.current?.setSliderValues({
|
|
1188
|
+
...priceRange,
|
|
1189
|
+
max: Number(value),
|
|
1190
|
+
});
|
|
1191
|
+
}
|
|
1192
|
+
return (external_react_default().createElement("div", { "data-fs-price-range": true, "data-testid": testId, ...otherProps },
|
|
1193
|
+
external_react_default().createElement(Slider_Slider, { ref: sliderRef, min: min, max: max, step: step, onEnd: (value) => {
|
|
1194
|
+
onEnd?.(value);
|
|
1195
|
+
onChangePriceRange(value);
|
|
1196
|
+
}, "aria-label": ariaLabel, onChange: (value) => onChange?.(value), absoluteValuesLabel: {
|
|
1197
|
+
min: (external_react_default().createElement(Price/* default */.Z, { value: Math.floor(min.absolute), variant: variant, formatter: formatter })),
|
|
1198
|
+
max: (external_react_default().createElement(Price/* default */.Z, { value: Math.round(max.absolute), variant: variant, formatter: formatter })),
|
|
1199
|
+
}, minValueLabelComponent: (minValue) => {
|
|
1200
|
+
return (external_react_default().createElement(Price/* default */.Z, { value: minValue, variant: variant, formatter: formatter }));
|
|
1201
|
+
}, maxValueLabelComponent: (maxValue) => {
|
|
1202
|
+
return (external_react_default().createElement(Price/* default */.Z, { value: maxValue, variant: variant, formatter: formatter }));
|
|
1203
|
+
} }),
|
|
1204
|
+
external_react_default().createElement("div", { "data-fs-price-range-inputs": true },
|
|
1205
|
+
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) }),
|
|
1206
|
+
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) }))));
|
|
1207
|
+
});
|
|
1208
|
+
/* harmony default export */ const PriceRange_PriceRange = (PriceRange);
|
|
1209
|
+
//# sourceMappingURL=PriceRange.js.map
|
|
1210
|
+
;// CONCATENATED MODULE: ../components/dist/esm/organisms/Filter/FilterFacetRange.js
|
|
1211
|
+
|
|
1212
|
+
|
|
1213
|
+
const formatRange = (min, max) => `${min.toFixed(2)}-to-${max.toFixed(2)}`;
|
|
1214
|
+
function FilterFacetRange({ min, max, formatter, facetKey, onFacetChange, }) {
|
|
1215
|
+
return (external_react_default().createElement(PriceRange_PriceRange, { "data-fs-filter-facet-range": true, min: min, max: max, formatter: formatter, step: 1, onEnd: (v) => onFacetChange({
|
|
1216
|
+
key: facetKey,
|
|
1217
|
+
value: formatRange(v.min, v.max),
|
|
1218
|
+
}, 'RANGE') }));
|
|
1219
|
+
}
|
|
1220
|
+
/* harmony default export */ const Filter_FilterFacetRange = (FilterFacetRange);
|
|
1221
|
+
//# sourceMappingURL=FilterFacetRange.js.map
|
|
1222
|
+
|
|
1223
|
+
/***/ }),
|
|
1224
|
+
|
|
1225
|
+
/***/ 4199:
|
|
1226
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1227
|
+
|
|
1228
|
+
"use strict";
|
|
1229
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1230
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1231
|
+
/* harmony export */ });
|
|
1232
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
1233
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1234
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(783);
|
|
1235
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7734);
|
|
1236
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7583);
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
function FilterFacets({ testId, label, index, children, type, }) {
|
|
1240
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { key: `${label}-${index}`, prefixId: testId, testId: `${testId}-accordion`, index: index, "data-type": type, "data-fs-filter-accordion-item": true },
|
|
1241
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { testId: `${testId}-accordion-button` }, label),
|
|
1242
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, null, children)));
|
|
1243
|
+
}
|
|
1244
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FilterFacets);
|
|
1245
|
+
//# sourceMappingURL=FilterFacets.js.map
|
|
1246
|
+
|
|
1247
|
+
/***/ }),
|
|
1248
|
+
|
|
955
1249
|
/***/ 6737:
|
|
956
1250
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
957
1251
|
|
|
@@ -1138,13 +1432,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
1138
1432
|
/* harmony import */ var src_components_common_Toast__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3746);
|
|
1139
1433
|
/* harmony import */ var _RenderSections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2224);
|
|
1140
1434
|
/* harmony import */ var src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1605);
|
|
1435
|
+
/* harmony import */ var src_components_sections_RegionBar_OverriddenDefaultRegionBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2205);
|
|
1141
1436
|
/* harmony import */ var src_components_sections_Footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);
|
|
1142
1437
|
/* harmony import */ var src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6696);
|
|
1143
|
-
/* harmony import */ var src_components_sections_RegionBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3830);
|
|
1144
1438
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
|
|
1145
1439
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
|
|
1146
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
|
|
1147
|
-
([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
1440
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, src_components_sections_RegionBar_OverriddenDefaultRegionBar__WEBPACK_IMPORTED_MODULE_4__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
|
|
1441
|
+
([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, src_components_sections_RegionBar_OverriddenDefaultRegionBar__WEBPACK_IMPORTED_MODULE_4__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
1148
1442
|
const _excluded = ["children"];
|
|
1149
1443
|
|
|
1150
1444
|
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; }
|
|
@@ -1176,7 +1470,7 @@ const GLOBAL_SECTIONS_CONTENT_TYPE = 'globalSections';
|
|
|
1176
1470
|
const COMPONENTS = _objectSpread({
|
|
1177
1471
|
Alert: src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__/* .OverriddenDefaultAlert */ .N,
|
|
1178
1472
|
Navbar: src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
1179
|
-
RegionBar:
|
|
1473
|
+
RegionBar: src_components_sections_RegionBar_OverriddenDefaultRegionBar__WEBPACK_IMPORTED_MODULE_4__/* .OverriddenDefaultRegionBar */ .L,
|
|
1180
1474
|
RegionModal,
|
|
1181
1475
|
CartSidebar,
|
|
1182
1476
|
Footer: src_components_sections_Footer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z
|
|
@@ -2069,6 +2363,210 @@ const fragment = "unknown";
|
|
|
2069
2363
|
|
|
2070
2364
|
/***/ }),
|
|
2071
2365
|
|
|
2366
|
+
/***/ 9044:
|
|
2367
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2368
|
+
|
|
2369
|
+
"use strict";
|
|
2370
|
+
|
|
2371
|
+
// EXPORTS
|
|
2372
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2373
|
+
"Z": () => (/* binding */ Filter_Filter)
|
|
2374
|
+
});
|
|
2375
|
+
|
|
2376
|
+
// UNUSED EXPORTS: fragment
|
|
2377
|
+
|
|
2378
|
+
// EXTERNAL MODULE: ../components/dist/esm/hooks/UIProvider.js
|
|
2379
|
+
var UIProvider = __webpack_require__(6652);
|
|
2380
|
+
// EXTERNAL MODULE: external "react"
|
|
2381
|
+
var external_react_ = __webpack_require__(6689);
|
|
2382
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
|
|
2383
|
+
var OverrideContext = __webpack_require__(5522);
|
|
2384
|
+
// EXTERNAL MODULE: ../sdk/dist/search/facets.js
|
|
2385
|
+
var facets = __webpack_require__(8492);
|
|
2386
|
+
// EXTERNAL MODULE: ../sdk/dist/search/useSearch.js + 1 modules
|
|
2387
|
+
var useSearch = __webpack_require__(3221);
|
|
2388
|
+
;// CONCATENATED MODULE: ./src/sdk/search/useFilter.ts
|
|
2389
|
+
const _excluded = ["value"];
|
|
2390
|
+
|
|
2391
|
+
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; }
|
|
2392
|
+
|
|
2393
|
+
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; }
|
|
2394
|
+
|
|
2395
|
+
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; }
|
|
2396
|
+
|
|
2397
|
+
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; }
|
|
2398
|
+
|
|
2399
|
+
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; }
|
|
2400
|
+
|
|
2401
|
+
|
|
2402
|
+
|
|
2403
|
+
|
|
2404
|
+
const reducer = (state, action) => {
|
|
2405
|
+
const {
|
|
2406
|
+
expanded,
|
|
2407
|
+
selected
|
|
2408
|
+
} = state;
|
|
2409
|
+
const {
|
|
2410
|
+
type,
|
|
2411
|
+
payload
|
|
2412
|
+
} = action;
|
|
2413
|
+
|
|
2414
|
+
switch (type) {
|
|
2415
|
+
case 'toggleExpanded':
|
|
2416
|
+
{
|
|
2417
|
+
if (expanded.has(payload)) {
|
|
2418
|
+
expanded.delete(payload);
|
|
2419
|
+
} else {
|
|
2420
|
+
expanded.add(payload);
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
2424
|
+
expanded: new Set(expanded)
|
|
2425
|
+
});
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2428
|
+
case 'selectFacets':
|
|
2429
|
+
{
|
|
2430
|
+
if (payload !== selected) {
|
|
2431
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
2432
|
+
selected: payload
|
|
2433
|
+
});
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
break;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
case 'toggleFacet':
|
|
2440
|
+
{
|
|
2441
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
2442
|
+
selected: (0,facets/* toggleFacet */.wB)(state.selected, payload)
|
|
2443
|
+
});
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2446
|
+
case 'setFacet':
|
|
2447
|
+
{
|
|
2448
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
2449
|
+
selected: (0,facets/* setFacet */.uL)(state.selected, payload.facet, payload.unique)
|
|
2450
|
+
});
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
default:
|
|
2454
|
+
throw new Error(`Action ${type} not implemented`);
|
|
2455
|
+
}
|
|
2456
|
+
|
|
2457
|
+
return state;
|
|
2458
|
+
};
|
|
2459
|
+
|
|
2460
|
+
const useFilter = allFacets => {
|
|
2461
|
+
const {
|
|
2462
|
+
state: {
|
|
2463
|
+
selectedFacets
|
|
2464
|
+
}
|
|
2465
|
+
} = (0,useSearch/* useSearch */.R)();
|
|
2466
|
+
const {
|
|
2467
|
+
0: {
|
|
2468
|
+
selected,
|
|
2469
|
+
expanded
|
|
2470
|
+
},
|
|
2471
|
+
1: dispatch
|
|
2472
|
+
} = (0,external_react_.useReducer)(reducer, null, () => ({
|
|
2473
|
+
expanded: new Set([]),
|
|
2474
|
+
selected: selectedFacets
|
|
2475
|
+
}));
|
|
2476
|
+
const selectedMap = (0,external_react_.useMemo)(() => selected.reduce((acc, facet) => {
|
|
2477
|
+
if (!acc.has(facet.key)) {
|
|
2478
|
+
acc.set(facet.key, new Map());
|
|
2479
|
+
}
|
|
2480
|
+
|
|
2481
|
+
acc.get(facet.key)?.set(facet.value, facet);
|
|
2482
|
+
return acc;
|
|
2483
|
+
}, new Map()), [selected]);
|
|
2484
|
+
const facets = (0,external_react_.useMemo)(() => allFacets.map(facet => {
|
|
2485
|
+
if (facet.__typename === 'StoreFacetBoolean') {
|
|
2486
|
+
return _objectSpread(_objectSpread({}, facet), {}, {
|
|
2487
|
+
values: facet.values.map(_ref => {
|
|
2488
|
+
let {
|
|
2489
|
+
value
|
|
2490
|
+
} = _ref,
|
|
2491
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
2492
|
+
|
|
2493
|
+
return _objectSpread(_objectSpread({}, rest), {}, {
|
|
2494
|
+
value,
|
|
2495
|
+
selected: Boolean(selectedMap.get(facet.key)?.has(value))
|
|
2496
|
+
});
|
|
2497
|
+
})
|
|
2498
|
+
});
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2501
|
+
return facet;
|
|
2502
|
+
}), [allFacets, selectedMap]);
|
|
2503
|
+
(0,external_react_.useEffect)(() => {
|
|
2504
|
+
dispatch({
|
|
2505
|
+
type: 'selectFacets',
|
|
2506
|
+
payload: selectedFacets
|
|
2507
|
+
});
|
|
2508
|
+
}, [selectedFacets]);
|
|
2509
|
+
return {
|
|
2510
|
+
facets,
|
|
2511
|
+
selected,
|
|
2512
|
+
expanded,
|
|
2513
|
+
dispatch
|
|
2514
|
+
};
|
|
2515
|
+
};
|
|
2516
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
2517
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
2518
|
+
;// CONCATENATED MODULE: ./src/components/search/Filter/Filter.tsx
|
|
2519
|
+
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; }
|
|
2520
|
+
|
|
2521
|
+
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; }
|
|
2522
|
+
|
|
2523
|
+
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; }
|
|
2524
|
+
|
|
2525
|
+
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
function Filter({
|
|
2534
|
+
facets: allFacets,
|
|
2535
|
+
testId = 'fs-filter',
|
|
2536
|
+
filter: filterCmsData
|
|
2537
|
+
}) {
|
|
2538
|
+
const {
|
|
2539
|
+
__experimentalFilterDesktop: FilterDesktop,
|
|
2540
|
+
__experimentalFilterSlider: FilterSlider
|
|
2541
|
+
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
2542
|
+
const filter = useFilter(allFacets);
|
|
2543
|
+
const {
|
|
2544
|
+
filter: displayFilter
|
|
2545
|
+
} = (0,UIProvider/* useUI */.l)();
|
|
2546
|
+
return /*#__PURE__*/(0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
|
|
2547
|
+
children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
|
|
2548
|
+
className: "hidden-mobile",
|
|
2549
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(FilterDesktop.Component, Filter_objectSpread(Filter_objectSpread(Filter_objectSpread({}, FilterDesktop.props), filter), {}, {
|
|
2550
|
+
testId: testId,
|
|
2551
|
+
title: filterCmsData?.title
|
|
2552
|
+
}))
|
|
2553
|
+
}), displayFilter && /*#__PURE__*/jsx_runtime_.jsx(external_react_.Suspense, {
|
|
2554
|
+
fallback: null,
|
|
2555
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(FilterSlider.Component, Filter_objectSpread(Filter_objectSpread(Filter_objectSpread({}, FilterSlider.props), filter), {}, {
|
|
2556
|
+
testId: testId,
|
|
2557
|
+
title: filterCmsData?.title,
|
|
2558
|
+
clearButtonLabel: filterCmsData?.mobileOnly?.clearButtonLabel,
|
|
2559
|
+
applyButtonLabel: filterCmsData?.mobileOnly?.applyButtonLabel
|
|
2560
|
+
}))
|
|
2561
|
+
})]
|
|
2562
|
+
});
|
|
2563
|
+
}
|
|
2564
|
+
|
|
2565
|
+
const fragment = "unknown";
|
|
2566
|
+
/* harmony default export */ const Filter_Filter = (Filter);
|
|
2567
|
+
|
|
2568
|
+
/***/ }),
|
|
2569
|
+
|
|
2072
2570
|
/***/ 9471:
|
|
2073
2571
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
2074
2572
|
|
|
@@ -2211,33 +2709,129 @@ __webpack_async_result__();
|
|
|
2211
2709
|
|
|
2212
2710
|
/***/ }),
|
|
2213
2711
|
|
|
2214
|
-
/***/
|
|
2712
|
+
/***/ 8723:
|
|
2215
2713
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2216
2714
|
|
|
2217
2715
|
"use strict";
|
|
2218
2716
|
|
|
2219
2717
|
// EXPORTS
|
|
2220
2718
|
__webpack_require__.d(__webpack_exports__, {
|
|
2221
|
-
"Z": () => (/* binding */
|
|
2719
|
+
"Z": () => (/* binding */ Sort_Sort)
|
|
2222
2720
|
});
|
|
2223
2721
|
|
|
2722
|
+
// EXTERNAL MODULE: ../sdk/dist/search/useSearch.js + 1 modules
|
|
2723
|
+
var useSearch = __webpack_require__(3221);
|
|
2224
2724
|
// EXTERNAL MODULE: external "react"
|
|
2225
2725
|
var external_react_ = __webpack_require__(6689);
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2726
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
2727
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Label/Label.js
|
|
2728
|
+
var Label = __webpack_require__(1953);
|
|
2729
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
2730
|
+
var Icon = __webpack_require__(2614);
|
|
2731
|
+
;// CONCATENATED MODULE: ../components/dist/esm/atoms/Select/Select.js
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
const Select = (0,external_react_.forwardRef)(function Select({ options, id, testId = 'fs-select', ...otherProps }, ref) {
|
|
2735
|
+
return (external_react_default().createElement("div", { "data-fs-select": true },
|
|
2736
|
+
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])))),
|
|
2737
|
+
external_react_default().createElement(Icon/* default */.Z, { "data-fs-select-icon": true, name: "CaretDown" })));
|
|
2738
|
+
});
|
|
2739
|
+
/* harmony default export */ const Select_Select = (Select);
|
|
2740
|
+
//# sourceMappingURL=Select.js.map
|
|
2741
|
+
;// CONCATENATED MODULE: ../components/dist/esm/molecules/SelectField/SelectField.js
|
|
2742
|
+
|
|
2743
|
+
|
|
2744
|
+
const SelectField = (0,external_react_.forwardRef)(function SelectField({ id, label, options, testId = 'fs-select-field', ...otherProps }, ref) {
|
|
2745
|
+
return (external_react_default().createElement("div", { ref: ref, "data-fs-select-field": true },
|
|
2746
|
+
external_react_default().createElement(Label/* default */.Z, { "data-fs-select-field-label": true, htmlFor: id }, label),
|
|
2747
|
+
external_react_default().createElement(Select_Select, { id: id, options: options, "data-testid": testId, ...otherProps })));
|
|
2748
|
+
});
|
|
2749
|
+
/* harmony default export */ const SelectField_SelectField = (SelectField);
|
|
2750
|
+
//# sourceMappingURL=SelectField.js.map
|
|
2751
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
2752
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
2753
|
+
;// CONCATENATED MODULE: ./src/components/search/Sort/Sort.tsx
|
|
2754
|
+
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; }
|
|
2755
|
+
|
|
2756
|
+
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; }
|
|
2757
|
+
|
|
2758
|
+
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; }
|
|
2759
|
+
|
|
2760
|
+
|
|
2761
|
+
|
|
2762
|
+
|
|
2763
|
+
const OptionsMap = {
|
|
2764
|
+
price_desc: 'Price, descending',
|
|
2765
|
+
price_asc: 'Price, ascending',
|
|
2766
|
+
orders_desc: 'Top sales',
|
|
2767
|
+
name_asc: 'Name, A-Z',
|
|
2768
|
+
name_desc: 'Name, Z-A',
|
|
2769
|
+
release_desc: 'Release date',
|
|
2770
|
+
discount_desc: 'Discount',
|
|
2771
|
+
score_desc: 'Relevance'
|
|
2772
|
+
};
|
|
2773
|
+
const keys = Object.keys(OptionsMap);
|
|
2774
|
+
|
|
2775
|
+
function Sort({
|
|
2776
|
+
label = 'Sort by',
|
|
2777
|
+
options = OptionsMap
|
|
2778
|
+
}) {
|
|
2779
|
+
const {
|
|
2780
|
+
state,
|
|
2781
|
+
setState
|
|
2782
|
+
} = (0,useSearch/* useSearch */.R)();
|
|
2783
|
+
const optionsMap = Object.keys(options).reduce((acc, currentKey) => {
|
|
2784
|
+
acc[currentKey] = options[currentKey] ?? OptionsMap[currentKey];
|
|
2785
|
+
return acc;
|
|
2786
|
+
}, {});
|
|
2787
|
+
return /*#__PURE__*/jsx_runtime_.jsx(SelectField_SelectField, {
|
|
2788
|
+
id: "sort-select",
|
|
2789
|
+
className: "sort / text__title-mini-alt",
|
|
2790
|
+
label: label,
|
|
2791
|
+
options: optionsMap,
|
|
2792
|
+
onChange: e => {
|
|
2793
|
+
const sort = keys[e.target.selectedIndex];
|
|
2794
|
+
setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
2795
|
+
sort,
|
|
2796
|
+
page: 0
|
|
2797
|
+
}));
|
|
2798
|
+
},
|
|
2799
|
+
value: state.sort,
|
|
2800
|
+
testId: "search-sort"
|
|
2801
|
+
});
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
/* harmony default export */ const Sort_Sort = (Sort);
|
|
2805
|
+
|
|
2806
|
+
/***/ }),
|
|
2807
|
+
|
|
2808
|
+
/***/ 6893:
|
|
2809
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2810
|
+
|
|
2811
|
+
"use strict";
|
|
2812
|
+
|
|
2813
|
+
// EXPORTS
|
|
2814
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2815
|
+
"Z": () => (/* binding */ sections_Alert_Alert)
|
|
2816
|
+
});
|
|
2817
|
+
|
|
2818
|
+
// EXTERNAL MODULE: external "react"
|
|
2819
|
+
var external_react_ = __webpack_require__(6689);
|
|
2820
|
+
// EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
|
|
2821
|
+
var mark = __webpack_require__(2541);
|
|
2822
|
+
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
2823
|
+
var Section = __webpack_require__(3271);
|
|
2824
|
+
// EXTERNAL MODULE: ./src/components/common/Alert/section.module.scss
|
|
2825
|
+
var section_module = __webpack_require__(7651);
|
|
2826
|
+
var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
|
|
2827
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
|
|
2828
|
+
var OverrideContext = __webpack_require__(5522);
|
|
2829
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
2830
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
2831
|
+
;// CONCATENATED MODULE: ./src/components/common/Alert/Alert.tsx
|
|
2832
|
+
const _excluded = ["content", "children"];
|
|
2833
|
+
|
|
2834
|
+
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; }
|
|
2241
2835
|
|
|
2242
2836
|
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; }
|
|
2243
2837
|
|
|
@@ -4899,6 +5493,278 @@ const fragment = "unknown";
|
|
|
4899
5493
|
|
|
4900
5494
|
/***/ }),
|
|
4901
5495
|
|
|
5496
|
+
/***/ 5366:
|
|
5497
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5498
|
+
|
|
5499
|
+
"use strict";
|
|
5500
|
+
|
|
5501
|
+
// EXPORTS
|
|
5502
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
5503
|
+
"h": () => (/* binding */ ProductGalleryDefaultComponents)
|
|
5504
|
+
});
|
|
5505
|
+
|
|
5506
|
+
// EXTERNAL MODULE: external "react"
|
|
5507
|
+
var external_react_ = __webpack_require__(6689);
|
|
5508
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
|
|
5509
|
+
var Button = __webpack_require__(3339);
|
|
5510
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
5511
|
+
var Icon = __webpack_require__(2614);
|
|
5512
|
+
// EXTERNAL MODULE: ../components/dist/esm/atoms/Skeleton/Skeleton.js
|
|
5513
|
+
var Skeleton = __webpack_require__(792);
|
|
5514
|
+
// EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
|
|
5515
|
+
var LinkButton = __webpack_require__(3922);
|
|
5516
|
+
// EXTERNAL MODULE: ./src/components/product/ProductCard/ProductCard.tsx + 3 modules
|
|
5517
|
+
var ProductCard = __webpack_require__(8553);
|
|
5518
|
+
// EXTERNAL MODULE: ../sdk/dist/search/useSearch.js + 1 modules
|
|
5519
|
+
var useSearch = __webpack_require__(3221);
|
|
5520
|
+
// EXTERNAL MODULE: ../sdk/dist/search/facets.js
|
|
5521
|
+
var search_facets = __webpack_require__(8492);
|
|
5522
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/Filter/Filter.js
|
|
5523
|
+
var Filter = __webpack_require__(5699);
|
|
5524
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/Filter/FilterFacets.js
|
|
5525
|
+
var FilterFacets = __webpack_require__(4199);
|
|
5526
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/Filter/FilterFacetBoolean.js
|
|
5527
|
+
var FilterFacetBoolean = __webpack_require__(2815);
|
|
5528
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/Filter/FilterFacetBooleanItem.js + 1 modules
|
|
5529
|
+
var FilterFacetBooleanItem = __webpack_require__(1305);
|
|
5530
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/Filter/FilterFacetRange.js + 2 modules
|
|
5531
|
+
var FilterFacetRange = __webpack_require__(1355);
|
|
5532
|
+
// EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
|
|
5533
|
+
var useFormattedPrice = __webpack_require__(5346);
|
|
5534
|
+
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
5535
|
+
var jsx_runtime_ = __webpack_require__(997);
|
|
5536
|
+
;// CONCATENATED MODULE: ./src/components/search/Filter/FilterDesktop.tsx
|
|
5537
|
+
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; }
|
|
5538
|
+
|
|
5539
|
+
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; }
|
|
5540
|
+
|
|
5541
|
+
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; }
|
|
5542
|
+
|
|
5543
|
+
|
|
5544
|
+
|
|
5545
|
+
|
|
5546
|
+
|
|
5547
|
+
|
|
5548
|
+
|
|
5549
|
+
function FilterDesktop({
|
|
5550
|
+
facets,
|
|
5551
|
+
testId,
|
|
5552
|
+
dispatch,
|
|
5553
|
+
expanded,
|
|
5554
|
+
title
|
|
5555
|
+
}) {
|
|
5556
|
+
const {
|
|
5557
|
+
resetInfiniteScroll,
|
|
5558
|
+
state,
|
|
5559
|
+
setState
|
|
5560
|
+
} = (0,useSearch/* useSearch */.R)();
|
|
5561
|
+
return /*#__PURE__*/jsx_runtime_.jsx(Filter/* default */.Z, {
|
|
5562
|
+
testId: `desktop-${testId}`,
|
|
5563
|
+
title: title,
|
|
5564
|
+
indicesExpanded: expanded,
|
|
5565
|
+
onAccordionChange: idx => dispatch({
|
|
5566
|
+
type: 'toggleExpanded',
|
|
5567
|
+
payload: idx
|
|
5568
|
+
}),
|
|
5569
|
+
children: facets.map((facet, index) => {
|
|
5570
|
+
const {
|
|
5571
|
+
__typename: type,
|
|
5572
|
+
label
|
|
5573
|
+
} = facet;
|
|
5574
|
+
const isExpanded = expanded.has(index);
|
|
5575
|
+
return /*#__PURE__*/(0,jsx_runtime_.jsxs)(FilterFacets/* default */.Z, {
|
|
5576
|
+
testId: testId,
|
|
5577
|
+
index: index,
|
|
5578
|
+
type: type,
|
|
5579
|
+
label: label,
|
|
5580
|
+
children: [type === 'StoreFacetBoolean' && isExpanded && /*#__PURE__*/jsx_runtime_.jsx(FilterFacetBoolean/* default */.Z, {
|
|
5581
|
+
children: facet.values.map(item => /*#__PURE__*/jsx_runtime_.jsx(FilterFacetBooleanItem/* default */.Z, {
|
|
5582
|
+
id: `${testId}-${facet.label}-${item.label}`,
|
|
5583
|
+
testId: testId,
|
|
5584
|
+
onFacetChange: facet => {
|
|
5585
|
+
setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
5586
|
+
selectedFacets: (0,search_facets/* toggleFacet */.wB)(state.selectedFacets, facet),
|
|
5587
|
+
page: 0
|
|
5588
|
+
}));
|
|
5589
|
+
resetInfiniteScroll(0);
|
|
5590
|
+
},
|
|
5591
|
+
selected: item.selected,
|
|
5592
|
+
value: item.value,
|
|
5593
|
+
quantity: item.quantity,
|
|
5594
|
+
facetKey: facet.key,
|
|
5595
|
+
label: item.label
|
|
5596
|
+
}, `${testId}-${facet.label}-${item.label}`))
|
|
5597
|
+
}), type === 'StoreFacetRange' && isExpanded && /*#__PURE__*/jsx_runtime_.jsx(FilterFacetRange/* default */.Z, {
|
|
5598
|
+
facetKey: facet.key,
|
|
5599
|
+
min: facet.min,
|
|
5600
|
+
max: facet.max,
|
|
5601
|
+
formatter: useFormattedPrice/* useFormattedPrice */.P,
|
|
5602
|
+
onFacetChange: facet => {
|
|
5603
|
+
setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
5604
|
+
selectedFacets: (0,search_facets/* setFacet */.uL)(state.selectedFacets, facet, true),
|
|
5605
|
+
page: 0
|
|
5606
|
+
}));
|
|
5607
|
+
resetInfiniteScroll(0);
|
|
5608
|
+
}
|
|
5609
|
+
})]
|
|
5610
|
+
}, `${testId}-${label}-${index}`);
|
|
5611
|
+
})
|
|
5612
|
+
});
|
|
5613
|
+
}
|
|
5614
|
+
|
|
5615
|
+
/* harmony default export */ const Filter_FilterDesktop = (FilterDesktop);
|
|
5616
|
+
// EXTERNAL MODULE: ../components/dist/esm/organisms/EmptyState/EmptyState.js
|
|
5617
|
+
var EmptyState = __webpack_require__(6133);
|
|
5618
|
+
;// CONCATENATED MODULE: ./src/components/sections/ProductGallery/EmptyGallery.tsx
|
|
5619
|
+
|
|
5620
|
+
|
|
5621
|
+
|
|
5622
|
+
|
|
5623
|
+
function EmptyGallery({
|
|
5624
|
+
title,
|
|
5625
|
+
firstButton,
|
|
5626
|
+
secondButton
|
|
5627
|
+
}) {
|
|
5628
|
+
return /*#__PURE__*/(0,jsx_runtime_.jsxs)(EmptyState/* default */.Z, {
|
|
5629
|
+
variant: "rounded",
|
|
5630
|
+
title: title ?? 'Nothing matches with your search',
|
|
5631
|
+
titleIcon: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
|
|
5632
|
+
name: "CircleWavyWarning",
|
|
5633
|
+
width: 56,
|
|
5634
|
+
height: 56,
|
|
5635
|
+
weight: "thin"
|
|
5636
|
+
}),
|
|
5637
|
+
children: [/*#__PURE__*/jsx_runtime_.jsx(LinkButton/* default */.Z, {
|
|
5638
|
+
href: firstButton?.url ?? '/office',
|
|
5639
|
+
variant: "secondary",
|
|
5640
|
+
icon: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
|
|
5641
|
+
name: firstButton?.icon ?? 'CircleWavyWarning',
|
|
5642
|
+
width: 18,
|
|
5643
|
+
height: 18,
|
|
5644
|
+
weight: "bold"
|
|
5645
|
+
}),
|
|
5646
|
+
iconPosition: "left",
|
|
5647
|
+
children: firstButton?.label ?? 'Browse Offers'
|
|
5648
|
+
}), /*#__PURE__*/jsx_runtime_.jsx(LinkButton/* default */.Z, {
|
|
5649
|
+
href: secondButton?.url ?? '/technology',
|
|
5650
|
+
variant: "secondary",
|
|
5651
|
+
icon: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
|
|
5652
|
+
name: secondButton?.icon ?? 'RocketLaunch',
|
|
5653
|
+
width: 18,
|
|
5654
|
+
height: 18,
|
|
5655
|
+
weight: "bold"
|
|
5656
|
+
}),
|
|
5657
|
+
iconPosition: "left",
|
|
5658
|
+
children: secondButton?.label ?? 'Just Arrived'
|
|
5659
|
+
})]
|
|
5660
|
+
});
|
|
5661
|
+
}
|
|
5662
|
+
|
|
5663
|
+
/* harmony default export */ const ProductGallery_EmptyGallery = (EmptyGallery);
|
|
5664
|
+
;// CONCATENATED MODULE: ./src/components/sections/ProductGallery/DefaultComponents.ts
|
|
5665
|
+
|
|
5666
|
+
|
|
5667
|
+
|
|
5668
|
+
|
|
5669
|
+
|
|
5670
|
+
const FilterSlider = /*#__PURE__*/(0,external_react_.lazy)(() => __webpack_require__.e(/* import() */ 386).then(__webpack_require__.bind(__webpack_require__, 1386)));
|
|
5671
|
+
const ProductGalleryDefaultComponents = {
|
|
5672
|
+
MobileFilterButton: Button/* default */.Z,
|
|
5673
|
+
FilterIcon: Icon/* default */.Z,
|
|
5674
|
+
PrevIcon: Icon/* default */.Z,
|
|
5675
|
+
ResultsCountSkeleton: Skeleton/* default */.Z,
|
|
5676
|
+
SortSkeleton: Skeleton/* default */.Z,
|
|
5677
|
+
FilterButtonSkeleton: Skeleton/* default */.Z,
|
|
5678
|
+
LinkButtonPrev: LinkButton/* default */.Z,
|
|
5679
|
+
LinkButtonNext: LinkButton/* default */.Z,
|
|
5680
|
+
__experimentalFilterDesktop: Filter_FilterDesktop,
|
|
5681
|
+
__experimentalFilterSlider: FilterSlider,
|
|
5682
|
+
__experimentalProductCard: ProductCard/* default */.Z,
|
|
5683
|
+
__experimentalEmptyGallery: ProductGallery_EmptyGallery
|
|
5684
|
+
};
|
|
5685
|
+
|
|
5686
|
+
/***/ }),
|
|
5687
|
+
|
|
5688
|
+
/***/ 8273:
|
|
5689
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
5690
|
+
|
|
5691
|
+
"use strict";
|
|
5692
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
5693
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5694
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
5695
|
+
/* harmony export */ });
|
|
5696
|
+
/* harmony import */ var src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2541);
|
|
5697
|
+
/* harmony import */ var src_components_ui_ProductGallery_ProductGallery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5333);
|
|
5698
|
+
/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3271);
|
|
5699
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4614);
|
|
5700
|
+
/* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_4__);
|
|
5701
|
+
/* harmony import */ var src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5953);
|
|
5702
|
+
/* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
|
|
5703
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
5704
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
5705
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductGallery_ProductGallery__WEBPACK_IMPORTED_MODULE_5__]);
|
|
5706
|
+
src_components_ui_ProductGallery_ProductGallery__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
5707
|
+
const _excluded = ["emptyGallery"];
|
|
5708
|
+
|
|
5709
|
+
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; }
|
|
5710
|
+
|
|
5711
|
+
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; }
|
|
5712
|
+
|
|
5713
|
+
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; }
|
|
5714
|
+
|
|
5715
|
+
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; }
|
|
5716
|
+
|
|
5717
|
+
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; }
|
|
5718
|
+
|
|
5719
|
+
|
|
5720
|
+
|
|
5721
|
+
|
|
5722
|
+
|
|
5723
|
+
|
|
5724
|
+
|
|
5725
|
+
|
|
5726
|
+
|
|
5727
|
+
function ProductGallerySection(_ref) {
|
|
5728
|
+
let {
|
|
5729
|
+
emptyGallery
|
|
5730
|
+
} = _ref,
|
|
5731
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
5732
|
+
|
|
5733
|
+
const {
|
|
5734
|
+
__experimentalEmptyGallery: EmptyGallery
|
|
5735
|
+
} = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .useOverrideComponents */ .r3)();
|
|
5736
|
+
const context = (0,src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_2__/* .usePage */ .qt)();
|
|
5737
|
+
const [title, searchTerm] = (0,src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_2__/* .isSearchPage */ .En)(context) ? [context?.data?.title, context?.data?.searchTerm] : (0,src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_2__/* .isPLP */ .OJ)(context) ? [context?.data?.collection?.seo?.title] : [''];
|
|
5738
|
+
const totalCount = context?.data?.search?.products?.pageInfo?.totalCount ?? 0;
|
|
5739
|
+
|
|
5740
|
+
if (context?.data?.search?.products && totalCount === 0) {
|
|
5741
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
5742
|
+
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_4___default().section)} section-product-gallery`,
|
|
5743
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("section", {
|
|
5744
|
+
"data-testid": "product-gallery",
|
|
5745
|
+
"data-fs-product-listing": true,
|
|
5746
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(EmptyGallery.Component, _objectSpread({}, emptyGallery))
|
|
5747
|
+
})
|
|
5748
|
+
});
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5751
|
+
return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
5752
|
+
className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_4___default().section)} section-product-gallery layout__section`,
|
|
5753
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_ui_ProductGallery_ProductGallery__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, _objectSpread({
|
|
5754
|
+
title: title,
|
|
5755
|
+
searchTerm: searchTerm,
|
|
5756
|
+
totalCount: totalCount
|
|
5757
|
+
}, otherProps))
|
|
5758
|
+
});
|
|
5759
|
+
}
|
|
5760
|
+
|
|
5761
|
+
ProductGallerySection.displayName = 'ProductGallery';
|
|
5762
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_6__/* .mark */ .B)(ProductGallerySection));
|
|
5763
|
+
__webpack_async_result__();
|
|
5764
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
5765
|
+
|
|
5766
|
+
/***/ }),
|
|
5767
|
+
|
|
4902
5768
|
/***/ 2432:
|
|
4903
5769
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4904
5770
|
|
|
@@ -4971,20 +5837,16 @@ __webpack_async_result__();
|
|
|
4971
5837
|
|
|
4972
5838
|
/***/ }),
|
|
4973
5839
|
|
|
4974
|
-
/***/
|
|
5840
|
+
/***/ 3153:
|
|
4975
5841
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4976
5842
|
|
|
4977
5843
|
"use strict";
|
|
4978
5844
|
|
|
4979
5845
|
// EXPORTS
|
|
4980
5846
|
__webpack_require__.d(__webpack_exports__, {
|
|
4981
|
-
"
|
|
5847
|
+
"N": () => (/* binding */ RegionBarDefaultComponents)
|
|
4982
5848
|
});
|
|
4983
5849
|
|
|
4984
|
-
// EXTERNAL MODULE: ../components/dist/esm/hooks/UIProvider.js
|
|
4985
|
-
var UIProvider = __webpack_require__(6652);
|
|
4986
|
-
// EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
|
|
4987
|
-
var session = __webpack_require__(7295);
|
|
4988
5850
|
// EXTERNAL MODULE: external "react"
|
|
4989
5851
|
var external_react_ = __webpack_require__(6689);
|
|
4990
5852
|
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
@@ -5005,29 +5867,58 @@ const RegionBar = (0,external_react_.forwardRef)(function RegionBar({ postalCode
|
|
|
5005
5867
|
//# sourceMappingURL=RegionBar.js.map
|
|
5006
5868
|
// EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
|
|
5007
5869
|
var Icon = __webpack_require__(2614);
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
section: SECTION
|
|
5870
|
+
;// CONCATENATED MODULE: ./src/components/sections/RegionBar/DefaultComponents.ts
|
|
5871
|
+
|
|
5872
|
+
const RegionBarDefaultComponents = {
|
|
5873
|
+
RegionBar: RegionBar_RegionBar,
|
|
5874
|
+
LocationIcon: Icon/* default */.Z,
|
|
5875
|
+
ButtonIcon: Icon/* default */.Z
|
|
5015
5876
|
};
|
|
5016
5877
|
|
|
5017
|
-
|
|
5878
|
+
/***/ }),
|
|
5018
5879
|
|
|
5880
|
+
/***/ 2205:
|
|
5881
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
5019
5882
|
|
|
5883
|
+
"use strict";
|
|
5884
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
5885
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5886
|
+
/* harmony export */ "L": () => (/* binding */ OverriddenDefaultRegionBar)
|
|
5887
|
+
/* harmony export */ });
|
|
5888
|
+
/* harmony import */ var src_customizations_src_components_overrides_RegionBar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1401);
|
|
5889
|
+
/* harmony import */ var src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8788);
|
|
5890
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__]);
|
|
5891
|
+
src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
5020
5892
|
|
|
5021
|
-
const {
|
|
5022
|
-
RegionBar: Overrides_RegionBar,
|
|
5023
|
-
LocationIcon,
|
|
5024
|
-
ButtonIcon
|
|
5025
|
-
} = (0,overrides/* getSectionOverrides */.f)({
|
|
5026
|
-
RegionBar: RegionBar_RegionBar,
|
|
5027
|
-
LocationIcon: Icon/* default */.Z,
|
|
5028
|
-
ButtonIcon: Icon/* default */.Z
|
|
5029
|
-
}, override);
|
|
5030
5893
|
|
|
5894
|
+
|
|
5895
|
+
/**
|
|
5896
|
+
* This component exists to support overrides 1.0
|
|
5897
|
+
*
|
|
5898
|
+
* This allows users to override the default RegionBar section present in the Headless CMS
|
|
5899
|
+
*/
|
|
5900
|
+
const OverriddenDefaultRegionBar = (0,src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__/* .getOverriddenSection */ .v)(src_customizations_src_components_overrides_RegionBar__WEBPACK_IMPORTED_MODULE_1__/* .override */ .K);
|
|
5901
|
+
__webpack_async_result__();
|
|
5902
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
5903
|
+
|
|
5904
|
+
/***/ }),
|
|
5905
|
+
|
|
5906
|
+
/***/ 4531:
|
|
5907
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5908
|
+
|
|
5909
|
+
"use strict";
|
|
5910
|
+
|
|
5911
|
+
// EXPORTS
|
|
5912
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
5913
|
+
"Z": () => (/* binding */ sections_RegionBar_RegionBar)
|
|
5914
|
+
});
|
|
5915
|
+
|
|
5916
|
+
// EXTERNAL MODULE: ../components/dist/esm/hooks/UIProvider.js
|
|
5917
|
+
var UIProvider = __webpack_require__(6652);
|
|
5918
|
+
// EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
|
|
5919
|
+
var session = __webpack_require__(7295);
|
|
5920
|
+
// EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
|
|
5921
|
+
var OverrideContext = __webpack_require__(5522);
|
|
5031
5922
|
// EXTERNAL MODULE: external "react/jsx-runtime"
|
|
5032
5923
|
var jsx_runtime_ = __webpack_require__(997);
|
|
5033
5924
|
;// CONCATENATED MODULE: ./src/components/region/RegionBar/RegionBar.tsx
|
|
@@ -5048,39 +5939,44 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
5048
5939
|
|
|
5049
5940
|
|
|
5050
5941
|
|
|
5051
|
-
function
|
|
5942
|
+
function RegionBar(_ref) {
|
|
5052
5943
|
let {
|
|
5053
5944
|
icon: {
|
|
5054
|
-
icon: locationIcon
|
|
5055
|
-
alt: locationIconAlt
|
|
5945
|
+
icon: locationIcon,
|
|
5946
|
+
alt: locationIconAlt
|
|
5056
5947
|
},
|
|
5057
5948
|
buttonIcon: {
|
|
5058
|
-
icon: buttonIcon
|
|
5059
|
-
alt: buttonIconAlt
|
|
5949
|
+
icon: buttonIcon,
|
|
5950
|
+
alt: buttonIconAlt
|
|
5060
5951
|
},
|
|
5061
|
-
label
|
|
5062
|
-
editLabel
|
|
5952
|
+
label,
|
|
5953
|
+
editLabel
|
|
5063
5954
|
} = _ref,
|
|
5064
5955
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
5065
5956
|
|
|
5957
|
+
const {
|
|
5958
|
+
RegionBar: RegionBarWrapper,
|
|
5959
|
+
LocationIcon,
|
|
5960
|
+
ButtonIcon
|
|
5961
|
+
} = (0,OverrideContext/* useOverrideComponents */.r3)();
|
|
5066
5962
|
const {
|
|
5067
5963
|
openModal
|
|
5068
5964
|
} = (0,UIProvider/* useUI */.l)();
|
|
5069
5965
|
const {
|
|
5070
5966
|
postalCode
|
|
5071
5967
|
} = (0,session/* useSession */.kP)();
|
|
5072
|
-
return /*#__PURE__*/jsx_runtime_.jsx(
|
|
5968
|
+
return /*#__PURE__*/jsx_runtime_.jsx(RegionBarWrapper.Component, _objectSpread(_objectSpread({
|
|
5073
5969
|
icon: /*#__PURE__*/jsx_runtime_.jsx(LocationIcon.Component, _objectSpread(_objectSpread({}, LocationIcon.props), {}, {
|
|
5074
|
-
name: locationIcon,
|
|
5075
|
-
"aria-label": locationIconAlt
|
|
5970
|
+
name: locationIcon ?? LocationIcon.props.name,
|
|
5971
|
+
"aria-label": locationIconAlt ?? LocationIcon.props['aria-label']
|
|
5076
5972
|
})),
|
|
5077
5973
|
buttonIcon: /*#__PURE__*/jsx_runtime_.jsx(ButtonIcon.Component, _objectSpread(_objectSpread({}, ButtonIcon.props), {}, {
|
|
5078
|
-
name: buttonIcon,
|
|
5079
|
-
"aria-label": buttonIconAlt
|
|
5974
|
+
name: buttonIcon ?? ButtonIcon.props.name,
|
|
5975
|
+
"aria-label": buttonIconAlt ?? ButtonIcon.props['aria-label']
|
|
5080
5976
|
}))
|
|
5081
|
-
},
|
|
5082
|
-
label: label,
|
|
5083
|
-
editLabel: editLabel // Dynamic props shouldn't be overridable
|
|
5977
|
+
}, RegionBarWrapper.props), {}, {
|
|
5978
|
+
label: label ?? RegionBarWrapper.props.label,
|
|
5979
|
+
editLabel: editLabel ?? RegionBarWrapper.props.editLabel // Dynamic props shouldn't be overridable
|
|
5084
5980
|
// This decision can be reviewed later if needed
|
|
5085
5981
|
,
|
|
5086
5982
|
onButtonClick: openModal,
|
|
@@ -5088,7 +5984,7 @@ function RegionBar_RegionBar_RegionBar(_ref) {
|
|
|
5088
5984
|
}, otherProps));
|
|
5089
5985
|
}
|
|
5090
5986
|
|
|
5091
|
-
/* harmony default export */ const
|
|
5987
|
+
/* harmony default export */ const RegionBar_RegionBar = (RegionBar);
|
|
5092
5988
|
// EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
|
|
5093
5989
|
var Section = __webpack_require__(3271);
|
|
5094
5990
|
// EXTERNAL MODULE: ./src/components/sections/RegionBar/section.module.scss
|
|
@@ -5120,7 +6016,7 @@ function RegionBarSection(_ref) {
|
|
|
5120
6016
|
|
|
5121
6017
|
return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
|
|
5122
6018
|
className: `${(section_module_default()).section} section-region-bar ${className}`,
|
|
5123
|
-
children: /*#__PURE__*/jsx_runtime_.jsx(
|
|
6019
|
+
children: /*#__PURE__*/jsx_runtime_.jsx(RegionBar_RegionBar, RegionBar_objectSpread({}, otherProps))
|
|
5124
6020
|
});
|
|
5125
6021
|
}
|
|
5126
6022
|
|
|
@@ -5173,6 +6069,67 @@ const Section = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(f
|
|
|
5173
6069
|
|
|
5174
6070
|
/***/ }),
|
|
5175
6071
|
|
|
6072
|
+
/***/ 1159:
|
|
6073
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6074
|
+
|
|
6075
|
+
"use strict";
|
|
6076
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6077
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
6078
|
+
/* harmony export */ });
|
|
6079
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(792);
|
|
6080
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
6081
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
6082
|
+
|
|
6083
|
+
|
|
6084
|
+
|
|
6085
|
+
|
|
6086
|
+
|
|
6087
|
+
function FilterSkeleton({
|
|
6088
|
+
children,
|
|
6089
|
+
loading = true
|
|
6090
|
+
}) {
|
|
6091
|
+
return loading ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
6092
|
+
"data-fs-filter-skeleton": true,
|
|
6093
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
6094
|
+
"data-fs-filter-skeleton-text": true,
|
|
6095
|
+
size: {
|
|
6096
|
+
width: '100%',
|
|
6097
|
+
height: '1.5rem'
|
|
6098
|
+
}
|
|
6099
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
6100
|
+
"data-fs-filter-skeleton-content": true,
|
|
6101
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
6102
|
+
"data-fs-filter-skeleton-text": true,
|
|
6103
|
+
size: {
|
|
6104
|
+
width: '100%',
|
|
6105
|
+
height: '1.5rem'
|
|
6106
|
+
},
|
|
6107
|
+
shimmer: false
|
|
6108
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
6109
|
+
"data-fs-filter-skeleton-text": true,
|
|
6110
|
+
size: {
|
|
6111
|
+
width: '100%',
|
|
6112
|
+
height: '1.5rem'
|
|
6113
|
+
},
|
|
6114
|
+
shimmer: false
|
|
6115
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
|
|
6116
|
+
"data-fs-filter-skeleton-text": true,
|
|
6117
|
+
size: {
|
|
6118
|
+
width: '100%',
|
|
6119
|
+
height: '1.5rem'
|
|
6120
|
+
},
|
|
6121
|
+
shimmer: false
|
|
6122
|
+
})]
|
|
6123
|
+
})]
|
|
6124
|
+
}) : /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
|
|
6125
|
+
children: children
|
|
6126
|
+
});
|
|
6127
|
+
}
|
|
6128
|
+
|
|
6129
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FilterSkeleton);
|
|
6130
|
+
|
|
6131
|
+
/***/ }),
|
|
6132
|
+
|
|
5176
6133
|
/***/ 6531:
|
|
5177
6134
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5178
6135
|
|
|
@@ -5249,6 +6206,46 @@ function ProductCardSkeleton({
|
|
|
5249
6206
|
|
|
5250
6207
|
/***/ }),
|
|
5251
6208
|
|
|
6209
|
+
/***/ 1708:
|
|
6210
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6211
|
+
|
|
6212
|
+
"use strict";
|
|
6213
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6214
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
6215
|
+
/* harmony export */ });
|
|
6216
|
+
/* harmony import */ var src_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8459);
|
|
6217
|
+
/* harmony import */ var _ProductCardSkeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6531);
|
|
6218
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
6219
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
6220
|
+
|
|
6221
|
+
|
|
6222
|
+
|
|
6223
|
+
|
|
6224
|
+
|
|
6225
|
+
function ProductGridSkeleton({
|
|
6226
|
+
children,
|
|
6227
|
+
aspectRatio,
|
|
6228
|
+
loading = true
|
|
6229
|
+
}) {
|
|
6230
|
+
return loading ? /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("ul", {
|
|
6231
|
+
"data-fs-product-grid": true,
|
|
6232
|
+
children: Array.from({
|
|
6233
|
+
length: src_constants__WEBPACK_IMPORTED_MODULE_1__/* .ITEMS_PER_PAGE */ .g
|
|
6234
|
+
}, (_, index) => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("li", {
|
|
6235
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ProductCardSkeleton__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
6236
|
+
aspectRatio: aspectRatio,
|
|
6237
|
+
bordered: true
|
|
6238
|
+
})
|
|
6239
|
+
}, String(index)))
|
|
6240
|
+
}) : /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
|
|
6241
|
+
children: children
|
|
6242
|
+
});
|
|
6243
|
+
}
|
|
6244
|
+
|
|
6245
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductGridSkeleton);
|
|
6246
|
+
|
|
6247
|
+
/***/ }),
|
|
6248
|
+
|
|
5252
6249
|
/***/ 6523:
|
|
5253
6250
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5254
6251
|
|
|
@@ -6026,7 +7023,262 @@ function Logo({
|
|
|
6026
7023
|
});
|
|
6027
7024
|
}
|
|
6028
7025
|
|
|
6029
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
|
|
7026
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
|
|
7027
|
+
|
|
7028
|
+
/***/ }),
|
|
7029
|
+
|
|
7030
|
+
/***/ 5333:
|
|
7031
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
7032
|
+
|
|
7033
|
+
"use strict";
|
|
7034
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
7035
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7036
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
7037
|
+
/* harmony export */ });
|
|
7038
|
+
/* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3221);
|
|
7039
|
+
/* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6641);
|
|
7040
|
+
/* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_seo__WEBPACK_IMPORTED_MODULE_0__);
|
|
7041
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
|
|
7042
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
7043
|
+
/* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6652);
|
|
7044
|
+
/* harmony import */ var src_components_search_Filter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(9044);
|
|
7045
|
+
/* harmony import */ var src_components_search_Sort__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(8723);
|
|
7046
|
+
/* harmony import */ var src_components_skeletons_FilterSkeleton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1159);
|
|
7047
|
+
/* harmony import */ var src_components_skeletons_ProductGridSkeleton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1708);
|
|
7048
|
+
/* harmony import */ var src_sdk_search_useDelayedFacets__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(4891);
|
|
7049
|
+
/* harmony import */ var src_sdk_search_useDelayedPagination__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(3332);
|
|
7050
|
+
/* harmony import */ var src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5953);
|
|
7051
|
+
/* harmony import */ var src_sdk_product_useProductsPrefetch__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4923);
|
|
7052
|
+
/* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5522);
|
|
7053
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(997);
|
|
7054
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
|
|
7055
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsPrefetch__WEBPACK_IMPORTED_MODULE_10__]);
|
|
7056
|
+
src_sdk_product_useProductsPrefetch__WEBPACK_IMPORTED_MODULE_10__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
7057
|
+
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; }
|
|
7058
|
+
|
|
7059
|
+
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; }
|
|
7060
|
+
|
|
7061
|
+
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; }
|
|
7062
|
+
|
|
7063
|
+
|
|
7064
|
+
|
|
7065
|
+
|
|
7066
|
+
|
|
7067
|
+
|
|
7068
|
+
|
|
7069
|
+
|
|
7070
|
+
|
|
7071
|
+
|
|
7072
|
+
|
|
7073
|
+
|
|
7074
|
+
|
|
7075
|
+
|
|
7076
|
+
|
|
7077
|
+
|
|
7078
|
+
const ProductGalleryPage = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(934), __webpack_require__.e(289)]).then(__webpack_require__.bind(__webpack_require__, 5289)));
|
|
7079
|
+
|
|
7080
|
+
const GalleryPageSkeleton = /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_skeletons_ProductGridSkeleton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
7081
|
+
loading: true
|
|
7082
|
+
});
|
|
7083
|
+
|
|
7084
|
+
function ProductGallery({
|
|
7085
|
+
title,
|
|
7086
|
+
searchTerm,
|
|
7087
|
+
totalCount,
|
|
7088
|
+
searchTermLabel,
|
|
7089
|
+
totalCountLabel,
|
|
7090
|
+
filter,
|
|
7091
|
+
previousPageButton,
|
|
7092
|
+
loadMorePageButton,
|
|
7093
|
+
sortBySelector,
|
|
7094
|
+
productCard
|
|
7095
|
+
}) {
|
|
7096
|
+
const {
|
|
7097
|
+
FilterButtonSkeleton,
|
|
7098
|
+
FilterIcon,
|
|
7099
|
+
LinkButtonNext,
|
|
7100
|
+
LinkButtonPrev,
|
|
7101
|
+
MobileFilterButton,
|
|
7102
|
+
PrevIcon,
|
|
7103
|
+
ResultsCountSkeleton,
|
|
7104
|
+
SortSkeleton
|
|
7105
|
+
} = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_4__/* .useOverrideComponents */ .r3)();
|
|
7106
|
+
const {
|
|
7107
|
+
openFilter
|
|
7108
|
+
} = (0,_faststore_ui__WEBPACK_IMPORTED_MODULE_5__/* .useUI */ .l)();
|
|
7109
|
+
const {
|
|
7110
|
+
pages,
|
|
7111
|
+
addNextPage,
|
|
7112
|
+
addPrevPage,
|
|
7113
|
+
itemsPerPage
|
|
7114
|
+
} = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_6__/* .useSearch */ .R)();
|
|
7115
|
+
const context = (0,src_sdk_overrides_PageProvider__WEBPACK_IMPORTED_MODULE_7__/* .usePage */ .qt)();
|
|
7116
|
+
const data = context?.data;
|
|
7117
|
+
const facets = (0,src_sdk_search_useDelayedFacets__WEBPACK_IMPORTED_MODULE_8__/* .useDelayedFacets */ .u)(data) ?? [];
|
|
7118
|
+
const {
|
|
7119
|
+
next,
|
|
7120
|
+
prev
|
|
7121
|
+
} = (0,src_sdk_search_useDelayedPagination__WEBPACK_IMPORTED_MODULE_9__/* .useDelayedPagination */ .g)(totalCount);
|
|
7122
|
+
(0,src_sdk_product_useProductsPrefetch__WEBPACK_IMPORTED_MODULE_10__/* .useProductsPrefetch */ .Fl)(prev ? prev.cursor : null);
|
|
7123
|
+
(0,src_sdk_product_useProductsPrefetch__WEBPACK_IMPORTED_MODULE_10__/* .useProductsPrefetch */ .Fl)(next ? next.cursor : null);
|
|
7124
|
+
const hasFacetsLoaded = Boolean(data?.search?.facets);
|
|
7125
|
+
const hasProductsLoaded = Boolean(data?.search?.products);
|
|
7126
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("section", {
|
|
7127
|
+
"data-testid": "product-gallery",
|
|
7128
|
+
"data-fs-product-listing": true,
|
|
7129
|
+
children: [searchTerm && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("header", {
|
|
7130
|
+
"data-fs-product-listing-search-term": true,
|
|
7131
|
+
"data-fs-content": "product-gallery",
|
|
7132
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("h1", {
|
|
7133
|
+
children: [searchTermLabel, " ", /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("span", {
|
|
7134
|
+
children: searchTerm
|
|
7135
|
+
})]
|
|
7136
|
+
})
|
|
7137
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
7138
|
+
"data-fs-product-listing-content-grid": true,
|
|
7139
|
+
"data-fs-content": "product-gallery",
|
|
7140
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("div", {
|
|
7141
|
+
"data-fs-product-listing-filters": true,
|
|
7142
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_skeletons_FilterSkeleton__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
|
|
7143
|
+
loading: !hasFacetsLoaded,
|
|
7144
|
+
children: hasFacetsLoaded && facets?.length > 0 && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_search_Filter__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
|
|
7145
|
+
facets: facets,
|
|
7146
|
+
filter: filter
|
|
7147
|
+
})
|
|
7148
|
+
})
|
|
7149
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx("div", {
|
|
7150
|
+
"data-fs-product-listing-results-count": true,
|
|
7151
|
+
"data-count": totalCount,
|
|
7152
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(ResultsCountSkeleton.Component, _objectSpread(_objectSpread({
|
|
7153
|
+
"data-fs-product-listing-results-count-skeleton": true,
|
|
7154
|
+
size: {
|
|
7155
|
+
width: '100%',
|
|
7156
|
+
height: '1.5rem'
|
|
7157
|
+
}
|
|
7158
|
+
}, ResultsCountSkeleton.props), {}, {
|
|
7159
|
+
// Dynamic props shouldn't be overridable
|
|
7160
|
+
// This decision can be reviewed later if needed
|
|
7161
|
+
loading: !hasProductsLoaded,
|
|
7162
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("h2", {
|
|
7163
|
+
"data-testid": "total-product-count",
|
|
7164
|
+
children: [totalCount, " ", totalCountLabel]
|
|
7165
|
+
})
|
|
7166
|
+
}))
|
|
7167
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
7168
|
+
"data-fs-product-listing-sort": true,
|
|
7169
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(SortSkeleton.Component, _objectSpread(_objectSpread({
|
|
7170
|
+
"data-fs-product-listing-sort-skeleton": true,
|
|
7171
|
+
size: {
|
|
7172
|
+
width: 'auto',
|
|
7173
|
+
height: '1.5rem'
|
|
7174
|
+
}
|
|
7175
|
+
}, SortSkeleton.props), {}, {
|
|
7176
|
+
// Dynamic props shouldn't be overridable
|
|
7177
|
+
// This decision can be reviewed later if needed
|
|
7178
|
+
loading: !hasProductsLoaded,
|
|
7179
|
+
children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_search_Sort__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
|
|
7180
|
+
label: sortBySelector?.label,
|
|
7181
|
+
options: sortBySelector?.options
|
|
7182
|
+
})
|
|
7183
|
+
})), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(FilterButtonSkeleton.Component, _objectSpread(_objectSpread({
|
|
7184
|
+
"data-fs-product-listing-filter-button-skeleton": true,
|
|
7185
|
+
size: {
|
|
7186
|
+
width: '6rem',
|
|
7187
|
+
height: '1.5rem'
|
|
7188
|
+
}
|
|
7189
|
+
}, FilterButtonSkeleton.props), {}, {
|
|
7190
|
+
// Dynamic props shouldn't be overridable
|
|
7191
|
+
// This decision can be reviewed later if needed
|
|
7192
|
+
loading: !hasFacetsLoaded,
|
|
7193
|
+
children: hasFacetsLoaded && facets?.length > 0 && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(MobileFilterButton.Component, _objectSpread(_objectSpread({
|
|
7194
|
+
variant: "tertiary",
|
|
7195
|
+
"data-testid": "open-filter-button",
|
|
7196
|
+
icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(FilterIcon.Component, _objectSpread(_objectSpread({
|
|
7197
|
+
width: 16,
|
|
7198
|
+
height: 16
|
|
7199
|
+
}, FilterIcon.props), {}, {
|
|
7200
|
+
name: filter?.mobileOnly?.filterButton?.icon?.icon ?? FilterIcon.props.name,
|
|
7201
|
+
"aria-label": filter?.mobileOnly?.filterButton?.icon?.alt ?? FilterIcon.props['aria-label']
|
|
7202
|
+
})),
|
|
7203
|
+
iconPosition: "left"
|
|
7204
|
+
}, MobileFilterButton.props), {}, {
|
|
7205
|
+
// Dynamic props shouldn't be overridable
|
|
7206
|
+
// This decision can be reviewed later if needed
|
|
7207
|
+
onClick: openFilter,
|
|
7208
|
+
children: filter?.mobileOnly?.filterButton?.label
|
|
7209
|
+
}))
|
|
7210
|
+
}))]
|
|
7211
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
7212
|
+
"data-fs-product-listing-results": true,
|
|
7213
|
+
children: [prev !== false && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
7214
|
+
"data-fs-product-listing-pagination": "top",
|
|
7215
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_0__.NextSeo, {
|
|
7216
|
+
additionalLinkTags: [{
|
|
7217
|
+
rel: 'prev',
|
|
7218
|
+
href: prev.link
|
|
7219
|
+
}]
|
|
7220
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(LinkButtonPrev.Component, _objectSpread(_objectSpread({
|
|
7221
|
+
rel: "prev",
|
|
7222
|
+
variant: "secondary",
|
|
7223
|
+
iconPosition: "left",
|
|
7224
|
+
icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(PrevIcon.Component, _objectSpread(_objectSpread({
|
|
7225
|
+
width: 16,
|
|
7226
|
+
height: 16,
|
|
7227
|
+
weight: "bold"
|
|
7228
|
+
}, PrevIcon.props), {}, {
|
|
7229
|
+
name: previousPageButton?.icon?.icon ?? PrevIcon.props.name,
|
|
7230
|
+
"aria-label": previousPageButton?.icon?.alt ?? previousPageButton?.label ?? PrevIcon.props['aria-label']
|
|
7231
|
+
}))
|
|
7232
|
+
}, LinkButtonPrev.props), {}, {
|
|
7233
|
+
// Dynamic props shouldn't be overridable
|
|
7234
|
+
// This decision can be reviewed later if needed
|
|
7235
|
+
onClick: e => {
|
|
7236
|
+
e.currentTarget.blur();
|
|
7237
|
+
e.preventDefault();
|
|
7238
|
+
addPrevPage();
|
|
7239
|
+
},
|
|
7240
|
+
href: prev.link,
|
|
7241
|
+
children: previousPageButton?.label
|
|
7242
|
+
}))]
|
|
7243
|
+
}), hasProductsLoaded ? /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(react__WEBPACK_IMPORTED_MODULE_1__.Suspense, {
|
|
7244
|
+
fallback: GalleryPageSkeleton,
|
|
7245
|
+
children: pages.map(page => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(ProductGalleryPage, {
|
|
7246
|
+
page: page,
|
|
7247
|
+
title: title,
|
|
7248
|
+
productCard: productCard,
|
|
7249
|
+
itemsPerPage: itemsPerPage
|
|
7250
|
+
}, `gallery-page-${page}`))
|
|
7251
|
+
}) : GalleryPageSkeleton, next !== false && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
7252
|
+
"data-fs-product-listing-pagination": "bottom",
|
|
7253
|
+
children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_0__.NextSeo, {
|
|
7254
|
+
additionalLinkTags: [{
|
|
7255
|
+
rel: 'next',
|
|
7256
|
+
href: next.link
|
|
7257
|
+
}]
|
|
7258
|
+
}), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(LinkButtonNext.Component, _objectSpread(_objectSpread({
|
|
7259
|
+
testId: "show-more",
|
|
7260
|
+
rel: "next",
|
|
7261
|
+
variant: "secondary"
|
|
7262
|
+
}, LinkButtonNext.props), {}, {
|
|
7263
|
+
// Dynamic props shouldn't be overridable
|
|
7264
|
+
// This decision can be reviewed later if needed
|
|
7265
|
+
onClick: e => {
|
|
7266
|
+
e.currentTarget.blur();
|
|
7267
|
+
e.preventDefault();
|
|
7268
|
+
addNextPage();
|
|
7269
|
+
},
|
|
7270
|
+
href: next.link,
|
|
7271
|
+
children: loadMorePageButton?.label
|
|
7272
|
+
}))]
|
|
7273
|
+
})]
|
|
7274
|
+
})]
|
|
7275
|
+
})]
|
|
7276
|
+
});
|
|
7277
|
+
}
|
|
7278
|
+
|
|
7279
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductGallery);
|
|
7280
|
+
__webpack_async_result__();
|
|
7281
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
6030
7282
|
|
|
6031
7283
|
/***/ }),
|
|
6032
7284
|
|
|
@@ -6198,6 +7450,22 @@ const override = {
|
|
|
6198
7450
|
};
|
|
6199
7451
|
|
|
6200
7452
|
|
|
7453
|
+
/***/ }),
|
|
7454
|
+
|
|
7455
|
+
/***/ 1401:
|
|
7456
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7457
|
+
|
|
7458
|
+
"use strict";
|
|
7459
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7460
|
+
/* harmony export */ "K": () => (/* binding */ override)
|
|
7461
|
+
/* harmony export */ });
|
|
7462
|
+
// This is an example of how it can be used on the starter.
|
|
7463
|
+
const SECTION = 'RegionBar';
|
|
7464
|
+
const override = {
|
|
7465
|
+
section: SECTION
|
|
7466
|
+
};
|
|
7467
|
+
|
|
7468
|
+
|
|
6201
7469
|
/***/ }),
|
|
6202
7470
|
|
|
6203
7471
|
/***/ 5184:
|
|
@@ -6455,6 +7723,47 @@ class MissingContentError extends Error {
|
|
|
6455
7723
|
|
|
6456
7724
|
/***/ }),
|
|
6457
7725
|
|
|
7726
|
+
/***/ 2953:
|
|
7727
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
7728
|
+
|
|
7729
|
+
"use strict";
|
|
7730
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
7731
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7732
|
+
/* harmony export */ "p": () => (/* binding */ prefetchQuery)
|
|
7733
|
+
/* harmony export */ });
|
|
7734
|
+
/* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5941);
|
|
7735
|
+
/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(180);
|
|
7736
|
+
/* harmony import */ var _useQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7732);
|
|
7737
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__]);
|
|
7738
|
+
([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
7739
|
+
const _excluded = ["cache"];
|
|
7740
|
+
|
|
7741
|
+
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; }
|
|
7742
|
+
|
|
7743
|
+
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; }
|
|
7744
|
+
|
|
7745
|
+
|
|
7746
|
+
|
|
7747
|
+
|
|
7748
|
+
const prefetchQuery = (operationName, variables, _ref) => {
|
|
7749
|
+
let {
|
|
7750
|
+
cache
|
|
7751
|
+
} = _ref,
|
|
7752
|
+
options = _objectWithoutProperties(_ref, _excluded);
|
|
7753
|
+
|
|
7754
|
+
const key = (0,_useQuery__WEBPACK_IMPORTED_MODULE_1__/* .getKey */ .km)(operationName, variables);
|
|
7755
|
+
|
|
7756
|
+
if (cache.get(key)) {
|
|
7757
|
+
return;
|
|
7758
|
+
}
|
|
7759
|
+
|
|
7760
|
+
(0,swr__WEBPACK_IMPORTED_MODULE_0__.mutate)(key, (0,_request__WEBPACK_IMPORTED_MODULE_2__/* .request */ .W)(operationName, variables, options));
|
|
7761
|
+
};
|
|
7762
|
+
__webpack_async_result__();
|
|
7763
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
7764
|
+
|
|
7765
|
+
/***/ }),
|
|
7766
|
+
|
|
6458
7767
|
/***/ 180:
|
|
6459
7768
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6460
7769
|
|
|
@@ -6740,18 +8049,26 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
6740
8049
|
/* harmony import */ var _components_sections_BannerText__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9315);
|
|
6741
8050
|
/* harmony import */ var _components_sections_Breadcrumb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(341);
|
|
6742
8051
|
/* harmony import */ var _components_sections_Hero__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2849);
|
|
6743
|
-
/* harmony import */ var
|
|
8052
|
+
/* harmony import */ var _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8569);
|
|
6744
8053
|
/* harmony import */ var _components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(994);
|
|
6745
8054
|
/* harmony import */ var _components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8663);
|
|
6746
|
-
/* harmony import */ var
|
|
6747
|
-
/* harmony import */ var
|
|
6748
|
-
/* harmony import */ var
|
|
6749
|
-
/* harmony import */ var
|
|
6750
|
-
/* harmony import */ var
|
|
6751
|
-
/* harmony import */ var
|
|
6752
|
-
/* harmony import */ var
|
|
6753
|
-
var
|
|
6754
|
-
|
|
8055
|
+
/* harmony import */ var _components_sections_ProductGallery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8273);
|
|
8056
|
+
/* harmony import */ var _components_sections_RegionBar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(4531);
|
|
8057
|
+
/* harmony import */ var _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6948);
|
|
8058
|
+
/* harmony import */ var _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(719);
|
|
8059
|
+
/* harmony import */ var src_components_sections_Breadcrumb_DefaultComponents__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7649);
|
|
8060
|
+
/* harmony import */ var src_components_sections_CrossSellingShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(8435);
|
|
8061
|
+
/* harmony import */ var _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(9569);
|
|
8062
|
+
/* harmony import */ var _components_sections_ProductDetails_DefaultComponents__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(1307);
|
|
8063
|
+
/* harmony import */ var _components_sections_ProductGallery_DefaultComponents__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(5366);
|
|
8064
|
+
/* harmony import */ var _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(2432);
|
|
8065
|
+
/* harmony import */ var _components_sections_RegionBar_DefaultComponents__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(3153);
|
|
8066
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_3__, _components_sections_ProductGallery__WEBPACK_IMPORTED_MODULE_6__, _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_7__]);
|
|
8067
|
+
([_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_3__, _components_sections_ProductGallery__WEBPACK_IMPORTED_MODULE_6__, _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
8068
|
+
|
|
8069
|
+
|
|
8070
|
+
|
|
8071
|
+
|
|
6755
8072
|
|
|
6756
8073
|
|
|
6757
8074
|
|
|
@@ -6773,16 +8090,20 @@ const Sections = {
|
|
|
6773
8090
|
CrossSellingShelf: _components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
6774
8091
|
Hero: _components_sections_Hero__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z,
|
|
6775
8092
|
ProductDetails: _components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z,
|
|
6776
|
-
|
|
8093
|
+
ProductGallery: _components_sections_ProductGallery__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z,
|
|
8094
|
+
ProductShelf: _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z,
|
|
8095
|
+
RegionBar: _components_sections_RegionBar__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z
|
|
6777
8096
|
};
|
|
6778
8097
|
const DefaultComponents = {
|
|
6779
|
-
Alert:
|
|
6780
|
-
BannerText:
|
|
6781
|
-
Breadcrumb:
|
|
6782
|
-
CrossSellingShelf:
|
|
6783
|
-
Hero:
|
|
6784
|
-
ProductDetails:
|
|
6785
|
-
|
|
8098
|
+
Alert: _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_9__/* .AlertDefaultComponents */ .p,
|
|
8099
|
+
BannerText: _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_10__/* .BannerTextDefaultComponents */ .b,
|
|
8100
|
+
Breadcrumb: src_components_sections_Breadcrumb_DefaultComponents__WEBPACK_IMPORTED_MODULE_11__/* .BreadcrumbDefaultComponents */ .Q,
|
|
8101
|
+
CrossSellingShelf: src_components_sections_CrossSellingShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_12__/* .CrossSellingShelfDefaultComponents */ .q,
|
|
8102
|
+
Hero: _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_13__/* .HeroDefaultComponents */ .O,
|
|
8103
|
+
ProductDetails: _components_sections_ProductDetails_DefaultComponents__WEBPACK_IMPORTED_MODULE_14__/* .ProductDetailsDefaultComponents */ .l,
|
|
8104
|
+
ProductGallery: _components_sections_ProductGallery_DefaultComponents__WEBPACK_IMPORTED_MODULE_15__/* .ProductGalleryDefaultComponents */ .h,
|
|
8105
|
+
ProductShelf: _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_16__/* .ProductShelfDefaultComponents */ .B,
|
|
8106
|
+
RegionBar: _components_sections_RegionBar_DefaultComponents__WEBPACK_IMPORTED_MODULE_17__/* .RegionBarDefaultComponents */ .N
|
|
6786
8107
|
};
|
|
6787
8108
|
__webpack_async_result__();
|
|
6788
8109
|
} catch(e) { __webpack_async_result__(e); } });
|
|
@@ -6936,6 +8257,71 @@ const useProductLink = ({
|
|
|
6936
8257
|
|
|
6937
8258
|
/***/ }),
|
|
6938
8259
|
|
|
8260
|
+
/***/ 4923:
|
|
8261
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
8262
|
+
|
|
8263
|
+
"use strict";
|
|
8264
|
+
__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
8265
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8266
|
+
/* harmony export */ "Fl": () => (/* binding */ useProductsPrefetch)
|
|
8267
|
+
/* harmony export */ });
|
|
8268
|
+
/* unused harmony exports query, useProductsQueryPrefetch */
|
|
8269
|
+
/* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3221);
|
|
8270
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
8271
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
8272
|
+
/* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5941);
|
|
8273
|
+
/* harmony import */ var _graphql_prefetchQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2953);
|
|
8274
|
+
/* harmony import */ var _useLocalizedVariables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2523);
|
|
8275
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_1__, _graphql_prefetchQuery__WEBPACK_IMPORTED_MODULE_3__]);
|
|
8276
|
+
([swr__WEBPACK_IMPORTED_MODULE_1__, _graphql_prefetchQuery__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
8277
|
+
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; }
|
|
8278
|
+
|
|
8279
|
+
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; }
|
|
8280
|
+
|
|
8281
|
+
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; }
|
|
8282
|
+
|
|
8283
|
+
|
|
8284
|
+
|
|
8285
|
+
|
|
8286
|
+
|
|
8287
|
+
|
|
8288
|
+
const query = "ClientManyProductsQuery";
|
|
8289
|
+
const useProductsQueryPrefetch = (variables, options) => {
|
|
8290
|
+
const localizedVariables = (0,_useLocalizedVariables__WEBPACK_IMPORTED_MODULE_2__/* .useLocalizedVariables */ .y)(variables);
|
|
8291
|
+
const {
|
|
8292
|
+
cache
|
|
8293
|
+
} = (0,swr__WEBPACK_IMPORTED_MODULE_1__.useSWRConfig)();
|
|
8294
|
+
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => (0,_graphql_prefetchQuery__WEBPACK_IMPORTED_MODULE_3__/* .prefetchQuery */ .p)(query, localizedVariables, _objectSpread({
|
|
8295
|
+
cache
|
|
8296
|
+
}, options)), [localizedVariables, cache, options]);
|
|
8297
|
+
};
|
|
8298
|
+
const useProductsPrefetch = page => {
|
|
8299
|
+
const {
|
|
8300
|
+
itemsPerPage,
|
|
8301
|
+
state: {
|
|
8302
|
+
sort,
|
|
8303
|
+
term,
|
|
8304
|
+
selectedFacets
|
|
8305
|
+
}
|
|
8306
|
+
} = (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_4__/* .useSearch */ .R)();
|
|
8307
|
+
const prefetch = useProductsQueryPrefetch({
|
|
8308
|
+
first: itemsPerPage,
|
|
8309
|
+
after: (itemsPerPage * (page ?? 0)).toString(),
|
|
8310
|
+
sort,
|
|
8311
|
+
term: term ?? '',
|
|
8312
|
+
selectedFacets
|
|
8313
|
+
});
|
|
8314
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
8315
|
+
if (page !== null) {
|
|
8316
|
+
prefetch();
|
|
8317
|
+
}
|
|
8318
|
+
}, [page, prefetch]);
|
|
8319
|
+
};
|
|
8320
|
+
__webpack_async_result__();
|
|
8321
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
8322
|
+
|
|
8323
|
+
/***/ }),
|
|
8324
|
+
|
|
6939
8325
|
/***/ 4867:
|
|
6940
8326
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
6941
8327
|
|
|
@@ -7004,6 +8390,90 @@ const formatSearchPath = ({
|
|
|
7004
8390
|
|
|
7005
8391
|
/***/ }),
|
|
7006
8392
|
|
|
8393
|
+
/***/ 4891:
|
|
8394
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8395
|
+
|
|
8396
|
+
"use strict";
|
|
8397
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8398
|
+
/* harmony export */ "u": () => (/* binding */ useDelayedFacets)
|
|
8399
|
+
/* harmony export */ });
|
|
8400
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
|
|
8401
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
8402
|
+
|
|
8403
|
+
const useDelayedFacets = data => {
|
|
8404
|
+
const facets = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)([]);
|
|
8405
|
+
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
|
|
8406
|
+
if (data) {
|
|
8407
|
+
facets.current = data.search?.facets;
|
|
8408
|
+
}
|
|
8409
|
+
|
|
8410
|
+
return facets.current;
|
|
8411
|
+
}, [data, facets]);
|
|
8412
|
+
};
|
|
8413
|
+
|
|
8414
|
+
/***/ }),
|
|
8415
|
+
|
|
8416
|
+
/***/ 3332:
|
|
8417
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8418
|
+
|
|
8419
|
+
"use strict";
|
|
8420
|
+
|
|
8421
|
+
// EXPORTS
|
|
8422
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
8423
|
+
"g": () => (/* binding */ useDelayedPagination)
|
|
8424
|
+
});
|
|
8425
|
+
|
|
8426
|
+
// EXTERNAL MODULE: external "react"
|
|
8427
|
+
var external_react_ = __webpack_require__(6689);
|
|
8428
|
+
// EXTERNAL MODULE: ../sdk/dist/utils/format.js
|
|
8429
|
+
var format = __webpack_require__(2339);
|
|
8430
|
+
// EXTERNAL MODULE: ../sdk/dist/search/useSearch.js + 1 modules
|
|
8431
|
+
var useSearch = __webpack_require__(3221);
|
|
8432
|
+
;// CONCATENATED MODULE: ../sdk/dist/search/usePagination.js
|
|
8433
|
+
|
|
8434
|
+
|
|
8435
|
+
|
|
8436
|
+
const getLink = (state) => {
|
|
8437
|
+
const { pathname, search } = (0,format/* default */.Z)(state);
|
|
8438
|
+
return `${pathname}${search}`;
|
|
8439
|
+
};
|
|
8440
|
+
const usePagination = (totalItems) => {
|
|
8441
|
+
const { pages, itemsPerPage, state } = (0,useSearch/* useSearch */.R)();
|
|
8442
|
+
const total = Math.ceil(totalItems / itemsPerPage);
|
|
8443
|
+
const next = Number(pages[pages.length - 1]) + 1;
|
|
8444
|
+
const prev = pages[0] - 1;
|
|
8445
|
+
return (0,external_react_.useMemo)(() => ({
|
|
8446
|
+
next: next < total && {
|
|
8447
|
+
cursor: next,
|
|
8448
|
+
link: getLink({ ...state, page: next }),
|
|
8449
|
+
},
|
|
8450
|
+
prev: prev > -1 && {
|
|
8451
|
+
cursor: prev,
|
|
8452
|
+
link: getLink({ ...state, page: prev }),
|
|
8453
|
+
},
|
|
8454
|
+
}), [next, prev, state, total]);
|
|
8455
|
+
};
|
|
8456
|
+
//# sourceMappingURL=usePagination.js.map
|
|
8457
|
+
;// CONCATENATED MODULE: ./src/sdk/search/useDelayedPagination.ts
|
|
8458
|
+
|
|
8459
|
+
|
|
8460
|
+
const useDelayedPagination = totalCount => {
|
|
8461
|
+
const pagination = usePagination(totalCount);
|
|
8462
|
+
const {
|
|
8463
|
+
0: pag,
|
|
8464
|
+
1: setPag
|
|
8465
|
+
} = (0,external_react_.useState)(() => ({
|
|
8466
|
+
next: false,
|
|
8467
|
+
prev: false
|
|
8468
|
+
}));
|
|
8469
|
+
(0,external_react_.useEffect)(() => {
|
|
8470
|
+
setPag(pagination);
|
|
8471
|
+
}, [pagination]);
|
|
8472
|
+
return pag;
|
|
8473
|
+
};
|
|
8474
|
+
|
|
8475
|
+
/***/ }),
|
|
8476
|
+
|
|
7007
8477
|
/***/ 5098:
|
|
7008
8478
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7009
8479
|
|
|
@@ -7449,6 +8919,18 @@ module.exports = {
|
|
|
7449
8919
|
};
|
|
7450
8920
|
|
|
7451
8921
|
|
|
8922
|
+
/***/ }),
|
|
8923
|
+
|
|
8924
|
+
/***/ 4614:
|
|
8925
|
+
/***/ ((module) => {
|
|
8926
|
+
|
|
8927
|
+
// Exports
|
|
8928
|
+
module.exports = {
|
|
8929
|
+
"section": "section_section__EYj3x",
|
|
8930
|
+
"loading": "section_loading__Bzogw"
|
|
8931
|
+
};
|
|
8932
|
+
|
|
8933
|
+
|
|
7452
8934
|
/***/ }),
|
|
7453
8935
|
|
|
7454
8936
|
/***/ 6627:
|
|
@@ -7551,6 +9033,202 @@ const sendAnalyticsEvent = (event) => {
|
|
|
7551
9033
|
|
|
7552
9034
|
/***/ }),
|
|
7553
9035
|
|
|
9036
|
+
/***/ 1197:
|
|
9037
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9038
|
+
|
|
9039
|
+
"use strict";
|
|
9040
|
+
|
|
9041
|
+
// EXPORTS
|
|
9042
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9043
|
+
"_": () => (/* binding */ Context),
|
|
9044
|
+
"z": () => (/* binding */ Provider)
|
|
9045
|
+
});
|
|
9046
|
+
|
|
9047
|
+
// EXTERNAL MODULE: external "react"
|
|
9048
|
+
var external_react_ = __webpack_require__(6689);
|
|
9049
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
9050
|
+
// EXTERNAL MODULE: ../sdk/dist/utils/error.js
|
|
9051
|
+
var error = __webpack_require__(2254);
|
|
9052
|
+
;// CONCATENATED MODULE: ../sdk/dist/search/useInfiniteSearchState.js
|
|
9053
|
+
|
|
9054
|
+
|
|
9055
|
+
// Save the array containing loaded pages before navigating away from the PLP
|
|
9056
|
+
function setPagesSessionStorage(pages) {
|
|
9057
|
+
try {
|
|
9058
|
+
// Uses the key to identify a PLP
|
|
9059
|
+
const stateKey = window.history.state?.key;
|
|
9060
|
+
if (!stateKey) {
|
|
9061
|
+
return;
|
|
9062
|
+
}
|
|
9063
|
+
const storageKey = `__fs_gallery_page_${stateKey}`;
|
|
9064
|
+
sessionStorage.setItem(storageKey, JSON.stringify(pages));
|
|
9065
|
+
}
|
|
9066
|
+
catch (_) {
|
|
9067
|
+
return;
|
|
9068
|
+
}
|
|
9069
|
+
}
|
|
9070
|
+
function getPagesFromSessionStorage() {
|
|
9071
|
+
try {
|
|
9072
|
+
const stateKey = window.history.state?.key;
|
|
9073
|
+
if (!stateKey) {
|
|
9074
|
+
return null;
|
|
9075
|
+
}
|
|
9076
|
+
const storageKey = `__fs_gallery_page_${stateKey}`;
|
|
9077
|
+
const item = sessionStorage.getItem(storageKey);
|
|
9078
|
+
return item ? JSON.parse(item) : null;
|
|
9079
|
+
}
|
|
9080
|
+
catch (_) {
|
|
9081
|
+
return null;
|
|
9082
|
+
}
|
|
9083
|
+
}
|
|
9084
|
+
const reducer = (state, action) => {
|
|
9085
|
+
switch (action.type) {
|
|
9086
|
+
case 'addPrev': {
|
|
9087
|
+
const prev = state[0] - 1;
|
|
9088
|
+
const newState = [prev, ...state];
|
|
9089
|
+
setPagesSessionStorage(newState);
|
|
9090
|
+
return newState;
|
|
9091
|
+
}
|
|
9092
|
+
case 'addNext': {
|
|
9093
|
+
const next = Number(state[state.length - 1]) + 1;
|
|
9094
|
+
const newState = [...state, next];
|
|
9095
|
+
setPagesSessionStorage(newState);
|
|
9096
|
+
return newState;
|
|
9097
|
+
}
|
|
9098
|
+
case 'reset': {
|
|
9099
|
+
const { payload } = action;
|
|
9100
|
+
const newState = [payload];
|
|
9101
|
+
setPagesSessionStorage(newState);
|
|
9102
|
+
return newState;
|
|
9103
|
+
}
|
|
9104
|
+
default:
|
|
9105
|
+
throw new error/* SDKError */.q('Unknown action for infinite search');
|
|
9106
|
+
}
|
|
9107
|
+
};
|
|
9108
|
+
const useSearchInfiniteState = (initialPage) => {
|
|
9109
|
+
const [pages, dispatch] = (0,external_react_.useReducer)(reducer, undefined, () => getPagesFromSessionStorage() ?? [initialPage]);
|
|
9110
|
+
const actions = (0,external_react_.useMemo)(() => ({
|
|
9111
|
+
addPrevPage: () => dispatch({ type: 'addPrev' }),
|
|
9112
|
+
addNextPage: () => dispatch({ type: 'addNext' }),
|
|
9113
|
+
resetInfiniteScroll: (page) => dispatch({ type: 'reset', payload: page }),
|
|
9114
|
+
}), []);
|
|
9115
|
+
return { pages, ...actions };
|
|
9116
|
+
};
|
|
9117
|
+
//# sourceMappingURL=useInfiniteSearchState.js.map
|
|
9118
|
+
// EXTERNAL MODULE: ../sdk/dist/search/useSearchState.js
|
|
9119
|
+
var useSearchState = __webpack_require__(2524);
|
|
9120
|
+
;// CONCATENATED MODULE: ../sdk/dist/search/Provider.js
|
|
9121
|
+
|
|
9122
|
+
|
|
9123
|
+
|
|
9124
|
+
const Context = (0,external_react_.createContext)(undefined);
|
|
9125
|
+
const Provider = ({ children, itemsPerPage, onChange, ...rest }) => {
|
|
9126
|
+
const { state, ...searchActions } = (0,useSearchState/* useSearchState */.X)(rest, onChange);
|
|
9127
|
+
const { pages, ...infiniteActions } = useSearchInfiniteState(state.page);
|
|
9128
|
+
const value = (0,external_react_.useMemo)(() => ({
|
|
9129
|
+
state,
|
|
9130
|
+
...searchActions,
|
|
9131
|
+
pages,
|
|
9132
|
+
...infiniteActions,
|
|
9133
|
+
itemsPerPage,
|
|
9134
|
+
}), [infiniteActions, itemsPerPage, pages, searchActions, state]);
|
|
9135
|
+
return external_react_default().createElement(Context.Provider, { value: value }, children);
|
|
9136
|
+
};
|
|
9137
|
+
//# sourceMappingURL=Provider.js.map
|
|
9138
|
+
|
|
9139
|
+
/***/ }),
|
|
9140
|
+
|
|
9141
|
+
/***/ 8492:
|
|
9142
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9143
|
+
|
|
9144
|
+
"use strict";
|
|
9145
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9146
|
+
/* harmony export */ "uL": () => (/* binding */ setFacet),
|
|
9147
|
+
/* harmony export */ "wB": () => (/* binding */ toggleFacet),
|
|
9148
|
+
/* harmony export */ "wb": () => (/* binding */ isSearchSort)
|
|
9149
|
+
/* harmony export */ });
|
|
9150
|
+
/* unused harmony exports removeFacet, toggleFacets */
|
|
9151
|
+
/* harmony import */ var _utils_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2254);
|
|
9152
|
+
|
|
9153
|
+
const sortKeys = new Set([
|
|
9154
|
+
'price_desc',
|
|
9155
|
+
'price_asc',
|
|
9156
|
+
'orders_desc',
|
|
9157
|
+
'name_desc',
|
|
9158
|
+
'name_asc',
|
|
9159
|
+
'release_desc',
|
|
9160
|
+
'discount_desc',
|
|
9161
|
+
'score_desc',
|
|
9162
|
+
]);
|
|
9163
|
+
const isSearchSort = (x) => sortKeys.has(x);
|
|
9164
|
+
const removeFacet = (facets, facet) => {
|
|
9165
|
+
const { value } = facet;
|
|
9166
|
+
const index = facets.findIndex((x) => x.value === value);
|
|
9167
|
+
if (index < 0) {
|
|
9168
|
+
throw new _utils_error__WEBPACK_IMPORTED_MODULE_0__/* .SDKError */ .q(`Cannot remove ${value} from search params`);
|
|
9169
|
+
}
|
|
9170
|
+
return facets.filter((_, it) => it !== index);
|
|
9171
|
+
};
|
|
9172
|
+
const setFacet = (facets, facet, unique) => {
|
|
9173
|
+
if (unique === true) {
|
|
9174
|
+
const index = facets.findIndex((f) => f.key === facet.key);
|
|
9175
|
+
if (index > -1) {
|
|
9176
|
+
return facets.map((f, it) => (it === index ? facet : f));
|
|
9177
|
+
}
|
|
9178
|
+
}
|
|
9179
|
+
return [...facets, facet];
|
|
9180
|
+
};
|
|
9181
|
+
const toggleFacet = (facets, item) => {
|
|
9182
|
+
const found = facets.find((facet) => facet.key === item.key && facet.value === item.value);
|
|
9183
|
+
if (found !== undefined) {
|
|
9184
|
+
return removeFacet(facets, item);
|
|
9185
|
+
}
|
|
9186
|
+
return setFacet(facets, item, false);
|
|
9187
|
+
};
|
|
9188
|
+
const toggleFacets = (facets, items) => items.reduce((acc, curr) => toggleFacet(acc, curr), facets);
|
|
9189
|
+
//# sourceMappingURL=facets.js.map
|
|
9190
|
+
|
|
9191
|
+
/***/ }),
|
|
9192
|
+
|
|
9193
|
+
/***/ 3221:
|
|
9194
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9195
|
+
|
|
9196
|
+
"use strict";
|
|
9197
|
+
|
|
9198
|
+
// EXPORTS
|
|
9199
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9200
|
+
"R": () => (/* binding */ useSearch)
|
|
9201
|
+
});
|
|
9202
|
+
|
|
9203
|
+
// EXTERNAL MODULE: ../sdk/dist/search/Provider.js + 1 modules
|
|
9204
|
+
var Provider = __webpack_require__(1197);
|
|
9205
|
+
// EXTERNAL MODULE: external "react"
|
|
9206
|
+
var external_react_ = __webpack_require__(6689);
|
|
9207
|
+
// EXTERNAL MODULE: ../sdk/dist/utils/error.js
|
|
9208
|
+
var error = __webpack_require__(2254);
|
|
9209
|
+
;// CONCATENATED MODULE: ../sdk/dist/utils/useContext.js
|
|
9210
|
+
|
|
9211
|
+
|
|
9212
|
+
/**
|
|
9213
|
+
* @description Like React.useContext but throws when the context's value === undefined.
|
|
9214
|
+
* This is useful when you want to force the context to be present in the React's tree before using it
|
|
9215
|
+
*/
|
|
9216
|
+
const useContext = (context) => {
|
|
9217
|
+
const value = (0,external_react_.useContext)(context);
|
|
9218
|
+
if (value === undefined) {
|
|
9219
|
+
throw new error/* SDKError */.q(`${context.displayName ?? 'Context'} needs to be on the React tree`);
|
|
9220
|
+
}
|
|
9221
|
+
return value;
|
|
9222
|
+
};
|
|
9223
|
+
//# sourceMappingURL=useContext.js.map
|
|
9224
|
+
;// CONCATENATED MODULE: ../sdk/dist/search/useSearch.js
|
|
9225
|
+
|
|
9226
|
+
|
|
9227
|
+
const useSearch = () => useContext(Provider/* Context */._);
|
|
9228
|
+
//# sourceMappingURL=useSearch.js.map
|
|
9229
|
+
|
|
9230
|
+
/***/ }),
|
|
9231
|
+
|
|
7554
9232
|
/***/ 2524:
|
|
7555
9233
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7556
9234
|
|