vxe-pc-ui 4.20.16 → 4.20.17

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/dist/all.esm.js +201 -33
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/language/ar-EG.js +4 -0
  6. package/es/language/de-DE.js +4 -0
  7. package/es/language/en-US.js +4 -0
  8. package/es/language/es-ES.js +4 -0
  9. package/es/language/fr-FR.js +7 -3
  10. package/es/language/hu-HU.js +4 -0
  11. package/es/language/hy-AM.js +4 -0
  12. package/es/language/id-ID.js +4 -0
  13. package/es/language/it-IT.js +4 -0
  14. package/es/language/ja-JP.js +4 -0
  15. package/es/language/ko-KR.js +4 -0
  16. package/es/language/ms-MY.js +4 -0
  17. package/es/language/nb-NO.js +4 -0
  18. package/es/language/pt-BR.js +4 -0
  19. package/es/language/ru-RU.js +4 -0
  20. package/es/language/th-TH.js +4 -0
  21. package/es/language/ug-CN.js +4 -0
  22. package/es/language/uk-UA.js +4 -0
  23. package/es/language/uz-UZ.js +4 -0
  24. package/es/language/vi-VN.js +4 -0
  25. package/es/language/zh-CHT.js +4 -0
  26. package/es/language/zh-CN.js +4 -0
  27. package/es/select/src/select.js +13 -2
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table-select/src/table-select.js +174 -29
  31. package/es/table-select/style.css +43 -16
  32. package/es/table-select/style.min.css +1 -1
  33. package/es/tree-select/src/tree-select.js +1 -1
  34. package/es/ui/index.js +9 -1
  35. package/es/ui/src/log.js +1 -1
  36. package/es/vxe-table-select/style.css +43 -16
  37. package/es/vxe-table-select/style.min.css +1 -1
  38. package/lib/icon/style/style.css +1 -1
  39. package/lib/icon/style/style.min.css +1 -1
  40. package/lib/index.umd.js +220 -43
  41. package/lib/index.umd.min.js +1 -1
  42. package/lib/language/ar-EG.js +4 -0
  43. package/lib/language/ar-EG.min.js +1 -1
  44. package/lib/language/ar-EG.umd.js +4 -0
  45. package/lib/language/de-DE.js +4 -0
  46. package/lib/language/de-DE.min.js +1 -1
  47. package/lib/language/de-DE.umd.js +4 -0
  48. package/lib/language/en-US.js +4 -0
  49. package/lib/language/en-US.min.js +1 -1
  50. package/lib/language/en-US.umd.js +4 -0
  51. package/lib/language/es-ES.js +4 -0
  52. package/lib/language/es-ES.min.js +1 -1
  53. package/lib/language/es-ES.umd.js +4 -0
  54. package/lib/language/fr-FR.js +4 -0
  55. package/lib/language/fr-FR.min.js +1 -1
  56. package/lib/language/fr-FR.umd.js +4 -0
  57. package/lib/language/hu-HU.js +4 -0
  58. package/lib/language/hu-HU.min.js +1 -1
  59. package/lib/language/hu-HU.umd.js +4 -0
  60. package/lib/language/hy-AM.js +4 -0
  61. package/lib/language/hy-AM.min.js +1 -1
  62. package/lib/language/hy-AM.umd.js +4 -0
  63. package/lib/language/id-ID.js +4 -0
  64. package/lib/language/id-ID.min.js +1 -1
  65. package/lib/language/id-ID.umd.js +4 -0
  66. package/lib/language/it-IT.js +4 -0
  67. package/lib/language/it-IT.min.js +1 -1
  68. package/lib/language/it-IT.umd.js +4 -0
  69. package/lib/language/ja-JP.js +4 -0
  70. package/lib/language/ja-JP.min.js +1 -1
  71. package/lib/language/ja-JP.umd.js +4 -0
  72. package/lib/language/ko-KR.js +4 -0
  73. package/lib/language/ko-KR.min.js +1 -1
  74. package/lib/language/ko-KR.umd.js +4 -0
  75. package/lib/language/ms-MY.js +4 -0
  76. package/lib/language/ms-MY.min.js +1 -1
  77. package/lib/language/ms-MY.umd.js +4 -0
  78. package/lib/language/nb-NO.js +4 -0
  79. package/lib/language/nb-NO.min.js +1 -1
  80. package/lib/language/nb-NO.umd.js +4 -0
  81. package/lib/language/pt-BR.js +4 -0
  82. package/lib/language/pt-BR.min.js +1 -1
  83. package/lib/language/pt-BR.umd.js +4 -0
  84. package/lib/language/ru-RU.js +4 -0
  85. package/lib/language/ru-RU.min.js +1 -1
  86. package/lib/language/ru-RU.umd.js +4 -0
  87. package/lib/language/th-TH.js +4 -0
  88. package/lib/language/th-TH.min.js +1 -1
  89. package/lib/language/th-TH.umd.js +4 -0
  90. package/lib/language/ug-CN.js +4 -0
  91. package/lib/language/ug-CN.min.js +1 -1
  92. package/lib/language/ug-CN.umd.js +4 -0
  93. package/lib/language/uk-UA.js +4 -0
  94. package/lib/language/uk-UA.min.js +1 -1
  95. package/lib/language/uk-UA.umd.js +4 -0
  96. package/lib/language/uz-UZ.js +4 -0
  97. package/lib/language/uz-UZ.min.js +1 -1
  98. package/lib/language/uz-UZ.umd.js +4 -0
  99. package/lib/language/vi-VN.js +4 -0
  100. package/lib/language/vi-VN.min.js +1 -1
  101. package/lib/language/vi-VN.umd.js +4 -0
  102. package/lib/language/zh-CHT.js +4 -0
  103. package/lib/language/zh-CHT.min.js +1 -1
  104. package/lib/language/zh-CHT.umd.js +4 -0
  105. package/lib/language/zh-CN.js +4 -0
  106. package/lib/language/zh-CN.min.js +1 -1
  107. package/lib/language/zh-CN.umd.js +4 -0
  108. package/lib/select/src/select.js +11 -8
  109. package/lib/select/src/select.min.js +1 -1
  110. package/lib/style.css +1 -1
  111. package/lib/style.min.css +1 -1
  112. package/lib/table-select/src/table-select.js +193 -32
  113. package/lib/table-select/src/table-select.min.js +1 -1
  114. package/lib/table-select/style/style.css +43 -16
  115. package/lib/table-select/style/style.min.css +1 -1
  116. package/lib/tree-select/src/tree-select.js +1 -1
  117. package/lib/tree-select/src/tree-select.min.js +1 -1
  118. package/lib/ui/index.js +9 -1
  119. package/lib/ui/index.min.js +1 -1
  120. package/lib/ui/src/log.js +1 -1
  121. package/lib/ui/src/log.min.js +1 -1
  122. package/lib/vxe-table-select/style/style.css +43 -16
  123. package/lib/vxe-table-select/style/style.min.css +1 -1
  124. package/package.json +1 -1
  125. package/packages/language/ar-EG.ts +4 -0
  126. package/packages/language/de-DE.ts +4 -0
  127. package/packages/language/en-US.ts +4 -0
  128. package/packages/language/es-ES.ts +4 -0
  129. package/packages/language/fr-FR.ts +907 -903
  130. package/packages/language/hu-HU.ts +4 -0
  131. package/packages/language/hy-AM.ts +4 -0
  132. package/packages/language/id-ID.ts +4 -0
  133. package/packages/language/it-IT.ts +4 -0
  134. package/packages/language/ja-JP.ts +4 -0
  135. package/packages/language/ko-KR.ts +4 -0
  136. package/packages/language/ms-MY.ts +4 -0
  137. package/packages/language/nb-NO.ts +4 -0
  138. package/packages/language/pt-BR.ts +4 -0
  139. package/packages/language/ru-RU.ts +4 -0
  140. package/packages/language/th-TH.ts +4 -0
  141. package/packages/language/ug-CN.ts +4 -0
  142. package/packages/language/uk-UA.ts +4 -0
  143. package/packages/language/uz-UZ.ts +4 -0
  144. package/packages/language/vi-VN.ts +4 -0
  145. package/packages/language/zh-CHT.ts +4 -0
  146. package/packages/language/zh-CN.ts +4 -0
  147. package/packages/select/src/select.ts +13 -2
  148. package/packages/table-select/src/table-select.ts +185 -30
  149. package/packages/tree-select/src/tree-select.ts +1 -1
  150. package/packages/ui/index.ts +8 -0
  151. package/styles/components/table-select.scss +39 -13
  152. package/types/components/select.d.ts +12 -2
  153. package/types/components/table-select.d.ts +53 -3
  154. /package/es/icon/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  155. /package/es/icon/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  156. /package/es/icon/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  157. /package/es/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  158. /package/es/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  159. /package/es/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  160. /package/lib/icon/style/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  161. /package/lib/icon/style/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  162. /package/lib/icon/style/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  163. /package/lib/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  164. /package/lib/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  165. /package/lib/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
@@ -15,8 +15,10 @@ export function getRowUniqueId() {
15
15
  function createReactData() {
16
16
  return {
17
17
  initialized: false,
18
+ searchValue: '',
19
+ searchLoading: false,
20
+ tableData: [],
18
21
  tableColumns: [],
19
- fullOptionList: [],
20
22
  panelIndex: 0,
21
23
  panelStyle: {},
22
24
  panelPlacement: null,
@@ -30,7 +32,9 @@ function createInternalData() {
30
32
  return {
31
33
  // hpTimeout: undefined,
32
34
  // vpTimeout: undefined,
33
- fullRowMaps: {}
35
+ fullData: [],
36
+ afterVisibleList: [],
37
+ fullValMaps: {}
34
38
  };
35
39
  }
36
40
  export default defineVxeComponent({
@@ -62,6 +66,13 @@ export default defineVxeComponent({
62
66
  options: Array,
63
67
  optionProps: Object,
64
68
  lazyOptions: Array,
69
+ filterable: {
70
+ type: Boolean,
71
+ default: () => getConfig().tableSelect.filterable
72
+ },
73
+ filterConfig: Object,
74
+ remote: Boolean,
75
+ remoteConfig: Object,
65
76
  /**
66
77
  * 已废弃,请使用 popupConfig.zIndex
67
78
  * @deprecated
@@ -104,6 +115,7 @@ export default defineVxeComponent({
104
115
  const refInput = ref();
105
116
  const refGridWrapper = ref();
106
117
  const refOptionPanel = ref();
118
+ const refInpSearch = ref();
107
119
  const refGrid = ref();
108
120
  const reactData = reactive(createReactData());
109
121
  const internalData = createInternalData();
@@ -186,6 +198,12 @@ export default defineVxeComponent({
186
198
  data: undefined
187
199
  });
188
200
  });
201
+ const computeRemoteOpts = computed(() => {
202
+ return Object.assign({}, getConfig().tableSelect.remoteConfig, props.remoteConfig);
203
+ });
204
+ const computeFilterOpts = computed(() => {
205
+ return Object.assign({}, getConfig().tableSelect.filterConfig, props.filterConfig);
206
+ });
189
207
  const computeSelectGridOpts = computed(() => {
190
208
  const gridOpts = computeGridOpts.value;
191
209
  const checkboxOpts = computeCheckboxOpts.value;
@@ -200,16 +218,16 @@ export default defineVxeComponent({
200
218
  Object.assign(newProxyConfig.ajax, {
201
219
  query(params, ...args) {
202
220
  return Promise.resolve(ajaxMethods(params, ...args)).then(rest => {
203
- let tableData = [];
221
+ let currData = [];
204
222
  if (pagerConfig) {
205
223
  const resultProp = resConfigs.result;
206
- tableData = (XEUtils.isFunction(resultProp) ? resultProp({ data: rest, $table: null, $grid: null, $gantt: null }) : XEUtils.get(rest, resultProp || 'result')) || [];
224
+ currData = (XEUtils.isFunction(resultProp) ? resultProp({ data: rest, $table: null, $grid: null, $gantt: null }) : XEUtils.get(rest, resultProp || 'result')) || [];
207
225
  }
208
226
  else {
209
227
  const listProp = resConfigs.list;
210
- tableData = (listProp ? (XEUtils.isFunction(listProp) ? listProp({ data: rest, $table: null, $grid: null, $gantt: null }) : XEUtils.get(rest, listProp)) : rest) || [];
228
+ currData = (listProp ? (XEUtils.isFunction(listProp) ? listProp({ data: rest, $table: null, $grid: null, $gantt: null }) : XEUtils.get(rest, listProp)) : rest) || [];
211
229
  }
212
- cacheDataMap(tableData || []);
230
+ cacheDataMap(currData || []);
213
231
  return rest;
214
232
  });
215
233
  }
@@ -222,15 +240,14 @@ export default defineVxeComponent({
222
240
  });
223
241
  const computeSelectLabel = computed(() => {
224
242
  const { modelValue, lazyOptions } = props;
225
- const { fullOptionList } = reactData;
226
- const { fullRowMaps } = internalData;
243
+ const { fullValMaps, fullData } = internalData;
227
244
  const valueField = computeValueField.value;
228
245
  const labelField = computeLabelField.value;
229
- if (!fullOptionList) {
246
+ if (!fullData) {
230
247
  return '';
231
248
  }
232
249
  return (XEUtils.isArray(modelValue) ? modelValue : [modelValue]).map(val => {
233
- const cacheItem = fullRowMaps[val];
250
+ const cacheItem = fullValMaps[val];
234
251
  if (cacheItem) {
235
252
  return cacheItem.item[labelField];
236
253
  }
@@ -292,7 +309,7 @@ export default defineVxeComponent({
292
309
  return rowid ? encodeURIComponent(rowid) : '';
293
310
  };
294
311
  const getRowsByValue = (modelValue) => {
295
- const { fullRowMaps } = internalData;
312
+ const { fullValMaps } = internalData;
296
313
  const checkboxOpts = computeCheckboxOpts.value;
297
314
  const rowKeyField = computeRowKeyField.value;
298
315
  const valueField = computeValueField.value;
@@ -301,7 +318,7 @@ export default defineVxeComponent({
301
318
  const vals = XEUtils.eqNull(modelValue) ? [] : (XEUtils.isArray(modelValue) ? modelValue : [modelValue]);
302
319
  if (checkboxOpts.reserve) {
303
320
  vals.forEach(val => {
304
- const cacheItem = fullRowMaps[val];
321
+ const cacheItem = fullValMaps[val];
305
322
  rows.push(cacheItem
306
323
  ? cacheItem.item
307
324
  : {
@@ -313,7 +330,7 @@ export default defineVxeComponent({
313
330
  }
314
331
  else {
315
332
  vals.forEach(val => {
316
- const cacheItem = fullRowMaps[val];
333
+ const cacheItem = fullValMaps[val];
317
334
  if (cacheItem) {
318
335
  rows.push(cacheItem.item);
319
336
  }
@@ -338,7 +355,11 @@ export default defineVxeComponent({
338
355
  }
339
356
  });
340
357
  };
341
- const loadTableColumn = (columns) => {
358
+ const loadData = (data) => {
359
+ cacheDataMap(data);
360
+ handleData();
361
+ };
362
+ const loadColumn = (columns) => {
342
363
  if (!columns || !columns.length) {
343
364
  return;
344
365
  }
@@ -382,7 +403,7 @@ export default defineVxeComponent({
382
403
  const rowMaps = {};
383
404
  const keyMaps = {};
384
405
  if (treeConfig) {
385
- // x
406
+ // 暂不支持
386
407
  }
387
408
  else {
388
409
  XEUtils.arrayEach(dataList || options || [], (item, index, items) => {
@@ -398,13 +419,54 @@ export default defineVxeComponent({
398
419
  if (rowMaps[value]) {
399
420
  errLog('vxe.error.repeatKey', [valueField, value]);
400
421
  }
401
- rowMaps[value] = { item, index, items, parent: null, nodes: [] };
422
+ rowMaps[value] = { item, index, _index: index, items, parent: null, nodes: [] };
402
423
  });
403
424
  }
404
- reactData.fullOptionList = dataList || options || [];
405
- internalData.fullRowMaps = pagerConfig ? Object.assign({}, internalData.fullRowMaps, rowMaps) : rowMaps;
425
+ internalData.fullData = dataList || options || [];
426
+ internalData.fullValMaps = pagerConfig ? Object.assign({}, internalData.fullValMaps, rowMaps) : rowMaps;
427
+ handleOptList();
406
428
  updateModel(props.modelValue);
407
429
  };
430
+ const handleOptList = () => {
431
+ const { remote, modelValue, filterable } = props;
432
+ const { searchValue } = reactData;
433
+ const { fullData, fullValMaps } = internalData;
434
+ const valueField = computeValueField.value;
435
+ const labelField = computeLabelField.value;
436
+ const filterOpts = computeFilterOpts.value;
437
+ const frMethod = filterOpts.filterMethod;
438
+ const searchStr = `${searchValue || ''}`.toLowerCase();
439
+ let avList = [];
440
+ if (remote) {
441
+ avList = fullData;
442
+ }
443
+ else {
444
+ if (filterable && frMethod) {
445
+ avList = searchStr
446
+ ? fullData.filter(row => frMethod({
447
+ $tableSelect: $xeTableSelect,
448
+ row,
449
+ filterValue: searchValue,
450
+ value: modelValue
451
+ }))
452
+ : fullData;
453
+ }
454
+ else if (filterable) {
455
+ avList = searchStr ? fullData.filter(row => (`${row[labelField] || row[valueField]}`.toLowerCase().indexOf(searchStr) > -1)) : fullData;
456
+ }
457
+ else {
458
+ avList = fullData;
459
+ }
460
+ }
461
+ avList.forEach((item, index) => {
462
+ const cacheItem = fullValMaps[item[valueField]];
463
+ if (cacheItem) {
464
+ cacheItem._index = index;
465
+ }
466
+ });
467
+ internalData.afterVisibleList = avList;
468
+ return nextTick();
469
+ };
408
470
  const updateZindex = () => {
409
471
  const popupOpts = computePopupOpts.value;
410
472
  const customZIndex = popupOpts.zIndex || props.zIndex;
@@ -439,8 +501,10 @@ export default defineVxeComponent({
439
501
  return nextTick().then(handleStyle);
440
502
  };
441
503
  const showOptionPanel = () => {
442
- const { loading } = props;
504
+ const { loading, remote, filterable } = props;
505
+ const { fullData } = internalData;
443
506
  const isDisabled = computeIsDisabled.value;
507
+ const remoteOpts = computeRemoteOpts.value;
444
508
  if (!loading && !isDisabled) {
445
509
  if (internalData.vpTimeout) {
446
510
  clearTimeout(internalData.vpTimeout);
@@ -451,12 +515,18 @@ export default defineVxeComponent({
451
515
  if (!reactData.initialized) {
452
516
  reactData.initialized = true;
453
517
  }
518
+ if (filterable) {
519
+ if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullData.length) {
520
+ handleSearchEvent();
521
+ }
522
+ }
454
523
  reactData.isActivated = true;
455
524
  reactData.isAniVisible = true;
456
525
  internalData.vpTimeout = setTimeout(() => {
457
526
  reactData.visiblePanel = true;
458
527
  updateModel(props.modelValue);
459
528
  internalData.vpTimeout = undefined;
529
+ handleFocusSearch();
460
530
  updatePlacement();
461
531
  }, 10);
462
532
  updateZindex();
@@ -464,7 +534,14 @@ export default defineVxeComponent({
464
534
  }
465
535
  };
466
536
  const hideOptionPanel = () => {
537
+ const { filterable } = props;
538
+ const filterOpts = computeFilterOpts.value;
467
539
  reactData.visiblePanel = false;
540
+ if (filterable) {
541
+ if (filterOpts.clearOnClose) {
542
+ reactData.searchValue = '';
543
+ }
544
+ }
468
545
  if (internalData.vpTimeout) {
469
546
  clearTimeout(internalData.vpTimeout);
470
547
  }
@@ -476,6 +553,36 @@ export default defineVxeComponent({
476
553
  internalData.hpTimeout = undefined;
477
554
  }, 350);
478
555
  };
556
+ const handleData = () => {
557
+ const { afterVisibleList } = internalData;
558
+ reactData.tableData = afterVisibleList;
559
+ return nextTick();
560
+ };
561
+ const modelSearchEvent = (value) => {
562
+ reactData.searchValue = value;
563
+ };
564
+ const focusSearchEvent = () => {
565
+ reactData.isActivated = true;
566
+ };
567
+ const handleSearchEvent = () => {
568
+ const { modelValue, remote } = props;
569
+ const { searchValue } = reactData;
570
+ const remoteOpts = computeRemoteOpts.value;
571
+ const queryMethod = remoteOpts.queryMethod;
572
+ if (remote && queryMethod && remoteOpts.enabled) {
573
+ reactData.searchLoading = true;
574
+ Promise.resolve(queryMethod({ $tableSelect: $xeTableSelect, searchValue, value: modelValue })).then(() => nextTick())
575
+ .catch(() => nextTick())
576
+ .finally(() => {
577
+ reactData.searchLoading = false;
578
+ });
579
+ }
580
+ else {
581
+ handleOptList();
582
+ handleData();
583
+ }
584
+ };
585
+ const triggerSearchEvent = XEUtils.debounce(handleSearchEvent, 350, { trailing: true });
479
586
  const changeEvent = (evnt, selectValue, row) => {
480
587
  emitModel(selectValue);
481
588
  if (selectValue !== props.modelValue) {
@@ -538,6 +645,16 @@ export default defineVxeComponent({
538
645
  updatePlacement();
539
646
  }
540
647
  };
648
+ const handleFocusSearch = () => {
649
+ if (props.filterable) {
650
+ nextTick(() => {
651
+ const inpSearch = refInpSearch.value;
652
+ if (inpSearch) {
653
+ inpSearch.focus();
654
+ }
655
+ });
656
+ }
657
+ };
541
658
  const focusEvent = (evnt) => {
542
659
  const isDisabled = computeIsDisabled.value;
543
660
  if (!isDisabled) {
@@ -601,8 +718,8 @@ export default defineVxeComponent({
601
718
  };
602
719
  Object.assign($xeTableSelect, tableSelectMethods, tableSelectPrivateMethods);
603
720
  const renderVN = () => {
604
- const { className, options, loading } = props;
605
- const { initialized, isActivated, isAniVisible, visiblePanel, tableColumns } = reactData;
721
+ const { className, loading, filterable, remote } = props;
722
+ const { initialized, isActivated, isAniVisible, visiblePanel, tableColumns, searchValue, tableData, searchLoading } = reactData;
606
723
  const vSize = computeSize.value;
607
724
  const isDisabled = computeIsDisabled.value;
608
725
  const selectLabel = computeSelectLabel.value;
@@ -611,6 +728,7 @@ export default defineVxeComponent({
611
728
  const popupOpts = computePopupOpts.value;
612
729
  const selectGridOpts = computeSelectGridOpts.value;
613
730
  const rowOpts = computeRowOpts.value;
731
+ const filterOpts = computeFilterOpts.value;
614
732
  const popupWrapperStyle = computePopupWrapperStyle.value;
615
733
  const { appendTo } = popupOpts;
616
734
  const headerSlot = slots.header;
@@ -631,6 +749,7 @@ export default defineVxeComponent({
631
749
  ref: refElem,
632
750
  class: ['vxe-table-select', className ? (XEUtils.isFunction(className) ? className({ $tableSelect: $xeTableSelect }) : className) : '', {
633
751
  [`size--${vSize}`]: vSize,
752
+ 'is--filterable': filterable,
634
753
  'is--visible': visiblePanel,
635
754
  'is--disabled': isDisabled,
636
755
  'is--loading': loading,
@@ -676,6 +795,26 @@ export default defineVxeComponent({
676
795
  h('div', {
677
796
  class: 'vxe-table-select--panel-wrapper'
678
797
  }, [
798
+ filterable
799
+ ? h('div', {
800
+ class: 'vxe-table-select--panel-search'
801
+ }, [
802
+ h(VxeInputComponent, {
803
+ ref: refInpSearch,
804
+ class: 'vxe-table-select-search--input',
805
+ modelValue: searchValue,
806
+ clearable: true,
807
+ disabled: false,
808
+ readonly: false,
809
+ placeholder: getI18n('vxe.treeSelect.search'),
810
+ prefixIcon: getIcon().INPUT_SEARCH,
811
+ 'onUpdate:modelValue': modelSearchEvent,
812
+ onFocus: focusSearchEvent,
813
+ onChange: triggerSearchEvent,
814
+ onSearch: triggerSearchEvent
815
+ })
816
+ ])
817
+ : renderEmptyElement($xeTableSelect),
679
818
  headerSlot
680
819
  ? h('div', {
681
820
  class: 'vxe-table-select--panel-header'
@@ -690,7 +829,7 @@ export default defineVxeComponent({
690
829
  style: popupWrapperStyle
691
830
  }, [
692
831
  VxeTableGridComponent
693
- ? h(VxeTableGridComponent, Object.assign(Object.assign(Object.assign({}, selectGridOpts), gridEvents), { class: 'vxe-table-select--grid', ref: refGrid, rowConfig: rowOpts, data: options, columns: tableColumns.length ? tableColumns : selectGridOpts.columns, height: '100%', autoResize: true, onRadioChange: radioChangeEvent, onCheckboxChange: checkboxChangeEvent, onCheckboxAll: checkboxAllEvent }), Object.assign({}, slots, {
832
+ ? h(VxeTableGridComponent, Object.assign(Object.assign(Object.assign({}, selectGridOpts), gridEvents), { class: 'vxe-table-select--grid', ref: refGrid, loading: remote && searchLoading, rowConfig: rowOpts, data: tableData, columns: tableColumns.length ? tableColumns : selectGridOpts.columns, height: '100%', autoResize: true, onRadioChange: radioChangeEvent, onCheckboxChange: checkboxChangeEvent, onCheckboxAll: checkboxAllEvent }), Object.assign({}, slots, {
694
833
  header: undefined,
695
834
  footer: undefined,
696
835
  prefixSlot: undefined
@@ -698,10 +837,16 @@ export default defineVxeComponent({
698
837
  : renderEmptyElement($xeTableSelect)
699
838
  ])
700
839
  ]),
701
- footerSlot
840
+ footerSlot || (filterable && searchValue && !remote && filterOpts.showResultCount)
702
841
  ? h('div', {
703
842
  class: 'vxe-table-select--panel-footer'
704
- }, footerSlot({}))
843
+ }, footerSlot
844
+ ? footerSlot({})
845
+ : [
846
+ h('div', {
847
+ class: 'vxe-table-select--search-count'
848
+ }, searchLoading ? '' : getI18n('vxe.tableSelect.filterCount', [tableData.length]))
849
+ ])
705
850
  : renderEmptyElement($xeTableSelect)
706
851
  ])
707
852
  ]
@@ -709,17 +854,17 @@ export default defineVxeComponent({
709
854
  ])
710
855
  ]);
711
856
  };
712
- watch(() => props.options, () => {
713
- cacheDataMap();
857
+ watch(() => props.options, (val) => {
858
+ loadData(val || []);
714
859
  });
715
860
  watch(() => props.columns, (val) => {
716
- loadTableColumn(val);
861
+ loadColumn(val);
717
862
  });
718
863
  watch(() => props.modelValue, (val) => {
719
864
  updateModel(val);
720
865
  });
721
- loadTableColumn(props.columns);
722
- cacheDataMap();
866
+ loadColumn(props.columns);
867
+ loadData(props.options || []);
723
868
  onMounted(() => {
724
869
  const { gridConfig } = props;
725
870
  if (gridConfig && gridConfig.proxyConfig) {
@@ -1,3 +1,34 @@
1
+ .vxe-table-select,
2
+ .vxe-table-select--panel {
3
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-default);
4
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-default);
5
+ }
6
+ .vxe-table-select.size--xlarge,
7
+ .vxe-table-select--panel.size--xlarge {
8
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-xlarge);
9
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-xlarge);
10
+ }
11
+ .vxe-table-select.size--large,
12
+ .vxe-table-select--panel.size--large {
13
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-large);
14
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-large);
15
+ }
16
+ .vxe-table-select.size--medium,
17
+ .vxe-table-select--panel.size--medium {
18
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-medium);
19
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-medium);
20
+ }
21
+ .vxe-table-select.size--small,
22
+ .vxe-table-select--panel.size--small {
23
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-small);
24
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-small);
25
+ }
26
+ .vxe-table-select.size--mini,
27
+ .vxe-table-select--panel.size--mini {
28
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-mini);
29
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-mini);
30
+ }
31
+
1
32
  .vxe-table-select {
2
33
  position: relative;
3
34
  display: inline-block;
@@ -78,13 +109,15 @@
78
109
 
79
110
  .vxe-table-select--panel-search {
80
111
  display: block;
112
+ padding: var(--vxe-ui-table-select-current-padding) var(--vxe-ui-table-select-current-padding) 0 var(--vxe-ui-table-select-current-padding);
81
113
  }
82
114
  .vxe-table-select--panel-search .vxe-table-select-search--input {
83
115
  width: 100%;
84
116
  }
85
117
 
86
118
  .vxe-table-select--panel-wrapper {
87
- display: inline-flex;
119
+ display: flex;
120
+ flex-direction: column;
88
121
  position: relative;
89
122
  border-radius: var(--vxe-ui-base-border-radius);
90
123
  border: 1px solid var(--vxe-ui-base-popup-border-color);
@@ -103,31 +136,25 @@
103
136
 
104
137
  .vxe-table-select--panel-header,
105
138
  .vxe-table-select--panel-footer {
106
- padding: 4px 0;
139
+ padding: var(--vxe-ui-table-select-current-padding) 0;
107
140
  }
108
141
 
109
142
  .vxe-table-select-grid--wrapper {
110
143
  position: relative;
111
144
  overflow: auto;
112
- padding: var(--vxe-ui-layout-padding-default);
145
+ padding: var(--vxe-ui-table-select-current-padding);
113
146
  height: 21em;
114
147
  width: 36em;
115
148
  outline: 0;
116
149
  }
117
150
 
151
+ .vxe-table-select--search-count {
152
+ text-align: right;
153
+ padding: 0 var(--vxe-ui-table-select-current-padding);
154
+ color: var(--vxe-ui-font-placeholder-color);
155
+ }
156
+
118
157
  .vxe-table-select,
119
158
  .vxe-table-select--panel {
120
- font-size: var(--vxe-ui-font-size-default);
121
- }
122
- .vxe-table-select.size--medium,
123
- .vxe-table-select--panel.size--medium {
124
- font-size: var(--vxe-ui-font-size-medium);
125
- }
126
- .vxe-table-select.size--small,
127
- .vxe-table-select--panel.size--small {
128
- font-size: var(--vxe-ui-font-size-small);
129
- }
130
- .vxe-table-select.size--mini,
131
- .vxe-table-select--panel.size--mini {
132
- font-size: var(--vxe-ui-font-size-mini);
159
+ font-size: var(--vxe-ui-table-select-current-font-size);
133
160
  }
@@ -1 +1 @@
1
- .vxe-table-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-table-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-table-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-table-select>.vxe-input{width:100%}.vxe-table-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-table-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-table-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-table-select--panel{pointer-events:none;display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select--panel:not(.is--transfer){min-width:100%}.vxe-table-select--panel.is--transfer{position:fixed}.vxe-table-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-table-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-table-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-table-select--panel.ani--enter>div::after{display:none}.vxe-table-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-table-select--panel-search{display:block}.vxe-table-select--panel-search .vxe-table-select-search--input{width:100%}.vxe-table-select--panel-wrapper{display:inline-flex;position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color);pointer-events:auto}.vxe-table-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer,.vxe-table-select--panel-header{padding:4px 0}.vxe-table-select-grid--wrapper{position:relative;overflow:auto;padding:var(--vxe-ui-layout-padding-default);height:21em;width:36em;outline:0}.vxe-table-select,.vxe-table-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-table-select--panel.size--medium,.vxe-table-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-table-select--panel.size--small,.vxe-table-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-table-select--panel.size--mini,.vxe-table-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-table-select,.vxe-table-select--panel{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-table-select--panel.size--xlarge,.vxe-table-select.size--xlarge{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-table-select--panel.size--large,.vxe-table-select.size--large{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-large)}.vxe-table-select--panel.size--medium,.vxe-table-select.size--medium{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-table-select--panel.size--small,.vxe-table-select.size--small{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-table-select--panel.size--mini,.vxe-table-select.size--mini{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-table-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-table-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-table-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-table-select>.vxe-input{width:100%}.vxe-table-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-table-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-table-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-table-select--panel{pointer-events:none;display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select--panel:not(.is--transfer){min-width:100%}.vxe-table-select--panel.is--transfer{position:fixed}.vxe-table-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-table-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-table-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-table-select--panel.ani--enter>div::after{display:none}.vxe-table-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-table-select--panel-search{display:block;padding:var(--vxe-ui-table-select-current-padding) var(--vxe-ui-table-select-current-padding) 0 var(--vxe-ui-table-select-current-padding)}.vxe-table-select--panel-search .vxe-table-select-search--input{width:100%}.vxe-table-select--panel-wrapper{display:flex;flex-direction:column;position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color);pointer-events:auto}.vxe-table-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer,.vxe-table-select--panel-header{padding:var(--vxe-ui-table-select-current-padding) 0}.vxe-table-select-grid--wrapper{position:relative;overflow:auto;padding:var(--vxe-ui-table-select-current-padding);height:21em;width:36em;outline:0}.vxe-table-select--search-count{text-align:right;padding:0 var(--vxe-ui-table-select-current-padding);color:var(--vxe-ui-font-placeholder-color)}.vxe-table-select,.vxe-table-select--panel{font-size:var(--vxe-ui-table-select-current-font-size)}
@@ -90,7 +90,7 @@ export default defineVxeComponent({
90
90
  default: () => getConfig().treeSelect.size || getConfig().size
91
91
  },
92
92
  remote: Boolean,
93
- remoteConfig: Function,
93
+ remoteConfig: Object,
94
94
  showRadio: {
95
95
  type: Boolean,
96
96
  default: () => getConfig().treeSelect.showRadio
package/es/ui/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
2
2
  import { dynamicApp } from '../dynamics';
3
3
  import { warnLog } from './src/log';
4
- export const version = "4.20.16";
4
+ export const version = "4.20.17";
5
5
  VxeUI.uiVersion = version;
6
6
  VxeUI.dynamicApp = dynamicApp;
7
7
  export function config(options) {
@@ -407,6 +407,10 @@ setConfig({
407
407
  switch: {},
408
408
  tabPane: {},
409
409
  tableSelect: {
410
+ remoteConfig: {
411
+ enabled: true,
412
+ autoLoad: true
413
+ },
410
414
  gridConfig: {
411
415
  showOverflow: true,
412
416
  showHeaderOverflow: true,
@@ -486,6 +490,10 @@ setConfig({
486
490
  gt: 0,
487
491
  oSize: 2
488
492
  },
493
+ remoteConfig: {
494
+ enabled: true,
495
+ autoLoad: true
496
+ },
489
497
  treeConfig: {
490
498
  maxHeight: 300,
491
499
  radioConfig: {},
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const uiVersion = `ui v${"4.20.16"}`;
3
+ const uiVersion = `ui v${"4.20.17"}`;
4
4
  export function createComponentLog(name) {
5
5
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
6
6
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -1,3 +1,34 @@
1
+ .vxe-table-select,
2
+ .vxe-table-select--panel {
3
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-default);
4
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-default);
5
+ }
6
+ .vxe-table-select.size--xlarge,
7
+ .vxe-table-select--panel.size--xlarge {
8
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-xlarge);
9
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-xlarge);
10
+ }
11
+ .vxe-table-select.size--large,
12
+ .vxe-table-select--panel.size--large {
13
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-large);
14
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-large);
15
+ }
16
+ .vxe-table-select.size--medium,
17
+ .vxe-table-select--panel.size--medium {
18
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-medium);
19
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-medium);
20
+ }
21
+ .vxe-table-select.size--small,
22
+ .vxe-table-select--panel.size--small {
23
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-small);
24
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-small);
25
+ }
26
+ .vxe-table-select.size--mini,
27
+ .vxe-table-select--panel.size--mini {
28
+ --vxe-ui-table-select-current-font-size: var(--vxe-ui-font-size-mini);
29
+ --vxe-ui-table-select-current-padding: var(--vxe-ui-layout-padding-mini);
30
+ }
31
+
1
32
  .vxe-table-select {
2
33
  position: relative;
3
34
  display: inline-block;
@@ -78,13 +109,15 @@
78
109
 
79
110
  .vxe-table-select--panel-search {
80
111
  display: block;
112
+ padding: var(--vxe-ui-table-select-current-padding) var(--vxe-ui-table-select-current-padding) 0 var(--vxe-ui-table-select-current-padding);
81
113
  }
82
114
  .vxe-table-select--panel-search .vxe-table-select-search--input {
83
115
  width: 100%;
84
116
  }
85
117
 
86
118
  .vxe-table-select--panel-wrapper {
87
- display: inline-flex;
119
+ display: flex;
120
+ flex-direction: column;
88
121
  position: relative;
89
122
  border-radius: var(--vxe-ui-base-border-radius);
90
123
  border: 1px solid var(--vxe-ui-base-popup-border-color);
@@ -103,31 +136,25 @@
103
136
 
104
137
  .vxe-table-select--panel-header,
105
138
  .vxe-table-select--panel-footer {
106
- padding: 4px 0;
139
+ padding: var(--vxe-ui-table-select-current-padding) 0;
107
140
  }
108
141
 
109
142
  .vxe-table-select-grid--wrapper {
110
143
  position: relative;
111
144
  overflow: auto;
112
- padding: var(--vxe-ui-layout-padding-default);
145
+ padding: var(--vxe-ui-table-select-current-padding);
113
146
  height: 21em;
114
147
  width: 36em;
115
148
  outline: 0;
116
149
  }
117
150
 
151
+ .vxe-table-select--search-count {
152
+ text-align: right;
153
+ padding: 0 var(--vxe-ui-table-select-current-padding);
154
+ color: var(--vxe-ui-font-placeholder-color);
155
+ }
156
+
118
157
  .vxe-table-select,
119
158
  .vxe-table-select--panel {
120
- font-size: var(--vxe-ui-font-size-default);
121
- }
122
- .vxe-table-select.size--medium,
123
- .vxe-table-select--panel.size--medium {
124
- font-size: var(--vxe-ui-font-size-medium);
125
- }
126
- .vxe-table-select.size--small,
127
- .vxe-table-select--panel.size--small {
128
- font-size: var(--vxe-ui-font-size-small);
129
- }
130
- .vxe-table-select.size--mini,
131
- .vxe-table-select--panel.size--mini {
132
- font-size: var(--vxe-ui-font-size-mini);
159
+ font-size: var(--vxe-ui-table-select-current-font-size);
133
160
  }
@@ -1 +1 @@
1
- .vxe-table-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-table-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-table-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-table-select>.vxe-input{width:100%}.vxe-table-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-table-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-table-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-table-select--panel{pointer-events:none;display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select--panel:not(.is--transfer){min-width:100%}.vxe-table-select--panel.is--transfer{position:fixed}.vxe-table-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-table-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-table-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-table-select--panel.ani--enter>div::after{display:none}.vxe-table-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-table-select--panel-search{display:block}.vxe-table-select--panel-search .vxe-table-select-search--input{width:100%}.vxe-table-select--panel-wrapper{display:inline-flex;position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color);pointer-events:auto}.vxe-table-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer,.vxe-table-select--panel-header{padding:4px 0}.vxe-table-select-grid--wrapper{position:relative;overflow:auto;padding:var(--vxe-ui-layout-padding-default);height:21em;width:36em;outline:0}.vxe-table-select,.vxe-table-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-table-select--panel.size--medium,.vxe-table-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-table-select--panel.size--small,.vxe-table-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-table-select--panel.size--mini,.vxe-table-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-table-select,.vxe-table-select--panel{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-table-select--panel.size--xlarge,.vxe-table-select.size--xlarge{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-table-select--panel.size--large,.vxe-table-select.size--large{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-large)}.vxe-table-select--panel.size--medium,.vxe-table-select.size--medium{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-table-select--panel.size--small,.vxe-table-select.size--small{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-table-select--panel.size--mini,.vxe-table-select.size--mini{--vxe-ui-table-select-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-table-select-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-table-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-table-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-table-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-table-select>.vxe-input{width:100%}.vxe-table-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-table-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-table-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-table-select--panel{pointer-events:none;display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-table-select--panel:not(.is--transfer){min-width:100%}.vxe-table-select--panel.is--transfer{position:fixed}.vxe-table-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-table-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-table-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-table-select--panel.ani--enter>div::after{display:none}.vxe-table-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-table-select--panel-search{display:block;padding:var(--vxe-ui-table-select-current-padding) var(--vxe-ui-table-select-current-padding) 0 var(--vxe-ui-table-select-current-padding)}.vxe-table-select--panel-search .vxe-table-select-search--input{width:100%}.vxe-table-select--panel-wrapper{display:flex;flex-direction:column;position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color);pointer-events:auto}.vxe-table-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-table-select--panel-footer,.vxe-table-select--panel-header{padding:var(--vxe-ui-table-select-current-padding) 0}.vxe-table-select-grid--wrapper{position:relative;overflow:auto;padding:var(--vxe-ui-table-select-current-padding);height:21em;width:36em;outline:0}.vxe-table-select--search-count{text-align:right;padding:0 var(--vxe-ui-table-select-current-padding);color:var(--vxe-ui-font-placeholder-color)}.vxe-table-select,.vxe-table-select--panel{font-size:var(--vxe-ui-table-select-current-font-size)}