react-markdown-table-ts 0.2.4 → 0.3.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.
Files changed (48) hide show
  1. package/dist/errors.js +31 -0
  2. package/dist/errors.js.map +1 -0
  3. package/dist/helpers.js +93 -0
  4. package/dist/helpers.js.map +1 -0
  5. package/dist/index.cjs.js +2 -2
  6. package/dist/index.cjs.js.map +1 -1
  7. package/dist/index.esm.js +2 -2
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/src/errors.d.ts +6 -0
  10. package/dist/src/errors.js +31 -0
  11. package/dist/src/errors.js.map +1 -0
  12. package/dist/src/helpers.d.ts +34 -0
  13. package/dist/src/helpers.js +93 -0
  14. package/dist/src/helpers.js.map +1 -0
  15. package/dist/src/index.d.ts +19 -0
  16. package/dist/src/index.js +200 -0
  17. package/dist/src/index.js.map +1 -0
  18. package/dist/src/types.d.ts +62 -0
  19. package/dist/src/types.js +3 -0
  20. package/dist/src/types.js.map +1 -0
  21. package/dist/src/utils.d.ts +44 -0
  22. package/dist/src/utils.js +142 -0
  23. package/dist/src/utils.js.map +1 -0
  24. package/dist/src/validation.d.ts +7 -0
  25. package/dist/src/validation.js +65 -0
  26. package/dist/src/validation.js.map +1 -0
  27. package/dist/test/MarkdownTable.test.d.ts +1 -0
  28. package/dist/test/MarkdownTable.test.js +91 -0
  29. package/dist/test/MarkdownTable.test.js.map +1 -0
  30. package/dist/test/helpers.test.d.ts +1 -0
  31. package/dist/test/helpers.test.js +99 -0
  32. package/dist/test/helpers.test.js.map +1 -0
  33. package/dist/test/jest.setup.d.ts +2 -0
  34. package/dist/test/jest.setup.js +3 -0
  35. package/dist/test/jest.setup.js.map +1 -0
  36. package/dist/test/utils.test.d.ts +1 -0
  37. package/dist/test/utils.test.js +46 -0
  38. package/dist/test/utils.test.js.map +1 -0
  39. package/dist/test/validation.test.d.ts +1 -0
  40. package/dist/test/validation.test.js +81 -0
  41. package/dist/test/validation.test.js.map +1 -0
  42. package/dist/types.js +3 -0
  43. package/dist/types.js.map +1 -0
  44. package/dist/utils.js +142 -0
  45. package/dist/utils.js.map +1 -0
  46. package/dist/validation.js +65 -0
  47. package/dist/validation.js.map +1 -0
  48. package/package.json +2 -1
package/dist/errors.js ADDED
@@ -0,0 +1,31 @@
1
+ // src/errors.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
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,gBAAgB;;;;;;;;;;;;;;;;AAEhB;;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"}
@@ -0,0 +1,93 @@
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
+ * Calculates the maximum width for each column based on the content.
13
+ * @param params - The parameters for column width calculation.
14
+ * @returns An array of maximum widths for each column.
15
+ */
16
+ export function calculateColumnWidths(_a) {
17
+ var allRows = _a.allRows, maxColumnCount = _a.maxColumnCount;
18
+ return allRows.reduce(function (widths, row) {
19
+ var _a, _b;
20
+ for (var i = 0; i < maxColumnCount; i++) {
21
+ var cell = (_a = row[i]) !== null && _a !== void 0 ? _a : '';
22
+ widths[i] = Math.max((_b = widths[i]) !== null && _b !== void 0 ? _b : 3, cell.length);
23
+ }
24
+ return widths;
25
+ }, new Array(maxColumnCount).fill(3));
26
+ }
27
+ /**
28
+ * Formats a single row into a Markdown-formatted string.
29
+ * @param params - The parameters for row formatting.
30
+ * @returns The Markdown string for the row.
31
+ */
32
+ export function formatMarkdownRow(_a) {
33
+ var _b, _c;
34
+ var columnCount = _a.columnCount, row = _a.row, _d = _a.columnAlignments, columnAlignments = _d === void 0 ? [] : _d, columnWidths = _a.columnWidths;
35
+ var defaultAlignment = 'left';
36
+ var adjustedAlignments = columnAlignments.length < columnCount
37
+ ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
38
+ var markdownRow = '|';
39
+ for (var i = 0; i < columnCount; i++) {
40
+ var cell = (_b = row[i]) !== null && _b !== void 0 ? _b : '';
41
+ var alignment = (_c = adjustedAlignments[i]) !== null && _c !== void 0 ? _c : defaultAlignment;
42
+ var targetWidth = columnWidths ? columnWidths[i] : cell.length;
43
+ if (alignment === 'right') {
44
+ markdownRow += " ".concat(cell.padStart(targetWidth), " |");
45
+ }
46
+ else if (alignment === 'center') {
47
+ var totalPadding = targetWidth - cell.length;
48
+ var paddingLeft = Math.floor(totalPadding / 2);
49
+ var paddingRight = totalPadding - paddingLeft;
50
+ markdownRow += " ".concat(' '.repeat(paddingLeft)).concat(cell).concat(' '.repeat(paddingRight), " |");
51
+ }
52
+ else {
53
+ // Left alignment or default
54
+ markdownRow += " ".concat(cell.padEnd(targetWidth), " |");
55
+ }
56
+ }
57
+ return markdownRow;
58
+ }
59
+ /**
60
+ * Generates the alignment row for the Markdown table syntax.
61
+ * @param params - The parameters for alignment row generation.
62
+ * @returns The Markdown string for the alignment row.
63
+ */
64
+ export function formatAlignmentRow(_a) {
65
+ var _b;
66
+ var columnCount = _a.columnCount, _c = _a.columnAlignments, columnAlignments = _c === void 0 ? [] : _c, columnWidths = _a.columnWidths;
67
+ var defaultAlignment = 'left';
68
+ var adjustedAlignments = columnAlignments.length < columnCount
69
+ ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
70
+ var alignmentRow = '|';
71
+ for (var i = 0; i < columnCount; i++) {
72
+ var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : defaultAlignment;
73
+ var targetWidth = columnWidths ? columnWidths[i] : 3;
74
+ var alignIndicator = '';
75
+ switch (alignment) {
76
+ case 'left':
77
+ alignIndicator = ":".concat('-'.repeat(targetWidth - 1));
78
+ break;
79
+ case 'center':
80
+ alignIndicator = ":".concat('-'.repeat(targetWidth - 2), ":");
81
+ break;
82
+ case 'right':
83
+ alignIndicator = "".concat('-'.repeat(targetWidth - 1), ":");
84
+ break;
85
+ default:
86
+ alignIndicator = "".concat('-'.repeat(targetWidth));
87
+ break;
88
+ }
89
+ alignmentRow += " ".concat(alignIndicator, " |");
90
+ }
91
+ return alignmentRow;
92
+ }
93
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
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 prismStyles = "\n code[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}\n 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}\n code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}\n @media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}\n pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}\n :not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}\n :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}\n .token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}\n .token.punctuation{color:#999}\n .token.namespace{opacity:.7}\n .token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}\n .token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}\n .language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}\n .token.atrule,.token.attr-value,.token.keyword{color:#07a}\n .token.class-name,.token.function{color:#dd4a68}\n .token.important,.token.regex,.token.variable{color:#e90}\n .token.bold,.token.important{font-weight:700}\n .token.italic{font-style:italic}\n .token.entity{cursor:help}\n \n /* Line Numbers */\n pre[class*=\"language-\"].line-numbers {\n position: relative;\n padding-left: 3.8em;\n counter-reset: linenumber;\n }\n\n pre[class*=\"language-\"].line-numbers > code {\n position: relative;\n white-space: inherit;\n }\n\n .line-numbers .line-numbers-rows {\n position: absolute;\n pointer-events: none;\n top: 0;\n font-size: 100%;\n left: -3.8em;\n width: 3em; /* works for line-numbers below 1000 lines */\n letter-spacing: -1px;\n border-right: 1px solid #999;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .line-numbers-rows > span {\n display: block;\n counter-increment: linenumber;\n }\n\n .line-numbers-rows > span:before {\n content: counter(linenumber);\n color: #999;\n display: block;\n padding-right: 0.8em;\n text-align: right;\n }\n";
4061
+ var prismStyles = "\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) {
@@ -4225,7 +4225,7 @@ var MarkdownTable = function (_a) {
4225
4225
  Prism$1.highlightElement(preRef.current.querySelector('code'));
4226
4226
  }
4227
4227
  }, [markdownSyntax]);
4228
- return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { children: prismStyles }), jsxRuntimeExports.jsx("pre", { ref: preRef, className: "".concat(className, " language-markdown line-numbers"), children: jsxRuntimeExports.jsx("code", { children: markdownSyntax }) })] }));
4228
+ return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { children: prismStyles }), jsxRuntimeExports.jsx("pre", { ref: preRef, className: "".concat(className, " language-markdown line-numbers"), children: jsxRuntimeExports.jsx("code", { className: "language-markdown", role: "code", children: markdownSyntax }) })] }));
4229
4229
  };
4230
4230
 
4231
4231
  exports.MarkdownTable = MarkdownTable;