| import wrapString from './wrapString'; | 
| import wrapWord from './wrapWord'; | 
|   | 
| /** | 
|  * Wrap a single cell value into a list of lines | 
|  * | 
|  * Always wraps on newlines, for the remainder uses either word or string wrapping | 
|  * depending on user configuration. | 
|  * | 
|  * @param {string} cellValue | 
|  * @param {number} columnWidth | 
|  * @param {boolean} useWrapWord | 
|  * @returns {Array} | 
|  */ | 
| export default (cellValue, columnWidth, useWrapWord) => { | 
|   // First split on literal newlines | 
|   const cellLines = cellValue.split('\n'); | 
|   | 
|   // Then iterate over the list and word-wrap every remaining line if necessary. | 
|   for (let lineNr = 0; lineNr < cellLines.length;) { | 
|     let lineChunks; | 
|   | 
|     if (useWrapWord) { | 
|       lineChunks = wrapWord(cellLines[lineNr], columnWidth); | 
|     } else { | 
|       lineChunks = wrapString(cellLines[lineNr], columnWidth); | 
|     } | 
|   | 
|     // Replace our original array element with whatever the wrapping returned | 
|     cellLines.splice(lineNr, 1, ...lineChunks); | 
|     lineNr += lineChunks.length; | 
|   } | 
|   | 
|   return cellLines; | 
| }; |