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 } }