vxe-table 3.15.12 → 3.15.14

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 (49) 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/menu/panel.js +12 -4
  6. package/es/table/src/cell.js +2 -2
  7. package/es/table/src/methods.js +64 -22
  8. package/es/table/src/table.js +5 -0
  9. package/es/table/style.css +24 -0
  10. package/es/table/style.min.css +1 -1
  11. package/es/ui/index.js +4 -4
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-table/style.css +24 -0
  14. package/es/vxe-table/style.min.css +1 -1
  15. package/lib/index.css +1 -1
  16. package/lib/index.min.css +1 -1
  17. package/lib/index.umd.js +86 -33
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/style.css +1 -1
  20. package/lib/style.min.css +1 -1
  21. package/lib/table/module/menu/panel.js +12 -4
  22. package/lib/table/module/menu/panel.min.js +1 -1
  23. package/lib/table/src/cell.js +2 -2
  24. package/lib/table/src/cell.min.js +1 -1
  25. package/lib/table/src/methods.js +62 -22
  26. package/lib/table/src/methods.min.js +1 -1
  27. package/lib/table/src/table.js +5 -0
  28. package/lib/table/src/table.min.js +1 -1
  29. package/lib/table/style/style.css +24 -0
  30. package/lib/table/style/style.min.css +1 -1
  31. package/lib/ui/index.js +4 -4
  32. package/lib/ui/index.min.js +1 -1
  33. package/lib/ui/src/log.js +1 -1
  34. package/lib/ui/src/log.min.js +1 -1
  35. package/lib/vxe-table/style/style.css +24 -0
  36. package/lib/vxe-table/style/style.min.css +1 -1
  37. package/package.json +2 -2
  38. package/packages/table/module/menu/panel.ts +12 -4
  39. package/packages/table/src/cell.ts +2 -2
  40. package/packages/table/src/methods.ts +67 -23
  41. package/packages/table/src/table.ts +6 -0
  42. package/packages/ui/index.ts +3 -3
  43. package/styles/components/table.scss +35 -0
  44. /package/es/{iconfont.1745723938260.ttf → iconfont.1745827933282.ttf} +0 -0
  45. /package/es/{iconfont.1745723938260.woff → iconfont.1745827933282.woff} +0 -0
  46. /package/es/{iconfont.1745723938260.woff2 → iconfont.1745827933282.woff2} +0 -0
  47. /package/lib/{iconfont.1745723938260.ttf → iconfont.1745827933282.ttf} +0 -0
  48. /package/lib/{iconfont.1745723938260.woff → iconfont.1745827933282.woff} +0 -0
  49. /package/lib/{iconfont.1745723938260.woff2 → iconfont.1745827933282.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.15.12";
2223
+ const version = "3.15.14";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2422,7 +2422,7 @@ core_.VxeUI.setConfig({
2422
2422
  },
2423
2423
  virtualXConfig: {
2424
2424
  enabled: true,
2425
- gt: 28,
2425
+ gt: 24,
2426
2426
  preSize: 0,
2427
2427
  oSize: 1
2428
2428
  },
@@ -2433,8 +2433,8 @@ core_.VxeUI.setConfig({
2433
2433
  oSize: 2
2434
2434
  },
2435
2435
  scrollbarConfig: {
2436
- width: 14,
2437
- height: 14
2436
+ // width: 14,
2437
+ // height: 14
2438
2438
  }
2439
2439
  },
2440
2440
  // export: {
@@ -2858,7 +2858,7 @@ function isNodeElement(elem) {
2858
2858
  const {
2859
2859
  log: log_log
2860
2860
  } = core_.VxeUI;
2861
- const log_version = `table v${"3.15.12"}`;
2861
+ const log_version = `table v${"3.15.14"}`;
2862
2862
  const warnLog = log_log.create('warn', log_version);
2863
2863
  const errLog = log_log.create('error', log_version);
2864
2864
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3668,7 +3668,7 @@ function renderTitlePrefixIcon(h, params) {
3668
3668
  const titlePrefix = column.titlePrefix || column.titleHelp;
3669
3669
  if (titlePrefix) {
3670
3670
  return h('i', {
3671
- class: ['vxe-cell-title-prefix-icon', titlePrefix.icon || cell_getIcon().TABLE_TITLE_PREFIX],
3671
+ class: ['vxe-cell-title-prefix-icon', titlePrefix.iconStatus ? `theme--${titlePrefix.iconStatus}` : '', titlePrefix.icon || cell_getIcon().TABLE_TITLE_PREFIX],
3672
3672
  on: {
3673
3673
  mouseenter(evnt) {
3674
3674
  $table.triggerHeaderTitleEvent(evnt, titlePrefix, params);
@@ -3689,7 +3689,7 @@ function renderTitleSuffixIcon(h, params) {
3689
3689
  const titleSuffix = column.titleSuffix;
3690
3690
  if (titleSuffix) {
3691
3691
  return h('i', {
3692
- class: ['vxe-cell-title-suffix-icon', titleSuffix.icon || cell_getIcon().TABLE_TITLE_SUFFIX],
3692
+ class: ['vxe-cell-title-suffix-icon', titleSuffix.iconStatus ? `theme--${titleSuffix.iconStatus}` : '', titleSuffix.icon || cell_getIcon().TABLE_TITLE_SUFFIX],
3693
3693
  on: {
3694
3694
  mouseenter(evnt) {
3695
3695
  $table.triggerHeaderTitleEvent(evnt, titleSuffix, params);
@@ -8187,12 +8187,12 @@ function calcScrollbar($xeTable) {
8187
8187
  if (bodyWrapperElem) {
8188
8188
  overflowY = scrollYHeight > bodyWrapperElem.clientHeight;
8189
8189
  if (yHandleEl) {
8190
- reactData.scrollbarWidth = Math.max(scrollbarOpts.width || 0, yHandleEl.offsetWidth - yHandleEl.clientWidth);
8190
+ reactData.scrollbarWidth = scrollbarOpts.width || yHandleEl.offsetWidth - yHandleEl.clientWidth || 14;
8191
8191
  }
8192
8192
  reactData.overflowY = overflowY;
8193
8193
  overflowX = scrollXWidth > bodyWrapperElem.clientWidth;
8194
8194
  if (xHandleEl) {
8195
- reactData.scrollbarHeight = Math.max(scrollbarOpts.height || 0, xHandleEl.offsetHeight - xHandleEl.clientHeight);
8195
+ reactData.scrollbarHeight = scrollbarOpts.height || xHandleEl.offsetHeight - xHandleEl.clientHeight || 14;
8196
8196
  }
8197
8197
  reactData.overflowX = overflowX;
8198
8198
  const headerHeight = headerTableElem ? headerTableElem.clientHeight : 0;
@@ -8410,6 +8410,7 @@ function loadTableData($xeTable, datas, isReset) {
8410
8410
  scrollYStore.endIndex = 1;
8411
8411
  scrollXStore.startIndex = 0;
8412
8412
  scrollXStore.endIndex = 1;
8413
+ internalData.cvCacheMaps = {};
8413
8414
  reactData.isRowLoading = true;
8414
8415
  reactData.scrollVMLoading = false;
8415
8416
  internalData.treeExpandedMaps = {};
@@ -8897,7 +8898,7 @@ function lazyScrollXData($xeTable) {
8897
8898
  const {
8898
8899
  visibleSize
8899
8900
  } = scrollXStore;
8900
- const fpsTime = Math.max(5, Math.min(10, Math.floor(visibleSize / 3)));
8901
+ const fpsTime = visibleSize > 26 ? 26 : visibleSize > 16 ? 14 : 6;
8901
8902
  if (lxTimeout) {
8902
8903
  clearTimeout(lxTimeout);
8903
8904
  }
@@ -8921,7 +8922,7 @@ function lazyScrollYData($xeTable) {
8921
8922
  const {
8922
8923
  visibleSize
8923
8924
  } = scrollYStore;
8924
- const fpsTime = Math.floor(Math.max(4, Math.min(10, visibleSize / 3)));
8925
+ const fpsTime = visibleSize > 30 ? 32 : visibleSize > 20 ? 18 : 8;
8925
8926
  if (lyTimeout) {
8926
8927
  clearTimeout(lyTimeout);
8927
8928
  }
@@ -16125,8 +16126,8 @@ const Methods = {
16125
16126
  if (isRollX) {
16126
16127
  evnt.preventDefault();
16127
16128
  internalData.inWheelScroll = true;
16128
- wheelScrollLeftTo(scrollLeft, offsetLeft => {
16129
- const currLeftNum = offsetLeft;
16129
+ if (browseObj['-moz'] || browseObj.safari) {
16130
+ const currLeftNum = scrollLeft;
16130
16131
  setScrollLeft(xHandleEl, currLeftNum);
16131
16132
  setScrollLeft(bodyScrollElem, currLeftNum);
16132
16133
  setScrollLeft(headerScrollElem, currLeftNum);
@@ -16138,13 +16139,27 @@ const Methods = {
16138
16139
  type: 'table',
16139
16140
  fixed: ''
16140
16141
  });
16141
- });
16142
+ } else {
16143
+ wheelScrollLeftTo(scrollLeft, offsetLeft => {
16144
+ const currLeftNum = offsetLeft;
16145
+ setScrollLeft(xHandleEl, currLeftNum);
16146
+ setScrollLeft(bodyScrollElem, currLeftNum);
16147
+ setScrollLeft(headerScrollElem, currLeftNum);
16148
+ setScrollLeft(footerScrollElem, currLeftNum);
16149
+ if (scrollXLoad) {
16150
+ $xeTable.triggerScrollXEvent(evnt);
16151
+ }
16152
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, bodyScrollElem.scrollTop, currLeftNum, {
16153
+ type: 'table',
16154
+ fixed: ''
16155
+ });
16156
+ });
16157
+ }
16142
16158
  }
16143
16159
  if (isRollY) {
16144
16160
  evnt.preventDefault();
16145
- wheelScrollTopTo(scrollTop - currScrollTop, offsetTop => {
16146
- const currTopNum = bodyScrollElem.scrollTop + offsetTop;
16147
- internalData.inWheelScroll = true;
16161
+ if (browseObj['-moz'] || browseObj.safari) {
16162
+ const currTopNum = scrollTop;
16148
16163
  setScrollTop(yHandleEl, currTopNum);
16149
16164
  setScrollTop(bodyScrollElem, currTopNum);
16150
16165
  setScrollTop(leftScrollElem, currTopNum);
@@ -16157,7 +16172,24 @@ const Methods = {
16157
16172
  type: 'table',
16158
16173
  fixed: ''
16159
16174
  });
16160
- });
16175
+ } else {
16176
+ wheelScrollTopTo(scrollTop - currScrollTop, offsetTop => {
16177
+ const currTopNum = bodyScrollElem.scrollTop + offsetTop;
16178
+ internalData.inWheelScroll = true;
16179
+ setScrollTop(yHandleEl, currTopNum);
16180
+ setScrollTop(bodyScrollElem, currTopNum);
16181
+ setScrollTop(leftScrollElem, currTopNum);
16182
+ setScrollTop(rightScrollElem, currTopNum);
16183
+ setScrollTop(rowExpandEl, currTopNum);
16184
+ if (scrollYLoad) {
16185
+ $xeTable.triggerScrollYEvent(evnt);
16186
+ }
16187
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, bodyScrollElem.scrollLeft, {
16188
+ type: 'table',
16189
+ fixed: ''
16190
+ });
16191
+ });
16192
+ }
16161
16193
  }
16162
16194
  },
16163
16195
  triggerVirtualScrollXEvent(evnt) {
@@ -16321,20 +16353,18 @@ const Methods = {
16321
16353
  ySpaceWidth = maxXWidth;
16322
16354
  isScrollXBig = true;
16323
16355
  }
16324
- let marginLeft = '';
16325
- if (scrollXLoad && overflowX) {
16326
- marginLeft = `${xSpaceLeft}px`;
16356
+ if (!(scrollXLoad && overflowX)) {
16357
+ xSpaceLeft = 0;
16327
16358
  }
16328
16359
  if (headerTableElem) {
16329
- headerTableElem.style.marginLeft = headerTableElem.getAttribute('xvm') ? marginLeft : '';
16360
+ headerTableElem.style.transform = headerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : '';
16330
16361
  }
16331
16362
  if (bodyTableElem) {
16332
- bodyTableElem.style.marginLeft = marginLeft;
16363
+ bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`;
16333
16364
  }
16334
16365
  if (footerTableElem) {
16335
- footerTableElem.style.marginLeft = footerTableElem.getAttribute('xvm') ? marginLeft : '';
16366
+ footerTableElem.style.transform = footerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : '';
16336
16367
  }
16337
- reactData.isScrollXBig = isScrollXBig;
16338
16368
  const containerList = ['main'];
16339
16369
  containerList.forEach(name => {
16340
16370
  const layoutList = ['header', 'body', 'footer'];
@@ -16345,6 +16375,9 @@ const Methods = {
16345
16375
  }
16346
16376
  });
16347
16377
  });
16378
+ reactData.scrollXLeft = xSpaceLeft;
16379
+ reactData.scrollXWidth = ySpaceWidth;
16380
+ reactData.isScrollXBig = isScrollXBig;
16348
16381
  const scrollXSpaceEl = $xeTable.$refs.refScrollXSpaceElem;
16349
16382
  if (scrollXSpaceEl) {
16350
16383
  scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
@@ -16395,6 +16428,8 @@ const Methods = {
16395
16428
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
16396
16429
  const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
16397
16430
  const bodyTableElem = getRefElem(elemStore['main-body-table']);
16431
+ const leftBodyTableElem = getRefElem(elemStore['left-body-table']);
16432
+ const rightbodyTableElem = getRefElem(elemStore['right-body-table']);
16398
16433
  const containerList = ['main', 'left', 'right'];
16399
16434
  let ySpaceTop = 0;
16400
16435
  let scrollYHeight = 0;
@@ -16445,12 +16480,17 @@ const Methods = {
16445
16480
  }
16446
16481
  ySpaceHeight = maxYHeight;
16447
16482
  }
16483
+ if (leftBodyTableElem) {
16484
+ leftBodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`;
16485
+ }
16486
+ if (bodyTableElem) {
16487
+ bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
16488
+ }
16489
+ if (rightbodyTableElem) {
16490
+ rightbodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`;
16491
+ }
16448
16492
  containerList.forEach(name => {
16449
16493
  const layoutList = ['header', 'body', 'footer'];
16450
- const tableElem = getRefElem(elemStore[`${name}-body-table`]);
16451
- if (tableElem) {
16452
- tableElem.style.marginTop = scrollYTop ? `${scrollYTop}px` : '';
16453
- }
16454
16494
  layoutList.forEach(layout => {
16455
16495
  const ySpaceElem = getRefElem(elemStore[`${name}-${layout}-ySpace`]);
16456
16496
  if (ySpaceElem) {
@@ -21327,6 +21367,7 @@ const {
21327
21367
  const hasChildMenus = item.children && item.children.some(child => child.visible !== false);
21328
21368
  const prefixOpts = Object.assign({}, item.prefixConfig);
21329
21369
  const suffixOpts = Object.assign({}, item.suffixConfig);
21370
+ const menuContent = getFuncText(item.name);
21330
21371
  return item.visible === false ? null : h('li', {
21331
21372
  class: [item.className, {
21332
21373
  'link--disabled': item.disabled,
@@ -21351,8 +21392,11 @@ const {
21351
21392
  }, [h('i', {
21352
21393
  class: prefixOpts.icon || item.prefixIcon
21353
21394
  }), prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : _e()]), h('span', {
21354
- class: 'vxe-context-menu--link-content'
21355
- }, getFuncText(item.name)), h('div', {
21395
+ class: 'vxe-context-menu--link-content',
21396
+ attrs: {
21397
+ title: menuContent
21398
+ }
21399
+ }, menuContent), h('div', {
21356
21400
  class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
21357
21401
  }, [h('i', {
21358
21402
  class: suffixOpts.icon || item.suffixIcon || (hasChildMenus ? menu_panel_getIcon().TABLE_MENU_OPTIONS : '')
@@ -21363,6 +21407,7 @@ const {
21363
21407
  }, item.children.map((child, cIndex) => {
21364
21408
  const childPrefixOpts = Object.assign({}, child.prefixConfig);
21365
21409
  const childSuffixOpts = Object.assign({}, child.suffixConfig);
21410
+ const childMenuContent = getFuncText(child.name);
21366
21411
  return child.visible === false ? null : h('li', {
21367
21412
  class: [child.className, {
21368
21413
  'link--disabled': child.disabled,
@@ -21387,8 +21432,11 @@ const {
21387
21432
  }, [h('i', {
21388
21433
  class: childPrefixOpts.icon || child.prefixIcon
21389
21434
  }), childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : _e()]), h('span', {
21390
- class: 'vxe-context-menu--link-content'
21391
- }, getFuncText(child.name)), h('div', {
21435
+ class: 'vxe-context-menu--link-content',
21436
+ attrs: {
21437
+ title: childMenuContent
21438
+ }
21439
+ }, childMenuContent), h('div', {
21392
21440
  class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
21393
21441
  }, [h('i', {
21394
21442
  class: childSuffixOpts.icon
@@ -28377,6 +28425,7 @@ function renderBody(h, $xeTable) {
28377
28425
  insertRowMaps: {},
28378
28426
  // 已删除行
28379
28427
  removeRowMaps: {},
28428
+ cvCacheMaps: {},
28380
28429
  swYSize: 0,
28381
28430
  swYInterval: 0,
28382
28431
  swYTotal: 0
@@ -28686,10 +28735,14 @@ function renderBody(h, $xeTable) {
28686
28735
  },
28687
28736
  beforeDestroy() {
28688
28737
  const $xeTable = this;
28738
+ const internalData = $xeTable;
28689
28739
  const tableViewportEl = $xeTable.$refs.refTableViewportElem;
28690
28740
  if (tableViewportEl) {
28691
28741
  tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
28692
28742
  }
28743
+ internalData.cvCacheMaps = {};
28744
+ internalData.prevDragRow = null;
28745
+ internalData.prevDragCol = null;
28693
28746
  if (this.$resize) {
28694
28747
  this.$resize.disconnect();
28695
28748
  }