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.
Files changed (50) hide show
  1. package/dist/index.cjs.js +140 -82
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +140 -82
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/src/index.d.ts +1 -15
  6. package/dist/src/types.d.ts +0 -6
  7. package/dist/src/utils.d.ts +19 -9
  8. package/dist/src/validation.d.ts +6 -0
  9. package/package.json +1 -1
  10. package/dist/errors.d.ts +0 -6
  11. package/dist/errors.js +0 -31
  12. package/dist/errors.js.map +0 -1
  13. package/dist/helpers.d.ts +0 -34
  14. package/dist/helpers.js +0 -93
  15. package/dist/helpers.js.map +0 -1
  16. package/dist/index.d.ts +0 -19
  17. package/dist/src/errors.d.ts +0 -6
  18. package/dist/src/errors.js +0 -31
  19. package/dist/src/errors.js.map +0 -1
  20. package/dist/src/helpers.d.ts +0 -34
  21. package/dist/src/helpers.js +0 -93
  22. package/dist/src/helpers.js.map +0 -1
  23. package/dist/src/index.js +0 -201
  24. package/dist/src/index.js.map +0 -1
  25. package/dist/src/types.js +0 -3
  26. package/dist/src/types.js.map +0 -1
  27. package/dist/src/utils.js +0 -142
  28. package/dist/src/utils.js.map +0 -1
  29. package/dist/src/validation.js +0 -65
  30. package/dist/src/validation.js.map +0 -1
  31. package/dist/test/MarkdownTable.test.js +0 -91
  32. package/dist/test/MarkdownTable.test.js.map +0 -1
  33. package/dist/test/helpers.test.d.ts +0 -1
  34. package/dist/test/helpers.test.js +0 -99
  35. package/dist/test/helpers.test.js.map +0 -1
  36. package/dist/test/jest.setup.js +0 -3
  37. package/dist/test/jest.setup.js.map +0 -1
  38. package/dist/test/utils.test.js +0 -191
  39. package/dist/test/utils.test.js.map +0 -1
  40. package/dist/test/validation.test.js +0 -87
  41. package/dist/test/validation.test.js.map +0 -1
  42. package/dist/types.d.ts +0 -62
  43. package/dist/types.js +0 -3
  44. package/dist/types.js.map +0 -1
  45. package/dist/utils.d.ts +0 -44
  46. package/dist/utils.js +0 -142
  47. package/dist/utils.js.map +0 -1
  48. package/dist/validation.d.ts +0 -7
  49. package/dist/validation.js +0 -65
  50. package/dist/validation.js.map +0 -1
package/dist/src/index.js DELETED
@@ -1,201 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
- if (ar || !(i in from)) {
19
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
- ar[i] = from[i];
21
- }
22
- }
23
- return to.concat(ar || Array.prototype.slice.call(from));
24
- };
25
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
26
- // src/index.tsx
27
- import { useEffect, useMemo, useRef } from 'react';
28
- import Prism from 'prismjs';
29
- import 'prismjs/components/prism-markdown';
30
- import 'prismjs/plugins/line-numbers/prism-line-numbers';
31
- // CSS styles
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";
33
- var MarkdownTableError = /** @class */ (function (_super) {
34
- __extends(MarkdownTableError, _super);
35
- function MarkdownTableError(message) {
36
- var _this = _super.call(this, message) || this;
37
- _this.name = 'MarkdownTableError';
38
- return _this;
39
- }
40
- return MarkdownTableError;
41
- }(Error));
42
- function calculateColumnWidths(allRows, maxColumnCount) {
43
- var widths = new Array(maxColumnCount).fill(3);
44
- allRows.forEach(function (row) {
45
- var _a;
46
- for (var i = 0; i < maxColumnCount; i++) {
47
- var cell = (_a = row[i]) !== null && _a !== void 0 ? _a : '';
48
- widths[i] = Math.max(widths[i], cell.length);
49
- }
50
- });
51
- return widths;
52
- }
53
- function replaceNewlinesInCell(cell) {
54
- return cell.replace(/\n/g, '<br>');
55
- }
56
- function formatMarkdownRow(columnCount, row, columnAlignments, columnWidths, useTabs, replaceNewlines) {
57
- var _a, _b;
58
- if (useTabs === void 0) { useTabs = false; }
59
- if (replaceNewlines === void 0) { replaceNewlines = false; }
60
- var defaultAlignment = 'left';
61
- var adjustedAlignments = columnAlignments.length < columnCount
62
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
63
- var markdownRow = '|';
64
- for (var i = 0; i < columnCount; i++) {
65
- var cell = (_a = row[i]) !== null && _a !== void 0 ? _a : '';
66
- if (replaceNewlines) {
67
- cell = replaceNewlinesInCell(cell);
68
- }
69
- var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : defaultAlignment;
70
- var targetWidth = columnWidths ? columnWidths[i] : cell.length;
71
- if (alignment === 'right') {
72
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(cell.padStart(targetWidth)).concat(useTabs ? '\t' : ' ', "|");
73
- }
74
- else if (alignment === 'center') {
75
- var totalPadding = targetWidth - cell.length;
76
- var paddingLeft = Math.floor(totalPadding / 2);
77
- var paddingRight = totalPadding - paddingLeft;
78
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(' '.repeat(paddingLeft)).concat(cell).concat(' '.repeat(paddingRight)).concat(useTabs ? '\t' : ' ', "|");
79
- }
80
- else {
81
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(cell.padEnd(targetWidth)).concat(useTabs ? '\t' : ' ', "|");
82
- }
83
- }
84
- return markdownRow;
85
- }
86
- function formatAlignmentRow(columnCount, columnAlignments, columnWidths, useTabs) {
87
- var _a;
88
- if (useTabs === void 0) { useTabs = false; }
89
- var defaultAlignment = 'left';
90
- var adjustedAlignments = columnAlignments.length < columnCount
91
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
92
- var alignmentRow = '|';
93
- for (var i = 0; i < columnCount; i++) {
94
- var alignment = (_a = adjustedAlignments[i]) !== null && _a !== void 0 ? _a : defaultAlignment;
95
- var targetWidth = columnWidths ? columnWidths[i] : 3;
96
- var alignIndicator = '';
97
- switch (alignment) {
98
- case 'left':
99
- alignIndicator = ":".concat('-'.repeat(targetWidth - 1));
100
- break;
101
- case 'center':
102
- alignIndicator = ":".concat('-'.repeat(targetWidth - 2), ":");
103
- break;
104
- case 'right':
105
- alignIndicator = "".concat('-'.repeat(targetWidth - 1), ":");
106
- break;
107
- default:
108
- alignIndicator = "".concat('-'.repeat(targetWidth));
109
- break;
110
- }
111
- alignmentRow += "".concat(useTabs ? '\t' : ' ').concat(alignIndicator).concat(useTabs ? '\t' : ' ', "|");
112
- }
113
- return alignmentRow;
114
- }
115
- function generateMarkdownTableString(tableData, columnAlignments, adjustColumnWidths, useTabs, replaceNewlines) {
116
- if (adjustColumnWidths === void 0) { adjustColumnWidths = true; }
117
- if (useTabs === void 0) { useTabs = false; }
118
- if (replaceNewlines === void 0) { replaceNewlines = false; }
119
- var headerColumnCount = tableData.header.length;
120
- var bodyColumnCounts = tableData.rows.map(function (row) { return row.length; });
121
- var maxColumnCount = Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
122
- var columnWidths = adjustColumnWidths
123
- ? calculateColumnWidths(__spreadArray([tableData.header], tableData.rows, true), maxColumnCount)
124
- : undefined;
125
- var markdownHeaderRow = formatMarkdownRow(maxColumnCount, tableData.header, columnAlignments, columnWidths, useTabs, replaceNewlines);
126
- var markdownAlignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs);
127
- var markdownBodyRows = tableData.rows
128
- .map(function (row) {
129
- return formatMarkdownRow(maxColumnCount, row, columnAlignments, columnWidths, useTabs, replaceNewlines);
130
- })
131
- .join('\n');
132
- return "".concat(markdownHeaderRow, "\n").concat(markdownAlignmentRow, "\n").concat(markdownBodyRows).trimEnd();
133
- }
134
- function generateAlphabetHeaders(columnCount) {
135
- var headers = [];
136
- for (var i = 0; i < columnCount; i++) {
137
- headers.push(getColumnName(i));
138
- }
139
- return headers;
140
- }
141
- function getColumnName(index) {
142
- var name = '';
143
- var currentIndex = index;
144
- while (currentIndex >= 0) {
145
- name = String.fromCharCode((currentIndex % 26) + 65) + name;
146
- currentIndex = Math.floor(currentIndex / 26) - 1;
147
- }
148
- return name;
149
- }
150
- export var MarkdownTable = function (_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;
152
- var adjustColumnWidths = !isCompact;
153
- var preElementRef = useRef(null);
154
- var markdownTableSyntax = useMemo(function () {
155
- if (inputData === null) {
156
- return 'Error: No data provided for the table.';
157
- }
158
- try {
159
- if (!Array.isArray(inputData) || inputData.length === 0) {
160
- throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
161
- }
162
- var tableData = hasHeader
163
- ? {
164
- header: inputData[0],
165
- rows: inputData.slice(1),
166
- }
167
- : {
168
- header: generateAlphabetHeaders(inputData[0].length),
169
- rows: inputData,
170
- };
171
- return generateMarkdownTableString(tableData, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines);
172
- }
173
- catch (error) {
174
- if (error instanceof MarkdownTableError) {
175
- return "Error: ".concat(error.message);
176
- }
177
- else {
178
- throw error;
179
- }
180
- }
181
- }, [
182
- inputData,
183
- hasHeader,
184
- columnAlignments,
185
- isCompact,
186
- hasTabs,
187
- canReplaceNewlines,
188
- ]);
189
- useEffect(function () {
190
- if (onTableCreate) {
191
- onTableCreate(markdownTableSyntax);
192
- }
193
- }, [markdownTableSyntax, onTableCreate]);
194
- useEffect(function () {
195
- if (preElementRef.current) {
196
- Prism.highlightElement(preElementRef.current.querySelector('code'));
197
- }
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 }) })] }));
200
- };
201
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/src/types.js DELETED
@@ -1,3 +0,0 @@
1
- // src/types.ts
2
- export {};
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,eAAe"}
package/dist/src/utils.js DELETED
@@ -1,142 +0,0 @@
1
- // src/helpers.ts
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
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
- }
19
- /**
20
- * Calculates the maximum width for each column based on the content.
21
- * @param tableRows - All rows (header and body) of the table.
22
- * @param maxColumnCount - The maximum number of columns in the table.
23
- * @returns An array of maximum widths for each column.
24
- */
25
- export function calculateColumnWidths(tableRows, maxColumnCount) {
26
- var widths = new Array(maxColumnCount).fill(3); // Minimum width of 3 for each column.
27
- tableRows.forEach(function (currentRow) {
28
- var _a;
29
- for (var i = 0; i < maxColumnCount; i++) {
30
- var cell = (_a = currentRow[i]) !== null && _a !== void 0 ? _a : '';
31
- widths[i] = Math.max(widths[i], cell.length);
32
- }
33
- });
34
- return widths;
35
- }
36
- /**
37
- * Formats a single row into a Markdown-formatted string.
38
- * @param columnCount - The number of columns in the table.
39
- * @param currentRow - The data of the current row.
40
- * @param columnAlignments - Alignment settings for each column.
41
- * @param columnWidths - Widths of each column.
42
- * @param useTabs - Flag to use tabs between columns.
43
- * @param canReplaceNewlines - Flag to replace newlines with <br> tags.
44
- * @returns The Markdown string for the row.
45
- */
46
- export function formatMarkdownRow(columnCount, currentRow, columnAlignments, columnWidths, useTabs, canReplaceNewlines) {
47
- var _a, _b;
48
- if (useTabs === void 0) { useTabs = false; }
49
- if (canReplaceNewlines === void 0) { canReplaceNewlines = false; }
50
- var defaultAlignment = 'left';
51
- var adjustedAlignments = columnAlignments.length < columnCount
52
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
53
- var markdownRow = '|';
54
- for (var i = 0; i < columnCount; i++) {
55
- var cell = (_a = currentRow[i]) !== null && _a !== void 0 ? _a : '';
56
- if (canReplaceNewlines) {
57
- cell = replaceNewlinesInCell(cell);
58
- }
59
- var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : defaultAlignment;
60
- var targetWidth = columnWidths ? columnWidths[i] : cell.length;
61
- if (alignment === 'right') {
62
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(cell.padStart(targetWidth)).concat(useTabs ? '\t' : ' ', "|");
63
- }
64
- else if (alignment === 'center') {
65
- var totalPadding = targetWidth - cell.length;
66
- var paddingLeft = Math.floor(totalPadding / 2);
67
- var paddingRight = totalPadding - paddingLeft;
68
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(' '.repeat(paddingLeft)).concat(cell).concat(' '.repeat(paddingRight)).concat(useTabs ? '\t' : ' ', "|");
69
- }
70
- else {
71
- // Left alignment or default
72
- markdownRow += "".concat(useTabs ? '\t' : ' ').concat(cell.padEnd(targetWidth)).concat(useTabs ? '\t' : ' ', "|");
73
- }
74
- }
75
- return markdownRow;
76
- }
77
- /**
78
- * Generates the alignment row for the Markdown table syntax.
79
- * @param columnCount - The number of columns in the table.
80
- * @param columnAlignments - Alignment settings for each column.
81
- * @param columnWidths - Widths of each column.
82
- * @param useTabs - Flag to use tabs between columns.
83
- * @returns The Markdown string for the alignment row.
84
- */
85
- export function formatAlignmentRow(columnCount, columnAlignments, columnWidths, useTabs) {
86
- var _a;
87
- if (useTabs === void 0) { useTabs = false; }
88
- var defaultAlignment = 'left';
89
- var adjustedAlignments = columnAlignments.length < columnCount
90
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
91
- var alignmentRow = '|';
92
- for (var i = 0; i < columnCount; i++) {
93
- var alignment = (_a = adjustedAlignments[i]) !== null && _a !== void 0 ? _a : defaultAlignment;
94
- var targetWidth = columnWidths ? columnWidths[i] : 3;
95
- var alignIndicator = '';
96
- switch (alignment) {
97
- case 'left':
98
- alignIndicator = ":".concat('-'.repeat(targetWidth - 1));
99
- break;
100
- case 'center':
101
- alignIndicator = ":".concat('-'.repeat(targetWidth - 2), ":");
102
- break;
103
- case 'right':
104
- alignIndicator = "".concat('-'.repeat(targetWidth - 1), ":");
105
- break;
106
- default:
107
- alignIndicator = "".concat('-'.repeat(targetWidth));
108
- break;
109
- }
110
- alignmentRow += "".concat(useTabs ? '\t' : ' ').concat(alignIndicator).concat(useTabs ? '\t' : ' ', "|");
111
- }
112
- return alignmentRow;
113
- }
114
- /**
115
- * Generates a complete Markdown table string from the provided data.
116
- * @param inputData - The table data including headers and rows.
117
- * @param columnAlignments - Alignment settings for each column.
118
- * @param canAdjustColumnWidths - Flag to adjust column widths based on content.
119
- * @param useTabs - Flag to use tabs between columns.
120
- * @param replaceNewlines - Flag to replace newlines with <br> tags.
121
- * @returns The complete Markdown table string.
122
- */
123
- export function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines) {
124
- if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
125
- if (useTabs === void 0) { useTabs = false; }
126
- if (replaceNewlines === void 0) { replaceNewlines = false; }
127
- var headerColumnCount = inputData.inputDataHeader.length;
128
- var bodyColumnCounts = inputData.inputDataBody.map(function (currentRow) { return currentRow.length; });
129
- var maxColumnCount = Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
130
- var columnWidths = canAdjustColumnWidths
131
- ? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
132
- : undefined;
133
- var markdownHeaderRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines);
134
- var markdownAlignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs);
135
- var markdownBodyRows = inputData.inputDataBody
136
- .map(function (currentRow) {
137
- return formatMarkdownRow(maxColumnCount, currentRow, columnAlignments, columnWidths, useTabs, replaceNewlines);
138
- })
139
- .join('\n');
140
- return "".concat(markdownHeaderRow, "\n").concat(markdownAlignmentRow, "\n").concat(markdownBodyRows).trimEnd();
141
- }
142
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- // src/validation.ts
2
- import { MarkdownTableError } from './errors';
3
- /**
4
- * Validates the structure of the table data based on the `hasHeader` flag.
5
- * Throws an error if validation fails.
6
- * @param markdownTableProps - The props to validate.
7
- */
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
- throw new MarkdownTableError("The 'data' prop must be a two-dimensional array.");
12
- }
13
- if (inputData.length === 0) {
14
- throw new MarkdownTableError("The 'data' array must contain at least one row.");
15
- }
16
- // If hasHeader is true, ensure the first row exists and is valid
17
- if (hasHeader) {
18
- var header = inputData[0];
19
- if (!Array.isArray(header) || header.length === 0) {
20
- throw new MarkdownTableError("The first row of 'data' must be a non-empty array representing the header.");
21
- }
22
- // Validate each header cell is a string
23
- header.forEach(function (cell, index) {
24
- if (typeof cell !== 'string') {
25
- throw new MarkdownTableError("Header cell at index ".concat(index, " must be a string."));
26
- }
27
- });
28
- }
29
- // Validate each row
30
- inputData.forEach(function (row, rowIndex) {
31
- if (!Array.isArray(row)) {
32
- throw new MarkdownTableError("Row ".concat(rowIndex + 1, " in 'data' must be an array of strings."));
33
- }
34
- row.forEach(function (cell, cellIndex) {
35
- if (typeof cell !== 'string') {
36
- throw new MarkdownTableError("Cell at row ".concat(rowIndex + 1, ", column ").concat(cellIndex + 1, " must be a string."));
37
- }
38
- });
39
- });
40
- // Validate columnAlignments if provided
41
- if (columnAlignments) {
42
- if (!Array.isArray(columnAlignments)) {
43
- throw new MarkdownTableError("'columnAlignments' must be an array of alignment strings.");
44
- }
45
- var validAlignments_1 = ['left', 'center', 'right', 'none'];
46
- columnAlignments.forEach(function (alignment, index) {
47
- if (!validAlignments_1.includes(alignment)) {
48
- throw new MarkdownTableError("Invalid alignment '".concat(alignment, "' at index ").concat(index, ". Valid options are 'left', 'center', 'right', 'none'."));
49
- }
50
- });
51
- }
52
- // Validate isCompact
53
- if (typeof isCompact !== 'boolean') {
54
- throw new MarkdownTableError("'isCompact' must be a boolean.");
55
- }
56
- // Validate hasTabs
57
- if (typeof hasTabs !== 'boolean') {
58
- throw new MarkdownTableError("'hasTabs' must be a boolean.");
59
- }
60
- // Validate canReplaceNewlines
61
- if (typeof canReplaceNewlines !== 'boolean') {
62
- throw new MarkdownTableError("'canReplaceNewlines' must be a boolean.");
63
- }
64
- }
65
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
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,CACxC,kBAAsC;IAGpC,IAAA,SAAS,GAMP,kBAAkB,UANX,EACT,KAKE,kBAAkB,UALJ,EAAhB,SAAS,mBAAG,IAAI,KAAA,EAChB,gBAAgB,GAId,kBAAkB,iBAJJ,EAChB,KAGE,kBAAkB,UAHH,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,KAEE,kBAAkB,QAFL,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,KACE,kBAAkB,mBADM,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,CACL;IAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kDAAkD,CACnD,CAAC;KACH;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAI,kBAAkB,CAC1B,iDAAiD,CAClD,CAAC;KACH;IAED,iEAAiE;IACjE,IAAI,SAAS,EAAE;QACb,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,MAAM,IAAI,kBAAkB,CAC1B,4EAA4E,CAC7E,CAAC;SACH;QAED,wCAAwC;QACxC,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,IAAI,kBAAkB,CAC1B,+BAAwB,KAAK,uBAAoB,CAClD,CAAC;aACH;QACH,CAAC,CAAC,CAAC;KACJ;IAED,oBAAoB;IACpB,SAAS,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,QAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,kBAAkB,CAC1B,cAAO,QAAQ,GAAG,CAAC,4CAAyC,CAC7D,CAAC;SACH;QAED,GAAG,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;YAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,IAAI,kBAAkB,CAC1B,sBAAe,QAAQ,GAAG,CAAC,sBAAY,SAAS,GAAG,CAAC,uBAAoB,CACzE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,gBAAgB,EAAE;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACpC,MAAM,IAAI,kBAAkB,CAC1B,2DAA2D,CAC5D,CAAC;SACH;QAED,IAAM,iBAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5D,gBAAgB,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,KAAK;YACxC,IAAI,CAAC,iBAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACxC,MAAM,IAAI,kBAAkB,CAC1B,6BAAsB,SAAS,wBAAc,KAAK,2DAAwD,CAC3G,CAAC;aACH;QACH,CAAC,CAAC,CAAC;KACJ;IAED,qBAAqB;IACrB,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE;QAClC,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;KAChE;IAED,mBAAmB;IACnB,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;QAChC,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;KAC9D;IAED,8BAA8B;IAC9B,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE;QAC3C,MAAM,IAAI,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;KACzE;AACH,CAAC"}
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen } from '@testing-library/react';
3
- import { MarkdownTable } from '../src';
4
- import '@testing-library/jest-dom';
5
- describe('MarkdownTable', function () {
6
- var sampleData = [
7
- ['Header 1', 'Header 2', 'Header 3'],
8
- ['Row 1, Col 1', 'Row 1, Col 2', 'Row 1, Col 3'],
9
- ['Row 2, Col 1', 'Row 2, Col 2', 'Row 2, Col 3'],
10
- ];
11
- it('renders a compact table', function () {
12
- render(_jsx(MarkdownTable, { inputData: sampleData, isCompact: true }));
13
- var preElement = screen.getByText(/\| Header 1/);
14
- expect(preElement).toBeInTheDocument();
15
- expect(preElement.textContent).toContain('| Header 1 | Header 2 | Header 3 |');
16
- expect(preElement.textContent).toContain('| :-- | :-- | :-- |');
17
- expect(preElement.textContent).toContain('| Row 1, Col 1 | Row 1, Col 2 | Row 1, Col 3 |');
18
- expect(preElement.textContent).toContain('| Row 2, Col 1 | Row 2, Col 2 | Row 2, Col 3 |');
19
- });
20
- it('replaces newlines with <br> tags when canReplaceNewlines is true', function () {
21
- var dataWithNewlines = [
22
- ['Header 1', 'Header 2'],
23
- ['Line 1\nLine 2', 'Single line'],
24
- ['Single line', 'Line 1\nLine 2\nLine 3'],
25
- ];
26
- render(_jsx(MarkdownTable, { inputData: dataWithNewlines, canReplaceNewlines: true }));
27
- var preElement = screen.getByRole('code');
28
- expect(preElement).toBeInTheDocument();
29
- expect(preElement).toHaveTextContent('Header 1');
30
- expect(preElement).toHaveTextContent('Header 2');
31
- expect(preElement).toHaveTextContent('Line 1<br>Line 2');
32
- expect(preElement).toHaveTextContent('Line 1<br>Line 2<br>Line 3');
33
- });
34
- it('calls onTableCreate with the correct Markdown string', function () {
35
- var sampleData = [
36
- ['Header 1', 'Header 2'],
37
- ['Row 1, Col 1', 'Row 1, Col 2'],
38
- ['Row 2, Col 1', 'Row 2, Col 2'],
39
- ];
40
- var mockOnTableCreate = jest.fn();
41
- render(_jsx(MarkdownTable, { inputData: sampleData, onTableCreate: mockOnTableCreate }));
42
- var codeElement = screen.getByRole('code');
43
- expect(codeElement).toBeInTheDocument();
44
- // Check if onTableCreate was called
45
- expect(mockOnTableCreate).toHaveBeenCalledTimes(1);
46
- // Check if onTableCreate was called with the correct Markdown string
47
- var expectedMarkdown = "| Header 1 | Header 2 |\n| :----------- | :----------- |\n| Row 1, Col 1 | Row 1, Col 2 |\n| Row 2, Col 1 | Row 2, Col 2 |";
48
- expect(mockOnTableCreate).toHaveBeenCalledWith(expectedMarkdown);
49
- // Check the rendered content
50
- expect(codeElement).toHaveTextContent('Header 1');
51
- expect(codeElement).toHaveTextContent('Header 2');
52
- expect(codeElement).toHaveTextContent('Row 1, Col 1');
53
- expect(codeElement).toHaveTextContent('Row 1, Col 2');
54
- expect(codeElement).toHaveTextContent('Row 2, Col 1');
55
- expect(codeElement).toHaveTextContent('Row 2, Col 2');
56
- });
57
- it('calls onTableCreate when props change', function () {
58
- var sampleData = [
59
- ['Header 1', 'Header 2'],
60
- ['Row 1, Col 1', 'Row 1, Col 2'],
61
- ];
62
- var mockOnTableCreate = jest.fn();
63
- var rerender = render(_jsx(MarkdownTable, { inputData: sampleData, onTableCreate: mockOnTableCreate })).rerender;
64
- expect(mockOnTableCreate).toHaveBeenCalledTimes(1);
65
- // Change a prop and re-render
66
- var newData = [
67
- ['New Header 1', 'New Header 2'],
68
- ['New Row 1, Col 1', 'New Row 1, Col 2'],
69
- ];
70
- rerender(_jsx(MarkdownTable, { inputData: newData, onTableCreate: mockOnTableCreate }));
71
- // Check if onTableCreate was called again
72
- expect(mockOnTableCreate).toHaveBeenCalledTimes(2);
73
- // Check if onTableCreate was called with the new Markdown string
74
- var expectedNewMarkdown = "| New Header 1 | New Header 2 |\n| :--------------- | :--------------- |\n| New Row 1, Col 1 | New Row 1, Col 2 |";
75
- expect(mockOnTableCreate).toHaveBeenLastCalledWith(expectedNewMarkdown);
76
- });
77
- it('renders the table with correct markdown syntax', function () {
78
- render(_jsx(MarkdownTable, { inputData: sampleData }));
79
- var codeElement = screen.getByRole('code');
80
- expect(codeElement).toHaveTextContent('Header 1');
81
- expect(codeElement).toHaveTextContent('Header 2');
82
- expect(codeElement).toHaveTextContent('Header 3');
83
- expect(codeElement).toHaveTextContent('Row 1, Col 1');
84
- expect(codeElement).toHaveTextContent('Row 1, Col 2');
85
- expect(codeElement).toHaveTextContent('Row 1, Col 3');
86
- expect(codeElement).toHaveTextContent('Row 2, Col 1');
87
- expect(codeElement).toHaveTextContent('Row 2, Col 2');
88
- expect(codeElement).toHaveTextContent('Row 2, Col 3');
89
- });
90
- });
91
- //# sourceMappingURL=MarkdownTable.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownTable.test.js","sourceRoot":"","sources":["../../test/MarkdownTable.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};