vxe-table 4.7.0-alpha.1 → 4.7.0-alpha.11

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 (60) hide show
  1. package/README.en.md +5 -3
  2. package/README.md +5 -3
  3. package/README.zh-TW.md +4 -2
  4. package/es/grid/src/grid.js +98 -78
  5. package/es/grid/style.css +15 -2
  6. package/es/grid/style.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/export/hook.js +8 -6
  10. package/es/table/src/table.js +20 -18
  11. package/es/table/style.css +6 -6
  12. package/es/table/style.min.css +1 -1
  13. package/es/toolbar/style.css +3 -3
  14. package/es/toolbar/style.min.css +1 -1
  15. package/es/ui/index.js +18 -3
  16. package/es/vxe-grid/style.css +15 -2
  17. package/es/vxe-grid/style.min.css +1 -1
  18. package/es/vxe-table/style.css +6 -6
  19. package/es/vxe-table/style.min.css +1 -1
  20. package/es/vxe-toolbar/style.css +3 -3
  21. package/es/vxe-toolbar/style.min.css +1 -1
  22. package/lib/grid/src/grid.js +97 -70
  23. package/lib/grid/src/grid.min.js +1 -1
  24. package/lib/grid/style/style.css +15 -2
  25. package/lib/grid/style/style.min.css +1 -1
  26. package/lib/index.umd.js +144 -90
  27. package/lib/index.umd.min.js +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/table/module/export/hook.js +7 -5
  31. package/lib/table/module/export/hook.min.js +1 -1
  32. package/lib/table/src/table.js +17 -12
  33. package/lib/table/src/table.min.js +1 -1
  34. package/lib/table/style/style.css +6 -6
  35. package/lib/table/style/style.min.css +1 -1
  36. package/lib/toolbar/style/style.css +3 -3
  37. package/lib/toolbar/style/style.min.css +1 -1
  38. package/lib/ui/index.js +25 -3
  39. package/lib/ui/index.min.js +1 -1
  40. package/lib/vxe-grid/style/style.css +15 -2
  41. package/lib/vxe-grid/style/style.min.css +1 -1
  42. package/lib/vxe-table/style/style.css +6 -6
  43. package/lib/vxe-table/style/style.min.css +1 -1
  44. package/lib/vxe-toolbar/style/style.css +3 -3
  45. package/lib/vxe-toolbar/style/style.min.css +1 -1
  46. package/package.json +3 -3
  47. package/packages/grid/src/grid.ts +111 -94
  48. package/packages/table/module/export/hook.ts +8 -6
  49. package/packages/table/src/table.ts +22 -22
  50. package/packages/ui/index.ts +21 -3
  51. package/styles/base.scss +15 -1
  52. package/styles/components/grid.scss +15 -2
  53. package/styles/components/table-module/custom.scss +2 -2
  54. package/styles/components/table.scss +4 -4
  55. package/styles/components/toolbar.scss +3 -3
  56. package/styles/theme/base.scss +2 -26
  57. package/styles/theme/dark.scss +33 -0
  58. package/styles/theme/light.scss +38 -0
  59. package/types/all.d.ts +33 -0
  60. package/styles/theme/default.scss +0 -5
package/README.en.md CHANGED
@@ -12,7 +12,7 @@
12
12
  [![pull requests closed](https://img.shields.io/github/issues-pr-closed/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/pulls?q=is%3Apr+is%3Aclosed)
13
13
  [![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)
14
14
 
15
- A [vue](https://www.npmjs.com/package/vue) based PC form component, support add delete change check, virtual tree, column drag and drop, lazy loading, shortcut menu, data verification, print export, form rendering, custom template, renderer, JSON configuration...
15
+ A [vue](https://www.npmjs.com/package/vue) based PC form component, support add delete change check, virtual tree, column drag and drop, lazy loading, shortcut menu, data verification, import/export/print, form rendering, custom template, renderer, JSON configuration...
16
16
 
17
17
  * Design concept
18
18
  * Efficient and concise API design for modern browsers.
@@ -22,8 +22,10 @@ A [vue](https://www.npmjs.com/package/vue) based PC form component, support add
22
22
  * Plan
23
23
  * [x] ~~v1.0 Based on vue2.6, Support for all major browsers.~~
24
24
  * [x] ~~v2.0 Based on vue2.6, Support for all major browsers.~~
25
- * [x] v3.0 Based on vue2.6, supports modern browsers and retains compatibility with IE11.
26
- * [x] v4.0 Based on vue3.x, Only support modern browser, not IE.
25
+ * [x] v3.0 Based on vue2.6+, supports modern browsers and retains compatibility with IE11.
26
+ * [ ] v3.9 Based on vue2.6+, Reconstruct and split the components into [Vxe table](https://github.com/x-extends/vxe-table) and [Vxe UI](https://github.com/x-extends/vxe-pc-ui). Form Designer, list designer, process designer will be supported.
27
+ * [x] v4.0 Based on vue3.2+, Only support modern browser, not IE.
28
+ * [x] v4.7 Based on vue3.2+, Reconstruct and split the components into [Vxe table](https://github.com/x-extends/vxe-table) and [Vxe UI](https://github.com/x-extends/vxe-pc-ui). Form Designer, list designer, process designer will be supported.
27
29
 
28
30
  ## Browser Support
29
31
 
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  [![pull requests closed](https://img.shields.io/github/issues-pr-closed/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/pulls?q=is%3Apr+is%3Aclosed)
13
13
  [![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)
14
14
 
15
- 一个基于 [vue](https://www.npmjs.com/package/vue) 的 PC 端表单/表格组件,支持增删改查、虚拟树、列拖拽、懒加载、快捷菜单、数据校验、打印导出、表单渲染、自定义模板、渲染器、JSON 配置式...
15
+ 一个基于 [vue](https://www.npmjs.com/package/vue) 的 PC 端表单/表格组件,支持增删改查、虚拟树、列拖拽、懒加载、快捷菜单、数据校验、导入/导出/打印、表单渲染、自定义模板、渲染器、JSON 配置式...
16
16
 
17
17
  * 设计理念
18
18
  * 面向现代浏览器,高效的简洁 API 设计
@@ -22,8 +22,10 @@
22
22
  * 计划
23
23
  * [x] ~~v1.0 基于 vue2.6,支持所有主流的浏览器,实现表格的一切实用的功能~~
24
24
  * [x] ~~v2.0 基于 vue2.6,支持所有主流的浏览器,同时兼具功能与性能~~
25
- * [x] v3.0 基于 vue2.6,支持现代浏览器并保留兼容 IE11
26
- * [x] v4.0 基于 vue3.x,只支持现代浏览器,不支持 IE
25
+ * [x] v3.0 基于 vue2.6+,支持现代浏览器并保留兼容 IE11
26
+ * [ ] v3.9 基于 vue2.6+,重构拆分组件,分为 [Vxe table](https://github.com/x-extends/vxe-table) 和 [Vxe UI](https://github.com/x-extends/vxe-pc-ui),将支持表单设计器、列表你设计器、流程设计器
27
+ * [x] v4.0 基于 vue3.2+,只支持现代浏览器,不支持 IE
28
+ * [x] v4.7 基于 vue3.2+,重构拆分组件,分为 [Vxe table](https://github.com/x-extends/vxe-table) 和 [Vxe UI](https://github.com/x-extends/vxe-pc-ui),将支持表单设计器、列表你设计器、流程设计器
27
29
  * [ ] 下一阶段:sticky 渲染模式、将虚拟滚动提升到极致、虚拟滚动动态行高、数据图表可视化
28
30
 
29
31
  ## 浏览器支持
package/README.zh-TW.md CHANGED
@@ -12,7 +12,7 @@
12
12
  [![pull requests closed](https://img.shields.io/github/issues-pr-closed/x-extends/vxe-table.svg)](https://github.com/x-extends/vxe-table/pulls?q=is%3Apr+is%3Aclosed)
13
13
  [![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)
14
14
 
15
- 一個基於 [vue](https://www.npmjs.com/package/vue) 的PC端表格組件,支持增刪改查、虛擬樹、列拖拽、懶加載、快捷菜單、數據校驗、打印導出、表單渲染、自定義模板、渲染器、JSON 配置式…
15
+ 一個基於 [vue](https://www.npmjs.com/package/vue) 的PC端表格組件,支持增刪改查、虛擬樹、列拖拽、懶加載、快捷菜單、數據校驗、導入/匯出/列印、表單渲染、自定義模板、渲染器、JSON 配置式…
16
16
 
17
17
  * 設計理念
18
18
  * 面向現代瀏覽器,高效的簡潔 API 設計
@@ -22,8 +22,10 @@
22
22
  * 計劃
23
23
  * [x] ~~v1.0 基於 vue2.6,支持所有主流的瀏覽器,實現表格的一切實用的功能~~
24
24
  * [x] ~~v2.0 基於 vue2.6,支持所有主流的瀏覽器,同時兼具功能與效能~~
25
- * [x] v3.0 基於 vue2.6,支持現代瀏覽器並保留相容IE11
25
+ * [x] v3.0 基於 vue2.6+,支持現代瀏覽器並保留相容IE11
26
+ * [ ] v3.9 基於 vue2.6+,重構拆分組件,分爲 [Vxe table](https://github.com/x-extends/vxe-table) 和 [Vxe UI](https://github.com/x-extends/vxe-pc-ui),將支持表單設計器、列表你設計器、流程設計器
26
27
  * [x] v4.0 基于 vue3.x,只支持現代瀏覽器,不支持IE
28
+ * [x] v4.7 基於 vue3.x,重構拆分組件,分爲 [Vxe table](https://github.com/x-extends/vxe-table) 和 [Vxe UI](https://github.com/x-extends/vxe-pc-ui),將支持表單設計器、列表你設計器、流程設計器
27
29
 
28
30
  ## 瀏覽器支持
29
31
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, ref, computed, provide, resolveComponent, reactive, onUnmounted, watch, nextTick, onMounted } from 'vue';
1
+ import { defineComponent, h, ref, computed, provide, resolveComponent, reactive, onUnmounted, watch, nextTick, onMounted, createCommentVNode } from 'vue';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils';
4
4
  import { getOffsetHeight, getPaddingTopBottomSize, getDomNode } from '../../ui/src/dom';
@@ -349,12 +349,11 @@ export default defineComponent({
349
349
  /**
350
350
  * 渲染表单
351
351
  */
352
- const renderForms = () => {
352
+ const renderForm = () => {
353
353
  const { formConfig, proxyConfig } = props;
354
354
  const { formData } = reactData;
355
355
  const proxyOpts = computeProxyOpts.value;
356
356
  const formOpts = computeFormOpts.value;
357
- const restVNs = [];
358
357
  if ((formConfig && isEnableConf(formOpts)) || slots.form) {
359
358
  let slotVNs = [];
360
359
  if (slots.form) {
@@ -387,21 +386,20 @@ export default defineComponent({
387
386
  })), { onSubmit: submitFormEvent, onReset: resetFormEvent, onSubmitInvalid: submitInvalidEvent, onCollapse: collapseEvent }), formSlots));
388
387
  }
389
388
  }
390
- restVNs.push(h('div', {
389
+ return h('div', {
391
390
  ref: refFormWrapper,
392
391
  key: 'form',
393
392
  class: 'vxe-grid--form-wrapper'
394
- }, slotVNs));
393
+ }, slotVNs);
395
394
  }
396
- return restVNs;
395
+ return createCommentVNode();
397
396
  };
398
397
  /**
399
398
  * 渲染工具栏
400
399
  */
401
- const renderToolbars = () => {
400
+ const renderToolbar = () => {
402
401
  const { toolbarConfig } = props;
403
402
  const toolbarOpts = computeToolbarOpts.value;
404
- const restVNs = [];
405
403
  if ((toolbarConfig && isEnableConf(toolbarOpts)) || slots.toolbar) {
406
404
  let slotVNs = [];
407
405
  if (slots.toolbar) {
@@ -424,72 +422,49 @@ export default defineComponent({
424
422
  }
425
423
  slotVNs.push(h(VxeToolbarComponent, Object.assign({ ref: refToolbar }, toolbarOpts), toolbarSlots));
426
424
  }
427
- restVNs.push(h('div', {
425
+ return h('div', {
428
426
  ref: refToolbarWrapper,
429
427
  key: 'toolbar',
430
428
  class: 'vxe-grid--toolbar-wrapper'
431
- }, slotVNs));
429
+ }, slotVNs);
432
430
  }
433
- return restVNs;
431
+ return createCommentVNode();
434
432
  };
435
433
  /**
436
434
  * 渲染表格顶部区域
437
435
  */
438
- const renderTops = () => {
436
+ const renderTop = () => {
439
437
  if (slots.top) {
440
- return [
441
- h('div', {
442
- ref: refTopWrapper,
443
- key: 'top',
444
- class: 'vxe-grid--top-wrapper'
445
- }, slots.top({ $grid: $xeGrid }))
446
- ];
438
+ return h('div', {
439
+ ref: refTopWrapper,
440
+ key: 'top',
441
+ class: 'vxe-grid--top-wrapper'
442
+ }, slots.top({ $grid: $xeGrid }));
447
443
  }
448
- return [];
444
+ return createCommentVNode();
449
445
  };
450
- const defaultLayouts = ['Form', 'Toolbar', 'Top', 'Table', 'Bottom', 'Pager'];
451
- const renderLayout = () => {
452
- const { layouts } = props;
453
- const vns = [];
454
- const currLayouts = (layouts && layouts.length ? layouts : (getConfig().grid.layouts || defaultLayouts));
455
- currLayouts.forEach(name => {
456
- switch (name) {
457
- case 'Form':
458
- vns.push(renderForms());
459
- break;
460
- case 'Toolbar':
461
- vns.push(renderToolbars());
462
- break;
463
- case 'Top':
464
- vns.push(renderTops());
465
- break;
466
- case 'Table':
467
- vns.push(renderTables());
468
- break;
469
- case 'Bottom':
470
- vns.push(renderBottoms());
471
- break;
472
- case 'Pager':
473
- vns.push(renderPagers());
474
- break;
475
- default:
476
- if (process.env.NODE_ENV === 'development') {
477
- log.err('vxe.error.notProp', [`layouts -> ${name}`]);
478
- }
479
- break;
480
- }
481
- });
482
- return vns;
446
+ const renderTableLeft = () => {
447
+ const leftSlot = slots.left;
448
+ if (leftSlot) {
449
+ return h('div', {
450
+ class: 'vxe-grid--left-wrapper'
451
+ }, leftSlot({ $grid: $xeGrid }));
452
+ }
453
+ return createCommentVNode();
454
+ };
455
+ const renderTableRight = () => {
456
+ const rightSlot = slots.right;
457
+ if (rightSlot) {
458
+ return h('div', {
459
+ class: 'vxe-grid--right-wrapper'
460
+ }, rightSlot({ $grid: $xeGrid }));
461
+ }
462
+ return createCommentVNode();
483
463
  };
484
- const tableCompEvents = {};
485
- tableComponentEmits.forEach(name => {
486
- const type = XEUtils.camelCase(`on-${name}`);
487
- tableCompEvents[type] = (...args) => emit(name, ...args);
488
- });
489
464
  /**
490
465
  * 渲染表格
491
466
  */
492
- const renderTables = () => {
467
+ const renderTable = () => {
493
468
  const { proxyConfig } = props;
494
469
  const tableProps = computeTableProps.value;
495
470
  const proxyOpts = computeProxyOpts.value;
@@ -506,38 +481,37 @@ export default defineComponent({
506
481
  }
507
482
  const slotObj = {};
508
483
  if (emptySlot) {
509
- slotObj.empty = () => emptySlot({});
484
+ slotObj.empty = () => emptySlot({ $grid: $xeGrid });
510
485
  }
511
486
  if (loadingSlot) {
512
- slotObj.loading = () => loadingSlot({});
487
+ slotObj.loading = () => loadingSlot({ $grid: $xeGrid });
513
488
  }
514
- return [
515
- h(VxeTableComponent, Object.assign(Object.assign({ ref: refTable, key: 'table' }, tableProps), tableOns), slotObj)
516
- ];
489
+ return h('div', {
490
+ class: 'vxe-grid--table-wrapper'
491
+ }, [
492
+ h(VxeTableComponent, Object.assign(Object.assign({ ref: refTable }, tableProps), tableOns), slotObj)
493
+ ]);
517
494
  };
518
495
  /**
519
496
  * 渲染表格底部区域
520
497
  */
521
- const renderBottoms = () => {
498
+ const renderBottom = () => {
522
499
  if (slots.bottom) {
523
- return [
524
- h('div', {
525
- ref: refBottomWrapper,
526
- key: 'bottom',
527
- class: 'vxe-grid--bottom-wrapper'
528
- }, slots.bottom({ $grid: $xeGrid }))
529
- ];
500
+ return h('div', {
501
+ ref: refBottomWrapper,
502
+ key: 'bottom',
503
+ class: 'vxe-grid--bottom-wrapper'
504
+ }, slots.bottom({ $grid: $xeGrid }));
530
505
  }
531
- return [];
506
+ return createCommentVNode();
532
507
  };
533
508
  /**
534
509
  * 渲染分页
535
510
  */
536
- const renderPagers = () => {
511
+ const renderPager = () => {
537
512
  const { proxyConfig, pagerConfig } = props;
538
513
  const proxyOpts = computeProxyOpts.value;
539
514
  const pagerOpts = computePagerOpts.value;
540
- const restVNs = [];
541
515
  if ((pagerConfig && isEnableConf(pagerOpts)) || slots.pager) {
542
516
  let slotVNs = [];
543
517
  if (slots.pager) {
@@ -560,14 +534,60 @@ export default defineComponent({
560
534
  }
561
535
  slotVNs.push(h(resolveComponent('vxe-pager'), Object.assign(Object.assign(Object.assign({ ref: refPager }, pagerOpts), (proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {})), { onPageChange: pageChangeEvent }), pagerSlots));
562
536
  }
563
- restVNs.push(h('div', {
537
+ return h('div', {
564
538
  ref: refPagerWrapper,
565
539
  key: 'pager',
566
540
  class: 'vxe-grid--pager-wrapper'
567
- }, slotVNs));
541
+ }, slotVNs);
568
542
  }
569
- return restVNs;
543
+ return createCommentVNode();
544
+ };
545
+ const defaultLayouts = ['Form', 'Toolbar', 'Top', 'Table', 'Bottom', 'Pager'];
546
+ const renderLayout = () => {
547
+ const { layouts } = props;
548
+ const vns = [];
549
+ const currLayouts = (layouts && layouts.length ? layouts : (getConfig().grid.layouts || defaultLayouts));
550
+ currLayouts.forEach(name => {
551
+ switch (name) {
552
+ case 'Form':
553
+ vns.push(renderForm());
554
+ break;
555
+ case 'Toolbar':
556
+ vns.push(renderToolbar());
557
+ break;
558
+ case 'Top':
559
+ vns.push(renderTop());
560
+ break;
561
+ case 'Table':
562
+ vns.push(h('div', {
563
+ key: 'table',
564
+ class: 'vxe-grid--table-container'
565
+ }, [
566
+ renderTableLeft(),
567
+ renderTable(),
568
+ renderTableRight()
569
+ ]));
570
+ break;
571
+ case 'Bottom':
572
+ vns.push(renderBottom());
573
+ break;
574
+ case 'Pager':
575
+ vns.push(renderPager());
576
+ break;
577
+ default:
578
+ if (process.env.NODE_ENV === 'development') {
579
+ log.err('vxe.error.notProp', [`layouts -> ${name}`]);
580
+ }
581
+ break;
582
+ }
583
+ });
584
+ return vns;
570
585
  };
586
+ const tableCompEvents = {};
587
+ tableComponentEmits.forEach(name => {
588
+ const type = XEUtils.camelCase(`on-${name}`);
589
+ tableCompEvents[type] = (...args) => emit(name, ...args);
590
+ });
571
591
  const initProxy = () => {
572
592
  const { proxyConfig, formConfig } = props;
573
593
  const { proxyInited } = reactData;
package/es/grid/style.css CHANGED
@@ -12,7 +12,7 @@
12
12
  -webkit-user-select: none;
13
13
  -moz-user-select: none;
14
14
  user-select: none;
15
- background-color: var(--vxe-loading-background-color);
15
+ background-color: var(--vxe-ui-loading-background-color);
16
16
  }
17
17
  .vxe-grid.is--loading > .vxe-table .vxe-loading {
18
18
  background-color: transparent;
@@ -24,13 +24,26 @@
24
24
  width: 100%;
25
25
  height: 100%;
26
26
  padding: 0.5em 1em;
27
- background-color: var(--vxe-ui-grid-maximize-background-color);
27
+ background-color: var(--vxe-ui-layout-background-color);
28
28
  }
29
29
  .vxe-grid .vxe-grid--form-wrapper,
30
30
  .vxe-grid .vxe-grid--top-wrapper,
31
31
  .vxe-grid .vxe-grid--bottom-wrapper {
32
32
  position: relative;
33
33
  }
34
+ .vxe-grid .vxe-grid--table-container {
35
+ display: flex;
36
+ flex-direction: row;
37
+ }
38
+ .vxe-grid .vxe-grid--left-wrapper,
39
+ .vxe-grid .vxe-grid--right-wrapper {
40
+ flex-shrink: 0;
41
+ overflow: auto;
42
+ }
43
+ .vxe-grid .vxe-grid--table-wrapper {
44
+ flex-grow: 1;
45
+ overflow: hidden;
46
+ }
34
47
 
35
48
  .vxe-grid {
36
49
  font-size: var(--vxe-ui-font-size-default);
@@ -1 +1 @@
1
- .vxe-grid{position:relative}.vxe-grid.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-grid.is--loading>.vxe-table .vxe-loading{background-color:transparent}.vxe-grid.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-grid-maximize-background-color)}.vxe-grid .vxe-grid--bottom-wrapper,.vxe-grid .vxe-grid--form-wrapper,.vxe-grid .vxe-grid--top-wrapper{position:relative}.vxe-grid{font-size:var(--vxe-ui-font-size-default)}.vxe-grid.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-grid.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-grid.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-grid{position:relative}.vxe-grid.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-grid.is--loading>.vxe-table .vxe-loading{background-color:transparent}.vxe-grid.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-grid .vxe-grid--bottom-wrapper,.vxe-grid .vxe-grid--form-wrapper,.vxe-grid .vxe-grid--top-wrapper{position:relative}.vxe-grid .vxe-grid--table-container{display:flex;flex-direction:row}.vxe-grid .vxe-grid--left-wrapper,.vxe-grid .vxe-grid--right-wrapper{flex-shrink:0;overflow:auto}.vxe-grid .vxe-grid--table-wrapper{flex-grow:1;overflow:hidden}.vxe-grid{font-size:var(--vxe-ui-font-size-default)}.vxe-grid.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-grid.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-grid.size--mini{font-size:var(--vxe-ui-font-size-mini)}