vxe-table 3.11.31 → 3.11.33

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 (65) 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/custom/panel.js +7 -6
  6. package/es/table/module/keyboard/mixin.js +1 -26
  7. package/es/table/src/body.js +21 -5
  8. package/es/table/src/cell.js +23 -19
  9. package/es/table/src/footer.js +4 -2
  10. package/es/table/src/header.js +40 -28
  11. package/es/table/src/methods.js +77 -4
  12. package/es/table/src/table.js +3 -1
  13. package/es/table/style.css +36 -0
  14. package/es/table/style.min.css +1 -1
  15. package/es/ui/index.js +5 -3
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +36 -0
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/index.css +1 -1
  20. package/lib/index.min.css +1 -1
  21. package/lib/index.umd.js +200 -111
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/table/module/custom/panel.js +7 -14
  26. package/lib/table/module/custom/panel.min.js +1 -1
  27. package/lib/table/module/keyboard/mixin.js +0 -32
  28. package/lib/table/module/keyboard/mixin.min.js +1 -1
  29. package/lib/table/src/body.js +21 -5
  30. package/lib/table/src/body.min.js +1 -1
  31. package/lib/table/src/cell.js +23 -17
  32. package/lib/table/src/cell.min.js +1 -1
  33. package/lib/table/src/footer.js +4 -2
  34. package/lib/table/src/footer.min.js +1 -1
  35. package/lib/table/src/header.js +42 -34
  36. package/lib/table/src/header.min.js +1 -1
  37. package/lib/table/src/methods.js +94 -2
  38. package/lib/table/src/methods.min.js +1 -1
  39. package/lib/table/src/table.js +3 -1
  40. package/lib/table/src/table.min.js +1 -1
  41. package/lib/table/style/style.css +36 -0
  42. package/lib/table/style/style.min.css +1 -1
  43. package/lib/ui/index.js +5 -3
  44. package/lib/ui/index.min.js +1 -1
  45. package/lib/ui/src/log.js +1 -1
  46. package/lib/ui/src/log.min.js +1 -1
  47. package/lib/vxe-table/style/style.css +36 -0
  48. package/lib/vxe-table/style/style.min.css +1 -1
  49. package/package.json +2 -2
  50. package/packages/table/module/custom/panel.ts +9 -6
  51. package/packages/table/module/keyboard/mixin.ts +1 -26
  52. package/packages/table/src/body.ts +21 -5
  53. package/packages/table/src/cell.ts +23 -19
  54. package/packages/table/src/footer.ts +6 -2
  55. package/packages/table/src/header.ts +43 -28
  56. package/packages/table/src/methods.ts +79 -4
  57. package/packages/table/src/table.ts +3 -1
  58. package/packages/ui/index.ts +4 -2
  59. package/styles/components/table.scss +36 -0
  60. /package/es/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
  61. /package/es/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
  62. /package/es/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
  63. /package/lib/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
  64. /package/lib/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
  65. /package/lib/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
@@ -15,12 +15,12 @@ const {
15
15
  } = _ui.VxeUI;
16
16
  const cellType = 'header';
17
17
  const renderRows = (h, _vm, cols, $rowIndex) => {
18
+ const $xeTable = _vm.$parent;
19
+ const $xeGrid = $xeTable.xegrid;
18
20
  const {
19
- $parent: $xetable,
20
21
  fixedType
21
22
  } = _vm;
22
23
  const {
23
- $listeners: tableListeners,
24
24
  resizable: allResizable,
25
25
  border,
26
26
  columnKey,
@@ -29,15 +29,17 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
29
29
  showHeaderOverflow: allColumnHeaderOverflow,
30
30
  headerAlign: allHeaderAlign,
31
31
  align: allAlign,
32
- highlightCurrentColumn,
33
32
  currentColumn,
34
33
  scrollXLoad,
35
34
  overflowX,
36
35
  scrollbarWidth,
37
- sortOpts,
38
36
  mouseConfig,
39
37
  columnOpts
40
- } = $xetable;
38
+ } = $xeTable;
39
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
40
+ const {
41
+ disabledMethod: dragDisabledMethod
42
+ } = columnDragOpts;
41
43
  return cols.map((column, $columnIndex) => {
42
44
  const {
43
45
  type,
@@ -60,13 +62,12 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
60
62
  const showTitle = headOverflow === 'title';
61
63
  const showTooltip = headOverflow === true || headOverflow === 'tooltip';
62
64
  let hasEllipsis = showTitle || showTooltip || showEllipsis;
63
- const thOns = {};
64
65
  const hasFilter = column.filters && column.filters.some(item => item.checked);
65
- const columnIndex = $xetable.getColumnIndex(column);
66
- const _columnIndex = $xetable.getVTColumnIndex(column);
66
+ const columnIndex = $xeTable.getColumnIndex(column);
67
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
67
68
  const params = {
68
- $table: $xetable,
69
- $grid: $xetable.xegrid,
69
+ $table: $xeTable,
70
+ $grid: $xeGrid,
70
71
  $rowIndex,
71
72
  column,
72
73
  columnIndex,
@@ -77,25 +78,36 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
77
78
  isHidden: fixedHiddenColumn,
78
79
  hasFilter
79
80
  };
81
+ const thAttrs = {
82
+ colid,
83
+ colspan: column.colSpan > 1 ? column.colSpan : null,
84
+ rowspan: column.rowSpan > 1 ? column.rowSpan : null
85
+ };
86
+ const thOns = {
87
+ click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
88
+ dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
89
+ };
80
90
  // 虚拟滚动不支持动态高度
81
91
  if (scrollXLoad && !hasEllipsis) {
82
92
  showEllipsis = hasEllipsis = true;
83
93
  }
84
- if (columnOpts.isCurrent || highlightCurrentColumn || tableListeners['header-cell-click'] || sortOpts.trigger === 'cell') {
85
- thOns.click = evnt => $xetable.triggerHeaderCellClickEvent(evnt, params);
86
- }
87
- if (tableListeners['header-cell-dblclick']) {
88
- thOns.dblclick = evnt => $xetable.triggerHeaderCellDblclickEvent(evnt, params);
94
+ const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
95
+ let isDisabledDrag = false;
96
+ if (isColDragCell) {
97
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
89
98
  }
90
99
  // 按下事件处理
91
- if (mouseConfig) {
92
- thOns.mousedown = evnt => $xetable.triggerHeaderCellMousedownEvent(evnt, params);
100
+ if (mouseConfig || isColDragCell) {
101
+ thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
93
102
  }
94
- // 拖拽行事件
103
+ // 拖拽列事件
95
104
  if (columnOpts.drag) {
96
- thOns.dragstart = $xetable.handleHeaderCellDragDragstartEvent;
97
- thOns.dragend = $xetable.handleHeaderCellDragDragendEvent;
98
- thOns.dragover = $xetable.handleHeaderCellDragDragoverEvent;
105
+ thOns.dragstart = $xeTable.handleHeaderCellDragDragstartEvent;
106
+ thOns.dragend = $xeTable.handleHeaderCellDragDragendEvent;
107
+ thOns.dragover = $xeTable.handleHeaderCellDragDragoverEvent;
108
+ if (isColDragCell) {
109
+ thOns.mouseup = $xeTable.handleHeaderCellDragMouseupEvent;
110
+ }
99
111
  }
100
112
  return h('th', {
101
113
  class: ['vxe-header--column', colid, {
@@ -109,13 +121,10 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
109
121
  'is--sortable': column.sortable,
110
122
  'col--filter': !!column.filters,
111
123
  'is--filter-active': hasFilter,
124
+ 'is--drag-disabled': isDisabledDrag,
112
125
  'col--current': currentColumn === column
113
126
  }, (0, _utils.getClass)(headerClassName, params), (0, _utils.getClass)(headerCellClassName, params)],
114
- attrs: {
115
- colid,
116
- colspan: column.colSpan > 1 ? column.colSpan : null,
117
- rowspan: column.rowSpan > 1 ? column.rowSpan : null
118
- },
127
+ attrs: thAttrs,
119
128
  style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null,
120
129
  on: thOns,
121
130
  key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
@@ -143,29 +152,28 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
143
152
  })] : []);
144
153
  };
145
154
  function renderHeads(h, _vm, headerGroups) {
146
- const {
147
- $parent: $xetable
148
- } = _vm;
149
- const tableProps = $xetable;
155
+ const $xeTable = _vm.$parent;
156
+ const tableProps = $xeTable;
150
157
  const {
151
158
  fixedType
152
159
  } = _vm;
160
+ const columnOpts = $xeTable.computeColumnOpts;
161
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
153
162
  const {
154
163
  headerRowClassName,
155
164
  headerRowStyle
156
165
  } = tableProps;
157
166
  const {
158
167
  isDragColMove
159
- } = $xetable;
160
- const columnOpts = $xetable.columnOpts;
168
+ } = $xeTable;
161
169
  return headerGroups.map((cols, $rowIndex) => {
162
170
  const params = {
163
- $table: $xetable,
171
+ $table: $xeTable,
164
172
  $rowIndex,
165
173
  fixed: fixedType,
166
174
  type: cellType
167
175
  };
168
- if (columnOpts.drag) {
176
+ if (columnOpts.drag && columnDragOpts.animation) {
169
177
  return h('transition-group', {
170
178
  props: {
171
179
  tag: 'tr',
@@ -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"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderer=_ui.VxeUI.renderer,cellType="header",renderRows=(x,v,C,b)=>{let{$parent:y,fixedType:_}=v,{$listeners:w,resizable:$,border:z,columnKey:W,headerCellClassName:H,headerCellStyle:R,showHeaderOverflow:S,headerAlign:T,align:M,highlightCurrentColumn:D,currentColumn:k,scrollXLoad:O,overflowX:U,scrollbarWidth:e,sortOpts:E,mouseConfig:A,columnOpts:I}=y;return C.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:i,align:a,headerClassName:n,editRender:o,cellRender:s}=e,d=e.id,o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,u=_?e.fixed!==_&&!o:e.fixed&&U,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?S:r,i=i||(s?s.tableHeaderCellAlign:"")||T||a||(s?s.tableCellAlign:"")||M;let c="ellipsis"===r;a="title"===r,s=!0===r||"tooltip"===r;let p=a||s||c;var r={},h=e.filters&&e.filters.some(e=>e.checked),m=y.getColumnIndex(e),f=y.getVTColumnIndex(e);let g={$table:y,$grid:y.xegrid,$rowIndex:b,column:e,columnIndex:m,$columnIndex:l,_columnIndex:f,fixed:_,type:cellType,isHidden:u,hasFilter:h};return O&&!p&&(c=p=!0),(I.isCurrent||D||w["header-cell-click"]||"cell"===E.trigger)&&(r.click=e=>y.triggerHeaderCellClickEvent(e,g)),w["header-cell-dblclick"]&&(r.dblclick=e=>y.triggerHeaderCellDblclickEvent(e,g)),A&&(r.mousedown=e=>y.triggerHeaderCellMousedownEvent(e,g)),I.drag&&(r.dragstart=y.handleHeaderCellDragDragstartEvent,r.dragend=y.handleHeaderCellDragDragendEvent,r.dragover=y.handleHeaderCellDragDragoverEvent),x("th",{class:["vxe-header--column",d,{["col--"+i]:i,["col--"+t]:t,"col--last":l===C.length-1,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":p,"fixed--hidden":u,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":h,"col--current":k===e},(0,_utils.getClass)(n,g),(0,_utils.getClass)(H,g)],attrs:{colid:d,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},style:R?_xeUtils.default.isFunction(R)?R(g):R:null,on:r,key:W||I.useKey||I.drag||o?d:l},[x("div",{class:["vxe-cell",{"c--title":a,"c--tooltip":s,"c--ellipsis":c}]},e.renderHeader(x,g)),u||o||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:I.resizable||$)?null:x("div",{class:["vxe-resizable",{"is--line":!z||"none"===z}],on:{mousedown:e=>v.resizeMousedown(e,g)}})])}).concat(e?[x("th",{key:"gr"+b,class:"vxe-header--gutter col--gutter"})]:[])};function renderHeads(r,i,e){let a=i.$parent;var l=a;let n=i.fixedType,{headerRowClassName:o,headerRowStyle:s}=l,d=a.isDragColMove,u=a.columnOpts;return e.map((e,l)=>{var t={$table:a,$rowIndex:l,fixed:n,type:cellType};return u.drag?r("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(d?"":"-disabled"),class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(t):o:""],style:s?_xeUtils.default.isFunction(s)?s(t):s:null}},renderRows(r,i,e,l)):r("tr",{class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(t):o:""],style:s?_xeUtils.default.isFunction(s)?s(t):s:null},renderRows(r,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-header-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.thead,e[r+"xSpace"]=t.xSpace,e[r+"repair"]=t.repair},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-header-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"repair"]=null},render(t){var{_e:e,$parent:l,fixedType:r,headerColumn:i,tableColumn:a,fixedColumn:n}=this,{tId:l,isGroup:o,visibleColumn:s,showHeaderOverflow:d,scrollXLoad:u,scrollbarWidth:c}=l;let p=i,h=a;return o?h=s:(r&&(u||d)&&(h=n),p=[h]),t("div",{class:["vxe-table--header-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],attrs:{xid:l}},[r?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("table",{class:"vxe-table--header",attrs:{xid:l,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},h.map((e,l)=>t("col",{attrs:{name:e.id},key:l})).concat(c?[t("col",{attrs:{name:"col_gutter"}})]:[])),t("thead",{ref:"thead"},renderHeads(t,this,p))]),t("div",{class:"vxe-table--header-border-line",ref:"repair"})])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]},resizeMousedown(e,t){var l=this.$parent;let s=t.column,{$parent:r,fixedType:d}=this,i=l.visibleColumn,{tableBody:a,leftContainer:u,rightContainer:c}=r.$refs,p=l.$el,h=r.$refs.resizeBar,m=r.$refs.refCellResizeTip,f=this.$el,{target:n,clientX:g}=e,x=t.cell=n.parentNode,v=l.computeResizableOpts,C=0,b=a.$el;var l=(0,_dom.getOffsetPos)(n,p),o=n.clientWidth,y=Math.floor(o/2);let _=(0,_util.getColReMinWidth)(t)-y,w=l.left-x.clientWidth+o+_,$=l.left+y,z=document.onmousemove,W=document.onmouseup,H="left"===d,R="right"===d,S=0;if(H||R){var T=H?"nextElementSibling":"previousElementSibling";let e=x[T];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(S+=e.offsetWidth),e=e[T];R&&c&&($=c.offsetLeft+S)}function M(l){l.stopPropagation(),l.preventDefault();var t=l.clientX-g;let e=$+t;if(t=d?0:b.scrollLeft,H?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-S-_):R?(w=(u?u.clientWidth:0)+S+_,e=Math.min(e,$+x.clientWidth-_)):w=Math.max(b.scrollLeft,w),t=(C=Math.max(e,w))-t,h.style.left=t+"px",v.showDragTip&&m){var r=p.clientWidth,i=f.getBoundingClientRect(),a=h.clientWidth,n=m.clientWidth,o=m.clientHeight;let e=-n;t<n+a?e=n+a-t:r<t&&(e+=r-t),m.style.left=e+"px",m.style.top=Math.min(p.clientHeight-o,Math.max(0,l.clientY-i.y-o/2))+"px",m.textContent=s.renderWidth+(R?$-C:C-$)+"px"}}r._isResize=!0,(0,_dom.addClass)(r.$el,"drag--resize"),h.style.display="block",document.onmousemove=M,document.onmouseup=function(e){document.onmousemove=z,document.onmouseup=W;let l=s.renderWidth+(R?$-C:C-$);s.resizeWidth=l,"fixed"===v.dragMode&&i.forEach(e=>{e.id===s.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),h.style.display="none",r._isResize=!1,r._lastResizeTime=Date.now(),r.analyColumnWidth(),r.recalculate(!0).then(()=>{r.saveCustomStore("update:visible"),r.updateCellAreas(),r.emitEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>r.recalculate(!0),300)}),(0,_dom.removeClass)(r.$el,"drag--resize")},M(e),r.closeMenu()}}};
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"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderer=_ui.VxeUI.renderer,cellType="header",renderRows=(v,C,b,y)=>{let _=C.$parent,w=_.xegrid,$=C.fixedType,{resizable:z,border:W,columnKey:H,headerCellClassName:M,headerCellStyle:D,showHeaderOverflow:R,headerAlign:S,align:T,currentColumn:O,scrollXLoad:E,overflowX:U,scrollbarWidth:e,mouseConfig:k,columnOpts:A}=_,I=_.computeColumnDragOpts,q=I.disabledMethod;return b.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:i,headerClassName:o,editRender:n,cellRender:s}=e,d=e.id,n=n||s,s=n?renderer.get(n.name):null,n=e.children&&e.children.length,u=$?e.fixed!==$&&!n:e.fixed&&U,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?R:r,a=a||(s?s.tableHeaderCellAlign:"")||S||i||(s?s.tableCellAlign:"")||T;let c="ellipsis"===r;i="title"===r,s=!0===r||"tooltip"===r;let p=i||s||c;var r=e.filters&&e.filters.some(e=>e.checked),h=_.getColumnIndex(e),m=_.getVTColumnIndex(e);let f={$table:_,$grid:w,$rowIndex:y,column:e,columnIndex:h,$columnIndex:l,_columnIndex:m,fixed:$,type:cellType,isHidden:u,hasFilter:r};var h={colid:d,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},m={click:e=>_.triggerHeaderCellClickEvent(e,f),dblclick:e=>_.triggerHeaderCellDblclickEvent(e,f)},g=(E&&!p&&(c=p=!0),A.drag&&"cell"===I.trigger);let x=!1;return g&&(x=!(!q||!q(f))),(k||g)&&(m.mousedown=e=>_.triggerHeaderCellMousedownEvent(e,f)),A.drag&&(m.dragstart=_.handleHeaderCellDragDragstartEvent,m.dragend=_.handleHeaderCellDragDragendEvent,m.dragover=_.handleHeaderCellDragDragoverEvent,g)&&(m.mouseup=_.handleHeaderCellDragMouseupEvent),v("th",{class:["vxe-header--column",d,{["col--"+a]:a,["col--"+t]:t,"col--last":l===b.length-1,"col--fixed":e.fixed,"col--group":n,"col--ellipsis":p,"fixed--hidden":u,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":r,"is--drag-disabled":x,"col--current":O===e},(0,_utils.getClass)(o,f),(0,_utils.getClass)(M,f)],attrs:h,style:D?_xeUtils.default.isFunction(D)?D(f):D:null,on:m,key:H||A.useKey||A.drag||n?d:l},[v("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":c}]},e.renderHeader(v,f)),u||n||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:A.resizable||z)?null:v("div",{class:["vxe-resizable",{"is--line":!W||"none"===W}],on:{mousedown:e=>C.resizeMousedown(e,f)}})])}).concat(e?[v("th",{key:"gr"+y,class:"vxe-header--gutter col--gutter"})]:[])};function renderHeads(r,a,e){let i=a.$parent;var l=i;let o=a.fixedType,n=i.computeColumnOpts,s=i.computeColumnDragOpts,{headerRowClassName:d,headerRowStyle:u}=l,c=i.isDragColMove;return e.map((e,l)=>{var t={$table:i,$rowIndex:l,fixed:o,type:cellType};return n.drag&&s.animation?r("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(c?"":"-disabled"),class:["vxe-header--row",d?_xeUtils.default.isFunction(d)?d(t):d:""],style:u?_xeUtils.default.isFunction(u)?u(t):u:null}},renderRows(r,a,e,l)):r("tr",{class:["vxe-header--row",d?_xeUtils.default.isFunction(d)?d(t):d:""],style:u?_xeUtils.default.isFunction(u)?u(t):u:null},renderRows(r,a,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-header-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.thead,e[r+"xSpace"]=t.xSpace,e[r+"repair"]=t.repair},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-header-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"repair"]=null},render(t){var{_e:e,$parent:l,fixedType:r,headerColumn:a,tableColumn:i,fixedColumn:o}=this,{tId:l,isGroup:n,visibleColumn:s,showHeaderOverflow:d,scrollXLoad:u,scrollbarWidth:c}=l;let p=a,h=i;return n?h=s:(r&&(u||d)&&(h=o),p=[h]),t("div",{class:["vxe-table--header-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],attrs:{xid:l}},[r?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("table",{class:"vxe-table--header",attrs:{xid:l,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},h.map((e,l)=>t("col",{attrs:{name:e.id},key:l})).concat(c?[t("col",{attrs:{name:"col_gutter"}})]:[])),t("thead",{ref:"thead"},renderHeads(t,this,p))]),t("div",{class:"vxe-table--header-border-line",ref:"repair"})])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]},resizeMousedown(e,t){var l=this.$parent;let s=t.column,{$parent:r,fixedType:d}=this,a=l.visibleColumn,{tableBody:i,leftContainer:u,rightContainer:c}=r.$refs,p=l.$el,h=r.$refs.resizeBar,m=r.$refs.refCellResizeTip,f=this.$el,{target:o,clientX:g}=e,x=t.cell=o.parentNode,v=l.computeResizableOpts,C=0,b=i.$el;var l=(0,_dom.getOffsetPos)(o,p),n=o.clientWidth,y=Math.floor(n/2);let _=(0,_util.getColReMinWidth)(t)-y,w=l.left-x.clientWidth+n+_,$=l.left+y,z=document.onmousemove,W=document.onmouseup,H="left"===d,M="right"===d,D=0;if(H||M){var R=H?"nextElementSibling":"previousElementSibling";let e=x[R];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(D+=e.offsetWidth),e=e[R];M&&c&&($=c.offsetLeft+D)}function S(l){l.stopPropagation(),l.preventDefault();var t=l.clientX-g;let e=$+t;if(t=d?0:b.scrollLeft,H?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-D-_):M?(w=(u?u.clientWidth:0)+D+_,e=Math.min(e,$+x.clientWidth-_)):w=Math.max(b.scrollLeft,w),t=(C=Math.max(e,w))-t,h.style.left=t+"px",v.showDragTip&&m){var r=p.clientWidth,a=f.getBoundingClientRect(),i=h.clientWidth,o=m.clientWidth,n=m.clientHeight;let e=-o;t<o+i?e=o+i-t:r<t&&(e+=r-t),m.style.left=e+"px",m.style.top=Math.min(p.clientHeight-n,Math.max(0,l.clientY-a.y-n/2))+"px",m.textContent=s.renderWidth+(M?$-C:C-$)+"px"}}r._isResize=!0,(0,_dom.addClass)(r.$el,"drag--resize"),h.style.display="block",document.onmousemove=S,document.onmouseup=function(e){document.onmousemove=z,document.onmouseup=W;let l=s.renderWidth+(M?$-C:C-$);s.resizeWidth=l,"fixed"===v.dragMode&&a.forEach(e=>{e.id===s.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),h.style.display="none",r._isResize=!1,r._lastResizeTime=Date.now(),r.analyColumnWidth(),r.recalculate(!0).then(()=>{r.saveCustomStore("update:visible"),r.updateCellAreas(),r.emitEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>r.recalculate(!0),300)}),(0,_dom.removeClass)(r.$el,"drag--resize")},S(e),r.closeMenu()}}};
@@ -6074,6 +6074,94 @@ const Methods = {
6074
6074
  $xeTable.handleColumnSortEvent(evnt, column);
6075
6075
  }
6076
6076
  },
6077
+ /**
6078
+ * 表头单元格按下事件
6079
+ */
6080
+ triggerHeaderCellMousedownEvent(evnt, params) {
6081
+ const $xeTable = this;
6082
+ const props = $xeTable;
6083
+ const {
6084
+ mouseConfig
6085
+ } = props;
6086
+ const mouseOpts = $xeTable.computeMouseOpts;
6087
+ const columnOpts = $xeTable.computeColumnOpts;
6088
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
6089
+ const {
6090
+ trigger,
6091
+ disabledMethod
6092
+ } = columnDragOpts;
6093
+ const cell = evnt.currentTarget;
6094
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
6095
+ const triggerCheckbox = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--checkbox').flag;
6096
+ const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
6097
+ const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
6098
+ let triggerDrag = false;
6099
+ if (!(triggerInput || triggerCheckbox || triggerSort || triggerFilter)) {
6100
+ if (columnOpts.drag && trigger === 'cell' && !(disabledMethod && disabledMethod(params))) {
6101
+ triggerDrag = true;
6102
+ $xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
6103
+ }
6104
+ }
6105
+ if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
6106
+ $xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({
6107
+ cell,
6108
+ triggerSort,
6109
+ triggerFilter
6110
+ }, params));
6111
+ }
6112
+ $xeTable.focus();
6113
+ if ($xeTable.closeMenu) {
6114
+ $xeTable.closeMenu();
6115
+ }
6116
+ },
6117
+ /**
6118
+ * 单元格按下事件
6119
+ */
6120
+ triggerCellMousedownEvent(evnt, params) {
6121
+ const $xeTable = this;
6122
+ const {
6123
+ column
6124
+ } = params;
6125
+ const {
6126
+ type,
6127
+ treeNode
6128
+ } = column;
6129
+ const isRadioType = type === 'radio';
6130
+ const isCheckboxType = type === 'checkbox';
6131
+ const isExpandType = type === 'expand';
6132
+ const rowOpts = $xeTable.computeRowOpts;
6133
+ const rowDragOpts = $xeTable.computeRowDragOpts;
6134
+ const {
6135
+ trigger,
6136
+ disabledMethod
6137
+ } = rowDragOpts;
6138
+ const cell = evnt.currentTarget;
6139
+ params.cell = cell;
6140
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
6141
+ const triggerRadio = isRadioType && (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--radio').flag;
6142
+ const triggerCheckbox = isCheckboxType && (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--checkbox').flag;
6143
+ const triggerTreeNode = treeNode && (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-tree--btn-wrapper').flag;
6144
+ const triggerExpandNode = isExpandType && (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-table--expanded').flag;
6145
+ let isColDragCell = false;
6146
+ if (rowOpts.drag) {
6147
+ isColDragCell = trigger === 'row' || column.dragSort && trigger === 'cell';
6148
+ }
6149
+ let triggerDrag = false;
6150
+ if (!(triggerInput || triggerRadio || triggerCheckbox || triggerTreeNode || triggerExpandNode)) {
6151
+ if (isColDragCell && !(disabledMethod && disabledMethod(params))) {
6152
+ triggerDrag = true;
6153
+ $xeTable.handleCellDragMousedownEvent(evnt, params);
6154
+ }
6155
+ }
6156
+ if (!triggerDrag && $xeTable.handleCellMousedownEvent) {
6157
+ $xeTable.handleCellMousedownEvent(evnt, params);
6158
+ }
6159
+ $xeTable.focus();
6160
+ $xeTable.closeFilter();
6161
+ if ($xeTable.closeMenu) {
6162
+ $xeTable.closeMenu();
6163
+ }
6164
+ },
6077
6165
  /**
6078
6166
  * 行拖拽
6079
6167
  */
@@ -6335,18 +6423,20 @@ const Methods = {
6335
6423
  const $xeTable = this;
6336
6424
  const props = $xeTable;
6337
6425
  const reactData = $xeTable;
6426
+ evnt.stopPropagation();
6338
6427
  const {
6339
6428
  dragConfig
6340
6429
  } = props;
6341
6430
  const rowDragOpts = $xeTable.computeRowDragOpts;
6342
6431
  const {
6432
+ trigger,
6343
6433
  dragStartMethod
6344
6434
  } = rowDragOpts;
6345
6435
  const {
6346
6436
  row
6347
6437
  } = params;
6348
6438
  const dragEl = evnt.currentTarget;
6349
- const tdEl = (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
6439
+ const tdEl = trigger === 'cell' || trigger === 'row' ? dragEl : (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
6350
6440
  const trEl = tdEl.parentElement;
6351
6441
  const dStartMethod = dragStartMethod || (dragConfig ? dragConfig.dragStartMethod : null);
6352
6442
  reactData.isDragRowMove = false;
@@ -6607,15 +6697,17 @@ const Methods = {
6607
6697
  var _a;
6608
6698
  const $xeTable = this;
6609
6699
  const reactData = $xeTable;
6700
+ evnt.stopPropagation();
6610
6701
  const columnDragOpts = $xeTable.computeColumnDragOpts;
6611
6702
  const {
6703
+ trigger,
6612
6704
  dragStartMethod
6613
6705
  } = columnDragOpts;
6614
6706
  const {
6615
6707
  column
6616
6708
  } = params;
6617
6709
  const dragEl = evnt.currentTarget;
6618
- const thEl = (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
6710
+ const thEl = trigger === 'cell' ? dragEl : (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
6619
6711
  reactData.isDragColMove = false;
6620
6712
  clearColDropOrigin($xeTable);
6621
6713
  if (dragStartMethod && !dragStartMethod(params)) {