@pdg/react-table 1.0.2 → 1.0.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.js CHANGED
@@ -8466,7 +8466,7 @@ var TableCommonCell = function (_a) {
8466
8466
  }
8467
8467
  }, [type, column, onClick, item, index]);
8468
8468
  // Render ----------------------------------------------------------------------------------------------------------
8469
- return (React__default["default"].createElement(StyledTableCell, { align: align, className: classNames(className, 'TableCommonCell', ellipsis && 'ellipsis'), style: style, sx: sx, onClick: type === 'body' ? handleClick : undefined }, children));
8469
+ return (React__default["default"].createElement(StyledTableCell, { align: align, className: classNames(className, 'TableCommonCell', ellipsis && 'ellipsis', column.type ? "column-type-".concat(column.type) : false), style: style, sx: sx, onClick: type === 'body' ? handleClick : undefined }, children));
8470
8470
  };
8471
8471
  var templateObject_1$1;var TableHeadCell = function (_a) {
8472
8472
  var column = _a.column, defaultAlign = _a.defaultAlign;
@@ -8479,11 +8479,21 @@ var templateObject_1$1;var TableHeadCell = function (_a) {
8479
8479
  return column.label;
8480
8480
  }
8481
8481
  }, [column]))[0];
8482
- return (React__default["default"].createElement(TableCommonCell, { type: 'head', column: column, defaultAlign: defaultAlign }, data));
8483
- };var StyledButtonsBox = material.styled(material.Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: inline-flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: inline-flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
8482
+ return (React__default["default"].createElement(TableCommonCell, { type: 'head', className: 'TableHeadCell', column: column, defaultAlign: defaultAlign }, data));
8483
+ };var StyledButtonsBox = material.styled(material.Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
8484
8484
  var TableBodyCell = function (_a) {
8485
8485
  // State -----------------------------------------------------------------------------------------------------------
8486
8486
  var item = _a.item, index = _a.index, column = _a.column, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, onClick = _a.onClick;
8487
+ var buttonsBoxJustifyContent = useAutoUpdateState(React.useCallback(function () {
8488
+ switch (getTableColumnAlign(column, defaultAlign)) {
8489
+ case 'center':
8490
+ return 'center';
8491
+ case 'right':
8492
+ return 'end';
8493
+ default:
8494
+ return 'start';
8495
+ }
8496
+ }, [column, defaultAlign]))[0];
8487
8497
  var _b = React.useState(), data = _b[0], setData = _b[1];
8488
8498
  // Effect ----------------------------------------------------------------------------------------------------------
8489
8499
  React.useEffect(function () {
@@ -8505,10 +8515,10 @@ var TableBodyCell = function (_a) {
8505
8515
  }
8506
8516
  break;
8507
8517
  case 'button':
8508
- data = React__default["default"].createElement(material.Box, { onClick: function (e) { return e.stopPropagation(); } }, data);
8518
+ data = (React__default["default"].createElement(material.Box, { className: 'TableBoxyCell-button-box', onClick: function (e) { return e.stopPropagation(); } }, data));
8509
8519
  break;
8510
8520
  case 'buttons':
8511
- data = React__default["default"].createElement(StyledButtonsBox, { onClick: function (e) { return e.stopPropagation(); } }, data);
8521
+ data = (React__default["default"].createElement(StyledButtonsBox, { className: 'TableBodyCell-buttons-box', justifyContent: buttonsBoxJustifyContent, onClick: function (e) { return e.stopPropagation(); } }, data));
8512
8522
  break;
8513
8523
  }
8514
8524
  switch (column.type) {
@@ -8519,7 +8529,7 @@ var TableBodyCell = function (_a) {
8519
8529
  data = (React__default["default"].createElement("a", { href: data, target: '_blank', onClick: function (e) {
8520
8530
  e.stopPropagation();
8521
8531
  } },
8522
- React__default["default"].createElement(material.Tooltip, __assign({ title: React__default["default"].createElement("div", { style: { paddingTop: 3, paddingBottom: 3 } }, img) }, column.tooltipProps, { placement: placement }), img)));
8532
+ React__default["default"].createElement(material.Tooltip, __assign({ className: 'TableBodyCell-tooltip', title: React__default["default"].createElement("div", { style: { paddingTop: 3, paddingBottom: 3 } }, img) }, column.tooltipProps, { placement: placement }), img)));
8523
8533
  }
8524
8534
  break;
8525
8535
  case 'date':
@@ -8539,7 +8549,7 @@ var TableBodyCell = function (_a) {
8539
8549
  tooltip = column.onGetTooltip(item, index);
8540
8550
  }
8541
8551
  if (tooltip) {
8542
- data = (React__default["default"].createElement(material.Tooltip, __assign({ title: tooltip }, column.tooltipProps), React__default["default"].isValidElement(data) ? data : React__default["default"].createElement("span", null, data)));
8552
+ data = (React__default["default"].createElement(material.Tooltip, __assign({ className: 'TableBodyCell-tooltip', title: tooltip }, column.tooltipProps), React__default["default"].isValidElement(data) ? data : React__default["default"].createElement("span", null, data)));
8543
8553
  }
8544
8554
  }
8545
8555
  break;
@@ -8557,7 +8567,7 @@ var TableBodyCell = function (_a) {
8557
8567
  }
8558
8568
  }, [column, onClick]);
8559
8569
  // Render ----------------------------------------------------------------------------------------------------------
8560
- return (React__default["default"].createElement(TableCommonCell, { type: 'body', column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, data));
8570
+ return (React__default["default"].createElement(TableCommonCell, { type: 'body', className: 'TableBodyCell', column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, data));
8561
8571
  };
8562
8572
  var templateObject_1;var TableFooterCell = function (_a) {
8563
8573
  var column = _a.column, defaultAlign = _a.defaultAlign;
@@ -8570,7 +8580,7 @@ var templateObject_1;var TableFooterCell = function (_a) {
8570
8580
  return (_c = column.footer) === null || _c === void 0 ? void 0 : _c.value;
8571
8581
  }
8572
8582
  }, [column]))[0];
8573
- return (React__default["default"].createElement(TableCommonCell, { type: 'head', column: column, defaultAlign: defaultAlign, style: { borderTop: '1px solid rgba(224, 224, 224, 1)' } }, data));
8583
+ return (React__default["default"].createElement(TableCommonCell, { type: 'head', className: 'TableFooterCell', column: column, defaultAlign: defaultAlign, style: { borderTop: '1px solid rgba(224, 224, 224, 1)' } }, data));
8574
8584
  };var TablePagination = function (_a) {
8575
8585
  var className = _a.className, style = _a.style, sx = _a.sx, paging = _a.paging, align = _a.align, onChange = _a.onChange;
8576
8586
  return (React__default["default"].createElement(material.Stack, { alignItems: align },
@@ -8604,7 +8614,10 @@ var templateObject_1;var TableFooterCell = function (_a) {
8604
8614
  style.appendChild(document.createTextNode(css));
8605
8615
  }
8606
8616
  }var css_248z = "[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{width:0;height:0}.simplebar-content:after,.simplebar-content:before{content:' ';display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:'';background:#000;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-scrollbar:before{top:2px;bottom:2px;left:2px;right:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:0;bottom:0;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}\n";
8607
- styleInject(css_248z);var Table = React__default["default"].forwardRef(function (_a, ref) {
8617
+ styleInject(css_248z);function columnFilter(v) {
8618
+ return v !== undefined && v !== null && v !== false;
8619
+ }
8620
+ var Table = React__default["default"].forwardRef(function (_a, ref) {
8608
8621
  // State - footerHeight --------------------------------------------------------------------------------------------
8609
8622
  var initColumns = _a.columns, initItems = _a.items, initPaging = _a.paging, pagingAlign = _a.pagingAlign, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, stickyHeader = _a.stickyHeader, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight, showOddColor = _a.showOddColor, showEvenColor = _a.showEvenColor, cellPadding = _a.cellPadding, footer = _a.footer, noData = _a.noData, pagination = _a.pagination, onClick = _a.onClick, onGetBodyRowSx = _a.onGetBodyRowSx, onPageChange = _a.onPageChange;
8610
8623
  var _b = React.useState(), footerHeight = _b[0], setFooterHeight = _b[1];
@@ -8622,8 +8635,9 @@ styleInject(css_248z);var Table = React__default["default"].forwardRef(function
8622
8635
  }).ref;
8623
8636
  // State -----------------------------------------------------------------------------------------------------------
8624
8637
  var _c = useAutoUpdateState(initColumns), columns = _c[0], setColumns = _c[1];
8625
- var _d = useAutoUpdateState(initItems), items = _d[0], setItems = _d[1];
8626
- var _e = useAutoUpdateState(initPaging), paging = _e[0], setPaging = _e[1];
8638
+ var _d = React.useState(), finalColumns = _d[0], setFinalColumns = _d[1];
8639
+ var _e = useAutoUpdateState(initItems), items = _e[0], setItems = _e[1];
8640
+ var _f = useAutoUpdateState(initPaging), paging = _f[0], setPaging = _f[1];
8627
8641
  var tableSx = useAutoUpdateState(React.useCallback(function () {
8628
8642
  var sx = {
8629
8643
  padding: typeof cellPadding === 'number' ? "".concat(cellPadding, "px") : cellPadding,
@@ -8634,6 +8648,10 @@ styleInject(css_248z);var Table = React__default["default"].forwardRef(function
8634
8648
  '> .MuiTableFooter-root > .MuiTableRow-root > .MuiTableCell-root ': sx,
8635
8649
  };
8636
8650
  }, [cellPadding]))[0];
8651
+ // Effect ----------------------------------------------------------------------------------------------------------
8652
+ React.useEffect(function () {
8653
+ setFinalColumns(columns === null || columns === void 0 ? void 0 : columns.filter(columnFilter));
8654
+ }, [columns]);
8637
8655
  // Commands --------------------------------------------------------------------------------------------------------
8638
8656
  React.useLayoutEffect(function () {
8639
8657
  if (ref) {
@@ -8664,13 +8682,13 @@ styleInject(css_248z);var Table = React__default["default"].forwardRef(function
8664
8682
  }
8665
8683
  }, [ref, columns, items, paging]);
8666
8684
  // Render ----------------------------------------------------------------------------------------------------------
8667
- return columns ? (React__default["default"].createElement(material.Paper, { className: 'ReactMuiTable', variant: 'outlined', style: { width: '100%' } },
8685
+ return finalColumns ? (React__default["default"].createElement(material.Paper, { className: 'ReactMuiTable', variant: 'outlined', style: { width: '100%' } },
8668
8686
  React__default["default"].createElement(SimpleBar, { style: { height: height, minHeight: minHeight, maxHeight: maxHeight } },
8669
8687
  React__default["default"].createElement(material.Table, { stickyHeader: stickyHeader, sx: tableSx },
8670
8688
  React__default["default"].createElement(material.TableHead, null,
8671
- React__default["default"].createElement(material.TableRow, null, columns.map(function (column, idx) { return (React__default["default"].createElement(TableHeadCell, { key: idx, column: column, defaultAlign: defaultAlign })); }))),
8672
- React__default["default"].createElement(material.TableBody, { style: { paddingBottom: footerHeight || 65 } }, items ? (items.length > 0 ? (items.map(function (item, idx) { return (React__default["default"].createElement(StyledBodyRow, { className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color'), key: idx, hover: true, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined }, columns.map(function (column, columnIdx) { return (React__default["default"].createElement(TableBodyCell, { key: columnIdx, index: idx, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick })); }))); })) : (React__default["default"].createElement(StyledBodyRow, null,
8673
- React__default["default"].createElement(material.TableCell, { colSpan: columns.length }, noData ? (noData) : (React__default["default"].createElement(StyledNoDataDiv, null,
8689
+ React__default["default"].createElement(material.TableRow, null, finalColumns.map(function (column, idx) { return (React__default["default"].createElement(TableHeadCell, { key: idx, column: column, defaultAlign: defaultAlign })); }))),
8690
+ React__default["default"].createElement(material.TableBody, { style: { paddingBottom: footerHeight || 65 } }, items ? (items.length > 0 ? (items.map(function (item, idx) { return (React__default["default"].createElement(StyledBodyRow, { className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color'), key: idx, hover: true, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined }, finalColumns.map(function (column, columnIdx) { return (React__default["default"].createElement(TableBodyCell, { key: columnIdx, index: idx, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick })); }))); })) : (React__default["default"].createElement(StyledBodyRow, null,
8691
+ React__default["default"].createElement(material.TableCell, { colSpan: finalColumns.length }, noData ? (noData) : (React__default["default"].createElement(StyledNoDataDiv, null,
8674
8692
  React__default["default"].createElement("div", null,
8675
8693
  React__default["default"].createElement(material.Icon, null, "error")),
8676
8694
  React__default["default"].createElement("div", null, "\uAC80\uC0C9\uB41C \uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."))))))) : undefined),
@@ -8682,11 +8700,11 @@ styleInject(css_248z);var Table = React__default["default"].forwardRef(function
8682
8700
  backgroundColor: '#fff',
8683
8701
  } },
8684
8702
  React__default["default"].createElement(material.TableRow, null,
8685
- React__default["default"].createElement(material.TableCell, { colSpan: columns.length, style: { borderBottom: 0, borderTop: '1px solid rgba(224, 224, 224, 1)' } },
8703
+ React__default["default"].createElement(material.TableCell, { colSpan: finalColumns.length, style: { borderBottom: 0, borderTop: '1px solid rgba(224, 224, 224, 1)' } },
8686
8704
  React__default["default"].createElement(material.Stack, { alignItems: pagingAlign },
8687
8705
  React__default["default"].createElement(TablePagination, { className: pagination === null || pagination === void 0 ? void 0 : pagination.className, style: pagination === null || pagination === void 0 ? void 0 : pagination.style, sx: pagination === null || pagination === void 0 ? void 0 : pagination.sx, paging: paging, align: pagingAlign, onChange: onPageChange })))))),
8688
8706
  footer && (React__default["default"].createElement(material.TableFooter, null,
8689
- React__default["default"].createElement(material.TableRow, null, columns.map(function (column, idx) { return (React__default["default"].createElement(TableFooterCell, { key: idx, column: column, defaultAlign: defaultAlign })); })))))))) : null;
8707
+ React__default["default"].createElement(material.TableRow, null, finalColumns.map(function (column, idx) { return (React__default["default"].createElement(TableFooterCell, { key: idx, column: column, defaultAlign: defaultAlign })); })))))))) : null;
8690
8708
  });
8691
8709
  Table.displayName = 'Table';
8692
8710
  Table.defaultProps = TableDefaultProps;var SearchTableDefaultProps = {};var SearchTable = React__default["default"].forwardRef(function (_a, ref) {