UNPKG

ranui

Version:

A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.

185 lines (184 loc) 6.54 kB
function B(t) { return Math.abs(t = Math.round(t)) >= 1e21 ? t.toLocaleString("en").replace(/,/g, "") : t.toString(10); } function z(t, n) { if (!isFinite(t) || t === 0) return null; var o = (t = n ? t.toExponential(n - 1) : t.toExponential()).indexOf("e"), i = t.slice(0, o); return [i.length > 1 ? i[0] + i.slice(2) : i, +t.slice(o + 1)]; } function H(t) { return t = z(Math.abs(t)), t ? t[1] : NaN; } function J(t, n) { return function(o, i) { for (var a = o.length, f = [], c = 0, s = t[0], M = 0; a > 0 && s > 0 && (M + s + 1 > i && (s = Math.max(1, i - M)), f.push(o.substring(a -= s, a + s)), !((M += s + 1) > i)); ) s = t[c = (c + 1) % t.length]; return f.reverse().join(n); }; } function K(t) { return function(n) { return n.replace(/[0-9]/g, function(o) { return t[+o]; }); }; } var Q = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; function E(t) { if (!(n = Q.exec(t))) throw new Error("invalid format: " + t); var n; return new F({ fill: n[1], align: n[2], sign: n[3], symbol: n[4], zero: n[5], width: n[6], comma: n[7], precision: n[8] && n[8].slice(1), trim: n[9], type: n[10] }); } E.prototype = F.prototype; function F(t) { this.fill = t.fill === void 0 ? " " : t.fill + "", this.align = t.align === void 0 ? ">" : t.align + "", this.sign = t.sign === void 0 ? "-" : t.sign + "", this.symbol = t.symbol === void 0 ? "" : t.symbol + "", this.zero = !!t.zero, this.width = t.width === void 0 ? void 0 : +t.width, this.comma = !!t.comma, this.precision = t.precision === void 0 ? void 0 : +t.precision, this.trim = !!t.trim, this.type = t.type === void 0 ? "" : t.type + ""; } F.prototype.toString = function() { return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type; }; function V(t) { t: for (var n = t.length, o = 1, i = -1, a; o < n; ++o) switch (t[o]) { case ".": i = a = o; break; case "0": i === 0 && (i = o), a = o; break; default: if (!+t[o]) break t; i > 0 && (i = 0); break; } return i > 0 ? t.slice(0, i) + t.slice(a + 1) : t; } var A; function W(t, n) { var o = z(t, n); if (!o) return A = void 0, t.toPrecision(n); var i = o[0], a = o[1], f = a - (A = Math.max(-8, Math.min(8, Math.floor(a / 3))) * 3) + 1, c = i.length; return f === c ? i : f > c ? i + new Array(f - c + 1).join("0") : f > 0 ? i.slice(0, f) + "." + i.slice(f) : "0." + new Array(1 - f).join("0") + z(t, Math.max(0, n + f - 1))[0]; } function G(t, n) { var o = z(t, n); if (!o) return t + ""; var i = o[0], a = o[1]; return a < 0 ? "0." + new Array(-a).join("0") + i : i.length > a + 1 ? i.slice(0, a + 1) + "." + i.slice(a + 1) : i + new Array(a - i.length + 2).join("0"); } var I = { "%": (t, n) => (t * 100).toFixed(n), b: (t) => Math.round(t).toString(2), c: (t) => t + "", d: B, e: (t, n) => t.toExponential(n), f: (t, n) => t.toFixed(n), g: (t, n) => t.toPrecision(n), o: (t) => Math.round(t).toString(8), p: (t, n) => G(t * 100, n), r: G, s: W, X: (t) => Math.round(t).toString(16).toUpperCase(), x: (t) => Math.round(t).toString(16) }; function X(t) { return t; } var O = Array.prototype.map, R = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ]; function tt(t) { var n = t.grouping === void 0 || t.thousands === void 0 ? X : J(O.call(t.grouping, Number), t.thousands + ""), o = t.currency === void 0 ? "" : t.currency[0] + "", i = t.currency === void 0 ? "" : t.currency[1] + "", a = t.decimal === void 0 ? "." : t.decimal + "", f = t.numerals === void 0 ? X : K(O.call(t.numerals, String)), c = t.percent === void 0 ? "%" : t.percent + "", s = t.minus === void 0 ? "−" : t.minus + "", M = t.nan === void 0 ? "NaN" : t.nan + ""; function $(e, g) { e = E(e); var b = e.fill, p = e.align, d = e.sign, w = e.symbol, v = e.zero, j = e.width, N = e.comma, y = e.precision, T = e.trim, h = e.type; h === "n" ? (N = !0, h = "g") : I[h] || (y === void 0 && (y = 12), T = !0, h = "g"), (v || b === "0" && p === "=") && (v = !0, b = "0", p = "="); var Y = (g && g.prefix !== void 0 ? g.prefix : "") + (w === "$" ? o : w === "#" && /[boxX]/.test(h) ? "0" + h.toLowerCase() : ""), Z = (w === "$" ? i : /[%p]/.test(h) ? c : "") + (g && g.suffix !== void 0 ? g.suffix : ""), C = I[h], q = /[defgprs%]/.test(h); y = y === void 0 ? 6 : /[gprs]/.test(h) ? Math.max(1, Math.min(21, y)) : Math.max(0, Math.min(20, y)); function L(r) { var l = Y, m = Z, x, D, S; if (h === "c") m = C(r) + m, r = ""; else { r = +r; var k = r < 0 || 1 / r < 0; if (r = isNaN(r) ? M : C(Math.abs(r), y), T && (r = V(r)), k && +r == 0 && d !== "+" && (k = !1), l = (k ? d === "(" ? d : s : d === "-" || d === "(" ? "" : d) + l, m = (h === "s" && !isNaN(r) && A !== void 0 ? R[8 + A / 3] : "") + m + (k && d === "(" ? ")" : ""), q) { for (x = -1, D = r.length; ++x < D; ) if (S = r.charCodeAt(x), 48 > S || S > 57) { m = (S === 46 ? a + r.slice(x + 1) : r.slice(x)) + m, r = r.slice(0, x); break; } } } N && !v && (r = n(r, 1 / 0)); var P = l.length + r.length + m.length, u = P < j ? new Array(j - P + 1).join(b) : ""; switch (N && v && (r = n(u + r, u.length ? j - m.length : 1 / 0), u = ""), p) { case "<": r = l + r + m + u; break; case "=": r = l + u + r + m; break; case "^": r = u.slice(0, P = u.length >> 1) + l + r + m + u.slice(P); break; default: r = u + l + r + m; break; } return f(r); } return L.toString = function() { return e + ""; }, L; } function U(e, g) { var b = Math.max(-8, Math.min(8, Math.floor(H(g) / 3))) * 3, p = Math.pow(10, -b), d = $((e = E(e), e.type = "f", e), { suffix: R[8 + b / 3] }); return function(w) { return d(p * w); }; } return { format: $, formatPrefix: U }; } var _, nt, rt; it({ thousands: ",", grouping: [3], currency: ["$", ""] }); function it(t) { return _ = tt(t), nt = _.format, rt = _.formatPrefix, _; } export { H as i, rt as n, E as r, nt as t };