@hakit/core
Version:
A collection of React hooks and helpers for Home Assistant to easily communicate with the Home Assistant WebSocket API.
40 lines (39 loc) • 1.39 kB
JavaScript
const u = (i, t) => {
const r = t?.display_precision;
if (r != null)
return {
maximumFractionDigits: r,
minimumFractionDigits: r
};
if (Number.isInteger(Number(i?.attributes?.step)) && Number.isInteger(Number(i?.state)))
return { maximumFractionDigits: 0 };
}, a = (i) => n(i.attributes), n = (i, t) => !!i.unit_of_measurement || !!i.state_class || (t || []).includes(i.device_class || ""), m = (i, t) => {
const r = {
maximumFractionDigits: 2,
...t
};
if (typeof i != "string")
return r;
if (!t || t.minimumFractionDigits === void 0 && t.maximumFractionDigits === void 0) {
const e = i.indexOf(".") > -1 ? i.split(".")[1].length : 0;
r.minimumFractionDigits = e, r.maximumFractionDigits = e;
}
return r;
}, s = (i, t = 2) => Math.round(i * 10 ** t) / 10 ** t, c = (i, t) => (Number.isNaN = Number.isNaN || function r(e) {
return typeof e == "number" && r(e);
}, !Number.isNaN(Number(i)) && i !== "" ? new Intl.NumberFormat(
"en-US",
m(i, {
...t,
useGrouping: !1
})
).format(Number(i)) : typeof i == "string" ? i : `${s(i, t?.maximumFractionDigits).toString()}${t?.style === "currency" ? ` ${t.currency}` : ""}`);
export {
c as formatNumber,
m as getDefaultFormatOptions,
u as getNumberFormatOptions,
n as isNumericFromAttributes,
a as isNumericState,
s as round
};
//# sourceMappingURL=number.js.map