You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import { drawBorderTop, drawBorderJoin, drawBorderBottom } from './drawBorder'; import drawRow from './drawRow';
/** * @param {Array} rows * @param {Object} border * @param {Array} columnSizeIndex * @param {Array} rowSpanIndex * @param {Function} drawHorizontalLine * @param {boolean} singleLine * @returns {string} */ export default (rows, border, columnSizeIndex, rowSpanIndex, drawHorizontalLine, singleLine) => { let output; let realRowIndex; let rowHeight;
const rowCount = rows.length;
realRowIndex = 0;
output = '';
if (drawHorizontalLine(realRowIndex, rowCount)) { output += drawBorderTop(columnSizeIndex, border); }
rows.forEach((row, index0) => { output += drawRow(row, border);
if (!rowHeight) { rowHeight = rowSpanIndex[realRowIndex];
realRowIndex++; }
rowHeight--;
if (!singleLine && rowHeight === 0 && index0 !== rowCount - 1 && drawHorizontalLine(realRowIndex, rowCount)) { output += drawBorderJoin(columnSizeIndex, border); } });
if (drawHorizontalLine(realRowIndex, rowCount)) { output += drawBorderBottom(columnSizeIndex, border); }
return output; };
|