"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeTableConfig = void 0; const calculateMaximumColumnWidths_1 = require("./calculateMaximumColumnWidths"); const spanningCellManager_1 = require("./spanningCellManager"); const utils_1 = require("./utils"); const validateConfig_1 = require("./validateConfig"); const validateSpanningCellConfig_1 = require("./validateSpanningCellConfig"); /** * Creates a configuration for every column using default * values for the missing configuration properties. */ const makeColumnsConfig = (rows, columns, columnDefault, spanningCellConfigs) => { const columnWidths = (0, calculateMaximumColumnWidths_1.calculateMaximumColumnWidths)(rows, spanningCellConfigs); return rows[0].map((_, columnIndex) => { return { alignment: 'left', paddingLeft: 1, paddingRight: 1, truncate: Number.POSITIVE_INFINITY, verticalAlignment: 'top', width: columnWidths[columnIndex], wrapWord: false, ...columnDefault, ...columns === null || columns === void 0 ? void 0 : columns[columnIndex], }; }); }; /** * Makes a new configuration object out of the userConfig object * using default values for the missing configuration properties. */ const makeTableConfig = (rows, config = {}, injectedSpanningCellConfig) => { var _a, _b, _c, _d, _e; (0, validateConfig_1.validateConfig)('config.json', config); (0, validateSpanningCellConfig_1.validateSpanningCellConfig)(rows, (_a = config.spanningCells) !== null && _a !== void 0 ? _a : []); const spanningCellConfigs = (_b = injectedSpanningCellConfig !== null && injectedSpanningCellConfig !== void 0 ? injectedSpanningCellConfig : config.spanningCells) !== null && _b !== void 0 ? _b : []; const columnsConfig = makeColumnsConfig(rows, config.columns, config.columnDefault, spanningCellConfigs); const drawVerticalLine = (_c = config.drawVerticalLine) !== null && _c !== void 0 ? _c : (() => { return true; }); const drawHorizontalLine = (_d = config.drawHorizontalLine) !== null && _d !== void 0 ? _d : (() => { return true; }); return { ...config, border: (0, utils_1.makeBorderConfig)(config.border), columns: columnsConfig, drawHorizontalLine, drawVerticalLine, singleLine: (_e = config.singleLine) !== null && _e !== void 0 ? _e : false, spanningCellManager: (0, spanningCellManager_1.createSpanningCellManager)({ columnsConfig, drawHorizontalLine, drawVerticalLine, rows, spanningCellConfigs, }), }; }; exports.makeTableConfig = makeTableConfig; //# sourceMappingURL=makeTableConfig.js.map