vxe-table 3.15.31 → 3.15.33

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.
Files changed (39) hide show
  1. package/es/locale/lang/en-US.js +2 -2
  2. package/es/style.css +1 -1
  3. package/es/table/module/validator/mixin.js +2 -2
  4. package/es/table/src/cell.js +31 -15
  5. package/es/table/src/methods.js +21 -3
  6. package/es/table/src/util.js +1 -1
  7. package/es/ui/index.js +3 -3
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/index.umd.js +65 -21
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/locale/lang/en-US.js +2 -2
  12. package/lib/locale/lang/en-US.min.js +1 -1
  13. package/lib/locale/lang/en-US.umd.js +2 -2
  14. package/lib/style.css +1 -1
  15. package/lib/table/module/validator/mixin.js +1 -1
  16. package/lib/table/module/validator/mixin.min.js +1 -1
  17. package/lib/table/src/cell.js +39 -12
  18. package/lib/table/src/cell.min.js +1 -1
  19. package/lib/table/src/methods.js +20 -3
  20. package/lib/table/src/methods.min.js +1 -1
  21. package/lib/table/src/util.js +1 -1
  22. package/lib/table/src/util.min.js +1 -1
  23. package/lib/ui/index.js +3 -3
  24. package/lib/ui/index.min.js +1 -1
  25. package/lib/ui/src/log.js +1 -1
  26. package/lib/ui/src/log.min.js +1 -1
  27. package/package.json +1 -1
  28. package/packages/locale/lang/en-US.ts +2 -2
  29. package/packages/table/module/validator/mixin.ts +2 -2
  30. package/packages/table/src/cell.ts +31 -16
  31. package/packages/table/src/methods.ts +20 -3
  32. package/packages/table/src/util.ts +1 -1
  33. package/packages/ui/index.ts +2 -2
  34. /package/es/{iconfont.1747621179042.ttf → iconfont.1749019365308.ttf} +0 -0
  35. /package/es/{iconfont.1747621179042.woff → iconfont.1749019365308.woff} +0 -0
  36. /package/es/{iconfont.1747621179042.woff2 → iconfont.1749019365308.woff2} +0 -0
  37. /package/lib/{iconfont.1747621179042.ttf → iconfont.1749019365308.ttf} +0 -0
  38. /package/lib/{iconfont.1747621179042.woff → iconfont.1749019365308.woff} +0 -0
  39. /package/lib/{iconfont.1747621179042.woff2 → iconfont.1749019365308.woff2} +0 -0
@@ -1,6 +1,6 @@
1
1
  import XEUtils from 'xe-utils';
2
2
  import { VxeUI } from '../../../ui';
3
- import { getFuncText } from '../../../ui/src/utils';
3
+ import { eqEmptyValue, getFuncText } from '../../../ui/src/utils';
4
4
  import { scrollToView } from '../../../ui/src/dom';
5
5
  import { handleFieldOrColumn, getRowid } from '../../src/util';
6
6
  import { warnLog, errLog } from '../../../ui/src/log';
@@ -119,7 +119,7 @@ function validRuleValue(rule, val, required) {
119
119
  }
120
120
  function checkRuleStatus(rule, val) {
121
121
  const { required } = rule;
122
- const isEmptyVal = XEUtils.eqNull(val);
122
+ const isEmptyVal = XEUtils.isArray(val) ? !val.length : eqEmptyValue(val);
123
123
  if (required) {
124
124
  if (isEmptyVal) {
125
125
  return false;
@@ -247,13 +247,17 @@ function getDefaultCellLabel(params) {
247
247
  return formatText($table.getCellLabel(row, column), 1);
248
248
  }
249
249
  function renderCellHandle(h, params) {
250
- const { column, $table } = params;
250
+ const { column, row, $table } = params;
251
251
  const tableProps = $table;
252
+ const tableReactData = $table;
252
253
  const { editConfig } = tableProps;
254
+ const { isRowGroupStatus } = tableReactData;
253
255
  const { type, treeNode, rowGroupNode, editRender } = column;
256
+ const rowGroupOpts = $table.computeRowGroupOpts;
257
+ const { mode } = rowGroupOpts;
254
258
  const checkboxOpts = $table.computeCheckboxOpts;
255
259
  const editOpts = $table.computeEditOpts;
256
- const isDeepCell = treeNode || rowGroupNode;
260
+ const isDeepCell = treeNode || (isRowGroupStatus && row.isAggregate && (mode === 'column' ? column.field === row.groupField : rowGroupNode));
257
261
  switch (type) {
258
262
  case 'seq':
259
263
  return isDeepCell ? Cell.renderDeepIndexCell(h, params) : Cell.renderSeqCell(h, params);
@@ -352,7 +356,7 @@ export const Cell = {
352
356
  const tableReactData = $table;
353
357
  const tableInternalData = $table;
354
358
  const { isRowGroupStatus } = tableReactData;
355
- const { slots, editRender, cellRender, rowGroupNode } = column;
359
+ const { field, slots, editRender, cellRender, rowGroupNode } = column;
356
360
  const renderOpts = editRender || cellRender;
357
361
  if (slots && slots.default) {
358
362
  return renderCellBaseVNs(h, params, $table.callSlot(slots.default, params, h));
@@ -367,29 +371,37 @@ export const Cell = {
367
371
  }
368
372
  }
369
373
  let cellValue = '';
370
- if (isRowGroupStatus && rowGroupNode && row.isAggregate) {
374
+ if (isRowGroupStatus && row.isAggregate) {
371
375
  const { fullColumnFieldData } = tableInternalData;
372
376
  const rowGroupOpts = $table.computeRowGroupOpts;
373
- const { showTotal, totalMethod, contentMethod, mapChildrenField } = rowGroupOpts;
377
+ const { mode, showTotal, totalMethod, countFields, countMethod, contentMethod, mapChildrenField } = rowGroupOpts;
374
378
  const groupField = row.groupField;
375
- cellValue = row.groupContent;
379
+ const groupContent = row.groupContent;
376
380
  const childList = mapChildrenField ? (row[mapChildrenField] || []) : [];
377
- const totalValue = childList.length;
381
+ const totalValue = row.childCount;
378
382
  const colRest = fullColumnFieldData[groupField] || {};
379
383
  const params = {
380
384
  $table,
381
385
  groupField,
382
386
  groupColumn: (colRest ? colRest.column : null),
383
387
  column,
384
- groupValue: cellValue,
388
+ groupValue: groupContent,
385
389
  children: childList,
386
390
  totalValue: totalValue
387
391
  };
388
- if (contentMethod) {
389
- cellValue = `${contentMethod(params)}`;
392
+ if (mode === 'column' ? column.field === row.groupField : rowGroupNode) {
393
+ cellValue = groupContent;
394
+ if (contentMethod) {
395
+ cellValue = `${contentMethod(params)}`;
396
+ }
397
+ if (showTotal) {
398
+ cellValue = getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(params) : totalValue, totalValue]);
399
+ }
390
400
  }
391
- if (showTotal) {
392
- cellValue = getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(params) : totalValue, totalValue]);
401
+ else if (countFields && countFields.includes(field)) {
402
+ if (countMethod) {
403
+ cellValue = `${countMethod(params)}`;
404
+ }
393
405
  }
394
406
  }
395
407
  else if (!(isRowGroupStatus && row.isAggregate)) {
@@ -531,10 +543,14 @@ export const Cell = {
531
543
  * 行分组、树结构
532
544
  */
533
545
  renderDeepNodeBtn(h, params, cellVNodes) {
534
- const { row, column } = params;
546
+ const { $table, row, column } = params;
535
547
  const { rowGroupNode } = column;
536
- if (rowGroupNode && row.isAggregate) {
537
- return [Cell.renderRowGroupBtn(h, params, cellVNodes)];
548
+ if (row.isAggregate) {
549
+ const rowGroupOpts = $table.computeRowGroupOpts;
550
+ const { mode } = rowGroupOpts;
551
+ if (mode === 'column' ? column.field === row.groupField : rowGroupNode) {
552
+ return [Cell.renderRowGroupBtn(h, params, cellVNodes)];
553
+ }
538
554
  }
539
555
  return [Cell.renderTreeNodeBtn(h, params, cellVNodes)];
540
556
  },
@@ -96,7 +96,7 @@ function handleVirtualXVisible($xeTable) {
96
96
  }
97
97
  }
98
98
  let visibleSize = 0;
99
- const toVisibleIndex = Math.max(0, leftIndex < visibleColumn.length ? leftIndex - 2 : 0);
99
+ const toVisibleIndex = leftIndex === visibleColumn.length ? leftIndex : Math.max(0, leftIndex < visibleColumn.length ? leftIndex - 2 : 0);
100
100
  for (let cIndex = toVisibleIndex, cLen = visibleColumn.length; cIndex < cLen; cIndex++) {
101
101
  const column = visibleColumn[cIndex];
102
102
  const colid = column.id;
@@ -1690,7 +1690,7 @@ function handleVirtualYVisible($xeTable) {
1690
1690
  rightIndex = rIndex;
1691
1691
  }
1692
1692
  }
1693
- toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
1693
+ toVisibleIndex = leftIndex === afterFullData.length ? leftIndex : Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
1694
1694
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
1695
1695
  const row = afterFullData[rIndex];
1696
1696
  const rowid = handleGetRowId(row);
@@ -2624,6 +2624,7 @@ function handleGroupData($xeTable, list, rowGroups) {
2624
2624
  const groupField = rgItem.field;
2625
2625
  const groupColumn = $xeTable.getColumnByField(groupField);
2626
2626
  const groupMaps = {};
2627
+ const groupList = [];
2627
2628
  const rowkey = getRowkey($xeTable);
2628
2629
  list.forEach((row) => {
2629
2630
  const cellValue = groupColumn ? $xeTable.getCellLabel(row, groupColumn) : XEUtils.get(row, groupField);
@@ -2640,8 +2641,10 @@ function handleGroupData($xeTable, list, rowGroups) {
2640
2641
  });
2641
2642
  XEUtils.objectEach(groupMaps, (childList, groupValue) => {
2642
2643
  const { fullData: childFullData, treeData: childTreeData } = handleGroupData($xeTable, childList, rowGroups.slice(1));
2644
+ const childCount = 0;
2643
2645
  const groupRow = {
2644
2646
  isAggregate: true,
2647
+ childCount,
2645
2648
  groupContent: groupValue,
2646
2649
  groupField,
2647
2650
  [rowField]: getRowUniqueId(),
@@ -2656,12 +2659,25 @@ function handleGroupData($xeTable, list, rowGroups) {
2656
2659
  if (indeterminateField) {
2657
2660
  groupRow[indeterminateField] = false;
2658
2661
  }
2662
+ groupList.push(groupRow);
2659
2663
  treeData.push(groupRow);
2660
2664
  fullData.push(groupRow);
2661
2665
  if (childFullData.length) {
2662
2666
  fullData.push(...childFullData);
2663
2667
  }
2664
2668
  });
2669
+ XEUtils.lastEach(groupList, groupItem => {
2670
+ let count = 0;
2671
+ XEUtils.each(groupItem[childrenField], row => {
2672
+ if (row.isAggregate) {
2673
+ count += row[childrenField] ? row[childrenField].length : 0;
2674
+ }
2675
+ else {
2676
+ count++;
2677
+ }
2678
+ });
2679
+ groupItem.childCount = count;
2680
+ });
2665
2681
  }
2666
2682
  }
2667
2683
  return {
@@ -3365,7 +3381,9 @@ function updateColumnOffsetLeft($xeTable) {
3365
3381
  const column = visibleColumn[cIndex];
3366
3382
  const colid = column.id;
3367
3383
  const colRest = fullColumnIdData[colid];
3368
- colRest.oLeft = offsetLeft;
3384
+ if (colRest) {
3385
+ colRest.oLeft = offsetLeft;
3386
+ }
3369
3387
  offsetLeft += column.renderWidth;
3370
3388
  }
3371
3389
  }
@@ -75,7 +75,7 @@ export function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
75
75
  // 还原滚动状态
76
76
  return $xeTable.scrollTo(scrollLeft, scrollTop);
77
77
  }
78
- return $xeTable.$nextTick();
78
+ return $xeTable.clearScroll();
79
79
  }
80
80
  export function toTreePathSeq(path) {
81
81
  return path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('');
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.15.31";
3
+ export const version = "3.15.33";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -201,13 +201,13 @@ VxeUI.setConfig({
201
201
  isReplace: true
202
202
  },
203
203
  virtualXConfig: {
204
- enabled: false,
204
+ enabled: true,
205
205
  gt: 24,
206
206
  preSize: 0,
207
207
  oSize: 0
208
208
  },
209
209
  virtualYConfig: {
210
- enabled: false,
210
+ enabled: true,
211
211
  gt: 100,
212
212
  preSize: 1,
213
213
  oSize: 0
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.15.31"}`;
3
+ const version = `table v${"3.15.33"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -2002,7 +2002,7 @@ function getClass(property, params) {
2002
2002
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2003
2003
 
2004
2004
 
2005
- const version = "3.15.31";
2005
+ const version = "3.15.33";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2203,13 +2203,13 @@ core_.VxeUI.setConfig({
2203
2203
  isReplace: true
2204
2204
  },
2205
2205
  virtualXConfig: {
2206
- enabled: false,
2206
+ enabled: true,
2207
2207
  gt: 24,
2208
2208
  preSize: 0,
2209
2209
  oSize: 0
2210
2210
  },
2211
2211
  virtualYConfig: {
2212
- enabled: false,
2212
+ enabled: true,
2213
2213
  gt: 100,
2214
2214
  preSize: 1,
2215
2215
  oSize: 0
@@ -2646,7 +2646,7 @@ function isNodeElement(elem) {
2646
2646
  const {
2647
2647
  log: log_log
2648
2648
  } = core_.VxeUI;
2649
- const log_version = `table v${"3.15.31"}`;
2649
+ const log_version = `table v${"3.15.33"}`;
2650
2650
  const warnLog = log_log.create('warn', log_version);
2651
2651
  const errLog = log_log.create('error', log_version);
2652
2652
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -2900,7 +2900,7 @@ function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
2900
2900
  // 还原滚动状态
2901
2901
  return $xeTable.scrollTo(scrollLeft, scrollTop);
2902
2902
  }
2903
- return $xeTable.$nextTick();
2903
+ return $xeTable.clearScroll();
2904
2904
  }
2905
2905
  function toTreePathSeq(path) {
2906
2906
  return path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
@@ -3742,21 +3742,30 @@ function getDefaultCellLabel(params) {
3742
3742
  function renderCellHandle(h, params) {
3743
3743
  const {
3744
3744
  column,
3745
+ row,
3745
3746
  $table
3746
3747
  } = params;
3747
3748
  const tableProps = $table;
3749
+ const tableReactData = $table;
3748
3750
  const {
3749
3751
  editConfig
3750
3752
  } = tableProps;
3753
+ const {
3754
+ isRowGroupStatus
3755
+ } = tableReactData;
3751
3756
  const {
3752
3757
  type,
3753
3758
  treeNode,
3754
3759
  rowGroupNode,
3755
3760
  editRender
3756
3761
  } = column;
3762
+ const rowGroupOpts = $table.computeRowGroupOpts;
3763
+ const {
3764
+ mode
3765
+ } = rowGroupOpts;
3757
3766
  const checkboxOpts = $table.computeCheckboxOpts;
3758
3767
  const editOpts = $table.computeEditOpts;
3759
- const isDeepCell = treeNode || rowGroupNode;
3768
+ const isDeepCell = treeNode || isRowGroupStatus && row.isAggregate && (mode === 'column' ? column.field === row.groupField : rowGroupNode);
3760
3769
  switch (type) {
3761
3770
  case 'seq':
3762
3771
  return isDeepCell ? Cell.renderDeepIndexCell(h, params) : Cell.renderSeqCell(h, params);
@@ -3876,6 +3885,7 @@ const Cell = {
3876
3885
  isRowGroupStatus
3877
3886
  } = tableReactData;
3878
3887
  const {
3888
+ field,
3879
3889
  slots,
3880
3890
  editRender,
3881
3891
  cellRender,
@@ -3897,36 +3907,46 @@ const Cell = {
3897
3907
  }
3898
3908
  }
3899
3909
  let cellValue = '';
3900
- if (isRowGroupStatus && rowGroupNode && row.isAggregate) {
3910
+ if (isRowGroupStatus && row.isAggregate) {
3901
3911
  const {
3902
3912
  fullColumnFieldData
3903
3913
  } = tableInternalData;
3904
3914
  const rowGroupOpts = $table.computeRowGroupOpts;
3905
3915
  const {
3916
+ mode,
3906
3917
  showTotal,
3907
3918
  totalMethod,
3919
+ countFields,
3920
+ countMethod,
3908
3921
  contentMethod,
3909
3922
  mapChildrenField
3910
3923
  } = rowGroupOpts;
3911
3924
  const groupField = row.groupField;
3912
- cellValue = row.groupContent;
3925
+ const groupContent = row.groupContent;
3913
3926
  const childList = mapChildrenField ? row[mapChildrenField] || [] : [];
3914
- const totalValue = childList.length;
3927
+ const totalValue = row.childCount;
3915
3928
  const colRest = fullColumnFieldData[groupField] || {};
3916
3929
  const params = {
3917
3930
  $table,
3918
3931
  groupField,
3919
3932
  groupColumn: colRest ? colRest.column : null,
3920
3933
  column,
3921
- groupValue: cellValue,
3934
+ groupValue: groupContent,
3922
3935
  children: childList,
3923
3936
  totalValue: totalValue
3924
3937
  };
3925
- if (contentMethod) {
3926
- cellValue = `${contentMethod(params)}`;
3927
- }
3928
- if (showTotal) {
3929
- cellValue = cell_getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(params) : totalValue, totalValue]);
3938
+ if (mode === 'column' ? column.field === row.groupField : rowGroupNode) {
3939
+ cellValue = groupContent;
3940
+ if (contentMethod) {
3941
+ cellValue = `${contentMethod(params)}`;
3942
+ }
3943
+ if (showTotal) {
3944
+ cellValue = cell_getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(params) : totalValue, totalValue]);
3945
+ }
3946
+ } else if (countFields && countFields.includes(field)) {
3947
+ if (countMethod) {
3948
+ cellValue = `${countMethod(params)}`;
3949
+ }
3930
3950
  }
3931
3951
  } else if (!(isRowGroupStatus && row.isAggregate)) {
3932
3952
  cellValue = $table.getCellLabel(row, column);
@@ -4079,14 +4099,21 @@ const Cell = {
4079
4099
  */
4080
4100
  renderDeepNodeBtn(h, params, cellVNodes) {
4081
4101
  const {
4102
+ $table,
4082
4103
  row,
4083
4104
  column
4084
4105
  } = params;
4085
4106
  const {
4086
4107
  rowGroupNode
4087
4108
  } = column;
4088
- if (rowGroupNode && row.isAggregate) {
4089
- return [Cell.renderRowGroupBtn(h, params, cellVNodes)];
4109
+ if (row.isAggregate) {
4110
+ const rowGroupOpts = $table.computeRowGroupOpts;
4111
+ const {
4112
+ mode
4113
+ } = rowGroupOpts;
4114
+ if (mode === 'column' ? column.field === row.groupField : rowGroupNode) {
4115
+ return [Cell.renderRowGroupBtn(h, params, cellVNodes)];
4116
+ }
4090
4117
  }
4091
4118
  return [Cell.renderTreeNodeBtn(h, params, cellVNodes)];
4092
4119
  },
@@ -5196,7 +5223,7 @@ function handleVirtualXVisible($xeTable) {
5196
5223
  }
5197
5224
  }
5198
5225
  let visibleSize = 0;
5199
- const toVisibleIndex = Math.max(0, leftIndex < visibleColumn.length ? leftIndex - 2 : 0);
5226
+ const toVisibleIndex = leftIndex === visibleColumn.length ? leftIndex : Math.max(0, leftIndex < visibleColumn.length ? leftIndex - 2 : 0);
5200
5227
  for (let cIndex = toVisibleIndex, cLen = visibleColumn.length; cIndex < cLen; cIndex++) {
5201
5228
  const column = visibleColumn[cIndex];
5202
5229
  const colid = column.id;
@@ -7162,7 +7189,7 @@ function handleVirtualYVisible($xeTable) {
7162
7189
  rightIndex = rIndex;
7163
7190
  }
7164
7191
  }
7165
- toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
7192
+ toVisibleIndex = leftIndex === afterFullData.length ? leftIndex : Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
7166
7193
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
7167
7194
  const row = afterFullData[rIndex];
7168
7195
  const rowid = handleGetRowId(row);
@@ -8227,6 +8254,7 @@ function handleGroupData($xeTable, list, rowGroups) {
8227
8254
  const groupField = rgItem.field;
8228
8255
  const groupColumn = $xeTable.getColumnByField(groupField);
8229
8256
  const groupMaps = {};
8257
+ const groupList = [];
8230
8258
  const rowkey = getRowkey($xeTable);
8231
8259
  list.forEach(row => {
8232
8260
  const cellValue = groupColumn ? $xeTable.getCellLabel(row, groupColumn) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, groupField);
@@ -8246,8 +8274,10 @@ function handleGroupData($xeTable, list, rowGroups) {
8246
8274
  fullData: childFullData,
8247
8275
  treeData: childTreeData
8248
8276
  } = handleGroupData($xeTable, childList, rowGroups.slice(1));
8277
+ const childCount = 0;
8249
8278
  const groupRow = {
8250
8279
  isAggregate: true,
8280
+ childCount,
8251
8281
  groupContent: groupValue,
8252
8282
  groupField,
8253
8283
  [rowField]: getRowUniqueId(),
@@ -8262,12 +8292,24 @@ function handleGroupData($xeTable, list, rowGroups) {
8262
8292
  if (indeterminateField) {
8263
8293
  groupRow[indeterminateField] = false;
8264
8294
  }
8295
+ groupList.push(groupRow);
8265
8296
  treeData.push(groupRow);
8266
8297
  fullData.push(groupRow);
8267
8298
  if (childFullData.length) {
8268
8299
  fullData.push(...childFullData);
8269
8300
  }
8270
8301
  });
8302
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(groupList, groupItem => {
8303
+ let count = 0;
8304
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(groupItem[childrenField], row => {
8305
+ if (row.isAggregate) {
8306
+ count += row[childrenField] ? row[childrenField].length : 0;
8307
+ } else {
8308
+ count++;
8309
+ }
8310
+ });
8311
+ groupItem.childCount = count;
8312
+ });
8271
8313
  }
8272
8314
  }
8273
8315
  return {
@@ -9051,7 +9093,9 @@ function updateColumnOffsetLeft($xeTable) {
9051
9093
  const column = visibleColumn[cIndex];
9052
9094
  const colid = column.id;
9053
9095
  const colRest = fullColumnIdData[colid];
9054
- colRest.oLeft = offsetLeft;
9096
+ if (colRest) {
9097
+ colRest.oLeft = offsetLeft;
9098
+ }
9055
9099
  offsetLeft += column.renderWidth;
9056
9100
  }
9057
9101
  }
@@ -26097,7 +26141,7 @@ function checkRuleStatus(rule, val) {
26097
26141
  const {
26098
26142
  required
26099
26143
  } = rule;
26100
- const isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(val);
26144
+ const isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val) ? !val.length : eqEmptyValue(val);
26101
26145
  if (required) {
26102
26146
  if (isEmptyVal) {
26103
26147
  return false;