vxe-table 3.10.1 → 3.10.3

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 (119) hide show
  1. package/es/locale/lang/en-US.js +3 -2
  2. package/es/locale/lang/es-ES.js +3 -2
  3. package/es/locale/lang/hu-HU.js +3 -2
  4. package/es/locale/lang/ja-JP.js +3 -2
  5. package/es/locale/lang/ko-KR.js +3 -2
  6. package/es/locale/lang/pt-BR.js +3 -2
  7. package/es/locale/lang/ru-RU.js +3 -2
  8. package/es/locale/lang/uk-UA.js +3 -2
  9. package/es/locale/lang/vi-VN.js +3 -2
  10. package/es/locale/lang/zh-CHT.js +3 -2
  11. package/es/locale/lang/zh-CN.js +3 -2
  12. package/es/style.css +1 -1
  13. package/es/style.min.css +1 -1
  14. package/es/table/module/edit/mixin.js +9 -4
  15. package/es/table/src/body.js +43 -24
  16. package/es/table/src/cell.js +65 -27
  17. package/es/table/src/column.js +3 -1
  18. package/es/table/src/columnInfo.js +1 -0
  19. package/es/table/src/methods.js +211 -14
  20. package/es/table/src/props.js +2 -0
  21. package/es/table/src/table.js +16 -1
  22. package/es/table/style.css +77 -2
  23. package/es/table/style.min.css +1 -1
  24. package/es/ui/index.js +4 -1
  25. package/es/ui/src/log.js +1 -1
  26. package/es/vxe-table/style.css +77 -2
  27. package/es/vxe-table/style.min.css +1 -1
  28. package/helper/vetur/attributes.json +1 -1
  29. package/helper/vetur/tags.json +1 -1
  30. package/lib/index.umd.js +387 -78
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/locale/lang/en-US.js +3 -2
  33. package/lib/locale/lang/en-US.min.js +1 -1
  34. package/lib/locale/lang/en-US.umd.js +3 -2
  35. package/lib/locale/lang/es-ES.js +3 -2
  36. package/lib/locale/lang/es-ES.min.js +1 -1
  37. package/lib/locale/lang/es-ES.umd.js +3 -2
  38. package/lib/locale/lang/hu-HU.js +3 -2
  39. package/lib/locale/lang/hu-HU.min.js +1 -1
  40. package/lib/locale/lang/hu-HU.umd.js +3 -2
  41. package/lib/locale/lang/ja-JP.js +3 -2
  42. package/lib/locale/lang/ja-JP.min.js +1 -1
  43. package/lib/locale/lang/ja-JP.umd.js +3 -2
  44. package/lib/locale/lang/ko-KR.js +3 -2
  45. package/lib/locale/lang/ko-KR.min.js +1 -1
  46. package/lib/locale/lang/ko-KR.umd.js +3 -2
  47. package/lib/locale/lang/pt-BR.js +3 -2
  48. package/lib/locale/lang/pt-BR.min.js +1 -1
  49. package/lib/locale/lang/pt-BR.umd.js +3 -2
  50. package/lib/locale/lang/ru-RU.js +3 -2
  51. package/lib/locale/lang/ru-RU.min.js +1 -1
  52. package/lib/locale/lang/ru-RU.umd.js +3 -2
  53. package/lib/locale/lang/uk-UA.js +3 -2
  54. package/lib/locale/lang/uk-UA.min.js +1 -1
  55. package/lib/locale/lang/uk-UA.umd.js +3 -2
  56. package/lib/locale/lang/vi-VN.js +3 -2
  57. package/lib/locale/lang/vi-VN.min.js +1 -1
  58. package/lib/locale/lang/zh-CHT.js +3 -2
  59. package/lib/locale/lang/zh-CHT.min.js +1 -1
  60. package/lib/locale/lang/zh-CHT.umd.js +3 -2
  61. package/lib/locale/lang/zh-CN.js +3 -2
  62. package/lib/locale/lang/zh-CN.min.js +1 -1
  63. package/lib/locale/lang/zh-CN.umd.js +3 -2
  64. package/lib/style.css +1 -1
  65. package/lib/style.min.css +1 -1
  66. package/lib/table/module/edit/mixin.js +9 -4
  67. package/lib/table/module/edit/mixin.min.js +1 -1
  68. package/lib/table/src/body.js +41 -22
  69. package/lib/table/src/body.min.js +1 -1
  70. package/lib/table/src/cell.js +78 -27
  71. package/lib/table/src/cell.min.js +1 -1
  72. package/lib/table/src/column.js +3 -1
  73. package/lib/table/src/column.min.js +1 -1
  74. package/lib/table/src/columnInfo.js +1 -0
  75. package/lib/table/src/columnInfo.min.js +1 -1
  76. package/lib/table/src/methods.js +227 -14
  77. package/lib/table/src/methods.min.js +1 -1
  78. package/lib/table/src/props.js +2 -0
  79. package/lib/table/src/props.min.js +1 -1
  80. package/lib/table/src/table.js +15 -2
  81. package/lib/table/src/table.min.js +1 -1
  82. package/lib/table/style/style.css +77 -2
  83. package/lib/table/style/style.min.css +1 -1
  84. package/lib/ui/index.js +4 -1
  85. package/lib/ui/index.min.js +1 -1
  86. package/lib/ui/src/log.js +1 -1
  87. package/lib/ui/src/log.min.js +1 -1
  88. package/lib/vxe-table/style/style.css +77 -2
  89. package/lib/vxe-table/style/style.min.css +1 -1
  90. package/package.json +2 -2
  91. package/packages/locale/lang/en-US.ts +3 -2
  92. package/packages/locale/lang/es-ES.ts +3 -2
  93. package/packages/locale/lang/hu-HU.ts +3 -2
  94. package/packages/locale/lang/ja-JP.ts +3 -2
  95. package/packages/locale/lang/ko-KR.ts +3 -2
  96. package/packages/locale/lang/pt-BR.ts +3 -2
  97. package/packages/locale/lang/ru-RU.ts +3 -2
  98. package/packages/locale/lang/uk-UA.ts +3 -2
  99. package/packages/locale/lang/vi-VN.ts +3 -2
  100. package/packages/locale/lang/zh-CHT.ts +3 -2
  101. package/packages/locale/lang/zh-CN.ts +3 -2
  102. package/packages/table/module/custom/panel.ts +8 -8
  103. package/packages/table/module/edit/mixin.ts +10 -4
  104. package/packages/table/src/body.ts +43 -24
  105. package/packages/table/src/cell.ts +69 -27
  106. package/packages/table/src/column.ts +3 -1
  107. package/packages/table/src/columnInfo.ts +1 -0
  108. package/packages/table/src/methods.ts +227 -14
  109. package/packages/table/src/props.ts +2 -0
  110. package/packages/table/src/table.ts +16 -1
  111. package/packages/ui/index.ts +3 -0
  112. package/styles/components/table-module/custom.scss +14 -3
  113. package/styles/components/table.scss +80 -0
  114. /package/es/{iconfont.1730710763407.ttf → iconfont.1730898131844.ttf} +0 -0
  115. /package/es/{iconfont.1730710763407.woff → iconfont.1730898131844.woff} +0 -0
  116. /package/es/{iconfont.1730710763407.woff2 → iconfont.1730898131844.woff2} +0 -0
  117. /package/lib/{iconfont.1730710763407.ttf → iconfont.1730898131844.ttf} +0 -0
  118. /package/lib/{iconfont.1730710763407.woff → iconfont.1730898131844.woff} +0 -0
  119. /package/lib/{iconfont.1730710763407.woff2 → iconfont.1730898131844.woff2} +0 -0
@@ -387,6 +387,51 @@ function getOrderField(_vm, column) {
387
387
  return cellValue;
388
388
  };
389
389
  }
390
+ function clearRowDropOrigin($xeTable) {
391
+ const el = $xeTable.$el;
392
+ if (el) {
393
+ const clss = 'row--drag-origin';
394
+ _xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
395
+ elem.draggable = false;
396
+ (0, _dom.removeClass)(elem, clss);
397
+ });
398
+ }
399
+ }
400
+ function clearRowDropTarget($xeTable) {
401
+ const el = $xeTable.$el;
402
+ if (el) {
403
+ const clss = 'row--drag-active-target';
404
+ _xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
405
+ (0, _dom.removeClass)(elem, clss);
406
+ });
407
+ }
408
+ }
409
+ function showRowDropTip(evnt, $xeTable) {
410
+ const rdTipEl = $xeTable.$refs.refRowDragTipElem;
411
+ if (!rdTipEl) {
412
+ return;
413
+ }
414
+ const el = $xeTable.$el;
415
+ if (!el) {
416
+ return;
417
+ }
418
+ if (rdTipEl) {
419
+ const wrapperRect = el.getBoundingClientRect();
420
+ rdTipEl.style.display = 'block';
421
+ rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
422
+ rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`;
423
+ }
424
+ }
425
+ const hideRowDropTip = $xeTable => {
426
+ const rdTipEl = $xeTable.$refs.refRowDragTipElem;
427
+ if (rdTipEl) {
428
+ rdTipEl.style.display = '';
429
+ }
430
+ };
431
+ const updateRowDropTipContent = ($xeTable, tdEl) => {
432
+ const reactData = $xeTable;
433
+ reactData.dragTipText = tdEl.textContent || '';
434
+ };
390
435
  const Methods = {
391
436
  callSlot(slotFunc, params, h, vNodes) {
392
437
  if (slotFunc) {
@@ -5439,6 +5484,161 @@ const Methods = {
5439
5484
  this.emitEvent('sort-change', params, evnt);
5440
5485
  }
5441
5486
  },
5487
+ handleRowDragDragstartEvent(evnt) {
5488
+ const img = new Image();
5489
+ if (evnt.dataTransfer) {
5490
+ evnt.dataTransfer.setDragImage(img, 0, 0);
5491
+ }
5492
+ },
5493
+ handleRowDragDragendEvent(evnt) {
5494
+ const $xeTable = this;
5495
+ const props = $xeTable;
5496
+ const reactData = $xeTable;
5497
+ const internalData = $xeTable;
5498
+ const {
5499
+ treeConfig
5500
+ } = props;
5501
+ const dragOpts = $xeTable.computeDragOpts;
5502
+ const {
5503
+ dragEndMethod
5504
+ } = dragOpts;
5505
+ const treeOpts = $xeTable.computeTreeOpts;
5506
+ const {
5507
+ transform
5508
+ } = treeOpts;
5509
+ const {
5510
+ dragRow
5511
+ } = reactData;
5512
+ const {
5513
+ afterFullData,
5514
+ tableFullData,
5515
+ prevDragRow,
5516
+ prevDragPos
5517
+ } = internalData;
5518
+ if (prevDragRow && dragRow) {
5519
+ // 判断是否有拖动
5520
+ if (prevDragRow !== dragRow) {
5521
+ Promise.resolve(dragEndMethod ? dragEndMethod({
5522
+ oldRow: dragRow,
5523
+ newRow: prevDragRow
5524
+ }) : true).then(status => {
5525
+ if (!status) {
5526
+ return;
5527
+ }
5528
+ const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
5529
+ // 移出源位置
5530
+ const oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
5531
+ const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
5532
+ afterFullData.splice(oafIndex, 1);
5533
+ tableFullData.splice(otfIndex, 1);
5534
+ // 插新位置
5535
+ const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
5536
+ const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
5537
+ const nafIndex = pafIndex + dragOffsetIndex;
5538
+ const ntfIndex = ptfIndex + dragOffsetIndex;
5539
+ afterFullData.splice(nafIndex, 0, dragRow);
5540
+ tableFullData.splice(ntfIndex, 0, dragRow);
5541
+ reactData.isDragRowMove = true;
5542
+ $xeTable.cacheRowMap();
5543
+ $xeTable.updateScrollYStatus();
5544
+ $xeTable.handleTableData(treeConfig && transform);
5545
+ if (!(treeConfig && transform)) {
5546
+ $xeTable.updateAfterDataIndex();
5547
+ }
5548
+ $xeTable.updateFooter();
5549
+ $xeTable.checkSelectionStatus();
5550
+ if (reactData.scrollYLoad) {
5551
+ $xeTable.updateScrollYSpace();
5552
+ }
5553
+ $xeTable.$nextTick().then(() => {
5554
+ $xeTable.updateCellAreas();
5555
+ return $xeTable.recalculate();
5556
+ });
5557
+ $xeTable.dispatchEvent('row-dragend', {
5558
+ oldRow: dragRow,
5559
+ newRow: prevDragRow,
5560
+ _index: {
5561
+ newIndex: nafIndex,
5562
+ oldIndex: oafIndex
5563
+ }
5564
+ }, evnt);
5565
+ }).catch(() => {});
5566
+ }
5567
+ }
5568
+ hideRowDropTip($xeTable);
5569
+ clearRowDropOrigin($xeTable);
5570
+ clearRowDropTarget($xeTable);
5571
+ reactData.dragRow = null;
5572
+ setTimeout(() => {
5573
+ reactData.isDragRowMove = false;
5574
+ }, 500);
5575
+ },
5576
+ handleRowDragDragoverEvent(evnt) {
5577
+ const $xeTable = this;
5578
+ const internalData = $xeTable;
5579
+ const reactData = $xeTable;
5580
+ const trEl = evnt.currentTarget;
5581
+ const rowid = trEl.getAttribute('rowid');
5582
+ const row = $xeTable.getRowById(rowid);
5583
+ clearRowDropTarget($xeTable);
5584
+ if (row) {
5585
+ evnt.preventDefault();
5586
+ evnt.preventDefault();
5587
+ const {
5588
+ dragRow
5589
+ } = reactData;
5590
+ const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
5591
+ const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
5592
+ (0, _dom.addClass)(trEl, 'row--drag-active-target');
5593
+ trEl.setAttribute('drag-pos', dragPos);
5594
+ internalData.prevDragRow = row;
5595
+ internalData.prevDragPos = dragPos;
5596
+ $xeTable.dispatchEvent('row-dragover', {
5597
+ oldRow: dragRow,
5598
+ targetRow: row,
5599
+ dragPos
5600
+ }, evnt);
5601
+ }
5602
+ showRowDropTip(evnt, $xeTable);
5603
+ },
5604
+ handleCellDragMousedownEvent(evnt, params) {
5605
+ var _a;
5606
+ const $xeTable = this;
5607
+ const reactData = $xeTable;
5608
+ evnt.stopPropagation();
5609
+ const dragOpts = $xeTable.computeDragOpts;
5610
+ const {
5611
+ dragStartMethod
5612
+ } = dragOpts;
5613
+ const {
5614
+ row
5615
+ } = params;
5616
+ const dragEl = evnt.currentTarget;
5617
+ const tdEl = (_a = dragEl.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode;
5618
+ const trEl = tdEl.parentNode;
5619
+ reactData.isDragRowMove = false;
5620
+ clearRowDropOrigin($xeTable);
5621
+ if (dragStartMethod && !dragStartMethod(params)) {
5622
+ trEl.draggable = false;
5623
+ reactData.dragRow = null;
5624
+ hideRowDropTip($xeTable);
5625
+ return;
5626
+ }
5627
+ reactData.dragRow = row;
5628
+ trEl.draggable = true;
5629
+ (0, _dom.addClass)(trEl, 'row--drag-origin');
5630
+ showRowDropTip(evnt, $xeTable);
5631
+ updateRowDropTipContent($xeTable, tdEl);
5632
+ $xeTable.dispatchEvent('row-dragstart', params, evnt);
5633
+ },
5634
+ handleCellDragMouseupEvent() {
5635
+ const $xeTable = this;
5636
+ const reactData = $xeTable;
5637
+ clearRowDropOrigin($xeTable);
5638
+ hideRowDropTip($xeTable);
5639
+ reactData.dragRow = null;
5640
+ reactData.isDragRowMove = false;
5641
+ },
5442
5642
  setPendingRow(rows, status) {
5443
5643
  const pendingMaps = Object.assign({}, this.pendingRowMaps);
5444
5644
  const pendingList = [...this.pendingRowList];
@@ -6528,14 +6728,15 @@ const Methods = {
6528
6728
  const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
6529
6729
  const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
6530
6730
  const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
6531
- $xeTable.dispatchEvent('scroll', Object.assign({
6731
+ const evntParams = Object.assign({
6532
6732
  bodyHeight,
6533
6733
  bodyWidth,
6534
6734
  scrollHeight,
6535
6735
  scrollWidth,
6536
6736
  isX: isRollX,
6537
6737
  isY: isRollY
6538
- }, params), evnt);
6738
+ }, params);
6739
+ $xeTable.dispatchEvent('scroll', evntParams, evnt);
6539
6740
  },
6540
6741
  /**
6541
6742
  * 纵向 Y 可视渲染事件处理
@@ -6563,15 +6764,23 @@ const Methods = {
6563
6764
  leading: false,
6564
6765
  trailing: true
6565
6766
  }),
6566
- scrollXEvent(evnt) {
6767
+ handleSyncScrollX(scrollLeft) {
6567
6768
  const $xeTable = this;
6568
- const wrapperEl = evnt.currentTarget;
6569
6769
  const tableHeader = $xeTable.$refs.tableHeader;
6570
6770
  const tableBody = $xeTable.$refs.tableBody;
6571
6771
  const tableFooter = $xeTable.$refs.tableFooter;
6572
6772
  const bodyElem = tableBody.$el;
6573
6773
  const headerElem = tableHeader ? tableHeader.$el : null;
6574
6774
  const footerElem = tableFooter ? tableFooter.$el : null;
6775
+ $xeTable.lastScrollLeft = scrollLeft;
6776
+ $xeTable.lastScrollTime = Date.now();
6777
+ (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
6778
+ (0, _dom.setScrollLeft)(headerElem, scrollLeft);
6779
+ (0, _dom.setScrollLeft)(footerElem, scrollLeft);
6780
+ },
6781
+ scrollXEvent(evnt) {
6782
+ const $xeTable = this;
6783
+ const wrapperEl = evnt.currentTarget;
6575
6784
  const {
6576
6785
  scrollTop,
6577
6786
  scrollLeft
@@ -6580,9 +6789,7 @@ const Methods = {
6580
6789
  const isRollY = false;
6581
6790
  $xeTable.lastScrollLeft = scrollLeft;
6582
6791
  $xeTable.lastScrollTime = Date.now();
6583
- (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
6584
- (0, _dom.setScrollLeft)(headerElem, scrollLeft);
6585
- (0, _dom.setScrollLeft)(footerElem, scrollLeft);
6792
+ $xeTable.handleSyncScrollX(scrollLeft);
6586
6793
  $xeTable.triggerScrollXEvent(evnt);
6587
6794
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
6588
6795
  type: 'table',
@@ -6597,15 +6804,23 @@ const Methods = {
6597
6804
  leading: false,
6598
6805
  trailing: true
6599
6806
  }),
6600
- scrollYEvent(evnt) {
6807
+ handleSyncScrollY(scrollTop) {
6601
6808
  const $xeTable = this;
6602
- const wrapperEl = evnt.currentTarget;
6603
6809
  const tableBody = $xeTable.$refs.tableBody;
6604
6810
  const leftBody = $xeTable.$refs.leftBody;
6605
6811
  const rightBody = $xeTable.$refs.rightBody;
6606
6812
  const bodyElem = tableBody.$el;
6607
6813
  const leftElem = leftBody ? leftBody.$el : null;
6608
6814
  const rightElem = rightBody ? rightBody.$el : null;
6815
+ $xeTable.lastScrollTop = scrollTop;
6816
+ $xeTable.lastScrollTime = Date.now();
6817
+ (0, _dom.setScrollTop)(bodyElem, scrollTop);
6818
+ (0, _dom.setScrollTop)(leftElem, scrollTop);
6819
+ (0, _dom.setScrollTop)(rightElem, scrollTop);
6820
+ },
6821
+ scrollYEvent(evnt) {
6822
+ const $xeTable = this;
6823
+ const wrapperEl = evnt.currentTarget;
6609
6824
  const {
6610
6825
  scrollTop,
6611
6826
  scrollLeft
@@ -6614,9 +6829,7 @@ const Methods = {
6614
6829
  const isRollY = true;
6615
6830
  $xeTable.lastScrollTop = scrollTop;
6616
6831
  $xeTable.lastScrollTime = Date.now();
6617
- (0, _dom.setScrollTop)(bodyElem, scrollTop);
6618
- (0, _dom.setScrollTop)(leftElem, scrollTop);
6619
- (0, _dom.setScrollTop)(rightElem, scrollTop);
6832
+ $xeTable.handleSyncScrollY(scrollTop);
6620
6833
  $xeTable.triggerScrollYEvent(evnt);
6621
6834
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
6622
6835
  type: 'table',
@@ -6731,7 +6944,7 @@ const Methods = {
6731
6944
  },
6732
6945
  updateScrollXData() {
6733
6946
  // this.tableColumn = []
6734
- this.$nextTick(() => {
6947
+ return this.$nextTick().then(() => {
6735
6948
  this.handleTableColumn();
6736
6949
  this.updateScrollXSpace();
6737
6950
  });
@@ -6793,7 +7006,7 @@ const Methods = {
6793
7006
  updateScrollYData() {
6794
7007
  const $xeTable = this;
6795
7008
  // this.tableData = []
6796
- this.$nextTick(() => {
7009
+ return this.$nextTick().then(() => {
6797
7010
  this.handleTableData();
6798
7011
  calcCellHeight($xeTable);
6799
7012
  this.updateScrollYSpace();