vxe-table 3.18.10 → 3.18.12

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 (58) hide show
  1. package/es/grid/style.css +4 -0
  2. package/es/grid/style.min.css +1 -1
  3. package/es/index.css +1 -1
  4. package/es/index.min.css +1 -1
  5. package/es/style.css +1 -1
  6. package/es/style.min.css +1 -1
  7. package/es/table/src/body.js +2 -2
  8. package/es/table/src/cell.js +40 -22
  9. package/es/table/src/footer.js +2 -2
  10. package/es/table/src/methods.js +27 -9
  11. package/es/table/src/props.js +4 -0
  12. package/es/table/src/table.js +10 -0
  13. package/es/ui/index.js +12 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-grid/style.css +4 -0
  16. package/es/vxe-grid/style.min.css +1 -1
  17. package/lib/grid/style/style.css +4 -0
  18. package/lib/grid/style/style.min.css +1 -1
  19. package/lib/index.css +1 -1
  20. package/lib/index.min.css +1 -1
  21. package/lib/index.umd.js +115 -44
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/table/src/body.js +2 -2
  26. package/lib/table/src/body.min.js +1 -1
  27. package/lib/table/src/cell.js +55 -29
  28. package/lib/table/src/cell.min.js +1 -1
  29. package/lib/table/src/footer.js +2 -2
  30. package/lib/table/src/footer.min.js +1 -1
  31. package/lib/table/src/methods.js +29 -9
  32. package/lib/table/src/methods.min.js +1 -1
  33. package/lib/table/src/props.js +4 -0
  34. package/lib/table/src/props.min.js +1 -1
  35. package/lib/table/src/table.js +10 -0
  36. package/lib/table/src/table.min.js +1 -1
  37. package/lib/ui/index.js +12 -1
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/log.js +1 -1
  40. package/lib/ui/src/log.min.js +1 -1
  41. package/lib/vxe-grid/style/style.css +4 -0
  42. package/lib/vxe-grid/style/style.min.css +1 -1
  43. package/package.json +1 -1
  44. package/packages/table/src/body.ts +2 -2
  45. package/packages/table/src/cell.ts +38 -22
  46. package/packages/table/src/footer.ts +2 -2
  47. package/packages/table/src/methods.ts +24 -9
  48. package/packages/table/src/props.ts +4 -0
  49. package/packages/table/src/table.ts +12 -0
  50. package/packages/ui/index.ts +11 -0
  51. package/styles/components/grid.scss +3 -0
  52. package/styles/theme/base.scss +3 -3
  53. /package/es/{iconfont.1757464750041.ttf → iconfont.1757987563312.ttf} +0 -0
  54. /package/es/{iconfont.1757464750041.woff → iconfont.1757987563312.woff} +0 -0
  55. /package/es/{iconfont.1757464750041.woff2 → iconfont.1757987563312.woff2} +0 -0
  56. /package/lib/{iconfont.1757464750041.ttf → iconfont.1757987563312.ttf} +0 -0
  57. /package/lib/{iconfont.1757464750041.woff → iconfont.1757987563312.woff} +0 -0
  58. /package/lib/{iconfont.1757464750041.woff2 → iconfont.1757987563312.woff2} +0 -0
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.18.10";
2005
+ const version = "3.18.12";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2065,6 +2065,12 @@ core_.VxeUI.setConfig({
2065
2065
  tooltipConfig: {
2066
2066
  enterable: true
2067
2067
  },
2068
+ headerTooltipConfig: {
2069
+ enterable: true
2070
+ },
2071
+ footerTooltipConfig: {
2072
+ enterable: true
2073
+ },
2068
2074
  validConfig: {
2069
2075
  showMessage: true,
2070
2076
  autoClear: true,
@@ -2074,6 +2080,11 @@ core_.VxeUI.setConfig({
2074
2080
  theme: 'beautify'
2075
2081
  },
2076
2082
  columnConfig: {
2083
+ autoOptions: {
2084
+ isCalcHeader: true,
2085
+ isCalcBody: true,
2086
+ isCalcFooter: true
2087
+ },
2077
2088
  maxFixedSize: 4
2078
2089
  },
2079
2090
  cellConfig: {
@@ -2675,7 +2686,7 @@ function isNodeElement(elem) {
2675
2686
  const {
2676
2687
  log: log_log
2677
2688
  } = core_.VxeUI;
2678
- const log_version = `table v${"3.18.10"}`;
2689
+ const log_version = `table v${"3.18.12"}`;
2679
2690
  const warnLog = log_log.create('warn', log_version);
2680
2691
  const errLog = log_log.create('error', log_version);
2681
2692
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3940,8 +3951,8 @@ function renderTitleContent(h, params, content) {
3940
3951
  const {
3941
3952
  showHeaderOverflow
3942
3953
  } = column;
3943
- const tooltipOpts = $table.computeTooltipOpts;
3944
- const showAllTip = tooltipOpts.showAll;
3954
+ const headerTooltipOpts = $table.computeHeaderTooltipOpts;
3955
+ const showAllTip = headerTooltipOpts.showAll;
3945
3956
  const headOverflow = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
3946
3957
  const showTitle = headOverflow === 'title';
3947
3958
  const showTooltip = headOverflow === true || headOverflow === 'tooltip';
@@ -4658,6 +4669,10 @@ const Cell = {
4658
4669
  selectCheckboxMaps,
4659
4670
  treeIndeterminateRowMaps
4660
4671
  } = tableInternalData;
4672
+ const aggregateOpts = $table.computeAggregateOpts;
4673
+ const {
4674
+ mapChildrenField
4675
+ } = aggregateOpts;
4661
4676
  const checkboxOpts = $table.computeCheckboxOpts;
4662
4677
  const {
4663
4678
  labelField,
@@ -4671,29 +4686,38 @@ const Cell = {
4671
4686
  const checkboxSlot = slots ? slots.checkbox : null;
4672
4687
  let indeterminate = false;
4673
4688
  let isChecked = false;
4674
- const isVisible = !visibleMethod || visibleMethod({
4675
- $table,
4676
- row
4677
- });
4678
- let isDisabled = !!checkMethod;
4689
+ let isVisible = true;
4690
+ let isDisabled = false;
4679
4691
  const ons = {};
4680
4692
  if (!isHidden) {
4681
4693
  const rowid = getRowid($table, row);
4682
4694
  isChecked = !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
4683
- ons.click = evnt => {
4684
- if (!isDisabled && isVisible) {
4685
- $table.triggerCheckRowEvent(evnt, params, !isChecked);
4695
+ if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
4696
+ const childList = row[mapChildrenField || ''];
4697
+ if (!childList || !childList.length || childList.every(item => !checkMethod({
4698
+ $table,
4699
+ row: item
4700
+ }))) {
4701
+ isDisabled = true;
4686
4702
  }
4687
- };
4688
- if (checkMethod) {
4689
- isDisabled = !checkMethod({
4703
+ } else {
4704
+ isVisible = !visibleMethod || visibleMethod({
4690
4705
  $table,
4691
4706
  row
4692
4707
  });
4708
+ isDisabled = checkMethod ? !checkMethod({
4709
+ $table,
4710
+ row
4711
+ }) : !!checkMethod;
4693
4712
  }
4694
4713
  if (treeConfig || isRowGroupStatus) {
4695
4714
  indeterminate = !!treeIndeterminateRowMaps[rowid];
4696
4715
  }
4716
+ ons.click = evnt => {
4717
+ if (!isDisabled && isVisible) {
4718
+ $table.triggerCheckRowEvent(evnt, params, !isChecked);
4719
+ }
4720
+ };
4697
4721
  }
4698
4722
  const checkboxParams = {
4699
4723
  ...params,
@@ -4749,6 +4773,10 @@ const Cell = {
4749
4773
  const {
4750
4774
  treeIndeterminateRowMaps
4751
4775
  } = tableInternalData;
4776
+ const aggregateOpts = $table.computeAggregateOpts;
4777
+ const {
4778
+ mapChildrenField
4779
+ } = aggregateOpts;
4752
4780
  const checkboxOpts = $table.computeCheckboxOpts;
4753
4781
  const {
4754
4782
  labelField,
@@ -4762,38 +4790,47 @@ const Cell = {
4762
4790
  } = column;
4763
4791
  const defaultSlot = slots ? slots.default : null;
4764
4792
  const checkboxSlot = slots ? slots.checkbox : null;
4765
- let isIndeterminate = false;
4793
+ let indeterminate = false;
4766
4794
  let isChecked = false;
4767
- const isVisible = !visibleMethod || visibleMethod({
4768
- $table,
4769
- row
4770
- });
4771
- let isDisabled = !!checkMethod;
4795
+ let isVisible = true;
4796
+ let isDisabled = false;
4772
4797
  const ons = {};
4773
4798
  if (!isHidden) {
4774
4799
  const rowid = getRowid($table, row);
4775
4800
  isChecked = !!updateCheckboxFlag && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
4776
- ons.click = evnt => {
4777
- if (!isDisabled && isVisible) {
4778
- $table.triggerCheckRowEvent(evnt, params, !isChecked);
4801
+ if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
4802
+ const childList = row[mapChildrenField || ''];
4803
+ if (!childList || !childList.length || childList.every(item => !checkMethod({
4804
+ $table,
4805
+ row: item
4806
+ }))) {
4807
+ isDisabled = true;
4779
4808
  }
4780
- };
4781
- if (checkMethod) {
4782
- isDisabled = !checkMethod({
4809
+ } else {
4810
+ isVisible = !visibleMethod || visibleMethod({
4783
4811
  $table,
4784
4812
  row
4785
4813
  });
4814
+ isDisabled = checkMethod ? !checkMethod({
4815
+ $table,
4816
+ row
4817
+ }) : !!checkMethod;
4786
4818
  }
4787
4819
  if (treeConfig || isRowGroupStatus) {
4788
- isIndeterminate = !!treeIndeterminateRowMaps[rowid];
4820
+ indeterminate = !!treeIndeterminateRowMaps[rowid];
4789
4821
  }
4822
+ ons.click = evnt => {
4823
+ if (!isDisabled && isVisible) {
4824
+ $table.triggerCheckRowEvent(evnt, params, !isChecked);
4825
+ }
4826
+ };
4790
4827
  }
4791
4828
  const checkboxParams = {
4792
4829
  ...params,
4793
4830
  checked: isChecked,
4794
4831
  disabled: isDisabled,
4795
4832
  visible: isVisible,
4796
- indeterminate: isIndeterminate
4833
+ indeterminate
4797
4834
  };
4798
4835
  if (checkboxSlot) {
4799
4836
  return renderCellBaseVNs(h, params, $table.callSlot(checkboxSlot, checkboxParams, h));
@@ -4801,7 +4838,7 @@ const Cell = {
4801
4838
  const checkVNs = [];
4802
4839
  if (isVisible) {
4803
4840
  checkVNs.push(h('span', {
4804
- class: ['vxe-checkbox--icon', isIndeterminate ? cell_getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? cell_getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? cell_getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : cell_getIcon().TABLE_CHECKBOX_UNCHECKED]
4841
+ class: ['vxe-checkbox--icon', indeterminate ? cell_getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? cell_getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? cell_getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : cell_getIcon().TABLE_CHECKBOX_UNCHECKED]
4805
4842
  }));
4806
4843
  }
4807
4844
  if (defaultSlot || labelField) {
@@ -4813,7 +4850,7 @@ const Cell = {
4813
4850
  class: ['vxe-cell--checkbox', {
4814
4851
  'is--checked': isChecked,
4815
4852
  'is--disabled': isDisabled,
4816
- 'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : isIndeterminate,
4853
+ 'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : indeterminate,
4817
4854
  'is--hidden': !isVisible
4818
4855
  }],
4819
4856
  on: ons
@@ -5705,6 +5742,10 @@ const tableProps = {
5705
5742
  checkboxConfig: Object,
5706
5743
  // tooltip 配置项
5707
5744
  tooltipConfig: Object,
5745
+ // 表头 tooltip 配置项
5746
+ headerTooltipConfig: Object,
5747
+ // 表尾 tooltip 配置项
5748
+ footerTooltipConfig: Object,
5708
5749
  // 导出配置项
5709
5750
  exportConfig: [Boolean, Object],
5710
5751
  // 导入配置项
@@ -9076,7 +9117,7 @@ function clearRowDragData($xeTable) {
9076
9117
  * @param {Event} evnt 事件
9077
9118
  * @param {Row} row 行对象
9078
9119
  */
9079
- function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params) {
9120
+ function handleTooltip($xeTable, evnt, tipOpts, type, tdEl, overflowElem, tipElem, params) {
9080
9121
  const reactData = $xeTable;
9081
9122
  const tipOverEl = overflowElem || tdEl;
9082
9123
  if (!tipOverEl) {
@@ -9086,7 +9127,6 @@ function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params
9086
9127
  const {
9087
9128
  tooltipStore
9088
9129
  } = reactData;
9089
- const tooltipOpts = $xeTable.computeTooltipOpts;
9090
9130
  const {
9091
9131
  column,
9092
9132
  row
@@ -9094,7 +9134,7 @@ function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params
9094
9134
  const {
9095
9135
  showAll,
9096
9136
  contentMethod
9097
- } = tooltipOpts;
9137
+ } = tipOpts;
9098
9138
  const customContent = contentMethod ? contentMethod(params) : null;
9099
9139
  const useCustom = contentMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent);
9100
9140
  const content = useCustom ? customContent : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
@@ -9107,7 +9147,7 @@ function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params
9107
9147
  visible: true,
9108
9148
  content: tipContent,
9109
9149
  type,
9110
- currOpts: {}
9150
+ currOpts: tipOpts
9111
9151
  });
9112
9152
  $xeTable.$nextTick(() => {
9113
9153
  const $tooltip = $xeTable.$refs.refTooltip;
@@ -13848,6 +13888,7 @@ const Methods = {
13848
13888
  const {
13849
13889
  tooltipStore
13850
13890
  } = reactData;
13891
+ const headerTooltipOpts = $xeTable.computeHeaderTooltipOpts;
13851
13892
  const {
13852
13893
  column
13853
13894
  } = params;
@@ -13870,7 +13911,7 @@ const Methods = {
13870
13911
  }
13871
13912
  if (tooltipStore.column !== column || !tooltipStore.visible) {
13872
13913
  const ctEl = thEl.querySelector('.vxe-cell--title');
13873
- handleTooltip($xeTable, evnt, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
13914
+ handleTooltip($xeTable, evnt, headerTooltipOpts, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
13874
13915
  }
13875
13916
  },
13876
13917
  /**
@@ -13889,6 +13930,7 @@ const Methods = {
13889
13930
  const {
13890
13931
  tooltipStore
13891
13932
  } = reactData;
13933
+ const tooltipOpts = $xeTable.computeTooltipOpts;
13892
13934
  const editOpts = $xeTable.computeEditOpts;
13893
13935
  const {
13894
13936
  actived
@@ -13920,7 +13962,7 @@ const Methods = {
13920
13962
  if (!tipEl) {
13921
13963
  tipEl = ctEl;
13922
13964
  }
13923
- handleTooltip($xeTable, evnt, 'body', tdEl, ovEl || ctEl, tipEl, params);
13965
+ handleTooltip($xeTable, evnt, tooltipOpts, 'body', tdEl, ovEl || ctEl, tipEl, params);
13924
13966
  }
13925
13967
  },
13926
13968
  /**
@@ -13935,6 +13977,7 @@ const Methods = {
13935
13977
  const {
13936
13978
  tooltipStore
13937
13979
  } = reactData;
13980
+ const footerTooltipOpts = $xeTable.computeFooterTooltipOpts;
13938
13981
  const tdEl = evnt.currentTarget;
13939
13982
  handleTargetEnterEvent($xeTable, tooltipStore.column !== column || !!tooltipStore.row);
13940
13983
  if (tooltipStore.column !== column || !tooltipStore.visible) {
@@ -13947,7 +13990,7 @@ const Methods = {
13947
13990
  if (!tipEl) {
13948
13991
  tipEl = ctEl;
13949
13992
  }
13950
- handleTooltip($xeTable, evnt, 'footer', tdEl, ovEl || ctEl, tipEl, params);
13993
+ handleTooltip($xeTable, evnt, footerTooltipOpts, 'footer', tdEl, ovEl || ctEl, tipEl, params);
13951
13994
  }
13952
13995
  },
13953
13996
  openTooltip(target, content) {
@@ -14354,7 +14397,7 @@ const Methods = {
14354
14397
  }
14355
14398
  }
14356
14399
  }
14357
- if (!checkMethod || checkMethod({
14400
+ if (isRowGroupStatus || !checkMethod || checkMethod({
14358
14401
  $table: $xeTable,
14359
14402
  row
14360
14403
  })) {
@@ -14573,6 +14616,10 @@ const Methods = {
14573
14616
  selectCheckboxMaps,
14574
14617
  treeIndeterminateRowMaps
14575
14618
  } = internalData;
14619
+ const aggregateOpts = $xeTable.computeAggregateOpts;
14620
+ const {
14621
+ mapChildrenField
14622
+ } = aggregateOpts;
14576
14623
  const checkboxOpts = $xeTable.computeCheckboxOpts;
14577
14624
  const {
14578
14625
  checkField,
@@ -14591,7 +14638,21 @@ const Methods = {
14591
14638
  rootList.forEach(checkMethod ? row => {
14592
14639
  const childRowid = handleGetRowId(row);
14593
14640
  const selected = checkField ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : selectCheckboxMaps[childRowid];
14594
- if (checkMethod({
14641
+ if (isRowGroupStatus && $xeTable.isAggregateRecord(row)) {
14642
+ const childList = row[mapChildrenField || ''];
14643
+ if (selected) {
14644
+ vLen++;
14645
+ sLen++;
14646
+ } else if (treeIndeterminateRowMaps[childRowid]) {
14647
+ vLen++;
14648
+ hLen++;
14649
+ } else if (childList && childList.length && childList.some(item => checkMethod({
14650
+ $table: $xeTable,
14651
+ row: item
14652
+ }))) {
14653
+ vLen++;
14654
+ }
14655
+ } else if (checkMethod({
14595
14656
  $table: $xeTable,
14596
14657
  row
14597
14658
  })) {
@@ -19628,7 +19689,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
19628
19689
  }
19629
19690
  // hover 进入事件
19630
19691
  if (showTitle || showTooltip || showAllTip || tooltipConfig) {
19631
- tdOns.mouseenter = evnt => {
19692
+ tdOns.mouseover = evnt => {
19632
19693
  if (!isVMScrollProcess($xeTable)) {
19633
19694
  if (showTitle) {
19634
19695
  updateCellTitle(evnt.currentTarget, column);
@@ -19940,7 +20001,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
19940
20001
  const hasRowGroupAggregate = isRowGroupStatus && row.isAggregate;
19941
20002
  // 当前行事件
19942
20003
  if (rowOpts.isHover || highlightHoverRow) {
19943
- trOn.mouseenter = evnt => {
20004
+ trOn.mouseover = evnt => {
19944
20005
  if (isVMScrollProcess($xeTable)) {
19945
20006
  return;
19946
20007
  }
@@ -20970,7 +21031,7 @@ function footer_renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData,
20970
21031
  scrollXStore
20971
21032
  } = tableInternalData;
20972
21033
  const virtualXOpts = $xeTable.computeVirtualXOpts;
20973
- const tooltipOpts = $xeTable.computeTooltipOpts;
21034
+ const footerTooltipOpts = $xeTable.computeFooterTooltipOpts;
20974
21035
  const resizableOpts = $xeTable.resizableOpts;
20975
21036
  const {
20976
21037
  isAllColumnDrag
@@ -20994,7 +21055,7 @@ function footer_renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData,
20994
21055
  const colRest = fullColumnIdData[colid] || {};
20995
21056
  const renderOpts = editRender || cellRender;
20996
21057
  const compConf = renderOpts ? footer_renderer.get(renderOpts.name) : null;
20997
- const showAllTip = tooltipOpts.showAll;
21058
+ const showAllTip = footerTooltipOpts.showAll;
20998
21059
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
20999
21060
  const isPadding = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
21000
21061
  const footOverflow = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
@@ -30577,6 +30638,16 @@ function renderBody(h, $xeTable) {
30577
30638
  ...this.tooltipOpts
30578
30639
  };
30579
30640
  },
30641
+ computeHeaderTooltipOpts() {
30642
+ const $xeTable = this;
30643
+ const props = $xeTable;
30644
+ return Object.assign({}, table_getConfig().tooltip, table_getConfig().table.headerTooltipConfig, props.headerTooltipConfig);
30645
+ },
30646
+ computeFooterTooltipOpts() {
30647
+ const $xeTable = this;
30648
+ const props = $xeTable;
30649
+ return Object.assign({}, table_getConfig().tooltip, table_getConfig().table.footerTooltipConfig, props.footerTooltipConfig);
30650
+ },
30580
30651
  computeTableTipConfig() {
30581
30652
  const $xeTable = this;
30582
30653
  const reactData = $xeTable;