@pdg/react-table 1.0.69 → 1.0.71

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
@@ -2953,7 +2953,7 @@ var TableCommonCell = function (_a) {
2953
2953
  var templateObject_1$3;var StyledButtonsBox = material.styled(material.Box)(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
2954
2954
  var TableBodyCell = function (_a) {
2955
2955
  // Use ---------------------------------------------------------------------------------------------------------------
2956
- var item = _a.item, index = _a.index, column = _a.column, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, onClick = _a.onClick, onCheckChange = _a.onCheckChange;
2956
+ var className = _a.className, style = _a.style, sx = _a.sx, item = _a.item, index = _a.index, column = _a.column, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, onClick = _a.onClick, onCheckChange = _a.onCheckChange;
2957
2957
  var _b = useTableState(), menuOpen = _b.menuOpen, setItemColumnChecked = _b.setItemColumnChecked, setItemColumnCheckDisabled = _b.setItemColumnCheckDisabled, setItemColumnCommands = _b.setItemColumnCommands;
2958
2958
  // State -------------------------------------------------------------------------------------------------------------
2959
2959
  var _c = React.useState(false), checked = _c[0], setChecked = _c[1];
@@ -3118,7 +3118,7 @@ var TableBodyCell = function (_a) {
3118
3118
  }
3119
3119
  }, [column, onClick]);
3120
3120
  // Render ----------------------------------------------------------------------------------------------------------
3121
- return (React.createElement(TableCommonCell, { type: 'body', className: 'TableBodyCell', column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, !isHidden && data));
3121
+ return (React.createElement(TableCommonCell, { type: 'body', className: classNames('TableBodyCell', className), style: style, sx: sx, column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, !isHidden && data));
3122
3122
  };
3123
3123
  var templateObject_1$2;var StyledBodyRow = material.styled(material.TableRow)(function (_a) {
3124
3124
  var theme = _a.theme;
@@ -3134,9 +3134,9 @@ var templateObject_1$2;var StyledBodyRow = material.styled(material.TableRow)(fu
3134
3134
  var TableBodyRow = function (_a) {
3135
3135
  var className = _a.className, style = _a.style,
3136
3136
  //--------------------------------------------------------------------------------------------------------------------
3137
- id = _a.id, index = _a.index, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, sortable$1 = _a.sortable, columns = _a.columns, item = _a.item, onClick = _a.onClick, onCheckChange = _a.onCheckChange,
3137
+ id = _a.id, index = _a.index, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, sortable$1 = _a.sortable, columns = _a.columns, item = _a.item, onClick = _a.onClick, onCheckChange = _a.onCheckChange, onGetColumnClassName = _a.onGetColumnClassName, onGetColumnStyle = _a.onGetColumnStyle, onGetColumnSx = _a.onGetColumnSx,
3138
3138
  // -------------------------------------------------------------------------------------------------------------------
3139
- props = __rest$2(_a, ["className", "style", "id", "index", "defaultAlign", "defaultEllipsis", "sortable", "columns", "item", "onClick", "onCheckChange"]);
3139
+ props = __rest$2(_a, ["className", "style", "id", "index", "defaultAlign", "defaultEllipsis", "sortable", "columns", "item", "onClick", "onCheckChange", "onGetColumnClassName", "onGetColumnStyle", "onGetColumnSx"]);
3140
3140
  var _b = sortable.useSortable({ id: id }), attributes = _b.attributes, listeners = _b.listeners, setNodeRef = _b.setNodeRef, transform = _b.transform, transition = _b.transition;
3141
3141
  var finalStyle = React.useMemo(function () {
3142
3142
  return sortable$1
@@ -3146,7 +3146,7 @@ var TableBodyRow = function (_a) {
3146
3146
  return sortable$1
3147
3147
  ? __assign$3(__assign$3({ ref: setNodeRef }, attributes), listeners) : {};
3148
3148
  }, [attributes, listeners, setNodeRef, sortable$1]);
3149
- return (React.createElement(StyledBodyRow, __assign$3({ className: classNames('TableBodyRow', className), style: finalStyle }, props, sortableProps), columns.map(function (column, columnIdx) { return (React.createElement(TableBodyCell, { key: columnIdx, index: index, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick, onCheckChange: onCheckChange })); })));
3149
+ return (React.createElement(StyledBodyRow, __assign$3({ className: classNames('TableBodyRow', className), style: finalStyle }, props, sortableProps), columns.map(function (column, columnIdx) { return (React.createElement(TableBodyCell, { className: onGetColumnClassName ? onGetColumnClassName(column, item, index) : undefined, sx: onGetColumnSx ? onGetColumnSx(column, item, index) : undefined, style: onGetColumnStyle ? onGetColumnStyle(column, item, index) : undefined, key: columnIdx, index: index, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick, onCheckChange: onCheckChange })); })));
3150
3150
  };
3151
3151
  TableBodyRow.displayName = 'TableBodyRow';
3152
3152
  TableBodyRow.defaultProps = TableBodyRowDefaultProps;var TableFooterCell = function (_a) {
@@ -3470,7 +3470,7 @@ var templateObject_1$1;function columnFilter(v) {
3470
3470
  var _columnId = 0;
3471
3471
  var Table = React.forwardRef(function (_a, ref) {
3472
3472
  // Ref ---------------------------------------------------------------------------------------------------------------
3473
- var caption = _a.caption, topHeadRows = _a.topHeadRows, initColumns = _a.columns, initItems = _a.items, initPaging = _a.paging, pagingAlign = _a.pagingAlign, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, initStickyHeader = _a.stickyHeader, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight, fullHeight = _a.fullHeight, showOddColor = _a.showOddColor, showEvenColor = _a.showEvenColor, cellPadding = _a.cellPadding, footer = _a.footer, noData = _a.noData, pagination = _a.pagination, sortable$1 = _a.sortable, onClick = _a.onClick, onGetBodyRowSx = _a.onGetBodyRowSx, onPageChange = _a.onPageChange, onSortChange = _a.onSortChange, onCheckChange = _a.onCheckChange,
3473
+ var caption = _a.caption, topHeadRows = _a.topHeadRows, initColumns = _a.columns, initItems = _a.items, initPaging = _a.paging, pagingAlign = _a.pagingAlign, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, initStickyHeader = _a.stickyHeader, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight, fullHeight = _a.fullHeight, showOddColor = _a.showOddColor, showEvenColor = _a.showEvenColor, cellPadding = _a.cellPadding, footer = _a.footer, noData = _a.noData, pagination = _a.pagination, sortable$1 = _a.sortable, onClick = _a.onClick, onGetBodyRowClassName = _a.onGetBodyRowClassName, onGetBodyRowStyle = _a.onGetBodyRowStyle, onGetBodyRowSx = _a.onGetBodyRowSx, onGetBodyColumnClassName = _a.onGetBodyColumnClassName, onGetBodyColumnStyle = _a.onGetBodyColumnStyle, onGetBodyColumnSx = _a.onGetBodyColumnSx, onPageChange = _a.onPageChange, onSortChange = _a.onSortChange, onCheckChange = _a.onCheckChange,
3474
3474
  // ---------------------------------------------------------------------------------------------------------------
3475
3475
  className = _a.className, initStyle = _a.style, sx = _a.sx;
3476
3476
  var localHeaderDataRef = React.useRef({});
@@ -3930,7 +3930,7 @@ var Table = React.forwardRef(function (_a, ref) {
3930
3930
  return finalColumns && (React.createElement(TableTopHead, { caption: caption, rows: topHeadRows, columns: finalColumns, defaultAlign: defaultAlign, onCheckChange: handleHeadCheckChange }));
3931
3931
  }, [caption, defaultAlign, finalColumns, handleHeadCheckChange, topHeadRows]);
3932
3932
  var tableBody = React.useMemo(function () {
3933
- return finalColumns && (React.createElement(material.TableBody, null, sortableItems ? (sortableItems.length > 0 ? (React.createElement(sortable.SortableContext, { items: sortableItems, strategy: sortable.verticalListSortingStrategy }, sortableItems.map(function (item, idx) { return (React.createElement(TableBodyRow, { key: item.id, className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color'), hover: true, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined, id: item.id, index: idx, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, sortable: sortable$1, columns: finalColumns, item: item, onClick: onClick, onCheckChange: handleBodyCheckChange })); }))) : (React.createElement(StyledBodyRow$1, null,
3933
+ return finalColumns && (React.createElement(material.TableBody, null, sortableItems ? (sortableItems.length > 0 ? (React.createElement(sortable.SortableContext, { items: sortableItems, strategy: sortable.verticalListSortingStrategy }, sortableItems.map(function (item, idx) { return (React.createElement(TableBodyRow, { key: item.id, className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color', onGetBodyRowClassName ? onGetBodyRowClassName(item, idx) : undefined), style: onGetBodyRowStyle ? onGetBodyRowStyle(item, idx) : undefined, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined, onGetColumnClassName: onGetBodyColumnClassName, onGetColumnStyle: onGetBodyColumnStyle, onGetColumnSx: onGetBodyColumnSx, hover: true, id: item.id, index: idx, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, sortable: sortable$1, columns: finalColumns, item: item, onClick: onClick, onCheckChange: handleBodyCheckChange })); }))) : (React.createElement(StyledBodyRow$1, null,
3934
3934
  React.createElement(material.TableCell, { colSpan: finalColumns.length, style: { flex: 1 } }, noData ? (noData) : (React.createElement(StyledNoDataDiv, null,
3935
3935
  React.createElement("div", null,
3936
3936
  React.createElement(material.Icon, null, "error")),
@@ -3942,6 +3942,11 @@ var Table = React.forwardRef(function (_a, ref) {
3942
3942
  handleBodyCheckChange,
3943
3943
  noData,
3944
3944
  onClick,
3945
+ onGetBodyColumnClassName,
3946
+ onGetBodyColumnStyle,
3947
+ onGetBodyColumnSx,
3948
+ onGetBodyRowClassName,
3949
+ onGetBodyRowStyle,
3945
3950
  onGetBodyRowSx,
3946
3951
  showEvenColor,
3947
3952
  showOddColor,
@@ -4878,9 +4883,91 @@ var lib = CopyToClipboard;var InfoTable = function (_a) {
4878
4883
  finalSizeProps.lg = item.lg;
4879
4884
  if (item.xl)
4880
4885
  finalSizeProps.xl = item.xl;
4881
- var data = item.name !== undefined ? info[item.name] : undefined;
4882
- if (item.onRender)
4886
+ var data = undefined;
4887
+ if (item.name !== undefined) {
4888
+ if (info[item.name] !== undefined) {
4889
+ if (info[item.name] instanceof Date) {
4890
+ data = dayjs(info[item.name]).format('YYYY-MM-DD HH:mm:ss');
4891
+ }
4892
+ else if (info[item.name] instanceof dayjs) {
4893
+ data = info[item.name].format('YYYY-MM-DD HH:mm:ss');
4894
+ }
4895
+ else {
4896
+ data = info[item.name];
4897
+ }
4898
+ }
4899
+ }
4900
+ if (item.onRender) {
4883
4901
  data = item.onRender(info);
4902
+ }
4903
+ else if (notEmpty(data)) {
4904
+ switch (item.type) {
4905
+ case 'number':
4906
+ if (typeof data === 'string' || typeof data === 'number') {
4907
+ data = numberWithThousandSeparator(data);
4908
+ if (item.numberPrefix) {
4909
+ data = (React.createElement(React.Fragment, null,
4910
+ React.createElement("span", { style: { opacity: 0.5, marginRight: 2 } }, item.numberPrefix),
4911
+ data));
4912
+ }
4913
+ if (item.numberSuffix) {
4914
+ data = (React.createElement(React.Fragment, null,
4915
+ data,
4916
+ React.createElement("span", { style: { opacity: 0.5, marginLeft: 2 } }, item.numberSuffix)));
4917
+ }
4918
+ }
4919
+ break;
4920
+ case 'tel':
4921
+ if (typeof data === 'string') {
4922
+ data = getTelAutoDash(data);
4923
+ }
4924
+ break;
4925
+ case 'email':
4926
+ if (typeof data === 'string') {
4927
+ data = (React.createElement(React.Fragment, null,
4928
+ React.createElement("a", { href: "mailto:".concat(data) }, data)));
4929
+ }
4930
+ break;
4931
+ case 'url':
4932
+ if (typeof data === 'string' && data.toLowerCase().startsWith('http')) {
4933
+ data = (React.createElement(React.Fragment, null,
4934
+ React.createElement("a", { href: data, target: '_blank' }, data)));
4935
+ }
4936
+ break;
4937
+ case 'date':
4938
+ if (typeof data === 'string' || typeof data === 'number') {
4939
+ data = dayjs(data, item.dateFormat).format('YYYY-MM-DD');
4940
+ }
4941
+ break;
4942
+ case 'datetime':
4943
+ if (typeof data === 'string' || typeof data === 'number') {
4944
+ var dt = dayjs(data, item.dateFormat);
4945
+ data = (React.createElement(React.Fragment, null,
4946
+ React.createElement("span", null, dt.format('YYYY-MM-DD')),
4947
+ item.dateTwoLine ? React.createElement("br", null) : ' ',
4948
+ React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH:mm:ss'))));
4949
+ }
4950
+ break;
4951
+ case 'date-hour':
4952
+ if (typeof data === 'string' || typeof data === 'number') {
4953
+ var dt = dayjs(data, item.dateFormat);
4954
+ data = (React.createElement(React.Fragment, null,
4955
+ React.createElement("span", null, dt.format('YYYY-MM-DD')),
4956
+ item.dateTwoLine ? React.createElement("br", null) : ' ',
4957
+ React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시'))));
4958
+ }
4959
+ break;
4960
+ case 'date-minute':
4961
+ if (typeof data === 'string' || typeof data === 'number') {
4962
+ var dt = dayjs(data, item.dateFormat);
4963
+ data = (React.createElement(React.Fragment, null,
4964
+ React.createElement("span", null, dt.format('YYYY-MM-DD')),
4965
+ item.dateTwoLine ? React.createElement("br", null) : ' ',
4966
+ React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시 MM분'))));
4967
+ }
4968
+ break;
4969
+ }
4970
+ }
4884
4971
  if (empty(data))
4885
4972
  data = item.onRenderEmpty ? item.onRenderEmpty(info) : React.createElement(React.Fragment, null, "\u00A0");
4886
4973
  var copyToClipboardText_1 = item.clipboardText || (typeof data === 'string' ? data : typeof data === 'number' ? data.toString() : '');