react-markdown-table-ts 0.5.5 → 0.5.7

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
@@ -4068,6 +4068,17 @@ var MarkdownTableError = /** @class */ (function (_super) {
4068
4068
  }(Error));
4069
4069
 
4070
4070
  // src/utils.ts
4071
+ /**
4072
+ * Adjusts column alignments array to match the required column count
4073
+ * @param columnAlignments - Original alignment settings
4074
+ * @param columnCount - Required number of columns
4075
+ * @returns Adjusted array of column alignments
4076
+ */
4077
+ function getAdjustedAlignments(columnAlignments, columnCount) {
4078
+ var defaultAlignment = 'left';
4079
+ return columnAlignments.length < columnCount
4080
+ ? __spreadArray(__spreadArray([], Array.from(columnAlignments), true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : Array.from(columnAlignments);
4081
+ }
4071
4082
  /**
4072
4083
  * Calculates the maximum width for each column based on the content.
4073
4084
  * @param tableRows - All rows (header and body) of the table.
@@ -4101,16 +4112,14 @@ function formatMarkdownRow(columnCount, currentRow, columnAlignments, columnWidt
4101
4112
  if (useTabs === void 0) { useTabs = false; }
4102
4113
  if (canReplaceNewlines === void 0) { canReplaceNewlines = false; }
4103
4114
  if (hasPadding === void 0) { hasPadding = true; }
4104
- var defaultAlignment = 'left';
4105
- var adjustedAlignments = columnAlignments.length < columnCount
4106
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
4115
+ var adjustedAlignments = getAdjustedAlignments(columnAlignments, columnCount);
4107
4116
  var markdownRow = '|';
4108
4117
  for (var i = 0; i < columnCount; i++) {
4109
4118
  var cell = (_a = currentRow[i]) !== null && _a !== void 0 ? _a : '';
4110
4119
  if (canReplaceNewlines) {
4111
4120
  cell = replaceNewlinesInCell(cell);
4112
4121
  }
4113
- var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : defaultAlignment;
4122
+ var alignment = (_b = adjustedAlignments[i]) !== null && _b !== void 0 ? _b : 'left';
4114
4123
  var targetWidth = columnWidths ? columnWidths[i] : cell.length;
4115
4124
  var padding = hasPadding ? ' ' : '';
4116
4125
  if (alignment === 'right') {
@@ -4142,12 +4151,10 @@ function formatAlignmentRow(columnCount, columnAlignments, columnWidths, useTabs
4142
4151
  var _a;
4143
4152
  if (useTabs === void 0) { useTabs = false; }
4144
4153
  if (hasPadding === void 0) { hasPadding = true; }
4145
- var defaultAlignment = 'left';
4146
- var adjustedAlignments = columnAlignments.length < columnCount
4147
- ? __spreadArray(__spreadArray([], columnAlignments, true), Array(columnCount - columnAlignments.length).fill(defaultAlignment), true) : columnAlignments;
4154
+ var adjustedAlignments = getAdjustedAlignments(columnAlignments, columnCount);
4148
4155
  var alignmentRow = '|';
4149
4156
  for (var i = 0; i < columnCount; i++) {
4150
- var alignment = (_a = adjustedAlignments[i]) !== null && _a !== void 0 ? _a : defaultAlignment;
4157
+ var alignment = (_a = adjustedAlignments[i]) !== null && _a !== void 0 ? _a : 'left';
4151
4158
  var targetWidth = columnWidths ? columnWidths[i] : 3;
4152
4159
  var alignIndicator = '';
4153
4160
  var padding = hasPadding ? ' ' : '';
@@ -18539,10 +18546,10 @@ var Tooltip$1 = Tooltip;
18539
18546
  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";
18540
18547
  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";
18541
18548
  var MarkdownTable = function (_a) {
18542
- var _b = _a.inputData, inputData = _b === void 0 ? null : _b, _c = _a.hasHeader, hasHeader = _c === void 0 ? true : _c, _d = _a.columnAlignments, columnAlignments = _d === void 0 ? [] : _d, _e = _a.isCompact, isCompact = _e === void 0 ? false : _e, _f = _a.hasTabs, hasTabs = _f === void 0 ? false : _f, _g = _a.hasPadding, hasPadding = _g === void 0 ? true : _g, _h = _a.canReplaceNewlines, canReplaceNewlines = _h === void 0 ? false : _h, className = _a.className, onTableCreate = _a.onTableCreate, _j = _a.theme, theme = _j === void 0 ? 'light' : _j, preStyle = _a.preStyle;
18549
+ var _b = _a.inputData, inputData = _b === void 0 ? null : _b, _c = _a.hasHeader, hasHeader = _c === void 0 ? true : _c, _d = _a.columnAlignments, columnAlignments = _d === void 0 ? [] : _d, _e = _a.isCompact, isCompact = _e === void 0 ? false : _e, _f = _a.hasTabs, hasTabs = _f === void 0 ? false : _f, _g = _a.hasPadding, hasPadding = _g === void 0 ? true : _g, _h = _a.canReplaceNewlines, canReplaceNewlines = _h === void 0 ? false : _h, className = _a.className, onTableCreate = _a.onTableCreate, _j = _a.theme, theme = _j === void 0 ? 'light' : _j, preStyle = _a.preStyle, _k = _a.showCopyButton, showCopyButton = _k === void 0 ? false : _k;
18543
18550
  var adjustColumnWidths = !isCompact;
18544
18551
  var preElementRef = useRef(null);
18545
- var _k = useState(false), isCopied = _k[0], setIsCopied = _k[1];
18552
+ var _l = useState(false), isCopied = _l[0], setIsCopied = _l[1];
18546
18553
  var markdownTableSyntax = useMemo(function () {
18547
18554
  if (inputData === null) {
18548
18555
  return 'Error: No data provided for the table.';
@@ -18551,24 +18558,13 @@ var MarkdownTable = function (_a) {
18551
18558
  if (!Array.isArray(inputData) || inputData.length === 0) {
18552
18559
  throw new MarkdownTableError("The 'data' prop must be a non-empty two-dimensional array.");
18553
18560
  }
18554
- var tableData = hasHeader
18555
- ? {
18556
- inputDataHeader: inputData[0],
18557
- inputDataBody: inputData.slice(1),
18558
- }
18559
- : {
18560
- inputDataHeader: generateAlphabetHeaders(inputData[0].length),
18561
- inputDataBody: inputData,
18562
- };
18563
- return generateMarkdownTableString(tableData, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
18561
+ var _a = hasHeader
18562
+ ? { inputDataHeader: inputData[0], inputDataBody: inputData.slice(1) }
18563
+ : { inputDataHeader: generateAlphabetHeaders(inputData[0].length), inputDataBody: inputData }, inputDataHeader = _a.inputDataHeader, inputDataBody = _a.inputDataBody;
18564
+ return generateMarkdownTableString({ inputDataHeader: inputDataHeader, inputDataBody: inputDataBody }, columnAlignments, adjustColumnWidths, hasTabs, canReplaceNewlines, hasPadding);
18564
18565
  }
18565
18566
  catch (error) {
18566
- if (error instanceof MarkdownTableError) {
18567
- return "Error: ".concat(error.message);
18568
- }
18569
- else {
18570
- throw error;
18571
- }
18567
+ return error instanceof MarkdownTableError ? "Error: ".concat(error.message) : (function () { throw error; })();
18572
18568
  }
18573
18569
  }, [
18574
18570
  inputData,
@@ -18601,12 +18597,12 @@ var MarkdownTable = function (_a) {
18601
18597
  return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { children: theme === 'light' ? LIGHT_THEME_CSS : DARK_THEME_CSS }), jsxRuntimeExports.jsxs("div", { style: {
18602
18598
  position: 'relative',
18603
18599
  isolation: 'isolate'
18604
- }, children: [jsxRuntimeExports.jsx(Tooltip$1, { title: isCopied ? 'Copied!' : 'Copy markdown table syntax', placement: "left-end", arrow: true, children: jsxRuntimeExports.jsx(IconButton$1, { onClick: handleCopy, sx: {
18600
+ }, children: [showCopyButton && (jsxRuntimeExports.jsx(Tooltip$1, { title: isCopied ? 'Copied!' : 'Copy markdown table syntax', placement: "left-end", arrow: true, children: jsxRuntimeExports.jsx(IconButton$1, { onClick: handleCopy, sx: {
18605
18601
  position: 'absolute',
18606
18602
  top: '12px',
18607
18603
  right: '8px',
18608
18604
  zIndex: 1
18609
- }, "aria-label": "Copy to clipboard", size: "small", children: jsxRuntimeExports.jsx(ContentCopyIcon, { fontSize: "small" }) }) }), jsxRuntimeExports.jsx("pre", { ref: preElementRef, className: "".concat(className, " language-markdown line-numbers ").concat(theme === 'dark' ? 'dark-theme' : ''), style: preStyle, children: jsxRuntimeExports.jsx("code", { className: "language-markdown", role: "code", children: markdownTableSyntax }) })] })] }));
18605
+ }, "aria-label": "Copy to clipboard", size: "small", children: jsxRuntimeExports.jsx(ContentCopyIcon, { fontSize: "small" }) }) })), jsxRuntimeExports.jsx("pre", { ref: preElementRef, className: "".concat(className, " language-markdown line-numbers ").concat(theme === 'dark' ? 'dark-theme' : ''), style: preStyle, children: jsxRuntimeExports.jsx("code", { className: "language-markdown", role: "code", children: markdownTableSyntax }) })] })] }));
18610
18606
  };
18611
18607
 
18612
18608
  export { MarkdownTable };