matrix-react-sdk
Version:
SDK for matrix.org using React
42 lines (39 loc) • 4.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.clamp = clamp;
exports.defaultNumber = defaultNumber;
exports.percentageOf = percentageOf;
exports.percentageWithin = percentageWithin;
exports.sum = sum;
/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Returns the default number if the given value, i, is not a number. Otherwise
* returns the given value.
* @param {*} i The value to check.
* @param {number} def The default value.
* @returns {number} Either the value or the default value, whichever is a number.
*/
function defaultNumber(i, def) {
return Number.isFinite(i) ? Number(i) : def;
}
function clamp(i, min, max) {
return Math.min(Math.max(i, min), max);
}
function sum(...i) {
return [...i].reduce((p, c) => c + p, 0);
}
function percentageWithin(pct, min, max) {
return pct * (max - min) + min;
}
function percentageOf(val, min, max) {
const percentage = (val - min) / (max - min);
return Number.isNaN(percentage) ? 0 : percentage;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0TnVtYmVyIiwiaSIsImRlZiIsIk51bWJlciIsImlzRmluaXRlIiwiY2xhbXAiLCJtaW4iLCJtYXgiLCJNYXRoIiwic3VtIiwicmVkdWNlIiwicCIsImMiLCJwZXJjZW50YWdlV2l0aGluIiwicGN0IiwicGVyY2VudGFnZU9mIiwidmFsIiwicGVyY2VudGFnZSIsImlzTmFOIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL251bWJlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBpZiB0aGUgZ2l2ZW4gdmFsdWUsIGksIGlzIG5vdCBhIG51bWJlci4gT3RoZXJ3aXNlXG4gKiByZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZS5cbiAqIEBwYXJhbSB7Kn0gaSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlcn0gZGVmIFRoZSBkZWZhdWx0IHZhbHVlLlxuICogQHJldHVybnMge251bWJlcn0gRWl0aGVyIHRoZSB2YWx1ZSBvciB0aGUgZGVmYXVsdCB2YWx1ZSwgd2hpY2hldmVyIGlzIGEgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE51bWJlcihpOiB1bmtub3duLCBkZWY6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShpKSA/IE51bWJlcihpKSA6IGRlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wKGk6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgbWluKSwgbWF4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1bSguLi5pOiBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIFsuLi5pXS5yZWR1Y2UoKHAsIGMpID0+IGMgKyBwLCAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmNlbnRhZ2VXaXRoaW4ocGN0OiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHBjdCAqIChtYXggLSBtaW4pICsgbWluO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyY2VudGFnZU9mKHZhbDogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAodmFsIC0gbWluKSAvIChtYXggLSBtaW4pO1xuICAgIHJldHVybiBOdW1iZXIuaXNOYU4ocGVyY2VudGFnZSkgPyAwIDogcGVyY2VudGFnZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsYUFBYUEsQ0FBQ0MsQ0FBVSxFQUFFQyxHQUFXLEVBQVU7RUFDM0QsT0FBT0MsTUFBTSxDQUFDQyxRQUFRLENBQUNILENBQUMsQ0FBQyxHQUFHRSxNQUFNLENBQUNGLENBQUMsQ0FBQyxHQUFHQyxHQUFHO0FBQy9DO0FBRU8sU0FBU0csS0FBS0EsQ0FBQ0osQ0FBUyxFQUFFSyxHQUFXLEVBQUVDLEdBQVcsRUFBVTtFQUMvRCxPQUFPQyxJQUFJLENBQUNGLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDRCxHQUFHLENBQUNOLENBQUMsRUFBRUssR0FBRyxDQUFDLEVBQUVDLEdBQUcsQ0FBQztBQUMxQztBQUVPLFNBQVNFLEdBQUdBLENBQUMsR0FBR1IsQ0FBVyxFQUFVO0VBQ3hDLE9BQU8sQ0FBQyxHQUFHQSxDQUFDLENBQUMsQ0FBQ1MsTUFBTSxDQUFDLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxLQUFLQSxDQUFDLEdBQUdELENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUM7QUFFTyxTQUFTRSxnQkFBZ0JBLENBQUNDLEdBQVcsRUFBRVIsR0FBVyxFQUFFQyxHQUFXLEVBQVU7RUFDNUUsT0FBT08sR0FBRyxJQUFJUCxHQUFHLEdBQUdELEdBQUcsQ0FBQyxHQUFHQSxHQUFHO0FBQ2xDO0FBRU8sU0FBU1MsWUFBWUEsQ0FBQ0MsR0FBVyxFQUFFVixHQUFXLEVBQUVDLEdBQVcsRUFBVTtFQUN4RSxNQUFNVSxVQUFVLEdBQUcsQ0FBQ0QsR0FBRyxHQUFHVixHQUFHLEtBQUtDLEdBQUcsR0FBR0QsR0FBRyxDQUFDO0VBQzVDLE9BQU9ILE1BQU0sQ0FBQ2UsS0FBSyxDQUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUdBLFVBQVU7QUFDcEQiLCJpZ25vcmVMaXN0IjpbXX0=