react-markdown-table-ts 0.6.0 → 0.6.2

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
@@ -4130,73 +4130,57 @@ function formatMarkdownRow(columnCount, currentRow, columnAlignments, columnWidt
4130
4130
  });
4131
4131
  return "|".concat(formattedCells.join('|'), "|");
4132
4132
  }
4133
- /**
4134
- * Generates the alignment row for the Markdown table syntax.
4135
- * @param columnCount - The number of columns in the table.
4136
- * @param columnAlignments - Alignment settings for each column.
4137
- * @param columnWidths - Widths of each column.
4138
- * @param useTabs - Flag to use tabs between columns.
4139
- * @param hasPadding - Flag to add padding spaces around cell content.
4140
- * @returns The Markdown string for the alignment row.
4141
- */
4133
+ var alignmentIndicators = {
4134
+ left: function (width) { return ":".concat('-'.repeat(width - 1)); },
4135
+ right: function (width) { return "".concat('-'.repeat(width - 1), ":"); },
4136
+ center: function (width) { return ":".concat('-'.repeat(width - 2), ":"); },
4137
+ none: function (width) { return '-'.repeat(width); },
4138
+ };
4139
+ function getAlignmentIndicator(alignment, width) {
4140
+ return alignmentIndicators[alignment](width);
4141
+ }
4142
4142
  function formatAlignmentRow(columnCount, columnAlignments, columnWidths, useTabs, hasPadding) {
4143
- var _a;
4144
4143
  if (useTabs === void 0) { useTabs = false; }
4145
4144
  if (hasPadding === void 0) { hasPadding = true; }
4146
4145
  var adjustedAlignments = getAdjustedAlignments(columnAlignments, columnCount);
4147
- var alignmentRow = '|';
4148
- for (var i = 0; i < columnCount; i++) {
4146
+ var padding = hasPadding ? ' ' : '';
4147
+ var formattedColumns = Array.from({ length: columnCount }, function (_, i) {
4148
+ var _a;
4149
4149
  var alignment = (_a = adjustedAlignments[i]) !== null && _a !== void 0 ? _a : 'left';
4150
4150
  var targetWidth = columnWidths ? columnWidths[i] : 3;
4151
- var alignIndicator = '';
4152
- var padding = hasPadding ? ' ' : '';
4153
- switch (alignment) {
4154
- case 'left':
4155
- alignIndicator = ":".concat('-'.repeat(targetWidth - 1));
4156
- break;
4157
- case 'center':
4158
- alignIndicator = ":".concat('-'.repeat(targetWidth - 2), ":");
4159
- break;
4160
- case 'right':
4161
- alignIndicator = "".concat('-'.repeat(targetWidth - 1), ":");
4162
- break;
4163
- default:
4164
- alignIndicator = "".concat('-'.repeat(targetWidth));
4165
- break;
4166
- }
4167
- alignmentRow += "".concat(useTabs ? '\t' : padding).concat(alignIndicator).concat(useTabs ? '\t' : padding, "|");
4168
- }
4169
- return alignmentRow;
4151
+ var alignIndicator = getAlignmentIndicator(alignment, targetWidth);
4152
+ return "".concat(useTabs ? '\t' : padding).concat(alignIndicator).concat(useTabs ? '\t' : padding);
4153
+ });
4154
+ return "|".concat(formattedColumns.join('|'), "|");
4170
4155
  }
4171
- /**
4172
- * Generates a complete Markdown table string from the provided data.
4173
- * @param inputData - The table data including headers and rows.
4174
- * @param columnAlignments - Alignment settings for each column.
4175
- * @param canAdjustColumnWidths - Flag to adjust column widths based on content.
4176
- * @param useTabs - Flag to use tabs between columns.
4177
- * @param replaceNewlines - Flag to replace newlines with <br> tags.
4178
- * @param hasPadding - Flag to add padding spaces around cell content.
4179
- * @returns The complete Markdown table string.
4180
- */
4181
- function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines, hasPadding) {
4182
- if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
4183
- if (useTabs === void 0) { useTabs = false; }
4184
- if (replaceNewlines === void 0) { replaceNewlines = false; }
4185
- if (hasPadding === void 0) { hasPadding = true; }
4156
+ function calculateMaxColumnCount(inputData) {
4186
4157
  var headerColumnCount = inputData.inputDataHeader.length;
4187
4158
  var bodyColumnCounts = inputData.inputDataBody.map(function (currentRow) { return currentRow.length; });
4188
- var maxColumnCount = Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
4189
- var columnWidths = canAdjustColumnWidths
4159
+ return Math.max.apply(Math, __spreadArray([headerColumnCount], bodyColumnCounts, false));
4160
+ }
4161
+ function getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths) {
4162
+ return canAdjustColumnWidths
4190
4163
  ? calculateColumnWidths(__spreadArray([inputData.inputDataHeader], inputData.inputDataBody, true), maxColumnCount)
4191
4164
  : undefined;
4192
- var markdownHeaderRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4193
- var markdownAlignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs, hasPadding);
4194
- var markdownBodyRows = inputData.inputDataBody
4165
+ }
4166
+ function formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding) {
4167
+ var headerRow = formatMarkdownRow(maxColumnCount, inputData.inputDataHeader, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4168
+ var alignmentRow = formatAlignmentRow(maxColumnCount, columnAlignments, columnWidths, useTabs, hasPadding);
4169
+ var bodyRows = inputData.inputDataBody
4195
4170
  .map(function (currentRow) {
4196
4171
  return formatMarkdownRow(maxColumnCount, currentRow, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding);
4197
4172
  })
4198
4173
  .join('\n');
4199
- return "".concat(markdownHeaderRow, "\n").concat(markdownAlignmentRow, "\n").concat(markdownBodyRows).trimEnd();
4174
+ return "".concat(headerRow, "\n").concat(alignmentRow, "\n").concat(bodyRows);
4175
+ }
4176
+ function generateMarkdownTableString(inputData, columnAlignments, canAdjustColumnWidths, useTabs, replaceNewlines, hasPadding) {
4177
+ if (canAdjustColumnWidths === void 0) { canAdjustColumnWidths = true; }
4178
+ if (useTabs === void 0) { useTabs = false; }
4179
+ if (replaceNewlines === void 0) { replaceNewlines = false; }
4180
+ if (hasPadding === void 0) { hasPadding = true; }
4181
+ var maxColumnCount = calculateMaxColumnCount(inputData);
4182
+ var columnWidths = getColumnWidths(inputData, maxColumnCount, canAdjustColumnWidths);
4183
+ return formatTableRows(inputData, maxColumnCount, columnAlignments, columnWidths, useTabs, replaceNewlines, hasPadding).trimEnd();
4200
4184
  }
4201
4185
  /**
4202
4186
  * Replaces newline characters in a string with <br> tags.