react-markdown-table-ts 0.3.0 → 0.3.1
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 +2 -2
- package/dist/index.cjs.js +17 -17
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +17 -17
- package/dist/index.esm.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +18 -17
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +5 -5
- package/dist/src/utils.d.ts +15 -12
- package/dist/src/utils.js +31 -31
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validation.d.ts +2 -2
- package/dist/src/validation.js +7 -7
- package/dist/src/validation.js.map +1 -1
- package/dist/test/MarkdownTable.test.js +6 -6
- package/dist/test/MarkdownTable.test.js.map +1 -1
- package/dist/test/utils.test.js +188 -43
- package/dist/test/utils.test.js.map +1 -1
- package/dist/test/validation.test.js +16 -10
- package/dist/test/validation.test.js.map +1 -1
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
@@ -7,7 +7,7 @@ export interface MarkdownTableData {
|
|
7
7
|
rows: readonly string[][];
|
8
8
|
}
|
9
9
|
export interface MarkdownTableProps {
|
10
|
-
|
10
|
+
inputData?: string[][] | null;
|
11
11
|
hasHeader?: boolean;
|
12
12
|
columnAlignments?: readonly ('left' | 'center' | 'right' | 'none')[];
|
13
13
|
isCompact?: boolean;
|
package/dist/src/index.js
CHANGED
@@ -23,12 +23,13 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
23
23
|
return to.concat(ar || Array.prototype.slice.call(from));
|
24
24
|
};
|
25
25
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
26
|
+
// src/index.tsx
|
26
27
|
import { useEffect, useMemo, useRef } from 'react';
|
27
28
|
import Prism from 'prismjs';
|
28
29
|
import 'prismjs/components/prism-markdown';
|
29
30
|
import 'prismjs/plugins/line-numbers/prism-line-numbers';
|
30
31
|
// CSS styles
|
31
|
-
var
|
32
|
+
var PRISM_CSS = "\ncode[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,\"Andale Mono\",\"Ubuntu Mono\",monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}\n";
|
32
33
|
var MarkdownTableError = /** @class */ (function (_super) {
|
33
34
|
__extends(MarkdownTableError, _super);
|
34
35
|
function MarkdownTableError(message) {
|
@@ -147,25 +148,25 @@ function getColumnName(index) {
|
|
147
148
|
return name;
|
148
149
|
}
|
149
150
|
export var MarkdownTable = function (_a) {
|
150
|
-
var _b = _a.
|
151
|
+
var _b = _a.inputData, inputData = _b === void 0 ? null : _b, _c = _a.hasHeader, hasHeader = _c === void 0 ? true : _c, _d = _a.columnAlignments, columnAlignments = _d === void 0 ? [] : _d, _e = _a.isCompact, isCompact = _e === void 0 ? false : _e, _f = _a.hasTabs, hasTabs = _f === void 0 ? false : _f, _g = _a.canReplaceNewlines, canReplaceNewlines = _g === void 0 ? false : _g, className = _a.className, onTableCreate = _a.onTableCreate;
|
151
152
|
var adjustColumnWidths = !isCompact;
|
152
|
-
var
|
153
|
-
var
|
154
|
-
if (
|
153
|
+
var preElementRef = useRef(null);
|
154
|
+
var markdownTableSyntax = useMemo(function () {
|
155
|
+
if (inputData === null) {
|
155
156
|
return 'Error: No data provided for the table.';
|
156
157
|
}
|
157
158
|
try {
|
158
|
-
if (!Array.isArray(
|
159
|
+
if (!Array.isArray(inputData) || inputData.length === 0) {
|
159
160
|
throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
|
160
161
|
}
|
161
162
|
var tableData = hasHeader
|
162
163
|
? {
|
163
|
-
header:
|
164
|
-
rows:
|
164
|
+
header: inputData[0],
|
165
|
+
rows: inputData.slice(1),
|
165
166
|
}
|
166
167
|
: {
|
167
|
-
header: generateAlphabetHeaders(
|
168
|
-
rows:
|
168
|
+
header: generateAlphabetHeaders(inputData[0].length),
|
169
|
+
rows: inputData,
|
169
170
|
};
|
170
171
|
return generateMarkdownTableString(tableData, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines);
|
171
172
|
}
|
@@ -178,7 +179,7 @@ export var MarkdownTable = function (_a) {
|
|
178
179
|
}
|
179
180
|
}
|
180
181
|
}, [
|
181
|
-
|
182
|
+
inputData,
|
182
183
|
hasHeader,
|
183
184
|
columnAlignments,
|
184
185
|
isCompact,
|
@@ -187,14 +188,14 @@ export var MarkdownTable = function (_a) {
|
|
187
188
|
]);
|
188
189
|
useEffect(function () {
|
189
190
|
if (onTableCreate) {
|
190
|
-
onTableCreate(
|
191
|
+
onTableCreate(markdownTableSyntax);
|
191
192
|
}
|
192
|
-
}, [
|
193
|
+
}, [markdownTableSyntax, onTableCreate]);
|
193
194
|
useEffect(function () {
|
194
|
-
if (
|
195
|
-
Prism.highlightElement(
|
195
|
+
if (preElementRef.current) {
|
196
|
+
Prism.highlightElement(preElementRef.current.querySelector('code'));
|
196
197
|
}
|
197
|
-
}, [
|
198
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { children:
|
198
|
+
}, [markdownTableSyntax]);
|
199
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: PRISM_CSS }), _jsx("pre", { ref: preElementRef, className: "".concat(className, " language-markdown line-numbers"), children: _jsx("code", { className: "language-markdown", role: "code", children: markdownTableSyntax }) })] }));
|
199
200
|
};
|
200
201
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,iDAAiD,CAAC;AAqBzD,aAAa;AACb,IAAM,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
@@ -5,15 +5,15 @@ export type TableRow = readonly string[];
|
|
5
5
|
/**
|
6
6
|
* Represents the structure of a Markdown table.
|
7
7
|
*/
|
8
|
-
export interface
|
8
|
+
export interface InputData {
|
9
9
|
/**
|
10
10
|
* The header row of the table.
|
11
11
|
*/
|
12
|
-
|
12
|
+
inputDataHeader: string[];
|
13
13
|
/**
|
14
14
|
* The body rows of the table.
|
15
15
|
*/
|
16
|
-
|
16
|
+
inputDataBody: readonly string[][];
|
17
17
|
}
|
18
18
|
/**
|
19
19
|
* Props for the MarkdownTable component.
|
@@ -24,7 +24,7 @@ export interface MarkdownTableProps {
|
|
24
24
|
* If `hasHeader` is true, the first row is treated as the header.
|
25
25
|
* @default null
|
26
26
|
*/
|
27
|
-
|
27
|
+
inputData?: string[][] | null;
|
28
28
|
/**
|
29
29
|
* Indicates whether the first row of `data` is a header.
|
30
30
|
* @default true
|
@@ -58,5 +58,5 @@ export interface MarkdownTableProps {
|
|
58
58
|
/**
|
59
59
|
* Optional callback function to receive the generated Markdown table string.
|
60
60
|
*/
|
61
|
-
onTableCreate?: (
|
61
|
+
onTableCreate?: (markdownTableString: string) => void;
|
62
62
|
}
|
package/dist/src/utils.d.ts
CHANGED
@@ -1,28 +1,31 @@
|
|
1
|
-
import { TableRow, MarkdownTableData } from './types';
|
2
1
|
/**
|
3
|
-
*
|
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.
|
2
|
+
* @fileoverview Contains helper functions for formatting Markdown table syntax, calculating column widths, and generating Markdown tables.
|
7
3
|
*/
|
8
|
-
|
4
|
+
import { TableRow, InputData } from './types';
|
9
5
|
/**
|
10
6
|
* Replaces newline characters in a string with <br> tags.
|
11
7
|
* @param cell - The cell content to process.
|
12
8
|
* @returns The processed cell content with newlines replaced.
|
13
9
|
*/
|
14
10
|
export declare function replaceNewlinesInCell(cell: string): string;
|
11
|
+
/**
|
12
|
+
* Calculates the maximum width for each column based on the content.
|
13
|
+
* @param tableRows - All rows (header and body) of the table.
|
14
|
+
* @param maxColumnCount - The maximum number of columns in the table.
|
15
|
+
* @returns An array of maximum widths for each column.
|
16
|
+
*/
|
17
|
+
export declare function calculateColumnWidths(tableRows: readonly TableRow[], maxColumnCount: number): number[];
|
15
18
|
/**
|
16
19
|
* Formats a single row into a Markdown-formatted string.
|
17
20
|
* @param columnCount - The number of columns in the table.
|
18
|
-
* @param
|
21
|
+
* @param currentRow - The data of the current row.
|
19
22
|
* @param columnAlignments - Alignment settings for each column.
|
20
23
|
* @param columnWidths - Widths of each column.
|
21
24
|
* @param useTabs - Flag to use tabs between columns.
|
22
|
-
* @param
|
25
|
+
* @param canReplaceNewlines - Flag to replace newlines with <br> tags.
|
23
26
|
* @returns The Markdown string for the row.
|
24
27
|
*/
|
25
|
-
export declare function formatMarkdownRow(columnCount: number,
|
28
|
+
export declare function formatMarkdownRow(columnCount: number, currentRow: TableRow, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], columnWidths?: readonly number[], useTabs?: boolean, canReplaceNewlines?: boolean): string;
|
26
29
|
/**
|
27
30
|
* Generates the alignment row for the Markdown table syntax.
|
28
31
|
* @param columnCount - The number of columns in the table.
|
@@ -34,11 +37,11 @@ export declare function formatMarkdownRow(columnCount: number, row: TableRow, co
|
|
34
37
|
export declare function formatAlignmentRow(columnCount: number, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], columnWidths?: readonly number[], useTabs?: boolean): string;
|
35
38
|
/**
|
36
39
|
* Generates a complete Markdown table string from the provided data.
|
37
|
-
* @param
|
40
|
+
* @param inputData - The table data including headers and rows.
|
38
41
|
* @param columnAlignments - Alignment settings for each column.
|
39
|
-
* @param
|
42
|
+
* @param canAdjustColumnWidths - Flag to adjust column widths based on content.
|
40
43
|
* @param useTabs - Flag to use tabs between columns.
|
41
44
|
* @param replaceNewlines - Flag to replace newlines with <br> tags.
|
42
45
|
* @returns The complete Markdown table string.
|
43
46
|
*/
|
44
|
-
export declare function generateMarkdownTableString(
|
47
|
+
export declare function generateMarkdownTableString(inputData: InputData, columnAlignments: readonly ('left' | 'right' | 'center' | 'none')[], canAdjustColumnWidths?: boolean, useTabs?: boolean, replaceNewlines?: boolean): string;
|
package/dist/src/utils.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
// src/
|
1
|
+
// src/helpers.ts
|
2
2
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
3
3
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
4
4
|
if (ar || !(i in from)) {
|
@@ -8,52 +8,52 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
8
8
|
}
|
9
9
|
return to.concat(ar || Array.prototype.slice.call(from));
|
10
10
|
};
|
11
|
+
/**
|
12
|
+
* Replaces newline characters in a string with <br> tags.
|
13
|
+
* @param cell - The cell content to process.
|
14
|
+
* @returns The processed cell content with newlines replaced.
|
15
|
+
*/
|
16
|
+
export function replaceNewlinesInCell(cell) {
|
17
|
+
return cell.replace(/\n/g, '<br>');
|
18
|
+
}
|
11
19
|
/**
|
12
20
|
* Calculates the maximum width for each column based on the content.
|
13
|
-
* @param
|
21
|
+
* @param tableRows - All rows (header and body) of the table.
|
14
22
|
* @param maxColumnCount - The maximum number of columns in the table.
|
15
23
|
* @returns An array of maximum widths for each column.
|
16
24
|
*/
|
17
|
-
export function calculateColumnWidths(
|
25
|
+
export function calculateColumnWidths(tableRows, maxColumnCount) {
|
18
26
|
var widths = new Array(maxColumnCount).fill(3); // Minimum width of 3 for each column.
|
19
|
-
|
27
|
+
tableRows.forEach(function (currentRow) {
|
20
28
|
var _a;
|
21
29
|
for (var i = 0; i < maxColumnCount; i++) {
|
22
|
-
var cell = (_a =
|
30
|
+
var cell = (_a = currentRow[i]) !== null && _a !== void 0 ? _a : '';
|
23
31
|
widths[i] = Math.max(widths[i], cell.length);
|
24
32
|
}
|
25
33
|
});
|
26
34
|
return widths;
|
27
35
|
}
|
28
|
-
/**
|
29
|
-
* Replaces newline characters in a string with <br> tags.
|
30
|
-
* @param cell - The cell content to process.
|
31
|
-
* @returns The processed cell content with newlines replaced.
|
32
|
-
*/
|
33
|
-
export function replaceNewlinesInCell(cell) {
|
34
|
-
return cell.replace(/\n/g, '<br>');
|
35
|
-
}
|
36
36
|
/**
|
37
37
|
* Formats a single row into a Markdown-formatted string.
|
38
38
|
* @param columnCount - The number of columns in the table.
|
39
|
-
* @param
|
39
|
+
* @param currentRow - The data of the current row.
|
40
40
|
* @param columnAlignments - Alignment settings for each column.
|
41
41
|
* @param columnWidths - Widths of each column.
|
42
42
|
* @param useTabs - Flag to use tabs between columns.
|
43
|
-
* @param
|
43
|
+
* @param canReplaceNewlines - Flag to replace newlines with <br> tags.
|
44
44
|
* @returns The Markdown string for the row.
|
45
45
|
*/
|
46
|
-
export function formatMarkdownRow(columnCount,
|
46
|
+
export function formatMarkdownRow(columnCount, currentRow, columnAlignments, columnWidths, useTabs, canReplaceNewlines) {
|
47
47
|
var _a, _b;
|
48
48
|
if (useTabs === void 0) { useTabs = false; }
|
49
|
-
if (
|
49
|
+
if (canReplaceNewlines === void 0) { canReplaceNewlines = false; }
|
50
50
|
var defaultAlignment = 'left';
|
51
51
|
var adjustedAlignments = columnAlignments.length < columnCount
|
52
52
|
? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
|
53
53
|
var markdownRow = '|';
|
54
54
|
for (var i = 0; i < columnCount; i++) {
|
55
|
-
var cell = (_a =
|
56
|
-
if (
|
55
|
+
var cell = (_a = currentRow[i]) !== null && _a !== void 0 ? _a : '';
|
56
|
+
if (canReplaceNewlines) {
|
57
57
|
cell = replaceNewlinesInCell(cell);
|
58
58
|
}
|
59
59
|
var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : defaultAlignment;
|
@@ -113,28 +113,28 @@ export function formatAlignmentRow(columnCount, columnAlignments, columnWidths,
|
|
113
113
|
}
|
114
114
|
/**
|
115
115
|
* Generates a complete Markdown table string from the provided data.
|
116
|
-
* @param
|
116
|
+
* @param inputData - The table data including headers and rows.
|
117
117
|
* @param columnAlignments - Alignment settings for each column.
|
118
|
-
* @param
|
118
|
+
* @param canAdjustColumnWidths - Flag to adjust column widths based on content.
|
119
119
|
* @param useTabs - Flag to use tabs between columns.
|
120
120
|
* @param replaceNewlines - Flag to replace newlines with <br> tags.
|
121
121
|
* @returns The complete Markdown table string.
|
122
122
|
*/
|
123
|
-
export function generateMarkdownTableString(
|
124
|
-
if (
|
123
|
+
export function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines) {
|
124
|
+
if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
|
125
125
|
if (useTabs === void 0) { useTabs = false; }
|
126
126
|
if (replaceNewlines === void 0) { replaceNewlines = false; }
|
127
|
-
var headerColumnCount =
|
128
|
-
var bodyColumnCounts =
|
127
|
+
var headerColumnCount = inputData.inputDataHeader.length;
|
128
|
+
var bodyColumnCounts = inputData.inputDataBody.map(function (currentRow) { return currentRow.length; });
|
129
129
|
var maxColumnCount = Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
|
130
|
-
var columnWidths =
|
131
|
-
? calculateColumnWidths(__spreadArray([
|
130
|
+
var columnWidths = canAdjustColumnWidths
|
131
|
+
? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
|
132
132
|
: undefined;
|
133
|
-
var markdownHeaderRow = formatMarkdownRow(maxColumnCount,
|
133
|
+
var markdownHeaderRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines);
|
134
134
|
var markdownAlignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs);
|
135
|
-
var markdownBodyRows =
|
136
|
-
.map(function (
|
137
|
-
return formatMarkdownRow(maxColumnCount,
|
135
|
+
var markdownBodyRows = inputData.inputDataBody
|
136
|
+
.map(function (currentRow) {
|
137
|
+
return formatMarkdownRow(maxColumnCount, currentRow, columnAlignments, columnWidths, useTabs, replaceNewlines);
|
138
138
|
})
|
139
139
|
.join('\n');
|
140
140
|
return "".concat(markdownHeaderRow, "\n").concat(markdownAlignmentRow, "\n").concat(markdownBodyRows).trimEnd();
|
package/dist/src/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/validation.d.ts
CHANGED
@@ -2,6 +2,6 @@ import { MarkdownTableProps } from './types';
|
|
2
2
|
/**
|
3
3
|
* Validates the structure of the table data based on the `hasHeader` flag.
|
4
4
|
* Throws an error if validation fails.
|
5
|
-
* @param
|
5
|
+
* @param markdownTableProps - The props to validate.
|
6
6
|
*/
|
7
|
-
export declare function validateMarkdownTableProps(
|
7
|
+
export declare function validateMarkdownTableProps(markdownTableProps: MarkdownTableProps): void;
|
package/dist/src/validation.js
CHANGED
@@ -3,19 +3,19 @@ import { MarkdownTableError } from './errors';
|
|
3
3
|
/**
|
4
4
|
* Validates the structure of the table data based on the `hasHeader` flag.
|
5
5
|
* Throws an error if validation fails.
|
6
|
-
* @param
|
6
|
+
* @param markdownTableProps - The props to validate.
|
7
7
|
*/
|
8
|
-
export function validateMarkdownTableProps(
|
9
|
-
var
|
10
|
-
if (!Array.isArray(
|
8
|
+
export function validateMarkdownTableProps(markdownTableProps) {
|
9
|
+
var inputData = markdownTableProps.inputData, _a = markdownTableProps.hasHeader, hasHeader = _a === void 0 ? true : _a, columnAlignments = markdownTableProps.columnAlignments, _b = markdownTableProps.isCompact, isCompact = _b === void 0 ? false : _b, _c = markdownTableProps.hasTabs, hasTabs = _c === void 0 ? false : _c, _d = markdownTableProps.canReplaceNewlines, canReplaceNewlines = _d === void 0 ? false : _d;
|
10
|
+
if (!Array.isArray(inputData)) {
|
11
11
|
throw new MarkdownTableError("The 'data' prop must be a two-dimensional array.");
|
12
12
|
}
|
13
|
-
if (
|
13
|
+
if (inputData.length === 0) {
|
14
14
|
throw new MarkdownTableError("The 'data' array must contain at least one row.");
|
15
15
|
}
|
16
16
|
// If hasHeader is true, ensure the first row exists and is valid
|
17
17
|
if (hasHeader) {
|
18
|
-
var header =
|
18
|
+
var header = inputData[0];
|
19
19
|
if (!Array.isArray(header) || header.length === 0) {
|
20
20
|
throw new MarkdownTableError("The first row of 'data' must be a non-empty array representing the header.");
|
21
21
|
}
|
@@ -27,7 +27,7 @@ export function validateMarkdownTableProps(props) {
|
|
27
27
|
});
|
28
28
|
}
|
29
29
|
// Validate each row
|
30
|
-
|
30
|
+
inputData.forEach(function (row, rowIndex) {
|
31
31
|
if (!Array.isArray(row)) {
|
32
32
|
throw new MarkdownTableError("Row ".concat(rowIndex + 1, " in 'data' must be an array of strings."));
|
33
33
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAGpB,OAAO,EAAC,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
|
@@ -9,7 +9,7 @@ describe('MarkdownTable', function () {
|
|
9
9
|
['Row 2, Col 1', 'Row 2, Col 2', 'Row 2, Col 3'],
|
10
10
|
];
|
11
11
|
it('renders a compact table', function () {
|
12
|
-
render(_jsx(MarkdownTable, {
|
12
|
+
render(_jsx(MarkdownTable, { inputData: sampleData, isCompact: true }));
|
13
13
|
var preElement = screen.getByText(/\| Header 1/);
|
14
14
|
expect(preElement).toBeInTheDocument();
|
15
15
|
expect(preElement.textContent).toContain('| Header 1 | Header 2 | Header 3 |');
|
@@ -23,7 +23,7 @@ describe('MarkdownTable', function () {
|
|
23
23
|
['Line 1\nLine 2', 'Single line'],
|
24
24
|
['Single line', 'Line 1\nLine 2\nLine 3'],
|
25
25
|
];
|
26
|
-
render(_jsx(MarkdownTable, {
|
26
|
+
render(_jsx(MarkdownTable, { inputData: dataWithNewlines, canReplaceNewlines: true }));
|
27
27
|
var preElement = screen.getByRole('code');
|
28
28
|
expect(preElement).toBeInTheDocument();
|
29
29
|
expect(preElement).toHaveTextContent('Header 1');
|
@@ -38,7 +38,7 @@ describe('MarkdownTable', function () {
|
|
38
38
|
['Row 2, Col 1', 'Row 2, Col 2'],
|
39
39
|
];
|
40
40
|
var mockOnTableCreate = jest.fn();
|
41
|
-
render(_jsx(MarkdownTable, {
|
41
|
+
render(_jsx(MarkdownTable, { inputData: sampleData, onTableCreate: mockOnTableCreate }));
|
42
42
|
var codeElement = screen.getByRole('code');
|
43
43
|
expect(codeElement).toBeInTheDocument();
|
44
44
|
// Check if onTableCreate was called
|
@@ -60,14 +60,14 @@ describe('MarkdownTable', function () {
|
|
60
60
|
['Row 1, Col 1', 'Row 1, Col 2'],
|
61
61
|
];
|
62
62
|
var mockOnTableCreate = jest.fn();
|
63
|
-
var rerender = render(_jsx(MarkdownTable, {
|
63
|
+
var rerender = render(_jsx(MarkdownTable, { inputData: sampleData, onTableCreate: mockOnTableCreate })).rerender;
|
64
64
|
expect(mockOnTableCreate).toHaveBeenCalledTimes(1);
|
65
65
|
// Change a prop and re-render
|
66
66
|
var newData = [
|
67
67
|
['New Header 1', 'New Header 2'],
|
68
68
|
['New Row 1, Col 1', 'New Row 1, Col 2'],
|
69
69
|
];
|
70
|
-
rerender(_jsx(MarkdownTable, {
|
70
|
+
rerender(_jsx(MarkdownTable, { inputData: newData, onTableCreate: mockOnTableCreate }));
|
71
71
|
// Check if onTableCreate was called again
|
72
72
|
expect(mockOnTableCreate).toHaveBeenCalledTimes(2);
|
73
73
|
// Check if onTableCreate was called with the new Markdown string
|
@@ -75,7 +75,7 @@ describe('MarkdownTable', function () {
|
|
75
75
|
expect(mockOnTableCreate).toHaveBeenLastCalledWith(expectedNewMarkdown);
|
76
76
|
});
|
77
77
|
it('renders the table with correct markdown syntax', function () {
|
78
|
-
render(_jsx(MarkdownTable, {
|
78
|
+
render(_jsx(MarkdownTable, { inputData: sampleData }));
|
79
79
|
var codeElement = screen.getByRole('code');
|
80
80
|
expect(codeElement).toHaveTextContent('Header 1');
|
81
81
|
expect(codeElement).toHaveTextContent('Header 2');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MarkdownTable.test.js","sourceRoot":"","sources":["../../test/MarkdownTable.test.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;AACrC,OAAO,2BAA2B,CAAC;AAEnC,QAAQ,CAAC,eAAe,EAAE;IACxB,IAAM,UAAU,GAAG;QACjB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QACpC,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChD,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;KACjD,CAAC;IAEF,EAAE,CAAC,yBAAyB,EAAE;QAC5B,MAAM,CAAC,KAAC,aAAa,IAAC,
|
1
|
+
{"version":3,"file":"MarkdownTable.test.js","sourceRoot":"","sources":["../../test/MarkdownTable.test.tsx"],"names":[],"mappings":"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"}
|