@sledge-app/react-instant-search 2.0.21 → 2.0.22

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.
@@ -10305,8 +10305,8 @@ const ResultProduct = React__default.memo((props) => {
10305
10305
  filter,
10306
10306
  scrollElementSelector
10307
10307
  }) => {
10308
- var _a2, _b2;
10309
- const { value, display, indexFilter } = filter;
10308
+ var _a2, _b2, _c2;
10309
+ const { value, display, indexFilter, settings: filterSettingsProp } = filter;
10310
10310
  const isDisplaySlider = ["slider", "input_range", "slider_with_input_range"].includes(display.toLowerCase());
10311
10311
  const isDisplayColorSwatch = ["swatch", "swatch_with_label"].includes(display.toLowerCase());
10312
10312
  let items = display.toLowerCase() === "tree" ? createHierarchicalFacet({
@@ -10323,33 +10323,73 @@ const ResultProduct = React__default.memo((props) => {
10323
10323
  hierarchicalFacetAliases,
10324
10324
  hierarchicalCollectionsSettings
10325
10325
  }) : searchResultFacets[value];
10326
- let isRender = Boolean(
10327
- isDisplaySlider ? items : Number(
10328
- (_a2 = handleFacetValues({
10329
- filter,
10330
- languageSettings,
10331
- clickedFacets,
10332
- searchFacetDistribution,
10333
- displaySettings,
10334
- settings,
10335
- items,
10336
- allowedFilterSlider
10337
- })) == null ? void 0 : _a2.length
10338
- )
10339
- );
10340
- if (isDisplaySlider) {
10341
- let defaultItemSlider = (defaultFacetStats == null ? void 0 : defaultFacetStats[value]) && Object.keys(defaultFacetStats[value]).length ? defaultFacetStats[value] : {};
10342
- let valueFilterSliderChange = [];
10343
- if (value === "variants.price") {
10344
- valueFilterSliderChange = valueFilterPriceChange;
10345
- } else if (value === "variants.sale_percent") {
10346
- valueFilterSliderChange = valueFilterOnSaleChange;
10347
- } else {
10348
- valueFilterSliderChange = valueFilterSliderOthers == null ? void 0 : valueFilterSliderOthers[value];
10326
+ let isRender = false;
10327
+ if ((_a2 = filterSettingsProp == null ? void 0 : filterSettingsProp.visibility_rules) == null ? void 0 : _a2.length) {
10328
+ filterSettingsProp.visibility_rules.map((visibility_rule) => {
10329
+ var _a3, _b3, _c3;
10330
+ const { operator, type, values } = visibility_rule || {};
10331
+ const facetSelectedValues = ((_a3 = clickedFacets == null ? void 0 : clickedFacets[type]) == null ? void 0 : _a3.length) ? clickedFacets == null ? void 0 : clickedFacets[type] : [];
10332
+ if (operator && (values == null ? void 0 : values.length)) {
10333
+ if (String(operator).toLowerCase() === "and") {
10334
+ isRender = values.every((item) => {
10335
+ var _a4;
10336
+ return (_a4 = facetSelectedValues == null ? void 0 : facetSelectedValues.includes) == null ? void 0 : _a4.call(facetSelectedValues, item);
10337
+ });
10338
+ } else if (String(operator).toLowerCase() === "or") {
10339
+ if ((_b3 = values == null ? void 0 : values.find) == null ? void 0 : _b3.call(values, (value2) => {
10340
+ var _a4;
10341
+ return ((_a4 = value2 == null ? void 0 : value2.toLowerCase) == null ? void 0 : _a4.call(value2)) === "all";
10342
+ })) {
10343
+ isRender = Boolean(facetSelectedValues == null ? void 0 : facetSelectedValues.length);
10344
+ } else {
10345
+ isRender = Boolean((_c3 = facetSelectedValues == null ? void 0 : facetSelectedValues.some) == null ? void 0 : _c3.call(facetSelectedValues, (item) => values.includes(item)));
10346
+ }
10347
+ }
10348
+ }
10349
+ });
10350
+ }
10351
+ const isRenderFromVisibilityRules = isRender;
10352
+ const checkRenderFacet = () => {
10353
+ var _a3;
10354
+ isRender = Boolean(
10355
+ isDisplaySlider ? items : Number(
10356
+ (_a3 = handleFacetValues({
10357
+ filter,
10358
+ languageSettings,
10359
+ clickedFacets,
10360
+ searchFacetDistribution,
10361
+ displaySettings,
10362
+ settings,
10363
+ items,
10364
+ allowedFilterSlider
10365
+ })) == null ? void 0 : _a3.length
10366
+ )
10367
+ );
10368
+ };
10369
+ const checkRenderFacetSlider = () => {
10370
+ if (isDisplaySlider) {
10371
+ let defaultItemSlider = (defaultFacetStats == null ? void 0 : defaultFacetStats[value]) && Object.keys(defaultFacetStats[value]).length ? defaultFacetStats[value] : {};
10372
+ let valueFilterSliderChange = [];
10373
+ if (value === "variants.price") {
10374
+ valueFilterSliderChange = valueFilterPriceChange;
10375
+ } else if (value === "variants.sale_percent") {
10376
+ valueFilterSliderChange = valueFilterOnSaleChange;
10377
+ } else {
10378
+ valueFilterSliderChange = valueFilterSliderOthers == null ? void 0 : valueFilterSliderOthers[value];
10379
+ }
10380
+ let defaultValueMin = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[0]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.min);
10381
+ let defaultValueMax = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[1]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.max);
10382
+ isRender = !defaultValueMin && !defaultValueMax ? false : true;
10349
10383
  }
10350
- let defaultValueMin = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[0]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.min);
10351
- let defaultValueMax = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[1]) || (defaultItemSlider == null ? void 0 : defaultItemSlider.max);
10352
- isRender = !defaultValueMin && !defaultValueMax ? false : true;
10384
+ };
10385
+ if ((_b2 = filterSettingsProp == null ? void 0 : filterSettingsProp.visibility_rules) == null ? void 0 : _b2.length) {
10386
+ if (isRenderFromVisibilityRules) {
10387
+ checkRenderFacet();
10388
+ checkRenderFacetSlider();
10389
+ }
10390
+ } else {
10391
+ checkRenderFacet();
10392
+ checkRenderFacetSlider();
10353
10393
  }
10354
10394
  let classesUlElement = ["sledge-instant-search__result-filter-item-list"];
10355
10395
  const getFacetComponent = (props2) => {
@@ -10399,7 +10439,7 @@ const ResultProduct = React__default.memo((props) => {
10399
10439
  );
10400
10440
  if (display.toLowerCase() === "tree")
10401
10441
  classesUlElement.push("sledge-instant-search__result-filter-item-tree");
10402
- if (((_b2 = displaySettings == null ? void 0 : displaySettings.filter) == null ? void 0 : _b2.layout) === "vertical" && (allowedFilter == null ? void 0 : allowedFilter.length) === 1)
10442
+ if (((_c2 = displaySettings == null ? void 0 : displaySettings.filter) == null ? void 0 : _c2.layout) === "vertical" && (allowedFilter == null ? void 0 : allowedFilter.length) === 1)
10403
10443
  classesUlElement == null ? void 0 : classesUlElement.push("sledge-instant-search__result-filter-item-list-just-one");
10404
10444
  let isLastIndex = allowedFilter ? (allowedFilter == null ? void 0 : allowedFilter.length) - 1 === indexFilter : false;
10405
10445
  return { isRender, classesUlElement, getFacetComponent, isLastIndex };