koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
87 lines (86 loc) • 2.41 kB
JavaScript
"use client";
import { jsx as I } from "react/jsx-runtime";
import { forwardRef as j, useMemo as B } from "react";
import G from "classnames";
import { Units as R } from "../../internal/locale/units.js";
import { useBrowserLocale as V } from "../../internal/locale/useBrowserLocale.js";
import d from "./Number.module.css.js";
import { UnitDisplayModes as k, SignDisplayModes as q, CompactDisplayModes as z, Notations as A, Styles as E, LocaleMatchers as H } from "./types.js";
const J = j(
({
value: i,
className: w,
locale: t,
localeMatcher: r = H["best fit"],
digitsConfig: m = {
integer: {
minimum: 1
},
significant: {
minimum: 1,
maximum: 21
},
fraction: {}
},
notation: n = A.standard,
compactDisplay: e = z.short,
grouping: a,
signDisplay: s = q.auto,
unit: o = R.liter,
unitDisplay: u = k.short,
...y
}, F) => {
var l, p, x, N, b;
const L = V(), c = t || L, f = B(
() => {
var D, M, S, U, h;
return i ? new Intl.NumberFormat(c, {
localeMatcher: r,
style: E.unit,
minimumIntegerDigits: (D = m.integer) == null ? void 0 : D.minimum,
minimumFractionDigits: (M = m.fraction) == null ? void 0 : M.minimum,
minimumSignificantDigits: (S = m.significant) == null ? void 0 : S.minimum,
maximumSignificantDigits: (U = m.significant) == null ? void 0 : U.maximum,
maximumFractionDigits: (h = m.fraction) == null ? void 0 : h.maximum,
notation: n,
compactDisplay: e,
useGrouping: a,
signDisplay: s,
unit: o,
unitDisplay: u
}).format(i) : "";
},
[
e,
(l = m.fraction) == null ? void 0 : l.maximum,
(p = m.fraction) == null ? void 0 : p.minimum,
(x = m.integer) == null ? void 0 : x.minimum,
(N = m.significant) == null ? void 0 : N.maximum,
(b = m.significant) == null ? void 0 : b.minimum,
a,
c,
r,
n,
s,
o,
u,
i
]
);
return i && /* @__PURE__ */ I(
"span",
{
...y,
title: f,
className: G(d.number, w),
ref: F,
children: f
}
);
}
);
J.displayName = "NumberUnit";
export {
J as NumberUnit
};
//# sourceMappingURL=NumberUnit.js.map