"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.drawContent = void 0; const drawContent = (parameters) => { const { contents, separatorGetter, drawSeparator, spanningCellManager, rowIndex, elementType } = parameters; const contentSize = contents.length; const result = []; if (drawSeparator(0, contentSize)) { result.push(separatorGetter(0, contentSize)); } contents.forEach((content, contentIndex) => { if (!elementType || elementType === 'border' || elementType === 'row') { result.push(content); } if (elementType === 'cell' && rowIndex === undefined) { result.push(content); } if (elementType === 'cell' && rowIndex !== undefined) { /* istanbul ignore next */ const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: contentIndex, row: rowIndex }); // when drawing content row, just add a cell when it is a normal cell // or belongs to first column of spanning cell if (!containingRange || contentIndex === containingRange.topLeft.col) { result.push(content); } } // Only append the middle separator if the content is not the last if (contentIndex + 1 < contentSize && drawSeparator(contentIndex + 1, contentSize)) { const separator = separatorGetter(contentIndex + 1, contentSize); if (elementType === 'cell' && rowIndex !== undefined) { const currentCell = { col: contentIndex + 1, row: rowIndex }; /* istanbul ignore next */ const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange(currentCell); if (!containingRange || containingRange.topLeft.col === currentCell.col) { result.push(separator); } } else { result.push(separator); } } }); if (drawSeparator(contentSize, contentSize)) { result.push(separatorGetter(contentSize, contentSize)); } return result.join(''); }; exports.drawContent = drawContent; //# sourceMappingURL=drawContent.js.map