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.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 "".concat(useTabs ? '\t' : padding).concat(cell.padStart(targetWidth)).concat(useTabs ? '\t' : padding);
4088
+ return formatRightAlignedCell(cell, targetWidth, pad);
4103
4089
  case 'center':
4104
4090
  return formatCenterAlignedCell(cell, targetWidth, useTabs, padding);
4105
4091
  default:
4106
- return "".concat(useTabs ? '\t' : padding).concat(cell.padEnd(targetWidth)).concat(useTabs ? '\t' : padding);
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);
@@ -18525,14 +18517,37 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
18525
18517
  } : void 0;
18526
18518
  var Tooltip$1 = Tooltip;
18527
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
+
18528
18548
  // CSS styles
18529
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";
18530
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";
18531
- var validateInputData = function (inputData) {
18532
- if (inputData === null || !Array.isArray(inputData) || inputData.length === 0) {
18533
- throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
18534
- }
18535
- };
18536
18551
  var getTableData = function (inputData, hasHeader) {
18537
18552
  return hasHeader
18538
18553
  ? { inputDataHeader: inputData[0], inputDataBody: inputData.slice(1) }
@@ -18541,8 +18556,7 @@ var getTableData = function (inputData, hasHeader) {
18541
18556
  var generateTableSyntax = function (inputData, hasHeader, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding) {
18542
18557
  try {
18543
18558
  validateInputData(inputData);
18544
- var nonNullInputData = inputData;
18545
- var _a = getTableData(nonNullInputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18559
+ var _a = getTableData(inputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18546
18560
  return generateMarkdownTableString({ inputDataHeader: inputDataHeader, inputDataBody: inputDataBody }, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
18547
18561
  }
18548
18562
  catch (error) {