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 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; };
|