@sledge-app/react-instant-search 2.0.21 → 2.0.23
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/dist/components/SearchResultWidget/SearchResultWidget.d.ts.map +1 -1
- package/dist/sledge-react-instant-search.cjs +1 -1
- package/dist/sledge-react-instant-search.cjs.map +1 -1
- package/dist/sledge-react-instant-search.js +86 -33
- package/dist/sledge-react-instant-search.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/SearchResultWidget/Atoms.d.ts +0 -103
- package/dist/components/SearchResultWidget/Atoms.d.ts.map +0 -1
|
@@ -671,6 +671,17 @@ const setElementAttribute = ({ element, attributeName, value }) => {
|
|
|
671
671
|
element.setAttribute(attributeName, value);
|
|
672
672
|
}
|
|
673
673
|
};
|
|
674
|
+
const convertToQueryParams = (obj) => {
|
|
675
|
+
var _a;
|
|
676
|
+
if (typeof obj !== "object" || obj === null || obj && !((_a = Object.keys(obj)) == null ? void 0 : _a.length))
|
|
677
|
+
return {};
|
|
678
|
+
const queryParams = {};
|
|
679
|
+
Object.keys(obj).forEach((key) => {
|
|
680
|
+
var _a2, _b;
|
|
681
|
+
queryParams[key] = (_b = (_a2 = obj[key]) == null ? void 0 : _a2.map) == null ? void 0 : _b.call(_a2, (value) => encodeURIComponent(value));
|
|
682
|
+
});
|
|
683
|
+
return queryParams;
|
|
684
|
+
};
|
|
674
685
|
const root = "";
|
|
675
686
|
const Loading = "";
|
|
676
687
|
const ConfirmationPopup = "";
|
|
@@ -6152,12 +6163,13 @@ const parseFacetObject = ({ facet = "" }) => {
|
|
|
6152
6163
|
return null;
|
|
6153
6164
|
};
|
|
6154
6165
|
const detectQueryStringFilter = ({ facets, facetsQueryStringObject, callback }) => {
|
|
6166
|
+
var _a, _b;
|
|
6155
6167
|
const searchParams = new URLSearchParams(document.location.search);
|
|
6156
6168
|
const searchParamsObject = Object.fromEntries(searchParams);
|
|
6157
6169
|
for (const searchParamsKey in searchParamsObject) {
|
|
6158
6170
|
let ifFacetsQueryStringObject = (facets == null ? void 0 : facets.length) && facets.includes(searchParamsKey);
|
|
6159
6171
|
if (ifFacetsQueryStringObject)
|
|
6160
|
-
facetsQueryStringObject[searchParamsKey] = searchParamsObject[searchParamsKey].split(",");
|
|
6172
|
+
facetsQueryStringObject[searchParamsKey] = (_b = (_a = searchParamsObject[searchParamsKey].split(",")) == null ? void 0 : _a.map) == null ? void 0 : _b.call(_a, (item) => decodeURIComponent(item));
|
|
6161
6173
|
}
|
|
6162
6174
|
if (Object.keys(facetsQueryStringObject).length)
|
|
6163
6175
|
callback(facetsQueryStringObject);
|
|
@@ -9957,9 +9969,10 @@ const ResultProduct = React__default.memo((props) => {
|
|
|
9957
9969
|
otherQueryStringObject[searchParamsKey] = searchParamsObject[searchParamsKey];
|
|
9958
9970
|
}
|
|
9959
9971
|
let facetQueryStringObject = {};
|
|
9960
|
-
|
|
9961
|
-
|
|
9962
|
-
|
|
9972
|
+
let convertValueClickedFacets = convertToQueryParams(valueClickedFacets);
|
|
9973
|
+
for (const valueClickedFacetsKey in convertValueClickedFacets) {
|
|
9974
|
+
if ((_a2 = convertValueClickedFacets[valueClickedFacetsKey]) == null ? void 0 : _a2.length)
|
|
9975
|
+
otherQueryStringObject[valueClickedFacetsKey] = convertValueClickedFacets[valueClickedFacetsKey];
|
|
9963
9976
|
}
|
|
9964
9977
|
const newQueryString = new URLSearchParams({
|
|
9965
9978
|
...otherQueryStringObject,
|
|
@@ -10305,8 +10318,8 @@ const ResultProduct = React__default.memo((props) => {
|
|
|
10305
10318
|
filter,
|
|
10306
10319
|
scrollElementSelector
|
|
10307
10320
|
}) => {
|
|
10308
|
-
var _a2, _b2;
|
|
10309
|
-
const { value, display, indexFilter } = filter;
|
|
10321
|
+
var _a2, _b2, _c2;
|
|
10322
|
+
const { value, display, indexFilter, settings: filterSettingsProp } = filter;
|
|
10310
10323
|
const isDisplaySlider = ["slider", "input_range", "slider_with_input_range"].includes(display.toLowerCase());
|
|
10311
10324
|
const isDisplayColorSwatch = ["swatch", "swatch_with_label"].includes(display.toLowerCase());
|
|
10312
10325
|
let items = display.toLowerCase() === "tree" ? createHierarchicalFacet({
|
|
@@ -10323,33 +10336,73 @@ const ResultProduct = React__default.memo((props) => {
|
|
|
10323
10336
|
hierarchicalFacetAliases,
|
|
10324
10337
|
hierarchicalCollectionsSettings
|
|
10325
10338
|
}) : searchResultFacets[value];
|
|
10326
|
-
let isRender =
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10339
|
+
let isRender = false;
|
|
10340
|
+
if ((_a2 = filterSettingsProp == null ? void 0 : filterSettingsProp.visibility_rules) == null ? void 0 : _a2.length) {
|
|
10341
|
+
filterSettingsProp.visibility_rules.map((visibility_rule) => {
|
|
10342
|
+
var _a3, _b3, _c3;
|
|
10343
|
+
const { operator, type, values } = visibility_rule || {};
|
|
10344
|
+
const facetSelectedValues = ((_a3 = clickedFacets == null ? void 0 : clickedFacets[type]) == null ? void 0 : _a3.length) ? clickedFacets == null ? void 0 : clickedFacets[type] : [];
|
|
10345
|
+
if (operator && (values == null ? void 0 : values.length)) {
|
|
10346
|
+
if (String(operator).toLowerCase() === "and") {
|
|
10347
|
+
isRender = values.every((item) => {
|
|
10348
|
+
var _a4;
|
|
10349
|
+
return (_a4 = facetSelectedValues == null ? void 0 : facetSelectedValues.includes) == null ? void 0 : _a4.call(facetSelectedValues, item);
|
|
10350
|
+
});
|
|
10351
|
+
} else if (String(operator).toLowerCase() === "or") {
|
|
10352
|
+
if ((_b3 = values == null ? void 0 : values.find) == null ? void 0 : _b3.call(values, (value2) => {
|
|
10353
|
+
var _a4;
|
|
10354
|
+
return ((_a4 = value2 == null ? void 0 : value2.toLowerCase) == null ? void 0 : _a4.call(value2)) === "all";
|
|
10355
|
+
})) {
|
|
10356
|
+
isRender = Boolean(facetSelectedValues == null ? void 0 : facetSelectedValues.length);
|
|
10357
|
+
} else {
|
|
10358
|
+
isRender = Boolean((_c3 = facetSelectedValues == null ? void 0 : facetSelectedValues.some) == null ? void 0 : _c3.call(facetSelectedValues, (item) => values.includes(item)));
|
|
10359
|
+
}
|
|
10360
|
+
}
|
|
10361
|
+
}
|
|
10362
|
+
});
|
|
10363
|
+
}
|
|
10364
|
+
const isRenderFromVisibilityRules = isRender;
|
|
10365
|
+
const checkRenderFacet = () => {
|
|
10366
|
+
var _a3;
|
|
10367
|
+
isRender = Boolean(
|
|
10368
|
+
isDisplaySlider ? items : Number(
|
|
10369
|
+
(_a3 = handleFacetValues({
|
|
10370
|
+
filter,
|
|
10371
|
+
languageSettings,
|
|
10372
|
+
clickedFacets,
|
|
10373
|
+
searchFacetDistribution,
|
|
10374
|
+
displaySettings,
|
|
10375
|
+
settings,
|
|
10376
|
+
items,
|
|
10377
|
+
allowedFilterSlider
|
|
10378
|
+
})) == null ? void 0 : _a3.length
|
|
10379
|
+
)
|
|
10380
|
+
);
|
|
10381
|
+
};
|
|
10382
|
+
const checkRenderFacetSlider = () => {
|
|
10383
|
+
if (isDisplaySlider) {
|
|
10384
|
+
let defaultItemSlider = (defaultFacetStats == null ? void 0 : defaultFacetStats[value]) && Object.keys(defaultFacetStats[value]).length ? defaultFacetStats[value] : {};
|
|
10385
|
+
let valueFilterSliderChange = [];
|
|
10386
|
+
if (value === "variants.price") {
|
|
10387
|
+
valueFilterSliderChange = valueFilterPriceChange;
|
|
10388
|
+
} else if (value === "variants.sale_percent") {
|
|
10389
|
+
valueFilterSliderChange = valueFilterOnSaleChange;
|
|
10390
|
+
} else {
|
|
10391
|
+
valueFilterSliderChange = valueFilterSliderOthers == null ? void 0 : valueFilterSliderOthers[value];
|
|
10392
|
+
}
|
|
10393
|
+
let defaultValueMin = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[0]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.min);
|
|
10394
|
+
let defaultValueMax = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[1]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.max);
|
|
10395
|
+
isRender = !defaultValueMin && !defaultValueMax ? false : true;
|
|
10396
|
+
}
|
|
10397
|
+
};
|
|
10398
|
+
if ((_b2 = filterSettingsProp == null ? void 0 : filterSettingsProp.visibility_rules) == null ? void 0 : _b2.length) {
|
|
10399
|
+
if (isRenderFromVisibilityRules) {
|
|
10400
|
+
checkRenderFacet();
|
|
10401
|
+
checkRenderFacetSlider();
|
|
10349
10402
|
}
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10403
|
+
} else {
|
|
10404
|
+
checkRenderFacet();
|
|
10405
|
+
checkRenderFacetSlider();
|
|
10353
10406
|
}
|
|
10354
10407
|
let classesUlElement = ["sledge-instant-search__result-filter-item-list"];
|
|
10355
10408
|
const getFacetComponent = (props2) => {
|
|
@@ -10399,7 +10452,7 @@ const ResultProduct = React__default.memo((props) => {
|
|
|
10399
10452
|
);
|
|
10400
10453
|
if (display.toLowerCase() === "tree")
|
|
10401
10454
|
classesUlElement.push("sledge-instant-search__result-filter-item-tree");
|
|
10402
|
-
if (((
|
|
10455
|
+
if (((_c2 = displaySettings == null ? void 0 : displaySettings.filter) == null ? void 0 : _c2.layout) === "vertical" && (allowedFilter == null ? void 0 : allowedFilter.length) === 1)
|
|
10403
10456
|
classesUlElement == null ? void 0 : classesUlElement.push("sledge-instant-search__result-filter-item-list-just-one");
|
|
10404
10457
|
let isLastIndex = allowedFilter ? (allowedFilter == null ? void 0 : allowedFilter.length) - 1 === indexFilter : false;
|
|
10405
10458
|
return { isRender, classesUlElement, getFacetComponent, isLastIndex };
|