wrapCell.js
 1  "use strict";
 2  Object.defineProperty(exports, "__esModule", { value: true });
 3  exports.wrapCell = void 0;
 4  const utils_1 = require("./utils");
 5  const wrapString_1 = require("./wrapString");
 6  const wrapWord_1 = require("./wrapWord");
 7  /**
 8   * Wrap a single cell value into a list of lines
 9   *
10   * Always wraps on newlines, for the remainder uses either word or string wrapping
11   * depending on user configuration.
12   *
13   */
14  const wrapCell = (cellValue, cellWidth, useWrapWord) => {
15      // First split on literal newlines
16      const cellLines = utils_1.splitAnsi(cellValue);
17      // Then iterate over the list and word-wrap every remaining line if necessary.
18      for (let lineNr = 0; lineNr < cellLines.length;) {
19          let lineChunks;
20          if (useWrapWord) {
21              lineChunks = wrapWord_1.wrapWord(cellLines[lineNr], cellWidth);
22          }
23          else {
24              lineChunks = wrapString_1.wrapString(cellLines[lineNr], cellWidth);
25          }
26          // Replace our original array element with whatever the wrapping returned
27          cellLines.splice(lineNr, 1, ...lineChunks);
28          lineNr += lineChunks.length;
29      }
30      return cellLines;
31  };
32  exports.wrapCell = wrapCell;