vxe-pc-ui 3.15.12 → 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 +25 -25
  202. package/types/components/radio-group.d.ts +3 -1
  203. package/types/components/tree.d.ts +36 -0
  204. /package/es/icon/{iconfont.1782655694572.ttf → iconfont.1782742114089.ttf} +0 -0
  205. /package/es/icon/{iconfont.1782655694572.woff → iconfont.1782742114089.woff} +0 -0
  206. /package/es/icon/{iconfont.1782655694572.woff2 → iconfont.1782742114089.woff2} +0 -0
  207. /package/es/{iconfont.1782655694572.ttf → iconfont.1782742114089.ttf} +0 -0
  208. /package/es/{iconfont.1782655694572.woff → iconfont.1782742114089.woff} +0 -0
  209. /package/es/{iconfont.1782655694572.woff2 → iconfont.1782742114089.woff2} +0 -0
  210. /package/lib/icon/style/{iconfont.1782655694572.ttf → iconfont.1782742114089.ttf} +0 -0
  211. /package/lib/icon/style/{iconfont.1782655694572.woff → iconfont.1782742114089.woff} +0 -0
  212. /package/lib/icon/style/{iconfont.1782655694572.woff2 → iconfont.1782742114089.woff2} +0 -0
  213. /package/lib/{iconfont.1782655694572.ttf → iconfont.1782742114089.ttf} +0 -0
  214. /package/lib/{iconfont.1782655694572.woff → iconfont.1782742114089.woff} +0 -0
  215. /package/lib/{iconfont.1782655694572.woff2 → iconfont.1782742114089.woff2} +0 -0
@@ -1,9 +1,30 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getConfig, getIcon, getI18n, globalEvents, renderer, createEvent, globalMixins, GLOBAL_EVENT_KEYS, renderEmptyElement } from '../../ui';
4
- import { getEventTargetNode, updatePanelPlacement } from '../../ui/src/dom';
4
+ import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom';
5
5
  import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
7
+ import VxeInputComponent from '../../input/src/input';
8
+ function createReactData() {
9
+ return {
10
+ initialized: false,
11
+ selectIcon: '',
12
+ panelIndex: 0,
13
+ panelStyle: {},
14
+ panelPlacement: null,
15
+ visiblePanel: false,
16
+ isAniVisible: false,
17
+ isActivated: false,
18
+ searchValue: '',
19
+ iconGroups: []
20
+ };
21
+ }
22
+ function createInternalData() {
23
+ return {
24
+ fullList: []
25
+ // hpTimeout: undefined
26
+ };
27
+ }
7
28
  export default {
8
29
  name: 'VxeIconPicker',
9
30
  mixins: [
@@ -39,6 +60,11 @@ export default {
39
60
  type: Boolean,
40
61
  default: null
41
62
  },
63
+ filterable: {
64
+ type: Boolean,
65
+ default: () => getConfig().iconPicker.filterable
66
+ },
67
+ filterConfig: Object,
42
68
  icons: Array,
43
69
  placement: String,
44
70
  popupConfig: Object,
@@ -72,24 +98,8 @@ export default {
72
98
  };
73
99
  },
74
100
  data() {
75
- const reactData = {
76
- initialized: false,
77
- selectIcon: '',
78
- panelIndex: 0,
79
- panelStyle: {},
80
- panelPlacement: null,
81
- visiblePanel: false,
82
- isAniVisible: false,
83
- isActivated: false
84
- };
85
- const internalData = {
86
- hpTimeout: undefined
87
- };
88
- return {
89
- xID: XEUtils.uniqueId(),
90
- reactData,
91
- internalData
92
- };
101
+ const reactData = createReactData();
102
+ return Object.assign(Object.assign({}, {}), { xID: XEUtils.uniqueId(), reactData });
93
103
  },
94
104
  computed: Object.assign(Object.assign({}, {}), { computeFormReadonly() {
95
105
  const $xeIconPicker = this;
@@ -153,6 +163,21 @@ export default {
153
163
  }
154
164
  return getI18n('vxe.base.pleaseSelect');
155
165
  },
166
+ computePanelStyle() {
167
+ const $xeIconPicker = this;
168
+ const popupOpts = $xeIconPicker.computePopupOpts;
169
+ const { chunkSize, height, maxHeight } = popupOpts;
170
+ const stys = {
171
+ '--vxe-ui-icon-picker-item-width': `${100 / (chunkSize || 4)}%`
172
+ };
173
+ if (height) {
174
+ stys['--vxe-ui-icon-picker-panel-height'] = toCssUnit(height);
175
+ }
176
+ else if (maxHeight) {
177
+ stys['--vxe-ui-icon-picker-panel-max-height'] = toCssUnit(maxHeight);
178
+ }
179
+ return stys;
180
+ },
156
181
  computeIconList() {
157
182
  const $xeIconPicker = this;
158
183
  const props = $xeIconPicker;
@@ -174,6 +199,11 @@ export default {
174
199
  };
175
200
  });
176
201
  },
202
+ computeFilterOpts() {
203
+ const $xeIconPicker = this;
204
+ const props = $xeIconPicker;
205
+ return Object.assign({}, getConfig().iconPicker.filterConfig, props.filterConfig);
206
+ },
177
207
  computePopupOpts() {
178
208
  const $xeIconPicker = this;
179
209
  const props = $xeIconPicker;
@@ -274,6 +304,7 @@ export default {
274
304
  const panelElem = $xeIconPicker.$refs.refOptionPanel;
275
305
  const btnTransfer = $xeIconPicker.computeBtnTransfer;
276
306
  const popupOpts = $xeIconPicker.computePopupOpts;
307
+ const { width } = popupOpts;
277
308
  const handleStyle = () => {
278
309
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
279
310
  placement: popupOpts.placement || placement,
@@ -283,6 +314,12 @@ export default {
283
314
  const panelStyle = Object.assign(ppObj.style, {
284
315
  zIndex: panelIndex
285
316
  });
317
+ if (width) {
318
+ Object.assign(panelStyle, {
319
+ width: toCssUnit(width),
320
+ minWidth: undefined
321
+ });
322
+ }
286
323
  reactData.panelStyle = panelStyle;
287
324
  reactData.panelPlacement = ppObj.placement;
288
325
  };
@@ -329,6 +366,29 @@ export default {
329
366
  reactData.isAniVisible = false;
330
367
  }, 350);
331
368
  },
369
+ handleData() {
370
+ const $xeIconPicker = this;
371
+ const props = $xeIconPicker;
372
+ const reactData = $xeIconPicker.reactData;
373
+ const { value: modelValue } = props;
374
+ const { searchValue } = reactData;
375
+ const filterOpts = $xeIconPicker.computeFilterOpts;
376
+ const { filterMethod } = filterOpts;
377
+ const popupOpts = $xeIconPicker.computePopupOpts;
378
+ const { chunkSize } = popupOpts;
379
+ const iconList = $xeIconPicker.computeIconList;
380
+ let visibleList = iconList;
381
+ if (searchValue) {
382
+ const searchTxt = `${searchValue}`.toLowerCase();
383
+ visibleList = iconList.filter(item => {
384
+ if (filterMethod) {
385
+ return filterMethod({ option: item, value: modelValue, searchValue: searchTxt, $iconPicker: $xeIconPicker });
386
+ }
387
+ return (item.title && `${item.title}`.toLowerCase().indexOf(searchTxt) > -1) || (item.icon && `${item.icon}`.indexOf(searchTxt) > -1);
388
+ });
389
+ }
390
+ reactData.iconGroups = XEUtils.chunk(visibleList, chunkSize || 4);
391
+ },
332
392
  changeEvent(evnt, selectValue) {
333
393
  const $xeIconPicker = this;
334
394
  const props = $xeIconPicker;
@@ -491,6 +551,24 @@ export default {
491
551
  $xeIconPicker.changeEvent(evnt, value);
492
552
  $xeIconPicker.hideOptionPanel();
493
553
  },
554
+ modelSearchEvent(value) {
555
+ const $xeIconPicker = this;
556
+ const reactData = $xeIconPicker.reactData;
557
+ reactData.searchValue = value;
558
+ },
559
+ focusSearchEvent() {
560
+ const $xeIconPicker = this;
561
+ const reactData = $xeIconPicker.reactData;
562
+ reactData.isActivated = true;
563
+ },
564
+ handleSearchEvent() {
565
+ const $xeIconPicker = this;
566
+ $xeIconPicker.handleData();
567
+ },
568
+ triggerSearchEvent: XEUtils.debounce(function () {
569
+ const $xeIconPicker = this;
570
+ $xeIconPicker.handleSearchEvent();
571
+ }, 350, { trailing: true }),
494
572
  //
495
573
  // Render
496
574
  //
@@ -499,44 +577,47 @@ export default {
499
577
  const props = $xeIconPicker;
500
578
  const reactData = $xeIconPicker.reactData;
501
579
  const { showIconTitle } = props;
502
- const { selectIcon } = reactData;
503
- const iconGroupList = $xeIconPicker.computeIconGroupList;
504
- const isDisabled = $xeIconPicker.computeIsDisabled;
580
+ const { selectIcon, iconGroups } = reactData;
505
581
  return h('div', {
506
582
  class: 'vxe-ico-picker--list-wrapper'
507
- }, iconGroupList.map(list => {
583
+ }, iconGroups.map(list => {
508
584
  return h('div', {
509
585
  class: 'vxe-ico-picker--list'
510
586
  }, list.map(item => {
511
587
  const { iconRender } = item;
512
588
  const compConf = iconRender ? renderer.get(iconRender.name) : null;
513
- const oIconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
589
+ const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
514
590
  return h('div', {
515
591
  class: ['vxe-ico-picker--item', {
516
592
  'is--selected': selectIcon === item.icon
517
- }],
518
- on: {
519
- click(evnt) {
520
- if (!isDisabled) {
521
- $xeIconPicker.handleClickIconEvent(evnt, item);
522
- }
523
- }
524
- }
593
+ }]
525
594
  }, [
526
595
  h('div', {
527
- class: 'vxe-ico-picker--item-icon'
528
- }, oIconMethod && iconRender
529
- ? getSlotVNs(oIconMethod.call($xeIconPicker, h, iconRender, { $iconPicker: $xeIconPicker, option: item }))
530
- : [
531
- h('i', {
532
- class: item.icon || ''
533
- })
534
- ]),
535
- showIconTitle
536
- ? h('div', {
537
- class: 'vxe-ico-picker--item-title'
538
- }, `${item.title || ''}`)
539
- : renderEmptyElement($xeIconPicker)
596
+ class: 'vxe-ico-picker--item-inner',
597
+ on: {
598
+ click(evnt) {
599
+ const isDisabled = $xeIconPicker.computeIsDisabled;
600
+ if (!isDisabled) {
601
+ $xeIconPicker.handleClickIconEvent(evnt, item);
602
+ }
603
+ }
604
+ }
605
+ }, [
606
+ h('div', {
607
+ class: 'vxe-ico-picker--item-icon'
608
+ }, iconMethod && iconRender
609
+ ? getSlotVNs(iconMethod(h, iconRender, { $iconPicker: $xeIconPicker, option: item }))
610
+ : [
611
+ h('i', {
612
+ class: item.icon || ''
613
+ })
614
+ ]),
615
+ showIconTitle
616
+ ? h('div', {
617
+ class: 'vxe-ico-picker--item-title'
618
+ }, `${item.title || ''}`)
619
+ : renderEmptyElement($xeIconPicker)
620
+ ])
540
621
  ]);
541
622
  }));
542
623
  }));
@@ -570,13 +651,14 @@ export default {
570
651
  const $xeIconPicker = this;
571
652
  const props = $xeIconPicker;
572
653
  const reactData = $xeIconPicker.reactData;
573
- const { className, clearable } = props;
654
+ const { className, clearable, filterable } = props;
574
655
  const { initialized, isActivated, isAniVisible, visiblePanel, selectIcon } = reactData;
575
656
  const vSize = $xeIconPicker.computeSize;
576
657
  const isDisabled = $xeIconPicker.computeIsDisabled;
577
658
  const btnTransfer = $xeIconPicker.computeBtnTransfer;
578
659
  const formReadonly = $xeIconPicker.computeFormReadonly;
579
660
  const inpPlaceholder = $xeIconPicker.computeInpPlaceholder;
661
+ const panelStyle = $xeIconPicker.computePanelStyle;
580
662
  const popupOpts = $xeIconPicker.computePopupOpts;
581
663
  const ppClassName = popupOpts.className || props.popupClassName;
582
664
  if (formReadonly) {
@@ -655,8 +737,34 @@ export default {
655
737
  }, [
656
738
  initialized && (visiblePanel || isAniVisible)
657
739
  ? h('div', {
658
- class: 'vxe-ico-picker--panel-wrapper'
740
+ class: 'vxe-ico-picker--panel-wrapper',
741
+ style: panelStyle
659
742
  }, [
743
+ filterable
744
+ ? h('div', {
745
+ class: 'vxe-ico-picker--panel-search'
746
+ }, [
747
+ h(VxeInputComponent, {
748
+ ref: 'refInpSearch',
749
+ class: 'vxe-ico-picker-search--input',
750
+ props: {
751
+ value: reactData.searchValue,
752
+ type: 'text',
753
+ clearable: true,
754
+ disabled: false,
755
+ readonly: false,
756
+ placeholder: getI18n('vxe.iconPicker.search'),
757
+ prefixIcon: getIcon().INPUT_SEARCH
758
+ },
759
+ on: {
760
+ 'model-value': $xeIconPicker.modelSearchEvent,
761
+ focus: $xeIconPicker.focusSearchEvent,
762
+ change: $xeIconPicker.triggerSearchEvent,
763
+ search: $xeIconPicker.triggerSearchEvent
764
+ }
765
+ })
766
+ ])
767
+ : renderEmptyElement($xeIconPicker),
660
768
  $xeIconPicker.renderIconWrapper(h)
661
769
  ])
662
770
  : renderEmptyElement($xeIconPicker)
@@ -669,13 +777,19 @@ export default {
669
777
  const $xeIconPicker = this;
670
778
  const reactData = $xeIconPicker.reactData;
671
779
  reactData.selectIcon = `${val || ''}`;
780
+ },
781
+ computeIconList() {
782
+ const $xeIconPicker = this;
783
+ $xeIconPicker.handleData();
672
784
  }
673
785
  },
674
786
  created() {
675
787
  const $xeIconPicker = this;
676
788
  const props = $xeIconPicker;
677
789
  const reactData = $xeIconPicker.reactData;
790
+ $xeIconPicker.internalData = createInternalData();
678
791
  reactData.selectIcon = `${props.value || ''}`;
792
+ $xeIconPicker.handleData();
679
793
  globalEvents.on($xeIconPicker, 'mousewheel', $xeIconPicker.handleGlobalMousewheelEvent);
680
794
  globalEvents.on($xeIconPicker, 'mousedown', $xeIconPicker.handleGlobalMousedownEvent);
681
795
  globalEvents.on($xeIconPicker, 'keydown', $xeIconPicker.handleGlobalKeydownEvent);
@@ -683,6 +797,8 @@ export default {
683
797
  },
684
798
  beforeDestroy() {
685
799
  const $xeIconPicker = this;
800
+ const reactData = $xeIconPicker.reactData;
801
+ const internalData = $xeIconPicker.internalData;
686
802
  const panelElem = $xeIconPicker.$refs.refOptionPanel;
687
803
  if (panelElem && panelElem.parentNode) {
688
804
  panelElem.parentNode.removeChild(panelElem);
@@ -691,6 +807,8 @@ export default {
691
807
  globalEvents.off($xeIconPicker, 'mousedown');
692
808
  globalEvents.off($xeIconPicker, 'keydown');
693
809
  globalEvents.off($xeIconPicker, 'blur');
810
+ XEUtils.assign(reactData, createReactData());
811
+ XEUtils.assign(internalData, createInternalData());
694
812
  },
695
813
  render(h) {
696
814
  return this.renderVN(h);
@@ -7,6 +7,11 @@
7
7
  border-radius: var(--vxe-ui-base-border-radius);
8
8
  background-color: var(--vxe-ui-layout-background-color);
9
9
  }
10
+ .vxe-ico-picker.is--disabled {
11
+ background-color: var(--vxe-ui-input-disabled-background-color);
12
+ color: var(--vxe-ui-font-disabled-color);
13
+ cursor: no-drop;
14
+ }
10
15
  .vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon {
11
16
  display: block;
12
17
  }
@@ -64,6 +69,15 @@
64
69
  transition: transform 0.2s ease-in-out;
65
70
  }
66
71
 
72
+ .vxe-ico-picker--panel-search {
73
+ display: block;
74
+ flex-shrink: 0;
75
+ padding: var(--vxe-ui-layout-padding-default);
76
+ }
77
+ .vxe-ico-picker--panel-search .vxe-ico-picker-search--input {
78
+ width: 100%;
79
+ }
80
+
67
81
  .vxe-ico-picker--readonly {
68
82
  color: var(--vxe-ui-font-color);
69
83
  display: inline-flex;
@@ -83,10 +97,17 @@
83
97
  color: var(--vxe-ui-font-primary-color);
84
98
  }
85
99
 
100
+ .vxe-ico-picker--all-list {
101
+ display: flex;
102
+ flex-direction: row;
103
+ flex-wrap: wrap;
104
+ }
105
+
86
106
  .vxe-ico-picker--list-wrapper {
87
107
  overflow-x: hidden;
88
108
  overflow-y: auto;
89
- max-height: 22.3em;
109
+ height: var(--vxe-ui-icon-picker-panel-height);
110
+ max-height: var(--vxe-ui-icon-picker-panel-max-height, var(--vxe-ui-icon-picker-panel-height, 22.3em));
90
111
  padding: var(--vxe-ui-layout-padding-qtr);
91
112
  }
92
113
 
@@ -98,17 +119,20 @@
98
119
  .vxe-ico-picker--item {
99
120
  display: flex;
100
121
  flex-direction: column;
101
- width: 4.8em;
122
+ min-width: 4.8em;
123
+ width: var(--vxe-ui-icon-picker-item-width, 4.8em);
124
+ padding: var(--vxe-ui-layout-padding-half);
125
+ }
126
+ .vxe-ico-picker--item .vxe-ico-picker--item-inner {
102
127
  padding: 0.2em;
103
128
  border: 1px solid var(--vxe-ui-input-border-color);
104
129
  border-radius: var(--vxe-ui-base-border-radius);
105
- margin: var(--vxe-ui-layout-padding-half);
106
130
  cursor: pointer;
107
131
  }
108
- .vxe-ico-picker--item:hover {
132
+ .vxe-ico-picker--item .vxe-ico-picker--item-inner:hover {
109
133
  background-color: var(--vxe-ui-base-hover-background-color);
110
134
  }
111
- .vxe-ico-picker--item.is--selected {
135
+ .vxe-ico-picker--item.is--selected .vxe-ico-picker--item-inner {
112
136
  color: var(--vxe-ui-font-primary-color);
113
137
  border-color: var(--vxe-ui-font-primary-color);
114
138
  }
@@ -1 +1 @@
1
- .vxe-ico-picker{position:relative;display:inline-block;color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--list-wrapper{overflow-x:hidden;overflow-y:auto;max-height:22.3em;padding:var(--vxe-ui-layout-padding-qtr)}.vxe-ico-picker--list{display:flex;flex-direction:row}.vxe-ico-picker--item{display:flex;flex-direction:column;width:4.8em;padding:.2em;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);margin:var(--vxe-ui-layout-padding-half);cursor:pointer}.vxe-ico-picker--item:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-ico-picker--item.is--selected{color:var(--vxe-ui-font-primary-color);border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--item-icon{flex-grow:1;display:flex;flex-direction:row;align-items:center;justify-content:center;height:1.5em;font-size:1.4em}.vxe-ico-picker--item-icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--item-title{padding:0 .2em;line-height:1.3em;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.vxe-ico-picker--item-icon,.vxe-ico-picker--item-title{width:100%}.vxe-ico-picker--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-ico-picker--panel:not(.is--transfer){min-width:100%}.vxe-ico-picker--panel.is--transfer{position:fixed}.vxe-ico-picker--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-ico-picker--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-ico-picker--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-ico-picker{height:var(--vxe-ui-input-height-default);line-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker.size--medium{height:var(--vxe-ui-input-height-medium);line-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker.size--small{height:var(--vxe-ui-input-height-small);line-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker.size--mini{height:var(--vxe-ui-input-height-mini);line-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker,.vxe-ico-picker--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-ico-picker{position:relative;display:inline-block;color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color);color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-ico-picker--panel-search .vxe-ico-picker-search--input{width:100%}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--all-list{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-ico-picker--list-wrapper{overflow-x:hidden;overflow-y:auto;height:var(--vxe-ui-icon-picker-panel-height);max-height:var(--vxe-ui-icon-picker-panel-max-height,var(--vxe-ui-icon-picker-panel-height,22.3em));padding:var(--vxe-ui-layout-padding-qtr)}.vxe-ico-picker--list{display:flex;flex-direction:row}.vxe-ico-picker--item{display:flex;flex-direction:column;min-width:4.8em;width:var(--vxe-ui-icon-picker-item-width,4.8em);padding:var(--vxe-ui-layout-padding-half)}.vxe-ico-picker--item .vxe-ico-picker--item-inner{padding:.2em;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);cursor:pointer}.vxe-ico-picker--item .vxe-ico-picker--item-inner:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-ico-picker--item.is--selected .vxe-ico-picker--item-inner{color:var(--vxe-ui-font-primary-color);border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--item-icon{flex-grow:1;display:flex;flex-direction:row;align-items:center;justify-content:center;height:1.5em;font-size:1.4em}.vxe-ico-picker--item-icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--item-title{padding:0 .2em;line-height:1.3em;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.vxe-ico-picker--item-icon,.vxe-ico-picker--item-title{width:100%}.vxe-ico-picker--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-ico-picker--panel:not(.is--transfer){min-width:100%}.vxe-ico-picker--panel.is--transfer{position:fixed}.vxe-ico-picker--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-ico-picker--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-ico-picker--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-ico-picker{height:var(--vxe-ui-input-height-default);line-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker.size--medium{height:var(--vxe-ui-input-height-medium);line-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker.size--small{height:var(--vxe-ui-input-height-small);line-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker.size--mini{height:var(--vxe-ui-input-height-mini);line-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker,.vxe-ico-picker--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{font-size:var(--vxe-ui-font-size-mini)}
@@ -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
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Jobbra fagy',
288
288
  cancelFixed: 'Kiolvaszt'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} Évek'
292
295
  },
@@ -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: 'Bekukan benar',
288
288
  cancelFixed: 'Unfreeze'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} tahun'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Freeze Right',
288
288
  cancelFixed: 'Scongelare'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} anni'
292
295
  },
@@ -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: '오른쪽에서 얼립니다',
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: 'Membekukan di sebelah kanan',
288
288
  cancelFixed: 'Lajur yang tidak jelas'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} tahun'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Frys til høyre',
288
288
  cancelFixed: 'Frigjøre'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} år'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Congele à direita',
288
288
  cancelFixed: 'Descongelar'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} anos'
292
295
  },
@@ -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: 'แช่แข็งขวา',
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: 'ئوڭ ياندا توڭلىتىش',
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: 'Заморожуйте право',
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: "O'ng tomonda muzlatib qo'ying",
288
288
  cancelFixed: "Urug'lar ustunini"
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} yillar'
292
295
  },
@@ -287,6 +287,9 @@ export default {
287
287
  fixedRight: 'Đóng băng bên phải',
288
288
  cancelFixed: 'Mở ra cột'
289
289
  },
290
+ iconPicker: {
291
+ search: '搜索'
292
+ },
290
293
  datePicker: {
291
294
  yearTitle: '{0} năm'
292
295
  },
@@ -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
  },