@linzjs/lui 21.23.0 → 21.23.1
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/CHANGELOG.md +7 -0
- package/dist/components/Splitter/helpers/useValueSeparator.d.ts +2 -0
- package/dist/components/Splitter/helpers/useValueSeparatorEffects.d.ts +5 -0
- package/dist/index.js +50 -17
- package/dist/index.js.map +1 -1
- package/dist/lui.esm.js +50 -17
- package/dist/lui.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/lui.esm.js
CHANGED
|
@@ -58651,25 +58651,23 @@ var animateSeparator = function (separatorRef, animate) {
|
|
|
58651
58651
|
};
|
|
58652
58652
|
|
|
58653
58653
|
/**
|
|
58654
|
-
*
|
|
58655
|
-
* If boundaries and/or initialRatio are not specified, they will be defaulted.
|
|
58654
|
+
* Moves separator as per ratio changes. Centers on first render if ratio is undefined.
|
|
58656
58655
|
*/
|
|
58657
|
-
var
|
|
58658
|
-
var
|
|
58659
|
-
var prev = useRef();
|
|
58660
|
-
var setValueNow = useCallback(function (val) {
|
|
58661
|
-
var valueNow = getSeparatorAttributes({ ref: separator }).valueNow;
|
|
58662
|
-
var value = val !== null && val !== void 0 ? val : (valueNow || min + (max - min) / 2);
|
|
58663
|
-
var newValue = clampSeparator({ value: value, max: max, min: min });
|
|
58664
|
-
resize(separator, newValue);
|
|
58665
|
-
if (prev.current !== newValue) {
|
|
58666
|
-
prev.current = newValue;
|
|
58667
|
-
onResized === null || onResized === void 0 ? void 0 : onResized(newValue);
|
|
58668
|
-
}
|
|
58669
|
-
}, [onResized, min, max, prev]);
|
|
58656
|
+
var useRatioEffect = function (setValueNow, ratio) {
|
|
58657
|
+
var firstRun = useRef(true);
|
|
58670
58658
|
useEffect(function () {
|
|
58671
|
-
|
|
58672
|
-
|
|
58659
|
+
if (firstRun.current || ratio !== undefined) {
|
|
58660
|
+
firstRun.current = false;
|
|
58661
|
+
// If ratio is undefined, setValueNow will place the separator in the middle as a starting point.
|
|
58662
|
+
// Whatever value is `the middle` will be determined by setValueNow
|
|
58663
|
+
setValueNow(ratio);
|
|
58664
|
+
}
|
|
58665
|
+
}, [setValueNow, ratio, firstRun]);
|
|
58666
|
+
};
|
|
58667
|
+
/**
|
|
58668
|
+
* Re-arranges the splitter if the limits or orientation change.
|
|
58669
|
+
*/
|
|
58670
|
+
var useConfigEffect = function (setValueNow, separator) {
|
|
58673
58671
|
useEffect(function () {
|
|
58674
58672
|
var callback = function () {
|
|
58675
58673
|
var value = getSeparatorAttributes({ ref: separator }).valueNow;
|
|
@@ -58682,6 +58680,11 @@ var useValueSeparator = function (_a) {
|
|
|
58682
58680
|
});
|
|
58683
58681
|
return function () { return observer.disconnect(); };
|
|
58684
58682
|
}, [separator, setValueNow]);
|
|
58683
|
+
};
|
|
58684
|
+
/**
|
|
58685
|
+
* Broadcasts changes if separator aria-valuenow was altered.
|
|
58686
|
+
*/
|
|
58687
|
+
var useValueNowEffect = function (setValueNow, separator) {
|
|
58685
58688
|
useEffect(function () {
|
|
58686
58689
|
var observer = new MutationObserver(function (_a) {
|
|
58687
58690
|
var target = _a[0].target;
|
|
@@ -58696,6 +58699,36 @@ var useValueSeparator = function (_a) {
|
|
|
58696
58699
|
observer.observe(separator.current, { attributeFilter: attributeFilter });
|
|
58697
58700
|
return function () { return observer.disconnect(); };
|
|
58698
58701
|
}, [separator, setValueNow]);
|
|
58702
|
+
};
|
|
58703
|
+
/**
|
|
58704
|
+
* Calls setValueNow when the separator attributes change.
|
|
58705
|
+
*/
|
|
58706
|
+
var useValueSeparatorEffects = function (setValueNow, separator, ratio) {
|
|
58707
|
+
useRatioEffect(setValueNow, ratio);
|
|
58708
|
+
useConfigEffect(setValueNow, separator);
|
|
58709
|
+
useValueNowEffect(setValueNow, separator);
|
|
58710
|
+
};
|
|
58711
|
+
|
|
58712
|
+
/**
|
|
58713
|
+
* Ensures valueNow is set to a valid value within its allowed boundaries.
|
|
58714
|
+
* If boundaries and/or initialRatio are not specified, they will be defaulted.
|
|
58715
|
+
* It's possible that multiple events trigger setValueNow simultaneosly with the same value.
|
|
58716
|
+
* This multiple calls are expected, and setValueNow will resize only once.
|
|
58717
|
+
*/
|
|
58718
|
+
var useValueSeparator = function (_a) {
|
|
58719
|
+
var separator = _a.separator, ratio = _a.ratio, onResized = _a.onResized, _b = _a.boundaries, min = _b.min, max = _b.max;
|
|
58720
|
+
var prev = useRef(null);
|
|
58721
|
+
var setValueNow = useCallback(function (val) {
|
|
58722
|
+
var valueNow = getSeparatorAttributes({ ref: separator }).valueNow;
|
|
58723
|
+
var value = val !== null && val !== void 0 ? val : (valueNow || min + (max - min) / 2);
|
|
58724
|
+
var newValue = clampSeparator({ value: value, max: max, min: min });
|
|
58725
|
+
resize(separator, newValue);
|
|
58726
|
+
if (prev.current !== newValue) {
|
|
58727
|
+
prev.current = newValue;
|
|
58728
|
+
onResized === null || onResized === void 0 ? void 0 : onResized(newValue);
|
|
58729
|
+
}
|
|
58730
|
+
}, [onResized, min, max, prev]);
|
|
58731
|
+
useValueSeparatorEffects(setValueNow, separator, ratio);
|
|
58699
58732
|
return { setValueNow: setValueNow };
|
|
58700
58733
|
};
|
|
58701
58734
|
var resize = function (separator, value) {
|