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/README.md
CHANGED
@@ -34,10 +34,10 @@ npm install react-markdown-table-ts
|
|
34
34
|
|
35
35
|
| Prop | Type | Default | Description |
|
36
36
|
| :------------------: | :-------------------------------------------: | :---------: | :-----------------------------------------: |
|
37
|
-
| `data` | `string[][]` |
|
37
|
+
| `data` | `string[][]` | `null` | The table data as a 2D array of strings |
|
38
38
|
| `columnAlignments` | `('left' \| 'center' \| 'right' \| 'none')[]` | `[]` | Alignment for each column |
|
39
39
|
| `isCompact` | `boolean` | `false` | Use minimal column widths |
|
40
|
-
| `className` | `string` | `undefined` |
|
40
|
+
| `className` | `string` | `undefined` | CSS class for the `<pre>` tag |
|
41
41
|
| `hasTabs` | `boolean` | `false` | Add tabs between table columns |
|
42
42
|
| `canReplaceNewlines` | `boolean` | `false` | Replace newlines in cells with `<br>` tags |
|
43
43
|
| `onTableCreate` | `(markdownString: string) => void` | `undefined` | Callback to receive the Markdown string |
|
package/dist/index.cjs.js
CHANGED
@@ -4058,7 +4058,7 @@ var Prism$1 = /*@__PURE__*/getDefaultExportFromCjs(prismExports);
|
|
4058
4058
|
}());
|
4059
4059
|
|
4060
4060
|
// CSS styles
|
4061
|
-
var
|
4061
|
+
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";
|
4062
4062
|
var MarkdownTableError = /** @class */ (function (_super) {
|
4063
4063
|
__extends(MarkdownTableError, _super);
|
4064
4064
|
function MarkdownTableError(message) {
|
@@ -4177,25 +4177,25 @@ function getColumnName(index) {
|
|
4177
4177
|
return name;
|
4178
4178
|
}
|
4179
4179
|
var MarkdownTable = function (_a) {
|
4180
|
-
var _b = _a.
|
4180
|
+
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;
|
4181
4181
|
var adjustColumnWidths = !isCompact;
|
4182
|
-
var
|
4183
|
-
var
|
4184
|
-
if (
|
4182
|
+
var preElementRef = require$$0.useRef(null);
|
4183
|
+
var markdownTableSyntax = require$$0.useMemo(function () {
|
4184
|
+
if (inputData === null) {
|
4185
4185
|
return 'Error: No data provided for the table.';
|
4186
4186
|
}
|
4187
4187
|
try {
|
4188
|
-
if (!Array.isArray(
|
4188
|
+
if (!Array.isArray(inputData) || inputData.length === 0) {
|
4189
4189
|
throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
|
4190
4190
|
}
|
4191
4191
|
var tableData = hasHeader
|
4192
4192
|
? {
|
4193
|
-
header:
|
4194
|
-
rows:
|
4193
|
+
header: inputData[0],
|
4194
|
+
rows: inputData.slice(1),
|
4195
4195
|
}
|
4196
4196
|
: {
|
4197
|
-
header: generateAlphabetHeaders(
|
4198
|
-
rows:
|
4197
|
+
header: generateAlphabetHeaders(inputData[0].length),
|
4198
|
+
rows: inputData,
|
4199
4199
|
};
|
4200
4200
|
return generateMarkdownTableString(tableData, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines);
|
4201
4201
|
}
|
@@ -4208,7 +4208,7 @@ var MarkdownTable = function (_a) {
|
|
4208
4208
|
}
|
4209
4209
|
}
|
4210
4210
|
}, [
|
4211
|
-
|
4211
|
+
inputData,
|
4212
4212
|
hasHeader,
|
4213
4213
|
columnAlignments,
|
4214
4214
|
isCompact,
|
@@ -4217,15 +4217,15 @@ var MarkdownTable = function (_a) {
|
|
4217
4217
|
]);
|
4218
4218
|
require$$0.useEffect(function () {
|
4219
4219
|
if (onTableCreate) {
|
4220
|
-
onTableCreate(
|
4220
|
+
onTableCreate(markdownTableSyntax);
|
4221
4221
|
}
|
4222
|
-
}, [
|
4222
|
+
}, [markdownTableSyntax, onTableCreate]);
|
4223
4223
|
require$$0.useEffect(function () {
|
4224
|
-
if (
|
4225
|
-
Prism$1.highlightElement(
|
4224
|
+
if (preElementRef.current) {
|
4225
|
+
Prism$1.highlightElement(preElementRef.current.querySelector('code'));
|
4226
4226
|
}
|
4227
|
-
}, [
|
4228
|
-
return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { children:
|
4227
|
+
}, [markdownTableSyntax]);
|
4228
|
+
return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { children: PRISM_CSS }), jsxRuntimeExports.jsx("pre", { ref: preElementRef, className: "".concat(className, " language-markdown line-numbers"), children: jsxRuntimeExports.jsx("code", { className: "language-markdown", role: "code", children: markdownTableSyntax }) })] }));
|
4229
4229
|
};
|
4230
4230
|
|
4231
4231
|
exports.MarkdownTable = MarkdownTable;
|