UNPKG

html-to-text

Version:
64 lines (53 loc) 1.61 kB
/* eslint-disable max-classes-per-file */ const { InlineTextBuilder } = require('./inline-text-builder'); class StackItem { constructor (next = null) { this.next = next; } getRoot () { return (this.next) ? this.next : this; } } class BlockStackItem extends StackItem { constructor (options, next = null, leadingLineBreaks = 1, maxLineLength = undefined) { super(next); this.leadingLineBreaks = leadingLineBreaks; this.inlineTextBuilder = new InlineTextBuilder(options, maxLineLength); this.rawText = ''; this.stashedLineBreaks = 0; this.isPre = next && next.isPre; } } class TableStackItem extends StackItem { constructor (next = null) { super(next); this.rows = []; this.isPre = next && next.isPre; } } class TableRowStackItem extends StackItem { constructor (next = null) { super(next); this.cells = []; this.isPre = next && next.isPre; } } class TableCellStackItem extends StackItem { constructor (options, next = null, maxColumnWidth = undefined) { super(next); this.inlineTextBuilder = new InlineTextBuilder(options, maxColumnWidth); this.rawText = ''; this.stashedLineBreaks = 0; this.isPre = next && next.isPre; } } class TransformerStackItem extends StackItem { constructor (next = null, transform) { super(next); this.transform = transform; } } module.exports = { BlockStackItem: BlockStackItem, StackItem: StackItem, TableCellStackItem: TableCellStackItem, TableRowStackItem: TableRowStackItem, TableStackItem: TableStackItem, TransformerStackItem: TransformerStackItem, };