123456789101112131415161718192021222324252627282930313233343536373839404142 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.calculateRowHeights = void 0;
- const calculateCellHeight_1 = require("./calculateCellHeight");
- const utils_1 = require("./utils");
- /**
- * Produces an array of values that describe the largest value length (height) in every row.
- */
- const calculateRowHeights = (rows, config) => {
- const rowHeights = [];
- for (const [rowIndex, row] of rows.entries()) {
- let rowHeight = 1;
- row.forEach((cell, cellIndex) => {
- var _a;
- const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,
- row: rowIndex });
- if (!containingRange) {
- const cellHeight = (0, calculateCellHeight_1.calculateCellHeight)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);
- rowHeight = Math.max(rowHeight, cellHeight);
- return;
- }
- const { topLeft, bottomRight, height } = containingRange;
- // bottom-most cell of a range needs to contain all remain lines of spanning cells
- if (rowIndex === bottomRight.row) {
- const totalOccupiedSpanningCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row));
- const totalHorizontalBorderHeight = bottomRight.row - topLeft.row;
- const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {
- var _a;
- /* istanbul ignore next */
- return !((_a = config.drawHorizontalLine) === null || _a === void 0 ? void 0 : _a.call(config, horizontalBorderIndex, rows.length));
- }).length;
- const cellHeight = height - totalOccupiedSpanningCellHeight - totalHorizontalBorderHeight + totalHiddenHorizontalBorderHeight;
- rowHeight = Math.max(rowHeight, cellHeight);
- }
- // otherwise, just depend on other sibling cell heights in the row
- });
- rowHeights.push(rowHeight);
- }
- return rowHeights;
- };
- exports.calculateRowHeights = calculateRowHeights;
- //# sourceMappingURL=calculateRowHeights.js.map
|