react-table-edit 1.4.28 → 1.4.30

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.
@@ -18,6 +18,7 @@ type TableViewProps = {
18
18
  searchSetting?: IFTableEditSearchSetting;
19
19
  columnsAggregate?: IColumnsAgg[];
20
20
  selectedItem?: any;
21
+ isVirtualList?: boolean;
21
22
  setSelectedItem?: Dispatch<SetStateAction<any>>;
22
23
  setColumns?: (columns: IColumnTable[]) => void;
23
24
  commandClick?: (data: any) => void;
@@ -120,6 +120,8 @@ export type ISettingNumericElement = {
120
120
  export type IColumnTable = {
121
121
  /** Tên thuộc tính */
122
122
  field: string;
123
+ /** Tên thuộc tính lọc*/
124
+ fieldFilter?: string;
123
125
  /** Tiêu đề hiển thị ở header */
124
126
  headerText?: string;
125
127
  /** Khóa chính */
@@ -277,6 +279,8 @@ export type IFCurrentPageConfig = {
277
279
  export type IHeaderColumnTable = {
278
280
  /** Tên thuộc tính */
279
281
  field: string;
282
+ /** Tên thuộc tính lọc*/
283
+ fieldFilter?: string;
280
284
  /** Tiêu đề header */
281
285
  headerText?: string;
282
286
  /** Chiều rộng */
package/dist/index.d.ts CHANGED
@@ -124,6 +124,8 @@ type ISettingNumericElement = {
124
124
  type IColumnTable = {
125
125
  /** Tên thuộc tính */
126
126
  field: string;
127
+ /** Tên thuộc tính lọc*/
128
+ fieldFilter?: string;
127
129
  /** Tiêu đề hiển thị ở header */
128
130
  headerText?: string;
129
131
  /** Khóa chính */
@@ -281,6 +283,8 @@ type IFCurrentPageConfig = {
281
283
  type IHeaderColumnTable = {
282
284
  /** Tên thuộc tính */
283
285
  field: string;
286
+ /** Tên thuộc tính lọc*/
287
+ fieldFilter?: string;
284
288
  /** Tiêu đề header */
285
289
  headerText?: string;
286
290
  /** Chiều rộng */
@@ -709,6 +713,7 @@ type TableViewProps = {
709
713
  searchSetting?: IFTableEditSearchSetting;
710
714
  columnsAggregate?: IColumnsAgg[];
711
715
  selectedItem?: any;
716
+ isVirtualList?: boolean;
712
717
  setSelectedItem?: Dispatch<SetStateAction<any>>;
713
718
  setColumns?: (columns: IColumnTable[]) => void;
714
719
  commandClick?: (data: any) => void;
package/dist/index.js CHANGED
@@ -41906,6 +41906,7 @@ const RenderFilterElement$1 = ({ filter, optionsFilter, formatSetting, filterBy,
41906
41906
  const { t } = reactI18next.useTranslation();
41907
41907
  const [operator, setOperator] = React$5.useState(filter?.ope ?? ((!column.filterType && column.type === 'numeric') || column.filterType === 'select' ? 'equal' : 'contains'));
41908
41908
  const [valueFilter, setValueFilter] = React$5.useState(filter?.value ?? '');
41909
+ const fieldFilter = column.fieldFilter ?? column.field;
41909
41910
  const RenderStringFilter = () => {
41910
41911
  const options = [
41911
41912
  { label: 'Bắt đầu bởi', value: 'startswith' },
@@ -41949,7 +41950,7 @@ const RenderFilterElement$1 = ({ filter, optionsFilter, formatSetting, filterBy,
41949
41950
  } })] }));
41950
41951
  };
41951
41952
  const RenderSelectFilter = () => {
41952
- return (jsxRuntime.jsx("div", { className: 'mb-1', children: jsxRuntime.jsx(SelectTable, { value: optionsFilter ? optionsFilter[column.field]?.find((x) => x.value === valueFilter) : undefined, options: (optionsFilter && optionsFilter[column.field]) ?? [], isClearable: true, onChange: (val) => {
41953
+ return (jsxRuntime.jsx("div", { className: 'mb-1', children: jsxRuntime.jsx(SelectTable, { value: optionsFilter ? optionsFilter[fieldFilter]?.find((x) => x.value === valueFilter) : undefined, options: (optionsFilter && optionsFilter[fieldFilter]) ?? [], isClearable: true, onChange: (val) => {
41953
41954
  setValueFilter(val?.value);
41954
41955
  }, placeholder: t('Select') }) }));
41955
41956
  };
@@ -41959,7 +41960,7 @@ const RenderFilterElement$1 = ({ filter, optionsFilter, formatSetting, filterBy,
41959
41960
  filter.value = valueFilter ?? '';
41960
41961
  }
41961
41962
  else {
41962
- filterBy.push({ key: column.field, ope: operator, value: valueFilter ?? '' });
41963
+ filterBy.push({ key: fieldFilter, ope: operator, value: valueFilter ?? '' });
41963
41964
  }
41964
41965
  changeFilter([...filterBy]);
41965
41966
  setOpenFilter(false);
@@ -41971,7 +41972,7 @@ const RenderFilterElement$1 = ({ filter, optionsFilter, formatSetting, filterBy,
41971
41972
  }
41972
41973
  }, children: [((!column.filterType && column.type === 'numeric') || column.filterType === 'numeric') ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [RenderNumberFilter(), " "] }) : (column.filterType === 'select' ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [RenderSelectFilter(), " "] }) : RenderStringFilter()), jsxRuntime.jsxs("div", { className: 'd-flex justify-content-end', children: [jsxRuntime.jsx(Button$1, { color: 'primary', style: { borderRadius: 3 }, className: 'me-50 py-25 px-50 fw-bold', onClick: handleSave, children: t('Filter') }), jsxRuntime.jsx(Button$1, { className: 'py-25 px-50 fw-bold', color: 'white', style: { borderRadius: 3, borderWidth: 0 }, onClick: () => {
41973
41974
  if (filterBy) {
41974
- changeFilter(filterBy.filter((x) => x.key !== column.field));
41975
+ changeFilter(filterBy.filter((x) => x.key !== fieldFilter));
41975
41976
  }
41976
41977
  setOpenFilter(false);
41977
41978
  }, children: t('Clear') })] })] }));
@@ -65554,7 +65555,7 @@ const HeaderTableCol = (props) => {
65554
65555
  orderBy.push({ direction: 'asc', key: col.field });
65555
65556
  changeOrder(orderBy);
65556
65557
  }
65557
- }, className: classNames$1('r-headercell-div', { 'cursor-pointer': allowOrder }), children: [col.type === 'checkbox' && (jsxRuntime.jsx(Input$1, { checked: !!(totalCount > 0 && selectedRows?.length >= totalCount), type: "checkbox", className: classNames$1('cursor-pointer', { 'd-none': !isMulti }), style: { textAlign: col.textAlign ?? 'left', marginTop: 6 }, onChange: (e) => {
65558
+ }, className: classNames$1('r-headercell-div', { 'cursor-pointer': allowOrder }), children: [(col.type === 'checkbox' && !col.field) && (jsxRuntime.jsx(Input$1, { checked: !!(totalCount > 0 && selectedRows?.length >= totalCount), type: "checkbox", className: classNames$1('cursor-pointer', { 'd-none': !isMulti }), style: { textAlign: col.textAlign ?? 'left', marginTop: 6 }, onChange: (e) => {
65558
65559
  if (selectEnable) {
65559
65560
  if (e.target.checked) {
65560
65561
  setSelectedRows(dataSource.map((item) => { return item; }));
@@ -65577,6 +65578,7 @@ const RenderFilterElement = ({ filter, optionsFilter, formatSetting, filterBy, s
65577
65578
  const { t } = reactI18next.useTranslation();
65578
65579
  const [operator, setOperator] = React$5.useState(filter?.ope ?? ((!column.filterType && column.type === 'numeric') || column.filterType === 'select' ? 'equal' : 'contains'));
65579
65580
  const [valueFilter, setValueFilter] = React$5.useState(filter?.value ?? '');
65581
+ const fieldFilter = column.fieldFilter ?? column.field;
65580
65582
  const RenderStringFilter = () => {
65581
65583
  const options = [
65582
65584
  { label: 'Bắt đầu bởi', value: 'startswith' },
@@ -65620,7 +65622,7 @@ const RenderFilterElement = ({ filter, optionsFilter, formatSetting, filterBy, s
65620
65622
  } })] }));
65621
65623
  };
65622
65624
  const RenderSelectFilter = () => {
65623
- return (jsxRuntime.jsx("div", { className: 'mb-1', children: jsxRuntime.jsx(SelectTable, { value: optionsFilter ? optionsFilter[column.field]?.find((x) => x.value === valueFilter) : undefined, options: (optionsFilter && optionsFilter[column.field]) ?? [], isClearable: true, onChange: (val) => {
65625
+ return (jsxRuntime.jsx("div", { className: 'mb-1', children: jsxRuntime.jsx(SelectTable, { value: optionsFilter ? optionsFilter[fieldFilter]?.find((x) => x.value === valueFilter) : undefined, options: (optionsFilter && optionsFilter[fieldFilter]) ?? [], isClearable: true, onChange: (val) => {
65624
65626
  setValueFilter(val?.value);
65625
65627
  }, placeholder: t('Select') }) }));
65626
65628
  };
@@ -65630,19 +65632,21 @@ const RenderFilterElement = ({ filter, optionsFilter, formatSetting, filterBy, s
65630
65632
  filter.value = valueFilter ?? '';
65631
65633
  }
65632
65634
  else {
65633
- filterBy.push({ key: column.field, ope: operator, value: valueFilter ?? '' });
65635
+ filterBy.push({ key: fieldFilter, ope: operator, value: valueFilter ?? '' });
65634
65636
  }
65635
65637
  changeFilter([...filterBy]);
65636
65638
  setOpenFilter(false);
65637
65639
  };
65638
65640
  return (jsxRuntime.jsxs("div", { className: 'r-filter-popup', onKeyDown: (e) => {
65639
65641
  if (e.code === 'Enter' || e.code === 'NumpadEnter') {
65640
- handleSave();
65642
+ setTimeout(() => {
65643
+ handleSave();
65644
+ }, 100);
65641
65645
  e.stopPropagation();
65642
65646
  }
65643
65647
  }, children: [((!column.filterType && column.type === 'numeric') || column.filterType === 'numeric') ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [RenderNumberFilter(), " "] }) : (column.filterType === 'select' ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [RenderSelectFilter(), " "] }) : RenderStringFilter()), jsxRuntime.jsxs("div", { className: 'd-flex justify-content-end', children: [jsxRuntime.jsx(Button$1, { color: 'primary', style: { borderRadius: 3 }, className: 'me-50 py-25 px-50 fw-bold', onClick: handleSave, children: t('Filter') }), jsxRuntime.jsx(Button$1, { className: 'py-25 px-50 fw-bold', outline: true, style: { borderRadius: 3 }, onClick: () => {
65644
65648
  if (filterBy) {
65645
- changeFilter(filterBy.filter((x) => x.key !== column.field));
65649
+ changeFilter(filterBy.filter((x) => x.key !== fieldFilter));
65646
65650
  }
65647
65651
  setOpenFilter(false);
65648
65652
  }, children: t('Clear') })] })] }));
@@ -65731,20 +65735,20 @@ const RenderContentCol = (props) => {
65731
65735
  }, children: RenderElement() }, `col-${indexRow}-${indexCol}`));
65732
65736
  };
65733
65737
 
65734
- const TableView = ({ idTable, dataSource, rowHeight = 33, height = 400, columns, isMutil = false, isLoading, selectEnable, formatSetting, commandClick, allowFilter, allowOrder, setColumns, pagingSetting, changeFilter, changeOrder, searchSetting, columnsAggregate, toolbarSetting, optionsFilter, selectedItem, setSelectedItem, handleSelect }) => {
65738
+ const TableView = ({ idTable, dataSource, rowHeight = 33, height = 400, columns, isMutil = false, isLoading, selectEnable, formatSetting, commandClick, allowFilter, allowOrder, setColumns, pagingSetting, changeFilter, changeOrder, searchSetting, columnsAggregate, toolbarSetting, optionsFilter, selectedItem, setSelectedItem, handleSelect, isVirtualList }) => {
65739
+ const { t } = reactI18next.useTranslation();
65735
65740
  const gridRef = React$5.useRef(null);
65736
- const [startIndex, setStartIndex] = React$5.useState(0);
65737
65741
  const [selectedRows, setSelectedRows] = React$5.useState([]);
65738
65742
  const [orderBy, setOrderBy] = React$5.useState([]);
65739
65743
  const [filterBy, setFilterBy] = React$5.useState([]);
65740
65744
  const [searchTerm, setSearchTerm] = React$5.useState('');
65741
- const fieldKey = columns.find((item) => item.isPrimarykey === true)?.field ?? 'id';
65745
+ const fieldKey = (columns.find((item) => item.isPrimarykey === true)?.field) ?? 'id';
65746
+ const [startIndex, setStartIndex] = React$5.useState(0);
65742
65747
  //trường liên quan đến virtul loading
65743
- const visibleRowCount = Math.ceil(height / rowHeight) + 5;
65744
65748
  const buffer = 10; // số dòng dự phòng phía trên và dưới
65745
- const adjustedStartIndex = Math.max(startIndex - buffer, 0);
65746
- const adjustedEndIndex = Math.min(startIndex + visibleRowCount + buffer, dataSource.length);
65747
- const visibleData = React$5.useMemo(() => {
65749
+ const visibleRowCount = Math.ceil(height / rowHeight) + 5;
65750
+ // Tính toán dữ liệu hiển thị dựa trên các điều kiện lọc, tìm kiếm và sắp xếp
65751
+ const viewData = React$5.useMemo(() => {
65748
65752
  if (!dataSource || dataSource.length === 0) {
65749
65753
  return [];
65750
65754
  }
@@ -65809,19 +65813,42 @@ const TableView = ({ idTable, dataSource, rowHeight = 33, height = 400, columns,
65809
65813
  return 0;
65810
65814
  });
65811
65815
  }
65816
+ return datas;
65817
+ }, [searchTerm, filterBy, orderBy, dataSource]);
65818
+ // Lấy dữ liệu hiển thị với phân trang
65819
+ const pagingData = React$5.useMemo(() => {
65820
+ if (!viewData || viewData.length === 0) {
65821
+ return [];
65822
+ }
65823
+ let datas = viewData;
65812
65824
  if (pagingSetting?.allowPaging && pagingSetting?.currentPage && pagingSetting?.pageSize && pagingSetting.pagingClient) {
65813
65825
  const start = (pagingSetting.currentPage - 1) * pagingSetting.pageSize;
65814
65826
  const end = start + pagingSetting.pageSize;
65815
65827
  datas = datas.slice(start, end);
65816
65828
  }
65817
- return datas.slice(adjustedStartIndex, adjustedEndIndex);
65818
- }, [searchTerm, filterBy]);
65819
- const { t } = reactI18next.useTranslation();
65829
+ return datas;
65830
+ }, [viewData, pagingSetting?.pageSize, pagingSetting?.currentPage]);
65831
+ // Tính toán chỉ số bắt đầu và kết thúc của dữ liệu hiển thị
65832
+ const { adjustedStartIndex, adjustedEndIndex } = React$5.useMemo(() => {
65833
+ if (!pagingData || pagingData.length === 0 || !isVirtualList) {
65834
+ return { adjustedStartIndex: 0, adjustedEndIndex: 0 };
65835
+ }
65836
+ return {
65837
+ adjustedStartIndex: Math.max(startIndex - buffer, 0),
65838
+ adjustedEndIndex: Math.min(startIndex + visibleRowCount + buffer, dataSource.length)
65839
+ };
65840
+ }, [startIndex, pagingData]);
65841
+ const visibleData = React$5.useMemo(() => {
65842
+ if (!pagingData || pagingData.length === 0) {
65843
+ return [];
65844
+ }
65845
+ return isVirtualList ? pagingData.slice(adjustedStartIndex, adjustedEndIndex) : pagingData;
65846
+ }, [pagingData]);
65820
65847
  const { levels: headerColumns, flat: contentColumns, flatVisble, objWidthFixLeft, objWidthFixRight, lastObjWidthFixLeft, fisrtObjWidthFixRight } = React$5.useMemo(() => calculateTableStructure(columns), [columns]);
65821
65848
  const scrollTimeoutRef = React$5.useRef(null);
65822
65849
  const lastScrollTop = React$5.useRef(0);
65823
65850
  const handleScroll = (e) => {
65824
- if (!gridRef.current) {
65851
+ if (!gridRef.current || !isVirtualList) {
65825
65852
  return;
65826
65853
  }
65827
65854
  // Nếu không có sự thay đổi về scrollTop => người dùng chỉ scroll ngang => không xử lý
@@ -65946,19 +65973,19 @@ const TableView = ({ idTable, dataSource, rowHeight = 33, height = 400, columns,
65946
65973
  }, container: gridRef, totalCount: dataSource.length }, `header-${indexParent}-${indexColumn}`))) }, `header-${-indexParent}`))) }), jsxRuntime.jsxs("tbody", { className: 'r-gridcontent', role: "rowgroup", children: [adjustedStartIndex > 0 && (jsxRuntime.jsx("tr", { style: { height: adjustedStartIndex * rowHeight }, children: jsxRuntime.jsx("td", { style: { padding: 0 }, colSpan: flatVisble.length }) })), visibleData.map((row, index) => {
65947
65974
  const indexRow = index + startIndex;
65948
65975
  const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
65949
- return (jsxRuntime.jsx("tr", { "aria-rowindex": indexRow + 1, role: "row", className: 'r-row', children: contentColumns.map((column, indexCol) => (jsxRuntime.jsx(RenderContentCol, { idTable: idTable, col: column, fieldKey: 'field', objWidthFixLeft: objWidthFixLeft, objWidthFixRight: objWidthFixRight, fisrtObjWidthFixRight: fisrtObjWidthFixRight, lastObjWidthFixLeft: lastObjWidthFixLeft, isMulti: isMutil ?? false, selectEnable: selectEnable ?? false, selectedRows: selectedRows, setSelectedRows: setSelectedRows, formatSetting: formatSetting, handleCommandClick: handleCommandClick, indexCol: indexCol, indexRow: indexRow, isSelected: isSelected, row: row }, indexCol))) }, `row-content-${indexRow}`));
65950
- }), dataSource.length > adjustedEndIndex && (jsxRuntime.jsx("tr", { style: { height: (dataSource.length - adjustedEndIndex) * rowHeight }, children: jsxRuntime.jsx("td", { style: { padding: 0 }, colSpan: flatVisble.length }) }))] }), dataSource.length > 0 && jsxRuntime.jsx("tfoot", { className: "r-gridfoot", children: (columnsAggregate?.length ?? 0) > 0 ? jsxRuntime.jsx("tr", { className: 'r-row', children: contentColumns.map((col, indexCol) => {
65976
+ return (jsxRuntime.jsx("tr", { "aria-rowindex": indexRow + 1, role: "row", className: 'r-row', children: contentColumns.map((column, indexCol) => (jsxRuntime.jsx(RenderContentCol, { idTable: idTable, col: column, fieldKey: fieldKey, objWidthFixLeft: objWidthFixLeft, objWidthFixRight: objWidthFixRight, fisrtObjWidthFixRight: fisrtObjWidthFixRight, lastObjWidthFixLeft: lastObjWidthFixLeft, isMulti: isMutil ?? false, selectEnable: selectEnable ?? false, selectedRows: selectedRows, setSelectedRows: setSelectedRows, formatSetting: formatSetting, handleCommandClick: handleCommandClick, indexCol: indexCol, indexRow: indexRow, isSelected: isSelected, row: row }, indexCol))) }, `row-content-${indexRow}`));
65977
+ }), adjustedEndIndex > 0 && pagingData.length > adjustedEndIndex && (jsxRuntime.jsx("tr", { style: { height: (pagingData.length - adjustedEndIndex) * rowHeight }, children: jsxRuntime.jsx("td", { style: { padding: 0 }, colSpan: flatVisble.length }) }))] }), viewData.length > 0 && jsxRuntime.jsx("tfoot", { className: "r-gridfoot", children: (columnsAggregate?.length ?? 0) > 0 ? jsxRuntime.jsx("tr", { className: 'r-row', children: contentColumns.map((col, indexCol) => {
65951
65978
  const item = columnsAggregate?.find((x) => x.field === col.field);
65952
65979
  let sumValue = item?.value;
65953
65980
  if (!item && col.haveSum === true && col.type === "numeric") {
65954
- sumValue = dataSource.reduce(function (accumulator, currentValue) { return (Number(accumulator ?? 0) + Number(currentValue[col.field] ?? 0)); }, 0);
65981
+ sumValue = viewData.reduce(function (accumulator, currentValue) { return (Number(accumulator ?? 0) + Number(currentValue[col.field] ?? 0)); }, 0);
65955
65982
  }
65956
65983
  return col.visible !== false && jsxRuntime.jsx("td", { className: classNames$1(`p-0 px-50 r-footer fix-${col.fixedType}`, { 'cell-fixed': col.fixedType }), style: {
65957
65984
  left: col.fixedType === 'left' ? objWidthFixLeft[indexCol] : undefined,
65958
65985
  right: col.fixedType === 'right' ? objWidthFixRight[indexCol] : undefined,
65959
65986
  textAlign: col.textAlign ? col.textAlign : 'left'
65960
65987
  }, children: jsxRuntime.jsxs("div", { className: "r-footer-div", children: [(item || (col.haveSum === true && col.type === "numeric")) && col.type === "numeric" && (Number(sumValue) >= 0) && jsxRuntime.jsx(jsxRuntime.Fragment, { children: formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) }), (item || (col.haveSum === true && col.type === "numeric")) && col.type === "numeric" && (Number(sumValue) < 0) && jsxRuntime.jsxs("div", { style: { color: formatSetting?.colorNegative ?? 'red' }, children: [" ", `${formatSetting?.prefixNegative ?? '-'}${formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false)}${formatSetting?.suffixNegative ?? ''}`] })] }) }, `summarycell-${indexCol}`);
65961
- }) }) : jsxRuntime.jsx(jsxRuntime.Fragment, {}) })] }), (((dataSource.length ?? 0) === 0) && !isLoading) && jsxRuntime.jsxs("div", { className: "r-no-data", children: [jsxRuntime.jsx("svg", { width: "64", height: "41", viewBox: "0 0 64 41", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsxs("g", { transform: "translate(0 1)", fill: "none", fillRule: "evenodd", children: [jsxRuntime.jsx("ellipse", { fill: "#f5f5f5", cx: "32", cy: "33", rx: "32", ry: "7" }), jsxRuntime.jsxs("g", { fillRule: "nonzero", stroke: "#d9d9d9", children: [jsxRuntime.jsx("path", { d: "M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z" }), jsxRuntime.jsx("path", { d: "M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z", fill: "#fafafa" })] })] }) }), t('No data available.')] }), isLoading && jsxRuntime.jsx("div", { className: "r-loading-overlay", children: jsxRuntime.jsxs("div", { className: "r-loading", children: [jsxRuntime.jsx(Spinner$1, { className: "me-1" }), t('Loading...')] }) })] })] }), pagingSetting?.allowPaging ? jsxRuntime.jsx(PagingComponent, { onChangePage: onChangePage, pageSize: pagingSetting?.pageSize ?? 0, currentPage: pagingSetting?.currentPage ?? 0, pageOptions: pagingSetting?.pageOptions ?? [20, 30, 50, 100], totalItem: (pagingSetting?.totalItem ?? 0), onChangePageSize: onChangePageSize }) : jsxRuntime.jsx(jsxRuntime.Fragment, {})] }));
65988
+ }) }) : jsxRuntime.jsx(jsxRuntime.Fragment, {}) })] }), (((viewData.length ?? 0) === 0) && !isLoading) && jsxRuntime.jsxs("div", { className: "r-no-data", children: [jsxRuntime.jsx("svg", { width: "64", height: "41", viewBox: "0 0 64 41", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsxs("g", { transform: "translate(0 1)", fill: "none", fillRule: "evenodd", children: [jsxRuntime.jsx("ellipse", { fill: "#f5f5f5", cx: "32", cy: "33", rx: "32", ry: "7" }), jsxRuntime.jsxs("g", { fillRule: "nonzero", stroke: "#d9d9d9", children: [jsxRuntime.jsx("path", { d: "M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z" }), jsxRuntime.jsx("path", { d: "M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z", fill: "#fafafa" })] })] }) }), t('No data available.')] }), isLoading && jsxRuntime.jsx("div", { className: "r-loading-overlay", children: jsxRuntime.jsxs("div", { className: "r-loading", children: [jsxRuntime.jsx(Spinner$1, { className: "me-1" }), t('Loading...')] }) })] })] }), pagingSetting?.allowPaging ? jsxRuntime.jsx(PagingComponent, { onChangePage: onChangePage, pageSize: pagingSetting?.pageSize ?? 0, currentPage: pagingSetting?.currentPage ?? 0, pageOptions: pagingSetting?.pageOptions ?? [20, 30, 50, 100], totalItem: (pagingSetting?.pagingClient ? viewData.length : pagingSetting?.totalItem ?? 0), onChangePageSize: onChangePageSize }) : jsxRuntime.jsx(jsxRuntime.Fragment, {})] }));
65962
65989
  };
65963
65990
 
65964
65991
  exports.ExportExcelComponent = ExportExcelComponent;