--- /dev/null
+"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