react-markdown-table-ts 0.6.3 → 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 CHANGED
@@ -4079,21 +4079,6 @@ var Prism$1 = /*@__PURE__*/getDefaultExportFromCjs(prismExports);
4079
4079
 
4080
4080
  }());
4081
4081
 
4082
- // src/validation.ts
4083
- /**
4084
- * Custom error class for handling Markdown table generation errors.
4085
- */
4086
- var MarkdownTableError = /** @class */ (function (_super) {
4087
- __extends(MarkdownTableError, _super);
4088
- function MarkdownTableError(message) {
4089
- var _this = _super.call(this, message) || this;
4090
- _this.name = 'MarkdownTableError';
4091
- Object.setPrototypeOf(_this, MarkdownTableError.prototype);
4092
- return _this;
4093
- }
4094
- return MarkdownTableError;
4095
- }(Error));
4096
-
4097
4082
  // src/utils.ts
4098
4083
  /**
4099
4084
  * Adjusts column alignments array to match the required column count
@@ -4124,15 +4109,22 @@ function calculateColumnWidths(tableRows, maxColumnCount) {
4124
4109
  return widths;
4125
4110
  }
4126
4111
  function formatCell(cell, alignment, targetWidth, useTabs, padding) {
4112
+ var pad = useTabs ? '\t' : padding;
4127
4113
  switch (alignment) {
4128
4114
  case 'right':
4129
- return "".concat(useTabs ? '\t' : padding).concat(cell.padStart(targetWidth)).concat(useTabs ? '\t' : padding);
4115
+ return formatRightAlignedCell(cell, targetWidth, pad);
4130
4116
  case 'center':
4131
4117
  return formatCenterAlignedCell(cell, targetWidth, useTabs, padding);
4132
4118
  default:
4133
- return "".concat(useTabs ? '\t' : padding).concat(cell.padEnd(targetWidth)).concat(useTabs ? '\t' : padding);
4119
+ return formatLeftAlignedCell(cell, targetWidth, pad);
4134
4120
  }
4135
4121
  }
4122
+ function formatRightAlignedCell(cell, targetWidth, pad) {
4123
+ return "".concat(pad).concat(cell.padStart(targetWidth)).concat(pad);
4124
+ }
4125
+ function formatLeftAlignedCell(cell, targetWidth, pad) {
4126
+ return "".concat(pad).concat(cell.padEnd(targetWidth)).concat(pad);
4127
+ }
4136
4128
  function formatCenterAlignedCell(cell, targetWidth, useTabs, padding) {
4137
4129
  var totalPadding = targetWidth - cell.length;
4138
4130
  var paddingLeft = Math.floor(totalPadding / 2);
@@ -18552,14 +18544,37 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
18552
18544
  } : void 0;
18553
18545
  var Tooltip$1 = Tooltip;
18554
18546
 
18547
+ // src/validation.ts
18548
+ /**
18549
+ * Custom error class for handling Markdown table generation errors.
18550
+ */
18551
+ var MarkdownTableError = /** @class */ (function (_super) {
18552
+ __extends(MarkdownTableError, _super);
18553
+ function MarkdownTableError(message) {
18554
+ var _this = _super.call(this, message) || this;
18555
+ _this.name = 'MarkdownTableError';
18556
+ Object.setPrototypeOf(_this, MarkdownTableError.prototype);
18557
+ return _this;
18558
+ }
18559
+ return MarkdownTableError;
18560
+ }(Error));
18561
+ /**
18562
+ * Validates that the input data is a non-empty two-dimensional array.
18563
+ * @param inputData - The data to validate
18564
+ * @throws {MarkdownTableError} If validation fails
18565
+ */
18566
+ function validateInputData(inputData) {
18567
+ if (inputData === null || !Array.isArray(inputData)) {
18568
+ throw new MarkdownTableError("The 'data' prop must be a two-dimensional array.");
18569
+ }
18570
+ if (inputData.length === 0) {
18571
+ throw new MarkdownTableError("The 'data' array must contain at least one row.");
18572
+ }
18573
+ }
18574
+
18555
18575
  // CSS styles
18556
18576
  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";
18557
18577
  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";
18558
- var validateInputData = function (inputData) {
18559
- if (inputData === null || !Array.isArray(inputData) || inputData.length === 0) {
18560
- throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
18561
- }
18562
- };
18563
18578
  var getTableData = function (inputData, hasHeader) {
18564
18579
  return hasHeader
18565
18580
  ? { inputDataHeader: inputData[0], inputDataBody: inputData.slice(1) }
@@ -18568,8 +18583,7 @@ var getTableData = function (inputData, hasHeader) {
18568
18583
  var generateTableSyntax = function (inputData, hasHeader, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding) {
18569
18584
  try {
18570
18585
  validateInputData(inputData);
18571
- var nonNullInputData = inputData;
18572
- var _a = getTableData(nonNullInputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18586
+ var _a = getTableData(inputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18573
18587
  return generateMarkdownTableString({ inputDataHeader: inputDataHeader, inputDataBody: inputDataBody }, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
18574
18588
  }
18575
18589
  catch (error) {