@sledge-app/react-instant-search 1.0.116 → 1.0.118
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/Atoms.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 +58 -9
- package/dist/sledge-react-instant-search.js.map +1 -1
- package/package.json +1 -1
|
@@ -663,6 +663,18 @@ const Checkbox = ({ id, name, value, required, label, checked, labelStyle = {},
|
|
|
663
663
|
] });
|
|
664
664
|
};
|
|
665
665
|
const Slider$1 = "";
|
|
666
|
+
const inputRangeFormatter = (value) => {
|
|
667
|
+
var _a, _b;
|
|
668
|
+
const cleanValue = (_b = (_a = String(value)) == null ? void 0 : _a.replace) == null ? void 0 : _b.call(_a, /[^0-9.]/g, "");
|
|
669
|
+
const numValue = parseFloat(cleanValue);
|
|
670
|
+
if (isNaN(numValue))
|
|
671
|
+
return value;
|
|
672
|
+
if (Number.isInteger(numValue))
|
|
673
|
+
return numValue.toString();
|
|
674
|
+
const [integerPart, decimalPart] = cleanValue.split(".");
|
|
675
|
+
const formattedDecimal = (decimalPart || "").slice(0, 2).padEnd(2, "0");
|
|
676
|
+
return `${integerPart}.${formattedDecimal}`;
|
|
677
|
+
};
|
|
666
678
|
const Slider = (props) => {
|
|
667
679
|
var _a, _b, _c;
|
|
668
680
|
const {
|
|
@@ -682,8 +694,8 @@ const Slider = (props) => {
|
|
|
682
694
|
minMaxClassName = "",
|
|
683
695
|
minMaxTextClassName = ""
|
|
684
696
|
} = props;
|
|
685
|
-
const [inputRangeMin, setInputRangeMin] = React__default.useState(value == null ? void 0 : value[0]);
|
|
686
|
-
const [inputRangeMax, setInputRangeMax] = React__default.useState((value == null ? void 0 : value[1]) || (value == null ? void 0 : value[0]));
|
|
697
|
+
const [inputRangeMin, setInputRangeMin] = React__default.useState(inputRangeFormatter(value == null ? void 0 : value[0]));
|
|
698
|
+
const [inputRangeMax, setInputRangeMax] = React__default.useState(inputRangeFormatter((value == null ? void 0 : value[1]) || (value == null ? void 0 : value[0])));
|
|
687
699
|
const delayInputRangeRef = React__default.useRef(null);
|
|
688
700
|
let content = (textValue == null ? void 0 : textValue.length) ? textValue : value;
|
|
689
701
|
const hasMaxValue = (value == null ? void 0 : value.length) && (value == null ? void 0 : value[1]);
|
|
@@ -693,25 +705,51 @@ const Slider = (props) => {
|
|
|
693
705
|
const isTypeIncludeInputRange = (_c = String(type)) == null ? void 0 : _c.includes("input_range");
|
|
694
706
|
const handleChangeInputRange = ({ event, type: type2 }) => {
|
|
695
707
|
var _a2;
|
|
696
|
-
|
|
697
|
-
|
|
708
|
+
let valueInput = (_a2 = event == null ? void 0 : event.target) == null ? void 0 : _a2.value;
|
|
709
|
+
if (!Number(valueInput) && Number(valueInput) !== 0)
|
|
710
|
+
return;
|
|
711
|
+
let valueCommit = type2 === "min" ? [valueInput || 0, (value == null ? void 0 : value[1]) || (value == null ? void 0 : value[0])] : [value == null ? void 0 : value[0], valueInput || 0];
|
|
698
712
|
if (type2 === "min") {
|
|
699
713
|
setInputRangeMin(valueInput);
|
|
700
714
|
} else {
|
|
701
715
|
setInputRangeMax(valueInput);
|
|
702
716
|
}
|
|
703
|
-
setValueChange == null ? void 0 : setValueChange(valueCommit);
|
|
704
717
|
if (delayInputRangeRef.current) {
|
|
705
718
|
clearTimeout(delayInputRangeRef.current);
|
|
706
719
|
}
|
|
707
720
|
delayInputRangeRef.current = setTimeout(() => {
|
|
708
|
-
|
|
721
|
+
const lastValueMin = valueCommit == null ? void 0 : valueCommit[0];
|
|
722
|
+
const lastValueMax = (valueCommit == null ? void 0 : valueCommit[1]) || lastValueMin;
|
|
723
|
+
const valueInputRange = inputRangeFormatter(type2 === "min" ? lastValueMax : lastValueMin);
|
|
724
|
+
const valueCommitFiltered = [valueInputRange, valueInputRange];
|
|
725
|
+
valueInput = inputRangeFormatter(valueInput);
|
|
726
|
+
valueCommit = [inputRangeFormatter(valueCommit[0]), inputRangeFormatter(valueCommit[1])];
|
|
727
|
+
let filterValueMinOrMax = false;
|
|
728
|
+
if (type2 === "min") {
|
|
729
|
+
filterValueMinOrMax = Number(valueInput) > Number(lastValueMax);
|
|
730
|
+
} else {
|
|
731
|
+
filterValueMinOrMax = Number(valueInput) < Number(lastValueMin);
|
|
732
|
+
}
|
|
733
|
+
if (filterValueMinOrMax) {
|
|
734
|
+
setInputRangeMin(valueInputRange);
|
|
735
|
+
setInputRangeMax(valueInputRange);
|
|
736
|
+
setValueChange == null ? void 0 : setValueChange(valueCommitFiltered);
|
|
737
|
+
setValueCommit == null ? void 0 : setValueCommit(valueCommitFiltered);
|
|
738
|
+
} else {
|
|
739
|
+
if (type2 === "min") {
|
|
740
|
+
setInputRangeMin(valueInput);
|
|
741
|
+
} else {
|
|
742
|
+
setInputRangeMax(valueInput);
|
|
743
|
+
}
|
|
744
|
+
setValueChange == null ? void 0 : setValueChange(valueCommit);
|
|
745
|
+
setValueCommit == null ? void 0 : setValueCommit(valueCommit);
|
|
746
|
+
}
|
|
709
747
|
}, 500);
|
|
710
748
|
};
|
|
711
749
|
useEffectOnChange(() => {
|
|
712
750
|
if (isTypeIncludeInputRange && !(valueFilterSliderChange == null ? void 0 : valueFilterSliderChange.length)) {
|
|
713
|
-
setInputRangeMin(value == null ? void 0 : value[0]);
|
|
714
|
-
setInputRangeMax((value == null ? void 0 : value[1]) || (value == null ? void 0 : value[0]));
|
|
751
|
+
setInputRangeMin(inputRangeFormatter(value == null ? void 0 : value[0]));
|
|
752
|
+
setInputRangeMax(inputRangeFormatter((value == null ? void 0 : value[1]) || (value == null ? void 0 : value[0])));
|
|
715
753
|
}
|
|
716
754
|
}, [valueFilterSliderChange]);
|
|
717
755
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__slider-wrapper ${wrapperClassName}`, "data-slider-type": type, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FormWrapper, { children: [
|
|
@@ -755,7 +793,13 @@ const Slider = (props) => {
|
|
|
755
793
|
step,
|
|
756
794
|
"aria-label": "Volume",
|
|
757
795
|
onValueCommit: (valueCommit) => setValueCommit == null ? void 0 : setValueCommit(valueCommit),
|
|
758
|
-
onValueChange: (valueChange) =>
|
|
796
|
+
onValueChange: (valueChange) => {
|
|
797
|
+
setValueChange == null ? void 0 : setValueChange(valueChange);
|
|
798
|
+
if (isTypeIncludeInputRange) {
|
|
799
|
+
setInputRangeMin(inputRangeFormatter(valueChange == null ? void 0 : valueChange[0]));
|
|
800
|
+
setInputRangeMax(inputRangeFormatter((valueChange == null ? void 0 : valueChange[1]) || (valueChange == null ? void 0 : valueChange[0])));
|
|
801
|
+
}
|
|
802
|
+
},
|
|
759
803
|
children: [
|
|
760
804
|
/* @__PURE__ */ jsxRuntimeExports.jsx($faa2e61a3361514f$export$13921ac0cc260818, { className: "sledge__SliderTrack", children: /* @__PURE__ */ jsxRuntimeExports.jsx($faa2e61a3361514f$export$9a58ef0d7ad3278c, { className: "sledge__SliderRange" }) }),
|
|
761
805
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -5301,6 +5345,11 @@ const FacetComponent = (props) => {
|
|
|
5301
5345
|
}
|
|
5302
5346
|
let defaultValueMin = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[0]) || (items == null ? void 0 : items.min);
|
|
5303
5347
|
let defaultValueMax = (valueFilterSliderChange == null ? void 0 : valueFilterSliderChange[1]) || (items == null ? void 0 : items.max);
|
|
5348
|
+
const isTypeSliderWithInputRange = display.toLowerCase() === "slider_with_input_range";
|
|
5349
|
+
if (isTypeSliderWithInputRange) {
|
|
5350
|
+
defaultValueMin = (items == null ? void 0 : items.min) && Number(defaultValueMin) < Number(items == null ? void 0 : items.min) ? items == null ? void 0 : items.min : defaultValueMin;
|
|
5351
|
+
defaultValueMax = (items == null ? void 0 : items.max) && Number(defaultValueMax) > Number(items == null ? void 0 : items.max) ? items == null ? void 0 : items.max : defaultValueMax;
|
|
5352
|
+
}
|
|
5304
5353
|
let contentDefaultValueMin = isPriceValue ? shopifyFormatMoney(defaultValueMin * 100, money_format) : isSalePercent ? `${defaultValueMin}%` : defaultValueMin;
|
|
5305
5354
|
let contentDefaultValueMax = isPriceValue ? shopifyFormatMoney(defaultValueMax * 100, money_format) : isSalePercent ? `${defaultValueMax}%` : defaultValueMax;
|
|
5306
5355
|
let contentFacetStatsMax = isPriceValue ? shopifyFormatMoney((items == null ? void 0 : items.max) * 100, money_format) : isSalePercent ? `${items == null ? void 0 : items.max}%` : items == null ? void 0 : items.max;
|