/** * Created by njz on 2018/2/15. */ import {BlockNode} from '../../../core/BlockNode' import {PseudoNode} from '../../../core/PseudoNode' import {HTMLRender} from '../' const style = require('./Table.css') export class Table extends BlockNode{ constructor(node){ super(node) this.priority = 0; } tableTdRender(tds: PseudoNode[], render: HTMLRender): Promise{ return Promise.all(tds.map(async td=>{ if(td.tagName == 'td'){ return `${await render.renderInlineNodes(td.childPseudoNodes)}` } else if(td.tagName == 'th'){ return `${await render.renderInlineNodes(td.childPseudoNodes)}` } else { return '' } })).then(strings=> strings.join("")) } tableTrRender(trs: PseudoNode[], render: HTMLRender): Promise{ return Promise.all(trs.map(async tr=>{ if(tr.tagName == 'tr'){ return `${await this.tableTdRender(tr.childPseudoNodes, render)}` } else { return '' } })).then(strings=> strings.join("")) } async render(render: HTMLRender): Promise{ render.setStyle('table', style) var str = `${ await this.tableTrRender(this.childPseudoNodes, render) }
`; return str; } }