vxe-table 3.9.21 → 3.10.0-beta.0

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 (88) hide show
  1. package/es/locale/lang/ja-JP.js +5 -5
  2. package/es/locale/lang/ko-KR.js +5 -5
  3. package/es/locale/lang/uk-UA.js +5 -5
  4. package/es/locale/lang/vi-VN.js +5 -5
  5. package/es/locale/lang/zh-CHT.js +5 -5
  6. package/es/locale/lang/zh-CN.js +5 -5
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/edit/mixin.js +3 -3
  10. package/es/table/src/body.js +50 -115
  11. package/es/table/src/footer.js +24 -21
  12. package/es/table/src/methods.js +392 -123
  13. package/es/table/src/table.js +68 -10
  14. package/es/table/src/util.js +58 -33
  15. package/es/table/style.css +46 -3
  16. package/es/table/style.min.css +1 -1
  17. package/es/ui/index.js +2 -2
  18. package/es/ui/src/log.js +1 -1
  19. package/es/vxe-table/style.css +46 -3
  20. package/es/vxe-table/style.min.css +1 -1
  21. package/lib/index.umd.js +672 -361
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/locale/lang/ja-JP.js +5 -5
  24. package/lib/locale/lang/ja-JP.min.js +1 -1
  25. package/lib/locale/lang/ja-JP.umd.js +5 -5
  26. package/lib/locale/lang/ko-KR.js +5 -5
  27. package/lib/locale/lang/ko-KR.min.js +1 -1
  28. package/lib/locale/lang/ko-KR.umd.js +5 -5
  29. package/lib/locale/lang/uk-UA.js +5 -5
  30. package/lib/locale/lang/uk-UA.min.js +1 -1
  31. package/lib/locale/lang/uk-UA.umd.js +5 -5
  32. package/lib/locale/lang/vi-VN.js +5 -5
  33. package/lib/locale/lang/vi-VN.min.js +1 -1
  34. package/lib/locale/lang/zh-CHT.js +5 -5
  35. package/lib/locale/lang/zh-CHT.min.js +1 -1
  36. package/lib/locale/lang/zh-CHT.umd.js +5 -5
  37. package/lib/locale/lang/zh-CN.js +5 -5
  38. package/lib/locale/lang/zh-CN.min.js +1 -1
  39. package/lib/locale/lang/zh-CN.umd.js +5 -5
  40. package/lib/style.css +1 -1
  41. package/lib/style.min.css +1 -1
  42. package/lib/table/module/edit/mixin.js +6 -3
  43. package/lib/table/module/edit/mixin.min.js +1 -1
  44. package/lib/table/src/body.js +49 -118
  45. package/lib/table/src/body.min.js +1 -1
  46. package/lib/table/src/footer.js +24 -33
  47. package/lib/table/src/footer.min.js +1 -1
  48. package/lib/table/src/methods.js +449 -148
  49. package/lib/table/src/methods.min.js +1 -1
  50. package/lib/table/src/table.js +61 -13
  51. package/lib/table/src/table.min.js +1 -1
  52. package/lib/table/src/util.js +72 -38
  53. package/lib/table/src/util.min.js +1 -1
  54. package/lib/table/style/style.css +46 -3
  55. package/lib/table/style/style.min.css +1 -1
  56. package/lib/ui/index.js +2 -2
  57. package/lib/ui/index.min.js +1 -1
  58. package/lib/ui/src/log.js +1 -1
  59. package/lib/ui/src/log.min.js +1 -1
  60. package/lib/vxe-table/style/style.css +46 -3
  61. package/lib/vxe-table/style/style.min.css +1 -1
  62. package/package.json +2 -2
  63. package/packages/locale/lang/ja-JP.ts +5 -5
  64. package/packages/locale/lang/ko-KR.ts +5 -5
  65. package/packages/locale/lang/uk-UA.ts +5 -5
  66. package/packages/locale/lang/vi-VN.ts +5 -5
  67. package/packages/locale/lang/zh-CHT.ts +5 -5
  68. package/packages/locale/lang/zh-CN.ts +5 -5
  69. package/packages/table/module/edit/mixin.ts +3 -3
  70. package/packages/table/src/body.ts +50 -118
  71. package/packages/table/src/footer.ts +24 -22
  72. package/packages/table/src/methods.ts +418 -127
  73. package/packages/table/src/props.ts +8 -8
  74. package/packages/table/src/table.ts +70 -10
  75. package/packages/table/src/util.ts +61 -36
  76. package/packages/ui/index.ts +1 -1
  77. package/styles/components/table-module/filter.scss +1 -1
  78. package/styles/components/table.scss +45 -6
  79. package/styles/modules.scss +0 -2
  80. package/styles/theme/base.scss +1 -1
  81. package/styles/theme/dark.scss +7 -4
  82. package/styles/variable.scss +5 -1
  83. /package/es/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
  84. /package/es/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
  85. /package/es/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
  86. /package/lib/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
  87. /package/lib/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
  88. /package/lib/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
@@ -68,13 +68,13 @@ function renderLine(h, _vm, $xetable, params) {
68
68
  function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
69
69
  const {
70
70
  $listeners: tableListeners,
71
+ fullAllDataRowIdData,
71
72
  afterFullData,
72
73
  tableData,
73
74
  height,
74
75
  columnKey,
75
76
  overflowX,
76
77
  sYOpts,
77
- scrollXLoad,
78
78
  scrollYLoad,
79
79
  highlightCurrentRow,
80
80
  showOverflow: allColumnOverflow,
@@ -130,12 +130,13 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
130
130
  const isEdit = (0, _utils.isEnableConf)(editRender);
131
131
  let fixedHiddenColumn = fixedType ? column.fixed !== fixedType : column.fixed && overflowX;
132
132
  const cellOverflow = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? allColumnOverflow : showOverflow;
133
- let showEllipsis = cellOverflow === 'ellipsis';
133
+ const showEllipsis = cellOverflow === 'ellipsis';
134
134
  const showTitle = cellOverflow === 'title';
135
135
  const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
136
- let hasEllipsis = showTitle || showTooltip || showEllipsis;
136
+ const hasEllipsis = showTitle || showTooltip || showEllipsis;
137
137
  let isDirty;
138
138
  const tdOns = {};
139
+ const rest = fullAllDataRowIdData[rowid];
139
140
  const cellAlign = align || (compConf ? compConf.tableCellAlign : '') || allAlign;
140
141
  const errorValidItem = validErrorMaps[`${rowid}:${column.id}`];
141
142
  const showValidTip = editRules && validOpts.showMessage && (validOpts.message === 'default' ? height || tableData.length > 1 : validOpts.message === 'inline');
@@ -167,10 +168,6 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
167
168
  data: tableData,
168
169
  items
169
170
  };
170
- // 虚拟滚动不支持动态高度
171
- if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
172
- showEllipsis = hasEllipsis = true;
173
- }
174
171
  // hover 进入事件
175
172
  if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
176
173
  tdOns.mouseenter = evnt => {
@@ -327,7 +324,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
327
324
  key: columnKey || columnOpts.useKey ? column.id : $columnIndex,
328
325
  attrs,
329
326
  style: Object.assign({
330
- height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : ''
327
+ height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : scrollYLoad ? `${rest.height || scrollYRHeight || rowHeight}px` : ''
331
328
  }, _xeUtils.default.isFunction(compCellStyle) ? compCellStyle(params) : compCellStyle, _xeUtils.default.isFunction(cellStyle) ? cellStyle(params) : cellStyle),
332
329
  on: tdOns
333
330
  }, tdVNs);
@@ -491,45 +488,6 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
491
488
  });
492
489
  return rows;
493
490
  }
494
- /**
495
- * 同步滚动条
496
- */
497
- let scrollProcessTimeout;
498
- function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
499
- if (elem1 || elem2) {
500
- if (elem1) {
501
- (0, _util.removeScrollListener)(elem1);
502
- elem1.scrollTop = scrollTop;
503
- }
504
- if (elem2) {
505
- (0, _util.removeScrollListener)(elem2);
506
- elem2.scrollTop = scrollTop;
507
- }
508
- clearTimeout(scrollProcessTimeout);
509
- scrollProcessTimeout = setTimeout(() => {
510
- // const { tableBody, leftBody, rightBody } = _vm.$refs
511
- // const bodyElem = tableBody.$el
512
- // const leftElem = leftBody ? leftBody.$el : null
513
- // const rightElem = rightBody ? rightBody.$el : null
514
- (0, _util.restoreScrollListener)(elem1);
515
- (0, _util.restoreScrollListener)(elem2);
516
- // 检查滚动条是的同步
517
- // let targetTop = bodyElem.scrollTop
518
- // if (fixedType === 'left') {
519
- // if (leftElem) {
520
- // targetTop = leftElem.scrollTop
521
- // }
522
- // } else if (fixedType === 'right') {
523
- // if (rightElem) {
524
- // targetTop = rightElem.scrollTop
525
- // }
526
- // }
527
- // setScrollTop(bodyElem, targetTop)
528
- // setScrollTop(leftElem, targetTop)
529
- // setScrollTop(rightElem, targetTop)
530
- }, 300);
531
- }
532
- }
533
491
  var _default = exports.default = {
534
492
  name: 'VxeTableBody',
535
493
  props: {
@@ -565,17 +523,9 @@ var _default = exports.default = {
565
523
  elemStore[`${prefix}xSpace`] = $refs.xSpace;
566
524
  elemStore[`${prefix}ySpace`] = $refs.ySpace;
567
525
  elemStore[`${prefix}emptyBlock`] = $refs.emptyBlock;
568
- if (this.$el) {
569
- this.$el.onscroll = this.scrollEvent;
570
- this.$el._onscroll = this.scrollEvent;
571
- }
572
526
  },
573
527
  beforeDestroy() {
574
528
  clearTimeout(this.wheelTime);
575
- if (this.$el) {
576
- this.$el._onscroll = null;
577
- this.$el.onscroll = null;
578
- }
579
529
  },
580
530
  destroyed() {
581
531
  const {
@@ -663,9 +613,11 @@ var _default = exports.default = {
663
613
  attrs: {
664
614
  xid: tId
665
615
  },
666
- on: scrollYLoad && sYOpts.mode === 'wheel' ? {
616
+ on: Object.assign({
617
+ scroll: this.scrollEvent
618
+ }, scrollYLoad && sYOpts.mode === 'wheel' ? {
667
619
  wheel: this.wheelEvent
668
- } : {}
620
+ } : null)
669
621
  }, [fixedType ? _e() : h('div', {
670
622
  class: 'vxe-body--x-space',
671
623
  ref: 'xSpace'
@@ -741,89 +693,68 @@ var _default = exports.default = {
741
693
  scrollEvent(evnt) {
742
694
  const {
743
695
  $el: scrollBodyElem,
744
- $parent: $xetable,
696
+ $parent: $xeTable,
745
697
  fixedType
746
698
  } = this;
747
699
  const {
748
700
  $refs,
749
- elemStore,
750
- highlightHoverRow,
751
- scrollXLoad,
752
- scrollYLoad,
753
701
  lastScrollTop,
754
- lastScrollLeft,
755
- rowOpts
756
- } = $xetable;
702
+ lastScrollLeft
703
+ } = $xeTable;
757
704
  const {
758
705
  tableHeader,
759
706
  tableBody,
760
707
  leftBody,
761
708
  rightBody,
762
- tableFooter,
763
- validTip
709
+ tableFooter
764
710
  } = $refs;
765
711
  const headerElem = tableHeader ? tableHeader.$el : null;
766
712
  const footerElem = tableFooter ? tableFooter.$el : null;
767
713
  const bodyElem = tableBody.$el;
768
714
  const leftElem = leftBody ? leftBody.$el : null;
769
715
  const rightElem = rightBody ? rightBody.$el : null;
770
- const bodyYElem = elemStore['main-body-ySpace'];
771
- const bodyXElem = elemStore['main-body-xSpace'];
772
- const bodyHeight = scrollYLoad && bodyYElem ? bodyYElem.clientHeight : bodyElem.clientHeight;
773
- const bodyWidth = scrollXLoad && bodyXElem ? bodyXElem.clientWidth : bodyElem.clientWidth;
774
- let scrollTop = scrollBodyElem.scrollTop;
716
+ const scrollTop = scrollBodyElem.scrollTop;
775
717
  const scrollLeft = bodyElem.scrollLeft;
776
718
  const isRollX = scrollLeft !== lastScrollLeft;
777
719
  const isRollY = scrollTop !== lastScrollTop;
778
- $xetable.lastScrollTop = scrollTop;
779
- $xetable.lastScrollLeft = scrollLeft;
780
- $xetable.lastScrollTime = Date.now();
781
- if (rowOpts.isHover || highlightHoverRow) {
782
- $xetable.clearHoverRow();
783
- }
784
- if (leftElem && fixedType === 'left') {
785
- scrollTop = leftElem.scrollTop;
786
- syncBodyScroll($xetable, fixedType, scrollTop, bodyElem, rightElem);
787
- } else if (rightElem && fixedType === 'right') {
788
- scrollTop = rightElem.scrollTop;
789
- syncBodyScroll($xetable, fixedType, scrollTop, bodyElem, leftElem);
790
- } else {
791
- if (isRollX) {
792
- if (headerElem) {
793
- headerElem.scrollLeft = bodyElem.scrollLeft;
794
- }
795
- if (footerElem) {
796
- footerElem.scrollLeft = bodyElem.scrollLeft;
797
- }
798
- }
799
- if (leftElem || rightElem) {
800
- $xetable.checkScrolling();
801
- if (isRollY) {
802
- syncBodyScroll($xetable, fixedType, scrollTop, leftElem, rightElem);
803
- }
720
+ const xHandleEl = $refs.refScrollXHandleElem;
721
+ const yHandleEl = $refs.refScrollYHandleElem;
722
+ if (yHandleEl) {
723
+ yHandleEl.scrollTop = scrollTop;
724
+ } else if (isRollY) {
725
+ $xeTable.lastScrollTop = scrollTop;
726
+ $xeTable.lastScrollLeft = scrollLeft;
727
+ if (leftElem && fixedType === 'left') {
728
+ (0, _dom.setScrollTop)(bodyElem, scrollTop);
729
+ (0, _dom.setScrollTop)(rightElem, scrollTop);
730
+ } else if (rightElem && fixedType === 'right') {
731
+ (0, _dom.setScrollTop)(bodyElem, scrollTop);
732
+ (0, _dom.setScrollTop)(leftElem, scrollTop);
733
+ } else {
734
+ (0, _dom.setScrollTop)(leftElem, scrollTop);
735
+ (0, _dom.setScrollTop)(rightElem, scrollTop);
804
736
  }
737
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
738
+ type: renderType,
739
+ fixed: fixedType,
740
+ scrollTop,
741
+ scrollLeft
742
+ });
805
743
  }
806
- if (scrollXLoad && isRollX) {
807
- $xetable.triggerScrollXEvent(evnt);
808
- }
809
- if (scrollYLoad && isRollY) {
810
- $xetable.triggerScrollYEvent(evnt);
811
- }
812
- if (isRollX && validTip && validTip.visible) {
813
- validTip.updatePlacement();
744
+ if (xHandleEl) {
745
+ xHandleEl.scrollLeft = scrollLeft;
746
+ } else if (isRollX) {
747
+ $xeTable.lastScrollTop = scrollTop;
748
+ $xeTable.lastScrollLeft = scrollLeft;
749
+ (0, _dom.setScrollLeft)(headerElem, scrollLeft);
750
+ (0, _dom.setScrollLeft)(footerElem, scrollLeft);
751
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
752
+ type: renderType,
753
+ fixed: fixedType,
754
+ scrollTop,
755
+ scrollLeft
756
+ });
814
757
  }
815
- $xetable.emitEvent('scroll', {
816
- type: renderType,
817
- fixed: fixedType,
818
- scrollTop,
819
- scrollLeft,
820
- scrollHeight: bodyElem.scrollHeight,
821
- scrollWidth: bodyElem.scrollWidth,
822
- bodyHeight,
823
- bodyWidth,
824
- isX: isRollX,
825
- isY: isRollY
826
- }, evnt);
827
758
  },
828
759
  handleWheel(evnt, isTopWheel, deltaTop, isRollX, isRollY) {
829
760
  const {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,renderType="body";function isVMScrollProcess(e){return e._isResize||e.lastScrollTime&&Date.now()<e.lastScrollTime+e.delayHover}function renderLine(e,l,t,r){var{row:o,column:s}=r,{afterFullData:i,treeOpts:a,treeConfig:n,fullAllDataRowIdData:c}=t,{slots:s,treeNode:d}=s,c=c[(0,_util.getRowid)(t,o)];let p=0,u=0,h=[];return c&&(p=c.level,u=c._index,h=c.items),s&&s.line?t.callSlot(s.line,r,e):(c=t.eqRow(i[0],o),n&&d&&(a.showLine||a.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${c?1:(0,_util.calcTreeLine)(r,h,u)}px`,left:p*a.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,B,l,t,r,o,s,i,a,n,D,c,d,U,W){var{$listeners:p,afterFullData:q,tableData:N,height:u,columnKey:P,overflowX:h,sYOpts:g,scrollXLoad:V,scrollYLoad:F,highlightCurrentRow:A,showOverflow:X,isAllOverflow:z,align:v,currentColumn:j,cellClassName:K,cellStyle:w,mergeList:x,spanMethod:G,radioOpts:J,checkboxOpts:m,expandOpts:Q,treeOpts:Z,tooltipOpts:y,mouseConfig:ee,editConfig:f,editOpts:b,editRules:T,validOpts:S,editStore:le,tooltipConfig:te,rowOpts:re,columnOpts:oe,validErrorMaps:se}=l,{type:ie,cellRender:ae,editRender:$,align:_,showOverflow:C,className:ne,treeNode:ce,slots:de}=c,le=le.actived,g=g.rHeight,L=re.height,O=$||ae,O=O?renderer.get(O.name):null,pe=O?O.tableCellClassName||O.cellClassName:"",ue=O?O.tableCellStyle||O.cellStyle:"";let R=y.showAll||y.enabled;var y=l.getColumnIndex(c),he=l.getVTColumnIndex(c),ge=(0,_utils.isEnableConf)($);let E=o?c.fixed!==o:c.fixed&&h;h=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?X:C;let H="ellipsis"===h,I="title"===h,k=!0===h||"tooltip"===h,Y=I||k||H,ve;C={},h=_||(O?O.tableCellAlign:"")||v,_=se[r+":"+c.id],O=T&&S.showMessage&&("default"===S.message?u||1<N.length:"inline"===S.message),v={colid:c.id};let we=p["cell-mouseenter"],xe=p["cell-mouseleave"];se=$&&f&&"dblclick"===b.trigger;let M={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:i,rowIndex:a,$rowIndex:n,_rowIndex:D,column:c,columnIndex:y,$columnIndex:d,_columnIndex:he,fixed:o,type:renderType,isHidden:E,level:s,visibleData:q,data:N,items:W};if(!V&&!F||Y||(H=Y=!0),(I||k||R||we||te)&&(C.mouseenter=e=>{isVMScrollProcess(l)||(I?(0,_dom.updateCellTitle)(e.currentTarget,c):(k||R)&&l.triggerBodyTooltipEvent(e,M),we&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(k||R||xe||te)&&(C.mouseleave=e=>{isVMScrollProcess(l)||((k||R)&&l.handleTargetLeaveEvent(e),xe&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(m.range||ee)&&(C.mousedown=e=>{l.triggerCellMousedownEvent(e,M)}),(re.isCurrent||A||p["cell-click"]||$&&f||"row"===Q.trigger||"cell"===Q.trigger||"row"===J.trigger||"radio"===c.type&&"cell"===J.trigger||"row"===m.trigger||"checkbox"===c.type&&"cell"===m.trigger||"row"===Z.trigger||c.treeNode&&"cell"===Z.trigger)&&(C.click=e=>{l.triggerCellClickEvent(e,M)}),(se||p["cell-dblclick"])&&(C.dblclick=e=>{l.triggerCellDblclickEvent(e,M)}),x.length){T=(0,_util.mergeBodyMethod)(x,D,he);if(T){var{rowspan:u,colspan:t}=T;if(!u||!t)return null;1<u&&(v.rowspan=u),1<t&&(v.colspan=t)}}else if(G){var{rowspan:r=1,colspan:a=1}=G(M)||{};if(!r||!a)return null;1<r&&(v.rowspan=r),1<a&&(v.colspan=a)}!(E=E&&x&&(1<v.colspan||1<v.rowspan)?!1:E)&&f&&($||ae)&&(b.showStatus||b.showUpdateStatus)&&(ve=l.isUpdateByRow(i,c.field));n=[];return E&&X&&z?n.push(e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":k,"c--ellipsis":H}],style:{maxHeight:Y&&(g||L)?`${g||L}px`:""}})):(n.push(...renderLine(e,B,l,M),e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":k,"c--ellipsis":H}],style:{maxHeight:Y&&(g||L)?`${g||L}px`:""},attrs:{title:I?l.getCellLabel(i,c):null}},c.renderCell(e,M))),O&&_&&(y=_.rule,o=de?de.valid:null,s=Object.assign(Object.assign({},M),_),n.push(e("div",{class:["vxe-cell--valid-error-hint",(0,_utils.getClass)(S.className,_)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},o?l.callSlot(o,s,e):[e("span",{class:"vxe-cell--valid-error-msg"},_.content)])))),e("td",{class:["vxe-body--column",c.id,{["col--"+h]:h,["col--"+ie]:ie,"col--last":d===U.length-1,"col--tree-node":ce,"col--edit":ge,"col--ellipsis":Y,"col--height":!!re.height,"fixed--hidden":E,"col--dirty":ve,"col--active":f&&ge&&le.row===i&&(le.column===c||"row"===b.mode),"col--valid-error":!!_,"col--current":j===c},(0,_utils.getClass)(pe,M),(0,_utils.getClass)(ne,M),(0,_utils.getClass)(K,M)],key:P||oe.useKey?c.id:d,attrs:v,style:Object.assign({height:Y&&(g||L)?`${g||L}px`:""},_xeUtils.default.isFunction(ue)?ue(M):ue,_xeUtils.default.isFunction(w)?w(M):w),on:C},n)}function renderRows(w,x,m,y,f,b){let{stripe:T,rowKey:S,highlightHoverRow:$,rowClassName:_,rowStyle:C,editConfig:L,showOverflow:O,treeConfig:R,treeOpts:E,expandOpts:H,editOpts:I,treeExpandedMaps:k,scrollYLoad:Y,rowExpandedMaps:M,radioOpts:B,checkboxOpts:D,expandColumn:U,hasFixedColumn:W,fullAllDataRowIdData:q,rowOpts:N,pendingRowList:P,pendingRowMaps:V}=m,F=E.children||E.childrenField,A=[];return f.forEach((t,r)=>{var e={};let o,s=m.getVTRowIndex(t),i=(o=m.getRowIndex(t),(N.isHover||$)&&(e.mouseenter=e=>{isVMScrollProcess(m)||m.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(m)||m.clearHoverRow()}),(0,_util.getRowid)(m,t));var l=q[i];let a=l?l.level:0,n=l?l.seq:-1;var c,d,p,l={$table:m,seq:n,rowid:i,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},u=U&&!!M[i];let h=!1,g=[],v=!1;L&&(v=m.isInsertByRow(t)),!R||Y||E.transform||(g=t[F],h=g&&g.length&&!!k[i]),A.push(w("tr",{class:["vxe-body--row",R?"row--level-"+a:"",{"row--stripe":T&&(m.getVTRowIndex(t)+1)%2==0,"is--new":v,"is--expand-row":u,"is--expand-tree":h,"row--new":v&&(I.showStatus||I.showInsertStatus),"row--radio":B.highlight&&m.selectRadioRow===t,"row--checked":D.highlight&&m.isCheckedByCheckboxRow(t),"row--pending":P.length&&!!V[i]},_?_xeUtils.default.isFunction(_)?_(l):_:""],attrs:{rowid:i},style:C?_xeUtils.default.isFunction(C)?C(l):C:null,key:S||N.useKey||R?i:r,on:e},b.map((e,l)=>renderColumn(w,x,m,n,i,y,a,t,o,r,s,e,l,b,f)))),u&&({height:l,padding:u}=H,c={},d=(l&&(c.height=l+"px"),R&&(c.paddingLeft=a*E.indent+30+"px"),U).showOverflow,d=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?O:d,p={$table:m,seq:n,column:U,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},A.push(w("tr",{class:["vxe-body--expanded-row",{"is--padding":u}],key:"expand_"+i,style:C?_xeUtils.default.isFunction(C)?C(p):C:null,on:e},[w("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":y&&!W,"col--ellipsis":d},attrs:{colspan:b.length}},[w("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:c},[U.renderData(w,p)])])]))),h&&A.push(...renderRows(w,x,m,y,g,b))}),A}let scrollProcessTimeout;function syncBodyScroll(e,l,t,r,o){(r||o)&&(r&&((0,_util.removeScrollListener)(r),r.scrollTop=t),o&&((0,_util.removeScrollListener)(o),o.scrollTop=t),clearTimeout(scrollProcessTimeout),scrollProcessTimeout=setTimeout(()=>{(0,_util.restoreScrollListener)(r),(0,_util.restoreScrollListener)(o)},300))}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{wheelTime:null,wheelYSize:0,wheelYInterval:0,wheelYTotal:0}},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-body-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tbody,e[r+"xSpace"]=t.xSpace,e[r+"ySpace"]=t.ySpace,e[r+"emptyBlock"]=t.emptyBlock,this.$el&&(this.$el.onscroll=this.scrollEvent,this.$el._onscroll=this.scrollEvent)},beforeDestroy(){clearTimeout(this.wheelTime),this.$el&&(this.$el._onscroll=null,this.$el.onscroll=null)},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-body-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"ySpace"]=null,e[l+"emptyBlock"]=null},render(t){let{_e:e,$parent:l,fixedColumn:r,fixedType:o}=this,{$scopedSlots:s,tId:i,tableData:a,tableColumn:n,visibleColumn:c,expandColumn:d,showOverflow:p,keyboardConfig:u,keyboardOpts:h,mergeList:g,spanMethod:v,scrollXLoad:w,scrollYLoad:x,isAllOverflow:m,emptyOpts:y,mouseConfig:f,mouseOpts:b,sYOpts:T}=l;o&&(n=d||!(w||x||p&&m)||g.length||v||u&&h.isMerge?c:r);let S;var $;return S=s.empty?s.empty.call(this,{$table:l},t):($=($=y.name?renderer.get(y.name):null)?$.renderTableEmpty||$.renderTableEmptyView||$.renderEmpty:null)?(0,_vn.getSlotVNs)($.call(this,t,y,{$table:l})):l.emptyText||getI18n("vxe.table.emptyText"),t("div",{class:["vxe-table--body-wrapper",o?`fixed-${o}--wrapper`:"body--wrapper"],attrs:{xid:i},on:x&&"wheel"===T.mode?{wheel:this.wheelEvent}:{}},[o?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("div",{class:"vxe-body--y-space",ref:"ySpace"}),t("table",{class:"vxe-table--body",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},n.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),t("tbody",{ref:"tbody"},renderRows(t,this,l,o,a,n))]),t("div",{class:"vxe-table--checkbox-range"}),f&&b.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},b.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellExtendMousedownEvent(e,{$table:l,fixed:o,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):null,o?null:t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])},methods:{scrollEvent(e){var{$el:l,$parent:t,fixedType:r}=this,{$refs:o,elemStore:s,highlightHoverRow:i,scrollXLoad:a,scrollYLoad:n,lastScrollTop:c,lastScrollLeft:d,rowOpts:p}=t,{tableHeader:o,tableBody:u,leftBody:h,rightBody:g,tableFooter:v,validTip:w}=o,o=o?o.$el:null,v=v?v.$el:null,u=u.$el,h=h?h.$el:null,g=g?g.$el:null,x=s["main-body-ySpace"],s=s["main-body-xSpace"],x=(n&&x?x:u).clientHeight,s=(a&&s?s:u).clientWidth;let m=l.scrollTop;l=u.scrollLeft,d=l!==d,c=m!==c;t.lastScrollTop=m,t.lastScrollLeft=l,t.lastScrollTime=Date.now(),(p.isHover||i)&&t.clearHoverRow(),h&&"left"===r?syncBodyScroll(t,r,m=h.scrollTop,u,g):g&&"right"===r?syncBodyScroll(t,r,m=g.scrollTop,u,h):(d&&(o&&(o.scrollLeft=u.scrollLeft),v)&&(v.scrollLeft=u.scrollLeft),(h||g)&&(t.checkScrolling(),c)&&syncBodyScroll(t,r,m,h,g)),a&&d&&t.triggerScrollXEvent(e),n&&c&&t.triggerScrollYEvent(e),d&&w&&w.visible&&w.updatePlacement(),t.emitEvent("scroll",{type:renderType,fixed:r,scrollTop:m,scrollLeft:l,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:x,bodyWidth:s,isX:d,isY:c},e)},handleWheel(a,n,e,c,d){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:i}=l;let u=l.$el,h=s?s.$el:null,g=i?i.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],i=t["main-body-xSpace"];let v=(r&&s?s:u).clientHeight,w=(o&&i?i:u).clientWidth,x=(this.isPrevWheelTop=n,this.wheelYSize=Math.abs(n?e-l:e+l),this.wheelYInterval=0,this.wheelYTotal=0,clearTimeout(this.wheelTime),()=>{let{fixedType:e,wheelYTotal:l,wheelYSize:t,wheelYInterval:r}=this;var o,s,i;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:i,clientHeight:o,scrollHeight:s}=u,i=i+r*(n?-1:1),u.scrollTop=i,h&&(h.scrollTop=i),g&&(g.scrollTop=i),(n?i<s-o:0<=i)&&(this.wheelTime=setTimeout(x,10)),this.wheelYTotal=l,this.wheelYInterval=r,p.emitEvent("scroll",{type:renderType,fixed:e,scrollTop:u.scrollTop,scrollLeft:u.scrollLeft,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:v,bodyWidth:w,isX:c,isY:d},a))});x()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:i,scrollYLoad:a,lastScrollTop:n,lastScrollLeft:c,rowOpts:d}=o,s=s.tableBody,s=s.$el,p=l<0;(p?r.scrollTop<=0:r.scrollTop>=r.scrollHeight-r.clientHeight)||(r=r.scrollTop+l,t=(s=s.scrollLeft+t)!==c,(c=r!==n)&&(e.preventDefault(),o.lastScrollTop=r,o.lastScrollLeft=s,o.lastScrollTime=Date.now(),(d.isHover||i)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,c),a)&&o.triggerScrollYEvent(e))}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,renderType="body";function isVMScrollProcess(e){return e._isResize||e.lastScrollTime&&Date.now()<e.lastScrollTime+e.delayHover}function renderLine(e,l,t,r){var{row:o,column:s}=r,{afterFullData:i,treeOpts:a,treeConfig:n,fullAllDataRowIdData:d}=t,{slots:s,treeNode:c}=s,d=d[(0,_util.getRowid)(t,o)];let p=0,u=0,h=[];return d&&(p=d.level,u=d._index,h=d.items),s&&s.line?t.callSlot(s.line,r,e):(d=t.eqRow(i[0],o),n&&c&&(a.showLine||a.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${d?1:(0,_util.calcTreeLine)(r,h,u)}px`,left:p*a.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,D,l,t,r,o,s,i,a,n,B,d,c,U,q){var{$listeners:p,fullAllDataRowIdData:N,afterFullData:u,tableData:V,height:h,columnKey:A,overflowX:g,sYOpts:x,scrollYLoad:F,highlightCurrentRow:W,showOverflow:P,isAllOverflow:j,align:z,currentColumn:X,cellClassName:K,cellStyle:v,mergeList:w,spanMethod:G,radioOpts:J,checkboxOpts:m,expandOpts:Q,treeOpts:Z,tooltipOpts:f,mouseConfig:ee,editConfig:y,editOpts:b,editRules:T,validOpts:S,editStore:_,tooltipConfig:le,rowOpts:te,columnOpts:re,validErrorMaps:C}=l,{type:oe,cellRender:se,editRender:$,align:ie,showOverflow:O,className:ae,treeNode:ne,slots:de}=d,_=_.actived,x=x.rHeight,L=te.height,R=$||se,R=R?renderer.get(R.name):null,ce=R?R.tableCellClassName||R.cellClassName:"",pe=R?R.tableCellStyle||R.cellStyle:"";let E=f.showAll||f.enabled;var f=l.getColumnIndex(d),ue=l.getVTColumnIndex(d),he=(0,_utils.isEnableConf)($);let I=o?d.fixed!==o:d.fixed&&g;g=_xeUtils.default.isUndefined(O)||_xeUtils.default.isNull(O)?P:O,O="ellipsis"===g;let k="title"===g,Y=!0===g||"tooltip"===g;g=k||Y||O;let ge;var H={},N=N[r],ie=ie||(R?R.tableCellAlign:"")||z,R=C[r+":"+d.id],z=T&&S.showMessage&&("default"===S.message?h||1<V.length:"inline"===S.message),C={colid:d.id};let xe=p["cell-mouseenter"],ve=p["cell-mouseleave"];T=$&&y&&"dblclick"===b.trigger;let M={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:i,rowIndex:a,$rowIndex:n,_rowIndex:B,column:d,columnIndex:f,$columnIndex:c,_columnIndex:ue,fixed:o,type:renderType,isHidden:I,level:s,visibleData:u,data:V,items:q};if((k||Y||E||xe||le)&&(H.mouseenter=e=>{isVMScrollProcess(l)||(k?(0,_dom.updateCellTitle)(e.currentTarget,d):(Y||E)&&l.triggerBodyTooltipEvent(e,M),xe&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(Y||E||ve||le)&&(H.mouseleave=e=>{isVMScrollProcess(l)||((Y||E)&&l.handleTargetLeaveEvent(e),ve&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(m.range||ee)&&(H.mousedown=e=>{l.triggerCellMousedownEvent(e,M)}),(te.isCurrent||W||p["cell-click"]||$&&y||"row"===Q.trigger||"cell"===Q.trigger||"row"===J.trigger||"radio"===d.type&&"cell"===J.trigger||"row"===m.trigger||"checkbox"===d.type&&"cell"===m.trigger||"row"===Z.trigger||d.treeNode&&"cell"===Z.trigger)&&(H.click=e=>{l.triggerCellClickEvent(e,M)}),(T||p["cell-dblclick"])&&(H.dblclick=e=>{l.triggerCellDblclickEvent(e,M)}),w.length){h=(0,_util.mergeBodyMethod)(w,B,ue);if(h){var{rowspan:t,colspan:r}=h;if(!t||!r)return null;1<t&&(C.rowspan=t),1<r&&(C.colspan=r)}}else if(G){var{rowspan:a=1,colspan:n=1}=G(M)||{};if(!a||!n)return null;1<a&&(C.rowspan=a),1<n&&(C.colspan=n)}!(I=I&&w&&(1<C.colspan||1<C.rowspan)?!1:I)&&y&&($||se)&&(b.showStatus||b.showUpdateStatus)&&(ge=l.isUpdateByRow(i,d.field));f=[];return I&&P&&j?f.push(e("div",{class:["vxe-cell",{"c--title":k,"c--tooltip":Y,"c--ellipsis":O}],style:{maxHeight:g&&(x||L)?`${x||L}px`:""}})):(f.push(...renderLine(e,D,l,M),e("div",{class:["vxe-cell",{"c--title":k,"c--tooltip":Y,"c--ellipsis":O}],style:{maxHeight:g&&(x||L)?`${x||L}px`:""},attrs:{title:k?l.getCellLabel(i,d):null}},d.renderCell(e,M))),z&&R&&(o=R.rule,s=de?de.valid:null,u=Object.assign(Object.assign({},M),R),f.push(e("div",{class:["vxe-cell--valid-error-hint",(0,_utils.getClass)(S.className,R)],style:o&&o.maxWidth?{width:o.maxWidth+"px"}:null},s?l.callSlot(s,u,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)])))),e("td",{class:["vxe-body--column",d.id,{["col--"+ie]:ie,["col--"+oe]:oe,"col--last":c===U.length-1,"col--tree-node":ne,"col--edit":he,"col--ellipsis":g,"col--height":!!te.height,"fixed--hidden":I,"col--dirty":ge,"col--active":y&&he&&_.row===i&&(_.column===d||"row"===b.mode),"col--valid-error":!!R,"col--current":X===d},(0,_utils.getClass)(ce,M),(0,_utils.getClass)(ae,M),(0,_utils.getClass)(K,M)],key:A||re.useKey?d.id:c,attrs:C,style:Object.assign({height:g&&(x||L)?`${x||L}px`:F?`${N.height||x||L}px`:""},_xeUtils.default.isFunction(pe)?pe(M):pe,_xeUtils.default.isFunction(v)?v(M):v),on:H},f)}function renderRows(v,w,m,f,y,b){let{stripe:T,rowKey:S,highlightHoverRow:_,rowClassName:C,rowStyle:$,editConfig:O,showOverflow:L,treeConfig:R,treeOpts:E,expandOpts:I,editOpts:k,treeExpandedMaps:Y,scrollYLoad:H,rowExpandedMaps:M,radioOpts:D,checkboxOpts:B,expandColumn:U,hasFixedColumn:q,fullAllDataRowIdData:N,rowOpts:V,pendingRowList:A,pendingRowMaps:F}=m,W=E.children||E.childrenField,P=[];return y.forEach((t,r)=>{var e={};let o,s=m.getVTRowIndex(t),i=(o=m.getRowIndex(t),(V.isHover||_)&&(e.mouseenter=e=>{isVMScrollProcess(m)||m.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(m)||m.clearHoverRow()}),(0,_util.getRowid)(m,t));var l=N[i];let a=l?l.level:0,n=l?l.seq:-1;var d,c,p,l={$table:m,seq:n,rowid:i,fixed:f,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},u=U&&!!M[i];let h=!1,g=[],x=!1;O&&(x=m.isInsertByRow(t)),!R||H||E.transform||(g=t[W],h=g&&g.length&&!!Y[i]),P.push(v("tr",{class:["vxe-body--row",R?"row--level-"+a:"",{"row--stripe":T&&(m.getVTRowIndex(t)+1)%2==0,"is--new":x,"is--expand-row":u,"is--expand-tree":h,"row--new":x&&(k.showStatus||k.showInsertStatus),"row--radio":D.highlight&&m.selectRadioRow===t,"row--checked":B.highlight&&m.isCheckedByCheckboxRow(t),"row--pending":A.length&&!!F[i]},C?_xeUtils.default.isFunction(C)?C(l):C:""],attrs:{rowid:i},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:S||V.useKey||R?i:r,on:e},b.map((e,l)=>renderColumn(v,w,m,n,i,f,a,t,o,r,s,e,l,b,y)))),u&&({height:l,padding:u}=I,d={},c=(l&&(d.height=l+"px"),R&&(d.paddingLeft=a*E.indent+30+"px"),U).showOverflow,c=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?L:c,p={$table:m,seq:n,column:U,fixed:f,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},P.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":u}],key:"expand_"+i,style:$?_xeUtils.default.isFunction($)?$(p):$:null,on:e},[v("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":f&&!q,"col--ellipsis":c},attrs:{colspan:b.length}},[v("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:d},[U.renderData(v,p)])])]))),h&&P.push(...renderRows(v,w,m,f,g,b))}),P}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{wheelTime:null,wheelYSize:0,wheelYInterval:0,wheelYTotal:0}},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-body-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tbody,e[r+"xSpace"]=t.xSpace,e[r+"ySpace"]=t.ySpace,e[r+"emptyBlock"]=t.emptyBlock},beforeDestroy(){clearTimeout(this.wheelTime)},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-body-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"ySpace"]=null,e[l+"emptyBlock"]=null},render(t){let{_e:e,$parent:l,fixedColumn:r,fixedType:o}=this,{$scopedSlots:s,tId:i,tableData:a,tableColumn:n,visibleColumn:d,expandColumn:c,showOverflow:p,keyboardConfig:u,keyboardOpts:h,mergeList:g,spanMethod:x,scrollXLoad:v,scrollYLoad:w,isAllOverflow:m,emptyOpts:f,mouseConfig:y,mouseOpts:b,sYOpts:T}=l;o&&(n=c||!(v||w||p&&m)||g.length||x||u&&h.isMerge?d:r);let S;var _;return S=s.empty?s.empty.call(this,{$table:l},t):(_=(_=f.name?renderer.get(f.name):null)?_.renderTableEmpty||_.renderTableEmptyView||_.renderEmpty:null)?(0,_vn.getSlotVNs)(_.call(this,t,f,{$table:l})):l.emptyText||getI18n("vxe.table.emptyText"),t("div",{class:["vxe-table--body-wrapper",o?`fixed-${o}--wrapper`:"body--wrapper"],attrs:{xid:i},on:Object.assign({scroll:this.scrollEvent},w&&"wheel"===T.mode?{wheel:this.wheelEvent}:null)},[o?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("div",{class:"vxe-body--y-space",ref:"ySpace"}),t("table",{class:"vxe-table--body",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},n.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),t("tbody",{ref:"tbody"},renderRows(t,this,l,o,a,n))]),t("div",{class:"vxe-table--checkbox-range"}),y&&b.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},b.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellExtendMousedownEvent(e,{$table:l,fixed:o,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):null,o?null:t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])},methods:{scrollEvent(e){var{$el:l,$parent:t,fixedType:r}=this,{$refs:o,lastScrollTop:s,lastScrollLeft:i}=t,{tableHeader:a,tableBody:n,leftBody:d,rightBody:c,tableFooter:p}=o,a=a?a.$el:null,p=p?p.$el:null,n=n.$el,d=d?d.$el:null,c=c?c.$el:null,l=l.scrollTop,u=n.scrollLeft,i=u!==i,s=l!==s,h=o.refScrollXHandleElem,o=o.refScrollYHandleElem;o?o.scrollTop=l:s&&(t.lastScrollTop=l,t.lastScrollLeft=u,d&&"left"===r?((0,_dom.setScrollTop)(n,l),(0,_dom.setScrollTop)(c,l)):c&&"right"===r?((0,_dom.setScrollTop)(n,l),(0,_dom.setScrollTop)(d,l)):((0,_dom.setScrollTop)(d,l),(0,_dom.setScrollTop)(c,l)),t.handleScrollEvent(e,s,i,{type:renderType,fixed:r,scrollTop:l,scrollLeft:u})),h?h.scrollLeft=u:i&&(t.lastScrollTop=l,t.lastScrollLeft=u,(0,_dom.setScrollLeft)(a,u),(0,_dom.setScrollLeft)(p,u),t.handleScrollEvent(e,s,i,{type:renderType,fixed:r,scrollTop:l,scrollLeft:u}))},handleWheel(a,n,e,d,c){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:i}=l;let u=l.$el,h=s?s.$el:null,g=i?i.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],i=t["main-body-xSpace"];let x=(r&&s?s:u).clientHeight,v=(o&&i?i:u).clientWidth,w=(this.isPrevWheelTop=n,this.wheelYSize=Math.abs(n?e-l:e+l),this.wheelYInterval=0,this.wheelYTotal=0,clearTimeout(this.wheelTime),()=>{let{fixedType:e,wheelYTotal:l,wheelYSize:t,wheelYInterval:r}=this;var o,s,i;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:i,clientHeight:o,scrollHeight:s}=u,i=i+r*(n?-1:1),u.scrollTop=i,h&&(h.scrollTop=i),g&&(g.scrollTop=i),(n?i<s-o:0<=i)&&(this.wheelTime=setTimeout(w,10)),this.wheelYTotal=l,this.wheelYInterval=r,p.emitEvent("scroll",{type:renderType,fixed:e,scrollTop:u.scrollTop,scrollLeft:u.scrollLeft,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:x,bodyWidth:v,isX:d,isY:c},a))});w()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:i,scrollYLoad:a,lastScrollTop:n,lastScrollLeft:d,rowOpts:c}=o,s=s.tableBody,s=s.$el,p=l<0;(p?r.scrollTop<=0:r.scrollTop>=r.scrollHeight-r.clientHeight)||(r=r.scrollTop+l,t=(s=s.scrollLeft+t)!==d,(d=r!==n)&&(e.preventDefault(),o.lastScrollTop=r,o.lastScrollLeft=s,o.lastScrollTime=Date.now(),(c.isHover||i)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,d),a)&&o.triggerScrollYEvent(e))}}};
@@ -9,7 +9,7 @@ var _ui = require("../../ui");
9
9
  var _utils = require("../../ui/src/utils");
10
10
  var _dom = require("../../ui/src/dom");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- const cellType = 'footer';
12
+ const renderType = 'footer';
13
13
  const {
14
14
  renderer
15
15
  } = _ui.VxeUI;
@@ -173,7 +173,7 @@ var _default = exports.default = {
173
173
  _rowIndex,
174
174
  $rowIndex,
175
175
  fixed: fixedType,
176
- type: cellType
176
+ type: renderType
177
177
  };
178
178
  return h('tr', {
179
179
  class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
@@ -219,7 +219,7 @@ var _default = exports.default = {
219
219
  itemIndex,
220
220
  items: list,
221
221
  fixed: fixedType,
222
- type: cellType,
222
+ type: renderType,
223
223
  data: footerTableData
224
224
  };
225
225
  // 虚拟滚动不支持动态高度
@@ -323,48 +323,39 @@ var _default = exports.default = {
323
323
  */
324
324
  scrollEvent(evnt) {
325
325
  const {
326
- $parent: $xetable,
326
+ $parent: $xeTable,
327
327
  fixedType
328
328
  } = this;
329
329
  const {
330
- $refs,
331
- scrollXLoad,
332
- triggerScrollXEvent,
333
- lastScrollLeft
334
- } = $xetable;
330
+ $refs
331
+ } = $xeTable;
335
332
  const {
336
333
  tableHeader,
337
334
  tableBody,
338
- tableFooter,
339
- validTip
335
+ tableFooter
340
336
  } = $refs;
341
337
  const headerElem = tableHeader ? tableHeader.$el : null;
342
338
  const footerElem = tableFooter ? tableFooter.$el : null;
343
339
  const bodyElem = tableBody.$el;
344
340
  const scrollLeft = footerElem ? footerElem.scrollLeft : 0;
345
- const isX = scrollLeft !== lastScrollLeft;
346
- $xetable.lastScrollLeft = scrollLeft;
347
- $xetable.lastScrollTime = Date.now();
348
- if (headerElem) {
349
- headerElem.scrollLeft = scrollLeft;
350
- }
351
- if (bodyElem) {
352
- bodyElem.scrollLeft = scrollLeft;
353
- }
354
- if (scrollXLoad && isX) {
355
- triggerScrollXEvent(evnt);
356
- }
357
- if (isX && validTip && validTip.visible) {
358
- validTip.updatePlacement();
341
+ const xHandleEl = $refs.refScrollXHandleElem;
342
+ if (xHandleEl) {
343
+ xHandleEl.scrollLeft = scrollLeft;
344
+ } else {
345
+ const isRollX = true;
346
+ const isRollY = false;
347
+ const scrollTop = bodyElem.scrollTop;
348
+ $xeTable.lastScrollLeft = scrollLeft;
349
+ $xeTable.lastScrollTime = Date.now();
350
+ (0, _dom.setScrollLeft)(headerElem, scrollLeft);
351
+ (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
352
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
353
+ type: renderType,
354
+ fixed: fixedType,
355
+ scrollTop,
356
+ scrollLeft
357
+ });
359
358
  }
360
- $xetable.emitEvent('scroll', {
361
- type: cellType,
362
- fixed: fixedType,
363
- scrollTop: bodyElem.scrollTop,
364
- scrollLeft,
365
- isX,
366
- isY: false
367
- }, evnt);
368
359
  }
369
360
  }
370
361
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let cellType="footer",renderer=_ui.VxeUI.renderer;function mergeFooterMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:a,rowspan:n,colspan:i}=l[e];if(-1<a&&-1<o&&n&&i){if(o===t&&a===r)return{rowspan:n,colspan:i};if(o<=t&&t<o+n&&a<=r&&r<a+i)return{rowspan:0,colspan:0}}}}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-footer-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tfoot,e[r+"xSpace"]=t.xSpace},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-footer-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null},render(y){let{_e:e,$parent:_,fixedType:T,fixedColumn:l,tableColumn:h,footerTableData:$}=this,{$listeners:C,tId:t,footerRowClassName:r,footerCellClassName:S,footerRowStyle:o,footerCellStyle:F,footerAlign:I,mergeFooterList:L,footerSpanMethod:k,align:A,scrollXLoad:E,columnKey:U,columnOpts:O,showFooterOverflow:q,currentColumn:R,overflowX:D,scrollbarWidth:a,tooltipOpts:M,visibleColumn:n,expandColumn:i}=_;return T&&(h=i||!E&&!q||L.length&&k?n:l),y("div",{class:["vxe-table--footer-wrapper",T?`fixed-${T}--wrapper`:"body--wrapper"],attrs:{xid:t},on:{scroll:this.scrollEvent}},[T?e():y("div",{class:"vxe-body--x-space",ref:"xSpace"}),y("table",{class:"vxe-table--footer",attrs:{xid:t,cellspacing:0,cellpadding:0,border:0},ref:"table"},[y("colgroup",{ref:"colgroup"},h.map((e,l)=>y("col",{attrs:{name:e.id},key:l})).concat(a?[y("col",{attrs:{name:"col_gutter"}})]:[])),y("tfoot",{ref:"tfoot"},$.map((v,b)=>{let w=b;var e={$table:_,row:v,_rowIndex:b,$rowIndex:w,fixed:T,type:cellType};return y("tr",{class:["vxe-footer--row",r?_xeUtils.default.isFunction(r)?r(e):r:""],style:o?_xeUtils.default.isFunction(o)?o(e):o:null},h.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:a,footerClassName:n,editRender:i,cellRender:s}=l,i=i||s,s=i?renderer.get(i.name):null;let c=M.showAll||M.enabled;i=l.children&&l.children.length,i=T?l.fixed!==T&&!i:l.fixed&&D,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?q:r,o=o||(s?s.tableFooterCellAlign:"")||I||a||(s?s.tableCellAlign:"")||A;let d="ellipsis"===r,u="title"===r,p=!0===r||"tooltip"===r,f=u||p||d;var a={colid:l.id},s={},r=_.getColumnIndex(l),x=_.getVTColumnIndex(l),m=x;let g={$table:_,$grid:_.xegrid,row:v,_rowIndex:b,$rowIndex:w,column:l,columnIndex:r,$columnIndex:e,_columnIndex:x,itemIndex:m,items:v,fixed:T,type:cellType,data:$};if(E&&!f&&(d=f=!0),(u||p||c)&&(s.mouseenter=e=>{u?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||c)&&_.triggerFooterTooltipEvent(e,g)}),(p||c)&&(s.mouseleave=e=>{(p||c)&&_.handleTargetLeaveEvent(e)}),C["footer-cell-click"]&&(s.click=e=>{_.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)}),C["footer-cell-dblclick"]&&(s.dblclick=e=>{_.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)}),L.length){r=mergeFooterMethod(L,b,x);if(r){var{rowspan:m,colspan:x}=r;if(!m||!x)return null;1<m&&(a.rowspan=m),1<x&&(a.colspan=x)}}else if(k){var{rowspan:r=1,colspan:m=1}=k(g)||{};if(!r||!m)return null;1<r&&(a.rowspan=r),1<m&&(a.colspan=m)}return y("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":e===h.length-1,"fixed--hidden":i,"col--ellipsis":f,"col--current":R===l},(0,_utils.getClass)(n,g),(0,_utils.getClass)(S,g)],attrs:a,style:F?_xeUtils.default.isFunction(F)?F(g):F:null,on:s,key:U||O.useKey?l.id:e},[y("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":p,"c--ellipsis":d}]},l.renderFooter(y,g))])}).concat(a?[y("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])},methods:{scrollEvent(e){var{$parent:l,fixedType:t}=this,{$refs:r,scrollXLoad:o,triggerScrollXEvent:a,lastScrollLeft:n}=l,{tableHeader:r,tableBody:i,tableFooter:s,validTip:c}=r,r=r?r.$el:null,s=s?s.$el:null,i=i.$el,s=s?s.scrollLeft:0,n=s!==n;l.lastScrollLeft=s,l.lastScrollTime=Date.now(),r&&(r.scrollLeft=s),i&&(i.scrollLeft=s),o&&n&&a(e),n&&c&&c.visible&&c.updatePlacement(),l.emitEvent("scroll",{type:cellType,fixed:t,scrollTop:i.scrollTop,scrollLeft:s,isX:n,isY:!1},e)}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",renderer=_ui.VxeUI.renderer;function mergeFooterMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<o&&a&&i){if(o===t&&n===r)return{rowspan:a,colspan:i};if(o<=t&&t<o+a&&n<=r&&r<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-footer-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tfoot,e[r+"xSpace"]=t.xSpace},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-footer-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null},render(y){let{_e:e,$parent:_,fixedType:h,fixedColumn:l,tableColumn:T,footerTableData:$}=this,{$listeners:C,tId:t,footerRowClassName:r,footerCellClassName:S,footerRowStyle:o,footerCellStyle:F,footerAlign:I,mergeFooterList:L,footerSpanMethod:k,align:A,scrollXLoad:E,columnKey:U,columnOpts:O,showFooterOverflow:q,currentColumn:R,overflowX:D,scrollbarWidth:n,tooltipOpts:M,visibleColumn:a,expandColumn:i}=_;return h&&(T=i||!E&&!q||L.length&&k?a:l),y("div",{class:["vxe-table--footer-wrapper",h?`fixed-${h}--wrapper`:"body--wrapper"],attrs:{xid:t},on:{scroll:this.scrollEvent}},[h?e():y("div",{class:"vxe-body--x-space",ref:"xSpace"}),y("table",{class:"vxe-table--footer",attrs:{xid:t,cellspacing:0,cellpadding:0,border:0},ref:"table"},[y("colgroup",{ref:"colgroup"},T.map((e,l)=>y("col",{attrs:{name:e.id},key:l})).concat(n?[y("col",{attrs:{name:"col_gutter"}})]:[])),y("tfoot",{ref:"tfoot"},$.map((v,b)=>{let w=b;var e={$table:_,row:v,_rowIndex:b,$rowIndex:w,fixed:h,type:renderType};return y("tr",{class:["vxe-footer--row",r?_xeUtils.default.isFunction(r)?r(e):r:""],style:o?_xeUtils.default.isFunction(o)?o(e):o:null},T.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:n,footerClassName:a,editRender:i,cellRender:s}=l,i=i||s,s=i?renderer.get(i.name):null;let c=M.showAll||M.enabled;i=l.children&&l.children.length,i=h?l.fixed!==h&&!i:l.fixed&&D,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?q:r,o=o||(s?s.tableFooterCellAlign:"")||I||n||(s?s.tableCellAlign:"")||A;let d="ellipsis"===r,u="title"===r,f=!0===r||"tooltip"===r,p=u||f||d;var n={colid:l.id},s={},r=_.getColumnIndex(l),x=_.getVTColumnIndex(l),m=x;let g={$table:_,$grid:_.xegrid,row:v,_rowIndex:b,$rowIndex:w,column:l,columnIndex:r,$columnIndex:e,_columnIndex:x,itemIndex:m,items:v,fixed:h,type:renderType,data:$};if(E&&!p&&(d=p=!0),(u||f||c)&&(s.mouseenter=e=>{u?(0,_dom.updateCellTitle)(e.currentTarget,l):(f||c)&&_.triggerFooterTooltipEvent(e,g)}),(f||c)&&(s.mouseleave=e=>{(f||c)&&_.handleTargetLeaveEvent(e)}),C["footer-cell-click"]&&(s.click=e=>{_.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)}),C["footer-cell-dblclick"]&&(s.dblclick=e=>{_.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)}),L.length){r=mergeFooterMethod(L,b,x);if(r){var{rowspan:m,colspan:x}=r;if(!m||!x)return null;1<m&&(n.rowspan=m),1<x&&(n.colspan=x)}}else if(k){var{rowspan:r=1,colspan:m=1}=k(g)||{};if(!r||!m)return null;1<r&&(n.rowspan=r),1<m&&(n.colspan=m)}return y("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":e===T.length-1,"fixed--hidden":i,"col--ellipsis":p,"col--current":R===l},(0,_utils.getClass)(a,g),(0,_utils.getClass)(S,g)],attrs:n,style:F?_xeUtils.default.isFunction(F)?F(g):F:null,on:s,key:U||O.useKey?l.id:e},[y("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":f,"c--ellipsis":d}]},l.renderFooter(y,g))])}).concat(n?[y("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])},methods:{scrollEvent(e){var{$parent:l,fixedType:t}=this,r=l.$refs,{tableHeader:o,tableBody:n,tableFooter:a}=r,o=o?o.$el:null,a=a?a.$el:null,n=n.$el,a=a?a.scrollLeft:0,r=r.refScrollXHandleElem;r?r.scrollLeft=a:(r=n.scrollTop,l.lastScrollLeft=a,l.lastScrollTime=Date.now(),(0,_dom.setScrollLeft)(o,a),(0,_dom.setScrollLeft)(n,a),l.handleScrollEvent(e,!1,!0,{type:renderType,fixed:t,scrollTop:r,scrollLeft:a}))}}};