@zag-js/splitter
Version:
Core logic for the splitter widget implemented as a state machine
35 lines (33 loc) • 968 B
JavaScript
import "../chunk-QZ7TP4HQ.mjs";
// src/utils/fuzzy.ts
var PRECISION = 10;
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
return 0;
} else {
return actual > expected ? 1 : -1;
}
}
function fuzzyNumbersEqual(actual, expected, fractionDigits = PRECISION) {
if (actual == null || expected == null) return false;
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
}
function fuzzySizeEqual(actual, expected, fractionDigits) {
if (actual.length !== expected.length) {
return false;
}
for (let index = 0; index < actual.length; index++) {
const actualSize = actual[index];
const expectedSize = expected[index];
if (!fuzzyNumbersEqual(actualSize, expectedSize, fractionDigits)) {
return false;
}
}
return true;
}
export {
PRECISION,
fuzzyCompareNumbers,
fuzzyNumbersEqual,
fuzzySizeEqual
};