react-table-edit 1.5.44 → 1.5.45

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
@@ -19836,20 +19836,17 @@ const isNullOrUndefined$1 = (d) => {
19836
19836
  const generateUUID = () => {
19837
19837
  // Public Domain/MIT
19838
19838
  let d = new Date().getTime(); //Timestamp
19839
- let d2 = (typeof performance !== 'undefined' &&
19840
- performance.now &&
19841
- performance.now() * 1000) ||
19842
- 0; //Time in microseconds since page-load or 0 if unsupported
19839
+ let d2 = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0; //Time in microseconds since page-load or 0 if unsupported
19843
19840
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
19844
19841
  let r = Math.random() * 16; //random number between 0 and 16
19845
19842
  if (d > 0) {
19846
19843
  //Use timestamp until depleted
19847
- r = ((d + r) % 16) | 0;
19844
+ r = (d + r) % 16 | 0;
19848
19845
  d = Math.floor(d / 16);
19849
19846
  }
19850
19847
  else {
19851
19848
  //Use microseconds since page-load if supported
19852
- r = ((d2 + r) % 16) | 0;
19849
+ r = (d2 + r) % 16 | 0;
19853
19850
  d2 = Math.floor(d2 / 16);
19854
19851
  }
19855
19852
  return (c === 'x' ? r : 0x3).toString(16);
@@ -19871,16 +19868,12 @@ const formartNumberic = (str, decimalSeparator, thousandSeparator, fraction = 2,
19871
19868
  // eslint-disable-next-line
19872
19869
  if (str || str == '0') {
19873
19870
  str = str.toString();
19874
- const value = decimalSeparator !== '.'
19875
- ? str.toString().replaceAll('.', decimalSeparator ?? '')
19876
- : str;
19871
+ const value = decimalSeparator !== '.' ? str.toString().replaceAll('.', decimalSeparator ?? '') : str;
19877
19872
  const arr = value.toString().split(decimalSeparator ?? '', 2);
19878
19873
  let flag = value.toString().includes(decimalSeparator ?? '');
19879
19874
  if (arr[0].length < 3) {
19880
19875
  const intergerArr = haveNegative ? arr[0] : arr[0].replace('-', '');
19881
- return flag
19882
- ? `${intergerArr}${decimalSeparator}${arr[1]?.substring(0, fraction) ?? ''}`
19883
- : intergerArr;
19876
+ return flag ? `${intergerArr}${decimalSeparator}${arr[1]?.substring(0, fraction) ?? ''}` : intergerArr;
19884
19877
  }
19885
19878
  else {
19886
19879
  let flagNegative = false;
@@ -19904,9 +19897,7 @@ const formartNumberic = (str, decimalSeparator, thousandSeparator, fraction = 2,
19904
19897
  if (flagNegative && haveNegative) {
19905
19898
  arr[0] = '-'.concat(arr[0]);
19906
19899
  }
19907
- return flag
19908
- ? `${arr[0]}${decimalSeparator}${arr[1]?.substring(0, fraction) ?? ''}`
19909
- : arr[0];
19900
+ return flag ? `${arr[0]}${decimalSeparator}${arr[1]?.substring(0, fraction) ?? ''}` : arr[0];
19910
19901
  }
19911
19902
  }
19912
19903
  else {
@@ -19929,7 +19920,7 @@ const formatDateTime = (data, format = 'dd/MM/yyyy') => {
19929
19920
  MM: String(date.getMonth() + 1).padStart(2, '0'),
19930
19921
  yyyy: date.getFullYear(),
19931
19922
  HH: String(date.getHours()).padStart(2, '0'),
19932
- mm: String(date.getMinutes()).padStart(2, '0'),
19923
+ mm: String(date.getMinutes()).padStart(2, '0')
19933
19924
  };
19934
19925
  return format.replace(/dd|DD|MM|yyyy|HH|mm/g, (match) => map[match]);
19935
19926
  };
@@ -19950,7 +19941,7 @@ const FindNodeByPath = (tree, path) => {
19950
19941
  parent: current,
19951
19942
  lastIndex: levels.at(-1),
19952
19943
  firstIndex: levels.length === 1 ? levels[0] : -1,
19953
- node,
19944
+ node
19954
19945
  };
19955
19946
  };
19956
19947
  /**
@@ -19978,7 +19969,7 @@ const calculateTableStructure = (columns, settingColumns, groupColumns) => {
19978
19969
  const objHeaderWidthFixLeft = {};
19979
19970
  let maxDepth = 0;
19980
19971
  // Tính depth tối đa
19981
- const calculateDepth = (cols, depth = 1) => Math.max(...cols.map((col) => col.columns?.length ? calculateDepth(col.columns, depth + 1) : depth));
19972
+ const calculateDepth = (cols, depth = 1) => Math.max(...cols.map((col) => (col.columns?.length ? calculateDepth(col.columns, depth + 1) : depth)));
19982
19973
  maxDepth = calculateDepth(columns);
19983
19974
  let leftTotal = 0;
19984
19975
  let rightTotal = 0;
@@ -20016,8 +20007,7 @@ const calculateTableStructure = (columns, settingColumns, groupColumns) => {
20016
20007
  newCell.numericSettings = { fraction: setting.fraction };
20017
20008
  }
20018
20009
  }
20019
- newCell.headerDisplay =
20020
- setting.headerText || (newCell.headerDisplay ?? newCell.headerText);
20010
+ newCell.headerDisplay = setting.headerText || (newCell.headerDisplay ?? newCell.headerText);
20021
20011
  }
20022
20012
  else {
20023
20013
  if (newCell.columns?.length) {
@@ -20053,13 +20043,11 @@ const calculateTableStructure = (columns, settingColumns, groupColumns) => {
20053
20043
  ...col,
20054
20044
  columns: col.columns ?? [],
20055
20045
  colspan,
20056
- rowspan: hasChildren ? 1 : maxDepth - level,
20046
+ rowspan: hasChildren ? 1 : maxDepth - level
20057
20047
  };
20058
20048
  levels[level].push(cell);
20059
20049
  const headerKey = `${level}-${indexCol}`;
20060
- if (cell.fixedType === 'left' &&
20061
- cell.visible !== false &&
20062
- cell.isGroup !== true) {
20050
+ if (cell.fixedType === 'left' && cell.visible !== false && cell.isGroup !== true) {
20063
20051
  objHeaderWidthFixLeft[headerKey] = leftTotal;
20064
20052
  }
20065
20053
  if (!hasChildren) {
@@ -20067,48 +20055,33 @@ const calculateTableStructure = (columns, settingColumns, groupColumns) => {
20067
20055
  const width = cell.width ?? 40;
20068
20056
  cell.index = index;
20069
20057
  flat.push(cell);
20070
- if (cell.fixedType === 'left' &&
20071
- cell.visible !== false &&
20072
- cell.isGroup !== true) {
20058
+ if (cell.fixedType === 'left' && cell.visible !== false && cell.isGroup !== true) {
20073
20059
  objWidthFixLeft[index] = leftTotal;
20074
20060
  leftTotal += width;
20075
20061
  }
20076
- if (cell.fixedType === 'right' &&
20077
- cell.visible !== false &&
20078
- cell.isGroup !== true) {
20062
+ if (cell.fixedType === 'right' && cell.visible !== false && cell.isGroup !== true) {
20079
20063
  rightTotal -= width;
20080
20064
  objWidthFixRight[index] = rightTotal;
20081
20065
  }
20082
20066
  }
20083
- if (cell.fixedType === 'right' &&
20084
- cell.visible !== false &&
20085
- cell.isGroup !== true) {
20067
+ if (cell.fixedType === 'right' && cell.visible !== false && cell.isGroup !== true) {
20086
20068
  objHeaderWidthFixRight[headerKey] = rightTotal;
20087
20069
  }
20088
20070
  return colspanSum + colspan;
20089
20071
  }, 0);
20090
20072
  };
20091
20073
  calcTotalRightWidth(columns);
20092
- if ((settingColumns?.length ?? 0) > 0) {
20093
- applySetting(columns);
20094
- }
20095
- traverse(columns);
20074
+ const newColumns = (settingColumns?.length ?? 0) > 0 ? applySetting(columns) : columns;
20075
+ traverse(newColumns);
20096
20076
  // Danh sách các cột được hiển thị
20097
20077
  // const flatVisble = flat.filter((e) => e.visible !== false)
20098
- const flatVisbleContent = flat.filter((x) => x.visible !== false &&
20099
- x.field !== 'command' &&
20100
- x.field !== '#' &&
20101
- x.field !== 'checkbox');
20078
+ const flatVisbleContent = flat.filter((x) => x.visible !== false && x.field !== 'command' && x.field !== '#' && x.field !== 'checkbox');
20102
20079
  // Tính toán vị trí đầu tiên và cuối cùng của các cột cố định
20103
20080
  const lastObjWidthFixLeft = Math.max(...Object.keys(objWidthFixLeft).map(Number), 0);
20104
20081
  const fisrtObjWidthFixRight = Math.min(...Object.keys(objWidthFixRight).map(Number), flat.length);
20105
20082
  // Tính toán vị trí đầu tiên và cuối cùng của các cột có thể sửa
20106
20083
  const indexFirstEdit = flat.findIndex((item) => item.editEnable && item.visible !== false && !item.disabledCondition);
20107
- const indexLastEdit = flat
20108
- .map((item, idx) => item.editEnable && item.visible !== false && !item.disabledCondition
20109
- ? idx
20110
- : -1)
20111
- .reduce((acc, val) => (val > acc ? val : acc), -1);
20084
+ const indexLastEdit = flat.map((item, idx) => (item.editEnable && item.visible !== false && !item.disabledCondition ? idx : -1)).reduce((acc, val) => (val > acc ? val : acc), -1);
20112
20085
  return {
20113
20086
  levels,
20114
20087
  flat,
@@ -20121,7 +20094,7 @@ const calculateTableStructure = (columns, settingColumns, groupColumns) => {
20121
20094
  objHeaderWidthFixRight,
20122
20095
  objHeaderWidthFixLeft,
20123
20096
  indexFirstEdit,
20124
- indexLastEdit,
20097
+ indexLastEdit
20125
20098
  };
20126
20099
  };
20127
20100
  /**
@@ -20131,10 +20104,7 @@ const CheckRowMatch = (row, filters, keyword, searchKeys) => {
20131
20104
  const isFilterMatch = filters.every((filter) => {
20132
20105
  const { key, value, ope } = filter;
20133
20106
  const rowValue = row[key];
20134
- if (rowValue === undefined ||
20135
- rowValue === null ||
20136
- value === undefined ||
20137
- value === null) {
20107
+ if (rowValue === undefined || rowValue === null || value === undefined || value === null) {
20138
20108
  return false;
20139
20109
  }
20140
20110
  const valStr = String(rowValue).toLowerCase();
@@ -20167,10 +20137,7 @@ const CheckRowMatch = (row, filters, keyword, searchKeys) => {
20167
20137
  const isSearchMatch = !keyword ||
20168
20138
  searchKeys.some((key) => {
20169
20139
  const val = row[key];
20170
- return val
20171
- ?.toString()
20172
- .toLowerCase()
20173
- .includes(keyword.trim().toLowerCase());
20140
+ return val?.toString().toLowerCase().includes(keyword.trim().toLowerCase());
20174
20141
  });
20175
20142
  return isFilterMatch && isSearchMatch;
20176
20143
  };
@@ -20330,7 +20297,7 @@ const TableElement$1 = React__default["default"].memo((props) => {
20330
20297
 
20331
20298
  const defaultMaxHeight$1 = 250;
20332
20299
  const SelectTable = React$5.forwardRef((props, ref) => {
20333
- const { id, menuWidth, width, invalid, placeholder, textAlign, options, columns, value, fieldValue, fieldLabel, maxHeight, isClearable, component, isMulti, noHeader, isDisabled, showFooter, formatSetting, allowCreate, onPaste, onChange, handleAdd, onKeyDown, onOpenMenu, loadOptions, onCloseMenu, footerComponent, formatOptionLabel, compareFunction, } = props;
20300
+ const { id, menuWidth, width, invalid, placeholder, textAlign, options, columns, value, fieldValue, fieldLabel, maxHeight, isClearable, component, isMulti, noHeader, isDisabled, showFooter, formatSetting, allowCreate, onPaste, onChange, handleAdd, onKeyDown, onOpenMenu, loadOptions, onCloseMenu, footerComponent, formatOptionLabel, compareFunction } = props;
20334
20301
  const selectTableRef = React$5.useRef(null);
20335
20302
  const selectMenuTableRef = React$5.useRef(null);
20336
20303
  const inputRef = React$5.useRef(null);
@@ -20347,8 +20314,8 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20347
20314
  {
20348
20315
  headerText: 'Name',
20349
20316
  field: fieldLabel ?? 'label',
20350
- width: menuWidth,
20351
- },
20317
+ width: menuWidth
20318
+ }
20352
20319
  ];
20353
20320
  const closeMenu = () => {
20354
20321
  setDropdownOpen(false);
@@ -20362,7 +20329,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20362
20329
  ...val,
20363
20330
  [fieldLabel ?? 'label']: val.valueCreate,
20364
20331
  isCreated: undefined,
20365
- isCreatedItem: true,
20332
+ isCreatedItem: true
20366
20333
  };
20367
20334
  options.unshift(newVal);
20368
20335
  onChange(newVal);
@@ -20372,9 +20339,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20372
20339
  };
20373
20340
  React$5.useEffect(() => {
20374
20341
  if (dropdownOpen && value && !isMulti && selectMenuTableRef) {
20375
- const index = currentOptions?.findIndex((row) => compareFunction
20376
- ? compareFunction(row)
20377
- : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value']);
20342
+ const index = currentOptions?.findIndex((row) => (compareFunction ? compareFunction(row) : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value']));
20378
20343
  if (index >= 0) {
20379
20344
  selectMenuTableRef.current.scrollTo({ top: (index - 1) * 30 });
20380
20345
  }
@@ -20421,28 +20386,14 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20421
20386
  }
20422
20387
  }
20423
20388
  };
20424
- const listKeyUse = [
20425
- 'Escape',
20426
- 'Space',
20427
- 'Enter',
20428
- 'Tab',
20429
- 'NumpadEnter',
20430
- 'ArrowDown',
20431
- 'ArrowUp',
20432
- 'F9',
20433
- ];
20389
+ const listKeyUse = ['Escape', 'Space', 'Enter', 'Tab', 'NumpadEnter', 'ArrowDown', 'ArrowUp', 'F9'];
20434
20390
  const handleOnKeyDown = (e) => {
20435
20391
  let key = '';
20436
20392
  if (onKeyDown &&
20437
20393
  (!dropdownOpen ||
20438
20394
  !listKeyUse.includes(e.code) ||
20439
- ((e.code === 'Enter' ||
20440
- e.code === 'Tab' ||
20441
- e.code === 'NumpadEnter' ||
20442
- e.code === 'Space') &&
20443
- !(currentOptions[indexFocus] || haveCreateNew)) ||
20444
- ((e.code === 'ArrowDown' || e.code === 'ArrowUp') &&
20445
- currentOptions.length === 0) ||
20395
+ ((e.code === 'Enter' || e.code === 'Tab' || e.code === 'NumpadEnter' || e.code === 'Space') && !(currentOptions[indexFocus] || haveCreateNew)) ||
20396
+ ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && currentOptions.length === 0) ||
20446
20397
  (e.code === 'Escape' && !(isClearable && value && !isDisabled)))) {
20447
20398
  key = onKeyDown(e);
20448
20399
  }
@@ -20459,7 +20410,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20459
20410
  valueCreate: searchTerm,
20460
20411
  [fieldValue ?? 'value']: searchTerm,
20461
20412
  [fieldLabel ?? 'label']: `${t('Create')} '${searchTerm}'`,
20462
- isCreated: true,
20413
+ isCreated: true
20463
20414
  };
20464
20415
  }
20465
20416
  else {
@@ -20481,16 +20432,14 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20481
20432
  flag = true;
20482
20433
  }
20483
20434
  }
20484
- else if (e.code === 'Enter' ||
20485
- e.code === 'Tab' ||
20486
- e.code === 'NumpadEnter') {
20435
+ else if (e.code === 'Enter' || e.code === 'Tab' || e.code === 'NumpadEnter') {
20487
20436
  let newItem;
20488
20437
  if (haveCreateNew && indexFocus === 0) {
20489
20438
  newItem = {
20490
20439
  valueCreate: searchTerm,
20491
20440
  [fieldValue ?? 'value']: searchTerm,
20492
20441
  [fieldLabel ?? 'label']: `${t('Create')} '${searchTerm}'`,
20493
- isCreated: true,
20442
+ isCreated: true
20494
20443
  };
20495
20444
  }
20496
20445
  else {
@@ -20509,10 +20458,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20509
20458
  newIndex = indexFocus + 1;
20510
20459
  }
20511
20460
  else if (value) {
20512
- newIndex =
20513
- currentOptions?.findIndex((row) => compareFunction
20514
- ? compareFunction(row)
20515
- : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value']) + 1;
20461
+ newIndex = currentOptions?.findIndex((row) => (compareFunction ? compareFunction(row) : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value'])) + 1;
20516
20462
  }
20517
20463
  if (newIndex < currentOptions.length) {
20518
20464
  setIndexFocus(newIndex);
@@ -20536,10 +20482,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20536
20482
  newIndex = indexFocus - 1;
20537
20483
  }
20538
20484
  else if (value) {
20539
- newIndex =
20540
- currentOptions?.findIndex((row) => compareFunction
20541
- ? compareFunction(row)
20542
- : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value']) - 1;
20485
+ newIndex = currentOptions?.findIndex((row) => (compareFunction ? compareFunction(row) : row[fieldValue ?? 'value'] === value[fieldValue ?? 'value'])) - 1;
20543
20486
  }
20544
20487
  if (newIndex >= 0) {
20545
20488
  setIndexFocus(newIndex);
@@ -20572,11 +20515,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20572
20515
  scrollToElement(selectMenuTableRef.current, selectMenuTableRef.current.scrollHeight);
20573
20516
  }
20574
20517
  else if (flag === 0 && rect.bottom + 30 > parentRect.bottom) {
20575
- scrollToElement(selectMenuTableRef.current, elementFocus.offsetTop -
20576
- selectMenuTableRef.current.offsetTop -
20577
- parentRect.height +
20578
- rect.height +
20579
- 50);
20518
+ scrollToElement(selectMenuTableRef.current, elementFocus.offsetTop - selectMenuTableRef.current.offsetTop - parentRect.height + rect.height + 50);
20580
20519
  }
20581
20520
  else if (flag === 2 && rect.top < parentRect.top + 50) {
20582
20521
  scrollToElement(selectMenuTableRef.current, elementFocus.offsetTop - 65);
@@ -20590,7 +20529,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20590
20529
  timeOutElement = setTimeout(() => {
20591
20530
  elemment.scrollTo({
20592
20531
  top,
20593
- behavior: 'smooth',
20532
+ behavior: 'smooth'
20594
20533
  });
20595
20534
  }, 100);
20596
20535
  };
@@ -20600,12 +20539,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20600
20539
  }
20601
20540
  for (let index = 0; index < columnsSearch.length; index++) {
20602
20541
  const key = columnsSearch[index].field.trim();
20603
- if (data[key] &&
20604
- data[key]
20605
- .toString()
20606
- .trim()
20607
- .toLowerCase()
20608
- .includes(keyword.trim().toLowerCase())) {
20542
+ if (data[key] && data[key].toString().trim().toLowerCase().includes(keyword.trim().toLowerCase())) {
20609
20543
  return true;
20610
20544
  }
20611
20545
  }
@@ -20621,8 +20555,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20621
20555
  if (!searchTerm) {
20622
20556
  setOptionsLoad(undefined);
20623
20557
  }
20624
- else if (allowCreate &&
20625
- !currentOptions?.find((x) => x[fieldLabel ?? 'label'] === searchTerm)) {
20558
+ else if (allowCreate && !currentOptions?.find((x) => x[fieldLabel ?? 'label'] === searchTerm)) {
20626
20559
  setHaveCreateNew(true);
20627
20560
  return;
20628
20561
  }
@@ -20636,22 +20569,15 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20636
20569
  const { indexRow, row, isSelected, level = 0 } = props;
20637
20570
  return (jsxRuntime.jsxs("tr", { id: `row-select-table-${indexRow}`, style: { paddingLeft: 10 * level }, className: classNames$1('r-select-row', { 'last-row': indexRow === currentOptions.length - 1 }, { 'fisrt-row': indexRow === 0 }), children: [isMulti && (jsxRuntime.jsx("td", { className: classNames$1(`r-select-rowcell`, {
20638
20571
  'r-select-move': indexFocus === indexRow,
20639
- 'r-select-active': !isMulti &&
20640
- value &&
20641
- (compareFunction
20642
- ? compareFunction(row)
20643
- : value[fieldValue ?? 'value'] ===
20644
- row[fieldValue ?? 'value']),
20572
+ 'r-select-active': !isMulti && value && (compareFunction ? compareFunction(row) : value[fieldValue ?? 'value'] === row[fieldValue ?? 'value'])
20645
20573
  }), style: {
20646
20574
  width: 40,
20647
20575
  textAlign: 'center',
20648
20576
  padding: 0,
20649
- paddingBottom: 6,
20577
+ paddingBottom: 6
20650
20578
  }, onClick: (e) => {
20651
20579
  if (isMulti) {
20652
- const index = value?.findIndex((x) => compareFunction
20653
- ? compareFunction(row)
20654
- : x[fieldValue ?? 'value'] === row[fieldValue ?? 'value']);
20580
+ const index = value?.findIndex((x) => (compareFunction ? compareFunction(row) : x[fieldValue ?? 'value'] === row[fieldValue ?? 'value']));
20655
20581
  if (index > -1) {
20656
20582
  value?.splice(index, 1);
20657
20583
  handChange([...value]);
@@ -20669,42 +20595,28 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20669
20595
  }
20670
20596
  }, children: jsxRuntime.jsx(Input$1, { checked: isSelected, type: "checkbox", className: "cursor-pointer", onChange: () => { }, style: { textAlign: 'center', marginTop: 6 } }) })), (columns ? columns : defaultColumns).map((col, indexCol) => {
20671
20597
  let valueDisplay = row[col.field];
20672
- if (col.type === 'numeric' ||
20673
- (col.typeCondition && col.typeCondition(row) === 'numeric')) {
20674
- valueDisplay =
20675
- formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? '.', formatSetting?.thousandSeparator ?? ',', col.fraction ?? 0, true, false) ?? 0;
20598
+ if (col.type === 'numeric' || (col.typeCondition && col.typeCondition(row) === 'numeric')) {
20599
+ valueDisplay = formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? '.', formatSetting?.thousandSeparator ?? ',', col.fraction ?? 0, true, false) ?? 0;
20676
20600
  }
20677
20601
  else if (col.type === 'date') {
20678
- valueDisplay = valueDisplay
20679
- ? formatDateTime(valueDisplay, formatSetting?.dateFormat)
20680
- : '';
20602
+ valueDisplay = valueDisplay ? formatDateTime(valueDisplay, formatSetting?.dateFormat) : '';
20681
20603
  }
20682
20604
  else if (col.type === 'datetime') {
20683
- valueDisplay = valueDisplay
20684
- ? formatDateTime(valueDisplay, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm')
20685
- : '';
20605
+ valueDisplay = valueDisplay ? formatDateTime(valueDisplay, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm') : '';
20686
20606
  }
20687
20607
  return (jsxRuntime.jsxs(React$5.Fragment, { children: [col.visible !== false && (jsxRuntime.jsx("td", { id: `select-${id}-${indexRow}-${indexCol}`,
20688
20608
  // ref={refRow}
20689
20609
  className: classNames$1(`r-select-rowcell`, {
20690
20610
  'r-select-move': indexFocus === indexRow,
20691
- 'r-select-active': !isMulti &&
20692
- value &&
20693
- (compareFunction
20694
- ? compareFunction(row)
20695
- : value[fieldValue ?? 'value'] ===
20696
- row[fieldValue ?? 'value']),
20611
+ 'r-select-active': !isMulti && value && (compareFunction ? compareFunction(row) : value[fieldValue ?? 'value'] === row[fieldValue ?? 'value'])
20697
20612
  }), style: {
20698
20613
  minWidth: col.minWidth,
20699
20614
  width: col.width,
20700
20615
  maxWidth: col.maxWidth,
20701
- textAlign: col.textAlign ? col.textAlign : 'left',
20616
+ textAlign: col.textAlign ? col.textAlign : 'left'
20702
20617
  }, onClick: (e) => {
20703
20618
  if (isMulti) {
20704
- const index = value?.findIndex((x) => compareFunction
20705
- ? compareFunction(row)
20706
- : x[fieldValue ?? 'value'] ===
20707
- row[fieldValue ?? 'value']);
20619
+ const index = value?.findIndex((x) => (compareFunction ? compareFunction(row) : x[fieldValue ?? 'value'] === row[fieldValue ?? 'value']));
20708
20620
  if (index > -1) {
20709
20621
  value?.splice(index, 1);
20710
20622
  handChange([...value]);
@@ -20731,7 +20643,7 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20731
20643
  setIndexFocus(indexRow);
20732
20644
  }
20733
20645
  e.stopPropagation();
20734
- }, children: col.template ? (col.template(row, indexRow)) : col.type === 'numeric' && Number(row[col.field]) < 0 ? (jsxRuntime.jsxs("div", { style: { color: formatSetting?.colorNegative ?? 'red' }, children: [' ', `${formatSetting?.prefixNegative ?? '-'}${value}${formatSetting?.suffixNegative ?? ''}`] })) : (valueDisplay) }, `col-${indexRow}-${indexCol}`)), checkOverflow(indexRow, indexCol) && (jsxRuntime.jsx(UncontrolledTooltip, { className: "r-tooltip", autohide: false, target: `select-${id}-${indexRow}-${indexCol}`, children: col.template ? col.template(row, indexRow) : valueDisplay }))] }, indexCol));
20646
+ }, children: col.template ? col.template(row, indexRow) : col.type === 'numeric' && Number(row[col.field]) < 0 ? jsxRuntime.jsxs("div", { style: { color: formatSetting?.colorNegative ?? 'red' }, children: [" ", `${formatSetting?.prefixNegative ?? '-'}${value}${formatSetting?.suffixNegative ?? ''}`] }) : valueDisplay }, `col-${indexRow}-${indexCol}`)), checkOverflow(indexRow, indexCol) && (jsxRuntime.jsx(UncontrolledTooltip, { className: "r-tooltip", autohide: false, target: `select-${id}-${indexRow}-${indexCol}`, children: col.template ? col.template(row, indexRow) : valueDisplay }))] }, indexCol));
20735
20647
  })] }, `row-${indexRow}`));
20736
20648
  });
20737
20649
  return (jsxRuntime.jsx("div", { className: classNames$1('react-select-table', { 'is-invalid': invalid }), ref: ref, id: id, children: jsxRuntime.jsx("div", { ref: selectTableRef, children: jsxRuntime.jsxs(Dropdown$1$1, { isOpen: dropdownOpen, toggle: () => { }, onMouseDown: (e) => e.preventDefault(), children: [jsxRuntime.jsxs(DropdownToggle$1, { onClick: (e) => {
@@ -20741,26 +20653,14 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20741
20653
  }
20742
20654
  e.preventDefault();
20743
20655
  }, tag: "div", style: {
20744
- width: width
20745
- ? width
20746
- : selectTableRef?.current?.clientWidth
20747
- ? selectTableRef?.current?.clientWidth
20748
- : 'auto',
20656
+ width: width ? width : selectTableRef?.current?.clientWidth ? selectTableRef?.current?.clientWidth : 'auto'
20749
20657
  }, className: classNames$1('select-table-control', { 'r-select-is-disabled': isDisabled }, { 'r-select-is-open': dropdownOpen }, { 'r-select-is-focus': isFocus }, { 'r-select-is-invalid': invalid }), children: [jsxRuntime.jsxs("div", { className: "select-table-container", children: [isMulti ? (jsxRuntime.jsx("div", { className: classNames$1('select-value is-mutil', {
20750
- 'd-none': searchTerm,
20658
+ 'd-none': searchTerm
20751
20659
  }), children: value?.map((ele, index) => {
20752
- return (jsxRuntime.jsxs("span", { children: [index === 0 ? '' : ', ', formatOptionLabel
20753
- ? formatOptionLabel(ele)
20754
- : ele[fieldLabel ?? 'label']] }, index));
20660
+ return (jsxRuntime.jsxs("span", { children: [index === 0 ? '' : ', ', formatOptionLabel ? formatOptionLabel(ele) : ele[fieldLabel ?? 'label']] }, index));
20755
20661
  }) })) : (jsxRuntime.jsxs("div", { className: classNames$1('select-value', {
20756
- 'd-none': searchTerm,
20757
- }), children: [value
20758
- ? formatOptionLabel
20759
- ? formatOptionLabel(value)
20760
- : value[fieldLabel ?? 'label']
20761
- : '', ' '] })), !((isMulti ? value?.length > 0 : value) ||
20762
- isDisabled ||
20763
- searchTerm) && (jsxRuntime.jsx("div", { className: classNames$1('select-placeholder'), children: placeholder })), jsxRuntime.jsx("div", { className: "input-container", children: jsxRuntime.jsx("input", { style: { textAlign: textAlign ?? 'left' }, ref: inputRef, className: classNames$1('select-input'), readOnly: isDisabled, value: searchTerm, onPaste: (e) => onPaste && !dropdownOpen && onPaste(e), onChange: (val) => {
20662
+ 'd-none': searchTerm
20663
+ }), children: [value ? (formatOptionLabel ? formatOptionLabel(value) : value[fieldLabel ?? 'label']) : '', ' '] })), !((isMulti ? value?.length > 0 : value) || isDisabled || searchTerm) && jsxRuntime.jsx("div", { className: classNames$1('select-placeholder'), children: placeholder }), jsxRuntime.jsx("div", { className: "input-container", children: jsxRuntime.jsx("input", { style: { textAlign: textAlign ?? 'left' }, ref: inputRef, className: classNames$1('select-input'), readOnly: isDisabled, value: searchTerm, onPaste: (e) => onPaste && !dropdownOpen && onPaste(e), onChange: (val) => {
20764
20664
  if (val.target.value) {
20765
20665
  if (loadOptions && val.target.value) {
20766
20666
  setIsLoading(true);
@@ -20782,23 +20682,21 @@ const SelectTable = React$5.forwardRef((props, ref) => {
20782
20682
  width: width ? width + 2 : 'min-content',
20783
20683
  position: 'fixed',
20784
20684
  borderRadius: 4,
20785
- zIndex: 9999,
20685
+ zIndex: 9999
20786
20686
  }, children: jsxRuntime.jsx(DropdownItem$1, { className: classNames$1('p-0 menu-select-table'), tag: "div", header: true, children: dropdownOpen && (jsxRuntime.jsx("div", { style: { backgroundColor: 'none' }, onMouseDown: (e) => {
20787
20687
  if (!isDisabled) {
20788
20688
  inputRef?.current.focus();
20789
20689
  e.preventDefault();
20790
20690
  }
20791
20691
  }, children: jsxRuntime.jsxs("div", { className: "r-select-grid", children: [jsxRuntime.jsx("div", { className: classNames$1('r-select-gridtable', {
20792
- 'no-header': noHeader || (columns?.length ?? 0) === 0,
20692
+ 'no-header': noHeader || (columns?.length ?? 0) === 0
20793
20693
  }), ref: selectMenuTableRef, style: {
20794
20694
  width: menuWidth,
20795
20695
  minWidth: selectTableRef?.current?.clientWidth,
20796
- maxHeight: maxHeight ?? defaultMaxHeight$1,
20696
+ maxHeight: maxHeight ?? defaultMaxHeight$1
20797
20697
  }, children: jsxRuntime.jsx(TableElement$1, { haveCreateNew: haveCreateNew, isLoading: isLoading, searchTerm: searchTerm, fieldLabel: fieldLabel, noHeader: noHeader, closeMenu: closeMenu, value: value, isMulti: isMulti, currentOptions: currentOptions, fieldValue: fieldValue, columns: columns, defaultColumns: defaultColumns, indexFocus: indexFocus, formatSetting: formatSetting, handChange: handChange, compareFunction: compareFunction, setIndexFocus: setIndexFocus, setSearchTerm: setSearchTerm }) }), jsxRuntime.jsxs("div", { className: classNames$1('r-select-footer', {
20798
- 'd-none': !(showFooter === true ||
20799
- handleAdd ||
20800
- isMulti),
20801
- }), children: [jsxRuntime.jsxs(Button$1$1, { outline: true, color: "primary", onClick: () => handleAdd?.(), className: classNames$1('r-btn d-flex align-items-center', { 'd-none': !handleAdd }), children: [jsxRuntime.jsx(SvgPlus, { className: "me-50", fontSize: 16 }), t('AddNew'), " (F9)"] }), isMulti && (jsxRuntime.jsx("div", { className: "ms-50 text-primary h-100 d-flex align-items-center", children: t('countSelected', { item: value?.length ?? 0 }) })), footerComponent ? footerComponent() : null] })] }) })) }) })] }) }) }));
20698
+ 'd-none': !(showFooter === true || handleAdd || isMulti)
20699
+ }), children: [jsxRuntime.jsxs(Button$1$1, { outline: true, color: "primary", onClick: () => handleAdd?.(), className: classNames$1('r-btn d-flex align-items-center', { 'd-none': !handleAdd }), children: [jsxRuntime.jsx(SvgPlus, { className: "me-50", fontSize: 16 }), t('AddNew'), " (F9)"] }), isMulti && jsxRuntime.jsx("div", { className: "ms-50 text-primary h-100 d-flex align-items-center", children: t('countSelected', { item: value?.length ?? 0 }) }), footerComponent ? footerComponent() : null] })] }) })) }) })] }) }) }));
20802
20700
  });
20803
20701
 
20804
20702
  const PagingComponent = ({ totalItem, gridRef, pageSize, currentPage, onChangePage, pageOptions, onChangePageSize }) => {
@@ -39797,6 +39695,8 @@ const NumberFilterComponent = ({ column, filterBy, fieldFilter, handleSave, form
39797
39695
  allowNegative: column.numericSettings?.allowNegative ?? false,
39798
39696
  decimalScale: column.numericSettings?.fraction ?? 0
39799
39697
  };
39698
+ console.log(column.numericSettings?.fraction);
39699
+ console.log(column.field);
39800
39700
  let floatValue = parseFloat(valueFilter ?? '0');
39801
39701
  return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: "r-filter-popup", onKeyDown: (e) => {
39802
39702
  if (e.code === 'Enter' || e.code === 'NumpadEnter') {
@@ -69644,7 +69544,7 @@ const UnExpandAllIcon = ({ className, color = '#7F7F7F', size = 24, onClick, sty
69644
69544
  };
69645
69545
 
69646
69546
  const RenderContentCol = React__default["default"].memo((props) => {
69647
- const { col, indexCol, indexRow, isSelected, row, zeroVisiable, formatSetting, idTable, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, selectedRows, setSelectedRows, handleCloseContext, handleDoubleClick, handleCellClick, fieldKey, isMulti, } = props;
69547
+ const { col, indexCol, indexRow, isSelected, row, zeroVisiable, formatSetting, idTable, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, selectedRows, setSelectedRows, handleCloseContext, handleDoubleClick, handleCellClick, fieldKey, isMulti } = props;
69648
69548
  const cellId = `content-${idTable}-row${indexRow}col-${indexCol}`;
69649
69549
  const checkOverflow = () => {
69650
69550
  const element = document.getElementById(cellId);
@@ -69666,12 +69566,10 @@ const RenderContentCol = React__default["default"].memo((props) => {
69666
69566
  const RenderElement = () => {
69667
69567
  if (col.field === '#' || col.type === '#') {
69668
69568
  return (jsxRuntime.jsx("div", { className: classNames$1('r-rowcell-div cursor-pointer text-center', {
69669
- 'r-active-cell': isSelected,
69569
+ 'r-active-cell': isSelected
69670
69570
  }), style: {
69671
- fontWeight: row.sortOrder < 0 || row.sortOrder > 100000 || row.haveBoldType
69672
- ? 600
69673
- : 400,
69674
- fontStyle: row.haveItalicType ? 'italic' : 'normal',
69571
+ fontWeight: row.sortOrder < 0 || row.sortOrder > 100000 || row.haveBoldType ? 600 : 400,
69572
+ fontStyle: row.haveItalicType ? 'italic' : 'normal'
69675
69573
  }, onDoubleClick: (e) => {
69676
69574
  e.preventDefault();
69677
69575
  handleCloseContext();
@@ -69680,15 +69578,11 @@ const RenderContentCol = React__default["default"].memo((props) => {
69680
69578
  }
69681
69579
  else if (col.type === 'checkbox' || col.field === 'checkbox') {
69682
69580
  return (jsxRuntime.jsx("div", { className: classNames$1('r-rowcell-div cursor-pointer', {
69683
- 'r-active-cell': isSelected,
69581
+ 'r-active-cell': isSelected
69684
69582
  }), style: {
69685
69583
  display: 'flex',
69686
- justifyContent: col.textAlign === 'center'
69687
- ? 'center'
69688
- : col.textAlign === 'right'
69689
- ? 'flex-end'
69690
- : 'flex-start',
69691
- alignItems: 'center',
69584
+ justifyContent: col.textAlign === 'center' ? 'center' : col.textAlign === 'right' ? 'flex-end' : 'flex-start',
69585
+ alignItems: 'center'
69692
69586
  }, onClick: (e) => {
69693
69587
  setSelectedRows(toggleSelect());
69694
69588
  e.stopPropagation();
@@ -69698,12 +69592,8 @@ const RenderContentCol = React__default["default"].memo((props) => {
69698
69592
  let value = row[col.field];
69699
69593
  // ✅ Format dữ liệu theo loại cột
69700
69594
  if (col.type === 'numeric') {
69701
- value =
69702
- formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) ?? 0;
69703
- if (!zeroVisiable &&
69704
- !col.zeroVisiable &&
69705
- !(row?.sortOrder < 0 || row?.sortOrder > 100000) &&
69706
- (value === '0' || value === 0)) {
69595
+ value = formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) ?? 0;
69596
+ if (!zeroVisiable && !col.zeroVisiable && !(row?.sortOrder < 0 || row?.sortOrder > 100000) && (value === '0' || value === 0)) {
69707
69597
  value = '';
69708
69598
  }
69709
69599
  }
@@ -69711,43 +69601,31 @@ const RenderContentCol = React__default["default"].memo((props) => {
69711
69601
  value = value ? formatDateTime(value, formatSetting?.dateFormat) : '';
69712
69602
  }
69713
69603
  else if (col.type === 'datetime') {
69714
- value = value
69715
- ? formatDateTime(value, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm')
69716
- : '';
69604
+ value = value ? formatDateTime(value, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm') : '';
69717
69605
  }
69718
69606
  if (col.template) {
69719
69607
  value = col.template(row, indexRow) ?? '';
69720
69608
  }
69721
69609
  const isNegative = col.type === 'numeric' && Number(row[col.field]) < 0;
69722
- const textColor = isNegative
69723
- ? (formatSetting?.colorNegative ?? 'red')
69724
- : undefined;
69725
- const prefix = isNegative ? (formatSetting?.prefixNegative ?? '-') : '';
69726
- const suffix = isNegative ? (formatSetting?.suffixNegative ?? '') : '';
69727
- const displayText = isNegative
69728
- ? `${prefix}${value}${suffix}`
69729
- : (value ?? '');
69610
+ const textColor = isNegative ? formatSetting?.colorNegative ?? 'red' : undefined;
69611
+ const prefix = isNegative ? formatSetting?.prefixNegative ?? '-' : '';
69612
+ const suffix = isNegative ? formatSetting?.suffixNegative ?? '' : '';
69613
+ const displayText = isNegative ? `${prefix}${value}${suffix}` : value ?? '';
69730
69614
  return (jsxRuntime.jsxs("div", { className: classNames$1('r-rowcell-div cursor-pointer', {
69731
- 'r-active-cell': isSelected,
69615
+ 'r-active-cell': isSelected
69732
69616
  }), style: {
69733
- fontWeight: row.sortOrder < 0 || row.sortOrder > 100000 || row.haveBoldType
69734
- ? 600
69735
- : 400,
69736
- fontStyle: row.haveItalicType ? 'italic' : 'normal',
69617
+ fontWeight: row.sortOrder < 0 || row.sortOrder > 100000 || row.haveBoldType ? 600 : 400,
69618
+ fontStyle: row.haveItalicType ? 'italic' : 'normal'
69737
69619
  }, children: [jsxRuntime.jsx("div", { className: "r-cell-text", style: {
69738
69620
  display: 'flex',
69739
- justifyContent: col.textAlign === 'center'
69740
- ? 'center'
69741
- : col.textAlign === 'right'
69742
- ? 'flex-end'
69743
- : 'flex-start',
69744
- alignItems: 'center',
69621
+ justifyContent: col.textAlign === 'center' ? 'center' : col.textAlign === 'right' ? 'flex-end' : 'flex-start',
69622
+ alignItems: 'center'
69745
69623
  }, children: jsxRuntime.jsx("div", { id: cellId, style: {
69746
69624
  color: textColor,
69747
69625
  overflow: 'hidden',
69748
69626
  textOverflow: 'ellipsis',
69749
69627
  whiteSpace: 'pre',
69750
- maxWidth: '100%',
69628
+ maxWidth: '100%'
69751
69629
  }, children: displayText }) }), checkOverflow() && (jsxRuntime.jsx(UncontrolledTooltip, { className: "r-tooltip", autohide: false, target: cellId, placement: "top", children: jsxRuntime.jsx("div", { style: { color: textColor }, onClick: (e) => {
69752
69630
  e.stopPropagation();
69753
69631
  e.preventDefault();
@@ -69756,15 +69634,10 @@ const RenderContentCol = React__default["default"].memo((props) => {
69756
69634
  };
69757
69635
  const clickTimerRef = React$5.useRef(null);
69758
69636
  return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: col.visible !== false && col.isGroup !== true && (jsxRuntime.jsx("td", { className: classNames$1(`r-rowcell fix-${col.fixedType}`, { 'cell-fixed': col.fixedType }, {
69759
- 'fixed-last': (col.fixedType === 'left' &&
69760
- indexCol === lastObjWidthFixLeft) ||
69761
- (col.fixedType === 'right' &&
69762
- indexCol === fisrtObjWidthFixRight),
69637
+ 'fixed-last': (col.fixedType === 'left' && indexCol === lastObjWidthFixLeft) || (col.fixedType === 'right' && indexCol === fisrtObjWidthFixRight)
69763
69638
  }, { 'r-active': isSelected }), style: {
69764
69639
  left: col.fixedType === 'left' ? objWidthFixLeft[indexCol] : undefined,
69765
- right: col.fixedType === 'right'
69766
- ? objWidthFixRight[indexCol]
69767
- : undefined,
69640
+ right: col.fixedType === 'right' ? objWidthFixRight[indexCol] : undefined
69768
69641
  }, onClick: (e) => {
69769
69642
  const tag = e.target?.nodeName;
69770
69643
  if (tag !== 'DIV' && tag !== 'TD') {
@@ -69798,7 +69671,7 @@ const RenderContentCol = React__default["default"].memo((props) => {
69798
69671
  });
69799
69672
 
69800
69673
  const TableElement = React__default["default"].memo((props) => {
69801
- const { contentColumns, dataSource, fieldKey, filterBy, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, orderBy, selectedRows, setContentColumns, setSelectedRows, formatSetting, gridRef, idTable, headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, isMulti, querySetting, searchSetting, searchTerm, columnsAggregate, haveSum, expandsAll, zeroVisiable, setFilterBy, setOrderBy, setExpandsAll, handleDoubleClick, handleCellClick, contextMenuItems, handleContextMenuClick, isLoading, } = props;
69674
+ const { contentColumns, dataSource, fieldKey, filterBy, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, orderBy, selectedRows, setContentColumns, setSelectedRows, formatSetting, gridRef, idTable, headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, isMulti, querySetting, searchSetting, searchTerm, columnsAggregate, haveSum, expandsAll, zeroVisiable, setFilterBy, setOrderBy, setExpandsAll, handleDoubleClick, handleCellClick, contextMenuItems, handleContextMenuClick, isLoading } = props;
69802
69675
  const { t } = reactI18next.useTranslation();
69803
69676
  const [context, setContext] = React$5.useState(null);
69804
69677
  const virtualDivRef = React$5.useRef(null);
@@ -69844,10 +69717,7 @@ const TableElement = React__default["default"].memo((props) => {
69844
69717
  if (searchTerm) {
69845
69718
  datas = datas.filter((row) => {
69846
69719
  return searchSetting?.keyField?.some((key) => {
69847
- return row[key]
69848
- ?.toString()
69849
- .toLowerCase()
69850
- .includes(searchTerm.trim().toLowerCase());
69720
+ return row[key]?.toString().toLowerCase().includes(searchTerm.trim().toLowerCase());
69851
69721
  });
69852
69722
  });
69853
69723
  }
@@ -69856,10 +69726,7 @@ const TableElement = React__default["default"].memo((props) => {
69856
69726
  return filterBy.every((filter) => {
69857
69727
  const { key, value, ope } = filter;
69858
69728
  const rowValue = row[key];
69859
- if (rowValue === undefined ||
69860
- rowValue === null ||
69861
- value === undefined ||
69862
- value === null) {
69729
+ if (rowValue === undefined || rowValue === null || value === undefined || value === null) {
69863
69730
  return false;
69864
69731
  }
69865
69732
  const valStr = String(rowValue).toLowerCase();
@@ -69925,68 +69792,52 @@ const TableElement = React__default["default"].memo((props) => {
69925
69792
  }
69926
69793
  let value = row[col.field];
69927
69794
  if (col.type === 'numeric') {
69928
- value =
69929
- formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) ?? 0;
69795
+ value = formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) ?? 0;
69930
69796
  }
69931
69797
  else if (col.type === 'date') {
69932
- value = value
69933
- ? formatDateTime(value, formatSetting?.dateFormat)
69934
- : '';
69798
+ value = value ? formatDateTime(value, formatSetting?.dateFormat) : '';
69935
69799
  }
69936
69800
  else if (col.type === 'datetime') {
69937
- value = value
69938
- ? formatDateTime(value, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm')
69939
- : '';
69801
+ value = value ? formatDateTime(value, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm') : '';
69940
69802
  }
69941
69803
  if (col.template) {
69942
69804
  value = col.template(row, indexRow) ?? '';
69943
69805
  }
69944
69806
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("tr", { "aria-rowindex": indexRow + 1, role: "row", className: "r-row", children: [jsxRuntime.jsx("td", { className: "r-rowcell r-cell-group", colSpan: 3, children: jsxRuntime.jsxs("div", { className: "r-rowcell-div", children: [jsxRuntime.jsx(SvgChevronRight, { style: {
69945
69807
  marginLeft: level * 20,
69946
- transform: expand ? 'rotate(90deg)' : 'rotate(0deg)',
69808
+ transform: expand ? 'rotate(90deg)' : 'rotate(0deg)'
69947
69809
  }, fontSize: 15, onClick: () => {
69948
69810
  setExpand(!expand);
69949
69811
  setExpandsAll(undefined);
69950
69812
  row.expand = !expand;
69951
69813
  } }), t(col.headerDisplay ?? col.headerText ?? ''), ": ", value, " (", row.children.length, ")"] }) }), contentColumns.map((colSum, indexCol) => {
69952
- if (indexCol <= firstColSpan ||
69953
- colSum.visible === false ||
69954
- colSum.isGroup === true) {
69814
+ if (indexCol <= firstColSpan || colSum.visible === false || colSum.isGroup === true) {
69955
69815
  return;
69956
69816
  }
69957
69817
  let sumValue = row[colSum.field];
69958
- const haveSum = row[colSum.field] !== undefined &&
69959
- row[colSum.field] !== null;
69960
- if (!haveSum &&
69961
- colSum.haveSum === true &&
69962
- colSum.type === 'numeric') {
69818
+ const haveSum = row[colSum.field] !== undefined && row[colSum.field] !== null;
69819
+ if (!haveSum && colSum.haveSum === true && colSum.type === 'numeric') {
69963
69820
  sumValue = row.children.reduce(function (accumulator, currentValue) {
69964
- return (Number(accumulator ?? 0) +
69965
- Number(currentValue[colSum.field] ?? 0));
69821
+ return Number(accumulator ?? 0) + Number(currentValue[colSum.field] ?? 0);
69966
69822
  }, 0);
69967
69823
  }
69968
69824
  if (colSum.type === 'numeric') {
69969
69825
  sumValue = formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', colSum.numericSettings?.fraction, true, false);
69970
- if (!zeroVisiable &&
69971
- !col.zeroVisiable &&
69972
- (sumValue === '0' || sumValue === 0)) {
69826
+ if (!zeroVisiable && !col.zeroVisiable && (sumValue === '0' || sumValue === 0)) {
69973
69827
  sumValue = '';
69974
69828
  }
69975
69829
  }
69976
69830
  return (jsxRuntime.jsx("td", { className: "r-rowcell r-cell-sum-group", children: jsxRuntime.jsx("div", { className: "r-rowcell-div", style: {
69977
- justifyContent: colSum.textAlign
69978
- ? colSum.textAlign
69979
- : 'left',
69980
- }, children: (haveSum || colSum.haveSum === true) &&
69981
- Number(row[colSum.field] ?? '0') < 0 ? (jsxRuntime.jsxs("div", { style: {
69982
- color: formatSetting?.colorNegative ?? 'red',
69831
+ justifyContent: colSum.textAlign ? colSum.textAlign : 'left'
69832
+ }, children: (haveSum || colSum.haveSum === true) && Number(row[colSum.field] ?? '0') < 0 ? (jsxRuntime.jsxs("div", { style: {
69833
+ color: formatSetting?.colorNegative ?? 'red'
69983
69834
  }, children: [' ', `${formatSetting?.prefixNegative ?? '-'}${sumValue}${formatSetting?.suffixNegative ?? ''}`] })) : (sumValue) }) }, `group-sum-cell-${level}-${indexRow}-${indexCol}`));
69984
- })] }), expand && (jsxRuntime.jsx(RenderContent, { datas: row.children, level: level + 1 }))] }, `row-${level}-${indexRow}`));
69835
+ })] }), expand && jsxRuntime.jsx(RenderContent, { datas: row.children, level: level + 1 })] }, `row-${level}-${indexRow}`));
69985
69836
  }
69986
69837
  else {
69987
69838
  const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
69988
69839
  return (jsxRuntime.jsx("tr", { id: `row-content-${indexRow}`, "aria-rowindex": indexRow + 1, role: "row", className: classNames$1('r-row', {
69989
- 'r-last-row': level === 0 && indexRow === viewData.length - 1,
69840
+ 'r-last-row': level === 0 && indexRow === viewData.length - 1
69990
69841
  }), onContextMenu: (e) => {
69991
69842
  e.preventDefault();
69992
69843
  handleContextMenu(e, row);
@@ -70002,7 +69853,7 @@ const TableElement = React__default["default"].memo((props) => {
70002
69853
  x: e.clientX,
70003
69854
  y: e.clientY,
70004
69855
  row,
70005
- show: true,
69856
+ show: true
70006
69857
  });
70007
69858
  }, 100);
70008
69859
  };
@@ -70026,28 +69877,20 @@ const TableElement = React__default["default"].memo((props) => {
70026
69877
  let sumValue = item?.value;
70027
69878
  if (!item && col.haveSum === true && col.type === 'numeric') {
70028
69879
  sumValue = viewData.reduce(function (accumulator, currentValue) {
70029
- return (Number(accumulator ?? 0) +
70030
- Number(currentValue[col.field] ?? 0));
69880
+ return Number(accumulator ?? 0) + Number(currentValue[col.field] ?? 0);
70031
69881
  }, 0);
70032
69882
  }
70033
69883
  if (col.type === 'numeric') {
70034
69884
  sumValue = formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false);
70035
69885
  }
70036
69886
  return (jsxRuntime.jsx("td", { className: classNames$1(`p-0 px-50 r-footer fix-${col.fixedType}`, { 'cell-fixed': col.fixedType }), style: {
70037
- left: col.fixedType === 'left'
70038
- ? objWidthFixLeft[indexCol]
70039
- : undefined,
70040
- right: col.fixedType === 'right'
70041
- ? objWidthFixRight[indexCol]
70042
- : undefined,
70043
- textAlign: col.textAlign ? col.textAlign : 'left',
70044
- }, children: jsxRuntime.jsx("div", { className: "r-footer-div", children: (item || col.haveSum === true) &&
70045
- Number(item?.value ?? '0') < 0 ? (jsxRuntime.jsxs("div", { style: {
70046
- color: formatSetting?.colorNegative ?? 'red',
69887
+ left: col.fixedType === 'left' ? objWidthFixLeft[indexCol] : undefined,
69888
+ right: col.fixedType === 'right' ? objWidthFixRight[indexCol] : undefined,
69889
+ textAlign: col.textAlign ? col.textAlign : 'left'
69890
+ }, children: jsxRuntime.jsx("div", { className: "r-footer-div", children: (item || col.haveSum === true) && Number(item?.value ?? '0') < 0 ? (jsxRuntime.jsxs("div", { style: {
69891
+ color: formatSetting?.colorNegative ?? 'red'
70047
69892
  }, children: [' ', `${formatSetting?.prefixNegative ?? '-'}${sumValue}${formatSetting?.suffixNegative ?? ''}`] })) : (sumValue) }) }, `summarycell-${indexCol}`));
70048
- }) })) })] }), jsxRuntime.jsx("div", { ref: virtualDivRef }), context &&
70049
- (contextMenuItems?.length ?? 0) > 0 &&
70050
- handleContextMenuClick && (jsxRuntime.jsx(Popover$1, { className: "r-context-popover", placement: "right-start", isOpen: context.show, target: virtualDivRef.current, toggle: handleCloseContext, fade: false, children: jsxRuntime.jsx(PopoverBody$1, { children: contextMenuItems?.map((item, index) => {
69893
+ }) })) })] }), jsxRuntime.jsx("div", { ref: virtualDivRef }), context && (contextMenuItems?.length ?? 0) > 0 && handleContextMenuClick && (jsxRuntime.jsx(Popover$1, { className: "r-context-popover", placement: "right-start", isOpen: context.show, target: virtualDivRef.current, toggle: handleCloseContext, fade: false, children: jsxRuntime.jsx(PopoverBody$1, { children: contextMenuItems?.map((item, index) => {
70051
69894
  return (jsxRuntime.jsxs("div", { className: "r-context-item", onClick: () => {
70052
69895
  handleCloseContext();
70053
69896
  handleContextMenuClick?.(item, context.row);
@@ -70055,7 +69898,7 @@ const TableElement = React__default["default"].memo((props) => {
70055
69898
  }) }) })), (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.')] }))] }));
70056
69899
  });
70057
69900
 
70058
- const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoading, formatSetting, querySetting, pagingSetting, searchSetting, columnsAggregate, toolbarSetting, selectedItem, setSelectedItem, handleSelect, saveSettingColumn, resetDefaultColumns, settingColumns, headerComponent, groupSetting, zeroVisiable, isMulti, handleDoubleClick, handleCellClick, contextMenuItems, headerHeight, handleContextMenuClick, }) => {
69901
+ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoading, formatSetting, querySetting, pagingSetting, searchSetting, columnsAggregate, toolbarSetting, selectedItem, setSelectedItem, handleSelect, saveSettingColumn, resetDefaultColumns, settingColumns, headerComponent, groupSetting, zeroVisiable, isMulti, handleDoubleClick, handleCellClick, contextMenuItems, headerHeight, handleContextMenuClick }) => {
70059
69902
  const { t } = reactI18next.useTranslation();
70060
69903
  const gridRef = React$5.useRef(null);
70061
69904
  const [openPopupSetupColumn, setOpenPopupSetupColumn] = React$5.useState(false);
@@ -70068,8 +69911,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70068
69911
  const [expandsAll, setExpandsAll] = React$5.useState(true);
70069
69912
  const [maximize, setMaximize] = React$5.useState(false);
70070
69913
  const [windowHeight, setWindowHeight] = React$5.useState(window.innerHeight);
70071
- const fieldKey = columns.find((item) => item.isPrimarykey === true)?.field ??
70072
- 'id';
69914
+ const fieldKey = columns.find((item) => item.isPrimarykey === true)?.field ?? 'id';
70073
69915
  React$5.useEffect(() => {
70074
69916
  const handleResize = () => {
70075
69917
  setWindowHeight(window.innerHeight);
@@ -70079,19 +69921,14 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70079
69921
  }, []);
70080
69922
  const heightTable = React$5.useMemo(() => {
70081
69923
  if (maximize) {
70082
- return (windowHeight -
70083
- (pagingSetting?.allowPaging ? 50 : 0) -
70084
- (haveSum ? 30 : 0) -
70085
- (headerHeight ?? 59) -
70086
- (toolbarSetting?.showBottomToolbar ? 42 : 0) -
70087
- (toolbarSetting?.showTopToolbar ? 42 : 0));
69924
+ return windowHeight - (pagingSetting?.allowPaging ? 50 : 0) - (haveSum ? 30 : 0) - (headerHeight ?? 59) - (toolbarSetting?.showBottomToolbar ? 42 : 0) - (toolbarSetting?.showTopToolbar ? 42 : 0);
70088
69925
  }
70089
69926
  return height;
70090
69927
  }, [height, maximize, windowHeight]);
70091
69928
  const optionsGroupColumn = React$5.useMemo(() => {
70092
69929
  return contentColumns.map((col) => ({
70093
69930
  ...col,
70094
- headerText: t(col.headerText),
69931
+ headerText: t(col.headerText)
70095
69932
  }));
70096
69933
  }, [contentColumns]);
70097
69934
  React$5.useEffect(() => {
@@ -70100,7 +69937,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70100
69937
  }
70101
69938
  setExpandsAll(true);
70102
69939
  }, [groupSetting?.groupColumns]);
70103
- const { levels: headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, objWidthFixLeft, objWidthFixRight, lastObjWidthFixLeft, fisrtObjWidthFixRight, } = React$5.useMemo(() => {
69940
+ const { levels: headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, objWidthFixLeft, objWidthFixRight, lastObjWidthFixLeft, fisrtObjWidthFixRight } = React$5.useMemo(() => {
70104
69941
  const rs = calculateTableStructure(columns, settingColumns?.value, groupSetting?.groupColumns);
70105
69942
  setContentColumns(rs.flat);
70106
69943
  return rs;
@@ -70118,17 +69955,12 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70118
69955
  }
70119
69956
  };
70120
69957
  const searchTemplate = () => {
70121
- return (jsxRuntime.jsx("div", { className: "me-50 r-search", children: jsxRuntime.jsx(ReactInput, { style: { width: '230px' }, value: searchSetting?.searchTerm !== undefined
70122
- ? searchSetting?.searchTerm
70123
- : searchTerm, setSearchTerm: searchSetting?.setSearchTerm
70124
- ? searchSetting?.setSearchTerm
70125
- : setSearchTerm, placeholder: t('Search'), onKeyPress: handleKeyPress }) }));
69958
+ return (jsxRuntime.jsx("div", { className: "me-50 r-search", children: jsxRuntime.jsx(ReactInput, { style: { width: '230px' }, value: searchSetting?.searchTerm !== undefined ? searchSetting?.searchTerm : searchTerm, setSearchTerm: searchSetting?.setSearchTerm ? searchSetting?.setSearchTerm : setSearchTerm, placeholder: t('Search'), onKeyPress: handleKeyPress }) }));
70126
69959
  };
70127
69960
  const groupbtnTemplate = () => {
70128
69961
  return (jsxRuntime.jsxs(UncontrolledDropdown, { children: [jsxRuntime.jsx(DropdownToggle$1, { tag: "div", id: "group-dropdown-toggle", style: { position: 'relative' }, onClick: (e) => e.preventDefault(), children: jsxRuntime.jsx(GroupIcon, { color: "#7F7F7F", size: 24 }) }), jsxRuntime.jsxs(DropdownMenu$1, { className: "formula-dropdown icon-dropdown p-1", children: [jsxRuntime.jsx("div", { className: "mb-1", style: { fontSize: 16, fontWeight: 500 }, children: "Nh\u00F3m d\u1EEF li\u1EC7u theo c\u1ED9t" }), jsxRuntime.jsxs("div", { className: 'form-group', children: [jsxRuntime.jsx(Label$1, { id: `label-group-1`, style: { fontWeight: 500, fontSize: 13 }, children: "M\u1EE9c 1" }), jsxRuntime.jsx("div", { className: "form-input", children: jsxRuntime.jsx(SelectTable, { options: optionsGroupColumn, fieldLabel: 'headerText', fieldValue: 'field', value: groupColumns[0]
70129
69962
  ? {
70130
- headerText: t(contentColumns.find((x) => x.field === groupColumns[0])?.headerText ??
70131
- contentColumns.find((x) => x.field === groupColumns[0])?.headerText),
69963
+ headerText: t(contentColumns.find((x) => x.field === groupColumns[0])?.headerText ?? contentColumns.find((x) => x.field === groupColumns[0])?.headerText)
70132
69964
  }
70133
69965
  : undefined, onChange: (val) => {
70134
69966
  if (val) {
@@ -70140,8 +69972,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70140
69972
  setGroupColumns([...groupColumns]);
70141
69973
  }, isClearable: groupColumns?.length === 1 }) })] }), jsxRuntime.jsxs("div", { className: 'form-group', children: [jsxRuntime.jsx(Label$1, { id: `label-group-2`, style: { fontWeight: 500, fontSize: 13 }, children: "M\u1EE9c 2" }), jsxRuntime.jsx("div", { className: "form-input", children: jsxRuntime.jsx(SelectTable, { options: optionsGroupColumn, fieldLabel: 'headerText', fieldValue: 'field', value: groupColumns[1]
70142
69974
  ? {
70143
- headerText: t(contentColumns.find((x) => x.field === groupColumns[1])?.headerText ??
70144
- contentColumns.find((x) => x.field === groupColumns[1])?.headerText),
69975
+ headerText: t(contentColumns.find((x) => x.field === groupColumns[1])?.headerText ?? contentColumns.find((x) => x.field === groupColumns[1])?.headerText)
70145
69976
  }
70146
69977
  : undefined, onChange: (val) => {
70147
69978
  if (val) {
@@ -70153,8 +69984,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70153
69984
  setGroupColumns([...groupColumns]);
70154
69985
  }, isClearable: groupColumns?.length === 2 }) })] }), jsxRuntime.jsxs("div", { className: 'form-group', children: [jsxRuntime.jsx(Label$1, { id: `label-group-3`, style: { fontWeight: 500, fontSize: 13 }, children: "M\u1EE9c 3" }), jsxRuntime.jsx("div", { className: "form-input", children: jsxRuntime.jsx(SelectTable, { options: optionsGroupColumn, fieldLabel: 'headerText', fieldValue: 'field', value: groupColumns[2]
70155
69986
  ? {
70156
- headerText: t(contentColumns.find((x) => x.field === groupColumns[2])?.headerText ??
70157
- contentColumns.find((x) => x.field === groupColumns[2])?.headerText),
69987
+ headerText: t(contentColumns.find((x) => x.field === groupColumns[2])?.headerText ?? contentColumns.find((x) => x.field === groupColumns[2])?.headerText)
70158
69988
  }
70159
69989
  : undefined, onChange: (val) => {
70160
69990
  if (groupSetting) {
@@ -70168,7 +69998,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70168
69998
  }
70169
69999
  }, isClearable: groupColumns?.length === 3 }) })] }), jsxRuntime.jsxs("div", { className: "border-top d-flex justify-content-end mt-1", children: [jsxRuntime.jsx(Button$1$1, { color: "primary", className: "mt-1 me-50 rounded", size: "sm", onClick: () => {
70170
70000
  groupSetting?.onGroup({
70171
- columnGrouped: groupColumns.filter((x) => x),
70001
+ columnGrouped: groupColumns.filter((x) => x)
70172
70002
  });
70173
70003
  document.getElementById('group-dropdown-toggle')?.click();
70174
70004
  }, children: `${t('Apply')}` }), jsxRuntime.jsx(Button$1$1, { color: "secondary", outline: true, className: "mt-1 rounded", size: "sm", onClick: () => {
@@ -70177,16 +70007,14 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70177
70007
  }, children: `${t('Delete')}` })] })] })] }));
70178
70008
  };
70179
70009
  const chooseColumnsTemplate = () => {
70180
- return (jsxRuntime.jsx(SvgSettings, { className: "r-toolbar-icon", fontSize: 20, color: "#7F7F7F", onClick: () => setOpenPopupSetupColumn(true) }));
70010
+ return jsxRuntime.jsx(SvgSettings, { className: "r-toolbar-icon", fontSize: 20, color: "#7F7F7F", onClick: () => setOpenPopupSetupColumn(true) });
70181
70011
  };
70182
70012
  const expandTemplate = () => {
70183
70013
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!expandsAll && (jsxRuntime.jsx(ExpandAllIcon, { onClick: () => {
70184
70014
  setExpandsAll(true);
70185
- }, color: "#7F7F7F", size: 24 })), expandsAll && (jsxRuntime.jsx(UnExpandAllIcon, { onClick: () => setExpandsAll(false), color: "#7F7F7F", size: 24 }))] }));
70015
+ }, color: "#7F7F7F", size: 24 })), expandsAll && jsxRuntime.jsx(UnExpandAllIcon, { onClick: () => setExpandsAll(false), color: "#7F7F7F", size: 24 })] }));
70186
70016
  };
70187
- const defaultToolbarOption = searchSetting?.searchEnable
70188
- ? [{ template: searchTemplate, align: 'left' }]
70189
- : [];
70017
+ const defaultToolbarOption = searchSetting?.searchEnable ? [{ template: searchTemplate, align: 'left' }] : [];
70190
70018
  if (groupSetting) {
70191
70019
  defaultToolbarOption.push({ template: groupbtnTemplate, align: 'left' });
70192
70020
  }
@@ -70195,10 +70023,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70195
70023
  }
70196
70024
  let toolbarTopOption = [];
70197
70025
  if (toolbarSetting?.toolbarOptions) {
70198
- toolbarTopOption = [
70199
- ...defaultToolbarOption,
70200
- ...toolbarSetting?.toolbarOptions,
70201
- ];
70026
+ toolbarTopOption = [...defaultToolbarOption, ...toolbarSetting?.toolbarOptions];
70202
70027
  }
70203
70028
  else {
70204
70029
  toolbarTopOption = [...defaultToolbarOption];
@@ -70229,9 +70054,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70229
70054
  React$5.useEffect(() => {
70230
70055
  if (setSelectedItem) {
70231
70056
  if (isMulti) {
70232
- if (dataSource &&
70233
- selectedRows &&
70234
- selectedRows?.length !== selectedItem?.length) {
70057
+ if (dataSource && selectedRows && selectedRows?.length !== selectedItem?.length) {
70235
70058
  setSelectedItem([...selectedRows]);
70236
70059
  if (handleSelect) {
70237
70060
  handleSelect([...selectedRows]);
@@ -70240,8 +70063,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70240
70063
  }
70241
70064
  else {
70242
70065
  if (dataSource && selectedRows?.length > 0) {
70243
- if (!selectedItem ||
70244
- selectedItem[fieldKey] !== selectedRows[0][fieldKey]) {
70066
+ if (!selectedItem || selectedItem[fieldKey] !== selectedRows[0][fieldKey]) {
70245
70067
  setSelectedItem({ ...selectedRows[0] });
70246
70068
  if (handleSelect) {
70247
70069
  handleSelect({ ...selectedRows[0] });
@@ -70260,8 +70082,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70260
70082
  React$5.useEffect(() => {
70261
70083
  if (!isMulti) {
70262
70084
  if (dataSource && selectedItem && selectedItem[fieldKey]) {
70263
- if (selectedRows?.length === 0 ||
70264
- selectedItem[fieldKey] !== selectedRows[0][fieldKey]) {
70085
+ if (selectedRows?.length === 0 || selectedItem[fieldKey] !== selectedRows[0][fieldKey]) {
70265
70086
  setSelectedRows([selectedItem]);
70266
70087
  }
70267
70088
  }
@@ -70270,18 +70091,16 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70270
70091
  }
70271
70092
  }
70272
70093
  else {
70273
- if (dataSource &&
70274
- selectedItem &&
70275
- selectedRows?.length !== selectedItem.length) {
70094
+ if (dataSource && selectedItem && selectedRows?.length !== selectedItem.length) {
70276
70095
  setSelectedRows(selectedItem ? [...selectedItem] : []);
70277
70096
  }
70278
70097
  }
70279
70098
  }, [selectedItem]);
70280
70099
  return (jsxRuntime.jsxs("div", { className: classNames$1('r-table-edit r-virtualized-table', {
70281
- 'is-maximized': maximize,
70282
- }), children: [jsxRuntime.jsxs("div", { className: "r-grid", children: [toolbarSetting?.showTopToolbar && (jsxRuntime.jsx(RenderToolbarTop, { toolbarTopOption: toolbarTopOption, maximize: maximize, setMaximize: setMaximize })), headerComponent && headerComponent(), jsxRuntime.jsxs("div", { ref: gridRef, className: "r-gridtable", style: {
70100
+ 'is-maximized': maximize
70101
+ }), children: [jsxRuntime.jsxs("div", { className: "r-grid", children: [toolbarSetting?.showTopToolbar && jsxRuntime.jsx(RenderToolbarTop, { toolbarTopOption: toolbarTopOption, maximize: maximize, setMaximize: setMaximize }), headerComponent && headerComponent(), jsxRuntime.jsxs("div", { ref: gridRef, className: "r-gridtable", style: {
70283
70102
  height: `${heightTable ? `${heightTable}px` : 'auto'}`,
70284
- position: 'relative',
70103
+ position: 'relative'
70285
70104
  }, children: [jsxRuntime.jsx(TableElement, { idTable: idTable, gridRef: gridRef, isLoading: isLoading, dataSource: dataSource, objHeaderWidthFixLeft: objHeaderWidthFixLeft, objHeaderWidthFixRight: objHeaderWidthFixRight, fieldKey: fieldKey, lastObjWidthFixLeft: lastObjWidthFixLeft, fisrtObjWidthFixRight: fisrtObjWidthFixRight, selectedRows: selectedRows, isMulti: isMulti, filterBy: filterBy, orderBy: orderBy, formatSetting: formatSetting, contentColumns: contentColumns, headerColumns: headerColumns, objWidthFixLeft: objWidthFixLeft, objWidthFixRight: objWidthFixRight, searchTerm: searchTerm, searchSetting: searchSetting, columnsAggregate: columnsAggregate, haveSum: haveSum, expandsAll: expandsAll, zeroVisiable: zeroVisiable, contextMenuItems: contextMenuItems, handleContextMenuClick: handleContextMenuClick, setFilterBy: setFilterBy, setSelectedRows: setSelectedRows, setOrderBy: setOrderBy, handleDoubleClick: handleDoubleClick, handleCellClick: handleCellClick, querySetting: querySetting, setContentColumns: setContentColumns, setExpandsAll: setExpandsAll }), 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, { gridRef: gridRef, 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(SettingColumn, { gridRef: gridRef, handleSidebar: () => {
70286
70105
  setOpenPopupSetupColumn(!openPopupSetupColumn);
70287
70106
  }, settingColumns: settingColumns, openSidebar: openPopupSetupColumn, column: [...contentColumns], resetDefaultColumns: resetDefaultColumns, setColumn: (newColumns) => {
@@ -70292,7 +70111,7 @@ const TableView = ({ idTable, dataSource, height = 400, haveSum, columns, isLoad
70292
70111
  visible: x.visible,
70293
70112
  fixedType: x.fixedType,
70294
70113
  width: x.width,
70295
- sortOrder: index + 1,
70114
+ sortOrder: index + 1
70296
70115
  })));
70297
70116
  }
70298
70117
  } })] }));