table 6.1.0 → 6.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/alignString.d.ts +6 -0
- package/dist/alignString.js +51 -95
- package/dist/alignTableData.d.ts +3 -0
- package/dist/alignTableData.js +17 -31
- package/dist/calculateCellHeight.d.ts +2 -0
- package/dist/calculateCellHeight.js +14 -35
- package/dist/calculateCellWidthIndex.d.ts +6 -0
- package/dist/calculateCellWidthIndex.js +11 -22
- package/dist/calculateMaximumColumnWidthIndex.d.ts +6 -0
- package/dist/calculateMaximumColumnWidthIndex.js +18 -30
- package/dist/calculateRowHeightIndex.d.ts +6 -0
- package/dist/calculateRowHeightIndex.js +23 -39
- package/dist/createStream.d.ts +3 -0
- package/dist/createStream.js +65 -116
- package/dist/drawBorder.d.ts +25 -0
- package/dist/drawBorder.js +45 -106
- package/dist/drawHorizontalContent.d.ts +11 -0
- package/dist/drawHorizontalContent.js +17 -40
- package/dist/drawRow.d.ts +7 -0
- package/dist/drawRow.js +14 -39
- package/dist/drawTable.d.ts +3 -0
- package/dist/drawTable.js +33 -56
- package/dist/generated/validators.d.ts +13 -0
- package/dist/{validators.js → generated/validators.js} +309 -315
- package/dist/getBorderCharacters.d.ts +3 -0
- package/dist/getBorderCharacters.js +79 -115
- package/dist/{index.js.flow → index.d.ts} +2 -6
- package/dist/index.js +22 -30
- package/dist/makeConfig.d.ts +8 -0
- package/dist/makeConfig.js +42 -84
- package/dist/makeStreamConfig.d.ts +8 -0
- package/dist/makeStreamConfig.js +42 -90
- package/dist/mapDataUsingRowHeightIndex.d.ts +3 -0
- package/dist/mapDataUsingRowHeightIndex.js +23 -38
- package/dist/padTableData.d.ts +3 -0
- package/dist/padTableData.js +7 -20
- package/dist/stringifyTableData.d.ts +3 -0
- package/dist/stringifyTableData.js +5 -19
- package/dist/table.d.ts +3 -0
- package/dist/table.js +25 -119
- package/dist/truncateTableData.d.ts +6 -0
- package/dist/truncateTableData.js +13 -23
- package/dist/types/api.d.ts +100 -0
- package/dist/types/api.js +2 -0
- package/dist/types/internal.d.ts +1 -0
- package/dist/types/internal.js +2 -0
- package/dist/validateConfig.d.ts +3 -0
- package/dist/validateConfig.js +22 -38
- package/dist/validateTableData.d.ts +2 -0
- package/dist/validateTableData.js +23 -49
- package/dist/wrapCell.d.ts +9 -0
- package/dist/wrapCell.js +23 -38
- package/dist/wrapString.d.ts +10 -0
- package/dist/wrapString.js +14 -29
- package/dist/wrapWord.d.ts +2 -0
- package/dist/wrapWord.js +26 -44
- package/package.json +32 -24
- package/dist/alignString.js.flow +0 -97
- package/dist/alignTableData.js.flow +0 -21
- package/dist/calculateCellHeight.js.flow +0 -24
- package/dist/calculateCellWidthIndex.js.flow +0 -17
- package/dist/calculateMaximumColumnWidthIndex.js.flow +0 -27
- package/dist/calculateRowHeightIndex.js.flow +0 -36
- package/dist/createStream.js.flow +0 -125
- package/dist/drawBorder.js.flow +0 -89
- package/dist/drawHorizontalContent.js.flow +0 -31
- package/dist/drawRow.js.flow +0 -29
- package/dist/drawTable.js.flow +0 -64
- package/dist/getBorderCharacters.js.flow +0 -120
- package/dist/makeConfig.js.flow +0 -85
- package/dist/makeStreamConfig.js.flow +0 -92
- package/dist/mapDataUsingRowHeightIndex.js.flow +0 -34
- package/dist/padTableData.js.flow +0 -14
- package/dist/schemas/config.json +0 -26
- package/dist/schemas/shared.json +0 -98
- package/dist/schemas/streamConfig.json +0 -23
- package/dist/stringifyTableData.js.flow +0 -11
- package/dist/table.js.flow +0 -108
- package/dist/truncateTableData.js.flow +0 -17
- package/dist/validateConfig.js.flow +0 -27
- package/dist/validateTableData.js.flow +0 -44
- package/dist/wrapCell.js.flow +0 -35
- package/dist/wrapString.js.flow +0 -29
- package/dist/wrapWord.js.flow +0 -39
package/README.md
CHANGED
package/dist/alignString.js
CHANGED
|
@@ -1,107 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _isString = _interopRequireDefault(require("is-string"));
|
|
11
|
-
|
|
12
|
-
var _stringWidth = _interopRequireDefault(require("string-width"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
const alignments = ['left', 'right', 'center'];
|
|
17
|
-
/**
|
|
18
|
-
* @param {string} subject
|
|
19
|
-
* @param {number} width
|
|
20
|
-
* @returns {string}
|
|
21
|
-
*/
|
|
22
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const is_number_object_1 = __importDefault(require("is-number-object"));
|
|
7
|
+
const is_string_1 = __importDefault(require("is-string"));
|
|
8
|
+
const string_width_1 = __importDefault(require("string-width"));
|
|
23
9
|
const alignLeft = (subject, width) => {
|
|
24
|
-
|
|
10
|
+
return subject + ' '.repeat(width);
|
|
25
11
|
};
|
|
26
|
-
/**
|
|
27
|
-
* @param {string} subject
|
|
28
|
-
* @param {number} width
|
|
29
|
-
* @returns {string}
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
12
|
const alignRight = (subject, width) => {
|
|
34
|
-
|
|
13
|
+
return ' '.repeat(width) + subject;
|
|
35
14
|
};
|
|
36
|
-
/**
|
|
37
|
-
* @param {string} subject
|
|
38
|
-
* @param {number} width
|
|
39
|
-
* @returns {string}
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
15
|
const alignCenter = (subject, width) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
16
|
+
let halfWidth;
|
|
17
|
+
halfWidth = width / 2;
|
|
18
|
+
if (width % 2 === 0) {
|
|
19
|
+
return ' '.repeat(halfWidth) + subject + ' '.repeat(halfWidth);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
halfWidth = Math.floor(halfWidth);
|
|
23
|
+
return ' '.repeat(halfWidth) + subject + ' '.repeat(halfWidth + 1);
|
|
24
|
+
}
|
|
53
25
|
};
|
|
26
|
+
const alignments = [
|
|
27
|
+
'left',
|
|
28
|
+
'right',
|
|
29
|
+
'center',
|
|
30
|
+
];
|
|
54
31
|
/**
|
|
55
32
|
* Pads a string to the left and/or right to position the subject
|
|
56
33
|
* text in a desired alignment within a container.
|
|
57
|
-
*
|
|
58
|
-
* @param {string} subject
|
|
59
|
-
* @param {number} containerWidth
|
|
60
|
-
* @param {string} alignment One of the valid options (left, right, center).
|
|
61
|
-
* @returns {string}
|
|
62
34
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const availableWidth = containerWidth - subjectWidth;
|
|
94
|
-
|
|
95
|
-
if (alignment === 'left') {
|
|
96
|
-
return alignLeft(subject, availableWidth);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (alignment === 'right') {
|
|
100
|
-
return alignRight(subject, availableWidth);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return alignCenter(subject, availableWidth);
|
|
35
|
+
exports.default = (subject, containerWidth, alignment) => {
|
|
36
|
+
if (!is_string_1.default(subject)) {
|
|
37
|
+
throw new TypeError('Subject parameter value must be a string.');
|
|
38
|
+
}
|
|
39
|
+
if (!is_number_object_1.default(containerWidth)) {
|
|
40
|
+
throw new TypeError('Container width parameter value must be a number.');
|
|
41
|
+
}
|
|
42
|
+
const subjectWidth = string_width_1.default(subject);
|
|
43
|
+
if (subjectWidth > containerWidth) {
|
|
44
|
+
throw new Error('Subject parameter value width cannot be greater than the container width.');
|
|
45
|
+
}
|
|
46
|
+
if (!is_string_1.default(alignment)) {
|
|
47
|
+
throw new TypeError('Alignment parameter value must be a string.');
|
|
48
|
+
}
|
|
49
|
+
if (!alignments.includes(alignment)) {
|
|
50
|
+
throw new Error('Alignment parameter value must be a known alignment parameter value (left, right, center).');
|
|
51
|
+
}
|
|
52
|
+
if (subjectWidth === 0) {
|
|
53
|
+
return ' '.repeat(containerWidth);
|
|
54
|
+
}
|
|
55
|
+
const availableWidth = containerWidth - subjectWidth;
|
|
56
|
+
if (alignment === 'left') {
|
|
57
|
+
return alignLeft(subject, availableWidth);
|
|
58
|
+
}
|
|
59
|
+
if (alignment === 'right') {
|
|
60
|
+
return alignRight(subject, availableWidth);
|
|
61
|
+
}
|
|
62
|
+
return alignCenter(subject, availableWidth);
|
|
104
63
|
};
|
|
105
|
-
|
|
106
|
-
var _default = alignString;
|
|
107
|
-
exports.default = _default;
|
package/dist/alignTableData.js
CHANGED
|
@@ -1,34 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const alignTableData = (rows, config) => {
|
|
20
|
-
return rows.map(cells => {
|
|
21
|
-
return cells.map((value, index1) => {
|
|
22
|
-
const column = config.columns[index1];
|
|
23
|
-
|
|
24
|
-
if ((0, _stringWidth.default)(value) === column.width) {
|
|
25
|
-
return value;
|
|
26
|
-
} else {
|
|
27
|
-
return (0, _alignString.default)(value, column.width, column.alignment);
|
|
28
|
-
}
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const string_width_1 = __importDefault(require("string-width"));
|
|
7
|
+
const alignString_1 = __importDefault(require("./alignString"));
|
|
8
|
+
exports.default = (rows, config) => {
|
|
9
|
+
return rows.map((row) => {
|
|
10
|
+
return row.map((cell, index) => {
|
|
11
|
+
const column = config.columns[index];
|
|
12
|
+
if (string_width_1.default(cell) === column.width) {
|
|
13
|
+
return cell;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return alignString_1.default(cell, column.width, column.alignment);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
29
19
|
});
|
|
30
|
-
});
|
|
31
20
|
};
|
|
32
|
-
|
|
33
|
-
var _default = alignTableData;
|
|
34
|
-
exports.default = _default;
|
|
@@ -1,37 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* @param {number} columnWidth
|
|
17
|
-
* @param {boolean} useWrapWord
|
|
18
|
-
* @returns {number}
|
|
19
|
-
*/
|
|
20
|
-
const calculateCellHeight = (value, columnWidth, useWrapWord = false) => {
|
|
21
|
-
if (!(0, _isString.default)(value)) {
|
|
22
|
-
throw new TypeError('Value must be a string.');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (!Number.isInteger(columnWidth)) {
|
|
26
|
-
throw new TypeError('Column width must be an integer.');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (columnWidth < 1) {
|
|
30
|
-
throw new Error('Column width must be greater than 0.');
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return (0, _wrapCell.default)(value, columnWidth, useWrapWord).length;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const is_string_1 = __importDefault(require("is-string"));
|
|
7
|
+
const wrapCell_1 = __importDefault(require("./wrapCell"));
|
|
8
|
+
exports.default = (value, columnWidth, useWrapWord = false) => {
|
|
9
|
+
if (!is_string_1.default(value)) {
|
|
10
|
+
throw new TypeError('Value must be a string.');
|
|
11
|
+
}
|
|
12
|
+
if (!Number.isInteger(columnWidth) || columnWidth < 1) {
|
|
13
|
+
throw new TypeError('Column width must be an integer greater than 0.');
|
|
14
|
+
}
|
|
15
|
+
return wrapCell_1.default(value, columnWidth, useWrapWord).length;
|
|
34
16
|
};
|
|
35
|
-
|
|
36
|
-
var _default = calculateCellHeight;
|
|
37
|
-
exports.default = _default;
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _stringWidth = _interopRequireDefault(require("string-width"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const string_width_1 = __importDefault(require("string-width"));
|
|
12
7
|
/**
|
|
13
8
|
* Calculates width of each cell contents.
|
|
14
|
-
*
|
|
15
|
-
* @param {string[]} cells
|
|
16
|
-
* @returns {number[]}
|
|
17
9
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
exports.default = (cells) => {
|
|
11
|
+
return cells.map((value) => {
|
|
12
|
+
return Math.max(...value.split('\n').map((line) => {
|
|
13
|
+
return string_width_1.default(line);
|
|
14
|
+
}));
|
|
15
|
+
});
|
|
24
16
|
};
|
|
25
|
-
|
|
26
|
-
var _default = calculateCellWidthIndex;
|
|
27
|
-
exports.default = _default;
|
|
@@ -1,36 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _calculateCellWidthIndex = _interopRequireDefault(require("./calculateCellWidthIndex"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const calculateCellWidthIndex_1 = __importDefault(require("./calculateCellWidthIndex"));
|
|
12
7
|
/**
|
|
13
8
|
* Produces an array of values that describe the largest value length (width) in every column.
|
|
14
|
-
*
|
|
15
|
-
* @param {Array[]} rows
|
|
16
|
-
* @returns {number[]}
|
|
17
9
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
10
|
+
exports.default = (rows) => {
|
|
11
|
+
if (!rows[0]) {
|
|
12
|
+
throw new Error('Dataset must have at least one row.');
|
|
13
|
+
}
|
|
14
|
+
const columns = new Array(rows[0].length).fill(0);
|
|
15
|
+
rows.forEach((row) => {
|
|
16
|
+
const columnWidthIndex = calculateCellWidthIndex_1.default(row);
|
|
17
|
+
columnWidthIndex.forEach((valueWidth, index0) => {
|
|
18
|
+
if (columns[index0] < valueWidth) {
|
|
19
|
+
columns[index0] = valueWidth;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
30
22
|
});
|
|
31
|
-
|
|
32
|
-
return columns;
|
|
23
|
+
return columns;
|
|
33
24
|
};
|
|
34
|
-
|
|
35
|
-
var _default = calculateMaximumColumnWidthIndex;
|
|
36
|
-
exports.default = _default;
|
|
@@ -1,45 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _isNumberObject = _interopRequireDefault(require("is-number-object"));
|
|
11
|
-
|
|
12
|
-
var _calculateCellHeight = _interopRequireDefault(require("./calculateCellHeight"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const is_boolean_object_1 = __importDefault(require("is-boolean-object"));
|
|
7
|
+
const is_number_object_1 = __importDefault(require("is-number-object"));
|
|
8
|
+
const calculateCellHeight_1 = __importDefault(require("./calculateCellHeight"));
|
|
16
9
|
/**
|
|
17
10
|
* Calculates the vertical row span index.
|
|
18
|
-
*
|
|
19
|
-
* @param {Array[]} rows
|
|
20
|
-
* @param {object} config
|
|
21
|
-
* @returns {number[]}
|
|
22
11
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
12
|
+
exports.default = (rows, config) => {
|
|
13
|
+
const tableWidth = rows[0].length;
|
|
14
|
+
const rowSpanIndex = [];
|
|
15
|
+
rows.forEach((cells) => {
|
|
16
|
+
const cellHeightIndex = new Array(tableWidth).fill(1);
|
|
17
|
+
cells.forEach((value, index1) => {
|
|
18
|
+
if (!is_number_object_1.default(config.columns[index1].width)) {
|
|
19
|
+
throw new TypeError('column[index].width must be a number.');
|
|
20
|
+
}
|
|
21
|
+
if (!is_boolean_object_1.default(config.columns[index1].wrapWord)) {
|
|
22
|
+
throw new TypeError('column[index].wrapWord must be a boolean.');
|
|
23
|
+
}
|
|
24
|
+
cellHeightIndex[index1] = calculateCellHeight_1.default(value, config.columns[index1].width, config.columns[index1].wrapWord);
|
|
25
|
+
});
|
|
26
|
+
rowSpanIndex.push(Math.max(...cellHeightIndex));
|
|
38
27
|
});
|
|
39
|
-
rowSpanIndex
|
|
40
|
-
});
|
|
41
|
-
return rowSpanIndex;
|
|
28
|
+
return rowSpanIndex;
|
|
42
29
|
};
|
|
43
|
-
|
|
44
|
-
var _default = calculateRowHeightIndex;
|
|
45
|
-
exports.default = _default;
|