vxe-table 3.22.12 → 3.23.0-beta.1

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 (61) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/edit/mixin.js +57 -20
  6. package/es/table/module/keyboard/mixin.js +2 -2
  7. package/es/table/render/index.js +130 -23
  8. package/es/table/src/cell.js +12 -20
  9. package/es/table/src/methods.js +43 -28
  10. package/es/table/src/table.js +1 -1
  11. package/es/table/style.css +9 -0
  12. package/es/table/style.min.css +1 -1
  13. package/es/ui/index.js +4 -2
  14. package/es/ui/src/dom.js +7 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-table/style.css +9 -0
  17. package/es/vxe-table/style.min.css +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.min.css +1 -1
  20. package/lib/index.umd.js +376 -163
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/table/module/edit/mixin.js +72 -24
  25. package/lib/table/module/edit/mixin.min.js +1 -1
  26. package/lib/table/module/keyboard/mixin.js +2 -2
  27. package/lib/table/module/keyboard/mixin.min.js +1 -1
  28. package/lib/table/render/index.js +171 -26
  29. package/lib/table/render/index.min.js +1 -1
  30. package/lib/table/src/cell.js +8 -16
  31. package/lib/table/src/cell.min.js +1 -1
  32. package/lib/table/src/methods.js +17 -17
  33. package/lib/table/src/methods.min.js +1 -1
  34. package/lib/table/src/table.js +1 -1
  35. package/lib/table/src/table.min.js +1 -1
  36. package/lib/table/style/style.css +9 -0
  37. package/lib/table/style/style.min.css +1 -1
  38. package/lib/ui/index.js +4 -2
  39. package/lib/ui/index.min.js +1 -1
  40. package/lib/ui/src/dom.js +7 -1
  41. package/lib/ui/src/dom.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/lib/vxe-table/style/style.css +9 -0
  45. package/lib/vxe-table/style/style.min.css +1 -1
  46. package/package.json +2 -2
  47. package/packages/table/module/edit/mixin.ts +83 -25
  48. package/packages/table/module/keyboard/mixin.ts +2 -2
  49. package/packages/table/render/index.ts +144 -25
  50. package/packages/table/src/cell.ts +12 -20
  51. package/packages/table/src/methods.ts +43 -28
  52. package/packages/table/src/table.ts +1 -1
  53. package/packages/ui/index.ts +3 -1
  54. package/packages/ui/src/dom.ts +7 -1
  55. package/styles/components/table.scss +18 -0
  56. /package/es/{iconfont.1786589170707.ttf → iconfont.1787020799795.ttf} +0 -0
  57. /package/es/{iconfont.1786589170707.woff → iconfont.1787020799795.woff} +0 -0
  58. /package/es/{iconfont.1786589170707.woff2 → iconfont.1787020799795.woff2} +0 -0
  59. /package/lib/{iconfont.1786589170707.ttf → iconfont.1787020799795.ttf} +0 -0
  60. /package/lib/{iconfont.1786589170707.woff → iconfont.1787020799795.woff} +0 -0
  61. /package/lib/{iconfont.1786589170707.woff2 → iconfont.1787020799795.woff2} +0 -0
@@ -4055,6 +4055,7 @@ function handleSyncScroll($xeTable, isRollX, isRollY) {
4055
4055
  const reactData = $xeTable;
4056
4056
  const internalData = $xeTable;
4057
4057
  const { scrollXLoad, scrollYLoad, isAllOverflow } = reactData;
4058
+ const autoWidthColumnList = $xeTable.computeAutoWidthColumnList;
4058
4059
  internalData.lcsRunTime = Date.now();
4059
4060
  internalData.lcsTimeout = undefined;
4060
4061
  internalData.intoRunScroll = false;
@@ -4076,6 +4077,10 @@ function handleSyncScroll($xeTable, isRollX, isRollY) {
4076
4077
  }
4077
4078
  if (isRollY && scrollYLoad) {
4078
4079
  yRest = $xeTable.updateScrollYData().then(() => {
4080
+ if (autoWidthColumnList.length) {
4081
+ calcCellWidth($xeTable);
4082
+ autoCellWidth($xeTable);
4083
+ }
4079
4084
  if (!isAllOverflow) {
4080
4085
  calcCellHeight($xeTable);
4081
4086
  updateRowOffsetTop($xeTable);
@@ -7634,8 +7639,8 @@ const tableMethods = {
7634
7639
  if (isEsc) {
7635
7640
  this.preventEvent(evnt, 'event.keydown', null, () => {
7636
7641
  $xeTable.dispatchEvent('keydown-start', {}, evnt);
7637
- if (keyboardConfig && mouseConfig && mouseOpts.area && this.handleKeyboardCellAreaEvent) {
7638
- this.handleKeyboardCellAreaEvent(evnt);
7642
+ if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKdClAreaEvent) {
7643
+ $xeTable.handleKdClAreaEvent(evnt);
7639
7644
  }
7640
7645
  else if (actived.row || filterStore.visible || ctxMenuStore.visible) {
7641
7646
  evnt.stopPropagation();
@@ -7691,6 +7696,7 @@ const tableMethods = {
7691
7696
  const { isLastEnterAppendRow, beforeEnterMethod, enterMethod, isLastTabAppendRow, beforeTabMethod, tabMethod } = keyboardOpts;
7692
7697
  const { selected, actived } = editStore;
7693
7698
  const { keyCode } = evnt;
7699
+ const isProcess = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.PROCESS);
7694
7700
  const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
7695
7701
  const hasBackspaceKey = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.BACKSPACE);
7696
7702
  const isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
@@ -7713,6 +7719,7 @@ const tableMethods = {
7713
7719
  const isEditStatus = isEnableConf(editConfig) && actived.column && actived.row;
7714
7720
  const childrenField = treeOpts.children || treeOpts.childrenField;
7715
7721
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
7722
+ const selectRow = selected.row;
7716
7723
  const selectColumn = selected.column;
7717
7724
  if (operCtxMenu) {
7718
7725
  // 如果配置了右键菜单; 支持方向键操作、回车
@@ -7724,8 +7731,8 @@ const tableMethods = {
7724
7731
  $xeTable.moveCtxMenu(evnt, ctxMenuStore, 'selected', isRightArrow, true, menuList);
7725
7732
  }
7726
7733
  }
7727
- else if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKeyboardCellAreaEvent) {
7728
- $xeTable.handleKeyboardCellAreaEvent(evnt);
7734
+ else if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKdClAreaEvent) {
7735
+ $xeTable.handleKdClAreaEvent(evnt);
7729
7736
  }
7730
7737
  else if (isEsc) {
7731
7738
  // 如果按下了 Esc 键,关闭快捷菜单、筛选
@@ -7745,7 +7752,7 @@ const tableMethods = {
7745
7752
  }
7746
7753
  }
7747
7754
  }
7748
- else if (keyboardConfig && isSpacebar && keyboardOpts.isChecked && selected.row && selectColumn && (selectColumn.type === 'checkbox' || selectColumn.type === 'radio')) {
7755
+ else if (keyboardConfig && isSpacebar && keyboardOpts.isChecked && selectRow && selectColumn && (selectColumn.type === 'checkbox' || selectColumn.type === 'radio')) {
7749
7756
  // 空格键支持选中复选框
7750
7757
  evnt.preventDefault();
7751
7758
  if (selectColumn.type === 'checkbox') {
@@ -7758,7 +7765,7 @@ const tableMethods = {
7758
7765
  else if (isF2 && isEnableConf(editConfig)) {
7759
7766
  if (!isEditStatus) {
7760
7767
  // 如果按下了 F2 键
7761
- if (selected.row && selectColumn) {
7768
+ if (selectRow && selectColumn) {
7762
7769
  evnt.preventDefault();
7763
7770
  $xeTable.handleEdit(selected.args, evnt);
7764
7771
  }
@@ -7766,13 +7773,13 @@ const tableMethods = {
7766
7773
  }
7767
7774
  else if (isContextMenu) {
7768
7775
  // 如果按下上下文键
7769
- internalData._keyCtx = selected.row && selectColumn && bodyMenu.length;
7776
+ internalData._keyCtx = selectRow && selectColumn && bodyMenu.length;
7770
7777
  clearTimeout(internalData.keyCtxTimeout);
7771
7778
  internalData.keyCtxTimeout = setTimeout(() => {
7772
7779
  internalData._keyCtx = false;
7773
7780
  }, 1000);
7774
7781
  }
7775
- else if (isEnter && !hasAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
7782
+ else if (isEnter && !hasAltKey && keyboardConfig && keyboardOpts.isEnter && (selectRow || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
7776
7783
  // 退出选中
7777
7784
  if (isControlKey) {
7778
7785
  // 如果是激活编辑状态,则取消编辑
@@ -7787,11 +7794,11 @@ const tableMethods = {
7787
7794
  }
7788
7795
  else {
7789
7796
  // 如果是激活状态,退则出到上一行/下一行
7790
- if (selected.row || actived.row) {
7791
- const activeRow = selected.row || actived.row;
7797
+ if (selectRow || actived.row) {
7798
+ const activeRow = selectRow || actived.row;
7792
7799
  const activeColumn = selectColumn || actived.column;
7793
7800
  if (activeColumn) {
7794
- const activeParams = selected.row ? selected.args : actived.args;
7801
+ const activeParams = selectRow ? selected.args : actived.args;
7795
7802
  if (hasShiftKey) {
7796
7803
  if (keyboardOpts.enterToTab) {
7797
7804
  $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
@@ -7901,7 +7908,7 @@ const tableMethods = {
7901
7908
  else if (operArrow && keyboardConfig && keyboardOpts.isArrow) {
7902
7909
  if (!isEditStatus) {
7903
7910
  // 如果按下了方向键
7904
- if (mouseOpts.selected && selected.row && selectColumn) {
7911
+ if (mouseOpts.selected && selectRow && selectColumn) {
7905
7912
  $xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7906
7913
  }
7907
7914
  else {
@@ -7918,11 +7925,11 @@ const tableMethods = {
7918
7925
  }
7919
7926
  else if (isTab && keyboardConfig && keyboardOpts.isTab) {
7920
7927
  // 如果按下了 Tab 键切换
7921
- if (selected.row || actived.row) {
7922
- const activeRow = selected.row || actived.row;
7928
+ if (selectRow || actived.row) {
7929
+ const activeRow = selectRow || actived.row;
7923
7930
  const activeColumn = selectColumn || actived.column;
7924
7931
  if (activeColumn) {
7925
- const activeParams = selected.row ? selected.args : actived.args;
7932
+ const activeParams = selectRow ? selected.args : actived.args;
7926
7933
  const _rowIndex = $xeTable.getVTRowIndex(activeRow);
7927
7934
  const _columnIndex = $xeTable.getVTColumnIndex(activeColumn);
7928
7935
  const ttrParams = {
@@ -7966,13 +7973,13 @@ const tableMethods = {
7966
7973
  }
7967
7974
  }
7968
7975
  }
7969
- else if (keyboardConfig && keyboardOpts.isDel && hasDeleteKey && isEnableConf(editConfig) && (selected.row || selectColumn)) {
7976
+ else if (keyboardConfig && keyboardOpts.isDel && hasDeleteKey && isEnableConf(editConfig) && (selectRow || selectColumn)) {
7970
7977
  // 如果是删除键
7971
7978
  if (!isEditStatus) {
7972
7979
  const { delMethod } = keyboardOpts;
7973
7980
  const params = {
7974
- row: selected.row,
7975
- rowIndex: $xeTable.getRowIndex(selected.row),
7981
+ row: selectRow,
7982
+ rowIndex: $xeTable.getRowIndex(selectRow),
7976
7983
  column: selectColumn,
7977
7984
  columnIndex: $xeTable.getColumnIndex(selectColumn),
7978
7985
  $table: $xeTable,
@@ -7985,10 +7992,10 @@ const tableMethods = {
7985
7992
  delMethod(params);
7986
7993
  }
7987
7994
  else {
7988
- const selectCellValue = getCellValue(selected.row, selectColumn);
7995
+ const selectCellValue = getCellValue(selectRow, selectColumn);
7989
7996
  if (selectCellValue !== null) {
7990
7997
  $xeTable.handlePushStack();
7991
- setCellValue(selected.row, selectColumn, null);
7998
+ setCellValue(selectRow, selectColumn, null);
7992
7999
  }
7993
8000
  }
7994
8001
  // 如果按下 del 键,更新表尾数据
@@ -7997,16 +8004,20 @@ const tableMethods = {
7997
8004
  }
7998
8005
  }
7999
8006
  }
8000
- else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && isEnableConf(editConfig) && (selected.row || selectColumn)) {
8007
+ else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && isEnableConf(editConfig) && (selectRow || selectColumn)) {
8001
8008
  if (!isEditStatus) {
8002
8009
  const { backMethod } = keyboardOpts;
8003
8010
  // 如果是删除键
8004
- if (keyboardOpts.isDel && isEnableConf(editConfig) && (selected.row || selectColumn)) {
8011
+ if (keyboardOpts.isDel && isEnableConf(editConfig) && (selectRow || selectColumn)) {
8005
8012
  const params = {
8006
- row: selected.row,
8007
- rowIndex: $xeTable.getRowIndex(selected.row),
8013
+ row: selectRow,
8014
+ rowIndex: $xeTable.getRowIndex(selectRow),
8015
+ $rowIndex: $xeTable.getVMRowIndex(selectRow),
8016
+ _rowIndex: $xeTable.getVTRowIndex(selectRow),
8008
8017
  column: selectColumn,
8009
8018
  columnIndex: $xeTable.getColumnIndex(selectColumn),
8019
+ $columnIndex: $xeTable.getVMColumnIndex(selectColumn),
8020
+ _columnIndex: $xeTable.getVTColumnIndex(selectColumn),
8010
8021
  $table: $xeTable,
8011
8022
  $grid: $xeGrid,
8012
8023
  $gantt: $xeGantt
@@ -8056,20 +8067,24 @@ const tableMethods = {
8056
8067
  $xeTable.handleUndoStackEvent(evnt);
8057
8068
  }
8058
8069
  }
8059
- else if (keyboardConfig && keyboardOpts.isEdit && !isControlKey && (isSpacebar || (keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 111) || (keyCode >= 186 && keyCode <= 192) || (keyCode >= 219 && keyCode <= 222))) {
8070
+ else if (keyboardConfig && keyboardOpts.isEdit && !isControlKey && (isSpacebar || isProcess || (keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 111) || (keyCode >= 186 && keyCode <= 192) || (keyCode >= 219 && keyCode <= 222))) {
8060
8071
  const { editMode, editMethod } = keyboardOpts;
8061
8072
  // 启用编辑后,空格键功能将失效
8062
8073
  // if (isSpacebar) {
8063
8074
  // evnt.preventDefault()
8064
8075
  // }
8065
8076
  // 如果是按下非功能键之外允许直接编辑
8066
- if (selectColumn && selected.row && isEnableConf(selectColumn.editRender)) {
8077
+ if (selectColumn && selectRow && isEnableConf(selectColumn.editRender)) {
8067
8078
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
8068
8079
  const params = {
8069
- row: selected.row,
8070
- rowIndex: $xeTable.getRowIndex(selected.row),
8080
+ row: selectRow,
8081
+ rowIndex: $xeTable.getRowIndex(selectRow),
8082
+ $rowIndex: $xeTable.getVMRowIndex(selectRow),
8083
+ _rowIndex: $xeTable.getVTRowIndex(selectRow),
8071
8084
  column: selectColumn,
8072
8085
  columnIndex: $xeTable.getColumnIndex(selectColumn),
8086
+ $columnIndex: $xeTable.getVMColumnIndex(selectColumn),
8087
+ _columnIndex: $xeTable.getVTColumnIndex(selectColumn),
8073
8088
  $table: $xeTable,
8074
8089
  $grid: $xeGrid,
8075
8090
  $gantt: $xeGantt
@@ -1697,7 +1697,7 @@ export default {
1697
1697
  if (rowOpts.height && !this.showOverflow) {
1698
1698
  warnLog('vxe.error.notProp', ['table.show-overflow']);
1699
1699
  }
1700
- if (!$xeTable.triggerCelllAreaMnEvent) {
1700
+ if (!$xeTable.triggerClAreaMnEvent) {
1701
1701
  if (props.areaConfig) {
1702
1702
  warnLog('vxe.error.notProp', ['area-config']);
1703
1703
  }
@@ -4011,6 +4011,15 @@
4011
4011
  .vxe-table--render-default.vxe-editable .vxe-body--column {
4012
4012
  padding: 0;
4013
4013
  }
4014
+ .vxe-table--render-default .vxe-body--row .vxe-table--column .vxe-cell .vxe-cell--wrapper > .vxe-reusekeep-control {
4015
+ position: absolute;
4016
+ width: 0;
4017
+ height: 0;
4018
+ opacity: 0;
4019
+ border: 0;
4020
+ padding: 0;
4021
+ outline: none;
4022
+ }
4014
4023
 
4015
4024
  /*valid error*/
4016
4025
  div.vxe-table--tooltip-wrapper.vxe-table--valid-error {