You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.8 KiB
110 lines
3.8 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.default = void 0; |
|
|
|
var _drawTable = _interopRequireDefault(require("./drawTable")); |
|
|
|
var _calculateCellWidthIndex = _interopRequireDefault(require("./calculateCellWidthIndex")); |
|
|
|
var _makeConfig = _interopRequireDefault(require("./makeConfig")); |
|
|
|
var _calculateRowHeightIndex = _interopRequireDefault(require("./calculateRowHeightIndex")); |
|
|
|
var _mapDataUsingRowHeightIndex = _interopRequireDefault(require("./mapDataUsingRowHeightIndex")); |
|
|
|
var _alignTableData = _interopRequireDefault(require("./alignTableData")); |
|
|
|
var _padTableData = _interopRequireDefault(require("./padTableData")); |
|
|
|
var _validateTableData = _interopRequireDefault(require("./validateTableData")); |
|
|
|
var _stringifyTableData = _interopRequireDefault(require("./stringifyTableData")); |
|
|
|
var _truncateTableData = _interopRequireDefault(require("./truncateTableData")); |
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
|
|
/** |
|
* @typedef {string} table~cell |
|
*/ |
|
|
|
/** |
|
* @typedef {table~cell[]} table~row |
|
*/ |
|
|
|
/** |
|
* @typedef {Object} table~columns |
|
* @property {string} alignment Cell content alignment (enum: left, center, right) (default: left). |
|
* @property {number} width Column width (default: auto). |
|
* @property {number} truncate Number of characters are which the content will be truncated (default: Infinity). |
|
* @property {boolean} wrapWord When true the text is broken at the nearest space or one of the special characters |
|
* @property {number} paddingLeft Cell content padding width left (default: 1). |
|
* @property {number} paddingRight Cell content padding width right (default: 1). |
|
*/ |
|
|
|
/** |
|
* @typedef {Object} table~border |
|
* @property {string} topBody |
|
* @property {string} topJoin |
|
* @property {string} topLeft |
|
* @property {string} topRight |
|
* @property {string} bottomBody |
|
* @property {string} bottomJoin |
|
* @property {string} bottomLeft |
|
* @property {string} bottomRight |
|
* @property {string} bodyLeft |
|
* @property {string} bodyRight |
|
* @property {string} bodyJoin |
|
* @property {string} joinBody |
|
* @property {string} joinLeft |
|
* @property {string} joinRight |
|
* @property {string} joinJoin |
|
*/ |
|
|
|
/** |
|
* Used to tell whether to draw a horizontal line. |
|
* This callback is called for each non-content line of the table. |
|
* The default behavior is to always return true. |
|
* |
|
* @typedef {Function} drawHorizontalLine |
|
* @param {number} index |
|
* @param {number} size |
|
* @returns {boolean} |
|
*/ |
|
|
|
/** |
|
* @typedef {Object} table~config |
|
* @property {table~border} border |
|
* @property {table~columns[]} columns Column specific configuration. |
|
* @property {table~columns} columnDefault Default values for all columns. Column specific settings overwrite the default values. |
|
* @property {table~drawHorizontalLine} drawHorizontalLine |
|
* @property {table~singleLine} singleLine Horizontal lines inside the table are not drawn. |
|
*/ |
|
|
|
/** |
|
* Generates a text table. |
|
* |
|
* @param {table~row[]} data |
|
* @param {table~config} userConfig |
|
* @returns {string} |
|
*/ |
|
const table = (data, userConfig = {}) => { |
|
let rows; |
|
(0, _validateTableData.default)(data); |
|
rows = (0, _stringifyTableData.default)(data); |
|
const config = (0, _makeConfig.default)(rows, userConfig); |
|
rows = (0, _truncateTableData.default)(data, config); |
|
const rowHeightIndex = (0, _calculateRowHeightIndex.default)(rows, config); |
|
rows = (0, _mapDataUsingRowHeightIndex.default)(rows, rowHeightIndex, config); |
|
rows = (0, _alignTableData.default)(rows, config); |
|
rows = (0, _padTableData.default)(rows, config); |
|
const cellWidthIndex = (0, _calculateCellWidthIndex.default)(rows[0]); |
|
return (0, _drawTable.default)(rows, config.border, cellWidthIndex, rowHeightIndex, config.drawHorizontalLine, config.singleLine); |
|
}; |
|
|
|
var _default = table; |
|
exports.default = _default; |
|
//# sourceMappingURL=table.js.map
|