vxe-table 4.23.8 → 4.23.9

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 (126) hide show
  1. package/dist/all.esm.js +5715 -3783
  2. package/es/components.d.ts +1 -0
  3. package/es/components.js +2 -7
  4. package/es/grid/src/emits.js +1 -15
  5. package/es/grid/src/grid.js +397 -120
  6. package/es/index.esm.js +1 -0
  7. package/es/index.js +1 -0
  8. package/es/table/module/custom/hook.js +49 -42
  9. package/es/table/module/custom/panel.js +777 -527
  10. package/es/table/module/edit/hook.js +140 -62
  11. package/es/table/module/export/export-panel.js +399 -316
  12. package/es/table/module/export/hook.js +395 -337
  13. package/es/table/module/export/import-panel.js +152 -123
  14. package/es/table/module/filter/hook.js +16 -2
  15. package/es/table/module/filter/panel.js +146 -84
  16. package/es/table/module/keyboard/hook.js +8 -4
  17. package/es/table/module/menu/panel.js +197 -126
  18. package/es/table/render/index.js +151 -98
  19. package/es/table/src/body.js +355 -233
  20. package/es/table/src/cell.js +426 -269
  21. package/es/table/src/columnInfo.js +1 -0
  22. package/es/table/src/footer.js +144 -99
  23. package/es/table/src/group.js +7 -3
  24. package/es/table/src/header.js +229 -172
  25. package/es/table/src/table.js +1503 -1030
  26. package/es/table/src/util.js +15 -19
  27. package/es/toolbar/src/toolbar.js +132 -75
  28. package/es/ui/index.js +1 -1
  29. package/es/ui/src/dom.js +9 -6
  30. package/es/ui/src/log.js +1 -1
  31. package/es/ui/src/utils.d.ts +1 -1
  32. package/lib/components.js +2 -7
  33. package/lib/grid/src/emits.js +1 -15
  34. package/lib/grid/src/grid.js +397 -120
  35. package/lib/index.common.js +1 -0
  36. package/lib/index.js +1 -0
  37. package/lib/index.umd.js +5732 -3800
  38. package/lib/index.umd.min.js +3 -3
  39. package/lib/table/module/custom/hook.js +49 -42
  40. package/lib/table/module/custom/panel.js +777 -527
  41. package/lib/table/module/edit/hook.js +140 -62
  42. package/lib/table/module/export/export-panel.js +399 -316
  43. package/lib/table/module/export/hook.js +395 -337
  44. package/lib/table/module/export/import-panel.js +152 -123
  45. package/lib/table/module/filter/hook.js +16 -2
  46. package/lib/table/module/filter/panel.js +146 -84
  47. package/lib/table/module/keyboard/hook.js +8 -4
  48. package/lib/table/module/menu/panel.js +197 -126
  49. package/lib/table/render/index.js +151 -98
  50. package/lib/table/src/body.js +355 -233
  51. package/lib/table/src/cell.js +426 -269
  52. package/lib/table/src/columnInfo.js +1 -0
  53. package/lib/table/src/footer.js +144 -99
  54. package/lib/table/src/group.js +7 -3
  55. package/lib/table/src/header.js +229 -172
  56. package/lib/table/src/table.js +1471 -1029
  57. package/lib/table/src/util.js +15 -19
  58. package/lib/toolbar/src/toolbar.js +132 -75
  59. package/lib/ui/index.js +1 -1
  60. package/lib/ui/src/dom.js +9 -6
  61. package/lib/ui/src/log.js +1 -1
  62. package/package.json +2 -2
  63. package/packages/colgroup/index.ts +22 -22
  64. package/packages/column/index.ts +22 -22
  65. package/packages/components.ts +41 -44
  66. package/packages/grid/index.ts +18 -18
  67. package/packages/grid/src/emits.ts +5 -19
  68. package/packages/grid/src/grid.ts +2229 -1925
  69. package/packages/grid/src/props.ts +22 -23
  70. package/packages/index.ts +11 -11
  71. package/packages/locale/lang/fr-FR.ts +15 -15
  72. package/packages/locale/lang/it-IT.ts +4 -4
  73. package/packages/locale/lang/uk-UA.ts +1 -1
  74. package/packages/locale/lang/uz-UZ.ts +13 -13
  75. package/packages/locale/lang/zh-CN.ts +907 -907
  76. package/packages/table/index.ts +26 -26
  77. package/packages/table/module/custom/hook.ts +510 -503
  78. package/packages/table/module/custom/panel.ts +2002 -1743
  79. package/packages/table/module/edit/hook.ts +1224 -1131
  80. package/packages/table/module/export/export-panel.ts +697 -611
  81. package/packages/table/module/export/hook.ts +2160 -2059
  82. package/packages/table/module/export/import-panel.ts +319 -279
  83. package/packages/table/module/export/util.ts +25 -24
  84. package/packages/table/module/filter/hook.ts +519 -501
  85. package/packages/table/module/filter/panel.ts +368 -304
  86. package/packages/table/module/keyboard/hook.ts +498 -494
  87. package/packages/table/module/menu/hook.ts +330 -330
  88. package/packages/table/module/menu/panel.ts +272 -201
  89. package/packages/table/module/validator/hook.ts +653 -635
  90. package/packages/table/render/index.ts +1819 -1744
  91. package/packages/table/src/body.ts +1078 -955
  92. package/packages/table/src/cell.ts +1524 -1359
  93. package/packages/table/src/column.ts +192 -192
  94. package/packages/table/src/columnInfo.ts +232 -232
  95. package/packages/table/src/emits.ts +134 -134
  96. package/packages/table/src/footer.ts +425 -380
  97. package/packages/table/src/group.ts +67 -63
  98. package/packages/table/src/header.ts +642 -581
  99. package/packages/table/src/props.ts +336 -336
  100. package/packages/table/src/store.ts +14 -14
  101. package/packages/table/src/table.ts +16011 -15454
  102. package/packages/table/src/use/cell-view.ts +41 -44
  103. package/packages/table/src/use/index.ts +1 -1
  104. package/packages/table/src/util.ts +1206 -1216
  105. package/packages/toolbar/index.ts +18 -18
  106. package/packages/toolbar/src/toolbar.ts +768 -706
  107. package/packages/ui/index.ts +519 -520
  108. package/packages/ui/src/anime.ts +51 -52
  109. package/packages/ui/src/comp.ts +3 -3
  110. package/packages/ui/src/dom.ts +466 -463
  111. package/packages/ui/src/log.ts +19 -19
  112. package/packages/ui/src/utils.ts +66 -66
  113. package/packages/ui/src/vn.ts +55 -55
  114. package/packages/v-x-e-table/index.d.ts +3 -3
  115. package/packages/v-x-e-table/index.ts +3 -3
  116. package/types/all.d.ts +76 -76
  117. package/types/index.d.ts +4 -4
  118. /package/dist/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  119. /package/dist/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  120. /package/dist/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
  121. /package/es/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  122. /package/es/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  123. /package/es/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
  124. /package/lib/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  125. /package/lib/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  126. /package/lib/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
@@ -99,135 +99,164 @@ var import_panel_default = defineVxeComponent({
99
99
  const bottomSlot = slots.bottom;
100
100
  const defaultSlot = slots.default;
101
101
  const footerSlot = slots.footer;
102
- return VxeUIModalComponent ? h(VxeUIModalComponent, {
103
- id: "VXE_IMPORT_MODAL",
104
- modelValue: storeData.visible,
105
- title: modelOptions.title || getI18n("vxe.import.impTitle"),
106
- className: "vxe-table-export-popup-wrapper",
107
- width: modelOptions.width || 540,
108
- height: modelOptions.height,
109
- minWidth: modelOptions.minWidth || 360,
110
- minHeight: modelOptions.minHeight || 240,
111
- mask: getDefaultConfig(modelOptions.mask, true),
112
- lockView: getDefaultConfig(modelOptions.lockView, true),
113
- showFooter: true,
114
- escClosable: true,
115
- maskClosable: true,
116
- position: modelOptions.position,
117
- fullscreen: modelOptions.fullscreen,
118
- remember: modelOptions.remember,
119
- showMinimize: modelOptions.showMinimize,
120
- showMaximize: getDefaultConfig(modelOptions.showMaximize, true),
121
- resize: getDefaultConfig(modelOptions.resize, true),
122
- loading: reactData.loading,
123
- "onUpdate:modelValue"(value) {
124
- storeData.visible = value;
102
+ return VxeUIModalComponent ? h(
103
+ VxeUIModalComponent,
104
+ {
105
+ id: "VXE_IMPORT_MODAL",
106
+ modelValue: storeData.visible,
107
+ title: modelOptions.title || getI18n("vxe.import.impTitle"),
108
+ className: "vxe-table-export-popup-wrapper",
109
+ width: modelOptions.width || 540,
110
+ height: modelOptions.height,
111
+ minWidth: modelOptions.minWidth || 360,
112
+ minHeight: modelOptions.minHeight || 240,
113
+ mask: getDefaultConfig(modelOptions.mask, true),
114
+ lockView: getDefaultConfig(modelOptions.lockView, true),
115
+ showFooter: true,
116
+ escClosable: true,
117
+ maskClosable: true,
118
+ position: modelOptions.position,
119
+ fullscreen: modelOptions.fullscreen,
120
+ remember: modelOptions.remember,
121
+ showMinimize: modelOptions.showMinimize,
122
+ showMaximize: getDefaultConfig(modelOptions.showMaximize, true),
123
+ resize: getDefaultConfig(modelOptions.resize, true),
124
+ loading: reactData.loading,
125
+ "onUpdate:modelValue"(value) {
126
+ storeData.visible = value;
127
+ },
128
+ onShow: showEvent
125
129
  },
126
- onShow: showEvent
127
- }, {
128
- default: () => {
129
- const params = {
130
- $table: $xeTable,
131
- $grid: $xeGrid,
132
- $gantt: $xeGantt,
133
- options: defaultOptions,
134
- params: defaultOptions.params
135
- };
136
- return h("div", {
137
- class: "vxe-table-export--panel"
138
- }, [
139
- topSlot ? h("div", {
140
- class: "vxe-table-export--panel-top"
141
- }, $xeTable.callSlot(topSlot, params)) : renderEmptyElement($xeTable),
142
- h(
130
+ {
131
+ default: () => {
132
+ const params = {
133
+ $table: $xeTable,
134
+ $grid: $xeGrid,
135
+ $gantt: $xeGantt,
136
+ options: defaultOptions,
137
+ params: defaultOptions.params
138
+ };
139
+ return h(
143
140
  "div",
144
141
  {
145
- class: "vxe-table-export--panel-body"
142
+ class: "vxe-table-export--panel"
146
143
  },
147
- defaultSlot ? $xeTable.callSlot(defaultSlot, params) : [
148
- h("table", {
149
- class: "vxe-table-export--panel-table",
150
- cellspacing: 0,
151
- cellpadding: 0,
152
- border: 0
153
- }, [
154
- h("tbody", [
155
- h("tr", [
156
- h("td", getI18n("vxe.import.impFile")),
157
- h("td", [
158
- hasFile ? h("div", {
159
- class: "vxe-table-export--selected--file",
160
- title: selectName
161
- }, [
162
- h("span", selectName),
163
- h("i", {
164
- class: getIcon().INPUT_CLEAR,
165
- onClick: clearFileEvent
166
- })
167
- ]) : h("button", {
168
- ref: refFileBtn,
169
- class: "vxe-table-export--select--file",
170
- onClick: selectFileEvent
171
- }, getI18n("vxe.import.impSelect"))
172
- ])
173
- ]),
174
- h("tr", [
175
- h("td", getI18n("vxe.import.impType")),
176
- h("td", parseTypeLabel)
177
- ]),
178
- settingOptions.showMode === false ? renderEmptyElement($xeTable) : h("tr", [
179
- h("td", getI18n("vxe.import.impMode")),
180
- h("td", [
181
- VxeUISelectComponent ? h(VxeUISelectComponent, {
182
- modelValue: defaultOptions.mode,
183
- options: storeData.modeList,
184
- "onUpdate:modelValue"(value) {
185
- defaultOptions.mode = value;
186
- }
187
- }) : renderEmptyElement($xeTable)
188
- ])
189
- ])
190
- ])
191
- ])
144
+ [
145
+ topSlot ? h(
146
+ "div",
147
+ {
148
+ class: "vxe-table-export--panel-top"
149
+ },
150
+ $xeTable.callSlot(topSlot, params)
151
+ ) : renderEmptyElement($xeTable),
152
+ h(
153
+ "div",
154
+ {
155
+ class: "vxe-table-export--panel-body"
156
+ },
157
+ defaultSlot ? $xeTable.callSlot(defaultSlot, params) : [
158
+ h(
159
+ "table",
160
+ {
161
+ class: "vxe-table-export--panel-table",
162
+ cellspacing: 0,
163
+ cellpadding: 0,
164
+ border: 0
165
+ },
166
+ [
167
+ h("tbody", [
168
+ h("tr", [
169
+ h("td", getI18n("vxe.import.impFile")),
170
+ h("td", [
171
+ hasFile ? h(
172
+ "div",
173
+ {
174
+ class: "vxe-table-export--selected--file",
175
+ title: selectName
176
+ },
177
+ [
178
+ h("span", selectName),
179
+ h("i", {
180
+ class: getIcon().INPUT_CLEAR,
181
+ onClick: clearFileEvent
182
+ })
183
+ ]
184
+ ) : h(
185
+ "button",
186
+ {
187
+ ref: refFileBtn,
188
+ class: "vxe-table-export--select--file",
189
+ onClick: selectFileEvent
190
+ },
191
+ getI18n("vxe.import.impSelect")
192
+ )
193
+ ])
194
+ ]),
195
+ h("tr", [h("td", getI18n("vxe.import.impType")), h("td", parseTypeLabel)]),
196
+ settingOptions.showMode === false ? renderEmptyElement($xeTable) : h("tr", [
197
+ h("td", getI18n("vxe.import.impMode")),
198
+ h("td", [
199
+ VxeUISelectComponent ? h(VxeUISelectComponent, {
200
+ modelValue: defaultOptions.mode,
201
+ options: storeData.modeList,
202
+ "onUpdate:modelValue"(value) {
203
+ defaultOptions.mode = value;
204
+ }
205
+ }) : renderEmptyElement($xeTable)
206
+ ])
207
+ ])
208
+ ])
209
+ ]
210
+ )
211
+ ]
212
+ ),
213
+ bottomSlot ? h(
214
+ "div",
215
+ {
216
+ class: "vxe-table-export--panel-bottom"
217
+ },
218
+ $xeTable.callSlot(bottomSlot, params)
219
+ ) : renderEmptyElement($xeTable)
192
220
  ]
193
- ),
194
- bottomSlot ? h("div", {
195
- class: "vxe-table-export--panel-bottom"
196
- }, $xeTable.callSlot(bottomSlot, params)) : renderEmptyElement($xeTable)
197
- ]);
198
- },
199
- footer() {
200
- const params = {
201
- $table: $xeTable,
202
- $grid: $xeGrid,
203
- $gantt: $xeGantt,
204
- options: defaultOptions,
205
- params: defaultOptions.params
206
- };
207
- return h(
208
- "div",
209
- {
210
- class: "vxe-table-export--panel-footer"
211
- },
212
- footerSlot ? $xeTable.callSlot(footerSlot, params) : [
213
- h("div", {
214
- class: "vxe-table-export--panel-btns"
215
- }, [
216
- VxeUIButtonComponent ? h(VxeUIButtonComponent, {
217
- content: getI18n("vxe.import.impCancel"),
218
- onClick: cancelEvent
219
- }) : renderEmptyElement($xeTable),
220
- VxeUIButtonComponent ? h(VxeUIButtonComponent, {
221
- status: "primary",
222
- disabled: !hasFile || reactData.loading,
223
- content: getI18n("vxe.import.impConfirm"),
224
- onClick: importEvent
225
- }) : renderEmptyElement($xeTable)
226
- ])
227
- ]
228
- );
221
+ );
222
+ },
223
+ footer() {
224
+ const params = {
225
+ $table: $xeTable,
226
+ $grid: $xeGrid,
227
+ $gantt: $xeGantt,
228
+ options: defaultOptions,
229
+ params: defaultOptions.params
230
+ };
231
+ return h(
232
+ "div",
233
+ {
234
+ class: "vxe-table-export--panel-footer"
235
+ },
236
+ footerSlot ? $xeTable.callSlot(footerSlot, params) : [
237
+ h(
238
+ "div",
239
+ {
240
+ class: "vxe-table-export--panel-btns"
241
+ },
242
+ [
243
+ VxeUIButtonComponent ? h(VxeUIButtonComponent, {
244
+ content: getI18n("vxe.import.impCancel"),
245
+ onClick: cancelEvent
246
+ }) : renderEmptyElement($xeTable),
247
+ VxeUIButtonComponent ? h(VxeUIButtonComponent, {
248
+ status: "primary",
249
+ disabled: !hasFile || reactData.loading,
250
+ content: getI18n("vxe.import.impConfirm"),
251
+ onClick: importEvent
252
+ }) : renderEmptyElement($xeTable)
253
+ ]
254
+ )
255
+ ]
256
+ );
257
+ }
229
258
  }
230
- }) : renderEmptyElement($xeTable);
259
+ ) : renderEmptyElement($xeTable);
231
260
  };
232
261
  nextTick(() => {
233
262
  if (!VxeUIModalComponent) {
@@ -5,7 +5,21 @@ import { toFilters, handleFieldOrColumn, getRefElem } from "../../src/util";
5
5
  import { toCssUnit, triggerEvent, updatePanelPlacement } from "../../../ui/src/dom";
6
6
  import { hasEnableConf, isEnableConf } from "../../../ui/src/utils";
7
7
  const { renderer, hooks } = VxeUI;
8
- const tableFilterMethodKeys = ["openFilter", "setFilter", "clearFilter", "saveFilter", "saveFilterByEvent", "saveFilterPanel", "saveFilterPanelByEvent", "resetFilter", "resetFilterByEvent", "resetFilterPanel", "resetFilterPanelByEvent", "getCheckedFilters", "updateFilterOptionStatus"];
8
+ const tableFilterMethodKeys = [
9
+ "openFilter",
10
+ "setFilter",
11
+ "clearFilter",
12
+ "saveFilter",
13
+ "saveFilterByEvent",
14
+ "saveFilterPanel",
15
+ "saveFilterPanelByEvent",
16
+ "resetFilter",
17
+ "resetFilterByEvent",
18
+ "resetFilterPanel",
19
+ "resetFilterPanelByEvent",
20
+ "getCheckedFilters",
21
+ "updateFilterOptionStatus"
22
+ ];
9
23
  const sourceType = "table";
10
24
  hooks.add("tableFilterModule", {
11
25
  setupTable($xeTable) {
@@ -198,7 +212,7 @@ hooks.add("tableFilterModule", {
198
212
  $xeTable.closeFilter();
199
213
  return $xeTable.updateFooter().then(() => {
200
214
  const { scrollXLoad, scrollYLoad } = reactData;
201
- if (oldScrollXLoad || scrollXLoad || (oldScrollYLoad || scrollYLoad)) {
215
+ if (oldScrollXLoad || scrollXLoad || oldScrollYLoad || scrollYLoad) {
202
216
  if (oldScrollXLoad || scrollXLoad) {
203
217
  $xeTable.updateScrollXSpace();
204
218
  }
@@ -102,15 +102,23 @@ var panel_default = defineVxeComponent({
102
102
  const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
103
103
  if (filterSlot) {
104
104
  return [
105
- h("div", {
106
- class: "vxe-table--filter-template"
107
- }, $xeTable.callSlot(filterSlot, params))
105
+ h(
106
+ "div",
107
+ {
108
+ class: "vxe-table--filter-template"
109
+ },
110
+ $xeTable.callSlot(filterSlot, params)
111
+ )
108
112
  ];
109
113
  } else if (filterRender && rtFilter) {
110
114
  return [
111
- h("div", {
112
- class: "vxe-table--filter-template"
113
- }, getSlotVNs(rtFilter(filterRender, params)))
115
+ h(
116
+ "div",
117
+ {
118
+ class: "vxe-table--filter-template"
119
+ },
120
+ getSlotVNs(rtFilter(filterRender, params))
121
+ )
114
122
  ];
115
123
  }
116
124
  const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some((item) => item._checked);
@@ -118,55 +126,89 @@ var panel_default = defineVxeComponent({
118
126
  const optVNs = filterOptions.map((item) => {
119
127
  const isChecked = item._checked;
120
128
  const isIndeterminate = false;
121
- return h("div", {
122
- class: ["vxe-table--filter-option", {
123
- "is--checked": item._checked
124
- }],
125
- title: item.label,
126
- onClick: (evnt) => {
127
- changeOption(evnt, !item._checked, item);
128
- }
129
- }, (filterMultiple ? [
130
- h("span", {
131
- class: ["vxe-checkbox--icon", isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
132
- })
133
- ] : []).concat([
134
- h("span", {
135
- class: "vxe-checkbox--label"
136
- }, formatText(item.label, 1))
137
- ]));
138
- });
139
- return [
140
- h("div", {
141
- class: "vxe-table--filter-header"
142
- }, [
143
- h("div", {
144
- class: ["vxe-table--filter-option", {
145
- "is--checked": isAllChecked,
146
- "is--indeterminate": isAllIndeterminate
147
- }],
148
- title: getI18n(filterMultiple ? "vxe.table.allTitle" : "vxe.table.allFilter"),
129
+ return h(
130
+ "div",
131
+ {
132
+ class: [
133
+ "vxe-table--filter-option",
134
+ {
135
+ "is--checked": item._checked
136
+ }
137
+ ],
138
+ title: item.label,
149
139
  onClick: (evnt) => {
150
- changeAllOption(evnt, !filterStore.isAllSelected);
140
+ changeOption(evnt, !item._checked, item);
151
141
  }
152
- }, (filterMultiple ? [
142
+ },
143
+ (filterMultiple ? [
153
144
  h("span", {
154
- class: ["vxe-checkbox--icon", isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
145
+ class: ["vxe-checkbox--icon", isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
155
146
  })
156
147
  ] : []).concat([
157
- h("span", {
158
- class: "vxe-checkbox--label"
159
- }, getI18n("vxe.table.allFilter"))
160
- ]))
161
- ]),
162
- useScrollbar ? h(VxeUIScrollbarComponent, {
163
- class: "vxe-table--scrollbar-filter-body",
164
- viewClassName: "vxe-table--scrollbar-filter-body-view"
165
- }, {
166
- default: () => optVNs
167
- }) : h("div", {
168
- class: "vxe-table--filter-body"
169
- }, optVNs)
148
+ h(
149
+ "span",
150
+ {
151
+ class: "vxe-checkbox--label"
152
+ },
153
+ formatText(item.label, 1)
154
+ )
155
+ ])
156
+ );
157
+ });
158
+ return [
159
+ h(
160
+ "div",
161
+ {
162
+ class: "vxe-table--filter-header"
163
+ },
164
+ [
165
+ h(
166
+ "div",
167
+ {
168
+ class: [
169
+ "vxe-table--filter-option",
170
+ {
171
+ "is--checked": isAllChecked,
172
+ "is--indeterminate": isAllIndeterminate
173
+ }
174
+ ],
175
+ title: getI18n(filterMultiple ? "vxe.table.allTitle" : "vxe.table.allFilter"),
176
+ onClick: (evnt) => {
177
+ changeAllOption(evnt, !filterStore.isAllSelected);
178
+ }
179
+ },
180
+ (filterMultiple ? [
181
+ h("span", {
182
+ class: ["vxe-checkbox--icon", isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
183
+ })
184
+ ] : []).concat([
185
+ h(
186
+ "span",
187
+ {
188
+ class: "vxe-checkbox--label"
189
+ },
190
+ getI18n("vxe.table.allFilter")
191
+ )
192
+ ])
193
+ )
194
+ ]
195
+ ),
196
+ useScrollbar ? h(
197
+ VxeUIScrollbarComponent,
198
+ {
199
+ class: "vxe-table--scrollbar-filter-body",
200
+ viewClassName: "vxe-table--scrollbar-filter-body-view"
201
+ },
202
+ {
203
+ default: () => optVNs
204
+ }
205
+ ) : h(
206
+ "div",
207
+ {
208
+ class: "vxe-table--filter-body"
209
+ },
210
+ optVNs
211
+ )
170
212
  ];
171
213
  };
172
214
  const renderFooters = () => {
@@ -189,20 +231,32 @@ var panel_default = defineVxeComponent({
189
231
  showFlFoot = !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false);
190
232
  }
191
233
  return showFlFoot ? [
192
- h("div", {
193
- class: "vxe-table--filter-footer"
194
- }, [
195
- h("button", {
196
- class: {
197
- "is--disabled": isDisabled
198
- },
199
- disabled: isDisabled,
200
- onClick: confirmFilter
201
- }, confirmButtonText || getI18n("vxe.table.confirmFilter")),
202
- h("button", {
203
- onClick: resetFilter
204
- }, resetButtonText || getI18n("vxe.table.resetFilter"))
205
- ])
234
+ h(
235
+ "div",
236
+ {
237
+ class: "vxe-table--filter-footer"
238
+ },
239
+ [
240
+ h(
241
+ "button",
242
+ {
243
+ class: {
244
+ "is--disabled": isDisabled
245
+ },
246
+ disabled: isDisabled,
247
+ onClick: confirmFilter
248
+ },
249
+ confirmButtonText || getI18n("vxe.table.confirmFilter")
250
+ ),
251
+ h(
252
+ "button",
253
+ {
254
+ onClick: resetFilter
255
+ },
256
+ resetButtonText || getI18n("vxe.table.resetFilter")
257
+ )
258
+ ]
259
+ )
206
260
  ] : [];
207
261
  };
208
262
  const renderVN = () => {
@@ -222,27 +276,35 @@ var panel_default = defineVxeComponent({
222
276
  const vSize = computeSize.value;
223
277
  const filterOpts = computeFilterOpts.value;
224
278
  const { transfer, destroyOnClose, className } = filterOpts;
225
- return h(Teleport, {
226
- to: "body",
227
- disabled: !transfer
228
- }, [
229
- h("div", {
230
- ref: refElem,
231
- class: [
232
- "vxe-table--filter-wrapper",
233
- "filter--prevent-default",
234
- className,
235
- getPropClass(filterClassName, params),
279
+ return h(
280
+ Teleport,
281
+ {
282
+ to: "body",
283
+ disabled: !transfer
284
+ },
285
+ [
286
+ h(
287
+ "div",
236
288
  {
237
- [`size--${vSize}`]: vSize,
238
- "is--animat": tableProps.animat,
239
- "is--multiple": column.filterMultiple,
240
- "is--active": visible
241
- }
242
- ],
243
- style: filterStore.style
244
- }, initStore.filter && (destroyOnClose ? visible : true) && column ? renderOptions(filterRender, compConf).concat(renderFooters()) : [])
245
- ]);
289
+ ref: refElem,
290
+ class: [
291
+ "vxe-table--filter-wrapper",
292
+ "filter--prevent-default",
293
+ className,
294
+ getPropClass(filterClassName, params),
295
+ {
296
+ [`size--${vSize}`]: vSize,
297
+ "is--animat": tableProps.animat,
298
+ "is--multiple": column.filterMultiple,
299
+ "is--active": visible
300
+ }
301
+ ],
302
+ style: filterStore.style
303
+ },
304
+ initStore.filter && (destroyOnClose ? visible : true) && column ? renderOptions(filterRender, compConf).concat(renderFooters()) : []
305
+ )
306
+ ]
307
+ );
246
308
  };
247
309
  $xeFilterPanel.renderVN = renderVN;
248
310
  return $xeFilterPanel;
@@ -109,10 +109,14 @@ hooks.add("tableKeyboardModule", {
109
109
  let isMouseScrollDown = false;
110
110
  let mouseScrollSpaceSize = 1;
111
111
  const triggerEvent = (type, evnt2) => {
112
- $xeTable.dispatchEvent(`checkbox-range-${type}`, {
113
- records: () => $xeTable.getCheckboxRecords(),
114
- reserves: () => $xeTable.getCheckboxReserveRecords()
115
- }, evnt2);
112
+ $xeTable.dispatchEvent(
113
+ `checkbox-range-${type}`,
114
+ {
115
+ records: () => $xeTable.getCheckboxRecords(),
116
+ reserves: () => $xeTable.getCheckboxReserveRecords()
117
+ },
118
+ evnt2
119
+ );
116
120
  };
117
121
  const handleChecked = (evnt2) => {
118
122
  const { clientX, clientY } = evnt2;