vxe-pc-ui 3.15.13 → 3.15.14

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 (215) hide show
  1. package/es/button/style.css +11 -0
  2. package/es/button/style.min.css +1 -1
  3. package/es/checkbox/src/button.js +3 -1
  4. package/es/checkbox/src/group.js +6 -1
  5. package/es/checkbox-button/style.css +155 -9
  6. package/es/checkbox-button/style.min.css +1 -1
  7. package/es/icon/style.css +1 -1
  8. package/es/icon-picker/src/icon-picker.js +165 -47
  9. package/es/icon-picker/style.css +29 -5
  10. package/es/icon-picker/style.min.css +1 -1
  11. package/es/language/ar-EG.js +3 -0
  12. package/es/language/de-DE.js +3 -0
  13. package/es/language/en-US.js +3 -0
  14. package/es/language/es-ES.js +3 -0
  15. package/es/language/fr-FR.js +3 -0
  16. package/es/language/hu-HU.js +3 -0
  17. package/es/language/hy-AM.js +3 -0
  18. package/es/language/id-ID.js +3 -0
  19. package/es/language/it-IT.js +3 -0
  20. package/es/language/ja-JP.js +3 -0
  21. package/es/language/ko-KR.js +3 -0
  22. package/es/language/ms-MY.js +3 -0
  23. package/es/language/nb-NO.js +3 -0
  24. package/es/language/pt-BR.js +3 -0
  25. package/es/language/ru-RU.js +3 -0
  26. package/es/language/th-TH.js +3 -0
  27. package/es/language/ug-CN.js +3 -0
  28. package/es/language/uk-UA.js +3 -0
  29. package/es/language/uz-UZ.js +3 -0
  30. package/es/language/vi-VN.js +3 -0
  31. package/es/language/zh-CHT.js +3 -0
  32. package/es/language/zh-CN.js +3 -0
  33. package/es/list/src/list.js +15 -1
  34. package/es/radio/src/button.js +3 -1
  35. package/es/radio/src/group.js +6 -1
  36. package/es/radio-button/style.css +155 -9
  37. package/es/radio-button/style.min.css +1 -1
  38. package/es/style.css +1 -1
  39. package/es/style.min.css +1 -1
  40. package/es/tree/src/tree.js +246 -4
  41. package/es/tree/src/util.js +15 -0
  42. package/es/ui/index.js +5 -2
  43. package/es/ui/src/log.js +1 -1
  44. package/es/vxe-button/style.css +11 -0
  45. package/es/vxe-button/style.min.css +1 -1
  46. package/es/vxe-checkbox-button/style.css +155 -9
  47. package/es/vxe-checkbox-button/style.min.css +1 -1
  48. package/es/vxe-icon-picker/style.css +29 -5
  49. package/es/vxe-icon-picker/style.min.css +1 -1
  50. package/es/vxe-radio-button/style.css +155 -9
  51. package/es/vxe-radio-button/style.min.css +1 -1
  52. package/lib/button/style/style.css +11 -0
  53. package/lib/button/style/style.min.css +1 -1
  54. package/lib/checkbox/src/button.js +3 -1
  55. package/lib/checkbox/src/button.min.js +1 -1
  56. package/lib/checkbox/src/group.js +13 -5
  57. package/lib/checkbox/src/group.min.js +1 -1
  58. package/lib/checkbox-button/style/style.css +155 -9
  59. package/lib/checkbox-button/style/style.min.css +1 -1
  60. package/lib/icon/style/style.css +1 -1
  61. package/lib/icon/style/style.min.css +1 -1
  62. package/lib/icon-picker/src/icon-picker.js +154 -28
  63. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  64. package/lib/icon-picker/style/style.css +29 -5
  65. package/lib/icon-picker/style/style.min.css +1 -1
  66. package/lib/index.umd.js +506 -43
  67. package/lib/index.umd.min.js +1 -1
  68. package/lib/language/ar-EG.js +3 -0
  69. package/lib/language/ar-EG.min.js +1 -1
  70. package/lib/language/ar-EG.umd.js +3 -0
  71. package/lib/language/de-DE.js +3 -0
  72. package/lib/language/de-DE.min.js +1 -1
  73. package/lib/language/de-DE.umd.js +3 -0
  74. package/lib/language/en-US.js +3 -0
  75. package/lib/language/en-US.min.js +1 -1
  76. package/lib/language/en-US.umd.js +3 -0
  77. package/lib/language/es-ES.js +3 -0
  78. package/lib/language/es-ES.min.js +1 -1
  79. package/lib/language/es-ES.umd.js +3 -0
  80. package/lib/language/fr-FR.js +3 -0
  81. package/lib/language/fr-FR.min.js +1 -1
  82. package/lib/language/fr-FR.umd.js +3 -0
  83. package/lib/language/hu-HU.js +3 -0
  84. package/lib/language/hu-HU.min.js +1 -1
  85. package/lib/language/hu-HU.umd.js +3 -0
  86. package/lib/language/hy-AM.js +3 -0
  87. package/lib/language/hy-AM.min.js +1 -1
  88. package/lib/language/hy-AM.umd.js +3 -0
  89. package/lib/language/id-ID.js +3 -0
  90. package/lib/language/id-ID.min.js +1 -1
  91. package/lib/language/id-ID.umd.js +3 -0
  92. package/lib/language/it-IT.js +3 -0
  93. package/lib/language/it-IT.min.js +1 -1
  94. package/lib/language/it-IT.umd.js +3 -0
  95. package/lib/language/ja-JP.js +3 -0
  96. package/lib/language/ja-JP.min.js +1 -1
  97. package/lib/language/ja-JP.umd.js +3 -0
  98. package/lib/language/ko-KR.js +3 -0
  99. package/lib/language/ko-KR.min.js +1 -1
  100. package/lib/language/ko-KR.umd.js +3 -0
  101. package/lib/language/ms-MY.js +3 -0
  102. package/lib/language/ms-MY.min.js +1 -1
  103. package/lib/language/ms-MY.umd.js +3 -0
  104. package/lib/language/nb-NO.js +3 -0
  105. package/lib/language/nb-NO.min.js +1 -1
  106. package/lib/language/nb-NO.umd.js +3 -0
  107. package/lib/language/pt-BR.js +3 -0
  108. package/lib/language/pt-BR.min.js +1 -1
  109. package/lib/language/pt-BR.umd.js +3 -0
  110. package/lib/language/ru-RU.js +3 -0
  111. package/lib/language/ru-RU.min.js +1 -1
  112. package/lib/language/ru-RU.umd.js +3 -0
  113. package/lib/language/th-TH.js +3 -0
  114. package/lib/language/th-TH.min.js +1 -1
  115. package/lib/language/th-TH.umd.js +3 -0
  116. package/lib/language/ug-CN.js +3 -0
  117. package/lib/language/ug-CN.min.js +1 -1
  118. package/lib/language/ug-CN.umd.js +3 -0
  119. package/lib/language/uk-UA.js +3 -0
  120. package/lib/language/uk-UA.min.js +1 -1
  121. package/lib/language/uk-UA.umd.js +3 -0
  122. package/lib/language/uz-UZ.js +3 -0
  123. package/lib/language/uz-UZ.min.js +1 -1
  124. package/lib/language/uz-UZ.umd.js +3 -0
  125. package/lib/language/vi-VN.js +3 -0
  126. package/lib/language/vi-VN.min.js +1 -1
  127. package/lib/language/vi-VN.umd.js +3 -0
  128. package/lib/language/zh-CHT.js +3 -0
  129. package/lib/language/zh-CHT.min.js +1 -1
  130. package/lib/language/zh-CHT.umd.js +3 -0
  131. package/lib/language/zh-CN.js +3 -0
  132. package/lib/language/zh-CN.min.js +1 -1
  133. package/lib/language/zh-CN.umd.js +3 -0
  134. package/lib/list/src/list.js +18 -1
  135. package/lib/list/src/list.min.js +1 -1
  136. package/lib/radio/src/button.js +3 -1
  137. package/lib/radio/src/button.min.js +1 -1
  138. package/lib/radio/src/group.js +9 -2
  139. package/lib/radio/src/group.min.js +1 -1
  140. package/lib/radio-button/style/style.css +155 -9
  141. package/lib/radio-button/style/style.min.css +1 -1
  142. package/lib/style.css +1 -1
  143. package/lib/style.min.css +1 -1
  144. package/lib/tree/src/tree.js +287 -6
  145. package/lib/tree/src/tree.min.js +1 -1
  146. package/lib/tree/src/util.js +16 -0
  147. package/lib/tree/src/util.min.js +1 -1
  148. package/lib/ui/index.js +5 -2
  149. package/lib/ui/index.min.js +1 -1
  150. package/lib/ui/src/log.js +1 -1
  151. package/lib/ui/src/log.min.js +1 -1
  152. package/lib/vxe-button/style/style.css +11 -0
  153. package/lib/vxe-button/style/style.min.css +1 -1
  154. package/lib/vxe-checkbox-button/style/style.css +155 -9
  155. package/lib/vxe-checkbox-button/style/style.min.css +1 -1
  156. package/lib/vxe-icon-picker/style/style.css +29 -5
  157. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  158. package/lib/vxe-radio-button/style/style.css +155 -9
  159. package/lib/vxe-radio-button/style/style.min.css +1 -1
  160. package/package.json +1 -1
  161. package/packages/checkbox/src/button.ts +3 -1
  162. package/packages/checkbox/src/group.ts +6 -1
  163. package/packages/icon-picker/src/icon-picker.ts +180 -45
  164. package/packages/language/ar-EG.ts +3 -0
  165. package/packages/language/de-DE.ts +3 -0
  166. package/packages/language/en-US.ts +3 -0
  167. package/packages/language/es-ES.ts +3 -0
  168. package/packages/language/fr-FR.ts +3 -0
  169. package/packages/language/hu-HU.ts +3 -0
  170. package/packages/language/hy-AM.ts +3 -0
  171. package/packages/language/id-ID.ts +3 -0
  172. package/packages/language/it-IT.ts +3 -0
  173. package/packages/language/ja-JP.ts +3 -0
  174. package/packages/language/ko-KR.ts +3 -0
  175. package/packages/language/ms-MY.ts +3 -0
  176. package/packages/language/nb-NO.ts +3 -0
  177. package/packages/language/pt-BR.ts +3 -0
  178. package/packages/language/ru-RU.ts +3 -0
  179. package/packages/language/th-TH.ts +3 -0
  180. package/packages/language/ug-CN.ts +3 -0
  181. package/packages/language/uk-UA.ts +3 -0
  182. package/packages/language/uz-UZ.ts +3 -0
  183. package/packages/language/vi-VN.ts +3 -0
  184. package/packages/language/zh-CHT.ts +3 -0
  185. package/packages/language/zh-CN.ts +3 -0
  186. package/packages/list/src/list.ts +15 -1
  187. package/packages/radio/src/button.ts +3 -1
  188. package/packages/radio/src/group.ts +6 -1
  189. package/packages/tree/src/tree.ts +251 -4
  190. package/packages/tree/src/util.ts +17 -1
  191. package/packages/ui/index.ts +4 -1
  192. package/styles/components/button.scss +24 -69
  193. package/styles/components/checkbox-button.scss +66 -14
  194. package/styles/components/icon-picker.scss +37 -11
  195. package/styles/components/radio-button.scss +66 -14
  196. package/styles/helpers/themeStatus.scss +58 -0
  197. package/types/all.d.ts +205 -0
  198. package/types/components/checkbox-group.d.ts +3 -1
  199. package/types/components/checkbox.d.ts +1 -1
  200. package/types/components/icon-picker.d.ts +27 -4
  201. package/types/components/list.d.ts +2 -2
  202. package/types/components/radio-group.d.ts +3 -1
  203. package/types/components/tree.d.ts +36 -0
  204. /package/es/icon/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
  205. /package/es/icon/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
  206. /package/es/icon/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
  207. /package/es/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
  208. /package/es/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
  209. /package/es/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
  210. /package/lib/icon/style/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
  211. /package/lib/icon/style/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
  212. /package/lib/icon/style/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
  213. /package/lib/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
  214. /package/lib/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
  215. /package/lib/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
@@ -1,6 +1,3 @@
1
- .vxe-radio--button .vxe-radio--label {
2
- background-color: var(--vxe-ui-layout-background-color);
3
- }
4
1
  .vxe-radio--button:first-child .vxe-radio--label {
5
2
  border-left: 1px solid var(--vxe-ui-input-border-color);
6
3
  border-radius: var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius);
@@ -8,10 +5,6 @@
8
5
  .vxe-radio--button:last-child .vxe-radio--label {
9
6
  border-radius: 0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0;
10
7
  }
11
- .vxe-radio--button > input:checked + .vxe-radio--label {
12
- color: #fff;
13
- background-color: var(--vxe-ui-font-primary-color);
14
- }
15
8
  .vxe-radio--button .vxe-radio--label {
16
9
  padding: 0 1em;
17
10
  line-height: calc(var(--vxe-ui-button-height-default) - 2px);
@@ -20,14 +13,167 @@
20
13
  border-color: var(--vxe-ui-input-border-color);
21
14
  border-width: 1px 1px 1px 0;
22
15
  max-width: 50em;
16
+ -webkit-user-select: none;
17
+ -moz-user-select: none;
18
+ -ms-user-select: none;
19
+ user-select: none;
23
20
  overflow: hidden;
24
21
  text-overflow: ellipsis;
25
22
  white-space: nowrap;
26
23
  }
27
- .vxe-radio--button > input:focus + .vxe-radio--label {
24
+
25
+ .vxe-radio--button > input:checked + .vxe-radio--label {
26
+ color: #fff;
27
+ border-color: var(--vxe-ui-font-primary-color);
28
+ background-color: var(--vxe-ui-font-primary-color);
29
+ }
30
+ .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
31
+ background-color: var(--vxe-ui-font-primary-lighten-color);
32
+ border-color: var(--vxe-ui-font-primary-lighten-color);
33
+ }
34
+ .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
35
+ background-color: var(--vxe-ui-font-primary-darken-color);
36
+ border-color: var(--vxe-ui-font-primary-darken-color);
37
+ }
38
+ .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
39
+ border-color: var(--vxe-ui-font-primary-disabled-color);
40
+ background-color: var(--vxe-ui-font-primary-disabled-color);
41
+ }
42
+
43
+ .vxe-radio-group.theme--primary .vxe-radio--button > input:checked + .vxe-radio--label {
44
+ color: #fff;
28
45
  border-color: var(--vxe-ui-font-primary-color);
29
- box-shadow: 0 0 0.2em 0 var(--vxe-ui-font-primary-color);
46
+ background-color: var(--vxe-ui-font-primary-color);
47
+ }
48
+ .vxe-radio-group.theme--primary .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
49
+ color: #fff;
50
+ background-color: var(--vxe-ui-font-primary-lighten-color);
51
+ border-color: var(--vxe-ui-font-primary-lighten-color);
52
+ }
53
+ .vxe-radio-group.theme--primary .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
54
+ color: #fff;
55
+ background-color: var(--vxe-ui-font-primary-darken-color);
56
+ border-color: var(--vxe-ui-font-primary-darken-color);
57
+ }
58
+ .vxe-radio-group.theme--primary .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
59
+ border-color: var(--vxe-ui-font-primary-disabled-color);
60
+ background-color: var(--vxe-ui-font-primary-disabled-color);
61
+ }
62
+ .vxe-radio-group.theme--success .vxe-radio--button > input:checked + .vxe-radio--label {
63
+ color: #fff;
64
+ border-color: var(--vxe-ui-status-success-color);
65
+ background-color: var(--vxe-ui-status-success-color);
66
+ }
67
+ .vxe-radio-group.theme--success .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
68
+ color: #fff;
69
+ background-color: var(--vxe-ui-status-success-lighten-color);
70
+ border-color: var(--vxe-ui-status-success-lighten-color);
71
+ }
72
+ .vxe-radio-group.theme--success .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
73
+ color: #fff;
74
+ background-color: var(--vxe-ui-status-success-darken-color);
75
+ border-color: var(--vxe-ui-status-success-darken-color);
76
+ }
77
+ .vxe-radio-group.theme--success .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
78
+ border-color: var(--vxe-ui-status-success-disabled-color);
79
+ background-color: var(--vxe-ui-status-success-disabled-color);
80
+ }
81
+ .vxe-radio-group.theme--info .vxe-radio--button > input:checked + .vxe-radio--label {
82
+ color: #fff;
83
+ border-color: var(--vxe-ui-status-info-color);
84
+ background-color: var(--vxe-ui-status-info-color);
85
+ }
86
+ .vxe-radio-group.theme--info .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
87
+ color: #fff;
88
+ background-color: var(--vxe-ui-status-info-lighten-color);
89
+ border-color: var(--vxe-ui-status-info-lighten-color);
90
+ }
91
+ .vxe-radio-group.theme--info .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
92
+ color: #fff;
93
+ background-color: var(--vxe-ui-status-info-darken-color);
94
+ border-color: var(--vxe-ui-status-info-darken-color);
95
+ }
96
+ .vxe-radio-group.theme--info .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
97
+ border-color: var(--vxe-ui-status-info-disabled-color);
98
+ background-color: var(--vxe-ui-status-info-disabled-color);
99
+ }
100
+ .vxe-radio-group.theme--warning .vxe-radio--button > input:checked + .vxe-radio--label {
101
+ color: #fff;
102
+ border-color: var(--vxe-ui-status-warning-color);
103
+ background-color: var(--vxe-ui-status-warning-color);
104
+ }
105
+ .vxe-radio-group.theme--warning .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
106
+ color: #fff;
107
+ background-color: var(--vxe-ui-status-warning-lighten-color);
108
+ border-color: var(--vxe-ui-status-warning-lighten-color);
109
+ }
110
+ .vxe-radio-group.theme--warning .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
111
+ color: #fff;
112
+ background-color: var(--vxe-ui-status-warning-darken-color);
113
+ border-color: var(--vxe-ui-status-warning-darken-color);
114
+ }
115
+ .vxe-radio-group.theme--warning .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
116
+ border-color: var(--vxe-ui-status-warning-disabled-color);
117
+ background-color: var(--vxe-ui-status-warning-disabled-color);
118
+ }
119
+ .vxe-radio-group.theme--danger .vxe-radio--button > input:checked + .vxe-radio--label {
120
+ color: #fff;
121
+ border-color: var(--vxe-ui-status-danger-color);
122
+ background-color: var(--vxe-ui-status-danger-color);
123
+ }
124
+ .vxe-radio-group.theme--danger .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
125
+ color: #fff;
126
+ background-color: var(--vxe-ui-status-danger-lighten-color);
127
+ border-color: var(--vxe-ui-status-danger-lighten-color);
128
+ }
129
+ .vxe-radio-group.theme--danger .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
130
+ color: #fff;
131
+ background-color: var(--vxe-ui-status-danger-darken-color);
132
+ border-color: var(--vxe-ui-status-danger-darken-color);
133
+ }
134
+ .vxe-radio-group.theme--danger .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
135
+ border-color: var(--vxe-ui-status-danger-disabled-color);
136
+ background-color: var(--vxe-ui-status-danger-disabled-color);
137
+ }
138
+ .vxe-radio-group.theme--error .vxe-radio--button > input:checked + .vxe-radio--label {
139
+ color: #fff;
140
+ border-color: var(--vxe-ui-status-error-color);
141
+ background-color: var(--vxe-ui-status-error-color);
142
+ }
143
+ .vxe-radio-group.theme--error .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
144
+ color: #fff;
145
+ background-color: var(--vxe-ui-status-error-lighten-color);
146
+ border-color: var(--vxe-ui-status-error-lighten-color);
147
+ }
148
+ .vxe-radio-group.theme--error .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
149
+ color: #fff;
150
+ background-color: var(--vxe-ui-status-error-darken-color);
151
+ border-color: var(--vxe-ui-status-error-darken-color);
152
+ }
153
+ .vxe-radio-group.theme--error .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
154
+ border-color: var(--vxe-ui-status-error-disabled-color);
155
+ background-color: var(--vxe-ui-status-error-disabled-color);
156
+ }
157
+ .vxe-radio-group.theme--perfect .vxe-radio--button > input:checked + .vxe-radio--label {
158
+ color: var(--vxe-ui-font-color);
159
+ border-color: var(--vxe-ui-table-header-background-color);
160
+ background-color: var(--vxe-ui-table-header-background-color);
161
+ }
162
+ .vxe-radio-group.theme--perfect .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):hover {
163
+ color: var(--vxe-ui-font-color);
164
+ background-color: var(--vxe-ui-table-header-background-color);
165
+ border-color: var(--vxe-ui-table-header-background-color);
166
+ }
167
+ .vxe-radio-group.theme--perfect .vxe-radio--button > input:checked + .vxe-radio--label:not(.is--disabled):active {
168
+ color: var(--vxe-ui-font-color);
169
+ background-color: var(--vxe-ui-table-header-background-color);
170
+ border-color: var(--vxe-ui-table-header-background-color);
171
+ }
172
+ .vxe-radio-group.theme--perfect .vxe-radio--button > input:checked + .vxe-radio--label.is--disabled {
173
+ border-color: var(--vxe-ui-table-header-background-color);
174
+ background-color: var(--vxe-ui-table-header-background-color);
30
175
  }
176
+
31
177
  .vxe-radio--button.size--medium .vxe-radio--label {
32
178
  line-height: calc(var(--vxe-ui-button-height-medium) - 2px);
33
179
  }
@@ -1 +1 @@
1
- .vxe-radio--button .vxe-radio--label{background-color:var(--vxe-ui-layout-background-color)}.vxe-radio--button:first-child .vxe-radio--label{border-left:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-radio--button:last-child .vxe-radio--label{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-radio--button .vxe-radio--label{padding:0 1em;line-height:calc(var(--vxe-ui-button-height-default) - 2px);display:inline-block;border-style:solid;border-color:var(--vxe-ui-input-border-color);border-width:1px 1px 1px 0;max-width:50em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-radio--button>input:focus+.vxe-radio--label{border-color:var(--vxe-ui-font-primary-color);box-shadow:0 0 .2em 0 var(--vxe-ui-font-primary-color)}.vxe-radio--button.size--medium .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-medium) - 2px)}.vxe-radio--button.size--small .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-small) - 2px)}.vxe-radio--button.size--mini .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-mini) - 2px)}
1
+ .vxe-radio--button:first-child .vxe-radio--label{border-left:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-radio--button:last-child .vxe-radio--label{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-radio--button .vxe-radio--label{padding:0 1em;line-height:calc(var(--vxe-ui-button-height-default) - 2px);display:inline-block;border-style:solid;border-color:var(--vxe-ui-input-border-color);border-width:1px 1px 1px 0;max-width:50em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-font-primary-color)}.vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{background-color:var(--vxe-ui-font-primary-lighten-color);border-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{background-color:var(--vxe-ui-font-primary-darken-color);border-color:var(--vxe-ui-font-primary-darken-color)}.vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-font-primary-disabled-color);background-color:var(--vxe-ui-font-primary-disabled-color)}.vxe-radio-group.theme--primary .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-font-primary-color)}.vxe-radio-group.theme--primary .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-font-primary-lighten-color);border-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-radio-group.theme--primary .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-font-primary-darken-color);border-color:var(--vxe-ui-font-primary-darken-color)}.vxe-radio-group.theme--primary .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-font-primary-disabled-color);background-color:var(--vxe-ui-font-primary-disabled-color)}.vxe-radio-group.theme--success .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-status-success-color);background-color:var(--vxe-ui-status-success-color)}.vxe-radio-group.theme--success .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-status-success-lighten-color);border-color:var(--vxe-ui-status-success-lighten-color)}.vxe-radio-group.theme--success .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-status-success-darken-color);border-color:var(--vxe-ui-status-success-darken-color)}.vxe-radio-group.theme--success .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-status-success-disabled-color);background-color:var(--vxe-ui-status-success-disabled-color)}.vxe-radio-group.theme--info .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-status-info-color);background-color:var(--vxe-ui-status-info-color)}.vxe-radio-group.theme--info .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-status-info-lighten-color);border-color:var(--vxe-ui-status-info-lighten-color)}.vxe-radio-group.theme--info .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-status-info-darken-color);border-color:var(--vxe-ui-status-info-darken-color)}.vxe-radio-group.theme--info .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-status-info-disabled-color);background-color:var(--vxe-ui-status-info-disabled-color)}.vxe-radio-group.theme--warning .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-status-warning-color);background-color:var(--vxe-ui-status-warning-color)}.vxe-radio-group.theme--warning .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-status-warning-lighten-color);border-color:var(--vxe-ui-status-warning-lighten-color)}.vxe-radio-group.theme--warning .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-status-warning-darken-color);border-color:var(--vxe-ui-status-warning-darken-color)}.vxe-radio-group.theme--warning .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-status-warning-disabled-color);background-color:var(--vxe-ui-status-warning-disabled-color)}.vxe-radio-group.theme--danger .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-status-danger-color);background-color:var(--vxe-ui-status-danger-color)}.vxe-radio-group.theme--danger .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-status-danger-lighten-color);border-color:var(--vxe-ui-status-danger-lighten-color)}.vxe-radio-group.theme--danger .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-status-danger-darken-color);border-color:var(--vxe-ui-status-danger-darken-color)}.vxe-radio-group.theme--danger .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-status-danger-disabled-color);background-color:var(--vxe-ui-status-danger-disabled-color)}.vxe-radio-group.theme--error .vxe-radio--button>input:checked+.vxe-radio--label{color:#fff;border-color:var(--vxe-ui-status-error-color);background-color:var(--vxe-ui-status-error-color)}.vxe-radio-group.theme--error .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-ui-status-error-lighten-color);border-color:var(--vxe-ui-status-error-lighten-color)}.vxe-radio-group.theme--error .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:#fff;background-color:var(--vxe-ui-status-error-darken-color);border-color:var(--vxe-ui-status-error-darken-color)}.vxe-radio-group.theme--error .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-status-error-disabled-color);background-color:var(--vxe-ui-status-error-disabled-color)}.vxe-radio-group.theme--perfect .vxe-radio--button>input:checked+.vxe-radio--label{color:var(--vxe-ui-font-color);border-color:var(--vxe-ui-table-header-background-color);background-color:var(--vxe-ui-table-header-background-color)}.vxe-radio-group.theme--perfect .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):hover{color:var(--vxe-ui-font-color);background-color:var(--vxe-ui-table-header-background-color);border-color:var(--vxe-ui-table-header-background-color)}.vxe-radio-group.theme--perfect .vxe-radio--button>input:checked+.vxe-radio--label:not(.is--disabled):active{color:var(--vxe-ui-font-color);background-color:var(--vxe-ui-table-header-background-color);border-color:var(--vxe-ui-table-header-background-color)}.vxe-radio-group.theme--perfect .vxe-radio--button>input:checked+.vxe-radio--label.is--disabled{border-color:var(--vxe-ui-table-header-background-color);background-color:var(--vxe-ui-table-header-background-color)}.vxe-radio--button.size--medium .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-medium) - 2px)}.vxe-radio--button.size--small .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-small) - 2px)}.vxe-radio--button.size--mini .vxe-radio--label{line-height:calc(var(--vxe-ui-button-height-mini) - 2px)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-pc-ui",
3
- "version": "3.15.13",
3
+ "version": "3.15.14",
4
4
  "description": "A vue based PC component library",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -195,7 +195,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
195
195
  }
196
196
  }),
197
197
  h('span', {
198
- class: 'vxe-checkbox--label'
198
+ class: ['vxe-checkbox--label', {
199
+ 'is--disabled': isDisabled
200
+ }]
199
201
  }, defaultSlot ? defaultSlot({}) : getFuncText(props.content))
200
202
  ])
201
203
  }
@@ -33,6 +33,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
33
33
  type: Boolean as PropType<VxeCheckboxGroupPropTypes.Disabled>,
34
34
  default: null
35
35
  },
36
+ status: {
37
+ type: String as PropType<VxeCheckboxGroupPropTypes.Status>,
38
+ default: () => getConfig().checkboxGroup.status
39
+ },
36
40
  max: {
37
41
  type: [String, Number] as PropType<VxeCheckboxGroupPropTypes.Max>,
38
42
  default: null
@@ -234,7 +238,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
234
238
  const props = $xeCheckboxGroup
235
239
  const slots = $xeCheckboxGroup.$scopedSlots
236
240
 
237
- const { options } = props
241
+ const { status, options } = props
238
242
  const defaultSlot = slots.default
239
243
  const valueField = $xeCheckboxGroup.computeValueField as 'value'
240
244
  const labelField = $xeCheckboxGroup.computeLabelField as 'label'
@@ -243,6 +247,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
243
247
  const isDisabled = $xeCheckboxGroup.computeIsDisabled
244
248
  return h('div', {
245
249
  class: ['vxe-checkbox-group', {
250
+ [`theme--${status}`]: status,
246
251
  'is--readonly': isReadonly,
247
252
  'is--disabled': isDisabled
248
253
  }]
@@ -2,13 +2,36 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, getI18n, globalEvents, renderer, createEvent, globalMixins, GLOBAL_EVENT_KEYS, renderEmptyElement } from '../../ui'
5
- import { getEventTargetNode, updatePanelPlacement } from '../../ui/src/dom'
5
+ import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
+ import VxeInputComponent from '../../input/src/input'
8
9
 
9
- import type { VxeIconPickerPropTypes, IconPickerInternalData, ValueOf, IconPickerReactData, VxeInputConstructor, VxeComponentSizeType, VxeIconPickerEmits, VxeIconPickerDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods } from '../../../types'
10
+ import type { VxeIconPickerPropTypes, IconPickerInternalData, ValueOf, IconPickerReactData, VxeInputConstructor, VxeComponentSizeType, VxeIconPickerEmits, VxeIconPickerDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeComponentStyleType } from '../../../types'
10
11
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
11
12
 
13
+ function createReactData (): IconPickerReactData {
14
+ return {
15
+ initialized: false,
16
+ selectIcon: '',
17
+ panelIndex: 0,
18
+ panelStyle: {},
19
+ panelPlacement: null,
20
+ visiblePanel: false,
21
+ isAniVisible: false,
22
+ isActivated: false,
23
+ searchValue: '',
24
+ iconGroups: []
25
+ }
26
+ }
27
+
28
+ function createInternalData (): IconPickerInternalData {
29
+ return {
30
+ fullList: []
31
+ // hpTimeout: undefined
32
+ }
33
+ }
34
+
12
35
  export default /* define-vxe-component start */ defineVxeComponent({
13
36
  name: 'VxeIconPicker',
14
37
  mixins: [
@@ -44,6 +67,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
44
67
  type: Boolean as PropType<VxeIconPickerPropTypes.Disabled>,
45
68
  default: null
46
69
  },
70
+ filterable: {
71
+ type: Boolean as PropType<VxeIconPickerPropTypes.Filterable>,
72
+ default: () => getConfig().iconPicker.filterable
73
+ },
74
+ filterConfig: Object as PropType<VxeIconPickerPropTypes.FilterConfig>,
47
75
  icons: Array as PropType<VxeIconPickerPropTypes.Icons>,
48
76
  placement: String as PropType<VxeIconPickerPropTypes.Placement>,
49
77
  popupConfig: Object as PropType<VxeIconPickerPropTypes.PopupConfig>,
@@ -77,23 +105,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
77
105
  }
78
106
  },
79
107
  data () {
80
- const reactData: IconPickerReactData = {
81
- initialized: false,
82
- selectIcon: '',
83
- panelIndex: 0,
84
- panelStyle: {},
85
- panelPlacement: null,
86
- visiblePanel: false,
87
- isAniVisible: false,
88
- isActivated: false
89
- }
90
- const internalData: IconPickerInternalData = {
91
- hpTimeout: undefined
92
- }
108
+ const reactData = createReactData()
93
109
  return {
110
+ ...({} as {
111
+ internalData: IconPickerInternalData,
112
+ }),
94
113
  xID: XEUtils.uniqueId(),
95
- reactData,
96
- internalData
114
+ reactData
97
115
  }
98
116
  },
99
117
  computed: {
@@ -171,6 +189,21 @@ export default /* define-vxe-component start */ defineVxeComponent({
171
189
  }
172
190
  return getI18n('vxe.base.pleaseSelect')
173
191
  },
192
+ computePanelStyle () {
193
+ const $xeIconPicker = this
194
+
195
+ const popupOpts = $xeIconPicker.computePopupOpts
196
+ const { chunkSize, height, maxHeight } = popupOpts
197
+ const stys: VxeComponentStyleType = {
198
+ '--vxe-ui-icon-picker-item-width': `${100 / (chunkSize || 4)}%`
199
+ }
200
+ if (height) {
201
+ stys['--vxe-ui-icon-picker-panel-height'] = toCssUnit(height)
202
+ } else if (maxHeight) {
203
+ stys['--vxe-ui-icon-picker-panel-max-height'] = toCssUnit(maxHeight)
204
+ }
205
+ return stys
206
+ },
174
207
  computeIconList () {
175
208
  const $xeIconPicker = this
176
209
  const props = $xeIconPicker
@@ -193,6 +226,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
193
226
  }
194
227
  })
195
228
  },
229
+ computeFilterOpts () {
230
+ const $xeIconPicker = this
231
+ const props = $xeIconPicker
232
+
233
+ return Object.assign({}, getConfig().iconPicker.filterConfig, props.filterConfig)
234
+ },
196
235
  computePopupOpts () {
197
236
  const $xeIconPicker = this
198
237
  const props = $xeIconPicker
@@ -312,6 +351,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
312
351
  const panelElem = $xeIconPicker.$refs.refOptionPanel as HTMLDivElement
313
352
  const btnTransfer = $xeIconPicker.computeBtnTransfer
314
353
  const popupOpts = $xeIconPicker.computePopupOpts
354
+ const { width } = popupOpts
315
355
  const handleStyle = () => {
316
356
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
317
357
  placement: popupOpts.placement || placement,
@@ -321,6 +361,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
321
361
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
322
362
  zIndex: panelIndex
323
363
  })
364
+ if (width) {
365
+ Object.assign(panelStyle, {
366
+ width: toCssUnit(width),
367
+ minWidth: undefined
368
+ })
369
+ }
324
370
  reactData.panelStyle = panelStyle
325
371
  reactData.panelPlacement = ppObj.placement
326
372
  }
@@ -369,6 +415,30 @@ export default /* define-vxe-component start */ defineVxeComponent({
369
415
  reactData.isAniVisible = false
370
416
  }, 350)
371
417
  },
418
+ handleData () {
419
+ const $xeIconPicker = this
420
+ const props = $xeIconPicker
421
+ const reactData = $xeIconPicker.reactData
422
+
423
+ const { value: modelValue } = props
424
+ const { searchValue } = reactData
425
+ const filterOpts = $xeIconPicker.computeFilterOpts
426
+ const { filterMethod } = filterOpts
427
+ const popupOpts = $xeIconPicker.computePopupOpts
428
+ const { chunkSize } = popupOpts
429
+ const iconList = $xeIconPicker.computeIconList
430
+ let visibleList = iconList
431
+ if (searchValue) {
432
+ const searchTxt = `${searchValue}`.toLowerCase()
433
+ visibleList = iconList.filter(item => {
434
+ if (filterMethod) {
435
+ return filterMethod({ option: item, value: modelValue, searchValue: searchTxt, $iconPicker: $xeIconPicker })
436
+ }
437
+ return (item.title && `${item.title}`.toLowerCase().indexOf(searchTxt) > -1) || (item.icon && `${item.icon}`.indexOf(searchTxt) > -1)
438
+ })
439
+ }
440
+ reactData.iconGroups = XEUtils.chunk(visibleList, chunkSize || 4)
441
+ },
372
442
  changeEvent (evnt: Event, selectValue: any) {
373
443
  const $xeIconPicker = this
374
444
  const props = $xeIconPicker
@@ -537,6 +607,28 @@ export default /* define-vxe-component start */ defineVxeComponent({
537
607
  $xeIconPicker.changeEvent(evnt, value)
538
608
  $xeIconPicker.hideOptionPanel()
539
609
  },
610
+ modelSearchEvent (value: string) {
611
+ const $xeIconPicker = this
612
+ const reactData = $xeIconPicker.reactData
613
+
614
+ reactData.searchValue = value
615
+ },
616
+ focusSearchEvent () {
617
+ const $xeIconPicker = this
618
+ const reactData = $xeIconPicker.reactData
619
+
620
+ reactData.isActivated = true
621
+ },
622
+ handleSearchEvent () {
623
+ const $xeIconPicker = this
624
+
625
+ $xeIconPicker.handleData()
626
+ },
627
+ triggerSearchEvent: XEUtils.debounce(function (this: any) {
628
+ const $xeIconPicker = this
629
+
630
+ $xeIconPicker.handleSearchEvent()
631
+ }, 350, { trailing: true }),
540
632
 
541
633
  //
542
634
  // Render
@@ -547,45 +639,48 @@ export default /* define-vxe-component start */ defineVxeComponent({
547
639
  const reactData = $xeIconPicker.reactData
548
640
 
549
641
  const { showIconTitle } = props
550
- const { selectIcon } = reactData
551
- const iconGroupList = $xeIconPicker.computeIconGroupList
552
- const isDisabled = $xeIconPicker.computeIsDisabled
642
+ const { selectIcon, iconGroups } = reactData
553
643
 
554
644
  return h('div', {
555
645
  class: 'vxe-ico-picker--list-wrapper'
556
- }, iconGroupList.map(list => {
646
+ }, iconGroups.map(list => {
557
647
  return h('div', {
558
648
  class: 'vxe-ico-picker--list'
559
649
  }, list.map(item => {
560
650
  const { iconRender } = item
561
651
  const compConf = iconRender ? renderer.get(iconRender.name) : null
562
- const oIconMethod = compConf ? compConf.renderIconPickerOptionIcon : null
652
+ const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null
563
653
  return h('div', {
564
654
  class: ['vxe-ico-picker--item', {
565
655
  'is--selected': selectIcon === item.icon
566
- }],
567
- on: {
568
- click (evnt: MouseEvent) {
569
- if (!isDisabled) {
570
- $xeIconPicker.handleClickIconEvent(evnt, item)
571
- }
572
- }
573
- }
656
+ }]
574
657
  }, [
575
658
  h('div', {
576
- class: 'vxe-ico-picker--item-icon'
577
- }, oIconMethod && iconRender
578
- ? getSlotVNs(oIconMethod.call($xeIconPicker, h, iconRender, { $iconPicker: $xeIconPicker, option: item }))
579
- : [
580
- h('i', {
581
- class: item.icon || ''
582
- })
583
- ]),
584
- showIconTitle
585
- ? h('div', {
586
- class: 'vxe-ico-picker--item-title'
587
- }, `${item.title || ''}`)
588
- : renderEmptyElement($xeIconPicker)
659
+ class: 'vxe-ico-picker--item-inner',
660
+ on: {
661
+ click (evnt: MouseEvent) {
662
+ const isDisabled = $xeIconPicker.computeIsDisabled
663
+ if (!isDisabled) {
664
+ $xeIconPicker.handleClickIconEvent(evnt, item)
665
+ }
666
+ }
667
+ }
668
+ }, [
669
+ h('div', {
670
+ class: 'vxe-ico-picker--item-icon'
671
+ }, iconMethod && iconRender
672
+ ? getSlotVNs(iconMethod(h, iconRender, { $iconPicker: $xeIconPicker, option: item }))
673
+ : [
674
+ h('i', {
675
+ class: item.icon || ''
676
+ })
677
+ ]),
678
+ showIconTitle
679
+ ? h('div', {
680
+ class: 'vxe-ico-picker--item-title'
681
+ }, `${item.title || ''}`)
682
+ : renderEmptyElement($xeIconPicker)
683
+ ])
589
684
  ])
590
685
  }))
591
686
  }))
@@ -621,13 +716,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
621
716
  const props = $xeIconPicker
622
717
  const reactData = $xeIconPicker.reactData
623
718
 
624
- const { className, clearable } = props
719
+ const { className, clearable, filterable } = props
625
720
  const { initialized, isActivated, isAniVisible, visiblePanel, selectIcon } = reactData
626
721
  const vSize = $xeIconPicker.computeSize
627
722
  const isDisabled = $xeIconPicker.computeIsDisabled
628
723
  const btnTransfer = $xeIconPicker.computeBtnTransfer
629
724
  const formReadonly = $xeIconPicker.computeFormReadonly
630
725
  const inpPlaceholder = $xeIconPicker.computeInpPlaceholder
726
+ const panelStyle = $xeIconPicker.computePanelStyle
631
727
  const popupOpts = $xeIconPicker.computePopupOpts
632
728
  const ppClassName = popupOpts.className || props.popupClassName
633
729
 
@@ -707,8 +803,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
707
803
  }, [
708
804
  initialized && (visiblePanel || isAniVisible)
709
805
  ? h('div', {
710
- class: 'vxe-ico-picker--panel-wrapper'
806
+ class: 'vxe-ico-picker--panel-wrapper',
807
+ style: panelStyle
711
808
  }, [
809
+ filterable
810
+ ? h('div', {
811
+ class: 'vxe-ico-picker--panel-search'
812
+ }, [
813
+ h(VxeInputComponent, {
814
+ ref: 'refInpSearch',
815
+ class: 'vxe-ico-picker-search--input',
816
+ props: {
817
+ value: reactData.searchValue,
818
+ type: 'text',
819
+ clearable: true,
820
+ disabled: false,
821
+ readonly: false,
822
+ placeholder: getI18n('vxe.iconPicker.search'),
823
+ prefixIcon: getIcon().INPUT_SEARCH
824
+ },
825
+ on: {
826
+ 'model-value': $xeIconPicker.modelSearchEvent,
827
+ focus: $xeIconPicker.focusSearchEvent,
828
+ change: $xeIconPicker.triggerSearchEvent,
829
+ search: $xeIconPicker.triggerSearchEvent
830
+ }
831
+ })
832
+ ])
833
+ : renderEmptyElement($xeIconPicker),
712
834
  $xeIconPicker.renderIconWrapper(h)
713
835
  ])
714
836
  : renderEmptyElement($xeIconPicker)
@@ -722,6 +844,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
722
844
  const reactData = $xeIconPicker.reactData
723
845
 
724
846
  reactData.selectIcon = `${val || ''}`
847
+ },
848
+ computeIconList () {
849
+ const $xeIconPicker = this
850
+
851
+ $xeIconPicker.handleData()
725
852
  }
726
853
  },
727
854
  created () {
@@ -729,7 +856,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
729
856
  const props = $xeIconPicker
730
857
  const reactData = $xeIconPicker.reactData
731
858
 
859
+ $xeIconPicker.internalData = createInternalData()
860
+
732
861
  reactData.selectIcon = `${props.value || ''}`
862
+ $xeIconPicker.handleData()
863
+
733
864
  globalEvents.on($xeIconPicker, 'mousewheel', $xeIconPicker.handleGlobalMousewheelEvent)
734
865
  globalEvents.on($xeIconPicker, 'mousedown', $xeIconPicker.handleGlobalMousedownEvent)
735
866
  globalEvents.on($xeIconPicker, 'keydown', $xeIconPicker.handleGlobalKeydownEvent)
@@ -737,6 +868,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
737
868
  },
738
869
  beforeDestroy () {
739
870
  const $xeIconPicker = this
871
+ const reactData = $xeIconPicker.reactData
872
+ const internalData = $xeIconPicker.internalData
740
873
 
741
874
  const panelElem = $xeIconPicker.$refs.refOptionPanel as HTMLElement | undefined
742
875
  if (panelElem && panelElem.parentNode) {
@@ -746,6 +879,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
746
879
  globalEvents.off($xeIconPicker, 'mousedown')
747
880
  globalEvents.off($xeIconPicker, 'keydown')
748
881
  globalEvents.off($xeIconPicker, 'blur')
882
+ XEUtils.assign(reactData, createReactData())
883
+ XEUtils.assign(internalData, createInternalData())
749
884
  },
750
885
  render (this: any, h) {
751
886
  return this.renderVN(h)
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'تجميد الحق',
288
288
  cancelFixed: 'إلغاء التجميد'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} سنوات'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Rechts einfrieren',
288
288
  cancelFixed: 'Säulen entfernen'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} Jahre'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Freeze right',
288
288
  cancelFixed: 'Unfreeze'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} years'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Congelarse a la derecha',
288
288
  cancelFixed: 'Columnas desenfrenado'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} años'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Geler à droite',
288
288
  cancelFixed: 'Dégeler'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} ans'
292
295
  },