@seasketch/geoprocessing
Version:
Geoprocessing and reporting framework for SeaSketch 2.0
25 lines • 1.53 kB
JavaScript
import { percentWithEdge, roundDecimal } from "../helpers/index.js";
const NumberFormatter = new Intl.NumberFormat("en", { style: "decimal" });
/** Given a number or string value and the name of a formatter function, returns a formatted value */
export const valueFormatter = (value, formatter) => {
if (formatter === "value")
return value;
if (formatter === "percent0dig")
return percentWithEdge(typeof value === "string" ? Number.parseFloat(value) : value, { digits: 0 });
if (formatter === "percent")
return percentWithEdge(typeof value === "string" ? Number.parseFloat(value) : value);
if (formatter === "percent1dig")
return percentWithEdge(typeof value === "string" ? Number.parseFloat(value) : value, { digits: 1 });
if (formatter === "percent2dig")
return percentWithEdge(typeof value === "string" ? Number.parseFloat(value) : value, { digits: 2 });
if (formatter === "number")
return NumberFormatter.format(typeof value === "string" ? Number.parseFloat(value) : value);
if (formatter === "number1dig")
return NumberFormatter.format(roundDecimal(typeof value === "string" ? Number.parseFloat(value) : value, 1));
if (formatter === "number2dig")
return NumberFormatter.format(roundDecimal(typeof value === "string" ? Number.parseFloat(value) : value, 2));
if (formatter === "integer")
return NumberFormatter.format(Number.parseInt(`${value}`));
return formatter(value);
};
//# sourceMappingURL=valueFormatter.js.map