vxe-table 3.18.0 → 3.18.2

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 (83) 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/edit/mixin.js +58 -20
  6. package/es/table/module/filter/mixin.js +12 -10
  7. package/es/table/module/menu/mixin.js +16 -9
  8. package/es/table/module/validator/mixin.js +4 -2
  9. package/es/table/src/column.js +2 -0
  10. package/es/table/src/columnInfo.js +1 -0
  11. package/es/table/src/footer.js +7 -5
  12. package/es/table/src/header.js +67 -28
  13. package/es/table/src/methods.js +577 -85
  14. package/es/table/src/props.js +23 -6
  15. package/es/table/src/store.js +8 -0
  16. package/es/table/src/table.js +67 -26
  17. package/es/table/src/util.js +70 -2
  18. package/es/table/style.css +11 -17
  19. package/es/table/style.min.css +1 -1
  20. package/es/ui/index.js +1 -1
  21. package/es/ui/src/log.js +1 -1
  22. package/es/vxe-table/style.css +11 -17
  23. package/es/vxe-table/style.min.css +1 -1
  24. package/lib/index.css +1 -1
  25. package/lib/index.min.css +1 -1
  26. package/lib/index.umd.js +1002 -200
  27. package/lib/index.umd.min.js +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/table/module/edit/mixin.js +55 -16
  31. package/lib/table/module/edit/mixin.min.js +1 -1
  32. package/lib/table/module/filter/mixin.js +12 -10
  33. package/lib/table/module/filter/mixin.min.js +1 -1
  34. package/lib/table/module/menu/mixin.js +20 -13
  35. package/lib/table/module/menu/mixin.min.js +1 -1
  36. package/lib/table/module/validator/mixin.js +4 -2
  37. package/lib/table/module/validator/mixin.min.js +1 -1
  38. package/lib/table/src/column.js +2 -0
  39. package/lib/table/src/column.min.js +1 -1
  40. package/lib/table/src/columnInfo.js +1 -0
  41. package/lib/table/src/columnInfo.min.js +1 -1
  42. package/lib/table/src/footer.js +7 -5
  43. package/lib/table/src/header.js +82 -25
  44. package/lib/table/src/header.min.js +1 -1
  45. package/lib/table/src/methods.js +647 -94
  46. package/lib/table/src/methods.min.js +1 -1
  47. package/lib/table/src/props.js +11 -3
  48. package/lib/table/src/props.min.js +1 -1
  49. package/lib/table/src/store.js +15 -0
  50. package/lib/table/src/store.min.js +1 -0
  51. package/lib/table/src/table.js +74 -25
  52. package/lib/table/src/table.min.js +1 -1
  53. package/lib/table/src/util.js +74 -2
  54. package/lib/table/src/util.min.js +1 -1
  55. package/lib/table/style/style.css +11 -17
  56. package/lib/table/style/style.min.css +1 -1
  57. package/lib/ui/index.js +1 -1
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +1 -1
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-table/style/style.css +11 -17
  62. package/lib/vxe-table/style/style.min.css +1 -1
  63. package/package.json +1 -1
  64. package/packages/table/module/edit/mixin.ts +59 -23
  65. package/packages/table/module/filter/mixin.ts +17 -13
  66. package/packages/table/module/menu/mixin.ts +16 -9
  67. package/packages/table/module/validator/mixin.ts +8 -4
  68. package/packages/table/src/column.ts +4 -2
  69. package/packages/table/src/columnInfo.ts +1 -0
  70. package/packages/table/src/footer.ts +11 -9
  71. package/packages/table/src/header.ts +76 -34
  72. package/packages/table/src/methods.ts +607 -90
  73. package/packages/table/src/props.ts +29 -12
  74. package/packages/table/src/store.ts +15 -0
  75. package/packages/table/src/table.ts +79 -24
  76. package/packages/table/src/util.ts +76 -2
  77. package/styles/components/table.scss +33 -55
  78. /package/es/{iconfont.1756083626568.ttf → iconfont.1756452257212.ttf} +0 -0
  79. /package/es/{iconfont.1756083626568.woff → iconfont.1756452257212.woff} +0 -0
  80. /package/es/{iconfont.1756083626568.woff2 → iconfont.1756452257212.woff2} +0 -0
  81. /package/lib/{iconfont.1756083626568.ttf → iconfont.1756452257212.ttf} +0 -0
  82. /package/lib/{iconfont.1756083626568.woff → iconfont.1756452257212.woff} +0 -0
  83. /package/lib/{iconfont.1756083626568.woff2 → iconfont.1756452257212.woff2} +0 -0
@@ -14,7 +14,7 @@ const {
14
14
  renderEmptyElement
15
15
  } = _ui.VxeUI;
16
16
  const cellType = 'header';
17
- const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
17
+ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) {
18
18
  const props = _vm;
19
19
  const $xeTable = _vm.$parent;
20
20
  const $xeGrid = $xeTable.$xeGrid;
@@ -28,6 +28,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
28
28
  const {
29
29
  resizable: allResizable,
30
30
  columnKey,
31
+ showCustomHeader,
31
32
  headerCellClassName,
32
33
  headerCellStyle,
33
34
  showHeaderOverflow: allColumnHeaderOverflow,
@@ -41,11 +42,14 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
41
42
  scrollXLoad,
42
43
  scrollYLoad,
43
44
  overflowX,
45
+ mergeHeadFlag,
44
46
  tableColumn
45
47
  } = tableReactData;
46
48
  const {
47
49
  fullColumnIdData,
48
- scrollXStore
50
+ scrollXStore,
51
+ mergeHeaderList,
52
+ mergeHeaderCellMaps
49
53
  } = tableInternalData;
50
54
  const virtualXOpts = $xeTable.computeVirtualXOpts;
51
55
  const columnOpts = $xeTable.computeColumnOpts;
@@ -59,6 +63,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
59
63
  isCrossDrag,
60
64
  isPeerDrag
61
65
  } = columnDragOpts;
66
+ const isLastRow = $rowIndex === headerGroups.length - 1;
62
67
  return cols.map((column, $columnIndex) => {
63
68
  const {
64
69
  type,
@@ -91,7 +96,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
91
96
  hasFilter = filters.some(item => item.checked);
92
97
  }
93
98
  const columnIndex = colRest.index;
94
- const _columnIndex = colRest._index;
99
+ const _columnIndex = showCustomHeader ? $columnIndex : colRest._index;
95
100
  const cellParams = {
96
101
  $table: $xeTable,
97
102
  $grid: $xeGrid,
@@ -108,10 +113,34 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
108
113
  hasFilter
109
114
  };
110
115
  const thAttrs = {
111
- colid,
112
- colspan: column.colSpan > 1 ? column.colSpan : null,
113
- rowspan: column.rowSpan > 1 ? column.rowSpan : null
116
+ colid
114
117
  };
118
+ let isMergeCell = false;
119
+ // 合并行或列
120
+ if (!showCustomHeader) {
121
+ thAttrs.colspan = column.colSpan > 1 ? column.colSpan : null;
122
+ thAttrs.rowspan = column.rowSpan > 1 ? column.rowSpan : null;
123
+ }
124
+ if (mergeHeadFlag && mergeHeaderList.length && (showCustomHeader || isLastRow)) {
125
+ const spanRest = mergeHeaderCellMaps[`${$rowIndex}:${showCustomHeader ? $columnIndex : _columnIndex}`];
126
+ if (spanRest) {
127
+ const {
128
+ rowspan,
129
+ colspan
130
+ } = spanRest;
131
+ if (!rowspan || !colspan) {
132
+ return null;
133
+ }
134
+ if (rowspan > 1) {
135
+ isMergeCell = true;
136
+ thAttrs.rowspan = rowspan;
137
+ }
138
+ if (colspan > 1) {
139
+ isMergeCell = true;
140
+ thAttrs.colspan = colspan;
141
+ }
142
+ }
143
+ }
115
144
  const thOns = {
116
145
  click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
117
146
  dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
@@ -138,7 +167,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
138
167
  const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
139
168
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
140
169
  let isVNPreEmptyStatus = false;
141
- if (isOptimizeMode && overflowX && !isGroup) {
170
+ if (isOptimizeMode && overflowX && !isGroup && !isMergeCell) {
142
171
  if (!dragCol || dragCol.id !== colid) {
143
172
  if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
144
173
  isVNPreEmptyStatus = true;
@@ -152,7 +181,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
152
181
  tcStyle.minHeight = `${currCellHeight}px`;
153
182
  }
154
183
  return h('th', {
155
- class: ['vxe-table--column vxe-header--column', colid, {
184
+ class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
156
185
  [`col--${headAlign}`]: headAlign,
157
186
  [`col--${type}`]: type,
158
187
  'col--last': isLastColumn,
@@ -160,7 +189,6 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
160
189
  'col--group': isColGroup,
161
190
  'col--ellipsis': hasEllipsis,
162
191
  'fixed--width': !isAutoCellWidth,
163
- 'fixed--hidden': fixedHiddenColumn,
164
192
  'is--padding': isPadding,
165
193
  'is--sortable': column.sortable,
166
194
  'col--filter': !!filters,
@@ -172,7 +200,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
172
200
  attrs: thAttrs,
173
201
  style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
174
202
  on: thOns,
175
- key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
203
+ key: showCustomHeader ? `${colid}${$columnIndex}` : columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
176
204
  }, [h('div', {
177
205
  class: ['vxe-cell', {
178
206
  'c--title': showTitle,
@@ -187,9 +215,9 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
187
215
  class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
188
216
  }, column.renderHeader(h, cellParams))]),
189
217
  /**
190
- * 列宽拖动
191
- */
192
- !fixedHiddenColumn && showResizable ? h('div', {
218
+ * 列宽拖动
219
+ */
220
+ !fixedHiddenColumn && showResizable && (!showCustomHeader || isLastRow) ? h('div', {
193
221
  class: 'vxe-cell--col-resizable',
194
222
  on: {
195
223
  mousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
@@ -197,7 +225,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
197
225
  }
198
226
  }) : renderEmptyElement($xeTable)]);
199
227
  });
200
- };
228
+ }
201
229
  function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
202
230
  const props = _vm;
203
231
  const $xeTable = _vm.$parent;
@@ -220,7 +248,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
220
248
  key: $rowIndex,
221
249
  class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
222
250
  style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
223
- }, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
251
+ }, renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols));
224
252
  });
225
253
  }
226
254
  var _default = exports.default = {
@@ -242,11 +270,13 @@ var _default = exports.default = {
242
270
  },
243
271
  watch: {
244
272
  tableColumn() {
245
- this.uploadColumn();
273
+ const _vm = this;
274
+ _vm.uploadColumn();
246
275
  }
247
276
  },
248
277
  created() {
249
- this.uploadColumn();
278
+ const _vm = this;
279
+ _vm.uploadColumn();
250
280
  },
251
281
  mounted() {
252
282
  const _vm = this;
@@ -269,8 +299,9 @@ var _default = exports.default = {
269
299
  elemStore[`${prefix}repair`] = _vm.$refs.refHeaderBorderRepair;
270
300
  },
271
301
  destroyed() {
272
- const props = this;
273
- const $xeTable = this.$parent;
302
+ const _vm = this;
303
+ const props = _vm;
304
+ const $xeTable = _vm.$parent;
274
305
  const internalData = $xeTable;
275
306
  const {
276
307
  fixedType
@@ -288,8 +319,9 @@ var _default = exports.default = {
288
319
  elemStore[`${prefix}repair`] = null;
289
320
  },
290
321
  render(h) {
291
- const props = this;
292
- const $xeTable = this.$parent;
322
+ const _vm = this;
323
+ const props = _vm;
324
+ const $xeTable = _vm.$parent;
293
325
  const tableProps = $xeTable;
294
326
  const tableReactData = $xeTable;
295
327
  const tableInternalData = $xeTable;
@@ -303,7 +335,7 @@ var _default = exports.default = {
303
335
  } = props;
304
336
  const {
305
337
  headerColumn
306
- } = this;
338
+ } = _vm;
307
339
  const {
308
340
  mouseConfig,
309
341
  showHeaderOverflow: allColumnHeaderOverflow,
@@ -422,7 +454,7 @@ var _default = exports.default = {
422
454
  */
423
455
  h('thead', {
424
456
  ref: 'refHeaderTHead'
425
- }, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? h('div', {
457
+ }, renderHeads(h, _vm, isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? h('div', {
426
458
  class: 'vxe-table--cell-area'
427
459
  }, [h('span', {
428
460
  class: 'vxe-table--cell-main-area'
@@ -440,12 +472,37 @@ var _default = exports.default = {
440
472
  },
441
473
  methods: {
442
474
  uploadColumn() {
443
- const $xeTable = this.$parent;
475
+ const _vm = this;
476
+ const $xeTable = _vm.$parent;
477
+ const tableProps = $xeTable;
444
478
  const tableReactData = $xeTable;
479
+ const tableInternalData = $xeTable;
480
+ const props = _vm;
481
+ const {
482
+ showCustomHeader
483
+ } = tableProps;
484
+ const {
485
+ collectColumn,
486
+ visibleColumn
487
+ } = tableInternalData;
488
+ const {
489
+ tableGroupColumn
490
+ } = props;
445
491
  const {
446
492
  isGroup
447
493
  } = tableReactData;
448
- this.headerColumn = isGroup ? (0, _util.convertHeaderColumnToRows)(this.tableGroupColumn) : [];
494
+ let spanColumns = isGroup ? (0, _util.convertHeaderColumnToRows)(tableGroupColumn) : [];
495
+ let visibleColgroups = [];
496
+ if (showCustomHeader && spanColumns.length > 1) {
497
+ visibleColgroups = (0, _util.convertHeaderToGridRows)(spanColumns);
498
+ spanColumns = visibleColgroups;
499
+ }
500
+ _vm.headerColumn = spanColumns;
501
+ $xeTable.dispatchEvent('columns-change', {
502
+ visibleColgroups,
503
+ collectColumn,
504
+ visibleColumn
505
+ }, null);
449
506
  }
450
507
  }
451
508
  };
@@ -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");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,E,S,D,T)=>{let R=e.$parent,I=R.$xeGrid,O=R.$xeGantt;var l=R,r=R,a=R;let k=e.fixedType,{resizable:z,columnKey:U,headerCellClassName:M,headerCellStyle:A,showHeaderOverflow:X,headerAlign:q,align:G,mouseConfig:F}=l,{currentColumn:L,dragCol:N,scrollXLoad:B,scrollYLoad:V,overflowX:W,tableColumn:K}=r,{fullColumnIdData:P,scrollXStore:j}=a,Y=R.computeVirtualXOpts,J=R.computeColumnOpts,Q=R.computeColumnDragOpts,Z=R.computeCellOpts;e=R.computeDefaultRowHeight;let ee=R.computeHeaderCellOpts,le=(0,_util.getCalcHeight)(ee.height)||e,{disabledMethod:re,isCrossDrag:ae,isPeerDrag:te}=Q;return D.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:n,editRender:s,cellRender:o}=e,u=e.id,c=P[u]||{},s=s||o,o=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=W&&!s&&(k?e.fixed!==k:!!e.fixed),f=(_xeUtils.default.isBoolean(ee.padding)?ee:Z).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?X:a,t=t||(o?o.tableHeaderCellAlign:"")||q||d||(o?o.tableCellAlign:"")||G,d="ellipsis"===a,o="title"===a,a=!0===a||"tooltip"===a,x=o||a||d;let m=!1,h=null;i&&(h=i[0],m=i.some(e=>e.checked));var g=c.index,c=c._index;let v={$table:R,$grid:I,$gantt:O,$rowIndex:T,column:e,columnIndex:g,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:k,type:cellType,isHidden:p,hasFilter:m};var g={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=J.drag&&"cell"===Q.trigger;let w=!1;b&&(w=!(!re||!re(v))),(F||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===D.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||z,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;!S||!W||E||N&&N.id===u||B&&10<K.length&&!e.fixed&&!Y.immediate&&(c<j.visibleStartIndex-j.preloadSize||c>j.visibleEndIndex+j.preloadSize)&&(_=!0);c={};return x?c.height=le+"px":c.minHeight=le+"px",$("th",{class:["vxe-table--column vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":m,"is--drag-active":J.drag&&!e.fixed&&!w&&(ae||te||!e.parentId),"is--drag-disabled":J.drag&&w,"col--current":L===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(M,v)],attrs:g,style:A?_xeUtils.default.isFunction(A)?A(v):A:void 0,on:C,key:U||B||V||J.useKey||J.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":a,"c--ellipsis":d}],style:c},_||S&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader($,v))]),!p&&y?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,k,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let n=t.$parent;var l=n;let s=t.fixedType,{headerRowClassName:o,headerRowStyle:u}=l;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(r):o:""],style:u?_xeUtils.default.isFunction(u)?u(r):u:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:n,tableColumn:s}=this;var o=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:x,scrollXLoad:m,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:g}=t,v=l.computeMouseOpts;let C=o,b=s,w=!1;return a?b=t:(m&&u&&(c||p||(w=!0)),w&&(f||!i&&x)||(b=t),i&&w&&(b=n||[]),C=[b]),i||a||m&&h&&2<b.length&&(o=g[h.id])&&(u=o._index,c=b[0],p=b[b.length-1],f=g[c.id],x=g[p.id],f)&&x&&(t=f._index,m=x._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):m<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
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");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header";function renderRows(E,e,S,D,l,T,R){let I=e.$parent,O=I.$xeGrid,k=I.$xeGantt;var r=I,a=I,t=I;let z=e.fixedType,{resizable:M,columnKey:U,showCustomHeader:A,headerCellClassName:X,headerCellStyle:G,showHeaderOverflow:q,headerAlign:F,align:L,mouseConfig:N}=r,{currentColumn:B,dragCol:V,scrollXLoad:W,scrollYLoad:K,overflowX:P,mergeHeadFlag:j,tableColumn:ae}=a,{fullColumnIdData:te,scrollXStore:Y,mergeHeaderList:ie,mergeHeaderCellMaps:de}=t,ne=I.computeVirtualXOpts,J=I.computeColumnOpts,Q=I.computeColumnDragOpts,oe=I.computeCellOpts;e=I.computeDefaultRowHeight;let Z=I.computeHeaderCellOpts,ee=(0,_util.getCalcHeight)(Z.height)||e,{disabledMethod:le,isCrossDrag:se,isPeerDrag:ue}=Q,re=T===l.length-1;return R.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=te[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=P&&!o&&(z?e.fixed!==z:!!e.fixed),f=(_xeUtils.default.isBoolean(Z.padding)?Z:oe).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?q:a,t=t||(s?s.tableHeaderCellAlign:"")||F||i||(s?s.tableCellAlign:"")||L,i="ellipsis"===a,s="title"===a,a=!0===a||"tooltip"===a,m=s||a||i;let g=!1,h=null;d&&(h=d[0],g=d.some(e=>e.checked));var x=c.index,c=A?l:c._index;let v={$table:I,$grid:O,$gantt:k,$rowIndex:T,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:z,type:cellType,isHidden:p,hasFilter:g};x={colid:u};let C=!1;if(A||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),j&&ie.length&&(A||re)){var b=de[T+":"+(A?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>I.triggerHeaderCellClickEvent(e,v),dblclick:e=>I.triggerHeaderCellDblclickEvent(e,v)},w=J.drag&&"cell"===Q.trigger;let H=!1;w&&(H=!(!le||!le(v))),(N||w)&&(b.mousedown=e=>I.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(b.dragstart=I.handleHeaderCellDragDragstartEvent,b.dragend=I.handleHeaderCellDragDragendEvent,b.dragover=I.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=I.handleHeaderCellDragMouseupEvent);var w=l===R.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||M,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!D||!P||S||C||V&&V.id===u||W&&10<ae.length&&!e.fixed&&!ne.immediate&&(c<Y.visibleStartIndex-Y.preloadSize||c>Y.visibleEndIndex+Y.preloadSize)&&($=!0);c={};return m?c.height=ee+"px":c.minHeight=ee+"px",E("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!_,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":g,"is--drag-active":J.drag&&!e.fixed&&!H&&(se||ue||!e.parentId),"is--drag-disabled":J.drag&&H,"col--current":B===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(X,v)],attrs:x,style:G?_xeUtils.default.isFunction(G)?G(v):G:void 0,on:b,key:A?""+u+l:U||W||K||J.useKey||J.drag||o?u:l},[E("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":a,"c--ellipsis":i}],style:c},$||D&&p?[]:[E("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(E,v))]),p||!y||A&&!re?renderEmptyElement(I):E("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>I.handleColResizeMousedownEvent(e,z,v),dblclick:e=>I.handleColResizeDblclickEvent(e,v)}})])})}function renderHeads(a,t,i,d,n){let o=t.$parent;var e=o;let s=t.fixedType,{headerRowClassName:u,headerRowStyle:c}=e;return n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(a,t,i,d,n,l,e))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:g,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:x}=t,v=l.computeMouseOpts;let C=s,b=o,w=!1;return a?b=t:(g&&u&&(c||p||(w=!0)),w&&(f||!d&&m)||(b=t),d&&w&&(b=n||[]),C=[b]),d||a||g&&h&&2<b.length&&(s=x[h.id])&&(u=s._index,c=b[0],p=b[b.length-1],f=x[c.id],m=x[p.id],f)&&m&&(t=f._index,g=m._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):g<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:a}=e,t=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(t):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:a},null)}}};