23 lines
1 KiB
TypeScript
23 lines
1 KiB
TypeScript
export const MASKED = "••••••";
|
|
const KEY = "mercury.hideAmounts";
|
|
|
|
export function isHidden(): boolean {
|
|
try { return localStorage.getItem(KEY) === "true"; } catch { return false; }
|
|
}
|
|
export function setHidden(b: boolean): void {
|
|
try { localStorage.setItem(KEY, String(b)); } catch {}
|
|
}
|
|
function num(v: string | number): number {
|
|
return typeof v === "number" ? v : parseFloat(v || "0") || 0;
|
|
}
|
|
export function grouped(v: string | number): string {
|
|
return new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 }).format(num(v));
|
|
}
|
|
export function tugrikRaw(v: string | number): string { return `${grouped(v)}₮`; }
|
|
export function tugrikShortRaw(v: string | number): string {
|
|
const m = num(v) / 1_000_000;
|
|
if (m >= 1) return `${m.toFixed(1).replace(".", ",")}сая₮`;
|
|
return tugrikRaw(v);
|
|
}
|
|
export function tugrik(v: string | number): string { return isHidden() ? MASKED : tugrikRaw(v); }
|
|
export function tugrikShort(v: string | number): string { return isHidden() ? MASKED : tugrikShortRaw(v); }
|