react-markdown-table-ts 0.6.2 → 0.6.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.
- package/dist/index.cjs.js +48 -27
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +48 -27
- package/dist/index.esm.js.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/dist/validation.d.ts +6 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
@@ -4052,21 +4052,6 @@ var Prism$1 = /*@__PURE__*/getDefaultExportFromCjs(prismExports);
|
|
4052
4052
|
|
4053
4053
|
}());
|
4054
4054
|
|
4055
|
-
// src/validation.ts
|
4056
|
-
/**
|
4057
|
-
* Custom error class for handling Markdown table generation errors.
|
4058
|
-
*/
|
4059
|
-
var MarkdownTableError = /** @class */ (function (_super) {
|
4060
|
-
__extends(MarkdownTableError, _super);
|
4061
|
-
function MarkdownTableError(message) {
|
4062
|
-
var _this = _super.call(this, message) || this;
|
4063
|
-
_this.name = 'MarkdownTableError';
|
4064
|
-
Object.setPrototypeOf(_this, MarkdownTableError.prototype);
|
4065
|
-
return _this;
|
4066
|
-
}
|
4067
|
-
return MarkdownTableError;
|
4068
|
-
}(Error));
|
4069
|
-
|
4070
4055
|
// src/utils.ts
|
4071
4056
|
/**
|
4072
4057
|
* Adjusts column alignments array to match the required column count
|
@@ -4097,15 +4082,22 @@ function calculateColumnWidths(tableRows, maxColumnCount) {
|
|
4097
4082
|
return widths;
|
4098
4083
|
}
|
4099
4084
|
function formatCell(cell, alignment, targetWidth, useTabs, padding) {
|
4085
|
+
var pad = useTabs ? '\t' : padding;
|
4100
4086
|
switch (alignment) {
|
4101
4087
|
case 'right':
|
4102
|
-
return
|
4088
|
+
return formatRightAlignedCell(cell, targetWidth, pad);
|
4103
4089
|
case 'center':
|
4104
4090
|
return formatCenterAlignedCell(cell, targetWidth, useTabs, padding);
|
4105
4091
|
default:
|
4106
|
-
return
|
4092
|
+
return formatLeftAlignedCell(cell, targetWidth, pad);
|
4107
4093
|
}
|
4108
4094
|
}
|
4095
|
+
function formatRightAlignedCell(cell, targetWidth, pad) {
|
4096
|
+
return "".concat(pad).concat(cell.padStart(targetWidth)).concat(pad);
|
4097
|
+
}
|
4098
|
+
function formatLeftAlignedCell(cell, targetWidth, pad) {
|
4099
|
+
return "".concat(pad).concat(cell.padEnd(targetWidth)).concat(pad);
|
4100
|
+
}
|
4109
4101
|
function formatCenterAlignedCell(cell, targetWidth, useTabs, padding) {
|
4110
4102
|
var totalPadding = targetWidth - cell.length;
|
4111
4103
|
var paddingLeft = Math.floor(totalPadding / 2);
|
@@ -4163,15 +4155,22 @@ function getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths) {
|
|
4163
4155
|
? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
|
4164
4156
|
: undefined;
|
4165
4157
|
}
|
4166
|
-
function
|
4158
|
+
function formatHeaderAndAlignment(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
|
4167
4159
|
var headerRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
|
4168
4160
|
var alignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs, hasPadding);
|
4169
|
-
|
4161
|
+
return "".concat(headerRow, "\n").concat(alignmentRow);
|
4162
|
+
}
|
4163
|
+
function formatBodyRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
|
4164
|
+
return inputData.inputDataBody
|
4170
4165
|
.map(function (currentRow) {
|
4171
4166
|
return formatMarkdownRow(maxColumnCount, currentRow, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
|
4172
4167
|
})
|
4173
4168
|
.join('\n');
|
4174
|
-
|
4169
|
+
}
|
4170
|
+
function formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
|
4171
|
+
var headerAndAlignment = formatHeaderAndAlignment(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
|
4172
|
+
var bodyRows = formatBodyRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
|
4173
|
+
return "".concat(headerAndAlignment, "\n").concat(bodyRows);
|
4175
4174
|
}
|
4176
4175
|
function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines, hasPadding) {
|
4177
4176
|
if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
|
@@ -18518,14 +18517,37 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
|
|
18518
18517
|
} : void 0;
|
18519
18518
|
var Tooltip$1 = Tooltip;
|
18520
18519
|
|
18520
|
+
// src/validation.ts
|
18521
|
+
/**
|
18522
|
+
* Custom error class for handling Markdown table generation errors.
|
18523
|
+
*/
|
18524
|
+
var MarkdownTableError = /** @class */ (function (_super) {
|
18525
|
+
__extends(MarkdownTableError, _super);
|
18526
|
+
function MarkdownTableError(message) {
|
18527
|
+
var _this = _super.call(this, message) || this;
|
18528
|
+
_this.name = 'MarkdownTableError';
|
18529
|
+
Object.setPrototypeOf(_this, MarkdownTableError.prototype);
|
18530
|
+
return _this;
|
18531
|
+
}
|
18532
|
+
return MarkdownTableError;
|
18533
|
+
}(Error));
|
18534
|
+
/**
|
18535
|
+
* Validates that the input data is a non-empty two-dimensional array.
|
18536
|
+
* @param inputData - The data to validate
|
18537
|
+
* @throws {MarkdownTableError} If validation fails
|
18538
|
+
*/
|
18539
|
+
function validateInputData(inputData) {
|
18540
|
+
if (inputData === null || !Array.isArray(inputData)) {
|
18541
|
+
throw new MarkdownTableError("The 'data' prop must be a two-dimensional array.");
|
18542
|
+
}
|
18543
|
+
if (inputData.length === 0) {
|
18544
|
+
throw new MarkdownTableError("The 'data' array must contain at least one row.");
|
18545
|
+
}
|
18546
|
+
}
|
18547
|
+
|
18521
18548
|
// CSS styles
|
18522
18549
|
var LIGHT_THEME_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:2.4em;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:.5em;text-align:right}\n";
|
18523
18550
|
var DARK_THEME_CSS = "\ncode[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);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}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}pre[class*=language-].line-numbers{position:relative;padding-left:2.4em;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:.5em;text-align:right}\n";
|
18524
|
-
var validateInputData = function (inputData) {
|
18525
|
-
if (inputData === null || !Array.isArray(inputData) || inputData.length === 0) {
|
18526
|
-
throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
|
18527
|
-
}
|
18528
|
-
};
|
18529
18551
|
var getTableData = function (inputData, hasHeader) {
|
18530
18552
|
return hasHeader
|
18531
18553
|
? { inputDataHeader: inputData[0], inputDataBody: inputData.slice(1) }
|
@@ -18534,8 +18556,7 @@ var getTableData = function (inputData, hasHeader) {
|
|
18534
18556
|
var generateTableSyntax = function (inputData, hasHeader, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding) {
|
18535
18557
|
try {
|
18536
18558
|
validateInputData(inputData);
|
18537
|
-
var
|
18538
|
-
var _a = getTableData(nonNullInputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
|
18559
|
+
var _a = getTableData(inputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
|
18539
18560
|
return generateMarkdownTableString({ inputDataHeader: inputDataHeader, inputDataBody: inputDataBody }, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
|
18540
18561
|
}
|
18541
18562
|
catch (error) {
|