massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / dist / src / mapDataUsingRowHeights.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/table/dist/src/mapDataUsingRowHeights.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/table/dist/src/mapDataUsingRowHeights.js
new file mode 100644 (file)
index 0000000..5a0c2d9
--- /dev/null
@@ -0,0 +1,45 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.mapDataUsingRowHeights = void 0;
+const wrapCell_1 = require("./wrapCell");
+const createEmptyStrings = (length) => {
+    return new Array(length).fill('');
+};
+const padCellVertically = (lines, rowHeight, columnConfig) => {
+    const { verticalAlignment } = columnConfig;
+    const availableLines = rowHeight - lines.length;
+    if (verticalAlignment === 'top') {
+        return [...lines, ...createEmptyStrings(availableLines)];
+    }
+    if (verticalAlignment === 'bottom') {
+        return [...createEmptyStrings(availableLines), ...lines];
+    }
+    return [
+        ...createEmptyStrings(Math.floor(availableLines / 2)),
+        ...lines,
+        ...createEmptyStrings(Math.ceil(availableLines / 2)),
+    ];
+};
+const flatten = (array) => {
+    return [].concat(...array);
+};
+const mapDataUsingRowHeights = (unmappedRows, rowHeights, config) => {
+    const tableWidth = unmappedRows[0].length;
+    const mappedRows = unmappedRows.map((unmappedRow, unmappedRowIndex) => {
+        const outputRowHeight = rowHeights[unmappedRowIndex];
+        const outputRow = Array.from({ length: outputRowHeight }, () => {
+            return new Array(tableWidth).fill('');
+        });
+        unmappedRow.forEach((cell, cellIndex) => {
+            const cellLines = (0, wrapCell_1.wrapCell)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);
+            const paddedCellLines = padCellVertically(cellLines, outputRowHeight, config.columns[cellIndex]);
+            paddedCellLines.forEach((cellLine, cellLineIndex) => {
+                outputRow[cellLineIndex][cellIndex] = cellLine;
+            });
+        });
+        return outputRow;
+    });
+    return flatten(mappedRows);
+};
+exports.mapDataUsingRowHeights = mapDataUsingRowHeights;
+//# sourceMappingURL=mapDataUsingRowHeights.js.map
\ No newline at end of file