react-markdown-table-ts 1.1.9 → 1.2.0
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 +90 -56
- package/dist/cellFormatter.d.ts +9 -0
- package/dist/index.cjs.js +49 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +49 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/types.d.ts +16 -4
- package/dist/utils.d.ts +4 -4
- package/package.json +1 -1
- package/dist/MarkdownTable.stories.d.ts +0 -156
- package/dist/jest.setup.d.ts +0 -2
- package/dist/jest.setup.js +0 -3
- package/dist/jest.setup.js.map +0 -1
- package/dist/src/MarkdownTable.stories.d.ts +0 -156
- package/dist/src/MarkdownTable.stories.js +0 -172
- package/dist/src/MarkdownTable.stories.js.map +0 -1
- package/dist/src/index.d.ts +0 -5
- package/dist/src/index.js +0 -78
- package/dist/src/index.js.map +0 -1
- package/dist/src/types.d.ts +0 -123
- package/dist/src/types.js +0 -3
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.d.ts +0 -8
- package/dist/src/utils.js +0 -176
- package/dist/src/utils.js.map +0 -1
- package/dist/src/validation.d.ts +0 -19
- package/dist/src/validation.js +0 -106
- package/dist/src/validation.js.map +0 -1
- package/dist/stories/Button.d.ts +0 -15
- package/dist/stories/Button.stories.d.ts +0 -23
- package/dist/stories/Header.d.ts +0 -12
- package/dist/stories/Header.stories.d.ts +0 -18
- package/dist/stories/Page.d.ts +0 -3
- package/dist/stories/Page.stories.d.ts +0 -13
- package/dist/test/MarkdownTable.test.d.ts +0 -1
- package/dist/test/MarkdownTable.test.js +0 -91
- package/dist/test/MarkdownTable.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -1
- package/dist/test/utils.test.js +0 -234
- package/dist/test/utils.test.js.map +0 -1
- package/dist/test/validation.test.d.ts +0 -1
- package/dist/test/validation.test.js +0 -86
- package/dist/test/validation.test.js.map +0 -1
package/dist/src/types.d.ts
DELETED
@@ -1,123 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
/**
|
3
|
-
* Represents a single row in a table, consisting of cells.
|
4
|
-
*/
|
5
|
-
export type TableRow = readonly string[];
|
6
|
-
/**
|
7
|
-
* Represents the structure of a Markdown table.
|
8
|
-
*/
|
9
|
-
export interface InputData {
|
10
|
-
inputDataHeader: string[];
|
11
|
-
inputDataBody: readonly string[][];
|
12
|
-
}
|
13
|
-
/**
|
14
|
-
* Props for the MarkdownTable component.
|
15
|
-
*/
|
16
|
-
export interface MarkdownTableProps {
|
17
|
-
/**
|
18
|
-
* The entire table data as a two-dimensional array.
|
19
|
-
* If `hasHeader` is true, the first row is treated as the header.
|
20
|
-
* @default null
|
21
|
-
*/
|
22
|
-
inputData?: string[][] | null;
|
23
|
-
/**
|
24
|
-
* Optional array specifying the alignment for each column.
|
25
|
-
* Acceptable values are 'left', 'center', 'right', or 'none'.
|
26
|
-
* @default []
|
27
|
-
*/
|
28
|
-
columnAlignments?: readonly Alignment[];
|
29
|
-
/**
|
30
|
-
* Disables column width alignment to provide a more compact markdown table string.
|
31
|
-
* @default false
|
32
|
-
*/
|
33
|
-
isCompact?: boolean;
|
34
|
-
/**
|
35
|
-
* Optional flag to add a single space around cell content in the markdown table.
|
36
|
-
* When true, one space is added before and after the content in each cell.
|
37
|
-
* @default true
|
38
|
-
*/
|
39
|
-
hasPadding?: boolean;
|
40
|
-
/**
|
41
|
-
* Optional flag to add tabs as additional padding between column pipes.
|
42
|
-
* When true, adds a tab character after each | and before the content.
|
43
|
-
* @default false
|
44
|
-
*/
|
45
|
-
hasTabs?: boolean;
|
46
|
-
/**
|
47
|
-
* Indicates whether the first row of `data` is a header.
|
48
|
-
* @default true
|
49
|
-
*/
|
50
|
-
hasHeader?: boolean;
|
51
|
-
/**
|
52
|
-
* Optional flag to replace newlines with <br> tags in table cells.
|
53
|
-
* @default false
|
54
|
-
*/
|
55
|
-
convertLineBreaks?: boolean;
|
56
|
-
/**
|
57
|
-
* Optional theme for the Markdown table.
|
58
|
-
* Acceptable values are 'light' or 'dark'.
|
59
|
-
* @default 'light'
|
60
|
-
*/
|
61
|
-
theme?: 'light' | 'dark';
|
62
|
-
/**
|
63
|
-
* Optional CSS class for styling the rendered Markdown table.
|
64
|
-
* This class will be applied to the <pre> element containing the table.
|
65
|
-
* It will be combined with built-in classes for syntax highlighting.
|
66
|
-
* @default undefined
|
67
|
-
* @example
|
68
|
-
* <MarkdownTable
|
69
|
-
* inputData={data}
|
70
|
-
* className="custom-table-style"
|
71
|
-
* />
|
72
|
-
*/
|
73
|
-
className?: string;
|
74
|
-
/**
|
75
|
-
* Optional CSS properties to apply to the pre element containing the Markdown table.
|
76
|
-
* Allows direct styling of the table container using React's style prop.
|
77
|
-
* @default undefined
|
78
|
-
* @example
|
79
|
-
* <MarkdownTable
|
80
|
-
* inputData={data}
|
81
|
-
* preStyle={{
|
82
|
-
* maxHeight: '300px',
|
83
|
-
* overflow: 'auto',
|
84
|
-
* backgroundColor: '#f5f5f5'
|
85
|
-
* }}
|
86
|
-
* />
|
87
|
-
*/
|
88
|
-
preStyle?: React.CSSProperties;
|
89
|
-
/**
|
90
|
-
* Optional callback function to receive the generated Markdown table string.
|
91
|
-
*/
|
92
|
-
onGenerate?: (markdownTableString: string) => void;
|
93
|
-
/**
|
94
|
-
* Optional top padding for the pre element.
|
95
|
-
* @default 0
|
96
|
-
*/
|
97
|
-
topPadding?: number;
|
98
|
-
}
|
99
|
-
/**
|
100
|
-
* Represents the alignment options for table columns.
|
101
|
-
*/
|
102
|
-
export type Alignment = 'left' | 'right' | 'center' | 'none' | 'justify';
|
103
|
-
/**
|
104
|
-
* Configuration for table formatting.
|
105
|
-
*/
|
106
|
-
export interface TableConfig {
|
107
|
-
columnCount: number;
|
108
|
-
columnAlignments: readonly Alignment[];
|
109
|
-
columnWidths?: readonly number[];
|
110
|
-
useTabs: boolean;
|
111
|
-
replaceNewlines: boolean;
|
112
|
-
hasPadding: boolean;
|
113
|
-
}
|
114
|
-
/**
|
115
|
-
* Functions to generate alignment indicators for table columns.
|
116
|
-
*/
|
117
|
-
export interface AlignmentIndicator {
|
118
|
-
left: (width: number) => string;
|
119
|
-
right: (width: number) => string;
|
120
|
-
center: (width: number) => string;
|
121
|
-
none: (width: number) => string;
|
122
|
-
justify: (width: number) => string;
|
123
|
-
}
|
package/dist/src/types.js
DELETED
package/dist/src/types.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,eAAe"}
|
package/dist/src/utils.d.ts
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
import { TableRow, InputData, Alignment } from './types';
|
2
|
-
export declare function calculateColumnWidths(tableRows: readonly TableRow[], maxColumnCount: number): number[];
|
3
|
-
export declare function generateMarkdownTableString(inputData: InputData, columnAlignments: readonly Alignment[], canAdjustColumnWidths?: boolean, useTabs?: boolean, replaceNewlines?: boolean, hasPadding?: boolean): string;
|
4
|
-
export declare function replaceNewlinesInCell(cell: string): string;
|
5
|
-
export declare function getColumnName(index: number): string;
|
6
|
-
export declare function generateAlphabetHeaders(columnCount: number): string[];
|
7
|
-
export declare function formatMarkdownRow(columnCount: number, currentRow: TableRow, columnAlignments: readonly Alignment[], columnWidths?: readonly number[], useTabs?: boolean, canReplaceNewlines?: boolean, hasPadding?: boolean): string;
|
8
|
-
export declare function formatAlignmentRow(columnCount: number, columnAlignments: readonly Alignment[], columnWidths?: readonly number[], useTabs?: boolean, hasPadding?: boolean): string;
|
package/dist/src/utils.js
DELETED
@@ -1,176 +0,0 @@
|
|
1
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
2
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
3
|
-
if (ar || !(i in from)) {
|
4
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
5
|
-
ar[i] = from[i];
|
6
|
-
}
|
7
|
-
}
|
8
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
9
|
-
};
|
10
|
-
var CellFormatter = /** @class */ (function () {
|
11
|
-
function CellFormatter(config) {
|
12
|
-
this.config = config;
|
13
|
-
this.padding = this.config.useTabs ? '\t' : (this.config.hasPadding ? ' ' : '');
|
14
|
-
}
|
15
|
-
CellFormatter.prototype.formatCell = function (content, alignment, width) {
|
16
|
-
var totalWidth = width;
|
17
|
-
switch (alignment) {
|
18
|
-
case 'right':
|
19
|
-
return "".concat(this.padding).concat(content.padStart(totalWidth)).concat(this.padding);
|
20
|
-
case 'center': {
|
21
|
-
var totalPadding = totalWidth - content.length;
|
22
|
-
var paddingLeft = Math.floor(totalPadding / 2);
|
23
|
-
var paddingRight = totalPadding - paddingLeft;
|
24
|
-
return "".concat(this.padding).concat(' '.repeat(paddingLeft)).concat(content).concat(' '.repeat(paddingRight)).concat(this.padding);
|
25
|
-
}
|
26
|
-
default: // left or none
|
27
|
-
return "".concat(this.padding).concat(content.padEnd(totalWidth)).concat(this.padding);
|
28
|
-
}
|
29
|
-
};
|
30
|
-
return CellFormatter;
|
31
|
-
}());
|
32
|
-
var AlignmentFormatter = /** @class */ (function () {
|
33
|
-
function AlignmentFormatter() {
|
34
|
-
}
|
35
|
-
AlignmentFormatter.formatIndicator = function (alignment, width) {
|
36
|
-
return this.indicators[alignment](width);
|
37
|
-
};
|
38
|
-
AlignmentFormatter.indicators = {
|
39
|
-
left: function (width) { return ":".concat('-'.repeat(width - 1)); },
|
40
|
-
right: function (width) { return "".concat('-'.repeat(width - 1), ":"); },
|
41
|
-
center: function (width) { return ":".concat('-'.repeat(width - 2), ":"); },
|
42
|
-
none: function (width) { return '-'.repeat(width); },
|
43
|
-
justify: function (width) { return '-'.repeat(width); }
|
44
|
-
};
|
45
|
-
return AlignmentFormatter;
|
46
|
-
}());
|
47
|
-
var TableFormatter = /** @class */ (function () {
|
48
|
-
function TableFormatter(config) {
|
49
|
-
this.config = config;
|
50
|
-
this.cellFormatter = new CellFormatter(config);
|
51
|
-
this.adjustedAlignments = this.getAdjustedAlignments();
|
52
|
-
}
|
53
|
-
TableFormatter.prototype.getAdjustedAlignments = function () {
|
54
|
-
var defaultAlignment = 'none';
|
55
|
-
var sanitizeAlignment = function (alignment) {
|
56
|
-
return alignment === 'justify' ? 'none' : alignment;
|
57
|
-
};
|
58
|
-
return this.config.columnAlignments.length < this.config.columnCount
|
59
|
-
? __spreadArray(__spreadArray([], Array.from(this.config.columnAlignments).map(sanitizeAlignment), true), Array(this.config.columnCount - this.config.columnAlignments.length).fill(defaultAlignment), true) : Array.from(this.config.columnAlignments).map(sanitizeAlignment);
|
60
|
-
};
|
61
|
-
TableFormatter.prototype.formatRow = function (row) {
|
62
|
-
var _this = this;
|
63
|
-
var formattedCells = Array.from({ length: this.config.columnCount }, function (_, i) {
|
64
|
-
var _a;
|
65
|
-
var cell = (_a = row[i]) !== null && _a !== void 0 ? _a : '';
|
66
|
-
if (_this.config.replaceNewlines) {
|
67
|
-
cell = replaceNewlinesInCell(cell);
|
68
|
-
}
|
69
|
-
var alignment = _this.adjustedAlignments[i];
|
70
|
-
var width = _this.config.columnWidths ? _this.config.columnWidths[i] : cell.length;
|
71
|
-
return _this.cellFormatter.formatCell(cell, alignment, width);
|
72
|
-
});
|
73
|
-
return "|".concat(formattedCells.join('|'), "|");
|
74
|
-
};
|
75
|
-
TableFormatter.prototype.formatAlignmentRow = function () {
|
76
|
-
var _this = this;
|
77
|
-
var padding = this.config.useTabs ? '\t' : (this.config.hasPadding ? ' ' : '');
|
78
|
-
var formattedColumns = Array.from({ length: this.config.columnCount }, function (_, i) {
|
79
|
-
var alignment = _this.adjustedAlignments[i];
|
80
|
-
var width = _this.config.columnWidths ? _this.config.columnWidths[i] : 3;
|
81
|
-
var indicator = AlignmentFormatter.formatIndicator(alignment, width);
|
82
|
-
return "".concat(padding).concat(indicator).concat(padding);
|
83
|
-
});
|
84
|
-
return "|".concat(formattedColumns.join('|'), "|");
|
85
|
-
};
|
86
|
-
return TableFormatter;
|
87
|
-
}());
|
88
|
-
export function calculateColumnWidths(tableRows, maxColumnCount) {
|
89
|
-
var widths = new Array(maxColumnCount).fill(3);
|
90
|
-
tableRows.forEach(function (row) {
|
91
|
-
var _a;
|
92
|
-
for (var i = 0; i < maxColumnCount; i++) {
|
93
|
-
var cell = (_a = row[i]) !== null && _a !== void 0 ? _a : '';
|
94
|
-
widths[i] = Math.max(widths[i], cell.length);
|
95
|
-
}
|
96
|
-
});
|
97
|
-
return widths;
|
98
|
-
}
|
99
|
-
function calculateMaxColumnCount(inputData) {
|
100
|
-
var headerColumnCount = inputData.inputDataHeader.length;
|
101
|
-
var bodyColumnCounts = inputData.inputDataBody.map(function (row) { return row.length; });
|
102
|
-
return Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
|
103
|
-
}
|
104
|
-
function getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths) {
|
105
|
-
return canAdjustColumnWidths
|
106
|
-
? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
|
107
|
-
: undefined;
|
108
|
-
}
|
109
|
-
export function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines, hasPadding) {
|
110
|
-
if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
|
111
|
-
if (useTabs === void 0) { useTabs = false; }
|
112
|
-
if (replaceNewlines === void 0) { replaceNewlines = false; }
|
113
|
-
if (hasPadding === void 0) { hasPadding = true; }
|
114
|
-
var maxColumnCount = calculateMaxColumnCount(inputData);
|
115
|
-
var columnWidths = getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths);
|
116
|
-
var config = {
|
117
|
-
columnCount: maxColumnCount,
|
118
|
-
columnAlignments: columnAlignments,
|
119
|
-
columnWidths: columnWidths,
|
120
|
-
useTabs: useTabs,
|
121
|
-
replaceNewlines: replaceNewlines,
|
122
|
-
hasPadding: hasPadding
|
123
|
-
};
|
124
|
-
var tableFormatter = new TableFormatter(config);
|
125
|
-
var headerRow = tableFormatter.formatRow(inputData.inputDataHeader);
|
126
|
-
var alignmentRow = tableFormatter.formatAlignmentRow();
|
127
|
-
var bodyRows = inputData.inputDataBody
|
128
|
-
.map(function (row) { return tableFormatter.formatRow(row); })
|
129
|
-
.join('\n');
|
130
|
-
return "".concat(headerRow, "\n").concat(alignmentRow, "\n").concat(bodyRows).trimEnd();
|
131
|
-
}
|
132
|
-
export function replaceNewlinesInCell(cell) {
|
133
|
-
return cell.replace(/\n/g, '<br>');
|
134
|
-
}
|
135
|
-
export function getColumnName(index) {
|
136
|
-
var columnName = '';
|
137
|
-
var currentIndex = index;
|
138
|
-
while (currentIndex >= 0) {
|
139
|
-
columnName = String.fromCharCode((currentIndex % 26) + 65) + columnName;
|
140
|
-
currentIndex = Math.floor(currentIndex / 26) - 1;
|
141
|
-
}
|
142
|
-
return columnName;
|
143
|
-
}
|
144
|
-
export function generateAlphabetHeaders(columnCount) {
|
145
|
-
return Array.from({ length: columnCount }, function (_, i) { return getColumnName(i); });
|
146
|
-
}
|
147
|
-
export function formatMarkdownRow(columnCount, currentRow, columnAlignments, columnWidths, useTabs, canReplaceNewlines, hasPadding) {
|
148
|
-
if (useTabs === void 0) { useTabs = false; }
|
149
|
-
if (canReplaceNewlines === void 0) { canReplaceNewlines = false; }
|
150
|
-
if (hasPadding === void 0) { hasPadding = true; }
|
151
|
-
var config = {
|
152
|
-
columnCount: columnCount,
|
153
|
-
columnAlignments: columnAlignments,
|
154
|
-
columnWidths: columnWidths,
|
155
|
-
useTabs: useTabs,
|
156
|
-
replaceNewlines: canReplaceNewlines,
|
157
|
-
hasPadding: hasPadding
|
158
|
-
};
|
159
|
-
var tableFormatter = new TableFormatter(config);
|
160
|
-
return tableFormatter.formatRow(currentRow);
|
161
|
-
}
|
162
|
-
export function formatAlignmentRow(columnCount, columnAlignments, columnWidths, useTabs, hasPadding) {
|
163
|
-
if (useTabs === void 0) { useTabs = false; }
|
164
|
-
if (hasPadding === void 0) { hasPadding = true; }
|
165
|
-
var config = {
|
166
|
-
columnCount: columnCount,
|
167
|
-
columnAlignments: columnAlignments,
|
168
|
-
columnWidths: columnWidths,
|
169
|
-
useTabs: useTabs,
|
170
|
-
replaceNewlines: false,
|
171
|
-
hasPadding: hasPadding
|
172
|
-
};
|
173
|
-
var tableFormatter = new TableFormatter(config);
|
174
|
-
return tableFormatter.formatAlignmentRow();
|
175
|
-
}
|
176
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/validation.d.ts
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
import { MarkdownTableProps } from './types';
|
2
|
-
/**
|
3
|
-
* Custom error class for handling Markdown table generation errors.
|
4
|
-
*/
|
5
|
-
export declare class MarkdownTableError extends Error {
|
6
|
-
constructor(message: string);
|
7
|
-
}
|
8
|
-
/**
|
9
|
-
* Validates that the input data is a non-empty two-dimensional array.
|
10
|
-
* @param inputData - The data to validate
|
11
|
-
* @throws {MarkdownTableError} If validation fails
|
12
|
-
*/
|
13
|
-
export declare function validateInputData(inputData: unknown): void;
|
14
|
-
/**
|
15
|
-
* Validates the structure of the table data based on the `hasHeader` flag.
|
16
|
-
* Throws an error if validation fails.
|
17
|
-
* @param markdownTableProps - The props to validate.
|
18
|
-
*/
|
19
|
-
export declare function validateMarkdownTableProps(markdownTableProps: MarkdownTableProps): void;
|
package/dist/src/validation.js
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
// src/validation.ts
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
3
|
-
var extendStatics = function (d, b) {
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
-
return extendStatics(d, b);
|
8
|
-
};
|
9
|
-
return function (d, b) {
|
10
|
-
if (typeof b !== "function" && b !== null)
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
-
extendStatics(d, b);
|
13
|
-
function __() { this.constructor = d; }
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
-
};
|
16
|
-
})();
|
17
|
-
/**
|
18
|
-
* Custom error class for handling Markdown table generation errors.
|
19
|
-
*/
|
20
|
-
var MarkdownTableError = /** @class */ (function (_super) {
|
21
|
-
__extends(MarkdownTableError, _super);
|
22
|
-
function MarkdownTableError(message) {
|
23
|
-
var _this = _super.call(this, message) || this;
|
24
|
-
_this.name = 'MarkdownTableError';
|
25
|
-
Object.setPrototypeOf(_this, MarkdownTableError.prototype);
|
26
|
-
return _this;
|
27
|
-
}
|
28
|
-
return MarkdownTableError;
|
29
|
-
}(Error));
|
30
|
-
export { MarkdownTableError };
|
31
|
-
/**
|
32
|
-
* Validates that the input data is a non-empty two-dimensional array.
|
33
|
-
* @param inputData - The data to validate
|
34
|
-
* @throws {MarkdownTableError} If validation fails
|
35
|
-
*/
|
36
|
-
export function validateInputData(inputData) {
|
37
|
-
if (inputData === null || !Array.isArray(inputData)) {
|
38
|
-
throw new MarkdownTableError("The 'data' prop must be a two-dimensional array.");
|
39
|
-
}
|
40
|
-
if (inputData.length === 0) {
|
41
|
-
throw new MarkdownTableError("The 'data' array must contain at least one row.");
|
42
|
-
}
|
43
|
-
}
|
44
|
-
function validateHeader(inputData, hasHeader) {
|
45
|
-
if (hasHeader) {
|
46
|
-
var header = inputData[0];
|
47
|
-
if (!Array.isArray(header) || header.length === 0) {
|
48
|
-
throw new MarkdownTableError("The first row of 'data' must be a non-empty array representing the header.");
|
49
|
-
}
|
50
|
-
header.forEach(function (cell, index) {
|
51
|
-
if (typeof cell !== 'string') {
|
52
|
-
throw new MarkdownTableError("Header cell at index ".concat(index, " must be a string."));
|
53
|
-
}
|
54
|
-
});
|
55
|
-
}
|
56
|
-
}
|
57
|
-
function validateRows(inputData) {
|
58
|
-
inputData.forEach(function (row, rowIndex) {
|
59
|
-
if (!Array.isArray(row)) {
|
60
|
-
throw new MarkdownTableError("Row ".concat(rowIndex + 1, " in 'data' must be an array of strings."));
|
61
|
-
}
|
62
|
-
row.forEach(function (cell, cellIndex) {
|
63
|
-
if (typeof cell !== 'string') {
|
64
|
-
throw new MarkdownTableError("Cell at row ".concat(rowIndex + 1, ", column ").concat(cellIndex + 1, " must be a string."));
|
65
|
-
}
|
66
|
-
});
|
67
|
-
});
|
68
|
-
}
|
69
|
-
function validateColumnAlignments(columnAlignments) {
|
70
|
-
if (columnAlignments) {
|
71
|
-
if (!Array.isArray(columnAlignments)) {
|
72
|
-
throw new MarkdownTableError("'columnAlignments' must be an array of alignment strings.");
|
73
|
-
}
|
74
|
-
var validAlignments_1 = ['left', 'center', 'right', 'none', 'justify'];
|
75
|
-
columnAlignments.forEach(function (alignment, index) {
|
76
|
-
if (!validAlignments_1.includes(alignment)) {
|
77
|
-
throw new MarkdownTableError("Invalid alignment '".concat(alignment, "' at index ").concat(index, ". Valid options are 'left', 'center', 'right', 'none', 'justify'."));
|
78
|
-
}
|
79
|
-
});
|
80
|
-
}
|
81
|
-
}
|
82
|
-
function validateBooleanProps(props) {
|
83
|
-
Object.entries(props).forEach(function (_a) {
|
84
|
-
var key = _a[0], value = _a[1];
|
85
|
-
if (typeof value !== 'boolean') {
|
86
|
-
throw new MarkdownTableError("'".concat(key, "' must be a boolean."));
|
87
|
-
}
|
88
|
-
});
|
89
|
-
}
|
90
|
-
/**
|
91
|
-
* Validates the structure of the table data based on the `hasHeader` flag.
|
92
|
-
* Throws an error if validation fails.
|
93
|
-
* @param markdownTableProps - The props to validate.
|
94
|
-
*/
|
95
|
-
export function validateMarkdownTableProps(markdownTableProps) {
|
96
|
-
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.convertLineBreaks, convertLineBreaks = _d === void 0 ? false : _d;
|
97
|
-
if (!inputData) {
|
98
|
-
throw new MarkdownTableError("The 'data' prop must be a non-null two-dimensional array.");
|
99
|
-
}
|
100
|
-
validateInputData(inputData);
|
101
|
-
validateHeader(inputData, hasHeader);
|
102
|
-
validateRows(inputData);
|
103
|
-
validateColumnAlignments(columnAlignments);
|
104
|
-
validateBooleanProps({ isCompact: isCompact, hasTabs: hasTabs, convertLineBreaks: convertLineBreaks });
|
105
|
-
}
|
106
|
-
//# sourceMappingURL=validation.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,oBAAoB;;;;;;;;;;;;;;;;AAIpB;;GAEG;AACH;IAAwC,sCAAK;IAC3C,4BAAY,OAAe;QAA3B,YACE,kBAAM,OAAO,CAAC,SAGf;QAFC,KAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;;IAC5D,CAAC;IACH,yBAAC;AAAD,CAAC,AAND,CAAwC,KAAK,GAM5C;;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACnD,MAAM,IAAI,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;KAClF;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,CAAC,CAAC;KACjF;AACH,CAAC;AAED,SAAS,cAAc,CAAC,SAAqB,EAAE,SAAkB;IAC/D,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,CAAC,4EAA4E,CAAC,CAAC;SAC5G;QAED,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,IAAI,kBAAkB,CAAC,+BAAwB,KAAK,uBAAoB,CAAC,CAAC;aACjF;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAqB;IACzC,SAAS,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,QAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,kBAAkB,CAAC,cAAO,QAAQ,GAAG,CAAC,4CAAyC,CAAC,CAAC;SAC5F;QAED,GAAG,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;YAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,IAAI,kBAAkB,CAAC,sBAAe,QAAQ,GAAG,CAAC,sBAAY,SAAS,GAAG,CAAC,uBAAoB,CAAC,CAAC;aACxG;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,gBAAyB;IACzD,IAAI,gBAAgB,EAAE;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACpC,MAAM,IAAI,kBAAkB,CAAC,2DAA2D,CAAC,CAAC;SAC3F;QAED,IAAM,iBAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACvE,gBAAgB,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,KAAK;YACxC,IAAI,CAAC,iBAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACxC,MAAM,IAAI,kBAAkB,CAAC,6BAAsB,SAAS,wBAAc,KAAK,sEAAmE,CAAC,CAAC;aACrJ;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAiC;IAC7D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;YAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QACxC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,kBAAkB,CAAC,WAAI,GAAG,yBAAsB,CAAC,CAAC;SAC7D;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,kBAAsC;IAE7E,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,kBADK,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,CACJ;IAEvB,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,kBAAkB,CAAC,2DAA2D,CAAC,CAAC;KAC3F;IAED,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxB,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,SAAS,WAAA,EAAE,OAAO,SAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/stories/Button.d.ts
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
import './button.css';
|
2
|
-
export interface ButtonProps {
|
3
|
-
/** Is this the principal call to action on the page? */
|
4
|
-
primary?: boolean;
|
5
|
-
/** What background color to use */
|
6
|
-
backgroundColor?: string;
|
7
|
-
/** How large should the button be? */
|
8
|
-
size?: 'small' | 'medium' | 'large';
|
9
|
-
/** Button contents */
|
10
|
-
label: string;
|
11
|
-
/** Optional click handler */
|
12
|
-
onClick?: () => void;
|
13
|
-
}
|
14
|
-
/** Primary UI component for user interaction */
|
15
|
-
export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import type { StoryObj } from '@storybook/react';
|
2
|
-
declare const meta: {
|
3
|
-
title: string;
|
4
|
-
component: ({ primary, size, backgroundColor, label, ...props }: import("./Button").ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
5
|
-
parameters: {
|
6
|
-
layout: string;
|
7
|
-
};
|
8
|
-
tags: string[];
|
9
|
-
argTypes: {
|
10
|
-
backgroundColor: {
|
11
|
-
control: "color";
|
12
|
-
};
|
13
|
-
};
|
14
|
-
args: {
|
15
|
-
onClick: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
16
|
-
};
|
17
|
-
};
|
18
|
-
export default meta;
|
19
|
-
type Story = StoryObj<typeof meta>;
|
20
|
-
export declare const Primary: Story;
|
21
|
-
export declare const Secondary: Story;
|
22
|
-
export declare const Large: Story;
|
23
|
-
export declare const Small: Story;
|
package/dist/stories/Header.d.ts
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import './header.css';
|
2
|
-
type User = {
|
3
|
-
name: string;
|
4
|
-
};
|
5
|
-
export interface HeaderProps {
|
6
|
-
user?: User;
|
7
|
-
onLogin?: () => void;
|
8
|
-
onLogout?: () => void;
|
9
|
-
onCreateAccount?: () => void;
|
10
|
-
}
|
11
|
-
export declare const Header: ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
12
|
-
export {};
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import type { StoryObj } from '@storybook/react';
|
2
|
-
declare const meta: {
|
3
|
-
title: string;
|
4
|
-
component: ({ user, onLogin, onLogout, onCreateAccount }: import("./Header").HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
5
|
-
tags: string[];
|
6
|
-
parameters: {
|
7
|
-
layout: string;
|
8
|
-
};
|
9
|
-
args: {
|
10
|
-
onLogin: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
11
|
-
onLogout: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
12
|
-
onCreateAccount: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
13
|
-
};
|
14
|
-
};
|
15
|
-
export default meta;
|
16
|
-
type Story = StoryObj<typeof meta>;
|
17
|
-
export declare const LoggedIn: Story;
|
18
|
-
export declare const LoggedOut: Story;
|
package/dist/stories/Page.d.ts
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
import type { StoryObj } from '@storybook/react';
|
3
|
-
declare const meta: {
|
4
|
-
title: string;
|
5
|
-
component: import("react").FC<{}>;
|
6
|
-
parameters: {
|
7
|
-
layout: string;
|
8
|
-
};
|
9
|
-
};
|
10
|
-
export default meta;
|
11
|
-
type Story = StoryObj<typeof meta>;
|
12
|
-
export declare const LoggedOut: Story;
|
13
|
-
export declare const LoggedIn: Story;
|
@@ -1 +0,0 @@
|
|
1
|
-
import '@testing-library/jest-dom';
|
@@ -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, convertLineBreaks: 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, onGenerate: 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, onGenerate: 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, onGenerate: 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
|