import { HTMLTableColumn, HTMLTableDataItem, HTMLTableRow } from '../types/htmlTable'
import { Collection } from '@freearhey/core'
import { EOL } from '../constants'
export class HTMLTable {
rows: Collection
columns: Collection
constructor(rows: Collection, columns: Collection) {
this.rows = rows
this.columns = columns
}
toString() {
let output = `${EOL}`
output += ` ${EOL} `
this.columns.forEach((column: HTMLTableColumn) => {
const nowrap = column.nowrap ? ' nowrap' : ''
const align = column.align ? ` align="${column.align}"` : ''
const colspan = column.colspan ? ` colspan="${column.colspan}"` : ''
output += `| ${column.name} | `
})
output += `
${EOL} ${EOL}`
output += ` ${EOL}`
this.rows.forEach((row: HTMLTableRow) => {
output += ' '
row.forEach((item: HTMLTableDataItem) => {
const nowrap = item.nowrap ? ' nowrap' : ''
const align = item.align ? ` align="${item.align}"` : ''
const colspan = item.colspan ? ` colspan="${item.colspan}"` : ''
output += `| ${item.value} | `
})
output += `
${EOL}`
})
output += ` ${EOL}`
output += '
'
return output
}
}