UNPKG

1.63 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.calculateMaximumColumnWidths = exports.calculateMaximumCellWidth = void 0;
7const string_width_1 = __importDefault(require("string-width"));
8const utils_1 = require("./utils");
9const calculateMaximumCellWidth = (cell) => {
10 return Math.max(...cell.split('\n').map(string_width_1.default));
11};
12exports.calculateMaximumCellWidth = calculateMaximumCellWidth;
13/**
14 * Produces an array of values that describe the largest value length (width) in every column.
15 */
16const calculateMaximumColumnWidths = (rows, spanningCellConfigs = []) => {
17 const columnWidths = new Array(rows[0].length).fill(0);
18 const rangeCoordinates = spanningCellConfigs.map(utils_1.calculateRangeCoordinate);
19 const isSpanningCell = (rowIndex, columnIndex) => {
20 return rangeCoordinates.some((rangeCoordinate) => {
21 return (0, utils_1.isCellInRange)({ col: columnIndex,
22 row: rowIndex }, rangeCoordinate);
23 });
24 };
25 rows.forEach((row, rowIndex) => {
26 row.forEach((cell, cellIndex) => {
27 if (isSpanningCell(rowIndex, cellIndex)) {
28 return;
29 }
30 columnWidths[cellIndex] = Math.max(columnWidths[cellIndex], (0, exports.calculateMaximumCellWidth)(cell));
31 });
32 });
33 return columnWidths;
34};
35exports.calculateMaximumColumnWidths = calculateMaximumColumnWidths;
36//# sourceMappingURL=calculateMaximumColumnWidths.js.map
\No newline at end of file