vxe-table 3.14.0-beta.2 → 3.14.0-beta.21

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 (165) hide show
  1. package/es/grid/src/grid.js +78 -48
  2. package/es/locale/lang/ar-EG.js +7 -1
  3. package/es/locale/lang/de-DE.js +7 -1
  4. package/es/locale/lang/en-US.js +7 -1
  5. package/es/locale/lang/es-ES.js +7 -1
  6. package/es/locale/lang/fr-FR.js +7 -1
  7. package/es/locale/lang/hu-HU.js +7 -1
  8. package/es/locale/lang/hy-AM.js +7 -1
  9. package/es/locale/lang/id-ID.js +7 -1
  10. package/es/locale/lang/it-IT.js +7 -1
  11. package/es/locale/lang/ja-JP.js +7 -1
  12. package/es/locale/lang/ko-KR.js +7 -1
  13. package/es/locale/lang/nb-NO.js +7 -1
  14. package/es/locale/lang/pt-BR.js +7 -1
  15. package/es/locale/lang/ru-RU.js +7 -1
  16. package/es/locale/lang/th-TH.js +7 -1
  17. package/es/locale/lang/ug-CN.js +7 -1
  18. package/es/locale/lang/uk-UA.js +7 -1
  19. package/es/locale/lang/vi-VN.js +7 -1
  20. package/es/locale/lang/zh-CHT.js +7 -1
  21. package/es/locale/lang/zh-CN.js +7 -1
  22. package/es/style.css +1 -1
  23. package/es/table/module/edit/mixin.js +14 -9
  24. package/es/table/module/filter/panel.js +12 -2
  25. package/es/table/module/keyboard/mixin.js +86 -21
  26. package/es/table/module/validator/mixin.js +2 -2
  27. package/es/table/render/index.js +90 -59
  28. package/es/table/src/body.js +22 -17
  29. package/es/table/src/cell.js +25 -20
  30. package/es/table/src/footer.js +9 -4
  31. package/es/table/src/header.js +2 -2
  32. package/es/table/src/methods.js +942 -678
  33. package/es/table/src/props.js +4 -0
  34. package/es/table/src/table.js +74 -32
  35. package/es/table/src/util.js +65 -7
  36. package/es/ui/index.js +1 -1
  37. package/es/ui/src/log.js +1 -1
  38. package/helper/vetur/attributes.json +1 -1
  39. package/helper/vetur/tags.json +1 -1
  40. package/lib/grid/src/grid.js +85 -65
  41. package/lib/grid/src/grid.min.js +1 -1
  42. package/lib/index.umd.js +1641 -1076
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/locale/lang/ar-EG.js +7 -1
  45. package/lib/locale/lang/ar-EG.min.js +1 -1
  46. package/lib/locale/lang/de-DE.js +7 -1
  47. package/lib/locale/lang/de-DE.min.js +1 -1
  48. package/lib/locale/lang/en-US.js +7 -1
  49. package/lib/locale/lang/en-US.min.js +1 -1
  50. package/lib/locale/lang/en-US.umd.js +7 -1
  51. package/lib/locale/lang/es-ES.js +7 -1
  52. package/lib/locale/lang/es-ES.min.js +1 -1
  53. package/lib/locale/lang/es-ES.umd.js +7 -1
  54. package/lib/locale/lang/fr-FR.js +7 -1
  55. package/lib/locale/lang/fr-FR.min.js +1 -1
  56. package/lib/locale/lang/hu-HU.js +7 -1
  57. package/lib/locale/lang/hu-HU.min.js +1 -1
  58. package/lib/locale/lang/hu-HU.umd.js +7 -1
  59. package/lib/locale/lang/hy-AM.js +7 -1
  60. package/lib/locale/lang/hy-AM.min.js +1 -1
  61. package/lib/locale/lang/id-ID.js +7 -1
  62. package/lib/locale/lang/id-ID.min.js +1 -1
  63. package/lib/locale/lang/it-IT.js +7 -1
  64. package/lib/locale/lang/it-IT.min.js +1 -1
  65. package/lib/locale/lang/ja-JP.js +7 -1
  66. package/lib/locale/lang/ja-JP.min.js +1 -1
  67. package/lib/locale/lang/ja-JP.umd.js +7 -1
  68. package/lib/locale/lang/ko-KR.js +7 -1
  69. package/lib/locale/lang/ko-KR.min.js +1 -1
  70. package/lib/locale/lang/ko-KR.umd.js +7 -1
  71. package/lib/locale/lang/nb-NO.js +7 -1
  72. package/lib/locale/lang/nb-NO.min.js +1 -1
  73. package/lib/locale/lang/pt-BR.js +7 -1
  74. package/lib/locale/lang/pt-BR.min.js +1 -1
  75. package/lib/locale/lang/pt-BR.umd.js +7 -1
  76. package/lib/locale/lang/ru-RU.js +7 -1
  77. package/lib/locale/lang/ru-RU.min.js +1 -1
  78. package/lib/locale/lang/ru-RU.umd.js +7 -1
  79. package/lib/locale/lang/th-TH.js +7 -1
  80. package/lib/locale/lang/th-TH.min.js +1 -1
  81. package/lib/locale/lang/ug-CN.js +7 -1
  82. package/lib/locale/lang/ug-CN.min.js +1 -1
  83. package/lib/locale/lang/uk-UA.js +7 -1
  84. package/lib/locale/lang/uk-UA.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.umd.js +7 -1
  86. package/lib/locale/lang/vi-VN.js +7 -1
  87. package/lib/locale/lang/vi-VN.min.js +1 -1
  88. package/lib/locale/lang/zh-CHT.js +7 -1
  89. package/lib/locale/lang/zh-CHT.min.js +1 -1
  90. package/lib/locale/lang/zh-CHT.umd.js +7 -1
  91. package/lib/locale/lang/zh-CN.js +7 -1
  92. package/lib/locale/lang/zh-CN.min.js +1 -1
  93. package/lib/locale/lang/zh-CN.umd.js +7 -1
  94. package/lib/style.css +1 -1
  95. package/lib/table/module/edit/mixin.js +16 -11
  96. package/lib/table/module/edit/mixin.min.js +1 -1
  97. package/lib/table/module/filter/panel.js +8 -2
  98. package/lib/table/module/filter/panel.min.js +1 -1
  99. package/lib/table/module/keyboard/mixin.js +89 -25
  100. package/lib/table/module/keyboard/mixin.min.js +1 -1
  101. package/lib/table/module/validator/mixin.js +3 -3
  102. package/lib/table/module/validator/mixin.min.js +1 -1
  103. package/lib/table/render/index.js +99 -64
  104. package/lib/table/render/index.min.js +1 -1
  105. package/lib/table/src/body.js +27 -17
  106. package/lib/table/src/body.min.js +1 -1
  107. package/lib/table/src/cell.js +37 -21
  108. package/lib/table/src/cell.min.js +1 -1
  109. package/lib/table/src/footer.js +9 -3
  110. package/lib/table/src/footer.min.js +1 -1
  111. package/lib/table/src/header.js +2 -1
  112. package/lib/table/src/header.min.js +1 -1
  113. package/lib/table/src/methods.js +1101 -798
  114. package/lib/table/src/methods.min.js +1 -1
  115. package/lib/table/src/props.js +4 -0
  116. package/lib/table/src/props.min.js +1 -1
  117. package/lib/table/src/table.js +79 -31
  118. package/lib/table/src/table.min.js +1 -1
  119. package/lib/table/src/util.js +72 -7
  120. package/lib/table/src/util.min.js +1 -1
  121. package/lib/ui/index.js +1 -1
  122. package/lib/ui/index.min.js +1 -1
  123. package/lib/ui/src/log.js +1 -1
  124. package/lib/ui/src/log.min.js +1 -1
  125. package/package.json +2 -2
  126. package/packages/grid/src/grid.ts +92 -57
  127. package/packages/locale/lang/ar-EG.ts +7 -1
  128. package/packages/locale/lang/de-DE.ts +7 -1
  129. package/packages/locale/lang/en-US.ts +7 -1
  130. package/packages/locale/lang/es-ES.ts +7 -1
  131. package/packages/locale/lang/fr-FR.ts +7 -1
  132. package/packages/locale/lang/hu-HU.ts +7 -1
  133. package/packages/locale/lang/hy-AM.ts +7 -1
  134. package/packages/locale/lang/id-ID.ts +7 -1
  135. package/packages/locale/lang/it-IT.ts +7 -1
  136. package/packages/locale/lang/ja-JP.ts +7 -1
  137. package/packages/locale/lang/ko-KR.ts +7 -1
  138. package/packages/locale/lang/nb-NO.ts +7 -1
  139. package/packages/locale/lang/pt-BR.ts +7 -1
  140. package/packages/locale/lang/ru-RU.ts +7 -1
  141. package/packages/locale/lang/th-TH.ts +7 -1
  142. package/packages/locale/lang/ug-CN.ts +7 -1
  143. package/packages/locale/lang/uk-UA.ts +7 -1
  144. package/packages/locale/lang/vi-VN.ts +7 -1
  145. package/packages/locale/lang/zh-CHT.ts +7 -1
  146. package/packages/locale/lang/zh-CN.ts +7 -1
  147. package/packages/table/module/edit/mixin.ts +17 -12
  148. package/packages/table/module/filter/panel.ts +12 -2
  149. package/packages/table/module/keyboard/mixin.ts +94 -27
  150. package/packages/table/module/validator/mixin.ts +2 -2
  151. package/packages/table/render/index.ts +89 -57
  152. package/packages/table/src/body.ts +21 -16
  153. package/packages/table/src/cell.ts +25 -20
  154. package/packages/table/src/footer.ts +9 -4
  155. package/packages/table/src/header.ts +2 -2
  156. package/packages/table/src/methods.ts +1035 -720
  157. package/packages/table/src/props.ts +16 -12
  158. package/packages/table/src/table.ts +87 -35
  159. package/packages/table/src/util.ts +73 -7
  160. /package/es/{iconfont.1741079977180.ttf → iconfont.1742437924038.ttf} +0 -0
  161. /package/es/{iconfont.1741079977180.woff → iconfont.1742437924038.woff} +0 -0
  162. /package/es/{iconfont.1741079977180.woff2 → iconfont.1742437924038.woff2} +0 -0
  163. /package/lib/{iconfont.1741079977180.ttf → iconfont.1742437924038.ttf} +0 -0
  164. /package/lib/{iconfont.1741079977180.woff → iconfont.1742437924038.woff} +0 -0
  165. /package/lib/{iconfont.1741079977180.woff2 → iconfont.1742437924038.woff2} +0 -0
@@ -382,8 +382,8 @@ export const Cell = {
382
382
  const { $table, isHidden } = params;
383
383
  const tableReactData = $table;
384
384
  const tableInternalData = $table;
385
- const { treeExpandedMaps, treeExpandLazyLoadedMaps } = tableReactData;
386
- const { fullAllDataRowIdData } = tableInternalData;
385
+ const { treeExpandedFlag } = tableReactData;
386
+ const { fullAllDataRowIdData, treeExpandedMaps, treeExpandLazyLoadedMaps } = tableInternalData;
387
387
  const treeOpts = $table.computeTreeOpts;
388
388
  const { row, column, level } = params;
389
389
  const { slots } = column;
@@ -403,7 +403,7 @@ export const Cell = {
403
403
  }
404
404
  if (!isHidden) {
405
405
  const rowid = getRowid($table, row);
406
- isActive = !!treeExpandedMaps[rowid];
406
+ isActive = !!treeExpandedFlag && !!treeExpandedMaps[rowid];
407
407
  if (lazy) {
408
408
  const rest = fullAllDataRowIdData[rowid];
409
409
  isLazyLoading = !!treeExpandLazyLoadedMaps[rowid];
@@ -551,7 +551,8 @@ export const Cell = {
551
551
  const headerSlot = slots ? slots.header : null;
552
552
  const titleSlot = slots ? slots.title : null;
553
553
  const checkboxOpts = $table.computeCheckboxOpts;
554
- const headerTitle = column.getTitle();
554
+ const { checkStrictly, showHeader, headerTitle } = checkboxOpts;
555
+ const colTitle = column.getTitle();
555
556
  const ons = {};
556
557
  if (!isHidden) {
557
558
  ons.click = (evnt) => {
@@ -564,11 +565,11 @@ export const Cell = {
564
565
  if (headerSlot) {
565
566
  return renderHeaderCellBaseVNs(h, params, renderTitleContent(h, checkboxParams, $table.callSlot(headerSlot, checkboxParams, h)));
566
567
  }
567
- if (checkboxOpts.checkStrictly ? !checkboxOpts.showHeader : checkboxOpts.showHeader === false) {
568
+ if (checkStrictly ? !showHeader : showHeader === false) {
568
569
  return renderHeaderCellBaseVNs(h, params, renderTitleContent(h, checkboxParams, [
569
570
  h('span', {
570
571
  class: 'vxe-checkbox--label'
571
- }, titleSlot ? $table.callSlot(titleSlot, checkboxParams, h) : headerTitle)
572
+ }, titleSlot ? $table.callSlot(titleSlot, checkboxParams, h) : colTitle)
572
573
  ]));
573
574
  }
574
575
  return renderHeaderCellBaseVNs(h, params, renderTitleContent(h, checkboxParams, [
@@ -579,18 +580,18 @@ export const Cell = {
579
580
  'is--indeterminate': isAllCheckboxIndeterminate
580
581
  }],
581
582
  attrs: {
582
- title: getI18n('vxe.table.allTitle')
583
+ title: XEUtils.eqNull(headerTitle) ? getI18n('vxe.table.allTitle') : `${headerTitle || ''}`
583
584
  },
584
585
  on: ons
585
586
  }, [
586
587
  h('span', {
587
588
  class: ['vxe-checkbox--icon', isAllCheckboxIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllCheckboxSelected ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
588
589
  })
589
- ].concat(titleSlot || headerTitle
590
+ ].concat(titleSlot || colTitle
590
591
  ? [
591
592
  h('span', {
592
593
  class: 'vxe-checkbox--label'
593
- }, titleSlot ? $table.callSlot(titleSlot, checkboxParams, h) : headerTitle)
594
+ }, titleSlot ? $table.callSlot(titleSlot, checkboxParams, h) : colTitle)
594
595
  ]
595
596
  : []))
596
597
  ]));
@@ -599,8 +600,10 @@ export const Cell = {
599
600
  const { $table, row, column, isHidden } = params;
600
601
  const tableProps = $table;
601
602
  const tableReactData = $table;
603
+ const tableInternalData = $table;
602
604
  const { treeConfig } = tableProps;
603
- const { selectCheckboxMaps, treeIndeterminateMaps } = tableReactData;
605
+ const { updateCheckboxFlag } = tableReactData;
606
+ const { selectCheckboxMaps, treeIndeterminateRowMaps } = tableInternalData;
604
607
  const checkboxOpts = $table.computeCheckboxOpts;
605
608
  const { labelField, checkMethod, visibleMethod } = checkboxOpts;
606
609
  const { slots } = column;
@@ -613,7 +616,7 @@ export const Cell = {
613
616
  const ons = {};
614
617
  if (!isHidden) {
615
618
  const rowid = getRowid($table, row);
616
- isChecked = !!selectCheckboxMaps[rowid];
619
+ isChecked = !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
617
620
  ons.click = (evnt) => {
618
621
  if (!isDisabled && isVisible) {
619
622
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
@@ -623,7 +626,7 @@ export const Cell = {
623
626
  isDisabled = !checkMethod({ row });
624
627
  }
625
628
  if (treeConfig) {
626
- indeterminate = !!treeIndeterminateMaps[rowid];
629
+ indeterminate = !!treeIndeterminateRowMaps[rowid];
627
630
  }
628
631
  }
629
632
  const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate });
@@ -660,8 +663,10 @@ export const Cell = {
660
663
  const { $table, row, column, isHidden } = params;
661
664
  const tableProps = $table;
662
665
  const tableReactData = $table;
666
+ const tableInternalData = $table;
663
667
  const { treeConfig } = tableProps;
664
- const { treeIndeterminateMaps } = tableReactData;
668
+ const { updateCheckboxFlag } = tableReactData;
669
+ const { treeIndeterminateRowMaps } = tableInternalData;
665
670
  const checkboxOpts = $table.computeCheckboxOpts;
666
671
  const { labelField, checkField, checkMethod, visibleMethod } = checkboxOpts;
667
672
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
@@ -675,7 +680,7 @@ export const Cell = {
675
680
  const ons = {};
676
681
  if (!isHidden) {
677
682
  const rowid = getRowid($table, row);
678
- isChecked = XEUtils.get(row, checkField);
683
+ isChecked = !!updateCheckboxFlag && XEUtils.get(row, checkField);
679
684
  ons.click = (evnt) => {
680
685
  if (!isDisabled && isVisible) {
681
686
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
@@ -685,7 +690,7 @@ export const Cell = {
685
690
  isDisabled = !checkMethod({ row });
686
691
  }
687
692
  if (treeConfig) {
688
- isIndeterminate = !!treeIndeterminateMaps[rowid];
693
+ isIndeterminate = !!treeIndeterminateRowMaps[rowid];
689
694
  }
690
695
  }
691
696
  const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: isIndeterminate });
@@ -723,8 +728,8 @@ export const Cell = {
723
728
  */
724
729
  renderExpandCell(h, params) {
725
730
  const { $table, isHidden, row, column } = params;
726
- const tableReactData = $table;
727
- const { rowExpandedMaps, rowExpandLazyLoadedMaps } = tableReactData;
731
+ const tableInternalData = $table;
732
+ const { rowExpandedMaps, rowExpandLazyLoadedMaps } = tableInternalData;
728
733
  const expandOpts = $table.computeExpandOpts;
729
734
  const { lazy, labelField, iconLoaded, showIcon, iconOpen, iconClose, visibleMethod } = expandOpts;
730
735
  const { slots } = column;
@@ -820,7 +825,7 @@ export const Cell = {
820
825
  renderSortIcon(h, params) {
821
826
  const { $table, column } = params;
822
827
  const sortOpts = $table.computeSortOpts;
823
- const { showIcon, allowBtn, iconLayout, iconAsc, iconDesc, iconVisibleMethod } = sortOpts;
828
+ const { showIcon, allowBtn, ascTitle, descTitle, iconLayout, iconAsc, iconDesc, iconVisibleMethod } = sortOpts;
824
829
  if (showIcon && (!iconVisibleMethod || iconVisibleMethod(params))) {
825
830
  return [
826
831
  h('span', {
@@ -831,7 +836,7 @@ export const Cell = {
831
836
  'sort--active': column.order === 'asc'
832
837
  }],
833
838
  attrs: {
834
- title: getI18n('vxe.table.sortAsc')
839
+ title: XEUtils.eqNull(ascTitle) ? getI18n('vxe.table.sortAsc') : `${ascTitle || ''}`
835
840
  },
836
841
  on: allowBtn
837
842
  ? {
@@ -847,7 +852,7 @@ export const Cell = {
847
852
  'sort--active': column.order === 'desc'
848
853
  }],
849
854
  attrs: {
850
- title: getI18n('vxe.table.sortDesc')
855
+ title: XEUtils.eqNull(descTitle) ? getI18n('vxe.table.sortDesc') : `${descTitle || ''}`
851
856
  },
852
857
  on: allowBtn
853
858
  ? {
@@ -100,6 +100,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
100
100
  tfOns.dblclick = (evnt) => {
101
101
  $xeTable.dispatchEvent('footer-cell-dblclick', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
102
102
  };
103
+ let isMergeCell = false;
103
104
  // 合并行或列
104
105
  if (mergeFooterList.length) {
105
106
  const spanRest = mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex);
@@ -109,9 +110,11 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
109
110
  return null;
110
111
  }
111
112
  if (rowspan > 1) {
113
+ isMergeCell = true;
112
114
  attrs.rowspan = rowspan;
113
115
  }
114
116
  if (colspan > 1) {
117
+ isMergeCell = true;
115
118
  attrs.colspan = colspan;
116
119
  }
117
120
  }
@@ -132,8 +135,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
132
135
  const isLastColumn = $columnIndex === tableColumn.length - 1;
133
136
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
134
137
  let isVNPreEmptyStatus = false;
135
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
136
- isVNPreEmptyStatus = true;
138
+ if (!isMergeCell) {
139
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
140
+ isVNPreEmptyStatus = true;
141
+ }
137
142
  }
138
143
  const tcStyle = {};
139
144
  if (hasEllipsis) {
@@ -288,7 +293,7 @@ export default {
288
293
  const { fixedType, fixedColumn, tableColumn } = props;
289
294
  const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
290
295
  const { visibleColumn, fullColumnIdData } = tableInternalData;
291
- const { isGroup, overflowX, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
296
+ const { isGroup, isColLoading, overflowX, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
292
297
  let renderColumnList = tableColumn;
293
298
  let isOptimizeMode = false;
294
299
  // 如果是使用优化模式
@@ -300,7 +305,7 @@ export default {
300
305
  isOptimizeMode = true;
301
306
  }
302
307
  }
303
- if (fixedType || !overflowX) {
308
+ if (!isColLoading && (fixedType || !overflowX)) {
304
309
  renderColumnList = visibleColumn;
305
310
  }
306
311
  if (fixedType) {
@@ -252,7 +252,7 @@ export default {
252
252
  const { fixedType, fixedColumn, tableColumn } = props;
253
253
  const { headerColumn } = this;
254
254
  const { mouseConfig, showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
255
- const { isGroup, overflowX, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
255
+ const { isGroup, isColLoading, overflowX, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
256
256
  const { visibleColumn, fullColumnIdData } = tableInternalData;
257
257
  const mouseOpts = $xeTable.computeMouseOpts;
258
258
  let renderHeaderList = headerColumn;
@@ -271,7 +271,7 @@ export default {
271
271
  isOptimizeMode = true;
272
272
  }
273
273
  }
274
- if (fixedType || !overflowX) {
274
+ if (!isColLoading && (fixedType || !overflowX)) {
275
275
  renderColumnList = visibleColumn;
276
276
  }
277
277
  if (fixedType) {