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
2.3 KiB
110 lines
2.3 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.drawBorderTop = exports.drawBorderJoin = exports.drawBorderBottom = exports.drawBorder = void 0; |
|
|
|
/** |
|
* @typedef drawBorder~parts |
|
* @property {string} left |
|
* @property {string} right |
|
* @property {string} body |
|
* @property {string} join |
|
*/ |
|
|
|
/** |
|
* @param {number[]} columnSizeIndex |
|
* @param {drawBorder~parts} parts |
|
* @returns {string} |
|
*/ |
|
const drawBorder = (columnSizeIndex, parts) => { |
|
const columns = columnSizeIndex.map(size => { |
|
return parts.body.repeat(size); |
|
}).join(parts.join); |
|
return parts.left + columns + parts.right + '\n'; |
|
}; |
|
/** |
|
* @typedef drawBorderTop~parts |
|
* @property {string} topLeft |
|
* @property {string} topRight |
|
* @property {string} topBody |
|
* @property {string} topJoin |
|
*/ |
|
|
|
/** |
|
* @param {number[]} columnSizeIndex |
|
* @param {drawBorderTop~parts} parts |
|
* @returns {string} |
|
*/ |
|
|
|
|
|
exports.drawBorder = drawBorder; |
|
|
|
const drawBorderTop = (columnSizeIndex, parts) => { |
|
const border = drawBorder(columnSizeIndex, { |
|
body: parts.topBody, |
|
join: parts.topJoin, |
|
left: parts.topLeft, |
|
right: parts.topRight |
|
}); |
|
|
|
if (border === '\n') { |
|
return ''; |
|
} |
|
|
|
return border; |
|
}; |
|
/** |
|
* @typedef drawBorderJoin~parts |
|
* @property {string} joinLeft |
|
* @property {string} joinRight |
|
* @property {string} joinBody |
|
* @property {string} joinJoin |
|
*/ |
|
|
|
/** |
|
* @param {number[]} columnSizeIndex |
|
* @param {drawBorderJoin~parts} parts |
|
* @returns {string} |
|
*/ |
|
|
|
|
|
exports.drawBorderTop = drawBorderTop; |
|
|
|
const drawBorderJoin = (columnSizeIndex, parts) => { |
|
return drawBorder(columnSizeIndex, { |
|
body: parts.joinBody, |
|
join: parts.joinJoin, |
|
left: parts.joinLeft, |
|
right: parts.joinRight |
|
}); |
|
}; |
|
/** |
|
* @typedef drawBorderBottom~parts |
|
* @property {string} topLeft |
|
* @property {string} topRight |
|
* @property {string} topBody |
|
* @property {string} topJoin |
|
*/ |
|
|
|
/** |
|
* @param {number[]} columnSizeIndex |
|
* @param {drawBorderBottom~parts} parts |
|
* @returns {string} |
|
*/ |
|
|
|
|
|
exports.drawBorderJoin = drawBorderJoin; |
|
|
|
const drawBorderBottom = (columnSizeIndex, parts) => { |
|
return drawBorder(columnSizeIndex, { |
|
body: parts.bottomBody, |
|
join: parts.bottomJoin, |
|
left: parts.bottomLeft, |
|
right: parts.bottomRight |
|
}); |
|
}; |
|
|
|
exports.drawBorderBottom = drawBorderBottom; |
|
//# sourceMappingURL=drawBorder.js.map
|