vxe-table 3.12.9 → 3.12.10-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 (85) hide show
  1. package/es/grid/src/grid.js +6 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/export/mixin.js +3 -3
  7. package/es/table/module/filter/mixin.js +3 -3
  8. package/es/table/module/keyboard/mixin.js +4 -4
  9. package/es/table/module/menu/mixin.js +2 -2
  10. package/es/table/module/validator/mixin.js +2 -2
  11. package/es/table/src/body.js +247 -351
  12. package/es/table/src/footer.js +135 -154
  13. package/es/table/src/header.js +120 -100
  14. package/es/table/src/methods.js +1174 -790
  15. package/es/table/src/props.js +9 -3
  16. package/es/table/src/table.js +187 -103
  17. package/es/table/src/util.js +16 -7
  18. package/es/table/style.css +146 -63
  19. package/es/table/style.min.css +1 -1
  20. package/es/ui/index.js +14 -4
  21. package/es/ui/src/log.js +1 -1
  22. package/es/vxe-table/style.css +146 -63
  23. package/es/vxe-table/style.min.css +1 -1
  24. package/lib/grid/src/grid.js +4 -1
  25. package/lib/grid/src/grid.min.js +1 -1
  26. package/lib/index.css +1 -1
  27. package/lib/index.min.css +1 -1
  28. package/lib/index.umd.js +1896 -1543
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/style.css +1 -1
  31. package/lib/style.min.css +1 -1
  32. package/lib/table/module/export/mixin.js +3 -3
  33. package/lib/table/module/export/mixin.min.js +1 -1
  34. package/lib/table/module/filter/mixin.js +4 -4
  35. package/lib/table/module/filter/mixin.min.js +1 -1
  36. package/lib/table/module/keyboard/mixin.js +5 -5
  37. package/lib/table/module/keyboard/mixin.min.js +1 -1
  38. package/lib/table/module/menu/mixin.js +2 -2
  39. package/lib/table/module/menu/mixin.min.js +1 -1
  40. package/lib/table/module/validator/mixin.js +2 -2
  41. package/lib/table/module/validator/mixin.min.js +1 -1
  42. package/lib/table/src/body.js +185 -365
  43. package/lib/table/src/body.min.js +1 -1
  44. package/lib/table/src/footer.js +124 -151
  45. package/lib/table/src/footer.min.js +1 -1
  46. package/lib/table/src/header.js +97 -74
  47. package/lib/table/src/header.min.js +1 -1
  48. package/lib/table/src/methods.js +1258 -830
  49. package/lib/table/src/methods.min.js +1 -1
  50. package/lib/table/src/props.js +9 -3
  51. package/lib/table/src/props.min.js +1 -1
  52. package/lib/table/src/table.js +171 -90
  53. package/lib/table/src/table.min.js +1 -1
  54. package/lib/table/src/util.js +17 -7
  55. package/lib/table/src/util.min.js +1 -1
  56. package/lib/table/style/style.css +146 -63
  57. package/lib/table/style/style.min.css +1 -1
  58. package/lib/ui/index.js +14 -4
  59. package/lib/ui/index.min.js +1 -1
  60. package/lib/ui/src/log.js +1 -1
  61. package/lib/ui/src/log.min.js +1 -1
  62. package/lib/vxe-table/style/style.css +146 -63
  63. package/lib/vxe-table/style/style.min.css +1 -1
  64. package/package.json +2 -2
  65. package/packages/grid/src/grid.ts +6 -1
  66. package/packages/table/module/export/mixin.ts +3 -3
  67. package/packages/table/module/filter/mixin.ts +3 -3
  68. package/packages/table/module/keyboard/mixin.ts +4 -4
  69. package/packages/table/module/menu/mixin.ts +2 -2
  70. package/packages/table/module/validator/mixin.ts +2 -2
  71. package/packages/table/src/body.ts +281 -427
  72. package/packages/table/src/footer.ts +148 -164
  73. package/packages/table/src/header.ts +135 -111
  74. package/packages/table/src/methods.ts +1246 -845
  75. package/packages/table/src/props.ts +9 -3
  76. package/packages/table/src/table.ts +195 -146
  77. package/packages/table/src/util.ts +17 -7
  78. package/packages/ui/index.ts +13 -3
  79. package/styles/components/table.scss +164 -74
  80. /package/es/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
  81. /package/es/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
  82. /package/es/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
  83. /package/lib/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
  84. /package/lib/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
  85. /package/lib/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
@@ -16,12 +16,16 @@ const {
16
16
  renderEmptyElement
17
17
  } = _ui.VxeUI;
18
18
  const cellType = 'header';
19
- const renderRows = (h, _vm, cols, $rowIndex) => {
19
+ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
20
+ const props = _vm;
20
21
  const $xeTable = _vm.$parent;
21
22
  const $xeGrid = $xeTable.xegrid;
23
+ const tableProps = $xeTable;
24
+ const tableReactData = $xeTable;
25
+ const tableInternalData = $xeTable;
22
26
  const {
23
27
  fixedType
24
- } = _vm;
28
+ } = props;
25
29
  const {
26
30
  resizable: allResizable,
27
31
  border,
@@ -31,14 +35,18 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
31
35
  showHeaderOverflow: allColumnHeaderOverflow,
32
36
  headerAlign: allHeaderAlign,
33
37
  align: allAlign,
38
+ mouseConfig
39
+ } = tableProps;
40
+ const {
34
41
  currentColumn,
35
42
  scrollXLoad,
36
43
  scrollYLoad,
37
- overflowX,
38
- scrollbarWidth,
39
- mouseConfig,
40
- columnOpts
41
- } = $xeTable;
44
+ overflowX
45
+ } = tableReactData;
46
+ const {
47
+ scrollXStore
48
+ } = tableInternalData;
49
+ const columnOpts = $xeTable.computeColumnOpts;
42
50
  const columnDragOpts = $xeTable.computeColumnDragOpts;
43
51
  const {
44
52
  disabledMethod: dragDisabledMethod,
@@ -122,6 +130,10 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
122
130
  }
123
131
  }
124
132
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
133
+ let isPreLoadStatus = false;
134
+ if (scrollXLoad && !isGroup && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
135
+ isPreLoadStatus = true;
136
+ }
125
137
  return h('th', {
126
138
  class: ['vxe-header--column', colid, {
127
139
  [`col--${headAlign}`]: headAlign,
@@ -140,7 +152,7 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
140
152
  'col--current': currentColumn === column
141
153
  }, (0, _utils.getClass)(headerClassName, params), (0, _utils.getClass)(headerCellClassName, params)],
142
154
  attrs: thAttrs,
143
- style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null,
155
+ style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : undefined,
144
156
  on: thOns,
145
157
  key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
146
158
  }, [h('div', {
@@ -149,7 +161,7 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
149
161
  'c--tooltip': showTooltip,
150
162
  'c--ellipsis': showEllipsis
151
163
  }]
152
- }, column.renderHeader(h, params)),
164
+ }, isPreLoadStatus || isOptimizeMode && fixedHiddenColumn ? [] : column.renderHeader(h, params)),
153
165
  /**
154
166
  * 列宽拖动
155
167
  */
@@ -162,17 +174,16 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
162
174
  dblclick: evnt => $xeTable.handleResizeDblclickEvent(evnt, params)
163
175
  }
164
176
  }) : null]);
165
- }).concat(scrollbarWidth ? [h('th', {
166
- key: `gr${$rowIndex}`,
167
- class: 'vxe-header--gutter col--gutter'
168
- })] : []);
177
+ });
169
178
  };
170
- function renderHeads(h, _vm, headerGroups) {
179
+ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
180
+ const props = _vm;
171
181
  const $xeTable = _vm.$parent;
172
182
  const tableProps = $xeTable;
183
+ const tableReactData = $xeTable;
173
184
  const {
174
185
  fixedType
175
- } = _vm;
186
+ } = props;
176
187
  const columnOpts = $xeTable.computeColumnOpts;
177
188
  const columnDragOpts = $xeTable.computeColumnDragOpts;
178
189
  const {
@@ -181,7 +192,7 @@ function renderHeads(h, _vm, headerGroups) {
181
192
  } = tableProps;
182
193
  const {
183
194
  isDragColMove
184
- } = $xeTable;
195
+ } = tableReactData;
185
196
  return headerGroups.map((cols, $rowIndex) => {
186
197
  const params = {
187
198
  $table: $xeTable,
@@ -198,13 +209,13 @@ function renderHeads(h, _vm, headerGroups) {
198
209
  class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
199
210
  style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
200
211
  }
201
- }, renderRows(h, _vm, cols, $rowIndex));
212
+ }, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
202
213
  }
203
214
  return h('tr', {
204
215
  key: $rowIndex,
205
216
  class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
206
- style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
207
- }, renderRows(h, _vm, cols, $rowIndex));
217
+ style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
218
+ }, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
208
219
  });
209
220
  }
210
221
  var _default = exports.default = {
@@ -214,8 +225,10 @@ var _default = exports.default = {
214
225
  tableColumn: Array,
215
226
  tableGroupColumn: Array,
216
227
  fixedColumn: Array,
217
- size: String,
218
- fixedType: String
228
+ fixedType: {
229
+ type: String,
230
+ default: null
231
+ }
219
232
  },
220
233
  data() {
221
234
  return {
@@ -231,33 +244,38 @@ var _default = exports.default = {
231
244
  this.uploadColumn();
232
245
  },
233
246
  mounted() {
247
+ const _vm = this;
248
+ const props = _vm;
249
+ const $xeTable = _vm.$parent;
250
+ const internalData = $xeTable;
234
251
  const {
235
- $parent: $xetable,
236
- $el,
237
- $refs,
238
252
  fixedType
239
- } = this;
253
+ } = props;
240
254
  const {
241
255
  elemStore
242
- } = $xetable;
256
+ } = internalData;
243
257
  const prefix = `${fixedType || 'main'}-header-`;
244
- elemStore[`${prefix}wrapper`] = $el;
245
- elemStore[`${prefix}table`] = $refs.table;
246
- elemStore[`${prefix}colgroup`] = $refs.colgroup;
247
- elemStore[`${prefix}list`] = $refs.thead;
248
- elemStore[`${prefix}xSpace`] = $refs.xSpace;
249
- elemStore[`${prefix}repair`] = $refs.repair;
258
+ elemStore[`${prefix}wrapper`] = _vm.$refs.refElem;
259
+ elemStore[`${prefix}scroll`] = _vm.$refs.refHeaderScroll;
260
+ elemStore[`${prefix}table`] = _vm.$refs.refHeaderTable;
261
+ elemStore[`${prefix}colgroup`] = _vm.$refs.refHeaderColgroup;
262
+ elemStore[`${prefix}list`] = _vm.$refs.refHeaderTHead;
263
+ elemStore[`${prefix}xSpace`] = _vm.$refs.refHeaderXSpace;
264
+ elemStore[`${prefix}repair`] = _vm.$refs.refHeaderBorderRepair;
250
265
  },
251
266
  destroyed() {
267
+ const props = this;
268
+ const $xeTable = this.$parent;
269
+ const internalData = $xeTable;
252
270
  const {
253
- $parent: $xetable,
254
271
  fixedType
255
- } = this;
272
+ } = props;
256
273
  const {
257
274
  elemStore
258
- } = $xetable;
275
+ } = internalData;
259
276
  const prefix = `${fixedType || 'main'}-header-`;
260
277
  elemStore[`${prefix}wrapper`] = null;
278
+ elemStore[`${prefix}scroll`] = null;
261
279
  elemStore[`${prefix}table`] = null;
262
280
  elemStore[`${prefix}colgroup`] = null;
263
281
  elemStore[`${prefix}list`] = null;
@@ -271,7 +289,7 @@ var _default = exports.default = {
271
289
  const tableReactData = $xeTable;
272
290
  const tableInternalData = $xeTable;
273
291
  const {
274
- tId
292
+ xID
275
293
  } = $xeTable;
276
294
  const {
277
295
  fixedType,
@@ -290,7 +308,6 @@ var _default = exports.default = {
290
308
  isGroup,
291
309
  scrollXLoad,
292
310
  scrollYLoad,
293
- scrollbarWidth,
294
311
  dragCol
295
312
  } = tableReactData;
296
313
  const {
@@ -299,20 +316,23 @@ var _default = exports.default = {
299
316
  } = tableInternalData;
300
317
  let renderHeaderList = headerColumn;
301
318
  let renderColumnList = tableColumn;
319
+ let isOptimizeMode = false;
302
320
  if (isGroup) {
303
321
  renderColumnList = visibleColumn;
304
322
  } else {
305
- if (fixedType) {
306
- // 如果是使用优化模式
307
- if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
323
+ // 如果是使用优化模式
324
+ if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
325
+ if (spanMethod || footerSpanMethod) {
308
326
  // 如果不支持优化模式
309
- if (spanMethod || footerSpanMethod) {
310
- renderColumnList = visibleColumn;
311
- } else {
312
- renderColumnList = fixedColumn || [];
313
- }
314
327
  } else {
315
- renderColumnList = visibleColumn;
328
+ isOptimizeMode = true;
329
+ }
330
+ }
331
+ if (fixedType) {
332
+ renderColumnList = visibleColumn;
333
+ // 如果是使用优化模式
334
+ if (isOptimizeMode) {
335
+ renderColumnList = fixedColumn || [];
316
336
  }
317
337
  }
318
338
  renderHeaderList = [renderColumnList];
@@ -331,7 +351,6 @@ var _default = exports.default = {
331
351
  if (firstColRest && lastColRest) {
332
352
  const fcIndex = firstColRest._index;
333
353
  const lcIndex = lastColRest._index;
334
- console.log(dragCol.id, dcIndex, fcIndex, lcIndex, renderColumnList.length);
335
354
  if (dcIndex < fcIndex) {
336
355
  renderColumnList = [dragCol].concat(renderColumnList);
337
356
  renderHeaderList = [[dragCol].concat(renderHeaderList[0])].concat(renderHeaderList.slice(1));
@@ -339,35 +358,43 @@ var _default = exports.default = {
339
358
  renderColumnList = renderColumnList.concat([dragCol]);
340
359
  renderHeaderList = [renderHeaderList[0].concat([dragCol])].concat(renderHeaderList.slice(1));
341
360
  }
342
- console.log(renderColumnList.length);
343
361
  }
344
362
  }
345
363
  }
346
364
  }
347
365
  }
348
366
  return h('div', {
367
+ ref: 'refElem',
349
368
  class: ['vxe-table--header-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
350
369
  attrs: {
351
- xid: tId
370
+ xid: xID
371
+ }
372
+ }, [h('div', {
373
+ ref: 'refHeaderScroll',
374
+ class: 'vxe-table--header-inner-wrapper',
375
+ on: {
376
+ scroll(evnt) {
377
+ $xeTable.triggerHeaderScrollEvent(evnt, fixedType);
378
+ }
352
379
  }
353
380
  }, [fixedType ? renderEmptyElement($xeTable) : h('div', {
354
- class: 'vxe-body--x-space',
355
- ref: 'xSpace'
381
+ ref: 'refHeaderXSpace',
382
+ class: 'vxe-body--x-space'
356
383
  }), h('table', {
384
+ ref: 'refHeaderTable',
357
385
  class: 'vxe-table--header',
358
386
  attrs: {
359
- xid: tId,
387
+ xid: xID,
360
388
  cellspacing: 0,
361
389
  cellpadding: 0,
362
390
  border: 0
363
- },
364
- ref: 'table'
391
+ }
365
392
  }, [
366
393
  /**
367
394
  * 列宽
368
395
  */
369
396
  h('colgroup', {
370
- ref: 'colgroup'
397
+ ref: 'refHeaderColgroup'
371
398
  }, renderColumnList.map((column, $columnIndex) => {
372
399
  return h('col', {
373
400
  attrs: {
@@ -375,24 +402,20 @@ var _default = exports.default = {
375
402
  },
376
403
  key: $columnIndex
377
404
  });
378
- }).concat(scrollbarWidth ? [h('col', {
379
- attrs: {
380
- name: 'col_gutter'
381
- }
382
- })] : [])),
405
+ })),
383
406
  /**
384
407
  * 头部
385
408
  */
386
409
  h('thead', {
387
- ref: 'thead'
388
- }, renderHeads(h, this, renderHeaderList))]),
410
+ ref: 'refHeaderTHead'
411
+ }, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))]),
389
412
  /**
390
413
  * 其他
391
414
  */
392
415
  h('div', {
393
- class: 'vxe-table--header-border-line',
394
- ref: 'repair'
395
- })]);
416
+ ref: 'refHeaderBorderRepair',
417
+ class: 'vxe-table--header-border-line'
418
+ })])]);
396
419
  },
397
420
  methods: {
398
421
  uploadColumn() {
@@ -415,12 +438,12 @@ var _default = exports.default = {
415
438
  visibleColumn
416
439
  } = tableInternalData;
417
440
  const {
418
- tableBody,
419
- leftContainer,
420
- rightContainer
441
+ refTableBody,
442
+ refLeftContainer,
443
+ refRightContainer
421
444
  } = $xetable.$refs;
422
445
  const tableEl = $xeTable.$el;
423
- const resizeBarElem = $xetable.$refs.resizeBar;
446
+ const resizeBarElem = $xetable.$refs.refCellResizeBar;
424
447
  const resizeTipElem = $xetable.$refs.refCellResizeTip;
425
448
  const wrapperElem = this.$el;
426
449
  const {
@@ -433,7 +456,7 @@ var _default = exports.default = {
433
456
  });
434
457
  const resizableOpts = $xeTable.computeResizableOpts;
435
458
  let dragLeft = 0;
436
- const tableBodyElem = tableBody.$el;
459
+ const tableBodyElem = refTableBody.$el;
437
460
  const pos = (0, _dom.getOffsetPos)(dragBtnElem, tableEl);
438
461
  const dragBtnWidth = dragBtnElem.clientWidth;
439
462
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
@@ -457,8 +480,8 @@ var _default = exports.default = {
457
480
  }
458
481
  tempCellElem = tempCellElem[siblingProp];
459
482
  }
460
- if (isRightFixed && rightContainer) {
461
- dragPosLeft = rightContainer.offsetLeft + fixedOffsetWidth;
483
+ if (isRightFixed && refRightContainer) {
484
+ dragPosLeft = refRightContainer.offsetLeft + fixedOffsetWidth;
462
485
  }
463
486
  }
464
487
  // 处理拖动事件
@@ -470,10 +493,10 @@ var _default = exports.default = {
470
493
  const scrollLeft = fixedType ? 0 : tableBodyElem.scrollLeft;
471
494
  if (isLeftFixed) {
472
495
  // 左固定列(不允许超过右侧固定列、不允许超过右边距)
473
- left = Math.min(left, (rightContainer ? rightContainer.offsetLeft : tableBodyElem.clientWidth) - fixedOffsetWidth - minInterval);
496
+ left = Math.min(left, (refRightContainer ? refRightContainer.offsetLeft : tableBodyElem.clientWidth) - fixedOffsetWidth - minInterval);
474
497
  } else if (isRightFixed) {
475
498
  // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
476
- dragMinLeft = (leftContainer ? leftContainer.clientWidth : 0) + fixedOffsetWidth + minInterval;
499
+ dragMinLeft = (refLeftContainer ? refLeftContainer.clientWidth : 0) + fixedOffsetWidth + minInterval;
477
500
  left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
478
501
  } else {
479
502
  dragMinLeft = Math.max(tableBodyElem.scrollLeft, dragMinLeft);
@@ -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{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=(b,y,_,w)=>{let $=y.$parent,z=$.xegrid,W=y.fixedType,{resizable:D,border:M,columnKey:H,headerCellClassName:E,headerCellStyle:R,showHeaderOverflow:S,headerAlign:T,align:O,currentColumn:k,scrollXLoad:I,scrollYLoad:U,overflowX:A,scrollbarWidth:e,mouseConfig:L,columnOpts:q}=$,F=$.computeColumnDragOpts,{disabledMethod:N,isCrossDrag:X,isPeerDrag:j}=F;return _.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:i,filters:n,headerClassName:o,editRender:d,cellRender:s}=e,u=e.id,d=d||s,s=d?renderer.get(d.name):null,d=e.children&&e.children.length,c=W?e.fixed!==W&&!d:e.fixed&&A,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?S:r,a=a||(s?s.tableHeaderCellAlign:"")||T||i||(s?s.tableCellAlign:"")||O;let p="ellipsis"===r;i="title"===r,s=!0===r||"tooltip"===r;let h=i||s||p,m=!1,g=null;n&&(g=n[0],m=n.some(e=>e.checked));var r=$.getColumnIndex(e),f=$.getVTColumnIndex(e);let x={$table:$,$grid:z,$rowIndex:w,column:e,columnIndex:r,$columnIndex:l,_columnIndex:f,firstFilterOption:g,fixed:W,type:cellType,isHidden:c,hasFilter:m};var r={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},f={click:e=>$.triggerHeaderCellClickEvent(e,x),dblclick:e=>$.triggerHeaderCellDblclickEvent(e,x)},v=(I&&!h&&(p=h=!0),q.drag&&"cell"===F.trigger);let C=!1;v&&(C=!(!N||!N(x))),(L||v)&&(f.mousedown=e=>$.triggerHeaderCellMousedownEvent(e,x)),q.drag&&(f.dragstart=$.handleHeaderCellDragDragstartEvent,f.dragend=$.handleHeaderCellDragDragendEvent,f.dragover=$.handleHeaderCellDragDragoverEvent,v)&&(f.mouseup=$.handleHeaderCellDragMouseupEvent);v=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);return b("th",{class:["vxe-header--column",u,{["col--"+a]:a,["col--"+t]:t,"col--last":l===_.length-1,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!v,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":m,"is--drag-active":!e.fixed&&!C&&(X||j||!e.parentId),"is--drag-disabled":C,"col--current":k===e},(0,_utils.getClass)(o,x),(0,_utils.getClass)(E,x)],attrs:r,style:R?_xeUtils.default.isFunction(R)?R(x):R:null,on:f,key:H||I||U||q.useKey||q.drag||d?u:l},[b("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":p}]},e.renderHeader(b,x)),c||d||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:q.resizable||D)?null:b("div",{class:["vxe-resizable",{"is--line":!M||"none"===M}],on:{mousedown:e=>y.resizeMousedownEvent(e,x),dblclick:e=>$.handleResizeDblclickEvent(e,x)}})])}).concat(e?[b("th",{key:"gr"+w,class:"vxe-header--gutter col--gutter"})]:[])};function renderHeads(r,a,e){let i=a.$parent;var l=i;let n=a.fixedType,o=i.computeColumnOpts,d=i.computeColumnDragOpts,{headerRowClassName:s,headerRowStyle:u}=l,c=i.isDragColMove;return e.map((e,l)=>{var t={$table:i,$rowIndex:l,fixed:n,type:cellType};return o.drag&&d.animation?r("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(c?"":"-disabled"),class:["vxe-header--row",s?_xeUtils.default.isFunction(s)?s(t):s:""],style:u?_xeUtils.default.isFunction(u)?u(t):u:null}},renderRows(r,a,e,l)):r("tr",{key:l,class:["vxe-header--row",s?_xeUtils.default.isFunction(s)?s(t):s:""],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=this.$parent,l=e.tId,{fixedType:r,fixedColumn:a,tableColumn:i}=this,n=this.headerColumn,{showHeaderOverflow:o,spanMethod:d,footerSpanMethod:s}=e,{isGroup:u,scrollXLoad:c,scrollYLoad:p,scrollbarWidth:h,dragCol:m}=e,{visibleColumn:g,fullColumnIdData:f}=e;let x=n,v=i;return u?v=g:(r&&(v=!(c||p||o)||d||s?g:a||[]),x=[v]),r||u||c&&m&&2<v.length&&(n=f[m.id])&&(i=n._index,p=v[0],o=v[v.length-1],d=f[p.id],s=f[o.id],d)&&s&&(g=d._index,a=s._index,console.log(m.id,i,g,a,v.length),i<g?(v=[m].concat(v),x=[[m].concat(x[0])].concat(x.slice(1))):a<i&&(v=v.concat([m]),x=[x[0].concat([m])].concat(x.slice(1))),console.log(v.length)),t("div",{class:["vxe-table--header-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],attrs:{xid:l}},[r?renderEmptyElement(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"},v.map((e,l)=>t("col",{attrs:{name:e.id},key:l})).concat(h?[t("col",{attrs:{name:"col_gutter"}})]:[])),t("thead",{ref:"thead"},renderHeads(t,this,x))]),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):[]},resizeMousedownEvent(e,t){var l=this.$parent;let d=t.column,{$parent:r,fixedType:s}=this,a=l.visibleColumn,{tableBody:i,leftContainer:u,rightContainer:c}=r.$refs,p=l.$el,h=r.$refs.resizeBar,m=r.$refs.refCellResizeTip,g=this.$el,f=e.clientX;var n=e.target;let x=n.parentNode;var o=Object.assign(t,{cell:x});let v=l.computeResizableOpts,C=0,b=i.$el;var l=(0,_dom.getOffsetPos)(n,p),n=n.clientWidth,y=Math.floor(n/2);let _=(0,_util.getColReMinWidth)(o)-y,w=l.left-x.clientWidth+n+_,$=l.left+y,z=document.onmousemove,W=document.onmouseup,D="left"===s,M="right"===s,H=0;if(D||M){var E=D?"nextElementSibling":"previousElementSibling";let e=x[E];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(H+=e.offsetWidth),e=e[E];M&&c&&($=c.offsetLeft+H)}function R(l){l.stopPropagation(),l.preventDefault();var t=l.clientX-f;let e=$+t;if(t=s?0:b.scrollLeft,D?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-H-_):M?(w=(u?u.clientWidth:0)+H+_,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=g.getBoundingClientRect(),i=h.clientWidth,n=m.clientWidth,o=m.clientHeight;let e=-n;t<n+i?e=n+i-t:r<t&&(e+=r-t),m.style.left=e+"px",m.style.top=Math.min(p.clientHeight-o,Math.max(0,l.clientY-a.y-o/2))+"px",m.textContent=getI18n("vxe.table.resizeColTip",[d.renderWidth+(M?$-C:C-$)])}}r._isResize=!0,(0,_dom.addClass)(r.$el,"drag--resize"),h.style.display="block",document.onmousemove=R,document.onmouseup=function(e){document.onmousemove=z,document.onmouseup=W;let l=d.renderWidth+(M?$-C:C-$);d.resizeWidth=l,"fixed"===v.dragMode&&a.forEach(e=>{e.id===d.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")},R(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{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=(_,w,H,$,z,T)=>{let D=w.$parent,E=D.xegrid;var e=D,l=D,r=D;let R=w.fixedType,{resizable:S,border:M,columnKey:W,headerCellClassName:I,headerCellStyle:O,showHeaderOverflow:k,headerAlign:U,align:A,mouseConfig:L}=e,{currentColumn:X,scrollXLoad:q,scrollYLoad:F,overflowX:B}=l,N=r.scrollXStore,j=D.computeColumnOpts,G=D.computeColumnDragOpts,{disabledMethod:P,isCrossDrag:V,isPeerDrag:Y}=G;return z.map((e,l)=>{var{type:r,showHeaderOverflow:t,headerAlign:a,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,c=R?e.fixed!==R&&!o:e.fixed&&B,t=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?k:t,a=a||(s?s.tableHeaderCellAlign:"")||U||i||(s?s.tableCellAlign:"")||A;let p="ellipsis"===t;i="title"===t,s=!0===t||"tooltip"===t;let f=i||s||p,m=!1,h=null;d&&(h=d[0],m=d.some(e=>e.checked));var t=D.getColumnIndex(e),g=D.getVTColumnIndex(e);let v={$table:D,$grid:E,$rowIndex:T,column:e,columnIndex:t,$columnIndex:l,_columnIndex:g,firstFilterOption:h,fixed:R,type:cellType,isHidden:c,hasFilter:m};var t={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},x={click:e=>D.triggerHeaderCellClickEvent(e,v),dblclick:e=>D.triggerHeaderCellDblclickEvent(e,v)},C=(q&&!f&&(p=f=!0),j.drag&&"cell"===G.trigger);let b=!1;C&&(b=!(!P||!P(v))),(L||C)&&(x.mousedown=e=>D.triggerHeaderCellMousedownEvent(e,v)),j.drag&&(x.dragstart=D.handleHeaderCellDragDragstartEvent,x.dragend=D.handleHeaderCellDragDragendEvent,x.dragover=D.handleHeaderCellDragDragoverEvent,C)&&(x.mouseup=D.handleHeaderCellDragMouseupEvent);C=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let y=!1;return q&&!H&&!e.fixed&&(g<N.visibleStartIndex||g>N.visibleEndIndex)&&(y=!0),_("th",{class:["vxe-header--column",u,{["col--"+a]:a,["col--"+r]:r,"col--last":l===z.length-1,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":f,"fixed--width":!C,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":m,"is--drag-active":!e.fixed&&!b&&(V||Y||!e.parentId),"is--drag-disabled":b,"col--current":X===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(I,v)],attrs:t,style:O?_xeUtils.default.isFunction(O)?O(v):O:void 0,on:x,key:W||q||F||j.useKey||j.drag||o?u:l},[_("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":p}]},y||$&&c?[]:e.renderHeader(_,v)),c||o||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:j.resizable||S)?null:_("div",{class:["vxe-resizable",{"is--line":!M||"none"===M}],on:{mousedown:e=>w.resizeMousedownEvent(e,v),dblclick:e=>D.handleResizeDblclickEvent(e,v)}})])})};function renderHeads(t,a,i,d,e){let n=a.$parent;var l=n,r=n;let o=a.fixedType,s=n.computeColumnOpts,u=n.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,f=r.isDragColMove;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:o,type:cellType};return s.drag&&u.animation?t("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(t,a,i,d,e,l)):t("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(t,a,i,d,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,t=l,a=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{showHeaderOverflow:e,spanMethod:u,footerSpanMethod:c}=e,{isGroup:t,scrollXLoad:p,scrollYLoad:f,dragCol:m}=t,{visibleColumn:a,fullColumnIdData:h}=a;let g=s,v=o,x=!1;return t?v=a:(!(p||f||e)||u||c||(x=!0),d&&(v=a,x)&&(v=n||[]),g=[v]),d||t||p&&m&&2<v.length&&(s=h[m.id])&&(f=s._index,e=v[0],u=v[v.length-1],c=h[e.id],a=h[u.id],c)&&a&&(p=c._index,s=a._index,f<p?(v=[m].concat(v),g=[[m].concat(g[0])].concat(g.slice(1))):s<f&&(v=v.concat([m]),g=[g[0].concat([m])].concat(g.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}},[r("colgroup",{ref:"refHeaderColgroup"},v.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,t,x,g))]),r("div",{ref:"refHeaderBorderRepair",class:"vxe-table--header-border-line"})])])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]},resizeMousedownEvent(e,r){var l=this.$parent;let o=r.column,{$parent:t,fixedType:s}=this,a=l.visibleColumn,{refTableBody:i,refLeftContainer:u,refRightContainer:c}=t.$refs,p=l.$el,f=t.$refs.refCellResizeBar,m=t.$refs.refCellResizeTip,h=this.$el,g=e.clientX;var d=e.target;let v=d.parentNode;var n=Object.assign(r,{cell:v});let x=l.computeResizableOpts,C=0,b=i.$el;var l=(0,_dom.getOffsetPos)(d,p),d=d.clientWidth,y=Math.floor(d/2);let _=(0,_util.getColReMinWidth)(n)-y,w=l.left-v.clientWidth+d+_,H=l.left+y,$=document.onmousemove,z=document.onmouseup,T="left"===s,D="right"===s,E=0;if(T||D){var R=T?"nextElementSibling":"previousElementSibling";let e=v[R];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(E+=e.offsetWidth),e=e[R];D&&c&&(H=c.offsetLeft+E)}function S(l){l.stopPropagation(),l.preventDefault();var r=l.clientX-g;let e=H+r;if(r=s?0:b.scrollLeft,T?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-E-_):D?(w=(u?u.clientWidth:0)+E+_,e=Math.min(e,H+v.clientWidth-_)):w=Math.max(b.scrollLeft,w),r=(C=Math.max(e,w))-r,f.style.left=r+"px",x.showDragTip&&m){var t=p.clientWidth,a=h.getBoundingClientRect(),i=f.clientWidth,d=m.clientWidth,n=m.clientHeight;let e=-d;r<d+i?e=d+i-r:t<r&&(e+=t-r),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=getI18n("vxe.table.resizeColTip",[o.renderWidth+(D?H-C:C-H)])}}t._isResize=!0,(0,_dom.addClass)(t.$el,"drag--resize"),f.style.display="block",document.onmousemove=S,document.onmouseup=function(e){document.onmousemove=$,document.onmouseup=z;let l=o.renderWidth+(D?H-C:C-H);o.resizeWidth=l,"fixed"===x.dragMode&&a.forEach(e=>{e.id===o.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),f.style.display="none",t._isResize=!1,t._lastResizeTime=Date.now(),t.analyColumnWidth(),t.recalculate(!0).then(()=>{t.saveCustomStore("update:visible"),t.updateCellAreas(),t.emitEvent("resizable-change",Object.assign(Object.assign({},r),{resizeWidth:l}),e),setTimeout(()=>t.recalculate(!0),300)}),(0,_dom.removeClass)(t.$el,"drag--resize")},S(e),t.closeMenu()}}};