vxe-pc-ui 3.0.0 → 3.0.1

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 (331) hide show
  1. package/es/button/src/button.js +3 -0
  2. package/es/carousel/index.js +12 -0
  3. package/es/carousel/src/carousel-item.js +100 -0
  4. package/es/carousel/src/carousel.js +418 -0
  5. package/es/carousel/src/util.js +17 -0
  6. package/es/carousel/style.css +185 -0
  7. package/es/carousel/style.min.css +1 -0
  8. package/es/carousel-item/index.js +12 -0
  9. package/es/carousel-item/style.css +0 -0
  10. package/es/carousel-item/style.min.css +0 -0
  11. package/es/checkbox/index.js +12 -0
  12. package/es/checkbox/src/checkbox.js +159 -0
  13. package/es/checkbox/src/group.js +154 -0
  14. package/es/checkbox/style.css +117 -0
  15. package/es/checkbox/style.min.css +1 -0
  16. package/es/checkbox-group/index.js +12 -0
  17. package/es/checkbox-group/style.css +0 -0
  18. package/es/checkbox-group/style.min.css +0 -0
  19. package/es/components.js +39 -39
  20. package/es/date-picker/src/date-picker.js +3 -0
  21. package/es/icon/style.css +1 -1
  22. package/es/icon-picker/index.js +12 -0
  23. package/es/icon-picker/src/icon-picker.js +668 -0
  24. package/es/icon-picker/style.css +207 -0
  25. package/es/icon-picker/style.min.css +1 -0
  26. package/es/input/index.js +12 -0
  27. package/es/input/src/input.js +2892 -0
  28. package/es/input/style.css +941 -0
  29. package/es/input/style.min.css +1 -0
  30. package/es/layout-footer/src/layout-footer.js +2 -1
  31. package/es/layout-header/src/layout-header.js +2 -1
  32. package/es/optgroup/index.js +12 -0
  33. package/es/optgroup/style.css +0 -0
  34. package/es/optgroup/style.min.css +0 -0
  35. package/es/option/index.js +12 -0
  36. package/es/option/style.css +0 -0
  37. package/es/option/style.min.css +0 -0
  38. package/es/pager/index.js +12 -0
  39. package/es/pager/src/pager.js +687 -0
  40. package/es/password-input/index.js +12 -0
  41. package/es/password-input/src/password-input.js +388 -0
  42. package/es/password-input/style.css +604 -0
  43. package/es/password-input/style.min.css +1 -0
  44. package/es/pulldown/src/pulldown.js +5 -1
  45. package/es/select/index.js +12 -0
  46. package/es/select/src/optgroup.js +90 -0
  47. package/es/select/src/option-info.js +16 -0
  48. package/es/select/src/option.js +86 -0
  49. package/es/select/src/select.js +1269 -0
  50. package/es/select/src/util.js +35 -0
  51. package/es/select/style.css +207 -0
  52. package/es/select/style.min.css +1 -0
  53. package/es/style.css +1 -1
  54. package/es/style.min.css +1 -1
  55. package/es/tab-pane/index.js +12 -0
  56. package/es/tab-pane/style.css +0 -0
  57. package/es/tab-pane/style.min.css +0 -0
  58. package/es/tabs/index.js +12 -0
  59. package/es/tabs/src/tab-pane.js +119 -0
  60. package/es/tabs/src/tabs.js +593 -0
  61. package/es/tabs/src/util.js +17 -0
  62. package/es/tabs/style.css +342 -0
  63. package/es/tabs/style.min.css +1 -0
  64. package/es/ui/index.js +1 -1
  65. package/es/ui/src/log.js +1 -1
  66. package/es/vxe-carousel/index.js +3 -0
  67. package/es/vxe-carousel/style.css +185 -0
  68. package/es/vxe-carousel/style.min.css +1 -0
  69. package/es/vxe-carousel-item/index.js +3 -0
  70. package/es/vxe-carousel-item/style.css +0 -0
  71. package/es/vxe-carousel-item/style.min.css +0 -0
  72. package/es/vxe-checkbox/index.js +3 -0
  73. package/es/vxe-checkbox/style.css +117 -0
  74. package/es/vxe-checkbox/style.min.css +1 -0
  75. package/es/vxe-checkbox-group/index.js +3 -0
  76. package/es/vxe-checkbox-group/style.css +0 -0
  77. package/es/vxe-checkbox-group/style.min.css +0 -0
  78. package/es/vxe-icon-picker/index.js +3 -0
  79. package/es/vxe-icon-picker/style.css +207 -0
  80. package/es/vxe-icon-picker/style.min.css +1 -0
  81. package/es/vxe-input/index.js +3 -0
  82. package/es/vxe-input/style.css +941 -0
  83. package/es/vxe-input/style.min.css +1 -0
  84. package/es/vxe-optgroup/index.js +3 -0
  85. package/es/vxe-optgroup/style.css +0 -0
  86. package/es/vxe-optgroup/style.min.css +0 -0
  87. package/es/vxe-option/index.js +3 -0
  88. package/es/vxe-option/style.css +0 -0
  89. package/es/vxe-option/style.min.css +0 -0
  90. package/es/vxe-password-input/index.js +3 -0
  91. package/es/vxe-password-input/style.css +604 -0
  92. package/es/vxe-password-input/style.min.css +1 -0
  93. package/es/vxe-select/index.js +3 -0
  94. package/es/vxe-select/style.css +207 -0
  95. package/es/vxe-select/style.min.css +1 -0
  96. package/es/vxe-tab-pane/index.js +3 -0
  97. package/es/vxe-tab-pane/style.css +0 -0
  98. package/es/vxe-tab-pane/style.min.css +0 -0
  99. package/es/vxe-tabs/index.js +3 -0
  100. package/es/vxe-tabs/style.css +342 -0
  101. package/es/vxe-tabs/style.min.css +1 -0
  102. package/lib/button/src/button.js +3 -0
  103. package/lib/button/src/button.min.js +1 -1
  104. package/lib/carousel/index.js +19 -0
  105. package/lib/carousel/index.min.js +1 -0
  106. package/lib/carousel/src/carousel-item.js +107 -0
  107. package/lib/carousel/src/carousel-item.min.js +1 -0
  108. package/lib/carousel/src/carousel.js +437 -0
  109. package/lib/carousel/src/carousel.min.js +1 -0
  110. package/lib/carousel/src/util.js +27 -0
  111. package/lib/carousel/src/util.min.js +1 -0
  112. package/lib/carousel/style/index.js +1 -0
  113. package/lib/carousel/style/style.css +185 -0
  114. package/lib/carousel/style/style.min.css +1 -0
  115. package/lib/carousel-item/index.js +19 -0
  116. package/lib/carousel-item/index.min.js +1 -0
  117. package/lib/carousel-item/style/index.js +1 -0
  118. package/lib/carousel-item/style/style.css +0 -0
  119. package/lib/carousel-item/style/style.min.css +0 -0
  120. package/lib/checkbox/index.js +19 -0
  121. package/lib/checkbox/index.min.js +1 -0
  122. package/lib/checkbox/src/checkbox.js +169 -0
  123. package/lib/checkbox/src/checkbox.min.js +1 -0
  124. package/lib/checkbox/src/group.js +164 -0
  125. package/lib/checkbox/src/group.min.js +1 -0
  126. package/lib/checkbox/style/index.js +1 -0
  127. package/lib/checkbox/style/style.css +117 -0
  128. package/lib/checkbox/style/style.min.css +1 -0
  129. package/lib/checkbox-group/index.js +19 -0
  130. package/lib/checkbox-group/index.min.js +1 -0
  131. package/lib/checkbox-group/style/index.js +1 -0
  132. package/lib/checkbox-group/style/style.css +0 -0
  133. package/lib/checkbox-group/style/style.min.css +0 -0
  134. package/lib/components.js +159 -60
  135. package/lib/components.min.js +1 -1
  136. package/lib/date-picker/src/date-picker.js +3 -0
  137. package/lib/date-picker/src/date-picker.min.js +1 -1
  138. package/lib/icon/style/style.css +1 -1
  139. package/lib/icon/style/style.min.css +1 -1
  140. package/lib/icon-picker/index.js +19 -0
  141. package/lib/icon-picker/index.min.js +1 -0
  142. package/lib/icon-picker/src/icon-picker.js +646 -0
  143. package/lib/icon-picker/src/icon-picker.min.js +1 -0
  144. package/lib/icon-picker/style/index.js +1 -0
  145. package/lib/icon-picker/style/style.css +207 -0
  146. package/lib/icon-picker/style/style.min.css +1 -0
  147. package/lib/index.umd.js +15870 -7738
  148. package/lib/index.umd.min.js +1 -1
  149. package/lib/input/index.js +19 -0
  150. package/lib/input/index.min.js +1 -0
  151. package/lib/input/src/input.js +2897 -0
  152. package/lib/input/src/input.min.js +1 -0
  153. package/lib/input/style/index.js +1 -0
  154. package/lib/input/style/style.css +941 -0
  155. package/lib/input/style/style.min.css +1 -0
  156. package/lib/layout-footer/src/layout-footer.js +2 -1
  157. package/lib/layout-header/src/layout-header.js +2 -1
  158. package/lib/optgroup/index.js +19 -0
  159. package/lib/optgroup/index.min.js +1 -0
  160. package/lib/optgroup/style/index.js +1 -0
  161. package/lib/optgroup/style/style.css +0 -0
  162. package/lib/optgroup/style/style.min.css +0 -0
  163. package/lib/option/index.js +19 -0
  164. package/lib/option/index.min.js +1 -0
  165. package/lib/option/style/index.js +1 -0
  166. package/lib/option/style/style.css +0 -0
  167. package/lib/option/style/style.min.css +0 -0
  168. package/lib/pager/index.js +19 -0
  169. package/lib/pager/index.min.js +1 -0
  170. package/lib/pager/src/pager.js +714 -0
  171. package/lib/pager/src/pager.min.js +1 -0
  172. package/lib/password-input/index.js +19 -0
  173. package/lib/password-input/index.min.js +1 -0
  174. package/lib/password-input/src/password-input.js +398 -0
  175. package/lib/password-input/src/password-input.min.js +1 -0
  176. package/lib/password-input/style/index.js +1 -0
  177. package/lib/password-input/style/style.css +604 -0
  178. package/lib/password-input/style/style.min.css +1 -0
  179. package/lib/pulldown/src/pulldown.js +5 -1
  180. package/lib/pulldown/src/pulldown.min.js +1 -1
  181. package/lib/select/index.js +19 -0
  182. package/lib/select/index.min.js +1 -0
  183. package/lib/select/src/optgroup.js +97 -0
  184. package/lib/select/src/optgroup.min.js +1 -0
  185. package/lib/select/src/option-info.js +33 -0
  186. package/lib/select/src/option-info.min.js +1 -0
  187. package/lib/select/src/option.js +93 -0
  188. package/lib/select/src/option.min.js +1 -0
  189. package/lib/select/src/select.js +1315 -0
  190. package/lib/select/src/select.min.js +1 -0
  191. package/lib/select/src/util.js +50 -0
  192. package/lib/select/src/util.min.js +1 -0
  193. package/lib/select/style/index.js +1 -0
  194. package/lib/select/style/style.css +207 -0
  195. package/lib/select/style/style.min.css +1 -0
  196. package/lib/style.css +1 -1
  197. package/lib/style.min.css +1 -1
  198. package/lib/tab-pane/index.js +19 -0
  199. package/lib/tab-pane/index.min.js +1 -0
  200. package/lib/tab-pane/style/index.js +1 -0
  201. package/lib/tab-pane/style/style.css +0 -0
  202. package/lib/tab-pane/style/style.min.css +0 -0
  203. package/lib/tabs/index.js +19 -0
  204. package/lib/tabs/index.min.js +1 -0
  205. package/lib/tabs/src/tab-pane.js +128 -0
  206. package/lib/tabs/src/tab-pane.min.js +1 -0
  207. package/lib/tabs/src/tabs.js +630 -0
  208. package/lib/tabs/src/tabs.min.js +1 -0
  209. package/lib/tabs/src/util.js +29 -0
  210. package/lib/tabs/src/util.min.js +1 -0
  211. package/lib/tabs/style/index.js +1 -0
  212. package/lib/tabs/style/style.css +342 -0
  213. package/lib/tabs/style/style.min.css +1 -0
  214. package/lib/ui/index.js +1 -1
  215. package/lib/ui/index.min.js +1 -1
  216. package/lib/ui/src/log.js +1 -1
  217. package/lib/ui/src/log.min.js +1 -1
  218. package/lib/vxe-carousel/index.js +23 -0
  219. package/lib/vxe-carousel/index.min.js +1 -0
  220. package/lib/vxe-carousel/style/index.js +1 -0
  221. package/lib/vxe-carousel/style/style.css +185 -0
  222. package/lib/vxe-carousel/style/style.min.css +1 -0
  223. package/lib/vxe-carousel-item/index.js +23 -0
  224. package/lib/vxe-carousel-item/index.min.js +1 -0
  225. package/lib/vxe-carousel-item/style/index.js +1 -0
  226. package/lib/vxe-carousel-item/style/style.css +0 -0
  227. package/lib/vxe-carousel-item/style/style.min.css +0 -0
  228. package/lib/vxe-checkbox/index.js +23 -0
  229. package/lib/vxe-checkbox/index.min.js +1 -0
  230. package/lib/vxe-checkbox/style/index.js +1 -0
  231. package/lib/vxe-checkbox/style/style.css +117 -0
  232. package/lib/vxe-checkbox/style/style.min.css +1 -0
  233. package/lib/vxe-checkbox-group/index.js +23 -0
  234. package/lib/vxe-checkbox-group/index.min.js +1 -0
  235. package/lib/vxe-checkbox-group/style/index.js +1 -0
  236. package/lib/vxe-checkbox-group/style/style.css +0 -0
  237. package/lib/vxe-checkbox-group/style/style.min.css +0 -0
  238. package/lib/vxe-icon-picker/index.js +23 -0
  239. package/lib/vxe-icon-picker/index.min.js +1 -0
  240. package/lib/vxe-icon-picker/style/index.js +1 -0
  241. package/lib/vxe-icon-picker/style/style.css +207 -0
  242. package/lib/vxe-icon-picker/style/style.min.css +1 -0
  243. package/lib/vxe-input/index.js +23 -0
  244. package/lib/vxe-input/index.min.js +1 -0
  245. package/lib/vxe-input/style/index.js +1 -0
  246. package/lib/vxe-input/style/style.css +941 -0
  247. package/lib/vxe-input/style/style.min.css +1 -0
  248. package/lib/vxe-optgroup/index.js +23 -0
  249. package/lib/vxe-optgroup/index.min.js +1 -0
  250. package/lib/vxe-optgroup/style/index.js +1 -0
  251. package/lib/vxe-optgroup/style/style.css +0 -0
  252. package/lib/vxe-optgroup/style/style.min.css +0 -0
  253. package/lib/vxe-option/index.js +23 -0
  254. package/lib/vxe-option/index.min.js +1 -0
  255. package/lib/vxe-option/style/index.js +1 -0
  256. package/lib/vxe-option/style/style.css +0 -0
  257. package/lib/vxe-option/style/style.min.css +0 -0
  258. package/lib/vxe-password-input/index.js +23 -0
  259. package/lib/vxe-password-input/index.min.js +1 -0
  260. package/lib/vxe-password-input/style/index.js +1 -0
  261. package/lib/vxe-password-input/style/style.css +604 -0
  262. package/lib/vxe-password-input/style/style.min.css +1 -0
  263. package/lib/vxe-select/index.js +23 -0
  264. package/lib/vxe-select/index.min.js +1 -0
  265. package/lib/vxe-select/style/index.js +1 -0
  266. package/lib/vxe-select/style/style.css +207 -0
  267. package/lib/vxe-select/style/style.min.css +1 -0
  268. package/lib/vxe-tab-pane/index.js +23 -0
  269. package/lib/vxe-tab-pane/index.min.js +1 -0
  270. package/lib/vxe-tab-pane/style/index.js +1 -0
  271. package/lib/vxe-tab-pane/style/style.css +0 -0
  272. package/lib/vxe-tab-pane/style/style.min.css +0 -0
  273. package/lib/vxe-tabs/index.js +23 -0
  274. package/lib/vxe-tabs/index.min.js +1 -0
  275. package/lib/vxe-tabs/style/index.js +1 -0
  276. package/lib/vxe-tabs/style/style.css +342 -0
  277. package/lib/vxe-tabs/style/style.min.css +1 -0
  278. package/package.json +1 -1
  279. package/packages/button/src/button.ts +3 -0
  280. package/packages/carousel/index.ts +16 -0
  281. package/packages/carousel/src/carousel-item.ts +114 -0
  282. package/packages/carousel/src/carousel.ts +449 -0
  283. package/packages/carousel/src/util.ts +21 -0
  284. package/packages/carousel-item/index.ts +16 -0
  285. package/packages/checkbox/index.ts +16 -0
  286. package/packages/checkbox/src/checkbox.ts +176 -0
  287. package/packages/checkbox/src/group.ts +178 -0
  288. package/packages/checkbox-group/index.ts +16 -0
  289. package/packages/components.ts +39 -39
  290. package/packages/date-picker/src/date-picker.ts +3 -0
  291. package/packages/icon-picker/index.ts +16 -0
  292. package/packages/icon-picker/src/icon-picker.ts +711 -0
  293. package/packages/input/index.ts +16 -0
  294. package/packages/input/src/input.ts +2995 -0
  295. package/packages/layout-footer/src/layout-footer.ts +4 -3
  296. package/packages/layout-header/src/layout-header.ts +2 -1
  297. package/packages/optgroup/index.ts +16 -0
  298. package/packages/option/index.ts +16 -0
  299. package/packages/pager/index.ts +16 -0
  300. package/packages/pager/src/pager.ts +743 -0
  301. package/packages/password-input/index.ts +16 -0
  302. package/packages/password-input/src/password-input.ts +427 -0
  303. package/packages/pulldown/src/pulldown.ts +5 -1
  304. package/packages/select/index.ts +16 -0
  305. package/packages/select/src/optgroup.ts +107 -0
  306. package/packages/select/src/option-info.ts +20 -0
  307. package/packages/select/src/option.ts +103 -0
  308. package/packages/select/src/select.ts +1325 -0
  309. package/packages/select/src/util.ts +46 -0
  310. package/packages/tab-pane/index.ts +16 -0
  311. package/packages/tabs/index.ts +16 -0
  312. package/packages/tabs/src/tab-pane.ts +136 -0
  313. package/packages/tabs/src/tabs.ts +630 -0
  314. package/packages/tabs/src/util.ts +21 -0
  315. package/types/components/carousel.d.ts +5 -0
  316. package/types/components/icon-picker.d.ts +4 -0
  317. package/types/components/input.d.ts +9 -1
  318. package/types/components/optgroup.d.ts +10 -4
  319. package/types/components/tabs.d.ts +4 -0
  320. /package/es/icon/style/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  321. /package/es/icon/style/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  322. /package/es/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  323. /package/es/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  324. /package/es/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  325. /package/es/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  326. /package/lib/icon/style/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  327. /package/lib/icon/style/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  328. /package/lib/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  329. /package/lib/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  330. /package/lib/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  331. /package/lib/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
@@ -0,0 +1,646 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _comp = require("../../ui/src/comp");
8
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+ var _ui = require("../../ui");
10
+ var _dom = require("../../ui/src/dom");
11
+ var _utils = require("../../ui/src/utils");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ var _default2 = exports.default = (0, _comp.defineVxeComponent)({
18
+ name: 'VxeIconPicker',
19
+ mixins: [_ui.globalMixins.sizeMixin],
20
+ model: {
21
+ prop: 'value',
22
+ event: 'modelValue'
23
+ },
24
+ props: {
25
+ value: String,
26
+ placeholder: String,
27
+ clearable: Boolean,
28
+ size: {
29
+ type: String,
30
+ default: function _default() {
31
+ return (0, _ui.getConfig)().iconPicker.size || (0, _ui.getConfig)().size;
32
+ }
33
+ },
34
+ className: [String, Function],
35
+ popupClassName: [String, Function],
36
+ showIconTitle: {
37
+ type: Boolean,
38
+ default: function _default() {
39
+ return (0, _ui.getConfig)().iconPicker.showIconTitle;
40
+ }
41
+ },
42
+ readonly: {
43
+ type: Boolean,
44
+ default: null
45
+ },
46
+ disabled: {
47
+ type: Boolean,
48
+ default: null
49
+ },
50
+ icons: Array,
51
+ placement: String,
52
+ transfer: {
53
+ type: Boolean,
54
+ default: null
55
+ }
56
+ },
57
+ inject: {
58
+ $xeModal: {
59
+ default: null
60
+ },
61
+ $xeDrawer: {
62
+ default: null
63
+ },
64
+ $xeTable: {
65
+ default: null
66
+ },
67
+ $xeForm: {
68
+ default: null
69
+ },
70
+ formItemInfo: {
71
+ from: 'xeFormItemInfo',
72
+ default: null
73
+ }
74
+ },
75
+ provide: function provide() {
76
+ var $xeIconPicker = this;
77
+ return {
78
+ $xeIconPicker: $xeIconPicker
79
+ };
80
+ },
81
+ data: function data() {
82
+ var reactData = {
83
+ initialized: false,
84
+ selectIcon: '',
85
+ panelIndex: 0,
86
+ panelStyle: {},
87
+ panelPlacement: null,
88
+ visiblePanel: false,
89
+ isAniVisible: false,
90
+ isActivated: false
91
+ };
92
+ var internalData = {
93
+ hpTimeout: undefined
94
+ };
95
+ return {
96
+ xID: _xeUtils.default.uniqueId(),
97
+ reactData: reactData,
98
+ internalData: internalData
99
+ };
100
+ },
101
+ computed: Object.assign(Object.assign({}, {}), {
102
+ computeFormReadonly: function computeFormReadonly() {
103
+ var $xeIconPicker = this;
104
+ var props = $xeIconPicker;
105
+ var $xeForm = $xeIconPicker.$xeForm;
106
+ var readonly = props.readonly;
107
+ if (readonly === null) {
108
+ if ($xeForm) {
109
+ return $xeForm.readonly;
110
+ }
111
+ return false;
112
+ }
113
+ return readonly;
114
+ },
115
+ computeIsDisabled: function computeIsDisabled() {
116
+ var $xeIconPicker = this;
117
+ var props = $xeIconPicker;
118
+ var $xeForm = $xeIconPicker.$xeForm;
119
+ var disabled = props.disabled;
120
+ if (disabled === null) {
121
+ if ($xeForm) {
122
+ return $xeForm.disabled;
123
+ }
124
+ return false;
125
+ }
126
+ return disabled;
127
+ },
128
+ computeBtnTransfer: function computeBtnTransfer() {
129
+ var $xeIconPicker = this;
130
+ var props = $xeIconPicker;
131
+ var $xeTable = $xeIconPicker.$xeTable;
132
+ var $xeModal = $xeIconPicker.$xeModal;
133
+ var $xeDrawer = $xeIconPicker.$xeDrawer;
134
+ var $xeForm = $xeIconPicker.$xeForm;
135
+ var transfer = props.transfer;
136
+ if (transfer === null) {
137
+ var globalTransfer = (0, _ui.getConfig)().iconPicker.transfer;
138
+ if (_xeUtils.default.isBoolean(globalTransfer)) {
139
+ return globalTransfer;
140
+ }
141
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
142
+ return true;
143
+ }
144
+ }
145
+ return transfer;
146
+ },
147
+ computeInpPlaceholder: function computeInpPlaceholder() {
148
+ var $xeIconPicker = this;
149
+ var props = $xeIconPicker;
150
+ var placeholder = props.placeholder;
151
+ if (placeholder) {
152
+ return (0, _utils.getFuncText)(placeholder);
153
+ }
154
+ var globalPlaceholder = (0, _ui.getConfig)().select.placeholder;
155
+ if (globalPlaceholder) {
156
+ return (0, _utils.getFuncText)(globalPlaceholder);
157
+ }
158
+ return (0, _ui.getI18n)('vxe.base.pleaseSelect');
159
+ },
160
+ computeIconList: function computeIconList() {
161
+ var $xeIconPicker = this;
162
+ var props = $xeIconPicker;
163
+ var icons = props.icons;
164
+ if (!icons || !icons.length) {
165
+ icons = (0, _ui.getConfig)().iconPicker.icons || [];
166
+ }
167
+ return icons.map(function (name) {
168
+ return {
169
+ title: name,
170
+ icon: "vxe-icon-".concat(name)
171
+ };
172
+ });
173
+ },
174
+ computeIconGroupList: function computeIconGroupList() {
175
+ var $xeIconPicker = this;
176
+ var iconList = $xeIconPicker.computeIconList;
177
+ return _xeUtils.default.chunk(iconList, 4);
178
+ }
179
+ }),
180
+ methods: {
181
+ //
182
+ // Method
183
+ //
184
+ dispatchEvent: function dispatchEvent(type, params, evnt) {
185
+ var $xeIconPicker = this;
186
+ $xeIconPicker.$emit(type, (0, _ui.createEvent)(evnt, {
187
+ $iconPicker: $xeIconPicker
188
+ }, params));
189
+ },
190
+ isPanelVisible: function isPanelVisible() {
191
+ var $xeIconPicker = this;
192
+ var reactData = $xeIconPicker.reactData;
193
+ return reactData.visiblePanel;
194
+ },
195
+ togglePanel: function togglePanel() {
196
+ var $xeIconPicker = this;
197
+ var reactData = $xeIconPicker.reactData;
198
+ if (reactData.visiblePanel) {
199
+ $xeIconPicker.hideOptionPanel();
200
+ } else {
201
+ $xeIconPicker.showOptionPanel();
202
+ }
203
+ return $xeIconPicker.$nextTick();
204
+ },
205
+ hidePanel: function hidePanel() {
206
+ var $xeIconPicker = this;
207
+ var reactData = $xeIconPicker.reactData;
208
+ if (reactData.visiblePanel) {
209
+ $xeIconPicker.hideOptionPanel();
210
+ }
211
+ return $xeIconPicker.$nextTick();
212
+ },
213
+ showPanel: function showPanel() {
214
+ var $xeIconPicker = this;
215
+ var reactData = $xeIconPicker.reactData;
216
+ if (!reactData.visiblePanel) {
217
+ $xeIconPicker.showOptionPanel();
218
+ }
219
+ return $xeIconPicker.$nextTick();
220
+ },
221
+ focus: function focus() {
222
+ var $xeIconPicker = this;
223
+ var reactData = $xeIconPicker.reactData;
224
+ var $input = $xeIconPicker.$refs.refInput;
225
+ reactData.isActivated = true;
226
+ $input.blur();
227
+ return $xeIconPicker.$nextTick();
228
+ },
229
+ blur: function blur() {
230
+ var $xeIconPicker = this;
231
+ var reactData = $xeIconPicker.reactData;
232
+ var $input = $xeIconPicker.$refs.refInput;
233
+ $input.blur();
234
+ reactData.isActivated = false;
235
+ return $xeIconPicker.$nextTick();
236
+ },
237
+ updateZindex: function updateZindex() {
238
+ var $xeIconPicker = this;
239
+ var reactData = $xeIconPicker.reactData;
240
+ if (reactData.panelIndex < (0, _utils.getLastZIndex)()) {
241
+ reactData.panelIndex = (0, _utils.nextZIndex)();
242
+ }
243
+ },
244
+ updatePlacement: function updatePlacement() {
245
+ var $xeIconPicker = this;
246
+ var props = $xeIconPicker;
247
+ var reactData = $xeIconPicker.reactData;
248
+ return $xeIconPicker.$nextTick().then(function () {
249
+ var placement = props.placement;
250
+ var panelIndex = reactData.panelIndex;
251
+ var el = $xeIconPicker.$refs.refElem;
252
+ var panelElem = $xeIconPicker.$refs.refOptionPanel;
253
+ var btnTransfer = $xeIconPicker.computeBtnTransfer;
254
+ if (panelElem && el) {
255
+ var targetHeight = el.offsetHeight;
256
+ var targetWidth = el.offsetWidth;
257
+ var panelHeight = panelElem.offsetHeight;
258
+ var panelWidth = panelElem.offsetWidth;
259
+ var marginSize = 5;
260
+ var panelStyle = {
261
+ zIndex: panelIndex
262
+ };
263
+ var _getAbsolutePos = (0, _dom.getAbsolutePos)(el),
264
+ boundingTop = _getAbsolutePos.boundingTop,
265
+ boundingLeft = _getAbsolutePos.boundingLeft,
266
+ visibleHeight = _getAbsolutePos.visibleHeight,
267
+ visibleWidth = _getAbsolutePos.visibleWidth;
268
+ var panelPlacement = 'bottom';
269
+ if (btnTransfer) {
270
+ var left = boundingLeft;
271
+ var top = boundingTop + targetHeight;
272
+ if (placement === 'top') {
273
+ panelPlacement = 'top';
274
+ top = boundingTop - panelHeight;
275
+ } else if (!placement) {
276
+ // 如果下面不够放,则向上
277
+ if (top + panelHeight + marginSize > visibleHeight) {
278
+ panelPlacement = 'top';
279
+ top = boundingTop - panelHeight;
280
+ }
281
+ // 如果上面不够放,则向下(优先)
282
+ if (top < marginSize) {
283
+ panelPlacement = 'bottom';
284
+ top = boundingTop + targetHeight;
285
+ }
286
+ }
287
+ // 如果溢出右边
288
+ if (left + panelWidth + marginSize > visibleWidth) {
289
+ left -= left + panelWidth + marginSize - visibleWidth;
290
+ }
291
+ // 如果溢出左边
292
+ if (left < marginSize) {
293
+ left = marginSize;
294
+ }
295
+ Object.assign(panelStyle, {
296
+ left: "".concat(left, "px"),
297
+ top: "".concat(top, "px"),
298
+ minWidth: "".concat(targetWidth, "px")
299
+ });
300
+ } else {
301
+ if (placement === 'top') {
302
+ panelPlacement = 'top';
303
+ panelStyle.bottom = "".concat(targetHeight, "px");
304
+ } else if (!placement) {
305
+ // 如果下面不够放,则向上
306
+ if (boundingTop + targetHeight + panelHeight > visibleHeight) {
307
+ // 如果上面不够放,则向下(优先)
308
+ if (boundingTop - targetHeight - panelHeight > marginSize) {
309
+ panelPlacement = 'top';
310
+ panelStyle.bottom = "".concat(targetHeight, "px");
311
+ }
312
+ }
313
+ }
314
+ }
315
+ reactData.panelStyle = panelStyle;
316
+ reactData.panelPlacement = panelPlacement;
317
+ return $xeIconPicker.$nextTick();
318
+ }
319
+ });
320
+ },
321
+ showOptionPanel: function showOptionPanel() {
322
+ var $xeIconPicker = this;
323
+ var reactData = $xeIconPicker.reactData;
324
+ var internalData = $xeIconPicker.internalData;
325
+ var hpTimeout = internalData.hpTimeout;
326
+ var isDisabled = $xeIconPicker.computeIsDisabled;
327
+ if (!isDisabled) {
328
+ if (hpTimeout) {
329
+ clearTimeout(hpTimeout);
330
+ internalData.hpTimeout = undefined;
331
+ }
332
+ var btnTransfer = $xeIconPicker.computeBtnTransfer;
333
+ var panelElem = $xeIconPicker.$refs.refOptionPanel;
334
+ if (!reactData.initialized) {
335
+ reactData.initialized = true;
336
+ if (btnTransfer) {
337
+ if (panelElem) {
338
+ document.body.appendChild(panelElem);
339
+ }
340
+ }
341
+ }
342
+ reactData.isActivated = true;
343
+ reactData.isAniVisible = true;
344
+ setTimeout(function () {
345
+ reactData.visiblePanel = true;
346
+ }, 10);
347
+ $xeIconPicker.updateZindex();
348
+ $xeIconPicker.updatePlacement();
349
+ }
350
+ },
351
+ hideOptionPanel: function hideOptionPanel() {
352
+ var $xeIconPicker = this;
353
+ var reactData = $xeIconPicker.reactData;
354
+ var internalData = $xeIconPicker.internalData;
355
+ reactData.visiblePanel = false;
356
+ internalData.hpTimeout = window.setTimeout(function () {
357
+ reactData.isAniVisible = false;
358
+ }, 350);
359
+ },
360
+ changeEvent: function changeEvent(evnt, selectValue) {
361
+ var $xeIconPicker = this;
362
+ var props = $xeIconPicker;
363
+ var reactData = $xeIconPicker.reactData;
364
+ var $xeForm = $xeIconPicker.$xeForm;
365
+ var formItemInfo = $xeIconPicker.formItemInfo;
366
+ reactData.selectIcon = selectValue;
367
+ if (selectValue !== props.value) {
368
+ $xeIconPicker.$emit('modelValue', selectValue);
369
+ $xeIconPicker.dispatchEvent('change', {
370
+ value: selectValue
371
+ }, evnt);
372
+ // 自动更新校验状态
373
+ if ($xeForm && formItemInfo) {
374
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, selectValue);
375
+ }
376
+ }
377
+ },
378
+ focusEvent: function focusEvent() {
379
+ var $xeIconPicker = this;
380
+ var reactData = $xeIconPicker.reactData;
381
+ var isDisabled = $xeIconPicker.computeIsDisabled;
382
+ if (!isDisabled) {
383
+ if (!reactData.visiblePanel) {
384
+ $xeIconPicker.showOptionPanel();
385
+ }
386
+ }
387
+ },
388
+ blurEvent: function blurEvent() {
389
+ var $xeIconPicker = this;
390
+ var reactData = $xeIconPicker.reactData;
391
+ reactData.isActivated = false;
392
+ },
393
+ clearValueEvent: function clearValueEvent(evnt, selectValue) {
394
+ var $xeIconPicker = this;
395
+ $xeIconPicker.changeEvent(evnt, selectValue);
396
+ $xeIconPicker.dispatchEvent('clear', {
397
+ value: selectValue
398
+ }, evnt);
399
+ },
400
+ clearEvent: function clearEvent(params, evnt) {
401
+ var $xeIconPicker = this;
402
+ $xeIconPicker.clearValueEvent(evnt, null);
403
+ $xeIconPicker.hideOptionPanel();
404
+ },
405
+ togglePanelEvent: function togglePanelEvent(evnt) {
406
+ var $xeIconPicker = this;
407
+ var reactData = $xeIconPicker.reactData;
408
+ evnt.preventDefault();
409
+ if (reactData.visiblePanel) {
410
+ $xeIconPicker.hideOptionPanel();
411
+ } else {
412
+ $xeIconPicker.showOptionPanel();
413
+ }
414
+ },
415
+ clickEvent: function clickEvent(evnt) {
416
+ var $xeIconPicker = this;
417
+ $xeIconPicker.togglePanelEvent(evnt);
418
+ $xeIconPicker.dispatchEvent('click', {}, evnt);
419
+ },
420
+ handleGlobalMousewheelEvent: function handleGlobalMousewheelEvent(evnt) {
421
+ var $xeIconPicker = this;
422
+ var reactData = $xeIconPicker.reactData;
423
+ var visiblePanel = reactData.visiblePanel;
424
+ var isDisabled = $xeIconPicker.computeIsDisabled;
425
+ if (!isDisabled) {
426
+ if (visiblePanel) {
427
+ var panelElem = $xeIconPicker.$refs.refOptionPanel;
428
+ if ((0, _dom.getEventTargetNode)(evnt, panelElem).flag) {
429
+ $xeIconPicker.updatePlacement();
430
+ } else {
431
+ $xeIconPicker.hideOptionPanel();
432
+ }
433
+ }
434
+ }
435
+ },
436
+ handleGlobalMousedownEvent: function handleGlobalMousedownEvent(evnt) {
437
+ var $xeIconPicker = this;
438
+ var reactData = $xeIconPicker.reactData;
439
+ var visiblePanel = reactData.visiblePanel;
440
+ var isDisabled = $xeIconPicker.computeIsDisabled;
441
+ if (!isDisabled) {
442
+ var el = $xeIconPicker.$refs.refElem;
443
+ var panelElem = $xeIconPicker.$refs.refOptionPanel;
444
+ reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelElem).flag;
445
+ if (visiblePanel && !reactData.isActivated) {
446
+ $xeIconPicker.hideOptionPanel();
447
+ }
448
+ }
449
+ },
450
+ handleGlobalKeydownEvent: function handleGlobalKeydownEvent(evnt) {
451
+ var $xeIconPicker = this;
452
+ var props = $xeIconPicker;
453
+ var reactData = $xeIconPicker.reactData;
454
+ var clearable = props.clearable;
455
+ var visiblePanel = reactData.visiblePanel;
456
+ var isDisabled = $xeIconPicker.computeIsDisabled;
457
+ if (!isDisabled) {
458
+ var isTab = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.TAB);
459
+ var isEnter = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ENTER);
460
+ var isEsc = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ESCAPE);
461
+ var isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
462
+ var isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
463
+ var isDel = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.DELETE);
464
+ var isSpacebar = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.SPACEBAR);
465
+ if (isTab) {
466
+ reactData.isActivated = false;
467
+ }
468
+ if (visiblePanel) {
469
+ if (isEsc || isTab) {
470
+ $xeIconPicker.hideOptionPanel();
471
+ } else if (isEnter) {
472
+ evnt.preventDefault();
473
+ evnt.stopPropagation();
474
+ // changeOptionEvent(evnt, currentValue, currentOption)
475
+ } else if (isUpArrow || isDwArrow) {
476
+ evnt.preventDefault();
477
+ // let { firstOption, offsetOption } = findOffsetOption(currentValue, isUpArrow)
478
+ // if (!offsetOption && !findVisibleOption(currentValue)) {
479
+ // offsetOption = firstOption
480
+ // }
481
+ // setCurrentOption(offsetOption)
482
+ // scrollToOption(offsetOption, isDwArrow)
483
+ } else if (isSpacebar) {
484
+ evnt.preventDefault();
485
+ }
486
+ } else if ((isUpArrow || isDwArrow || isEnter || isSpacebar) && reactData.isActivated) {
487
+ evnt.preventDefault();
488
+ $xeIconPicker.showOptionPanel();
489
+ }
490
+ if (reactData.isActivated) {
491
+ if (isDel && clearable) {
492
+ $xeIconPicker.clearValueEvent(evnt, null);
493
+ }
494
+ }
495
+ }
496
+ },
497
+ handleGlobalBlurEvent: function handleGlobalBlurEvent() {
498
+ var $xeIconPicker = this;
499
+ $xeIconPicker.hideOptionPanel();
500
+ },
501
+ handleClickIconEvent: function handleClickIconEvent(evnt, item) {
502
+ var $xeIconPicker = this;
503
+ var value = item.icon;
504
+ $xeIconPicker.changeEvent(evnt, value);
505
+ $xeIconPicker.hideOptionPanel();
506
+ },
507
+ //
508
+ // Render
509
+ //
510
+ renderIconWrapper: function renderIconWrapper(h) {
511
+ var $xeIconPicker = this;
512
+ var props = $xeIconPicker;
513
+ var showIconTitle = props.showIconTitle;
514
+ var iconGroupList = $xeIconPicker.computeIconGroupList;
515
+ var isDisabled = $xeIconPicker.computeIsDisabled;
516
+ return h('div', {
517
+ class: 'vxe-ico-picker--list-wrapper'
518
+ }, iconGroupList.map(function (list) {
519
+ return h('div', {
520
+ class: 'vxe-ico-picker--list'
521
+ }, list.map(function (item) {
522
+ return h('div', {
523
+ class: 'vxe-ico-picker--item',
524
+ on: {
525
+ click: function click(evnt) {
526
+ if (!isDisabled) {
527
+ $xeIconPicker.handleClickIconEvent(evnt, item);
528
+ }
529
+ }
530
+ }
531
+ }, [h('div', {
532
+ class: 'vxe-ico-picker--item-icon'
533
+ }, [h('i', {
534
+ class: item.icon || ''
535
+ })]), showIconTitle ? h('div', {
536
+ class: 'vxe-ico-picker--item-title'
537
+ }, "".concat(item.title || '')) : (0, _ui.renderEmptyElement)($xeIconPicker)]);
538
+ }));
539
+ }));
540
+ },
541
+ renderVN: function renderVN(h) {
542
+ var $xeIconPicker = this;
543
+ var props = $xeIconPicker;
544
+ var reactData = $xeIconPicker.reactData;
545
+ var className = props.className,
546
+ popupClassName = props.popupClassName,
547
+ clearable = props.clearable;
548
+ var initialized = reactData.initialized,
549
+ isActivated = reactData.isActivated,
550
+ visiblePanel = reactData.visiblePanel,
551
+ selectIcon = reactData.selectIcon;
552
+ var vSize = $xeIconPicker.computeSize;
553
+ var isDisabled = $xeIconPicker.computeIsDisabled;
554
+ var btnTransfer = $xeIconPicker.computeBtnTransfer;
555
+ var formReadonly = $xeIconPicker.computeFormReadonly;
556
+ var inpPlaceholder = $xeIconPicker.computeInpPlaceholder;
557
+ if (formReadonly) {
558
+ return h('div', {
559
+ ref: 'refElem',
560
+ class: ['vxe-ico-picker--readonly', className]
561
+ }, [h('i', {
562
+ class: selectIcon
563
+ })]);
564
+ }
565
+ return h('div', {
566
+ ref: 'refElem',
567
+ class: ['vxe-ico-picker', className ? _xeUtils.default.isFunction(className) ? className({
568
+ $iconPicker: $xeIconPicker
569
+ }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'show--clear', clearable && !isDisabled && !!selectIcon), 'is--visible', visiblePanel), 'is--disabled', isDisabled), 'is--active', isActivated)]
570
+ }, [h('div', {
571
+ class: 'vxe-ico-picker--inner',
572
+ on: {
573
+ click: $xeIconPicker.clickEvent
574
+ }
575
+ }, [h('input', {
576
+ ref: 'refInput',
577
+ class: 'vxe-ico-picker--input',
578
+ on: {
579
+ focus: $xeIconPicker.focusEvent,
580
+ blur: $xeIconPicker.blurEvent
581
+ }
582
+ }), selectIcon ? h('div', {
583
+ class: 'vxe-ico-picker--icon'
584
+ }, [h('i', {
585
+ class: selectIcon
586
+ })]) : h('div', {
587
+ class: 'vxe-ico-picker--placeholder'
588
+ }, inpPlaceholder), h('div', {
589
+ class: 'vxe-ico-picker--suffix'
590
+ }, [h('div', {
591
+ class: 'vxe-ico-picker--clear-icon',
592
+ on: {
593
+ click: $xeIconPicker.clearEvent
594
+ }
595
+ }, [h('i', {
596
+ class: (0, _ui.getIcon)().INPUT_CLEAR
597
+ })]), h('div', {
598
+ class: 'vxe-ico-picker--suffix-icon'
599
+ }, [h('i', {
600
+ class: visiblePanel ? (0, _ui.getIcon)().ICON_PICKER_OPEN : (0, _ui.getIcon)().ICON_PICKER_CLOSE
601
+ })])])]), h('div', {
602
+ ref: 'refOptionPanel',
603
+ class: ['vxe-table--ignore-clear vxe-ico-picker--panel', popupClassName ? _xeUtils.default.isFunction(popupClassName) ? popupClassName({
604
+ $iconPicker: $xeIconPicker
605
+ }) : popupClassName : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--transfer', btnTransfer), 'ani--leave', reactData.isAniVisible), 'ani--enter', visiblePanel)],
606
+ attrs: {
607
+ placement: reactData.panelPlacement
608
+ },
609
+ style: reactData.panelStyle
610
+ }, initialized ? [initialized ? h('div', {
611
+ class: 'vxe-ico-picker--panel-wrapper'
612
+ }, [$xeIconPicker.renderIconWrapper(h)]) : (0, _ui.renderEmptyElement)($xeIconPicker)] : [])]);
613
+ }
614
+ },
615
+ watch: {
616
+ value: function value(val) {
617
+ var $xeIconPicker = this;
618
+ var reactData = $xeIconPicker.reactData;
619
+ reactData.selectIcon = "".concat(val || '');
620
+ }
621
+ },
622
+ created: function created() {
623
+ var $xeIconPicker = this;
624
+ var props = $xeIconPicker;
625
+ var reactData = $xeIconPicker.reactData;
626
+ reactData.selectIcon = "".concat(props.value || '');
627
+ _ui.globalEvents.on($xeIconPicker, 'mousewheel', $xeIconPicker.handleGlobalMousewheelEvent);
628
+ _ui.globalEvents.on($xeIconPicker, 'mousedown', $xeIconPicker.handleGlobalMousedownEvent);
629
+ _ui.globalEvents.on($xeIconPicker, 'keydown', $xeIconPicker.handleGlobalKeydownEvent);
630
+ _ui.globalEvents.on($xeIconPicker, 'blur', $xeIconPicker.handleGlobalBlurEvent);
631
+ },
632
+ beforeDestroy: function beforeDestroy() {
633
+ var $xeIconPicker = this;
634
+ var panelElem = $xeIconPicker.$refs.refOptionPanel;
635
+ if (panelElem && panelElem.parentNode) {
636
+ panelElem.parentNode.removeChild(panelElem);
637
+ }
638
+ _ui.globalEvents.off($xeIconPicker, 'mousewheel');
639
+ _ui.globalEvents.off($xeIconPicker, 'mousedown');
640
+ _ui.globalEvents.off($xeIconPicker, 'keydown');
641
+ _ui.globalEvents.off($xeIconPicker, 'blur');
642
+ },
643
+ render: function render(h) {
644
+ return this.renderVN(h);
645
+ }
646
+ });
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeIconPicker",mixins:[_ui.globalMixins.sizeMixin],model:{prop:"value",event:"modelValue"},props:{value:String,placeholder:String,clearable:Boolean,size:{type:String,default:function(){return(0,_ui.getConfig)().iconPicker.size||(0,_ui.getConfig)().size}},className:[String,Function],popupClassName:[String,Function],showIconTitle:{type:Boolean,default:function(){return(0,_ui.getConfig)().iconPicker.showIconTitle}},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},icons:Array,placement:String,transfer:{type:Boolean,default:null}},inject:{$xeModal:{default:null},$xeDrawer:{default:null},$xeTable:{default:null},$xeForm:{default:null},formItemInfo:{from:"xeFormItemInfo",default:null}},provide:function(){return{$xeIconPicker:this}},data:function(){var e={hpTimeout:void 0};return{xID:_xeUtils.default.uniqueId(),reactData:{initialized:!1,selectIcon:"",panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1},internalData:e}},computed:Object.assign(Object.assign({},{}),{computeFormReadonly:function(){var e=this.$xeForm,t=this.readonly;return null===t?!!e&&e.readonly:t},computeIsDisabled:function(){var e=this.$xeForm,t=this.disabled;return null===t?!!e&&e.disabled:t},computeBtnTransfer:function(){var e=this,t=e.$xeTable,i=e.$xeModal,n=e.$xeDrawer,a=e.$xeForm,e=e.transfer;if(null===e){var o=(0,_ui.getConfig)().iconPicker.transfer;if(_xeUtils.default.isBoolean(o))return o;if(t||i||n||a)return!0}return e},computeInpPlaceholder:function(){var e=this.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")},computeIconList:function(){var e=this.icons;return(e=e&&e.length?e:(0,_ui.getConfig)().iconPicker.icons||[]).map(function(e){return{title:e,icon:"vxe-icon-".concat(e)}})},computeIconGroupList:function(){var e=this.computeIconList;return _xeUtils.default.chunk(e,4)}}),methods:{dispatchEvent:function(e,t,i){this.$emit(e,(0,_ui.createEvent)(i,{$iconPicker:this},t))},isPanelVisible:function(){return this.reactData.visiblePanel},togglePanel:function(){return this.reactData.visiblePanel?this.hideOptionPanel():this.showOptionPanel(),this.$nextTick()},hidePanel:function(){return this.reactData.visiblePanel&&this.hideOptionPanel(),this.$nextTick()},showPanel:function(){return this.reactData.visiblePanel||this.showOptionPanel(),this.$nextTick()},focus:function(){var e=this.reactData,t=this.$refs.refInput;return e.isActivated=!0,t.blur(),this.$nextTick()},blur:function(){var e=this.reactData;return this.$refs.refInput.blur(),e.isActivated=!1,this.$nextTick()},updateZindex:function(){var e=this.reactData;e.panelIndex<(0,_utils.getLastZIndex)()&&(e.panelIndex=(0,_utils.nextZIndex)())},updatePlacement:function(){var f=this,d=f,v=f.reactData;return f.$nextTick().then(function(){var e,t,i,n,a,o,l,r=d.placement,c=v.panelIndex,s=f.$refs.refElem,u=f.$refs.refOptionPanel,p=f.computeBtnTransfer;if(u&&s)return e=s.offsetHeight,t=s.offsetWidth,i=u.offsetHeight,u=u.offsetWidth,c={zIndex:c},n=(s=(0,_dom.getAbsolutePos)(s)).boundingTop,a=s.visibleHeight,o=s.visibleWidth,l="bottom",p?(p=n+e,"top"===r?(l="top",p=n-i):r||(a<p+i+5&&(l="top",p=n-i),p<5&&(l="bottom",p=n+e)),o<(s=s.boundingLeft)+u+5&&(s-=s+u+5-o),s<5&&(s=5),Object.assign(c,{left:"".concat(s,"px"),top:"".concat(p,"px"),minWidth:"".concat(t,"px")})):"top"===r?(l="top",c.bottom="".concat(e,"px")):r||a<n+e+i&&5<n-e-i&&(l="top",c.bottom="".concat(e,"px")),v.panelStyle=c,v.panelPlacement=l,f.$nextTick()})},showOptionPanel:function(){var e=this,t=e.reactData,i=e.internalData,n=i.hpTimeout;e.computeIsDisabled||(n&&(clearTimeout(n),i.hpTimeout=void 0),n=e.computeBtnTransfer,i=e.$refs.refOptionPanel,t.initialized||(t.initialized=!0,n&&i&&document.body.appendChild(i)),t.isActivated=!0,t.isAniVisible=!0,setTimeout(function(){t.visiblePanel=!0},10),e.updateZindex(),e.updatePlacement())},hideOptionPanel:function(){var e=this.reactData,t=this.internalData;e.visiblePanel=!1,t.hpTimeout=window.setTimeout(function(){e.isAniVisible=!1},350)},changeEvent:function(e,t){var i=this,n=i,a=i.reactData,o=i.$xeForm,l=i.formItemInfo;(a.selectIcon=t)!==n.value&&(i.$emit("modelValue",t),i.dispatchEvent("change",{value:t},e),o)&&l&&o.triggerItemEvent(e,l.itemConfig.field,t)},focusEvent:function(){var e=this.reactData;this.computeIsDisabled||e.visiblePanel||this.showOptionPanel()},blurEvent:function(){this.reactData.isActivated=!1},clearValueEvent:function(e,t){this.changeEvent(e,t),this.dispatchEvent("clear",{value:t},e)},clearEvent:function(e,t){this.clearValueEvent(t,null),this.hideOptionPanel()},togglePanelEvent:function(e){var t=this.reactData;e.preventDefault(),t.visiblePanel?this.hideOptionPanel():this.showOptionPanel()},clickEvent:function(e){this.togglePanelEvent(e),this.dispatchEvent("click",{},e)},handleGlobalMousewheelEvent:function(e){var t=this,i=t.reactData.visiblePanel;t.computeIsDisabled||i&&(i=t.$refs.refOptionPanel,(0,_dom.getEventTargetNode)(e,i).flag?t.updatePlacement():t.hideOptionPanel())},handleGlobalMousedownEvent:function(e){var t,i,n=this,a=n.reactData,o=a.visiblePanel;n.computeIsDisabled||(t=n.$refs.refElem,i=n.$refs.refOptionPanel,a.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,i).flag,o&&!a.isActivated&&n.hideOptionPanel())},handleGlobalKeydownEvent:function(e){var t,i,n,a,o,l,r,c=this,s=c.reactData,u=c.clearable,p=s.visiblePanel;c.computeIsDisabled||(t=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.TAB),i=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ENTER),n=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),o=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),l=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.DELETE),r=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.SPACEBAR),t&&(s.isActivated=!1),p?n||t?c.hideOptionPanel():i?(e.preventDefault(),e.stopPropagation()):(a||o||r)&&e.preventDefault():(a||o||i||r)&&s.isActivated&&(e.preventDefault(),c.showOptionPanel()),s.isActivated&&l&&u&&c.clearValueEvent(e,null))},handleGlobalBlurEvent:function(){this.hideOptionPanel()},handleClickIconEvent:function(e,t){t=t.icon;this.changeEvent(e,t),this.hideOptionPanel()},renderIconWrapper:function(i){var n=this,a=n.showIconTitle,e=n.computeIconGroupList,o=n.computeIsDisabled;return i("div",{class:"vxe-ico-picker--list-wrapper"},e.map(function(e){return i("div",{class:"vxe-ico-picker--list"},e.map(function(t){return i("div",{class:"vxe-ico-picker--item",on:{click:function(e){o||n.handleClickIconEvent(e,t)}}},[i("div",{class:"vxe-ico-picker--item-icon"},[i("i",{class:t.icon||""})]),a?i("div",{class:"vxe-ico-picker--item-title"},"".concat(t.title||"")):(0,_ui.renderEmptyElement)(n)])}))}))},renderVN:function(e){var t=this,i=t.reactData,n=t.className,a=t.popupClassName,o=t.clearable,l=i.initialized,r=i.isActivated,c=i.visiblePanel,s=i.selectIcon,u=t.computeSize,p=t.computeIsDisabled,f=t.computeBtnTransfer,d=t.computeInpPlaceholder;return t.computeFormReadonly?e("div",{ref:"refElem",class:["vxe-ico-picker--readonly",n]},[e("i",{class:s})]):e("div",{ref:"refElem",class:["vxe-ico-picker",n?_xeUtils.default.isFunction(n)?n({$iconPicker:t}):n:"",_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(u),u),"show--clear",o&&!p&&!!s),"is--visible",c),"is--disabled",p),"is--active",r)]},[e("div",{class:"vxe-ico-picker--inner",on:{click:t.clickEvent}},[e("input",{ref:"refInput",class:"vxe-ico-picker--input",on:{focus:t.focusEvent,blur:t.blurEvent}}),s?e("div",{class:"vxe-ico-picker--icon"},[e("i",{class:s})]):e("div",{class:"vxe-ico-picker--placeholder"},d),e("div",{class:"vxe-ico-picker--suffix"},[e("div",{class:"vxe-ico-picker--clear-icon",on:{click:t.clearEvent}},[e("i",{class:(0,_ui.getIcon)().INPUT_CLEAR})]),e("div",{class:"vxe-ico-picker--suffix-icon"},[e("i",{class:c?(0,_ui.getIcon)().ICON_PICKER_OPEN:(0,_ui.getIcon)().ICON_PICKER_CLOSE})])])]),e("div",{ref:"refOptionPanel",class:["vxe-table--ignore-clear vxe-ico-picker--panel",a?_xeUtils.default.isFunction(a)?a({$iconPicker:t}):a:"",_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(u),u),"is--transfer",f),"ani--leave",i.isAniVisible),"ani--enter",c)],attrs:{placement:i.panelPlacement},style:i.panelStyle},l?[l?e("div",{class:"vxe-ico-picker--panel-wrapper"},[t.renderIconWrapper(e)]):(0,_ui.renderEmptyElement)(t)]:[])])}},watch:{value:function(e){this.reactData.selectIcon="".concat(e||"")}},created:function(){var e=this;e.reactData.selectIcon="".concat(e.value||""),_ui.globalEvents.on(e,"mousewheel",e.handleGlobalMousewheelEvent),_ui.globalEvents.on(e,"mousedown",e.handleGlobalMousedownEvent),_ui.globalEvents.on(e,"keydown",e.handleGlobalKeydownEvent),_ui.globalEvents.on(e,"blur",e.handleGlobalBlurEvent)},beforeDestroy:function(){var e=this,t=e.$refs.refOptionPanel;t&&t.parentNode&&t.parentNode.removeChild(t),_ui.globalEvents.off(e,"mousewheel"),_ui.globalEvents.off(e,"mousedown"),_ui.globalEvents.off(e,"keydown"),_ui.globalEvents.off(e,"blur")},render:function(e){return this.renderVN(e)}});
@@ -0,0 +1 @@
1
+ require('./style.css')