@synergy-design-system/components
Version:
This package provides the base of the Synergy Design System as native web components. It uses [lit](https://www.lit.dev) and parts of [shoelace](https://shoelace.style/). Synergy officially supports the latest two versions of all major browsers (as define
56 lines (53 loc) • 2.13 kB
JavaScript
import {
__objRest,
__spreadValues
} from "./chunk.Z4XV3SMG.js";
// src/components/input/formatter.ts
var formatNumber = (value, step, numberFormatterOptions = {}) => {
var _b;
const _a = numberFormatterOptions, {
maximumFractionDigits: providedMaxFractionDigits,
minimumFractionDigits: providedMinFractionDigits
} = _a, otherOptions = __objRest(_a, [
"maximumFractionDigits",
"minimumFractionDigits"
]);
const stepToUse = step === "any" || !step ? 1 : +step;
const stepFractionDigits = ((_b = stepToUse.toString().split(".")[1]) == null ? void 0 : _b.length) || 0;
let minimumFractionDigits;
let maximumFractionDigits;
const minFractionIsNumber = typeof providedMinFractionDigits === "number";
const maxFractionIsNumber = typeof providedMaxFractionDigits === "number";
if (minFractionIsNumber && !maxFractionIsNumber) {
minimumFractionDigits = providedMinFractionDigits;
maximumFractionDigits = providedMinFractionDigits;
} else if (maxFractionIsNumber && !minFractionIsNumber) {
minimumFractionDigits = providedMaxFractionDigits;
maximumFractionDigits = providedMaxFractionDigits;
} else if (minFractionIsNumber && maxFractionIsNumber) {
minimumFractionDigits = Math.min(providedMinFractionDigits, providedMaxFractionDigits);
maximumFractionDigits = Math.max(providedMinFractionDigits, providedMaxFractionDigits);
}
if (stepFractionDigits > (minimumFractionDigits || 0)) {
minimumFractionDigits = stepFractionDigits;
}
if (stepFractionDigits > (maximumFractionDigits || 0)) {
maximumFractionDigits = stepFractionDigits;
}
if (typeof minimumFractionDigits !== "undefined" && minimumFractionDigits > 100) {
minimumFractionDigits = 100;
}
if (typeof maximumFractionDigits !== "undefined" && maximumFractionDigits > 100) {
maximumFractionDigits = 100;
}
const formatter = new Intl.NumberFormat("en-US", __spreadValues({
maximumFractionDigits,
minimumFractionDigits,
useGrouping: false
}, otherOptions));
return formatter.format(value);
};
export {
formatNumber
};
//# sourceMappingURL=chunk.NFXT5LNY.js.map