47 lines
1.1 KiB
TypeScript
Executable File
47 lines
1.1 KiB
TypeScript
Executable File
const splitRoutePath = (routePath: string): string[] => {
|
|
const routeParts = routePath.split('/').filter((part) => part !== '')
|
|
|
|
const routeArray: string[] = []
|
|
let currentRoute = ''
|
|
|
|
for (const part of routeParts) {
|
|
currentRoute += `/${part}`
|
|
routeArray.push(currentRoute)
|
|
}
|
|
|
|
return routeArray
|
|
}
|
|
|
|
const formatNumber = (number: any): string => {
|
|
if (number == null || number === '' || isNaN(number)) {
|
|
return '0'
|
|
}else{
|
|
const value = parseFloat(number.toString())
|
|
return new Intl.NumberFormat('id-ID').format(value)
|
|
}
|
|
}
|
|
|
|
const formatPercentage = (number: string | number): string => {
|
|
if(number == null || number === ''){
|
|
return '0%'
|
|
}else{
|
|
const value = parseFloat(number.toString())
|
|
const result = `${value.toFixed(2)}`
|
|
if (result.includes('.00')) {
|
|
return `${result.replace('.00', '')}%`
|
|
} else {
|
|
return `${result}%`
|
|
}
|
|
}
|
|
}
|
|
|
|
const isNumber = (value: any): boolean => {
|
|
return !isNaN(value)
|
|
}
|
|
|
|
export {
|
|
splitRoutePath,
|
|
formatNumber,
|
|
formatPercentage,
|
|
isNumber
|
|
} |