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.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							926 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							926 B
						
					
					
				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; | 
						|
};
 | 
						|
 |