budget-go/frontend/js/lib/renderers.js

65 lines
1.3 KiB
JavaScript

const addZero = (value) => {
if (value < 10) {
value = `0${value}`
}
return value
}
const renderDate = (value) => {
const d = new Date(value)
let day = addZero(d.getUTCDate())
let month = addZero(d.getUTCMonth() + 1)
const year = d.getUTCFullYear()
return `${day}/${month}/${year}`
}
const renderDateTime = (value) => {
const d = new Date(value)
return `${renderDate(value)} ${addZero(d.getHours())}:${addZero(d.getMinutes())}`
}
const renderCategory = (item) => {
if (item !== null) {
return `<span class="fa-solid fa-square" style="color: ${item.color}" b>&nbsp;</span> ${item.label}`
}
}
const renderBankAccount = (item) => {
if (item !== null) {
return item.label
}
}
const renderEuro = (value) => {
if (value === null) {
return '-'
}
if (value === 0) {
return '-'
}
const euro = new Intl.NumberFormat('fr-FR', {
style: 'currency',
currency: 'EUR',
minimumFractionDigits: 2,
})
return euro.format(value)
}
const renderLabelWithSum = (label, rows, key) => {
let sum = 0
rows.forEach((row) => {
sum += row[key]
})
return `${label}<br><small class="fw-normal">${renderEuro(sum)}</small>`
}
export { renderDate, renderDateTime, renderCategory, renderBankAccount, renderEuro, renderLabelWithSum }