vxe-pc-ui 3.14.17 → 3.14.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 (168) hide show
  1. package/es/language/ar-EG.js +4 -2
  2. package/es/language/de-DE.js +4 -2
  3. package/es/language/en-US.js +4 -2
  4. package/es/language/es-ES.js +4 -2
  5. package/es/language/fr-FR.js +4 -2
  6. package/es/language/hu-HU.js +4 -2
  7. package/es/language/hy-AM.js +4 -2
  8. package/es/language/id-ID.js +4 -2
  9. package/es/language/it-IT.js +4 -2
  10. package/es/language/ja-JP.js +4 -2
  11. package/es/language/ko-KR.js +4 -2
  12. package/es/language/ms-MY.js +4 -2
  13. package/es/language/nb-NO.js +4 -2
  14. package/es/language/pt-BR.js +4 -2
  15. package/es/language/ru-RU.js +4 -2
  16. package/es/language/th-TH.js +4 -2
  17. package/es/language/ug-CN.js +4 -2
  18. package/es/language/uk-UA.js +4 -2
  19. package/es/language/uz-UZ.js +4 -2
  20. package/es/language/vi-VN.js +4 -2
  21. package/es/language/zh-CHT.js +4 -2
  22. package/es/language/zh-CN.js +4 -2
  23. package/es/select/src/select.js +192 -48
  24. package/es/select/style.css +121 -10
  25. package/es/select/style.min.css +1 -1
  26. package/es/style.css +1 -1
  27. package/es/style.min.css +1 -1
  28. package/es/tree-select/src/tree-select.js +63 -20
  29. package/es/tree-select/style.css +8 -0
  30. package/es/tree-select/style.min.css +1 -1
  31. package/es/ui/index.js +10 -2
  32. package/es/ui/src/log.js +1 -1
  33. package/es/vxe-select/style.css +121 -10
  34. package/es/vxe-select/style.min.css +1 -1
  35. package/es/vxe-tree-select/style.css +8 -0
  36. package/es/vxe-tree-select/style.min.css +1 -1
  37. package/lib/index.umd.js +278 -69
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/language/ar-EG.js +4 -2
  40. package/lib/language/ar-EG.min.js +1 -1
  41. package/lib/language/ar-EG.umd.js +4 -2
  42. package/lib/language/de-DE.js +4 -2
  43. package/lib/language/de-DE.min.js +1 -1
  44. package/lib/language/de-DE.umd.js +4 -2
  45. package/lib/language/en-US.js +4 -2
  46. package/lib/language/en-US.min.js +1 -1
  47. package/lib/language/en-US.umd.js +4 -2
  48. package/lib/language/es-ES.js +4 -2
  49. package/lib/language/es-ES.min.js +1 -1
  50. package/lib/language/es-ES.umd.js +4 -2
  51. package/lib/language/fr-FR.js +4 -2
  52. package/lib/language/fr-FR.min.js +1 -1
  53. package/lib/language/fr-FR.umd.js +4 -2
  54. package/lib/language/hu-HU.js +4 -2
  55. package/lib/language/hu-HU.min.js +1 -1
  56. package/lib/language/hu-HU.umd.js +4 -2
  57. package/lib/language/hy-AM.js +4 -2
  58. package/lib/language/hy-AM.min.js +1 -1
  59. package/lib/language/hy-AM.umd.js +4 -2
  60. package/lib/language/id-ID.js +4 -2
  61. package/lib/language/id-ID.min.js +1 -1
  62. package/lib/language/id-ID.umd.js +4 -2
  63. package/lib/language/it-IT.js +4 -2
  64. package/lib/language/it-IT.min.js +1 -1
  65. package/lib/language/it-IT.umd.js +4 -2
  66. package/lib/language/ja-JP.js +4 -2
  67. package/lib/language/ja-JP.min.js +1 -1
  68. package/lib/language/ja-JP.umd.js +4 -2
  69. package/lib/language/ko-KR.js +4 -2
  70. package/lib/language/ko-KR.min.js +1 -1
  71. package/lib/language/ko-KR.umd.js +4 -2
  72. package/lib/language/ms-MY.js +4 -2
  73. package/lib/language/ms-MY.min.js +1 -1
  74. package/lib/language/ms-MY.umd.js +4 -2
  75. package/lib/language/nb-NO.js +4 -2
  76. package/lib/language/nb-NO.min.js +1 -1
  77. package/lib/language/nb-NO.umd.js +4 -2
  78. package/lib/language/pt-BR.js +4 -2
  79. package/lib/language/pt-BR.min.js +1 -1
  80. package/lib/language/pt-BR.umd.js +4 -2
  81. package/lib/language/ru-RU.js +4 -2
  82. package/lib/language/ru-RU.min.js +1 -1
  83. package/lib/language/ru-RU.umd.js +4 -2
  84. package/lib/language/th-TH.js +4 -2
  85. package/lib/language/th-TH.min.js +1 -1
  86. package/lib/language/th-TH.umd.js +4 -2
  87. package/lib/language/ug-CN.js +4 -2
  88. package/lib/language/ug-CN.min.js +1 -1
  89. package/lib/language/ug-CN.umd.js +4 -2
  90. package/lib/language/uk-UA.js +4 -2
  91. package/lib/language/uk-UA.min.js +1 -1
  92. package/lib/language/uk-UA.umd.js +4 -2
  93. package/lib/language/uz-UZ.js +4 -2
  94. package/lib/language/uz-UZ.min.js +1 -1
  95. package/lib/language/uz-UZ.umd.js +4 -2
  96. package/lib/language/vi-VN.js +4 -2
  97. package/lib/language/vi-VN.min.js +1 -1
  98. package/lib/language/vi-VN.umd.js +4 -2
  99. package/lib/language/zh-CHT.js +4 -2
  100. package/lib/language/zh-CHT.min.js +1 -1
  101. package/lib/language/zh-CHT.umd.js +4 -2
  102. package/lib/language/zh-CN.js +4 -2
  103. package/lib/language/zh-CN.min.js +1 -1
  104. package/lib/language/zh-CN.umd.js +4 -2
  105. package/lib/select/src/select.js +192 -44
  106. package/lib/select/src/select.min.js +1 -1
  107. package/lib/select/style/style.css +121 -10
  108. package/lib/select/style/style.min.css +1 -1
  109. package/lib/style.css +1 -1
  110. package/lib/style.min.css +1 -1
  111. package/lib/tree-select/src/tree-select.js +71 -20
  112. package/lib/tree-select/src/tree-select.min.js +1 -1
  113. package/lib/tree-select/style/style.css +8 -0
  114. package/lib/tree-select/style/style.min.css +1 -1
  115. package/lib/ui/index.js +10 -2
  116. package/lib/ui/index.min.js +1 -1
  117. package/lib/ui/src/log.js +1 -1
  118. package/lib/ui/src/log.min.js +1 -1
  119. package/lib/vxe-select/style/style.css +121 -10
  120. package/lib/vxe-select/style/style.min.css +1 -1
  121. package/lib/vxe-tree-select/style/style.css +8 -0
  122. package/lib/vxe-tree-select/style/style.min.css +1 -1
  123. package/package.json +1 -1
  124. package/packages/language/ar-EG.ts +4 -2
  125. package/packages/language/de-DE.ts +4 -2
  126. package/packages/language/en-US.ts +4 -2
  127. package/packages/language/es-ES.ts +4 -2
  128. package/packages/language/fr-FR.ts +4 -2
  129. package/packages/language/hu-HU.ts +4 -2
  130. package/packages/language/hy-AM.ts +4 -2
  131. package/packages/language/id-ID.ts +4 -2
  132. package/packages/language/it-IT.ts +4 -2
  133. package/packages/language/ja-JP.ts +4 -2
  134. package/packages/language/ko-KR.ts +4 -2
  135. package/packages/language/ms-MY.ts +4 -2
  136. package/packages/language/nb-NO.ts +4 -2
  137. package/packages/language/pt-BR.ts +4 -2
  138. package/packages/language/ru-RU.ts +4 -2
  139. package/packages/language/th-TH.ts +4 -2
  140. package/packages/language/ug-CN.ts +4 -2
  141. package/packages/language/uk-UA.ts +4 -2
  142. package/packages/language/uz-UZ.ts +4 -2
  143. package/packages/language/vi-VN.ts +4 -2
  144. package/packages/language/zh-CHT.ts +4 -2
  145. package/packages/language/zh-CN.ts +4 -2
  146. package/packages/select/src/select.ts +210 -49
  147. package/packages/tree-select/src/tree-select.ts +65 -21
  148. package/packages/ui/index.ts +9 -1
  149. package/styles/components/select.scss +40 -10
  150. package/styles/components/tree-select.scss +7 -0
  151. package/styles/theme/dark.scss +3 -0
  152. package/styles/theme/light.scss +3 -0
  153. package/styles/variable.scss +3 -0
  154. package/types/components/select.d.ts +20 -0
  155. package/types/components/table.d.ts +4 -0
  156. package/types/components/tree-select.d.ts +22 -1
  157. /package/es/icon/{iconfont.1779331536287.ttf → iconfont.1779445582657.ttf} +0 -0
  158. /package/es/icon/{iconfont.1779331536287.woff → iconfont.1779445582657.woff} +0 -0
  159. /package/es/icon/{iconfont.1779331536287.woff2 → iconfont.1779445582657.woff2} +0 -0
  160. /package/es/{iconfont.1779331536287.ttf → iconfont.1779445582657.ttf} +0 -0
  161. /package/es/{iconfont.1779331536287.woff → iconfont.1779445582657.woff} +0 -0
  162. /package/es/{iconfont.1779331536287.woff2 → iconfont.1779445582657.woff2} +0 -0
  163. /package/lib/icon/style/{iconfont.1779331536287.ttf → iconfont.1779445582657.ttf} +0 -0
  164. /package/lib/icon/style/{iconfont.1779331536287.woff → iconfont.1779445582657.woff} +0 -0
  165. /package/lib/icon/style/{iconfont.1779331536287.woff2 → iconfont.1779445582657.woff2} +0 -0
  166. /package/lib/{iconfont.1779331536287.ttf → iconfont.1779445582657.ttf} +0 -0
  167. /package/lib/{iconfont.1779331536287.woff → iconfont.1779445582657.woff} +0 -0
  168. /package/lib/{iconfont.1779331536287.woff2 → iconfont.1779445582657.woff2} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
- import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui';
3
+ import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui';
4
4
  import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom';
5
5
  import { getLastZIndex, nextZIndex, getFuncText, eqEmptyValue } from '../../ui/src/utils';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
@@ -86,6 +86,16 @@ export default {
86
86
  type: [String, Number],
87
87
  default: null
88
88
  },
89
+ showRadio: {
90
+ type: Boolean,
91
+ default: () => getConfig().select.showRadio
92
+ },
93
+ radioConfig: Object,
94
+ showCheckbox: {
95
+ type: Boolean,
96
+ default: () => getConfig().select.showCheckedButoon
97
+ },
98
+ checkboxConfig: Object,
89
99
  /**
90
100
  * 已废弃,请使用 popupConfig.zIndex
91
101
  * @deprecated
@@ -105,6 +115,18 @@ export default {
105
115
  remote: Boolean,
106
116
  remoteConfig: Object,
107
117
  emptyText: String,
118
+ checkedClosable: {
119
+ type: Boolean,
120
+ default: () => getConfig().select.checkedClosable
121
+ },
122
+ clearClosable: {
123
+ type: Boolean,
124
+ default: () => getConfig().select.clearClosable
125
+ },
126
+ showCloseButton: {
127
+ type: Boolean,
128
+ default: () => getConfig().select.showCloseButton
129
+ },
108
130
  showTotalButoon: {
109
131
  type: Boolean,
110
132
  default: () => getConfig().select.showTotalButoon
@@ -322,6 +344,16 @@ export default {
322
344
  const props = $xeSelect;
323
345
  return Object.assign({}, getConfig().select.optionConfig, props.optionConfig);
324
346
  },
347
+ computeRadioOpts() {
348
+ const $xeSelect = this;
349
+ const props = $xeSelect;
350
+ return Object.assign({}, getConfig().select.radioConfig, props.radioConfig);
351
+ },
352
+ computeCheckboxOpts() {
353
+ const $xeSelect = this;
354
+ const props = $xeSelect;
355
+ return Object.assign({}, getConfig().select.checkboxConfig, props.checkboxConfig);
356
+ },
325
357
  computeIsGroup() {
326
358
  const $xeSelect = this;
327
359
  const reactData = $xeSelect.reactData;
@@ -788,7 +820,7 @@ export default {
788
820
  $xeSelect.dispatchEvent('visible-change', { visible: true }, null);
789
821
  }
790
822
  },
791
- hideOptionPanel() {
823
+ hideOptionPanel(evnt) {
792
824
  const $xeSelect = this;
793
825
  const props = $xeSelect;
794
826
  const reactData = $xeSelect.reactData;
@@ -814,7 +846,7 @@ export default {
814
846
  internalData.hpTimeout = setTimeout(() => {
815
847
  reactData.isAniVisible = false;
816
848
  }, 350);
817
- $xeSelect.dispatchEvent('visible-change', { visible: false }, null);
849
+ $xeSelect.dispatchEvent('visible-change', { visible: false }, evnt || null);
818
850
  },
819
851
  changeEvent(evnt, selectValue, option) {
820
852
  const $xeSelect = this;
@@ -841,14 +873,14 @@ export default {
841
873
  const $xeSelect = this;
842
874
  const { $event } = params;
843
875
  $xeSelect.clearValueEvent($event, null);
844
- $xeSelect.hideOptionPanel();
876
+ $xeSelect.hideOptionPanel($event);
845
877
  },
846
878
  allCheckedPanelEvent(params) {
847
879
  const $xeSelect = this;
848
880
  const props = $xeSelect;
849
881
  const reactData = $xeSelect.reactData;
850
882
  const { $event } = params;
851
- const { multiple } = props;
883
+ const { multiple, max, checkedClosable } = props;
852
884
  const { optList } = reactData;
853
885
  const valueField = $xeSelect.computeValueField;
854
886
  if (multiple) {
@@ -859,6 +891,12 @@ export default {
859
891
  const selectValue = option[valueField];
860
892
  // 检测是否超过最大可选数量
861
893
  if ($xeSelect.checkMaxLimit(currVlas)) {
894
+ if (VxeUI) {
895
+ VxeUI.modal.message({
896
+ content: getI18n('vxe.select.overSizeErr', [max]),
897
+ status: 'warning'
898
+ });
899
+ }
862
900
  break;
863
901
  }
864
902
  if (!currVlas.some(val => val === selectValue)) {
@@ -866,14 +904,26 @@ export default {
866
904
  }
867
905
  }
868
906
  $xeSelect.changeEvent($event, currVlas, optList[0]);
907
+ if (checkedClosable) {
908
+ $xeSelect.hideOptionPanel($event);
909
+ }
869
910
  $xeSelect.dispatchEvent('all-change', { value: currVlas }, $event);
870
911
  }
871
912
  },
872
913
  clearCheckedPanelEvent(params) {
873
914
  const $xeSelect = this;
915
+ const props = $xeSelect;
916
+ const { clearClosable } = props;
874
917
  const { $event } = params;
875
918
  $xeSelect.clearValueEvent($event, null);
876
- $xeSelect.hideOptionPanel();
919
+ if (clearClosable) {
920
+ $xeSelect.hideOptionPanel($event);
921
+ }
922
+ },
923
+ closePanelEvent(params) {
924
+ const $xeSelect = this;
925
+ const { $event } = params;
926
+ $xeSelect.hideOptionPanel($event);
877
927
  },
878
928
  changeOptionEvent(evnt, option) {
879
929
  const $xeSelect = this;
@@ -912,7 +962,7 @@ export default {
912
962
  }
913
963
  else {
914
964
  $xeSelect.changeEvent(evnt, selectValue, option);
915
- $xeSelect.hideOptionPanel();
965
+ $xeSelect.hideOptionPanel(evnt);
916
966
  }
917
967
  reactData.reactFlag++;
918
968
  },
@@ -928,7 +978,7 @@ export default {
928
978
  $xeSelect.updatePlacement();
929
979
  }
930
980
  else {
931
- $xeSelect.hideOptionPanel();
981
+ $xeSelect.hideOptionPanel(evnt);
932
982
  }
933
983
  }
934
984
  }
@@ -946,7 +996,7 @@ export default {
946
996
  reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag;
947
997
  if (visiblePanel && !reactData.isActivated) {
948
998
  if (trigger !== 'manual') {
949
- $xeSelect.hideOptionPanel();
999
+ $xeSelect.hideOptionPanel(evnt);
950
1000
  }
951
1001
  }
952
1002
  }
@@ -1046,7 +1096,7 @@ export default {
1046
1096
  if (visiblePanel) {
1047
1097
  if (isEsc || isTab) {
1048
1098
  if (trigger !== 'manual') {
1049
- $xeSelect.hideOptionPanel();
1099
+ $xeSelect.hideOptionPanel(evnt);
1050
1100
  }
1051
1101
  }
1052
1102
  else if (isEnter) {
@@ -1080,7 +1130,7 @@ export default {
1080
1130
  }
1081
1131
  }
1082
1132
  },
1083
- handleGlobalBlurEvent() {
1133
+ handleGlobalBlurEvent(evnt) {
1084
1134
  const $xeSelect = this;
1085
1135
  const reactData = $xeSelect.reactData;
1086
1136
  const { visiblePanel, isActivated } = reactData;
@@ -1088,7 +1138,7 @@ export default {
1088
1138
  const { trigger } = popupOpts;
1089
1139
  if (visiblePanel) {
1090
1140
  if (trigger !== 'manual') {
1091
- $xeSelect.hideOptionPanel();
1141
+ $xeSelect.hideOptionPanel(evnt);
1092
1142
  }
1093
1143
  }
1094
1144
  if (isActivated) {
@@ -1213,7 +1263,7 @@ export default {
1213
1263
  }
1214
1264
  else {
1215
1265
  if (reactData.visiblePanel) {
1216
- $xeSelect.hideOptionPanel();
1266
+ $xeSelect.hideOptionPanel($event);
1217
1267
  }
1218
1268
  else {
1219
1269
  $xeSelect.showOptionPanel();
@@ -1531,13 +1581,69 @@ export default {
1531
1581
  //
1532
1582
  // Render
1533
1583
  //
1584
+ renderRadio(h, option, isOptGroup, isChecked, isDisabled) {
1585
+ const $xeSelect = this;
1586
+ const radioOpts = $xeSelect.computeRadioOpts;
1587
+ const { showIcon, trigger } = radioOpts;
1588
+ if (isOptGroup || showIcon === false) {
1589
+ return renderEmptyElement($xeSelect);
1590
+ }
1591
+ const ons = {};
1592
+ if (!trigger || trigger === 'default') {
1593
+ ons.click = (evnt) => {
1594
+ if (!isDisabled && !isOptGroup) {
1595
+ $xeSelect.changeOptionEvent(evnt, option);
1596
+ }
1597
+ };
1598
+ }
1599
+ return h('div', {
1600
+ key: 2,
1601
+ class: ['vxe-select-option--radio', {
1602
+ 'is--checked': isChecked,
1603
+ 'is--disabled': isDisabled
1604
+ }],
1605
+ on: ons
1606
+ }, [
1607
+ h('span', {
1608
+ class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : getIcon().RADIO_UNCHECKED]
1609
+ })
1610
+ ]);
1611
+ },
1612
+ renderCheckbox(h, option, isOptGroup, isChecked, isDisabled) {
1613
+ const $xeSelect = this;
1614
+ const checkboxOpts = $xeSelect.computeCheckboxOpts;
1615
+ const { showIcon, trigger } = checkboxOpts;
1616
+ if (isOptGroup || showIcon === false) {
1617
+ return renderEmptyElement($xeSelect);
1618
+ }
1619
+ const ons = {};
1620
+ if (!trigger || trigger === 'default') {
1621
+ ons.click = (evnt) => {
1622
+ if (!isDisabled && !isOptGroup) {
1623
+ $xeSelect.changeOptionEvent(evnt, option);
1624
+ }
1625
+ };
1626
+ }
1627
+ return h('div', {
1628
+ key: 3,
1629
+ class: ['vxe-select-option--checkbox', {
1630
+ 'is--checked': isChecked,
1631
+ 'is--disabled': isDisabled
1632
+ }],
1633
+ on: ons
1634
+ }, [
1635
+ h('span', {
1636
+ class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : getIcon().CHECKBOX_UNCHECKED]
1637
+ })
1638
+ ]);
1639
+ },
1534
1640
  renderOption(h, list) {
1535
1641
  const $xeSelect = this;
1536
1642
  const props = $xeSelect;
1537
1643
  const slots = $xeSelect.$scopedSlots;
1538
1644
  const reactData = $xeSelect.reactData;
1539
1645
  const internalData = $xeSelect.internalData;
1540
- const { allowCreate, optionKey } = props;
1646
+ const { allowCreate, optionKey, multiple, showRadio, showCheckbox } = props;
1541
1647
  const { currentOption } = reactData;
1542
1648
  const { optAddMaps } = internalData;
1543
1649
  const optionOpts = $xeSelect.computeOptionOpts;
@@ -1545,8 +1651,12 @@ export default {
1545
1651
  const valueField = $xeSelect.computeValueField;
1546
1652
  const groupLabelField = $xeSelect.computeGroupLabelField;
1547
1653
  const selectVals = $xeSelect.computeSelectVals;
1654
+ const radioOpts = $xeSelect.computeRadioOpts;
1655
+ const checkboxOpts = $xeSelect.computeCheckboxOpts;
1548
1656
  const { useKey, height } = optionOpts;
1549
1657
  const optionSlot = slots.option;
1658
+ const isCheckboxMode = showCheckbox && multiple;
1659
+ const isRadioMode = showRadio && !multiple;
1550
1660
  return list.map((option, cIndex) => {
1551
1661
  const { slots, className } = option;
1552
1662
  const optid = $xeSelect.getOptId(option);
@@ -1557,18 +1667,47 @@ export default {
1557
1667
  const isVisible = isAdd || (!isOptGroup || isOptionVisible(option));
1558
1668
  const isDisabled = !isAdd && $xeSelect.checkOptionDisabled(isSelected, option);
1559
1669
  const defaultSlot = slots ? slots.default : null;
1670
+ const optSlot = defaultSlot || optionSlot;
1560
1671
  const optParams = { option, group: isOptGroup ? option : null, $select: $xeSelect };
1561
1672
  let optLabel = '';
1562
- let optVNs = [];
1563
- if (optionSlot) {
1564
- optVNs = $xeSelect.callSlot(optionSlot, optParams, h);
1673
+ const optVNs = [];
1674
+ if (isCheckboxMode) {
1675
+ optVNs.push($xeSelect.renderCheckbox(h, option, isOptGroup, isSelected, isDisabled));
1565
1676
  }
1566
- else if (defaultSlot) {
1567
- optVNs = $xeSelect.callSlot(defaultSlot, optParams, h);
1677
+ else if (isRadioMode) {
1678
+ optVNs.push($xeSelect.renderRadio(h, option, isOptGroup, isSelected, isDisabled));
1679
+ }
1680
+ let otlbVNs = [];
1681
+ if (optSlot) {
1682
+ otlbVNs = $xeSelect.callSlot(optSlot, optParams, h);
1568
1683
  }
1569
1684
  else {
1570
1685
  optLabel = getFuncText(option[(isOptGroup ? groupLabelField : labelField)] || optionValue);
1571
- optVNs = optLabel;
1686
+ otlbVNs = [optLabel];
1687
+ }
1688
+ optVNs.push(h('div', {
1689
+ key: 1,
1690
+ class: 'vxe-select-option--label'
1691
+ }, otlbVNs));
1692
+ const ons = {
1693
+ mousedown: (evnt) => {
1694
+ const isLeftBtn = evnt.button === 0;
1695
+ if (isLeftBtn) {
1696
+ evnt.stopPropagation();
1697
+ }
1698
+ },
1699
+ mouseenter: () => {
1700
+ if (!isDisabled && !isOptGroup && !$xeSelect.isVMScrollProcess()) {
1701
+ $xeSelect.setCurrentOption(option);
1702
+ }
1703
+ }
1704
+ };
1705
+ if (isCheckboxMode ? checkboxOpts.trigger === 'option' : (isRadioMode ? radioOpts.trigger === 'option' : true)) {
1706
+ ons.click = (evnt) => {
1707
+ if (!isDisabled && !isOptGroup) {
1708
+ $xeSelect.changeOptionEvent(evnt, option);
1709
+ }
1710
+ };
1572
1711
  }
1573
1712
  return isVisible
1574
1713
  ? h('div', {
@@ -1589,29 +1728,12 @@ export default {
1589
1728
  height: toCssUnit(height)
1590
1729
  }
1591
1730
  : undefined,
1592
- on: {
1593
- mousedown: (evnt) => {
1594
- const isLeftBtn = evnt.button === 0;
1595
- if (isLeftBtn) {
1596
- evnt.stopPropagation();
1597
- }
1598
- },
1599
- click: (evnt) => {
1600
- if (!isDisabled && !isOptGroup) {
1601
- $xeSelect.changeOptionEvent(evnt, option);
1602
- }
1603
- },
1604
- mouseenter: () => {
1605
- if (!isDisabled && !isOptGroup && !$xeSelect.isVMScrollProcess()) {
1606
- $xeSelect.setCurrentOption(option);
1607
- }
1608
- }
1609
- }
1731
+ on: ons
1610
1732
  }, allowCreate
1611
1733
  ? [
1612
1734
  h('span', {
1613
1735
  key: 1,
1614
- class: 'vxe-select-option--label'
1736
+ class: 'vxe-select-option--add-label'
1615
1737
  }, optVNs),
1616
1738
  isAdd
1617
1739
  ? h('span', {
@@ -1661,7 +1783,7 @@ export default {
1661
1783
  const props = $xeSelect;
1662
1784
  const slots = $xeSelect.$scopedSlots;
1663
1785
  const reactData = $xeSelect.reactData;
1664
- const { className, multiple, loading, filterable, showTotalButoon, showCheckedButoon, showClearButton } = props;
1786
+ const { className, multiple, loading, filterable, showTotalButoon, showCheckedButoon, showClearButton, showCloseButton } = props;
1665
1787
  const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight } = reactData;
1666
1788
  const vSize = $xeSelect.computeSize;
1667
1789
  const isDisabled = $xeSelect.computeIsDisabled;
@@ -1780,7 +1902,7 @@ export default {
1780
1902
  })
1781
1903
  ])
1782
1904
  : renderEmptyElement($xeSelect),
1783
- showTotalButoon || (showCheckedButoon && multiple) || showClearButton || headerSlot
1905
+ (showCheckedButoon && multiple) || showClearButton || headerSlot
1784
1906
  ? h('div', {
1785
1907
  class: 'vxe-select--panel-header'
1786
1908
  }, headerSlot
@@ -1789,11 +1911,6 @@ export default {
1789
1911
  h('div', {
1790
1912
  class: 'vxe-tree-select--header-button'
1791
1913
  }, [
1792
- showTotalButoon
1793
- ? h('div', {
1794
- class: 'vxe-tree-select--header-total'
1795
- }, getI18n('vxe.select.total', [selectVals.length, optList.length]))
1796
- : renderEmptyElement($xeSelect),
1797
1914
  h('div', {
1798
1915
  class: 'vxe-tree-select--header-btns'
1799
1916
  }, [
@@ -1848,10 +1965,37 @@ export default {
1848
1965
  }, $xeSelect.renderOpts(h))
1849
1966
  ])
1850
1967
  ]),
1851
- footerSlot
1968
+ footerSlot || showTotalButoon || (showCloseButton && multiple)
1852
1969
  ? h('div', {
1853
1970
  class: 'vxe-select--panel-footer'
1854
- }, $xeSelect.callSlot(footerSlot, {}, h))
1971
+ }, footerSlot
1972
+ ? $xeSelect.callSlot(footerSlot, {}, h)
1973
+ : [
1974
+ h('div', {
1975
+ class: 'vxe-select--footer-button'
1976
+ }, [
1977
+ showTotalButoon
1978
+ ? h('div', {
1979
+ class: 'vxe-select--total-btns'
1980
+ }, getI18n('vxe.select.total', [selectVals.length, optList.length]))
1981
+ : renderEmptyElement($xeSelect),
1982
+ showCloseButton && multiple
1983
+ ? h('div', {
1984
+ class: 'vxe-select--oper-btns'
1985
+ }, [
1986
+ h(VxeButtonComponent, {
1987
+ props: {
1988
+ content: getI18n('vxe.select.close'),
1989
+ mode: 'text'
1990
+ },
1991
+ on: {
1992
+ click: $xeSelect.closePanelEvent
1993
+ }
1994
+ })
1995
+ ])
1996
+ : renderEmptyElement($xeSelect)
1997
+ ])
1998
+ ])
1855
1999
  : renderEmptyElement($xeSelect)
1856
2000
  ])
1857
2001
  ]
@@ -112,22 +112,30 @@
112
112
  flex-direction: row;
113
113
  }
114
114
 
115
- .vxe-select--header-total {
115
+ .vxe-select--header-button,
116
+ .vxe-select--footer-button {
116
117
  display: flex;
117
118
  flex-direction: row;
118
- align-items: center;
119
- justify-content: center;
119
+ white-space: nowrap;
120
+ }
121
+
122
+ .vxe-select--total-btns {
123
+ padding-left: var(--vxe-ui-current-padding);
120
124
  flex-shrink: 0;
121
- padding-left: 0.8em;
122
125
  }
123
126
 
124
- .vxe-select--header-btns {
127
+ .vxe-select--oper-btns {
125
128
  display: flex;
126
129
  flex-direction: row;
127
130
  flex-grow: 1;
128
131
  justify-content: right;
129
132
  }
130
133
 
134
+ .vxe-select--footer-button {
135
+ display: flex;
136
+ flex-direction: row;
137
+ }
138
+
131
139
  .vxe-select--panel-header {
132
140
  border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
133
141
  }
@@ -164,11 +172,9 @@
164
172
 
165
173
  .vxe-select-option {
166
174
  position: relative;
175
+ flex-direction: row;
176
+ display: flex;
167
177
  padding: 0 0.6em;
168
- white-space: nowrap;
169
- overflow: hidden;
170
- text-overflow: ellipsis;
171
- white-space: nowrap;
172
178
  -webkit-user-select: none;
173
179
  -moz-user-select: none;
174
180
  -ms-user-select: none;
@@ -188,7 +194,7 @@
188
194
  color: var(--vxe-ui-font-primary-color);
189
195
  }
190
196
  .vxe-select-option:not(.is--disabled).is--hover {
191
- background-color: var(--vxe-ui-base-hover-background-color);
197
+ background-color: var(--vxe-ui-select-option-hover-background-color);
192
198
  }
193
199
  .vxe-select-option.is--disabled {
194
200
  color: var(--vxe-ui-font-disabled-color);
@@ -201,6 +207,13 @@
201
207
  cursor: default;
202
208
  }
203
209
 
210
+ .vxe-select-option--label {
211
+ flex-grow: 1;
212
+ overflow: hidden;
213
+ text-overflow: ellipsis;
214
+ white-space: nowrap;
215
+ }
216
+
204
217
  .vxe-select-option--add-icon {
205
218
  display: none;
206
219
  position: absolute;
@@ -208,6 +221,94 @@
208
221
  right: 0.6em;
209
222
  }
210
223
 
224
+ .vxe-select-option--checkbox {
225
+ padding-right: 0.4em;
226
+ }
227
+ .vxe-select-option--checkbox {
228
+ cursor: pointer;
229
+ }
230
+ .vxe-select-option--checkbox .vxe-checkbox--icon {
231
+ font-size: 1.22em;
232
+ }
233
+ .vxe-select-option--checkbox .vxe-checkbox--icon {
234
+ color: var(--vxe-ui-input-border-color);
235
+ vertical-align: middle;
236
+ font-weight: 700;
237
+ -webkit-user-select: none;
238
+ -moz-user-select: none;
239
+ -ms-user-select: none;
240
+ user-select: none;
241
+ }
242
+ .vxe-select-option--checkbox.is--checked, .vxe-select-option--checkbox.is--indeterminate {
243
+ color: var(--vxe-ui-font-primary-color);
244
+ }
245
+ .vxe-select-option--checkbox.is--checked .vxe-checkbox--icon, .vxe-select-option--checkbox.is--indeterminate .vxe-checkbox--icon {
246
+ color: var(--vxe-ui-font-primary-color);
247
+ }
248
+ .vxe-select-option--checkbox:not(.is--disabled):hover .vxe-checkbox--icon {
249
+ color: var(--vxe-ui-font-primary-color);
250
+ }
251
+ .vxe-select-option--checkbox.is--hidden {
252
+ cursor: default;
253
+ }
254
+ .vxe-select-option--checkbox.is--readonly {
255
+ cursor: auto;
256
+ }
257
+ .vxe-select-option--checkbox.is--disabled {
258
+ color: var(--vxe-ui-font-disabled-color);
259
+ cursor: not-allowed;
260
+ }
261
+ .vxe-select-option--checkbox.is--disabled .vxe-checkbox--icon {
262
+ color: var(--vxe-ui-input-disabled-color);
263
+ }
264
+ .vxe-select-option--checkbox .vxe-checkbox--label {
265
+ padding-left: 0.5em;
266
+ vertical-align: middle;
267
+ }
268
+
269
+ .vxe-select-option--radio {
270
+ padding-right: 0.4em;
271
+ }
272
+ .vxe-select-option--radio {
273
+ cursor: pointer;
274
+ }
275
+ .vxe-select-option--radio .vxe-radio--icon {
276
+ font-size: 1.26em;
277
+ }
278
+ .vxe-select-option--radio .vxe-radio--icon {
279
+ color: var(--vxe-ui-input-border-color);
280
+ border-radius: 50%;
281
+ vertical-align: middle;
282
+ font-weight: 700;
283
+ -webkit-user-select: none;
284
+ -moz-user-select: none;
285
+ -ms-user-select: none;
286
+ user-select: none;
287
+ }
288
+ .vxe-select-option--radio.is--checked {
289
+ color: var(--vxe-ui-font-primary-color);
290
+ }
291
+ .vxe-select-option--radio.is--checked .vxe-radio--icon {
292
+ color: var(--vxe-ui-font-primary-color);
293
+ }
294
+ .vxe-select-option--radio:not(.is--disabled):hover .vxe-radio--icon {
295
+ color: var(--vxe-ui-font-primary-color);
296
+ }
297
+ .vxe-select-option--radio.is--readonly {
298
+ cursor: auto;
299
+ }
300
+ .vxe-select-option--radio.is--disabled {
301
+ color: var(--vxe-ui-font-disabled-color);
302
+ cursor: not-allowed;
303
+ }
304
+ .vxe-select-option--radio.is--disabled .vxe-radio--icon {
305
+ color: var(--vxe-ui-input-disabled-color);
306
+ }
307
+ .vxe-select-option--radio .vxe-radio--label {
308
+ padding-left: 0.5em;
309
+ vertical-align: middle;
310
+ }
311
+
211
312
  .vxe-select--search-icon {
212
313
  margin-right: 0.5em;
213
314
  }
@@ -236,6 +337,16 @@
236
337
  font-size: var(--vxe-ui-font-size-mini);
237
338
  }
238
339
 
340
+ .vxe-select,
341
+ .vxe-select--panel {
342
+ --vxe-ui-current-padding: var(--vxe-ui-layout-padding-default);
343
+ }
344
+ .vxe-select.size--small, .vxe-select.size--mini,
345
+ .vxe-select--panel.size--small,
346
+ .vxe-select--panel.size--mini {
347
+ --vxe-ui-current-padding: var(--vxe-ui-layout-padding-half);
348
+ }
349
+
239
350
  .vxe-select--panel .vxe-select-option {
240
351
  height: var(--vxe-ui-select-option-height-default);
241
352
  }
@@ -1 +1 @@
1
- .vxe-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-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-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-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;-ms-user-select:none;user-select:none}.vxe-select--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{display:flex;flex-direction:column;position:relative;max-height:18em;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)}.vxe-select--panel-body{display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-select--header-button{display:flex;flex-direction:row}.vxe-select--header-total{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-shrink:0;padding-left:.8em}.vxe-select--header-btns{display:flex;flex-direction:row;flex-grow:1;justify-content:right}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{flex-shrink:0;padding:4px 0}.vxe-select-option--wrapper{flex-grow:1;position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option{position:relative;padding:0 .6em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select,.vxe-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-select--panel.size--medium,.vxe-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-select--panel .vxe-select-option{height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel .vxe-select--empty-placeholder,.vxe-select--panel .vxe-select--search-loading,.vxe-select--panel .vxe-select-option{line-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--medium .vxe-select-option{height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--medium .vxe-select--empty-placeholder,.vxe-select--panel.size--medium .vxe-select--search-loading,.vxe-select--panel.size--medium .vxe-select-option{line-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small .vxe-select-option{height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--small .vxe-select--empty-placeholder,.vxe-select--panel.size--small .vxe-select--search-loading,.vxe-select--panel.size--small .vxe-select-option{line-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini .vxe-select-option{height:var(--vxe-ui-select-option-height-mini)}.vxe-select--panel.size--mini .vxe-select--empty-placeholder,.vxe-select--panel.size--mini .vxe-select--search-loading,.vxe-select--panel.size--mini .vxe-select-option{line-height:var(--vxe-ui-select-option-height-mini)}
1
+ .vxe-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-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-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-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;-ms-user-select:none;user-select:none}.vxe-select--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{display:flex;flex-direction:column;position:relative;max-height:18em;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)}.vxe-select--panel-body{display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-select--header-button{display:flex;flex-direction:row}.vxe-select--footer-button,.vxe-select--header-button{display:flex;flex-direction:row;white-space:nowrap}.vxe-select--total-btns{padding-left:var(--vxe-ui-current-padding);flex-shrink:0}.vxe-select--oper-btns{display:flex;flex-direction:row;flex-grow:1;justify-content:right}.vxe-select--footer-button{display:flex;flex-direction:row}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{flex-shrink:0;padding:4px 0}.vxe-select-option--wrapper{flex-grow:1;position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option{position:relative;flex-direction:row;display:flex;padding:0 .6em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-select-option-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--label{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select-option--checkbox{padding-right:.4em}.vxe-select-option--checkbox{cursor:pointer}.vxe-select-option--checkbox .vxe-checkbox--icon{font-size:1.22em}.vxe-select-option--checkbox .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-select-option--checkbox.is--checked,.vxe-select-option--checkbox.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--checked .vxe-checkbox--icon,.vxe-select-option--checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--hidden{cursor:default}.vxe-select-option--checkbox.is--readonly{cursor:auto}.vxe-select-option--checkbox.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-select-option--radio{padding-right:.4em}.vxe-select-option--radio{cursor:pointer}.vxe-select-option--radio .vxe-radio--icon{font-size:1.26em}.vxe-select-option--radio .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-select-option--radio.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--readonly{cursor:auto}.vxe-select-option--radio.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--radio.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--radio .vxe-radio--label{padding-left:.5em;vertical-align:middle}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select,.vxe-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-select--panel.size--medium,.vxe-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-select,.vxe-select--panel{--vxe-ui-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel.size--mini,.vxe-select--panel.size--small,.vxe-select.size--mini,.vxe-select.size--small{--vxe-ui-current-padding:var(--vxe-ui-layout-padding-half)}.vxe-select--panel .vxe-select-option{height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel .vxe-select--empty-placeholder,.vxe-select--panel .vxe-select--search-loading,.vxe-select--panel .vxe-select-option{line-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--medium .vxe-select-option{height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--medium .vxe-select--empty-placeholder,.vxe-select--panel.size--medium .vxe-select--search-loading,.vxe-select--panel.size--medium .vxe-select-option{line-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small .vxe-select-option{height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--small .vxe-select--empty-placeholder,.vxe-select--panel.size--small .vxe-select--search-loading,.vxe-select--panel.size--small .vxe-select-option{line-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini .vxe-select-option{height:var(--vxe-ui-select-option-height-mini)}.vxe-select--panel.size--mini .vxe-select--empty-placeholder,.vxe-select--panel.size--mini .vxe-select--search-loading,.vxe-select--panel.size--mini .vxe-select-option{line-height:var(--vxe-ui-select-option-height-mini)}