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.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);
@@ -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 formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
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
- var bodyRows = inputData.inputDataBody
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
- return "".concat(headerRow, "\n").concat(alignmentRow, "\n").concat(bodyRows);
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 nonNullInputData = inputData;
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) {