massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / dist / src / mapDataUsingRowHeights.js
1 "use strict";
2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.mapDataUsingRowHeights = void 0;
4 const wrapCell_1 = require("./wrapCell");
5 const createEmptyStrings = (length) => {
6     return new Array(length).fill('');
7 };
8 const padCellVertically = (lines, rowHeight, columnConfig) => {
9     const { verticalAlignment } = columnConfig;
10     const availableLines = rowHeight - lines.length;
11     if (verticalAlignment === 'top') {
12         return [...lines, ...createEmptyStrings(availableLines)];
13     }
14     if (verticalAlignment === 'bottom') {
15         return [...createEmptyStrings(availableLines), ...lines];
16     }
17     return [
18         ...createEmptyStrings(Math.floor(availableLines / 2)),
19         ...lines,
20         ...createEmptyStrings(Math.ceil(availableLines / 2)),
21     ];
22 };
23 const flatten = (array) => {
24     return [].concat(...array);
25 };
26 const mapDataUsingRowHeights = (unmappedRows, rowHeights, config) => {
27     const tableWidth = unmappedRows[0].length;
28     const mappedRows = unmappedRows.map((unmappedRow, unmappedRowIndex) => {
29         const outputRowHeight = rowHeights[unmappedRowIndex];
30         const outputRow = Array.from({ length: outputRowHeight }, () => {
31             return new Array(tableWidth).fill('');
32         });
33         unmappedRow.forEach((cell, cellIndex) => {
34             const cellLines = (0, wrapCell_1.wrapCell)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);
35             const paddedCellLines = padCellVertically(cellLines, outputRowHeight, config.columns[cellIndex]);
36             paddedCellLines.forEach((cellLine, cellLineIndex) => {
37                 outputRow[cellLineIndex][cellIndex] = cellLine;
38             });
39         });
40         return outputRow;
41     });
42     return flatten(mappedRows);
43 };
44 exports.mapDataUsingRowHeights = mapDataUsingRowHeights;
45 //# sourceMappingURL=mapDataUsingRowHeights.js.map