sbt-idp/cope2n-fe/src/utils/metric-format.ts
2024-03-21 09:39:29 +07:00

59 lines
1.2 KiB
TypeScript

export const formatPercent = (
value: any,
floatingPoint: number = 1,
maskZero: boolean = false,
) => {
if (value === null || value === undefined || (value === 0 && maskZero)) {
return '-';
}
if (value < 100.0) {
value = value * 100;
}
return value.toFixed(floatingPoint);
};
export const formatNumber = (
value: any,
floatingPoint: number = 1,
maskZero: boolean = false,
) => {
if (value === null || value === undefined || (value === 0 && maskZero)) {
return '-';
}
return value.toFixed(floatingPoint);
};
export const ensureMin = (
value: number,
min: number,
skipZero: boolean = true,
) => {
if (formatPercent(value) == '-') return false;
if (skipZero && value === 0) {
return false;
}
if (value < min) {
return true;
}
return false;
};
export const ensureMax = (
value: number,
max: number,
skipZero: boolean = true,
) => {
if (formatPercent(value) == '-') return false;
if (skipZero && value === 0) {
return false;
}
if (value > max) {
return true;
}
return false;
};
export const numberWithCommas = (x: number) => {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
};