vxe-table 4.19.1 → 4.19.3

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 (181) hide show
  1. package/dist/all.esm.js +31932 -0
  2. package/dist/style.css +1 -0
  3. package/dist/style.min.css +1 -0
  4. package/es/index.css +1 -1
  5. package/es/index.min.css +1 -1
  6. package/es/locale/lang/ar-EG.js +6 -2
  7. package/es/locale/lang/de-DE.js +6 -2
  8. package/es/locale/lang/en-US.js +6 -2
  9. package/es/locale/lang/es-ES.js +6 -2
  10. package/es/locale/lang/fr-FR.js +6 -2
  11. package/es/locale/lang/hu-HU.js +6 -2
  12. package/es/locale/lang/hy-AM.js +6 -2
  13. package/es/locale/lang/id-ID.js +6 -2
  14. package/es/locale/lang/it-IT.js +6 -2
  15. package/es/locale/lang/ja-JP.js +6 -2
  16. package/es/locale/lang/ko-KR.js +6 -2
  17. package/es/locale/lang/ms-MY.js +6 -2
  18. package/es/locale/lang/nb-NO.js +6 -2
  19. package/es/locale/lang/pt-BR.js +6 -2
  20. package/es/locale/lang/ru-RU.js +6 -2
  21. package/es/locale/lang/th-TH.js +6 -2
  22. package/es/locale/lang/ug-CN.js +6 -2
  23. package/es/locale/lang/uk-UA.js +6 -2
  24. package/es/locale/lang/uz-UZ.js +6 -2
  25. package/es/locale/lang/vi-VN.js +6 -2
  26. package/es/locale/lang/zh-CHT.js +6 -2
  27. package/es/locale/lang/zh-CN.js +6 -2
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table/module/custom/panel.js +29 -22
  31. package/es/table/module/export/export-panel.js +27 -16
  32. package/es/table/module/export/hook.js +120 -27
  33. package/es/table/module/validator/hook.js +2 -2
  34. package/es/table/src/cell.js +1 -1
  35. package/es/table/src/column.js +2 -0
  36. package/es/table/src/columnInfo.js +1 -0
  37. package/es/table/src/table.js +94 -31
  38. package/es/table/src/util.js +3 -1
  39. package/es/table/style.css +1 -1
  40. package/es/table/style.min.css +1 -1
  41. package/es/ui/index.js +1 -1
  42. package/es/ui/src/log.js +1 -1
  43. package/es/vxe-table/style.css +1 -1
  44. package/es/vxe-table/style.min.css +1 -1
  45. package/lib/index.css +1 -1
  46. package/lib/index.min.css +1 -1
  47. package/lib/index.umd.js +213 -75
  48. package/lib/index.umd.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.js +6 -2
  50. package/lib/locale/lang/ar-EG.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.umd.js +6 -2
  52. package/lib/locale/lang/de-DE.js +6 -2
  53. package/lib/locale/lang/de-DE.min.js +1 -1
  54. package/lib/locale/lang/de-DE.umd.js +6 -2
  55. package/lib/locale/lang/en-US.js +6 -2
  56. package/lib/locale/lang/en-US.min.js +1 -1
  57. package/lib/locale/lang/en-US.umd.js +6 -2
  58. package/lib/locale/lang/es-ES.js +6 -2
  59. package/lib/locale/lang/es-ES.min.js +1 -1
  60. package/lib/locale/lang/es-ES.umd.js +6 -2
  61. package/lib/locale/lang/fr-FR.js +6 -2
  62. package/lib/locale/lang/fr-FR.min.js +1 -1
  63. package/lib/locale/lang/fr-FR.umd.js +6 -2
  64. package/lib/locale/lang/hu-HU.js +6 -2
  65. package/lib/locale/lang/hu-HU.min.js +1 -1
  66. package/lib/locale/lang/hu-HU.umd.js +6 -2
  67. package/lib/locale/lang/hy-AM.js +6 -2
  68. package/lib/locale/lang/hy-AM.min.js +1 -1
  69. package/lib/locale/lang/hy-AM.umd.js +6 -2
  70. package/lib/locale/lang/id-ID.js +6 -2
  71. package/lib/locale/lang/id-ID.min.js +1 -1
  72. package/lib/locale/lang/id-ID.umd.js +6 -2
  73. package/lib/locale/lang/it-IT.js +6 -2
  74. package/lib/locale/lang/it-IT.min.js +1 -1
  75. package/lib/locale/lang/it-IT.umd.js +6 -2
  76. package/lib/locale/lang/ja-JP.js +6 -2
  77. package/lib/locale/lang/ja-JP.min.js +1 -1
  78. package/lib/locale/lang/ja-JP.umd.js +6 -2
  79. package/lib/locale/lang/ko-KR.js +6 -2
  80. package/lib/locale/lang/ko-KR.min.js +1 -1
  81. package/lib/locale/lang/ko-KR.umd.js +6 -2
  82. package/lib/locale/lang/ms-MY.js +6 -2
  83. package/lib/locale/lang/ms-MY.min.js +1 -1
  84. package/lib/locale/lang/ms-MY.umd.js +6 -2
  85. package/lib/locale/lang/nb-NO.js +6 -2
  86. package/lib/locale/lang/nb-NO.min.js +1 -1
  87. package/lib/locale/lang/nb-NO.umd.js +6 -2
  88. package/lib/locale/lang/pt-BR.js +6 -2
  89. package/lib/locale/lang/pt-BR.min.js +1 -1
  90. package/lib/locale/lang/pt-BR.umd.js +6 -2
  91. package/lib/locale/lang/ru-RU.js +6 -2
  92. package/lib/locale/lang/ru-RU.min.js +1 -1
  93. package/lib/locale/lang/ru-RU.umd.js +6 -2
  94. package/lib/locale/lang/th-TH.js +6 -2
  95. package/lib/locale/lang/th-TH.min.js +1 -1
  96. package/lib/locale/lang/th-TH.umd.js +6 -2
  97. package/lib/locale/lang/ug-CN.js +6 -2
  98. package/lib/locale/lang/ug-CN.min.js +1 -1
  99. package/lib/locale/lang/ug-CN.umd.js +6 -2
  100. package/lib/locale/lang/uk-UA.js +6 -2
  101. package/lib/locale/lang/uk-UA.min.js +1 -1
  102. package/lib/locale/lang/uk-UA.umd.js +6 -2
  103. package/lib/locale/lang/uz-UZ.js +6 -2
  104. package/lib/locale/lang/uz-UZ.min.js +1 -1
  105. package/lib/locale/lang/uz-UZ.umd.js +6 -2
  106. package/lib/locale/lang/vi-VN.js +6 -2
  107. package/lib/locale/lang/vi-VN.min.js +1 -1
  108. package/lib/locale/lang/vi-VN.umd.js +6 -2
  109. package/lib/locale/lang/zh-CHT.js +6 -2
  110. package/lib/locale/lang/zh-CHT.min.js +1 -1
  111. package/lib/locale/lang/zh-CHT.umd.js +6 -2
  112. package/lib/locale/lang/zh-CN.js +6 -2
  113. package/lib/locale/lang/zh-CN.min.js +1 -1
  114. package/lib/locale/lang/zh-CN.umd.js +6 -2
  115. package/lib/style.css +1 -1
  116. package/lib/style.min.css +1 -1
  117. package/lib/table/module/custom/panel.js +30 -21
  118. package/lib/table/module/custom/panel.min.js +1 -1
  119. package/lib/table/module/export/export-panel.js +22 -13
  120. package/lib/table/module/export/export-panel.min.js +1 -1
  121. package/lib/table/module/export/hook.js +139 -28
  122. package/lib/table/module/export/hook.min.js +1 -1
  123. package/lib/table/module/validator/hook.js +2 -2
  124. package/lib/table/module/validator/hook.min.js +1 -1
  125. package/lib/table/src/cell.js +1 -1
  126. package/lib/table/src/cell.min.js +1 -1
  127. package/lib/table/src/column.js +2 -0
  128. package/lib/table/src/column.min.js +1 -1
  129. package/lib/table/src/columnInfo.js +1 -0
  130. package/lib/table/src/columnInfo.min.js +1 -1
  131. package/lib/table/src/table.js +5 -5
  132. package/lib/table/src/table.min.js +1 -1
  133. package/lib/table/src/util.js +3 -1
  134. package/lib/table/src/util.min.js +1 -1
  135. package/lib/table/style/style.css +1 -1
  136. package/lib/table/style/style.min.css +1 -1
  137. package/lib/ui/index.js +1 -1
  138. package/lib/ui/index.min.js +1 -1
  139. package/lib/ui/src/log.js +1 -1
  140. package/lib/ui/src/log.min.js +1 -1
  141. package/lib/vxe-table/style/style.css +1 -1
  142. package/lib/vxe-table/style/style.min.css +1 -1
  143. package/package.json +5 -2
  144. package/packages/locale/lang/ar-EG.ts +6 -2
  145. package/packages/locale/lang/de-DE.ts +6 -2
  146. package/packages/locale/lang/en-US.ts +6 -2
  147. package/packages/locale/lang/es-ES.ts +6 -2
  148. package/packages/locale/lang/fr-FR.ts +6 -2
  149. package/packages/locale/lang/hu-HU.ts +6 -2
  150. package/packages/locale/lang/hy-AM.ts +6 -2
  151. package/packages/locale/lang/id-ID.ts +6 -2
  152. package/packages/locale/lang/it-IT.ts +6 -2
  153. package/packages/locale/lang/ja-JP.ts +6 -2
  154. package/packages/locale/lang/ko-KR.ts +6 -2
  155. package/packages/locale/lang/ms-MY.ts +6 -2
  156. package/packages/locale/lang/nb-NO.ts +6 -2
  157. package/packages/locale/lang/pt-BR.ts +6 -2
  158. package/packages/locale/lang/ru-RU.ts +6 -2
  159. package/packages/locale/lang/th-TH.ts +6 -2
  160. package/packages/locale/lang/ug-CN.ts +6 -2
  161. package/packages/locale/lang/uk-UA.ts +6 -2
  162. package/packages/locale/lang/uz-UZ.ts +6 -2
  163. package/packages/locale/lang/vi-VN.ts +6 -2
  164. package/packages/locale/lang/zh-CHT.ts +6 -2
  165. package/packages/locale/lang/zh-CN.ts +6 -2
  166. package/packages/table/module/custom/panel.ts +30 -23
  167. package/packages/table/module/export/export-panel.ts +27 -16
  168. package/packages/table/module/export/hook.ts +121 -28
  169. package/packages/table/module/validator/hook.ts +2 -2
  170. package/packages/table/src/cell.ts +1 -1
  171. package/packages/table/src/column.ts +2 -0
  172. package/packages/table/src/columnInfo.ts +1 -0
  173. package/packages/table/src/table.ts +96 -31
  174. package/packages/table/src/util.ts +3 -1
  175. package/styles/components/table-module/export.scss +1 -1
  176. /package/es/{iconfont.1779447258442.ttf → iconfont.1779843543280.ttf} +0 -0
  177. /package/es/{iconfont.1779447258442.woff → iconfont.1779843543280.woff} +0 -0
  178. /package/es/{iconfont.1779447258442.woff2 → iconfont.1779843543280.woff2} +0 -0
  179. /package/lib/{iconfont.1779447258442.ttf → iconfont.1779843543280.ttf} +0 -0
  180. /package/lib/{iconfont.1779447258442.woff → iconfont.1779843543280.woff} +0 -0
  181. /package/lib/{iconfont.1779447258442.woff2 → iconfont.1779843543280.woff2} +0 -0
@@ -312,6 +312,11 @@ export default defineVxeComponent({
312
312
  return computeAggregateOpts.value
313
313
  })
314
314
 
315
+ const computeAggregateMode = computed(() => {
316
+ const aggregateOpts = computeAggregateOpts.value
317
+ return aggregateOpts.mode
318
+ })
319
+
315
320
  const computeAggregateAccuracyOpts = computed(() => {
316
321
  return Object.assign({}, getConfig().table.aggregateAccuracyConfig, props.aggregateAccuracyConfig)
317
322
  })
@@ -3616,12 +3621,12 @@ export default defineVxeComponent({
3616
3621
  }
3617
3622
  }
3618
3623
 
3619
- const handleGroupData = (list: any[], rowGroups: VxeTableDefines.RowGroupItem[]) => {
3624
+ const handleGroupData = (list: any[], rowGroups: VxeTableDefines.RowGroupItem[], isCombinedField?: boolean) => {
3620
3625
  let fullData = list
3621
3626
  let treeData = list
3622
3627
  if (rowGroups) {
3623
3628
  const aggregateOpts = computeAggregateOpts.value
3624
- const { rowField, parentField, childrenField, mapChildrenField } = aggregateOpts
3629
+ const { rowField, parentField, separator, childrenField, mapChildrenField } = aggregateOpts
3625
3630
  const rowOpts = computeRowOpts.value
3626
3631
  const checkboxOpts = computeCheckboxOpts.value
3627
3632
  const { checkField } = checkboxOpts
@@ -3633,11 +3638,26 @@ export default defineVxeComponent({
3633
3638
  const groupField = rgItem.field
3634
3639
  const groupColumn = $xeTable.getColumnByField(groupField)
3635
3640
  const groupMaps: Record<string, any[]> = {}
3641
+ const groupCombinedMaps: Record<string, any[]> = {}
3636
3642
  const aggList: VxeTableDefines.AggregateRowInfo[] = []
3637
3643
  const rowkey = getRowkey($xeTable)
3638
3644
  list.forEach((row) => {
3639
3645
  const cellValue = groupColumn ? $xeTable.getCellLabel(row, groupColumn) : XEUtils.get(row, groupField)
3640
- const groupValue = XEUtils.eqNull(cellValue) ? '' : cellValue
3646
+ let groupValue = XEUtils.eqNull(cellValue) ? '' : cellValue
3647
+ if (isCombinedField) {
3648
+ const groupVals = [groupValue]
3649
+ rowGroups.slice(1).forEach(ogItem => {
3650
+ const ogField = ogItem.field
3651
+ const ogColumn = $xeTable.getColumnByField(ogField)
3652
+ const ocValue = ogColumn ? $xeTable.getCellLabel(row, ogColumn) : XEUtils.get(row, ogField)
3653
+ const ogValue = XEUtils.eqNull(ocValue) ? '' : ocValue
3654
+ groupValue += (separator || ' / ') + ogValue
3655
+ groupVals.push(ogValue)
3656
+ })
3657
+ if (!groupCombinedMaps[groupValue]) {
3658
+ groupCombinedMaps[groupValue] = groupVals
3659
+ }
3660
+ }
3641
3661
  let childList = groupMaps[groupValue]
3642
3662
  if (!childList) {
3643
3663
  childList = []
@@ -3648,33 +3668,61 @@ export default defineVxeComponent({
3648
3668
  }
3649
3669
  childList.push(row)
3650
3670
  })
3651
- XEUtils.objectEach(groupMaps, (childList, groupValue) => {
3652
- const { fullData: childFullData, treeData: childTreeData } = handleGroupData(childList, rowGroups.slice(1))
3653
- const aggRow: VxeTableDefines.AggregateRowInfo = {
3654
- isAggregate: true,
3655
- aggData: {},
3656
- groupContent: groupValue,
3657
- groupField,
3658
- childCount: 0,
3659
- [rowField]: getRowUniqueId(),
3660
- [parentField]: null,
3661
- [childrenField]: childTreeData,
3662
- [mapChildrenField]: childTreeData
3663
- }
3664
- aggRow[rowkey] = createRowId(rowOpts, aggRow, rowkey)
3665
- if (checkField) {
3666
- aggRow[checkField] = false
3667
- }
3668
- if (indeterminateField) {
3669
- aggRow[indeterminateField] = false
3670
- }
3671
- aggList.push(aggRow)
3672
- treeData.push(aggRow)
3673
- fullData.push(aggRow)
3674
- if (childFullData.length) {
3675
- fullData.push(...childFullData)
3676
- }
3677
- })
3671
+ if (isCombinedField) {
3672
+ XEUtils.objectEach(groupMaps, (childList, groupValue) => {
3673
+ const aggRow: VxeTableDefines.AggregateRowInfo = {
3674
+ isAggregate: true,
3675
+ aggData: {},
3676
+ groupContent: groupValue,
3677
+ groupCombineds: groupCombinedMaps[groupValue],
3678
+ groupField,
3679
+ childCount: 0,
3680
+ [rowField]: getRowUniqueId(),
3681
+ [parentField]: null,
3682
+ [childrenField]: childList,
3683
+ [mapChildrenField]: childList
3684
+ }
3685
+ aggRow[rowkey] = createRowId(rowOpts, aggRow, rowkey)
3686
+ if (checkField) {
3687
+ aggRow[checkField] = false
3688
+ }
3689
+ if (indeterminateField) {
3690
+ aggRow[indeterminateField] = false
3691
+ }
3692
+ aggList.push(aggRow)
3693
+ treeData.push(aggRow)
3694
+ fullData.push(aggRow)
3695
+ })
3696
+ } else {
3697
+ XEUtils.objectEach(groupMaps, (childList, groupValue) => {
3698
+ const { fullData: childFullData, treeData: childTreeData } = handleGroupData(childList, rowGroups.slice(1))
3699
+ const aggRow: VxeTableDefines.AggregateRowInfo = {
3700
+ isAggregate: true,
3701
+ aggData: {},
3702
+ groupContent: groupValue,
3703
+ groupCombineds: [],
3704
+ groupField,
3705
+ childCount: 0,
3706
+ [rowField]: getRowUniqueId(),
3707
+ [parentField]: null,
3708
+ [childrenField]: childTreeData,
3709
+ [mapChildrenField]: childTreeData
3710
+ }
3711
+ aggRow[rowkey] = createRowId(rowOpts, aggRow, rowkey)
3712
+ if (checkField) {
3713
+ aggRow[checkField] = false
3714
+ }
3715
+ if (indeterminateField) {
3716
+ aggRow[indeterminateField] = false
3717
+ }
3718
+ aggList.push(aggRow)
3719
+ treeData.push(aggRow)
3720
+ fullData.push(aggRow)
3721
+ if (childFullData.length) {
3722
+ fullData.push(...childFullData)
3723
+ }
3724
+ })
3725
+ }
3678
3726
  handleeGroupSummary(aggList)
3679
3727
  }
3680
3728
  }
@@ -3684,6 +3732,14 @@ export default defineVxeComponent({
3684
3732
  }
3685
3733
  }
3686
3734
 
3735
+ const initGroupData = (list: any[], rowGroups: VxeTableDefines.RowGroupItem[]) => {
3736
+ const aggregateOpts = computeAggregateOpts.value
3737
+ const { mode } = aggregateOpts
3738
+ const isCombinedField = mode === 'combined'
3739
+ const groupRest = handleGroupData(list, rowGroups, isCombinedField)
3740
+ return groupRest
3741
+ }
3742
+
3687
3743
  const initData = () => {
3688
3744
  const { data } = props
3689
3745
  loadTableData(data || [], true, true).then(() => {
@@ -3765,7 +3821,7 @@ export default defineVxeComponent({
3765
3821
  treeData = fullData.slice(0)
3766
3822
  }
3767
3823
  } else if ((aggregateConfig || rowGroupConfig) && rowGroupList.length) {
3768
- const groupRest = handleGroupData(fullData, rowGroupList)
3824
+ const groupRest = initGroupData(fullData, rowGroupList)
3769
3825
  treeData = groupRest.treeData
3770
3826
  fullData = groupRest.fullData
3771
3827
  isRGroup = true
@@ -13878,6 +13934,12 @@ export default defineVxeComponent({
13878
13934
  internalData.keepUpdateFieldMaps = kpfMaps
13879
13935
  })
13880
13936
 
13937
+ watch(computeAggregateMode, () => {
13938
+ if (reactData.isRowGroupStatus) {
13939
+ loadTableData(internalData.tableSynchData, false, true)
13940
+ }
13941
+ })
13942
+
13881
13943
  if ($xeTabs) {
13882
13944
  watch(() => $xeTabs ? $xeTabs.reactData.resizeFlag : null, () => {
13883
13945
  handleGlobalResizeEvent()
@@ -14040,6 +14102,9 @@ export default defineVxeComponent({
14040
14102
  if (exportConfig && exportOpts.types && !exportOpts.exportMethod && !XEUtils.includeArrays(XEUtils.keys(exportOpts._typeMaps), exportOpts.types)) {
14041
14103
  warnLog('vxe.error.errProp', [`export-config.types=${exportOpts.types.join(',')}`, exportOpts.types.filter((type) => XEUtils.includes(XEUtils.keys(exportOpts._typeMaps), type)).join(',') || XEUtils.keys(exportOpts._typeMaps).join(',')])
14042
14104
  }
14105
+ if (exportConfig && XEUtils.isBoolean((exportOpts as any).isAllExpand)) {
14106
+ warnLog('vxe.error.delProp', ['isAllExpand', 'isTreeAllExpanded'])
14107
+ }
14043
14108
 
14044
14109
  if (!props.id) {
14045
14110
  if ((props.customConfig ? isEnableConf(customOpts) : customOpts.enabled) && customOpts.storage) {
@@ -342,6 +342,7 @@ export function createReactData (): TableReactData {
342
342
  hasFooter: false,
343
343
  hasMerge: false,
344
344
  hasTree: false,
345
+ hasRowGroup: false,
345
346
  hasColgroup: false,
346
347
  visible: false
347
348
  },
@@ -352,7 +353,8 @@ export function createReactData (): TableReactData {
352
353
  type: '',
353
354
  isColgroup: false,
354
355
  isMerge: false,
355
- isAllExpand: false,
356
+ isTreeAllExpanded: false,
357
+ isRowGroupAllExpanded: false,
356
358
  useStyle: false,
357
359
  original: false,
358
360
  message: true,
@@ -37,7 +37,7 @@
37
37
  width: 80%;
38
38
  }
39
39
  & > .vxe-table-export--panel-option-row {
40
- padding: 0.25em 0;
40
+ padding: 0.5em 0;
41
41
  }
42
42
  }
43
43
  }