vxe-table 3.15.17 → 3.15.19

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 (185) hide show
  1. package/es/locale/lang/ar-EG.js +1 -1
  2. package/es/locale/lang/de-DE.js +1 -1
  3. package/es/locale/lang/en-US.js +1 -1
  4. package/es/locale/lang/es-ES.js +1 -1
  5. package/es/locale/lang/fr-FR.d.ts +2 -0
  6. package/es/locale/lang/fr-FR.js +1 -1
  7. package/es/locale/lang/hu-HU.js +1 -1
  8. package/es/locale/lang/hy-AM.d.ts +2 -0
  9. package/es/locale/lang/hy-AM.js +1 -1
  10. package/es/locale/lang/id-ID.d.ts +2 -0
  11. package/es/locale/lang/id-ID.js +1 -1
  12. package/es/locale/lang/it-IT.d.ts +2 -0
  13. package/es/locale/lang/it-IT.js +1 -1
  14. package/es/locale/lang/ja-JP.js +1 -1
  15. package/es/locale/lang/ko-KR.js +1 -1
  16. package/es/locale/lang/ms-MY.d.ts +2 -0
  17. package/es/locale/lang/ms-MY.js +708 -0
  18. package/es/locale/lang/nb-NO.d.ts +2 -0
  19. package/es/locale/lang/nb-NO.js +1 -1
  20. package/es/locale/lang/pt-BR.js +1 -1
  21. package/es/locale/lang/ru-RU.js +1 -1
  22. package/es/locale/lang/th-TH.d.ts +2 -0
  23. package/es/locale/lang/th-TH.js +1 -1
  24. package/es/locale/lang/ug-CN.d.ts +2 -0
  25. package/es/locale/lang/ug-CN.js +1 -1
  26. package/es/locale/lang/uk-UA.js +1 -1
  27. package/es/locale/lang/uz-UZ.d.ts +2 -0
  28. package/es/locale/lang/uz-UZ.js +708 -0
  29. package/es/locale/lang/vi-VN.d.ts +2 -0
  30. package/es/locale/lang/vi-VN.js +1 -1
  31. package/es/locale/lang/zh-CHT.js +1 -1
  32. package/es/locale/lang/zh-CN.js +1 -1
  33. package/es/style.css +1 -1
  34. package/es/table/module/custom/panel.js +1 -1
  35. package/es/table/module/filter/mixin.js +10 -0
  36. package/es/table/render/index.js +27 -21
  37. package/es/table/src/body.js +2 -1
  38. package/es/table/src/footer.js +2 -1
  39. package/es/table/src/header.js +2 -1
  40. package/es/table/src/methods.js +54 -50
  41. package/es/table/src/table.js +2 -2
  42. package/es/ui/index.js +1 -1
  43. package/es/ui/src/log.js +1 -1
  44. package/lib/index.umd.js +112 -80
  45. package/lib/index.umd.min.js +1 -1
  46. package/lib/locale/lang/ar-EG.d.ts +2 -0
  47. package/lib/locale/lang/ar-EG.js +1 -1
  48. package/lib/locale/lang/ar-EG.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.umd.js +728 -0
  50. package/lib/locale/lang/de-DE.d.ts +2 -0
  51. package/lib/locale/lang/de-DE.js +1 -1
  52. package/lib/locale/lang/de-DE.min.js +1 -1
  53. package/lib/locale/lang/de-DE.umd.js +728 -0
  54. package/lib/locale/lang/en-US.js +1 -1
  55. package/lib/locale/lang/en-US.min.js +1 -1
  56. package/lib/locale/lang/en-US.umd.js +1 -1
  57. package/lib/locale/lang/es-ES.js +1 -1
  58. package/lib/locale/lang/es-ES.min.js +1 -1
  59. package/lib/locale/lang/es-ES.umd.js +1 -1
  60. package/lib/locale/lang/fr-FR.d.ts +2 -0
  61. package/lib/locale/lang/fr-FR.js +1 -1
  62. package/lib/locale/lang/fr-FR.min.js +1 -1
  63. package/lib/locale/lang/fr-FR.umd.js +728 -0
  64. package/lib/locale/lang/hu-HU.js +1 -1
  65. package/lib/locale/lang/hu-HU.min.js +1 -1
  66. package/lib/locale/lang/hu-HU.umd.js +1 -1
  67. package/lib/locale/lang/hy-AM.d.ts +2 -0
  68. package/lib/locale/lang/hy-AM.js +1 -1
  69. package/lib/locale/lang/hy-AM.min.js +1 -1
  70. package/lib/locale/lang/hy-AM.umd.js +728 -0
  71. package/lib/locale/lang/id-ID.d.ts +2 -0
  72. package/lib/locale/lang/id-ID.js +1 -1
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/id-ID.umd.js +728 -0
  75. package/lib/locale/lang/it-IT.d.ts +2 -0
  76. package/lib/locale/lang/it-IT.js +1 -1
  77. package/lib/locale/lang/it-IT.min.js +1 -1
  78. package/lib/locale/lang/it-IT.umd.js +728 -0
  79. package/lib/locale/lang/ja-JP.js +1 -1
  80. package/lib/locale/lang/ja-JP.min.js +1 -1
  81. package/lib/locale/lang/ja-JP.umd.js +1 -1
  82. package/lib/locale/lang/ko-KR.js +1 -1
  83. package/lib/locale/lang/ko-KR.min.js +1 -1
  84. package/lib/locale/lang/ko-KR.umd.js +1 -1
  85. package/lib/locale/lang/ms-MY.d.ts +2 -0
  86. package/lib/locale/lang/ms-MY.js +714 -0
  87. package/lib/locale/lang/ms-MY.min.js +1 -0
  88. package/lib/locale/lang/ms-MY.umd.js +728 -0
  89. package/lib/locale/lang/nb-NO.d.ts +2 -0
  90. package/lib/locale/lang/nb-NO.js +1 -1
  91. package/lib/locale/lang/nb-NO.min.js +1 -1
  92. package/lib/locale/lang/nb-NO.umd.js +728 -0
  93. package/lib/locale/lang/pt-BR.js +1 -1
  94. package/lib/locale/lang/pt-BR.min.js +1 -1
  95. package/lib/locale/lang/pt-BR.umd.js +1 -1
  96. package/lib/locale/lang/ru-RU.js +1 -1
  97. package/lib/locale/lang/ru-RU.min.js +1 -1
  98. package/lib/locale/lang/ru-RU.umd.js +1 -1
  99. package/lib/locale/lang/th-TH.d.ts +2 -0
  100. package/lib/locale/lang/th-TH.js +1 -1
  101. package/lib/locale/lang/th-TH.min.js +1 -1
  102. package/lib/locale/lang/th-TH.umd.js +728 -0
  103. package/lib/locale/lang/ug-CN.d.ts +2 -0
  104. package/lib/locale/lang/ug-CN.js +1 -1
  105. package/lib/locale/lang/ug-CN.min.js +1 -1
  106. package/lib/locale/lang/ug-CN.umd.js +728 -0
  107. package/lib/locale/lang/uk-UA.js +1 -1
  108. package/lib/locale/lang/uk-UA.min.js +1 -1
  109. package/lib/locale/lang/uk-UA.umd.js +1 -1
  110. package/lib/locale/lang/uz-UZ.d.ts +2 -0
  111. package/lib/locale/lang/uz-UZ.js +714 -0
  112. package/lib/locale/lang/uz-UZ.min.js +1 -0
  113. package/lib/locale/lang/uz-UZ.umd.js +728 -0
  114. package/lib/locale/lang/vi-VN.d.ts +2 -0
  115. package/lib/locale/lang/vi-VN.js +1 -1
  116. package/lib/locale/lang/vi-VN.min.js +1 -1
  117. package/lib/locale/lang/vi-VN.umd.js +728 -0
  118. package/lib/locale/lang/zh-CHT.js +1 -1
  119. package/lib/locale/lang/zh-CHT.min.js +1 -1
  120. package/lib/locale/lang/zh-CHT.umd.js +1 -1
  121. package/lib/locale/lang/zh-CN.js +1 -1
  122. package/lib/locale/lang/zh-CN.min.js +1 -1
  123. package/lib/locale/lang/zh-CN.umd.js +1 -1
  124. package/lib/locale/lang/zh-TC.min.js +1 -1
  125. package/lib/style.css +1 -1
  126. package/lib/table/module/custom/panel.js +1 -1
  127. package/lib/table/module/custom/panel.min.js +1 -1
  128. package/lib/table/module/filter/mixin.js +10 -0
  129. package/lib/table/module/filter/mixin.min.js +1 -1
  130. package/lib/table/render/index.js +27 -21
  131. package/lib/table/render/index.min.js +1 -1
  132. package/lib/table/src/body.js +2 -1
  133. package/lib/table/src/body.min.js +1 -1
  134. package/lib/table/src/footer.js +2 -1
  135. package/lib/table/src/footer.min.js +1 -1
  136. package/lib/table/src/header.js +2 -1
  137. package/lib/table/src/header.min.js +1 -1
  138. package/lib/table/src/methods.js +62 -49
  139. package/lib/table/src/methods.min.js +1 -1
  140. package/lib/table/src/table.js +2 -2
  141. package/lib/table/src/table.min.js +1 -1
  142. package/lib/ui/index.js +1 -1
  143. package/lib/ui/index.min.js +1 -1
  144. package/lib/ui/src/log.js +1 -1
  145. package/lib/ui/src/log.min.js +1 -1
  146. package/package.json +1 -1
  147. package/packages/locale/lang/ar-EG.ts +1 -1
  148. package/packages/locale/lang/de-DE.ts +1 -1
  149. package/packages/locale/lang/en-US.ts +1 -1
  150. package/packages/locale/lang/es-ES.ts +1 -1
  151. package/packages/locale/lang/fr-FR.ts +1 -1
  152. package/packages/locale/lang/hu-HU.ts +1 -1
  153. package/packages/locale/lang/hy-AM.ts +1 -1
  154. package/packages/locale/lang/id-ID.ts +1 -1
  155. package/packages/locale/lang/it-IT.ts +1 -1
  156. package/packages/locale/lang/ja-JP.ts +1 -1
  157. package/packages/locale/lang/ko-KR.ts +1 -1
  158. package/packages/locale/lang/ms-MY.ts +708 -0
  159. package/packages/locale/lang/nb-NO.ts +1 -1
  160. package/packages/locale/lang/pt-BR.ts +1 -1
  161. package/packages/locale/lang/ru-RU.ts +1 -1
  162. package/packages/locale/lang/th-TH.ts +1 -1
  163. package/packages/locale/lang/ug-CN.ts +1 -1
  164. package/packages/locale/lang/uk-UA.ts +1 -1
  165. package/packages/locale/lang/uz-UZ.ts +708 -0
  166. package/packages/locale/lang/vi-VN.ts +1 -1
  167. package/packages/locale/lang/zh-CHT.ts +1 -1
  168. package/packages/locale/lang/zh-CN.ts +1 -1
  169. package/packages/table/module/custom/panel.ts +1 -1
  170. package/packages/table/module/filter/mixin.ts +12 -0
  171. package/packages/table/render/index.ts +26 -20
  172. package/packages/table/src/body.ts +2 -1
  173. package/packages/table/src/footer.ts +2 -1
  174. package/packages/table/src/header.ts +2 -1
  175. package/packages/table/src/methods.ts +58 -48
  176. package/packages/table/src/table.ts +2 -2
  177. package/lib/locale/lang/zh-TC.umd.js +0 -23
  178. /package/es/{iconfont.1746324587006.ttf → iconfont.1746694071741.ttf} +0 -0
  179. /package/es/{iconfont.1746324587006.woff → iconfont.1746694071741.woff} +0 -0
  180. /package/es/{iconfont.1746324587006.woff2 → iconfont.1746694071741.woff2} +0 -0
  181. /package/es/locale/lang/{zh-TC.d.ts → ar-EG.d.ts} +0 -0
  182. /package/{lib/locale/lang/zh-TC.d.ts → es/locale/lang/de-DE.d.ts} +0 -0
  183. /package/lib/{iconfont.1746324587006.ttf → iconfont.1746694071741.ttf} +0 -0
  184. /package/lib/{iconfont.1746324587006.woff → iconfont.1746694071741.woff} +0 -0
  185. /package/lib/{iconfont.1746324587006.woff2 → iconfont.1746694071741.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.15.17";
2223
+ const version = "3.15.19";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2858,7 +2858,7 @@ function isNodeElement(elem) {
2858
2858
  const {
2859
2859
  log: log_log
2860
2860
  } = core_.VxeUI;
2861
- const log_version = `table v${"3.15.17"}`;
2861
+ const log_version = `table v${"3.15.19"}`;
2862
2862
  const warnLog = log_log.create('warn', log_version);
2863
2863
  const errLog = log_log.create('error', log_version);
2864
2864
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -11037,6 +11037,7 @@ const Methods = {
11037
11037
  column
11038
11038
  } = params;
11039
11039
  const {
11040
+ columnStore,
11040
11041
  overflowX,
11041
11042
  scrollbarHeight
11042
11043
  } = reactData;
@@ -11044,6 +11045,10 @@ const Methods = {
11044
11045
  elemStore,
11045
11046
  visibleColumn
11046
11047
  } = internalData;
11048
+ const {
11049
+ leftList,
11050
+ rightList
11051
+ } = columnStore;
11047
11052
  const resizableOpts = $xeTable.computeResizableOpts;
11048
11053
  const osbHeight = overflowX ? scrollbarHeight : 0;
11049
11054
  const tableEl = $xeTable.$refs.refElem;
@@ -11053,12 +11058,13 @@ const Methods = {
11053
11058
  if (!resizeBarElem) {
11054
11059
  return;
11055
11060
  }
11061
+ const isLeftFixed = fixedType === 'left';
11062
+ const isRightFixed = fixedType === 'right';
11056
11063
  const resizeTipElem = resizeBarElem.firstElementChild;
11057
11064
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
11058
11065
  const {
11059
11066
  clientX: dragClientX
11060
11067
  } = evnt;
11061
- const wrapperElem = $xeTable.$refs.refElem;
11062
11068
  const dragBtnElem = evnt.target;
11063
11069
  let resizeColumn = column;
11064
11070
  if (column.children && column.children.length) {
@@ -11075,29 +11081,31 @@ const Methods = {
11075
11081
  if (!bodyScrollElem) {
11076
11082
  return;
11077
11083
  }
11078
- const pos = getOffsetPos(dragBtnElem, wrapperElem);
11084
+ const tableRect = tableEl.getBoundingClientRect();
11085
+ const rightContainerRect = rightContainerElem ? rightContainerElem.getBoundingClientRect() : null;
11086
+ const cellRect = cell.getBoundingClientRect();
11087
+ const dragBtnRect = dragBtnElem.getBoundingClientRect();
11079
11088
  const dragBtnWidth = dragBtnElem.clientWidth;
11080
11089
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
11090
+ const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
11081
11091
  const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
11082
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
11083
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
11084
- const isLeftFixed = fixedType === 'left';
11085
- const isRightFixed = fixedType === 'right';
11086
- // 计算左右侧固定列偏移量
11087
- let fixedOffsetWidth = 0;
11092
+ const dragMinLeft = isRightFixed ? 0 : cellRect.x - tableRect.x + dragBtnWidth + minInterval;
11093
+ const dragMaxLeft = cellRect.x - tableRect.x + cell.clientWidth - minInterval;
11094
+ let fixedLeftRemainWidth = 0;
11095
+ let fixedRightRemainWidth = 0;
11088
11096
  if (isLeftFixed || isRightFixed) {
11089
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
11090
- let tempCellElem = cell[siblingProp];
11091
- while (tempCellElem) {
11092
- if (hasClass(tempCellElem, 'fixed--hidden')) {
11093
- break;
11094
- } else if (!hasClass(tempCellElem, 'col--group')) {
11095
- fixedOffsetWidth += tempCellElem.offsetWidth;
11097
+ let isMach = false;
11098
+ const fixedColumn = isLeftFixed ? leftList : rightList;
11099
+ for (let i = 0; i < fixedColumn.length; i++) {
11100
+ const item = fixedColumn[i];
11101
+ if (isMach) {
11102
+ fixedLeftRemainWidth += item.renderWidth;
11103
+ } else {
11104
+ isMach = item.id === resizeColumn.id;
11105
+ if (!isMach) {
11106
+ fixedRightRemainWidth += item.renderWidth;
11107
+ }
11096
11108
  }
11097
- tempCellElem = tempCellElem[siblingProp];
11098
- }
11099
- if (isRightFixed && rightContainerElem) {
11100
- dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
11101
11109
  }
11102
11110
  }
11103
11111
  // 处理拖动事件
@@ -11107,27 +11115,24 @@ const Methods = {
11107
11115
  const tableHeight = tableEl.clientHeight;
11108
11116
  const offsetX = evnt.clientX - dragClientX;
11109
11117
  let left = dragPosLeft + offsetX;
11110
- const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
11111
11118
  if (isLeftFixed) {
11112
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
11113
- left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
11119
+ if (rightContainerRect) {
11120
+ left = Math.min(left, rightContainerRect.x - tableRect.x - fixedLeftRemainWidth - minInterval);
11121
+ }
11114
11122
  } else if (isRightFixed) {
11115
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
11116
- dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
11117
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
11118
- } else {
11119
- dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
11120
- // left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
11123
+ if (leftContainerElem) {
11124
+ left = Math.max(left, leftContainerElem.clientWidth + fixedRightRemainWidth + minInterval);
11125
+ }
11126
+ left = Math.min(left, dragMaxLeft);
11121
11127
  }
11122
11128
  dragLeft = Math.max(left, dragMinLeft);
11123
- const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
11129
+ const resizeBarLeft = Math.max(1, dragLeft);
11124
11130
  resizeBarElem.style.left = `${resizeBarLeft}px`;
11125
11131
  resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
11126
11132
  resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
11127
11133
  if (resizableOpts.showDragTip && resizeTipElem) {
11128
- resizeTipElem.textContent = methods_getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
11134
+ resizeTipElem.textContent = methods_getI18n('vxe.table.resizeColTip', [Math.floor(resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft))]);
11129
11135
  const tableWrapperWidth = tableEl.clientWidth;
11130
- const wrapperRect = wrapperElem.getBoundingClientRect();
11131
11136
  const resizeBarWidth = resizeBarElem.clientWidth;
11132
11137
  const resizeTipWidth = resizeTipElem.clientWidth;
11133
11138
  const resizeTipHeight = resizeTipElem.clientHeight;
@@ -11138,7 +11143,7 @@ const Methods = {
11138
11143
  resizeTipLeft += tableWrapperWidth - resizeBarLeft;
11139
11144
  }
11140
11145
  resizeTipElem.style.left = `${resizeTipLeft}px`;
11141
- resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
11146
+ resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - tableRect.y - resizeTipHeight / 2))}px`;
11142
11147
  }
11143
11148
  reactData.isDragResize = true;
11144
11149
  };
@@ -13302,30 +13307,36 @@ const Methods = {
13302
13307
  } = params;
13303
13308
  const radioOpts = $xeTable.computeRadioOpts;
13304
13309
  const {
13305
- trigger
13310
+ trigger,
13311
+ checkMethod
13306
13312
  } = radioOpts;
13307
13313
  if (trigger === 'manual') {
13308
13314
  return;
13309
13315
  }
13310
13316
  evnt.stopPropagation();
13311
- let newValue = row;
13312
- let isChange = oldValue !== newValue;
13313
- if (isChange) {
13314
- handleCheckedRadioRow($xeTable, newValue);
13315
- } else if (!radioOpts.strict) {
13316
- isChange = oldValue === newValue;
13317
+ if (!checkMethod || checkMethod({
13318
+ $table: $xeTable,
13319
+ row
13320
+ })) {
13321
+ let newValue = row;
13322
+ let isChange = oldValue !== newValue;
13323
+ if (isChange) {
13324
+ handleCheckedRadioRow($xeTable, newValue);
13325
+ } else if (!radioOpts.strict) {
13326
+ isChange = oldValue === newValue;
13327
+ if (isChange) {
13328
+ newValue = null;
13329
+ $xeTable.clearRadioRow();
13330
+ }
13331
+ }
13317
13332
  if (isChange) {
13318
- newValue = null;
13319
- $xeTable.clearRadioRow();
13333
+ $xeTable.dispatchEvent('radio-change', {
13334
+ oldValue,
13335
+ newValue,
13336
+ ...params
13337
+ }, evnt);
13320
13338
  }
13321
13339
  }
13322
- if (isChange) {
13323
- $xeTable.dispatchEvent('radio-change', {
13324
- oldValue,
13325
- newValue,
13326
- ...params
13327
- }, evnt);
13328
- }
13329
13340
  },
13330
13341
  triggerCurrentColumnEvent(evnt, params) {
13331
13342
  const $xeTable = this;
@@ -15395,7 +15406,9 @@ const Methods = {
15395
15406
  return rest;
15396
15407
  },
15397
15408
  /**
15398
- * 获取树表格状态
15409
+ * 内部方法、获取树表格状态
15410
+ * @deprecated
15411
+ * @private
15399
15412
  */
15400
15413
  getTreeStatus() {
15401
15414
  if (this.treeConfig) {
@@ -16929,7 +16942,7 @@ const Methods = {
16929
16942
  }
16930
16943
  };
16931
16944
  // Module methods
16932
- const funcs = 'setFilter,openFilter,clearFilter,saveFilterPanel,resetFilterPanel,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,openCustom,closeCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');
16945
+ const funcs = 'setFilter,openFilter,clearFilter,saveFilterPanel,saveFilterPanelByEvent,resetFilterPanel,resetFilterPanelByEvent,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,openCustom,closeCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');
16933
16946
  funcs.forEach(name => {
16934
16947
  Methods[name] = function (...args) {
16935
16948
  if (!this[`_${name}`]) {
@@ -17875,7 +17888,8 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
17875
17888
  xid: xID,
17876
17889
  cellspacing: 0,
17877
17890
  cellpadding: 0,
17878
- border: 0
17891
+ border: 0,
17892
+ xvm: isOptimizeMode ? '1' : null
17879
17893
  }
17880
17894
  }, [
17881
17895
  /**
@@ -18350,7 +18364,8 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
18350
18364
  xid: xID,
18351
18365
  cellspacing: 0,
18352
18366
  cellpadding: 0,
18353
- border: 0
18367
+ border: 0,
18368
+ xvm: isOptimizeMode ? '1' : null
18354
18369
  }
18355
18370
  }, [
18356
18371
  /**
@@ -18824,7 +18839,8 @@ function footer_renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
18824
18839
  xid: xID,
18825
18840
  cellspacing: 0,
18826
18841
  cellpadding: 0,
18827
- border: 0
18842
+ border: 0,
18843
+ xvm: isOptimizeMode ? '1' : null
18828
18844
  }
18829
18845
  }, [
18830
18846
  /**
@@ -19852,7 +19868,7 @@ const renderPopupPanel = (h, _vm) => {
19852
19868
  const {
19853
19869
  mode
19854
19870
  } = customOpts;
19855
- if (!VxeUIModalComponent) {
19871
+ if (!VxeUIModalComponent && mode === 'modal') {
19856
19872
  errLog('vxe.error.reqComp', ['vxe-modal']);
19857
19873
  }
19858
19874
  if (!VxeUIDrawerComponent && mode === 'drawer') {
@@ -21650,11 +21666,21 @@ const {
21650
21666
  $xeTable.handleFilterConfirmFilter(null);
21651
21667
  return $xeTable.$nextTick();
21652
21668
  },
21669
+ _saveFilterPanelByEvent(evnt) {
21670
+ const $xeTable = this;
21671
+ $xeTable.handleFilterConfirmFilter(evnt);
21672
+ return $xeTable.$nextTick();
21673
+ },
21653
21674
  _resetFilterPanel() {
21654
21675
  const $xeTable = this;
21655
21676
  $xeTable.handleFilterResetFilter(null);
21656
21677
  return $xeTable.$nextTick();
21657
21678
  },
21679
+ _resetFilterPanelByEvent(evnt) {
21680
+ const $xeTable = this;
21681
+ $xeTable.handleFilterResetFilter(evnt);
21682
+ return $xeTable.$nextTick();
21683
+ },
21658
21684
  _getCheckedFilters() {
21659
21685
  const {
21660
21686
  tableFullColumn
@@ -28474,8 +28500,8 @@ function renderBody(h, $xeTable) {
28474
28500
  if (props.editConfig && editOpts.showStatus && !props.keepSource) {
28475
28501
  warnLog('vxe.error.reqProp', ['keep-source']);
28476
28502
  }
28477
- if (treeConfig && (treeOpts.showLine || treeOpts.line) && (!(props.rowKey || rowOpts.useKey) || !showOverflow)) {
28478
- warnLog('vxe.error.reqProp', ['row-config.useKey | show-overflow']);
28503
+ if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
28504
+ warnLog('vxe.error.reqProp', ['show-overflow']);
28479
28505
  }
28480
28506
  if (treeConfig && !treeOpts.transform && props.stripe) {
28481
28507
  warnLog('vxe.error.noTree', ['stripe']);
@@ -31874,14 +31900,17 @@ function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
31874
31900
  } = renderOpts;
31875
31901
  const groupOptions = optionGroupProps.options || 'options';
31876
31902
  const groupLabel = optionGroupProps.label || 'label';
31877
- return optionGroups.map((group, gIndex) => {
31878
- return h('optgroup', {
31879
- key: gIndex,
31880
- attrs: {
31881
- label: group[groupLabel]
31882
- }
31883
- }, renderOptionsMethods(h, group[groupOptions], renderOpts, params));
31884
- });
31903
+ if (optionGroups) {
31904
+ return optionGroups.map((group, gIndex) => {
31905
+ return h('optgroup', {
31906
+ key: gIndex,
31907
+ attrs: {
31908
+ label: group[groupLabel]
31909
+ }
31910
+ }, renderOptionsMethods(h, group[groupOptions], renderOpts, params));
31911
+ });
31912
+ }
31913
+ return [];
31885
31914
  }
31886
31915
  /**
31887
31916
  * 渲染原生的 option 标签
@@ -31898,19 +31927,22 @@ function renderNativeOptions(h, options, renderOpts, params) {
31898
31927
  const valueProp = optionProps.value || 'value';
31899
31928
  const disabledProp = optionProps.disabled || 'disabled';
31900
31929
  const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
31901
- return options.map((option, oIndex) => {
31902
- return h('option', {
31903
- key: oIndex,
31904
- attrs: {
31905
- value: option[valueProp],
31906
- disabled: option[disabledProp]
31907
- },
31908
- domProps: {
31909
- /* eslint-disable eqeqeq */
31910
- selected: option[valueProp] == cellValue
31911
- }
31912
- }, option[labelProp]);
31913
- });
31930
+ if (options) {
31931
+ return options.map((option, oIndex) => {
31932
+ return h('option', {
31933
+ key: oIndex,
31934
+ attrs: {
31935
+ value: option[valueProp],
31936
+ disabled: option[disabledProp]
31937
+ },
31938
+ domProps: {
31939
+ /* eslint-disable eqeqeq */
31940
+ selected: option[valueProp] == cellValue
31941
+ }
31942
+ }, option[labelProp]);
31943
+ });
31944
+ }
31945
+ return [];
31914
31946
  }
31915
31947
  function nativeFilterRender(h, renderOpts, params) {
31916
31948
  const {
@@ -33033,7 +33065,7 @@ const Toolbar = VxeToolbar;
33033
33065
  year: 'yyyy'
33034
33066
  },
33035
33067
  weeks: {
33036
- w: '周',
33068
+ w: '',
33037
33069
  w0: '周日',
33038
33070
  w1: '周一',
33039
33071
  w2: '周二',