import _ from 'lodash'; import calculateCellHeight from './calculateCellHeight'; /** * Calculates the vertical row span index. * * @param {Array[]} rows * @param {Object} config * @returns {number[]} */ export default (rows, config) => { const tableWidth = rows[0].length; const rowSpanIndex = []; rows.forEach((cells) => { const cellHeightIndex = new Array(tableWidth).fill(1); cells.forEach((value, index1) => { if (!_.isNumber(config.columns[index1].width)) { throw new TypeError('column[index].width must be a number.'); } if (!_.isBoolean(config.columns[index1].wrapWord)) { throw new TypeError('column[index].wrapWord must be a boolean.'); } cellHeightIndex[index1] = calculateCellHeight(value, config.columns[index1].width, config.columns[index1].wrapWord); }); rowSpanIndex.push(_.max(cellHeightIndex)); }); return rowSpanIndex; };