react-markdown-table-ts 0.3.1 → 0.3.4
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/dist/index.cjs.js +140 -82
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +140 -82
- package/dist/index.esm.js.map +1 -1
- package/dist/src/index.d.ts +1 -15
- package/dist/src/types.d.ts +0 -6
- package/dist/src/utils.d.ts +19 -9
- package/dist/src/validation.d.ts +6 -0
- package/package.json +1 -1
- package/dist/errors.d.ts +0 -6
- package/dist/errors.js +0 -31
- package/dist/errors.js.map +0 -1
- package/dist/helpers.d.ts +0 -34
- package/dist/helpers.js +0 -93
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -19
- package/dist/src/errors.d.ts +0 -6
- package/dist/src/errors.js +0 -31
- package/dist/src/errors.js.map +0 -1
- package/dist/src/helpers.d.ts +0 -34
- package/dist/src/helpers.js +0 -93
- package/dist/src/helpers.js.map +0 -1
- package/dist/src/index.js +0 -201
- package/dist/src/index.js.map +0 -1
- package/dist/src/types.js +0 -3
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.js +0 -142
- package/dist/src/utils.js.map +0 -1
- package/dist/src/validation.js +0 -65
- package/dist/src/validation.js.map +0 -1
- package/dist/test/MarkdownTable.test.js +0 -91
- package/dist/test/MarkdownTable.test.js.map +0 -1
- package/dist/test/helpers.test.d.ts +0 -1
- package/dist/test/helpers.test.js +0 -99
- package/dist/test/helpers.test.js.map +0 -1
- package/dist/test/jest.setup.js +0 -3
- package/dist/test/jest.setup.js.map +0 -1
- package/dist/test/utils.test.js +0 -191
- package/dist/test/utils.test.js.map +0 -1
- package/dist/test/validation.test.js +0 -87
- package/dist/test/validation.test.js.map +0 -1
- package/dist/types.d.ts +0 -62
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -44
- package/dist/utils.js +0 -142
- package/dist/utils.js.map +0 -1
- package/dist/validation.d.ts +0 -7
- package/dist/validation.js +0 -65
- package/dist/validation.js.map +0 -1
@@ -1,99 +0,0 @@
|
|
1
|
-
import { calculateColumnWidths, formatMarkdownRow, formatAlignmentRow, } from '../src/helpers';
|
2
|
-
describe('calculateColumnWidths', function () {
|
3
|
-
it('calculates correct column widths for simple data', function () {
|
4
|
-
var data = [
|
5
|
-
['Header 1', 'Header 2', 'Header 3'],
|
6
|
-
['Short', 'Medium length', 'Longest content here'],
|
7
|
-
['A', 'B', 'C'],
|
8
|
-
];
|
9
|
-
var result = calculateColumnWidths({ allRows: data, maxColumnCount: 3 });
|
10
|
-
expect(result).toEqual([8, 13, 20]);
|
11
|
-
});
|
12
|
-
it('handles empty cells', function () {
|
13
|
-
var data = [
|
14
|
-
['Header 1', '', 'Header 3'],
|
15
|
-
['Content', 'Medium', ''],
|
16
|
-
];
|
17
|
-
var result = calculateColumnWidths({ allRows: data, maxColumnCount: 3 });
|
18
|
-
expect(result).toEqual([8, 6, 8]);
|
19
|
-
});
|
20
|
-
it('uses minimum width of 3 for empty columns', function () {
|
21
|
-
var data = [
|
22
|
-
['', '', ''],
|
23
|
-
['A', '', 'C'],
|
24
|
-
];
|
25
|
-
var result = calculateColumnWidths({ allRows: data, maxColumnCount: 3 });
|
26
|
-
expect(result).toEqual([3, 3, 3]);
|
27
|
-
});
|
28
|
-
});
|
29
|
-
describe('formatMarkdownRow', function () {
|
30
|
-
it('formats a simple row correctly', function () {
|
31
|
-
var row = ['Column 1', 'Column 2', 'Column 3'];
|
32
|
-
var result = formatMarkdownRow({ columnCount: 3, row: row });
|
33
|
-
expect(result).toBe('| Column 1 | Column 2 | Column 3 |');
|
34
|
-
});
|
35
|
-
it('applies column widths correctly', function () {
|
36
|
-
var row = ['Short', 'Medium', 'Long'];
|
37
|
-
var columnWidths = [10, 10, 10];
|
38
|
-
var result = formatMarkdownRow({ columnCount: 3, row: row, columnWidths: columnWidths });
|
39
|
-
expect(result).toBe('| Short | Medium | Long |');
|
40
|
-
});
|
41
|
-
it('applies alignments correctly', function () {
|
42
|
-
var row = ['Left', 'Center', 'Right'];
|
43
|
-
var columnWidths = [10, 10, 10];
|
44
|
-
var columnAlignments = [
|
45
|
-
'left',
|
46
|
-
'center',
|
47
|
-
'right',
|
48
|
-
];
|
49
|
-
var result = formatMarkdownRow({
|
50
|
-
columnCount: 3,
|
51
|
-
row: row,
|
52
|
-
columnWidths: columnWidths,
|
53
|
-
columnAlignments: columnAlignments,
|
54
|
-
});
|
55
|
-
expect(result).toBe('| Left | Center | Right |');
|
56
|
-
});
|
57
|
-
it('handles empty cells', function () {
|
58
|
-
var row = ['Content', '', 'More'];
|
59
|
-
var result = formatMarkdownRow({ columnCount: 3, row: row });
|
60
|
-
expect(result).toBe('| Content | | More |');
|
61
|
-
});
|
62
|
-
});
|
63
|
-
describe('formatAlignmentRow', function () {
|
64
|
-
it('generates default left alignment for all columns', function () {
|
65
|
-
var result = formatAlignmentRow({ columnCount: 3 });
|
66
|
-
expect(result).toBe('| :-- | :-- | :-- |');
|
67
|
-
});
|
68
|
-
it('applies custom alignments correctly', function () {
|
69
|
-
var columnAlignments = [
|
70
|
-
'left',
|
71
|
-
'center',
|
72
|
-
'right',
|
73
|
-
];
|
74
|
-
var result = formatAlignmentRow({ columnCount: 3, columnAlignments: columnAlignments });
|
75
|
-
expect(result).toBe('| :-- | :-: | --: |');
|
76
|
-
});
|
77
|
-
it('handles custom widths', function () {
|
78
|
-
var columnWidths = [5, 10, 15];
|
79
|
-
var columnAlignments = [
|
80
|
-
'left',
|
81
|
-
'center',
|
82
|
-
'right',
|
83
|
-
];
|
84
|
-
var result = formatAlignmentRow({
|
85
|
-
columnCount: 3,
|
86
|
-
columnAlignments: columnAlignments,
|
87
|
-
columnWidths: columnWidths,
|
88
|
-
});
|
89
|
-
expect(result).toBe('| :---- | :--------: | --------------: |');
|
90
|
-
});
|
91
|
-
it('uses default alignment when not enough alignments are provided', function () {
|
92
|
-
var columnAlignments = [
|
93
|
-
'center',
|
94
|
-
];
|
95
|
-
var result = formatAlignmentRow({ columnCount: 3, columnAlignments: columnAlignments });
|
96
|
-
expect(result).toBe('| :-: | :-- | :-- |');
|
97
|
-
});
|
98
|
-
});
|
99
|
-
//# sourceMappingURL=helpers.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../test/helpers.test.ts"],"names":[],"mappings":"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"}
|
package/dist/test/jest.setup.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"jest.setup.js","sourceRoot":"","sources":["../../test/jest.setup.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC"}
|
package/dist/test/utils.test.js
DELETED
@@ -1,191 +0,0 @@
|
|
1
|
-
import { calculateColumnWidths, formatMarkdownRow, formatAlignmentRow, generateMarkdownTableString, replaceNewlinesInCell, } from '../src/utils';
|
2
|
-
describe('calculateColumnWidths', function () {
|
3
|
-
it('calculates correct column widths for simple data', function () {
|
4
|
-
var inputData = [
|
5
|
-
['Header 1', 'Header 2', 'Header 3'],
|
6
|
-
['Short', 'Medium length', 'Longest content here'],
|
7
|
-
['A', 'B', 'C'],
|
8
|
-
];
|
9
|
-
var result = calculateColumnWidths(inputData, 3);
|
10
|
-
expect(result).toEqual([8, 13, 20]);
|
11
|
-
});
|
12
|
-
it('handles empty cells', function () {
|
13
|
-
var inputData = [
|
14
|
-
['Header 1', '', 'Header 3'],
|
15
|
-
['Content', 'Medium', ''],
|
16
|
-
];
|
17
|
-
var result = calculateColumnWidths(inputData, 3);
|
18
|
-
expect(result).toEqual([8, 6, 8]);
|
19
|
-
});
|
20
|
-
it('uses minimum width of 3 for empty columns', function () {
|
21
|
-
var inputData = [
|
22
|
-
['', '', ''],
|
23
|
-
['A', '', 'C'],
|
24
|
-
];
|
25
|
-
var result = calculateColumnWidths(inputData, 3);
|
26
|
-
expect(result).toEqual([3, 3, 3]);
|
27
|
-
});
|
28
|
-
it('handles varying number of columns', function () {
|
29
|
-
var inputData = [
|
30
|
-
['Header 1', 'Header 2'],
|
31
|
-
['Content 1', 'Content 2', 'Extra Content'],
|
32
|
-
['A', 'B', 'C', 'D'],
|
33
|
-
];
|
34
|
-
var result = calculateColumnWidths(inputData, 4);
|
35
|
-
expect(result).toEqual([9, 9, 13, 3]);
|
36
|
-
});
|
37
|
-
});
|
38
|
-
describe('formatMarkdownRow', function () {
|
39
|
-
it('formats a simple row correctly with default alignments and widths', function () {
|
40
|
-
var tableRow = ['Column 1', 'Column 2', 'Column 3'];
|
41
|
-
var result = formatMarkdownRow(3, tableRow, []);
|
42
|
-
expect(result).toBe('| Column 1 | Column 2 | Column 3 |');
|
43
|
-
});
|
44
|
-
it('applies column widths correctly', function () {
|
45
|
-
var tableRow = ['Short', 'Medium', 'Long'];
|
46
|
-
var columnWidths = [10, 10, 10];
|
47
|
-
var result = formatMarkdownRow(3, tableRow, [], columnWidths);
|
48
|
-
expect(result).toBe('| Short | Medium | Long |');
|
49
|
-
});
|
50
|
-
it('applies alignments correctly', function () {
|
51
|
-
var tableRow = ['Left', 'Center', 'Right'];
|
52
|
-
var columnWidths = [10, 10, 10];
|
53
|
-
var columnAlignments = ['left', 'center', 'right'];
|
54
|
-
var result = formatMarkdownRow(3, tableRow, columnAlignments, columnWidths);
|
55
|
-
expect(result).toBe('| Left | Center | Right |');
|
56
|
-
});
|
57
|
-
it('handles empty cells', function () {
|
58
|
-
var tableRow = ['Content', '', 'More'];
|
59
|
-
var result = formatMarkdownRow(3, tableRow, []);
|
60
|
-
expect(result).toBe('| Content | | More |');
|
61
|
-
});
|
62
|
-
it('replaces newlines with <br> tags when specified', function () {
|
63
|
-
var tableRow = ['Line1\nLine2', 'SingleLine', 'Another\nLine'];
|
64
|
-
var columnWidths = [12, 10, 12];
|
65
|
-
var columnAlignments = ['left', 'center', 'right'];
|
66
|
-
var result = formatMarkdownRow(3, tableRow, columnAlignments, columnWidths, false, true);
|
67
|
-
expect(result).toBe('| Line1<br>Line2 | SingleLine | Another<br>Line |');
|
68
|
-
});
|
69
|
-
it('uses tabs between columns when useTabs is true', function () {
|
70
|
-
var tableRow = ['Tab1', 'Tab2', 'Tab3'];
|
71
|
-
var columnWidths = [5, 5, 5];
|
72
|
-
var columnAlignments = ['left', 'center', 'right'];
|
73
|
-
var result = formatMarkdownRow(3, tableRow, columnAlignments, columnWidths, true);
|
74
|
-
// Use a regular expression to match the pattern, allowing for flexible whitespace
|
75
|
-
expect(result).toMatch(/^\|\s*Tab1\s*\|\s*Tab2\s*\|\s*Tab3\s*\|$/);
|
76
|
-
});
|
77
|
-
});
|
78
|
-
describe('formatAlignmentRow', function () {
|
79
|
-
it('generates default left alignment for all columns with default widths', function () {
|
80
|
-
var result = formatAlignmentRow(3, []);
|
81
|
-
expect(result).toBe('| :-- | :-- | :-- |');
|
82
|
-
});
|
83
|
-
it('applies custom alignments correctly', function () {
|
84
|
-
var columnAlignments = ['left', 'center', 'right'];
|
85
|
-
var columnWidths = [10, 10, 10];
|
86
|
-
var result = formatAlignmentRow(3, columnAlignments, columnWidths);
|
87
|
-
expect(result).toBe('| :--------- | :--------: | ---------: |');
|
88
|
-
});
|
89
|
-
it('handles custom widths', function () {
|
90
|
-
var columnWidths = [5, 10, 5];
|
91
|
-
var columnAlignments = ['left', 'center', 'right'];
|
92
|
-
var result = formatAlignmentRow(3, columnAlignments, columnWidths);
|
93
|
-
expect(result).toBe('| :---- | :--------: | ----: |');
|
94
|
-
});
|
95
|
-
it('uses default alignment when not enough alignments are provided', function () {
|
96
|
-
var columnAlignments = ['center'];
|
97
|
-
var result = formatAlignmentRow(3, columnAlignments);
|
98
|
-
expect(result).toBe('| :-: | :-- | :-- |');
|
99
|
-
});
|
100
|
-
it('uses "none" alignment correctly', function () {
|
101
|
-
var columnAlignments = ['none', 'left', 'right'];
|
102
|
-
var columnWidths = [5, 10, 5];
|
103
|
-
var result = formatAlignmentRow(3, columnAlignments, columnWidths);
|
104
|
-
expect(result).toBe('| ----- | :--------- | ----: |');
|
105
|
-
});
|
106
|
-
});
|
107
|
-
describe('generateMarkdownTableString', function () {
|
108
|
-
it('should generate a complete Markdown table string with default settings', function () {
|
109
|
-
var inputData = {
|
110
|
-
inputDataHeader: ['Name', 'Age', 'City'],
|
111
|
-
inputDataBody: [
|
112
|
-
['Alice', '30', 'New York'],
|
113
|
-
['Bob', '25', 'Los Angeles'],
|
114
|
-
],
|
115
|
-
};
|
116
|
-
var columnAlignments = ['left', 'center', 'right'];
|
117
|
-
var result = generateMarkdownTableString(inputData, columnAlignments);
|
118
|
-
var expected = "| Name | Age | City |\n| :---- | :-: | ----------: |\n| Alice | 30 | New York |\n| Bob | 25 | Los Angeles |";
|
119
|
-
expect(result).toBe(expected);
|
120
|
-
});
|
121
|
-
it('should adjust column widths based on content when adjustColumnWidths is true', function () {
|
122
|
-
var inputData = {
|
123
|
-
inputDataHeader: ['Header', 'Another Header', 'Short'],
|
124
|
-
inputDataBody: [
|
125
|
-
['Longer Content', 'Mid', 'S'],
|
126
|
-
['A', 'B', 'C'],
|
127
|
-
],
|
128
|
-
};
|
129
|
-
var columnAlignments = ['left', 'center', 'right'];
|
130
|
-
var result = generateMarkdownTableString(inputData, columnAlignments);
|
131
|
-
var expected = "| Header | Another Header | Short |\n| :------------- | :------------: | ----: |\n| Longer Content | Mid | S |\n| A | B | C |";
|
132
|
-
expect(result).toBe(expected);
|
133
|
-
});
|
134
|
-
it('should use tabs between columns when useTabs is true', function () {
|
135
|
-
var inputData = {
|
136
|
-
inputDataHeader: ['Name', 'Age', 'City'],
|
137
|
-
inputDataBody: [
|
138
|
-
['Alice', '30', 'New York'],
|
139
|
-
['Bob', '25', 'Los Angeles'],
|
140
|
-
],
|
141
|
-
};
|
142
|
-
var columnAlignments = ['left', 'center', 'right'];
|
143
|
-
var result = generateMarkdownTableString(inputData, columnAlignments, true, true, false);
|
144
|
-
var expected = "\n| Name | Age | City |\n| :---- | :-: | ----------: |\n| Alice | 30 | New York |\n| Bob | 25 | Los Angeles |\n "
|
145
|
-
.trim()
|
146
|
-
.replace(/\s+/g, ' ');
|
147
|
-
expect(result.replace(/\s+/g, ' ')).toBe(expected);
|
148
|
-
});
|
149
|
-
it('should handle tables with varying number of columns', function () {
|
150
|
-
var inputData = {
|
151
|
-
inputDataHeader: ['Name', 'Age'],
|
152
|
-
inputDataBody: [
|
153
|
-
['Alice', '30', 'Engineer'],
|
154
|
-
['Bob', '25'],
|
155
|
-
['Charlie', '35', 'Teacher', 'Extra Column'],
|
156
|
-
],
|
157
|
-
};
|
158
|
-
var columnAlignments = [
|
159
|
-
'left',
|
160
|
-
'center',
|
161
|
-
'right',
|
162
|
-
'none',
|
163
|
-
];
|
164
|
-
var result = generateMarkdownTableString(inputData, columnAlignments);
|
165
|
-
var expected = "| Name | Age | | |\n| :------ | :-: | -------: | ------------ |\n| Alice | 30 | Engineer | |\n| Bob | 25 | | |\n| Charlie | 35 | Teacher | Extra Column |";
|
166
|
-
expect(result).toBe(expected);
|
167
|
-
});
|
168
|
-
});
|
169
|
-
describe('replaceNewlinesInCell', function () {
|
170
|
-
it('replaces newline characters with <br> tags', function () {
|
171
|
-
var tableCell = 'Line1\nLine2\nLine3';
|
172
|
-
var result = replaceNewlinesInCell(tableCell);
|
173
|
-
expect(result).toBe('Line1<br>Line2<br>Line3');
|
174
|
-
});
|
175
|
-
it('returns the original string if there are no newline characters', function () {
|
176
|
-
var tableCell = 'No newlines here';
|
177
|
-
var result = replaceNewlinesInCell(tableCell);
|
178
|
-
expect(result).toBe('No newlines here');
|
179
|
-
});
|
180
|
-
it('handles empty string', function () {
|
181
|
-
var tableCell = '';
|
182
|
-
var result = replaceNewlinesInCell(tableCell);
|
183
|
-
expect(result).toBe('');
|
184
|
-
});
|
185
|
-
it('handles strings with only newline characters', function () {
|
186
|
-
var tableCell = '\n\n';
|
187
|
-
var result = replaceNewlinesInCell(tableCell);
|
188
|
-
expect(result).toBe('<br><br>');
|
189
|
-
});
|
190
|
-
});
|
191
|
-
//# sourceMappingURL=utils.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../test/utils.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,87 +0,0 @@
|
|
1
|
-
import { validateMarkdownTableProps } from '../src/validation';
|
2
|
-
import { MarkdownTableError } from '../src/errors';
|
3
|
-
describe('validateMarkdownTableProps', function () {
|
4
|
-
var validData = [
|
5
|
-
['Header 1', 'Header 2', 'Header 3'],
|
6
|
-
['Row 1, Col 1', 'Row 1, Col 2', 'Row 1, Col 3'],
|
7
|
-
['Row 2, Col 1', 'Row 2, Col 2', 'Row 2, Col 3'],
|
8
|
-
];
|
9
|
-
it('validates correct props without throwing', function () {
|
10
|
-
expect(function () {
|
11
|
-
return validateMarkdownTableProps({ inputData: validData });
|
12
|
-
}).not.toThrow();
|
13
|
-
});
|
14
|
-
it('throws error for empty data', function () {
|
15
|
-
expect(function () { return validateMarkdownTableProps({ inputData: [] }); }).toThrow(MarkdownTableError);
|
16
|
-
});
|
17
|
-
it('throws error for invalid data type', function () {
|
18
|
-
expect(function () {
|
19
|
-
return validateMarkdownTableProps({
|
20
|
-
inputData: 'not an array',
|
21
|
-
});
|
22
|
-
}).toThrow(MarkdownTableError);
|
23
|
-
});
|
24
|
-
it('throws error for invalid header when hasHeader is true', function () {
|
25
|
-
var invalidData = [[], ['Row 1']];
|
26
|
-
expect(function () {
|
27
|
-
return validateMarkdownTableProps({ inputData: invalidData, hasHeader: true });
|
28
|
-
}).toThrow(MarkdownTableError);
|
29
|
-
});
|
30
|
-
it('throws error for non-string cell in header', function () {
|
31
|
-
var invalidData = [
|
32
|
-
[1, 'Header 2', 'Header 3'],
|
33
|
-
['Row 1'],
|
34
|
-
];
|
35
|
-
expect(function () {
|
36
|
-
return validateMarkdownTableProps({
|
37
|
-
inputData: invalidData,
|
38
|
-
});
|
39
|
-
}).toThrow(MarkdownTableError);
|
40
|
-
});
|
41
|
-
it('throws error for non-string cell in body', function () {
|
42
|
-
var invalidData = [
|
43
|
-
['Header 1', 'Header 2'],
|
44
|
-
['Row 1', 2],
|
45
|
-
];
|
46
|
-
expect(function () {
|
47
|
-
return validateMarkdownTableProps({
|
48
|
-
inputData: invalidData,
|
49
|
-
});
|
50
|
-
}).toThrow(MarkdownTableError);
|
51
|
-
});
|
52
|
-
it('throws error for invalid column alignment', function () {
|
53
|
-
var props = {
|
54
|
-
inputData: validData,
|
55
|
-
columnAlignments: [
|
56
|
-
'left',
|
57
|
-
'invalid',
|
58
|
-
],
|
59
|
-
};
|
60
|
-
expect(function () { return validateMarkdownTableProps(props); }).toThrow(MarkdownTableError);
|
61
|
-
});
|
62
|
-
it('throws error for invalid isCompact prop', function () {
|
63
|
-
expect(function () {
|
64
|
-
return validateMarkdownTableProps({
|
65
|
-
inputData: validData,
|
66
|
-
isCompact: 'true',
|
67
|
-
});
|
68
|
-
}).toThrow(MarkdownTableError);
|
69
|
-
});
|
70
|
-
it('throws error for invalid hasTabs prop', function () {
|
71
|
-
expect(function () {
|
72
|
-
return validateMarkdownTableProps({
|
73
|
-
inputData: validData,
|
74
|
-
hasTabs: 'true',
|
75
|
-
});
|
76
|
-
}).toThrow(MarkdownTableError);
|
77
|
-
});
|
78
|
-
it('throws error for invalid canReplaceNewlines prop', function () {
|
79
|
-
expect(function () {
|
80
|
-
return validateMarkdownTableProps({
|
81
|
-
inputData: validData,
|
82
|
-
canReplaceNewlines: 'true',
|
83
|
-
});
|
84
|
-
}).toThrow(MarkdownTableError);
|
85
|
-
});
|
86
|
-
});
|
87
|
-
//# sourceMappingURL=validation.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../test/validation.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Represents a single row in a table, consisting of cells.
|
3
|
-
*/
|
4
|
-
export type TableRow = readonly string[];
|
5
|
-
/**
|
6
|
-
* Represents the structure of a Markdown table.
|
7
|
-
*/
|
8
|
-
export interface MarkdownTableData {
|
9
|
-
/**
|
10
|
-
* The header row of the table.
|
11
|
-
*/
|
12
|
-
header: string[];
|
13
|
-
/**
|
14
|
-
* The body rows of the table.
|
15
|
-
*/
|
16
|
-
rows: readonly string[][];
|
17
|
-
}
|
18
|
-
/**
|
19
|
-
* Props for the MarkdownTable component.
|
20
|
-
*/
|
21
|
-
export interface MarkdownTableProps {
|
22
|
-
/**
|
23
|
-
* The entire table data as a two-dimensional array.
|
24
|
-
* If `hasHeader` is true, the first row is treated as the header.
|
25
|
-
* @default null
|
26
|
-
*/
|
27
|
-
data?: string[][] | null;
|
28
|
-
/**
|
29
|
-
* Indicates whether the first row of `data` is a header.
|
30
|
-
* @default true
|
31
|
-
*/
|
32
|
-
hasHeader?: boolean;
|
33
|
-
/**
|
34
|
-
* Optional array specifying the alignment for each column.
|
35
|
-
* Acceptable values are 'left', 'center', 'right', or 'none'.
|
36
|
-
*/
|
37
|
-
columnAlignments?: readonly ('left' | 'center' | 'right' | 'none')[];
|
38
|
-
/**
|
39
|
-
* Optional flag to provide a compact version of the table with minimal column widths.
|
40
|
-
* When `true`, column widths are not adjusted based on content.
|
41
|
-
* @default false
|
42
|
-
*/
|
43
|
-
isCompact?: boolean;
|
44
|
-
/**
|
45
|
-
* Optional flag to add tabs between columns in the Markdown table.
|
46
|
-
* @default false
|
47
|
-
*/
|
48
|
-
hasTabs?: boolean;
|
49
|
-
/**
|
50
|
-
* Optional CSS class for styling the rendered Markdown table.
|
51
|
-
*/
|
52
|
-
className?: string;
|
53
|
-
/**
|
54
|
-
* Optional flag to replace newlines with <br> tags in table cells.
|
55
|
-
* @default false
|
56
|
-
*/
|
57
|
-
canReplaceNewlines?: boolean;
|
58
|
-
/**
|
59
|
-
* Optional callback function to receive the generated Markdown table string.
|
60
|
-
*/
|
61
|
-
onTableCreate?: (markdownString: string) => void;
|
62
|
-
}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAe"}
|
package/dist/utils.d.ts
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
import { TableRow, MarkdownTableData } from './types';
|
2
|
-
/**
|
3
|
-
* Calculates the maximum width for each column based on the content.
|
4
|
-
* @param allRows - All rows (header and body) of the table.
|
5
|
-
* @param maxColumnCount - The maximum number of columns in the table.
|
6
|
-
* @returns An array of maximum widths for each column.
|
7
|
-
*/
|
8
|
-
export declare function calculateColumnWidths(allRows: readonly TableRow[], maxColumnCount: number): number[];
|
9
|
-
/**
|
10
|
-
* Replaces newline characters in a string with <br> tags.
|
11
|
-
* @param cell - The cell content to process.
|
12
|
-
* @returns The processed cell content with newlines replaced.
|
13
|
-
*/
|
14
|
-
export declare function replaceNewlinesInCell(cell: string): string;
|
15
|
-
/**
|
16
|
-
* Formats a single row into a Markdown-formatted string.
|
17
|
-
* @param columnCount - The number of columns in the table.
|
18
|
-
* @param row - The data of the current row.
|
19
|
-
* @param columnAlignments - Alignment settings for each column.
|
20
|
-
* @param columnWidths - Widths of each column.
|
21
|
-
* @param useTabs - Flag to use tabs between columns.
|
22
|
-
* @param replaceNewlines - Flag to replace newlines with <br> tags.
|
23
|
-
* @returns The Markdown string for the row.
|
24
|
-
*/
|
25
|
-
export declare function formatMarkdownRow(columnCount: number, row: TableRow, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], columnWidths?: readonly number[], useTabs?: boolean, replaceNewlines?: boolean): string;
|
26
|
-
/**
|
27
|
-
* Generates the alignment row for the Markdown table syntax.
|
28
|
-
* @param columnCount - The number of columns in the table.
|
29
|
-
* @param columnAlignments - Alignment settings for each column.
|
30
|
-
* @param columnWidths - Widths of each column.
|
31
|
-
* @param useTabs - Flag to use tabs between columns.
|
32
|
-
* @returns The Markdown string for the alignment row.
|
33
|
-
*/
|
34
|
-
export declare function formatAlignmentRow(columnCount: number, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], columnWidths?: readonly number[], useTabs?: boolean): string;
|
35
|
-
/**
|
36
|
-
* Generates a complete Markdown table string from the provided data.
|
37
|
-
* @param tableData - The table data including headers and rows.
|
38
|
-
* @param columnAlignments - Alignment settings for each column.
|
39
|
-
* @param adjustColumnWidths - Flag to adjust column widths based on content.
|
40
|
-
* @param useTabs - Flag to use tabs between columns.
|
41
|
-
* @param replaceNewlines - Flag to replace newlines with <br> tags.
|
42
|
-
* @returns The complete Markdown table string.
|
43
|
-
*/
|
44
|
-
export declare function generateMarkdownTableString(tableData: MarkdownTableData, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], adjustColumnWidths?: boolean, useTabs?: boolean, replaceNewlines?: boolean): string;
|