vxe-table 3.18.14 → 3.18.16

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 (71) hide show
  1. package/README.md +1 -1
  2. package/es/grid/src/grid.js +4 -1
  3. package/es/grid/style.css +0 -1
  4. package/es/grid/style.min.css +1 -1
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/locale/lang/en-US.js +2 -2
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/table/module/filter/panel.js +2 -1
  11. package/es/table/module/menu/mixin.js +9 -3
  12. package/es/table/module/menu/panel.js +136 -118
  13. package/es/table/src/header.js +4 -1
  14. package/es/table/src/methods.js +15 -12
  15. package/es/table/src/table.js +52 -28
  16. package/es/table/src/util.js +15 -0
  17. package/es/ui/index.js +8 -5
  18. package/es/ui/src/log.js +1 -1
  19. package/es/vxe-grid/style.css +0 -1
  20. package/es/vxe-grid/style.min.css +1 -1
  21. package/lib/grid/src/grid.js +3 -1
  22. package/lib/grid/src/grid.min.js +1 -1
  23. package/lib/grid/style/style.css +0 -1
  24. package/lib/grid/style/style.min.css +1 -1
  25. package/lib/index.css +1 -1
  26. package/lib/index.min.css +1 -1
  27. package/lib/index.umd.js +132 -51
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/locale/lang/en-US.js +2 -2
  30. package/lib/locale/lang/en-US.min.js +1 -1
  31. package/lib/locale/lang/en-US.umd.js +2 -2
  32. package/lib/style.css +1 -1
  33. package/lib/style.min.css +1 -1
  34. package/lib/table/module/filter/panel.js +3 -2
  35. package/lib/table/module/filter/panel.min.js +1 -1
  36. package/lib/table/module/menu/mixin.js +12 -3
  37. package/lib/table/module/menu/mixin.min.js +1 -1
  38. package/lib/table/module/menu/panel.js +34 -12
  39. package/lib/table/module/menu/panel.min.js +1 -1
  40. package/lib/table/src/header.js +3 -1
  41. package/lib/table/src/header.min.js +1 -1
  42. package/lib/table/src/methods.js +14 -11
  43. package/lib/table/src/methods.min.js +1 -1
  44. package/lib/table/src/table.js +35 -15
  45. package/lib/table/src/table.min.js +1 -1
  46. package/lib/table/src/util.js +21 -0
  47. package/lib/table/src/util.min.js +1 -1
  48. package/lib/ui/index.js +8 -5
  49. package/lib/ui/index.min.js +1 -1
  50. package/lib/ui/src/log.js +1 -1
  51. package/lib/ui/src/log.min.js +1 -1
  52. package/lib/vxe-grid/style/style.css +0 -1
  53. package/lib/vxe-grid/style/style.min.css +1 -1
  54. package/package.json +1 -1
  55. package/packages/grid/src/grid.ts +4 -1
  56. package/packages/locale/lang/en-US.ts +2 -2
  57. package/packages/table/module/filter/panel.ts +2 -1
  58. package/packages/table/module/menu/mixin.ts +11 -3
  59. package/packages/table/module/menu/panel.ts +137 -117
  60. package/packages/table/src/header.ts +3 -1
  61. package/packages/table/src/methods.ts +15 -12
  62. package/packages/table/src/table.ts +53 -29
  63. package/packages/table/src/util.ts +17 -0
  64. package/packages/ui/index.ts +7 -4
  65. package/styles/components/grid.scss +0 -1
  66. /package/es/{iconfont.1758158482285.ttf → iconfont.1758344480506.ttf} +0 -0
  67. /package/es/{iconfont.1758158482285.woff → iconfont.1758344480506.woff} +0 -0
  68. /package/es/{iconfont.1758158482285.woff2 → iconfont.1758344480506.woff2} +0 -0
  69. /package/lib/{iconfont.1758158482285.ttf → iconfont.1758344480506.ttf} +0 -0
  70. /package/lib/{iconfont.1758158482285.woff → iconfont.1758344480506.woff} +0 -0
  71. /package/lib/{iconfont.1758158482285.woff2 → iconfont.1758344480506.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.14";
2005
+ const version = "3.18.16";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2096,9 +2096,11 @@ core_.VxeUI.setConfig({
2096
2096
  footerCellConfig: {
2097
2097
  height: 'unset'
2098
2098
  },
2099
- // menuConfig: {
2100
- // visibleMethod () {}
2101
- // },
2099
+ menuConfig: {
2100
+ // visibleMethod () {},
2101
+ // transfer: false,
2102
+ destroyOnClose: true
2103
+ },
2102
2104
  customConfig: {
2103
2105
  // enabled: false,
2104
2106
  allowVisible: true,
@@ -2145,8 +2147,9 @@ core_.VxeUI.setConfig({
2145
2147
  filterConfig: {
2146
2148
  // remote: false,
2147
2149
  // filterMethod: null,
2148
- // destroyOnClose: false,
2149
2150
  // isEvery: false,
2151
+ // transfer: false,
2152
+ destroyOnClose: true,
2150
2153
  multiple: true,
2151
2154
  showIcon: true
2152
2155
  },
@@ -2686,7 +2689,7 @@ function isNodeElement(elem) {
2686
2689
  const {
2687
2690
  log: log_log
2688
2691
  } = core_.VxeUI;
2689
- const log_version = `table v${"3.18.14"}`;
2692
+ const log_version = `table v${"3.18.16"}`;
2690
2693
  const warnLog = log_log.create('warn', log_version);
2691
2694
  const errLog = log_log.create('error', log_version);
2692
2695
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3021,6 +3024,7 @@ function createInternalData() {
3021
3024
  // 表尾高度
3022
3025
  tFooterHeight: 0,
3023
3026
  teleportToWrapperElem: null,
3027
+ popupToWrapperElem: null,
3024
3028
  inited: false,
3025
3029
  tooltipTimeout: null,
3026
3030
  initStatus: false,
@@ -3432,6 +3436,24 @@ function getColReMinWidth(params) {
3432
3436
  }
3433
3437
  return mWidth;
3434
3438
  }
3439
+ function getFirstChildColumn(column) {
3440
+ const {
3441
+ children
3442
+ } = column;
3443
+ if (children && children.length) {
3444
+ return getFirstChildColumn(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().first(children));
3445
+ }
3446
+ return column;
3447
+ }
3448
+ function getLastChildColumn(column) {
3449
+ const {
3450
+ children
3451
+ } = column;
3452
+ if (children && children.length) {
3453
+ return getFirstChildColumn(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(children));
3454
+ }
3455
+ return column;
3456
+ }
3435
3457
  const lineOffsetSizes = {
3436
3458
  mini: 3,
3437
3459
  small: 2,
@@ -10037,6 +10059,7 @@ function initColumnHierarchy($xeTable) {
10037
10059
  internalData.fullColumnFieldData = fullColFieldData;
10038
10060
  }
10039
10061
  function handleInitColumn($xeTable, collectColumn) {
10062
+ const props = $xeTable;
10040
10063
  const $xeToolbar = $xeTable.$refs.$xeToolbar;
10041
10064
  const reactData = $xeTable;
10042
10065
  const internalData = $xeTable;
@@ -10075,6 +10098,10 @@ function handleInitColumn($xeTable, collectColumn) {
10075
10098
  if ($xeTable.handleUpdateCustomColumn) {
10076
10099
  $xeTable.handleUpdateCustomColumn();
10077
10100
  }
10101
+ const columnOpts = $xeTable.computeColumnOpts;
10102
+ if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
10103
+ warnLog('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false']);
10104
+ }
10078
10105
  reactData.isColLoading = false;
10079
10106
  return handleLazyRecalculate($xeTable, false, true, true);
10080
10107
  });
@@ -12542,18 +12569,16 @@ const Methods = {
12542
12569
  clientX: dragClientX
12543
12570
  } = evnt;
12544
12571
  const dragBtnElem = evnt.target;
12572
+ let cell = dragBtnElem.parentElement;
12545
12573
  let resizeColumn = column;
12546
12574
  const isDragGroupCol = column.children && column.children.length;
12547
12575
  if (isDragGroupCol) {
12548
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(column.children, childColumn => {
12549
- resizeColumn = childColumn;
12550
- });
12551
- }
12552
- let cell = dragBtnElem.parentElement;
12553
- if (isDragGroupCol) {
12554
- const trEl = cell ? cell.parentElement : null;
12555
- const theadEl = trEl ? trEl.parentElement : null;
12556
- cell = theadEl ? theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`) : null;
12576
+ resizeColumn = getLastChildColumn(column);
12577
+ if (isDragGroupCol) {
12578
+ const trEl = cell ? cell.parentElement : null;
12579
+ const theadEl = trEl ? trEl.parentElement : null;
12580
+ cell = theadEl ? theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`) : null;
12581
+ }
12557
12582
  }
12558
12583
  if (!cell) {
12559
12584
  return;
@@ -18150,7 +18175,7 @@ const Methods = {
18150
18175
  const xThreshold = $xeTable.computeScrollXThreshold;
18151
18176
  isLeft = scrollLeft <= 0;
18152
18177
  if (!isLeft) {
18153
- isRight = scrollLeft + bodyWidth >= scrollWidth;
18178
+ isRight = scrollLeft + bodyWidth >= scrollWidth - 1;
18154
18179
  }
18155
18180
  if (scrollLeft > lastScrollLeft) {
18156
18181
  direction = 'right';
@@ -18170,7 +18195,7 @@ const Methods = {
18170
18195
  const yThreshold = $xeTable.computeScrollYThreshold;
18171
18196
  isTop = scrollTop <= 0;
18172
18197
  if (!isTop) {
18173
- isBottom = scrollTop + bodyHeight >= scrollHeight;
18198
+ isBottom = scrollTop + bodyHeight >= scrollHeight - 1;
18174
18199
  }
18175
18200
  if (scrollTop > lastScrollTop) {
18176
18201
  direction = 'bottom';
@@ -20644,7 +20669,9 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
20644
20669
  } else {
20645
20670
  tcStyle.minHeight = `${currCellHeight}px`;
20646
20671
  }
20647
- if (isColGroup && !isLastRow) {
20672
+ if (showCustomHeader) {
20673
+ // custom
20674
+ } else if (isColGroup && !isLastRow) {
20648
20675
  const firstCol = getColumnFirstChild(column);
20649
20676
  const lastCol = getColumnLastChild(column);
20650
20677
  if (firstCol && lastCol && firstCol.id !== lastCol.id) {
@@ -22937,11 +22964,12 @@ function renderFooter($xeFilterPanel, h) {
22937
22964
  const vSize = $xeFilterPanel.computeSize;
22938
22965
  const filterOpts = $xeTable.computeFilterOpts;
22939
22966
  const {
22940
- destroyOnClose
22967
+ destroyOnClose,
22968
+ className
22941
22969
  } = filterOpts;
22942
22970
  return h('div', {
22943
22971
  ref: 'refElem',
22944
- class: ['vxe-table--filter-wrapper', 'filter--prevent-default', compConf && compConf.className ? compConf.className : '', getClass(filterClassName, params), {
22972
+ class: ['vxe-table--filter-wrapper', 'filter--prevent-default', className, compConf && compConf.className ? compConf.className : '', getClass(filterClassName, params), {
22945
22973
  [`size--${vSize}`]: vSize,
22946
22974
  'is--animat': tableProps.animat,
22947
22975
  'is--multiple': multiple,
@@ -23784,30 +23812,52 @@ const {
23784
23812
  ctxMenuStore: Object,
23785
23813
  ctxMenuOpts: Object
23786
23814
  },
23815
+ inject: {
23816
+ $xeTable: {
23817
+ default: null
23818
+ }
23819
+ },
23787
23820
  mounted() {
23788
- document.body.appendChild(this.$el);
23821
+ const $xeMenuPanel = this;
23822
+ const $xeTable = $xeMenuPanel.$xeTable;
23823
+ const menuOpts = $xeTable.computeMenuOpts;
23824
+ const {
23825
+ transfer
23826
+ } = menuOpts;
23827
+ const el = this.$refs.refElem;
23828
+ if (transfer && el) {
23829
+ document.body.appendChild(el);
23830
+ }
23789
23831
  },
23790
23832
  beforeDestroy() {
23791
- const {
23792
- $el
23793
- } = this;
23794
- if ($el.parentNode) {
23795
- $el.parentNode.removeChild($el);
23833
+ const el = this.$refs.refElem;
23834
+ if (el && el.parentNode) {
23835
+ el.parentNode.removeChild(el);
23796
23836
  }
23797
23837
  },
23798
23838
  render(h) {
23799
- const $xeTable = this.$parent;
23839
+ const $xeMenuPanel = this;
23840
+ const $xeTable = $xeMenuPanel.$xeTable;
23800
23841
  const tableReactData = $xeTable;
23801
23842
  const {
23802
23843
  ctxMenuStore
23803
23844
  } = tableReactData;
23804
23845
  const menuOpts = $xeTable.computeMenuOpts;
23846
+ const {
23847
+ destroyOnClose
23848
+ } = menuOpts;
23849
+ const {
23850
+ visible,
23851
+ list,
23852
+ className
23853
+ } = ctxMenuStore;
23805
23854
  return h('div', {
23806
- class: ['vxe-table--context-menu-wrapper', menuOpts.className, {
23807
- 'is--visible': ctxMenuStore.visible
23855
+ ref: 'refElem',
23856
+ class: ['vxe-table--context-menu-wrapper', className, {
23857
+ 'is--visible': visible
23808
23858
  }],
23809
23859
  style: ctxMenuStore.style
23810
- }, ctxMenuStore.list.map((options, gIndex) => {
23860
+ }, (destroyOnClose ? visible : true) ? list.map((options, gIndex) => {
23811
23861
  return options.every(item => item.visible === false) ? menu_panel_renderEmptyElement($xeTable) : h('ul', {
23812
23862
  class: 'vxe-context-menu--option-wrapper',
23813
23863
  key: gIndex
@@ -23816,7 +23866,7 @@ const {
23816
23866
  const prefixOpts = Object.assign({}, item.prefixConfig);
23817
23867
  const suffixOpts = Object.assign({}, item.suffixConfig);
23818
23868
  const menuContent = getFuncText(item.name);
23819
- return item.visible === false ? null : h('li', {
23869
+ return item.visible === false ? menu_panel_renderEmptyElement($xeTable) : h('li', {
23820
23870
  class: [item.className, {
23821
23871
  'link--disabled': item.disabled,
23822
23872
  'link--active': item === ctxMenuStore.selected
@@ -23891,7 +23941,7 @@ const {
23891
23941
  }), childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : menu_panel_renderEmptyElement($xeTable)])])]);
23892
23942
  })) : null]);
23893
23943
  }));
23894
- }));
23944
+ }) : []);
23895
23945
  }
23896
23946
  });
23897
23947
  ;// CONCATENATED MODULE: ./packages/table/module/filter/mixin.ts
@@ -24503,7 +24553,10 @@ const {
24503
24553
  const isContentMenu = $xeTable.computeIsContentMenu;
24504
24554
  const menuOpts = $xeTable.computeMenuOpts;
24505
24555
  const config = menuOpts[type];
24506
- const visibleMethod = menuOpts.visibleMethod;
24556
+ const {
24557
+ transfer,
24558
+ visibleMethod
24559
+ } = menuOpts;
24507
24560
  if (config) {
24508
24561
  const {
24509
24562
  options,
@@ -24517,14 +24570,20 @@ const {
24517
24570
  if (!visibleMethod || visibleMethod(params)) {
24518
24571
  evnt.preventDefault();
24519
24572
  $xeTable.updateZindex();
24573
+ const el = $xeTable.$refs.refElem;
24574
+ const tableRect = el.getBoundingClientRect();
24520
24575
  const {
24521
24576
  scrollTop,
24522
24577
  scrollLeft,
24523
24578
  visibleHeight,
24524
24579
  visibleWidth
24525
24580
  } = getDomNode();
24526
- let top = evnt.clientY + scrollTop;
24527
- let left = evnt.clientX + scrollLeft;
24581
+ let top = evnt.clientY - tableRect.y;
24582
+ let left = evnt.clientX - tableRect.x;
24583
+ if (transfer) {
24584
+ top = evnt.clientY + scrollTop;
24585
+ left = evnt.clientX + scrollLeft;
24586
+ }
24528
24587
  const handleVisible = () => {
24529
24588
  internalData._currMenuParams = params;
24530
24589
  Object.assign(ctxMenuStore, {
@@ -31465,7 +31524,9 @@ function renderBody(h, $xeTable) {
31465
31524
  const $xeTable = this;
31466
31525
  const props = $xeTable;
31467
31526
  const internalData = $xeTable;
31527
+ const $xeGrid = $xeTable.$xeGrid;
31468
31528
  const $xeGantt = $xeTable.$xeGantt;
31529
+ const $xeGGWrapper = $xeGrid || $xeGantt;
31469
31530
  const columnOpts = $xeTable.computeColumnOpts;
31470
31531
  const rowOpts = $xeTable.computeRowOpts;
31471
31532
  const customOpts = $xeTable.computeCustomOpts;
@@ -31480,6 +31541,16 @@ function renderBody(h, $xeTable) {
31480
31541
  internalData.teleportToWrapperElem = classifyWrapperEl;
31481
31542
  }
31482
31543
  }
31544
+ if ($xeGGWrapper) {
31545
+ const popupContainerElem = $xeGantt.$refs.refPopupContainerElem;
31546
+ const popupWrapperEl = $xeTable.$refs.refPopupWrapperElem;
31547
+ if (popupContainerElem) {
31548
+ if (popupWrapperEl) {
31549
+ popupContainerElem.appendChild(popupWrapperEl);
31550
+ }
31551
+ internalData.popupToWrapperElem = popupContainerElem;
31552
+ }
31553
+ }
31483
31554
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
31484
31555
  initTpImg();
31485
31556
  }
@@ -31492,10 +31563,10 @@ function renderBody(h, $xeTable) {
31492
31563
  if (!this.tooltipConfig && ($listeners['cell-mouseenter'] || $listeners['cell-mouseleave'])) {
31493
31564
  warnLog('vxe.error.reqProp', ['tooltip-config']);
31494
31565
  }
31495
- // 使用已安装的组件,如果未安装则不渲染
31496
- const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
31497
- const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
31498
31566
  $xeTable.$nextTick(() => {
31567
+ // 使用已安装的组件,如果未安装则不渲染
31568
+ const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
31569
+ const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
31499
31570
  if (props.loading) {
31500
31571
  if (!VxeUILoadingComponent && !this.$scopedSlots.loading) {
31501
31572
  errLog('vxe.error.errProp', ['loading=true', 'loading=false | <template #loading>...</template>']);
@@ -31570,6 +31641,10 @@ function renderBody(h, $xeTable) {
31570
31641
  if (teleportWrapperEl && teleportWrapperEl.parentElement) {
31571
31642
  teleportWrapperEl.parentElement.removeChild(teleportWrapperEl);
31572
31643
  }
31644
+ const popupWrapperEl = $xeTable.$refs.refPopupWrapperElem;
31645
+ if (popupWrapperEl && popupWrapperEl.parentElement) {
31646
+ popupWrapperEl.parentElement.removeChild(popupWrapperEl);
31647
+ }
31573
31648
  const tableViewportEl = $xeTable.$refs.refTableViewportElem;
31574
31649
  if (tableViewportEl) {
31575
31650
  tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
@@ -31820,7 +31895,11 @@ function renderBody(h, $xeTable) {
31820
31895
  /**
31821
31896
  * 拖拽提示
31822
31897
  */
31823
- table_renderDragTip(h, this)])]),
31898
+ table_renderDragTip(h, this)])]), h('div', {
31899
+ key: 'tpw'
31900
+ }, [h('div', {
31901
+ ref: 'refPopupWrapperElem'
31902
+ }, [
31824
31903
  /**
31825
31904
  * 筛选
31826
31905
  */
@@ -31831,6 +31910,17 @@ function renderBody(h, $xeTable) {
31831
31910
  filterStore
31832
31911
  }
31833
31912
  }) : table_renderEmptyElement($xeTable),
31913
+ /**
31914
+ * 快捷菜单
31915
+ */
31916
+ isContentMenu ? h(menu_panel, {
31917
+ key: 'tm',
31918
+ ref: 'refTableMenu',
31919
+ props: {
31920
+ ctxMenuStore: this.ctxMenuStore,
31921
+ ctxMenuOpts: this.ctxMenuOpts
31922
+ }
31923
+ }) : table_renderEmptyElement($xeTable)])]),
31834
31924
  /**
31835
31925
  * 导入
31836
31926
  */
@@ -31850,17 +31940,6 @@ function renderBody(h, $xeTable) {
31850
31940
  defaultOptions: this.exportParams,
31851
31941
  storeData: this.exportStore
31852
31942
  }
31853
- }) : table_renderEmptyElement($xeTable),
31854
- /**
31855
- * 快捷菜单
31856
- */
31857
- isContentMenu ? h(menu_panel, {
31858
- key: 'tm',
31859
- ref: 'refTableMenu',
31860
- props: {
31861
- ctxMenuStore: this.ctxMenuStore,
31862
- ctxMenuOpts: this.ctxMenuOpts
31863
- }
31864
31943
  }) : table_renderEmptyElement($xeTable), h('div', {}, [
31865
31944
  /**
31866
31945
  * 提示相关
@@ -34676,7 +34755,9 @@ function grid_createInternalData() {
34676
34755
  class: 'vxe-grid--layout-aside-right-wrapper'
34677
34756
  }, asideRightSlot({})) : grid_renderEmptyElement($xeGrid)]), h('div', {
34678
34757
  class: 'vxe-grid--layout-footer-wrapper'
34679
- }, $xeGrid.renderChildLayout(h, footKeys))];
34758
+ }, $xeGrid.renderChildLayout(h, footKeys)), h('div', {
34759
+ ref: 'refPopupContainerElem'
34760
+ })];
34680
34761
  },
34681
34762
  renderVN(h) {
34682
34763
  const $xeGrid = this;