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 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);
@@ -4190,15 +4182,22 @@ function getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths) {
4190
4182
  ? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
4191
4183
  : undefined;
4192
4184
  }
4193
- function formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
4185
+ function formatHeaderAndAlignment(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
4194
4186
  var headerRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4195
4187
  var alignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs, hasPadding);
4196
- var bodyRows = inputData.inputDataBody
4188
+ return "".concat(headerRow, "\n").concat(alignmentRow);
4189
+ }
4190
+ function formatBodyRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
4191
+ return inputData.inputDataBody
4197
4192
  .map(function (currentRow) {
4198
4193
  return formatMarkdownRow(maxColumnCount, currentRow, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4199
4194
  })
4200
4195
  .join('\n');
4201
- return "".concat(headerRow, "\n").concat(alignmentRow, "\n").concat(bodyRows);
4196
+ }
4197
+ function formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
4198
+ var headerAndAlignment = formatHeaderAndAlignment(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4199
+ var bodyRows = formatBodyRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4200
+ return "".concat(headerAndAlignment, "\n").concat(bodyRows);
4202
4201
  }
4203
4202
  function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines, hasPadding) {
4204
4203
  if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
@@ -18545,14 +18544,37 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
18545
18544
  } : void 0;
18546
18545
  var Tooltip$1 = Tooltip;
18547
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
+
18548
18575
  // CSS styles
18549
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";
18550
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";
18551
- var validateInputData = function (inputData) {
18552
- if (inputData === null || !Array.isArray(inputData) || inputData.length === 0) {
18553
- throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
18554
- }
18555
- };
18556
18578
  var getTableData = function (inputData, hasHeader) {
18557
18579
  return hasHeader
18558
18580
  ? { inputDataHeader: inputData[0], inputDataBody: inputData.slice(1) }
@@ -18561,8 +18583,7 @@ var getTableData = function (inputData, hasHeader) {
18561
18583
  var generateTableSyntax = function (inputData, hasHeader, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding) {
18562
18584
  try {
18563
18585
  validateInputData(inputData);
18564
- var nonNullInputData = inputData;
18565
- var _a = getTableData(nonNullInputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18586
+ var _a = getTableData(inputData, hasHeader), inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18566
18587
  return generateMarkdownTableString({ inputDataHeader: inputDataHeader, inputDataBody: inputDataBody }, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
18567
18588
  }
18568
18589
  catch (error) {