${T.repeat(x => x.dataColumns, T.html`
${x => x.header}
`)} ${T.when(x => x.actions.length, T.html`
Actions
`)}
${T.repeat((x, dataContext) => x.data, T.html`
${T.repeat((x, columnContext) => columnContext.parent.dataColumns, T.html`
${(column, ctx) => { const value = ctx.parent[column.key]; return column.formatter ? column.formatter(value) : value; }}
`)} ${T.when((x,c) => c.parent.actions && c.parent.actions.length, T.html`
${T.repeat((x, c) => c.parent.actions, T.html` ${x => x.label} `)}
`)}
`)} ${T.when(x => !x.data.length, T.html`
${ x => x.emptyLabel }
`)}