cy-element-ui 1.1.14 → 1.1.16

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 (526) hide show
  1. package/README.md +35 -5
  2. package/lib/alert.js +68 -68
  3. package/lib/aside.js +11 -11
  4. package/lib/autocomplete.js +287 -287
  5. package/lib/avatar.js +121 -121
  6. package/lib/backtop.js +91 -91
  7. package/lib/badge.js +32 -32
  8. package/lib/breadcrumb-item.js +33 -33
  9. package/lib/breadcrumb.js +27 -27
  10. package/lib/button-group.js +4 -4
  11. package/lib/button.js +53 -53
  12. package/lib/calendar.js +426 -426
  13. package/lib/card.js +11 -11
  14. package/lib/carousel-item.js +108 -108
  15. package/lib/carousel.js +244 -244
  16. package/lib/cascader-panel.js +1045 -1045
  17. package/lib/cascader.js +577 -577
  18. package/lib/checkbox-button.js +137 -137
  19. package/lib/checkbox-group.js +39 -39
  20. package/lib/checkbox.js +151 -151
  21. package/lib/col.js +64 -64
  22. package/lib/collapse-item.js +66 -66
  23. package/lib/collapse.js +63 -63
  24. package/lib/color-picker.js +944 -944
  25. package/lib/container.js +24 -24
  26. package/lib/date-picker.js +2968 -2967
  27. package/lib/descriptions-item.js +29 -29
  28. package/lib/descriptions.js +324 -324
  29. package/lib/dialog.js +170 -170
  30. package/lib/divider.js +20 -20
  31. package/lib/drawer.js +156 -156
  32. package/lib/dropdown-item.js +19 -19
  33. package/lib/dropdown-menu.js +56 -56
  34. package/lib/dropdown.js +329 -329
  35. package/lib/element-ui.common.js +44918 -0
  36. package/lib/empty.js +39 -39
  37. package/lib/footer.js +11 -11
  38. package/lib/form-item.js +369 -369
  39. package/lib/form.js +181 -181
  40. package/lib/header.js +11 -11
  41. package/lib/icon.js +7 -7
  42. package/lib/image.js +520 -520
  43. package/lib/index.js +1 -1
  44. package/lib/infinite-scroll.js +127 -127
  45. package/lib/input-number.js +260 -260
  46. package/lib/input.js +370 -370
  47. package/lib/link.js +28 -28
  48. package/lib/loading.js +219 -219
  49. package/lib/main.js +5 -5
  50. package/lib/menu-item-group.js +33 -33
  51. package/lib/menu-item.js +116 -116
  52. package/lib/menu.js +490 -490
  53. package/lib/message-box.js +421 -421
  54. package/lib/message.js +150 -150
  55. package/lib/notification.js +184 -184
  56. package/lib/option-group.js +46 -46
  57. package/lib/option.js +145 -145
  58. package/lib/page-header.js +14 -14
  59. package/lib/pagination.js +530 -530
  60. package/lib/popconfirm.js +68 -68
  61. package/lib/popover.js +225 -225
  62. package/lib/progress.js +183 -183
  63. package/lib/radio-button.js +78 -78
  64. package/lib/radio-group.js +103 -103
  65. package/lib/radio.js +86 -86
  66. package/lib/rate.js +283 -283
  67. package/lib/result.js +61 -61
  68. package/lib/row.js +32 -32
  69. package/lib/scrollbar.js +247 -247
  70. package/lib/select.js +999 -999
  71. package/lib/selectDisplayInput.js +61 -61
  72. package/lib/skeleton-item.js +19 -19
  73. package/lib/skeleton.js +53 -53
  74. package/lib/slider.js +550 -550
  75. package/lib/spinner.js +19 -19
  76. package/lib/statistic.js +198 -198
  77. package/lib/step.js +125 -125
  78. package/lib/steps.js +54 -54
  79. package/lib/subTitle.js +24 -24
  80. package/lib/submenu.js +405 -406
  81. package/lib/switch.js +135 -135
  82. package/lib/tab-pane.js +43 -43
  83. package/lib/tabDialog.js +508 -508
  84. package/lib/table-column.js +713 -713
  85. package/lib/table.js +3432 -3432
  86. package/lib/tabs.js +578 -578
  87. package/lib/tag.js +60 -60
  88. package/lib/time-picker.js +1350 -1350
  89. package/lib/time-select.js +949 -949
  90. package/lib/timeline-item.js +25 -25
  91. package/lib/timeline.js +30 -30
  92. package/lib/tooltip.js +255 -255
  93. package/lib/transfer.js +385 -385
  94. package/lib/tree.js +1547 -1547
  95. package/lib/treeSelect.js +2618 -2618
  96. package/lib/umd/locale/en.js +137 -137
  97. package/lib/umd/locale/zh-CN.js +137 -137
  98. package/lib/umd/locale/zh-TW.js +137 -137
  99. package/lib/upload.js +738 -738
  100. package/package.json +9 -7
  101. package/packages/alert/index.js +1 -1
  102. package/packages/alert/src/main.vue +82 -82
  103. package/packages/aside/index.js +1 -1
  104. package/packages/aside/src/main.vue +13 -13
  105. package/packages/autocomplete/index.js +1 -1
  106. package/packages/autocomplete/src/autocomplete-suggestions.vue +64 -64
  107. package/packages/autocomplete/src/autocomplete.vue +272 -272
  108. package/packages/avatar/index.js +1 -1
  109. package/packages/avatar/src/main.vue +88 -88
  110. package/packages/backtop/index.js +1 -1
  111. package/packages/backtop/src/main.vue +92 -92
  112. package/packages/badge/index.js +1 -1
  113. package/packages/badge/src/main.vue +41 -41
  114. package/packages/breadcrumb/index.js +1 -1
  115. package/packages/breadcrumb/src/breadcrumb-item.vue +35 -35
  116. package/packages/breadcrumb/src/breadcrumb.vue +27 -27
  117. package/packages/breadcrumb-item/index.js +1 -1
  118. package/packages/button/index.js +1 -1
  119. package/packages/button/src/button-group.vue +6 -6
  120. package/packages/button/src/button.vue +70 -70
  121. package/packages/button-group/index.js +1 -1
  122. package/packages/calendar/index.js +1 -1
  123. package/packages/calendar/src/date-table.vue +193 -193
  124. package/packages/calendar/src/main.vue +242 -242
  125. package/packages/card/index.js +1 -1
  126. package/packages/card/src/main.vue +18 -18
  127. package/packages/carousel/index.js +1 -1
  128. package/packages/carousel/src/item.vue +122 -122
  129. package/packages/carousel/src/main.vue +305 -305
  130. package/packages/carousel-item/index.js +1 -1
  131. package/packages/cascader/index.js +1 -1
  132. package/packages/cascader/src/cascader.vue +626 -626
  133. package/packages/cascader-panel/index.js +1 -1
  134. package/packages/cascader-panel/src/cascader-menu.vue +128 -128
  135. package/packages/cascader-panel/src/cascader-node.vue +244 -244
  136. package/packages/cascader-panel/src/cascader-panel.vue +334 -334
  137. package/packages/cascader-panel/src/node.js +157 -158
  138. package/packages/cascader-panel/src/store.js +49 -50
  139. package/packages/checkbox/index.js +1 -1
  140. package/packages/checkbox/src/checkbox-button.vue +195 -195
  141. package/packages/checkbox/src/checkbox-group.vue +43 -43
  142. package/packages/checkbox/src/checkbox.vue +218 -218
  143. package/packages/checkbox-button/index.js +1 -1
  144. package/packages/checkbox-group/index.js +1 -1
  145. package/packages/col/index.js +1 -1
  146. package/packages/col/src/col.js +63 -63
  147. package/packages/collapse/index.js +1 -1
  148. package/packages/collapse/src/collapse-item.vue +101 -101
  149. package/packages/collapse/src/collapse.vue +61 -61
  150. package/packages/collapse-item/index.js +1 -1
  151. package/packages/color-picker/index.js +1 -1
  152. package/packages/color-picker/src/color.js +263 -263
  153. package/packages/color-picker/src/components/alpha-slider.vue +127 -127
  154. package/packages/color-picker/src/components/hue-slider.vue +118 -118
  155. package/packages/color-picker/src/components/picker-dropdown.vue +105 -105
  156. package/packages/color-picker/src/components/predefine.vue +55 -55
  157. package/packages/color-picker/src/components/sv-panel.vue +95 -95
  158. package/packages/color-picker/src/draggable.js +27 -27
  159. package/packages/color-picker/src/main.vue +183 -183
  160. package/packages/container/index.js +1 -1
  161. package/packages/container/src/main.vue +25 -25
  162. package/packages/date-picker/index.js +1 -1
  163. package/packages/date-picker/src/basic/date-table.vue +435 -435
  164. package/packages/date-picker/src/basic/month-table.vue +239 -240
  165. package/packages/date-picker/src/basic/time-spinner.vue +279 -279
  166. package/packages/date-picker/src/basic/year-table.vue +99 -99
  167. package/packages/date-picker/src/panel/date-range.vue +675 -675
  168. package/packages/date-picker/src/panel/date.vue +604 -604
  169. package/packages/date-picker/src/panel/month-range.vue +260 -260
  170. package/packages/date-picker/src/panel/time-range.vue +242 -242
  171. package/packages/date-picker/src/panel/time-select.vue +173 -173
  172. package/packages/date-picker/src/panel/time.vue +181 -181
  173. package/packages/date-picker/src/picker/date-picker.js +29 -29
  174. package/packages/date-picker/src/picker/time-picker.js +28 -28
  175. package/packages/date-picker/src/picker/time-select.js +12 -12
  176. package/packages/date-picker/src/picker.vue +900 -900
  177. package/packages/descriptions/index.js +1 -1
  178. package/packages/descriptions/src/descriptions-item.js +28 -28
  179. package/packages/descriptions/src/descriptions-row.js +114 -114
  180. package/packages/descriptions/src/index.js +168 -168
  181. package/packages/descriptions-item/index.js +1 -1
  182. package/packages/dialog/index.js +1 -1
  183. package/packages/dialog/src/component.vue +207 -207
  184. package/packages/divider/index.js +1 -1
  185. package/packages/divider/src/main.vue +29 -29
  186. package/packages/drawer/index.js +1 -1
  187. package/packages/drawer/src/main.vue +195 -195
  188. package/packages/dropdown/index.js +1 -1
  189. package/packages/dropdown/src/dropdown-item.vue +29 -29
  190. package/packages/dropdown/src/dropdown-menu.vue +59 -59
  191. package/packages/dropdown/src/dropdown.vue +271 -271
  192. package/packages/dropdown-item/index.js +1 -1
  193. package/packages/dropdown-menu/index.js +1 -1
  194. package/packages/empty/index.js +1 -1
  195. package/packages/empty/src/img-empty.vue +124 -124
  196. package/packages/empty/src/index.vue +40 -40
  197. package/packages/footer/index.js +1 -1
  198. package/packages/footer/src/main.vue +13 -13
  199. package/packages/form/index.js +1 -1
  200. package/packages/form/src/form-item.vue +294 -294
  201. package/packages/form/src/form.vue +169 -169
  202. package/packages/form/src/label-wrap.vue +65 -65
  203. package/packages/form-item/index.js +1 -1
  204. package/packages/header/index.js +1 -1
  205. package/packages/header/src/main.vue +13 -13
  206. package/packages/icon/index.js +1 -1
  207. package/packages/icon/src/icon.vue +7 -7
  208. package/packages/image/index.js +1 -1
  209. package/packages/image/src/image-viewer.vue +309 -309
  210. package/packages/image/src/main.vue +242 -242
  211. package/packages/infinite-scroll/index.js +1 -1
  212. package/packages/infinite-scroll/src/main.js +113 -114
  213. package/packages/input/index.js +1 -1
  214. package/packages/input/src/calcTextareaHeight.js +70 -70
  215. package/packages/input/src/input.vue +416 -416
  216. package/packages/input-number/index.js +1 -1
  217. package/packages/input-number/src/input-number.vue +272 -272
  218. package/packages/link/index.js +1 -1
  219. package/packages/link/src/main.vue +40 -40
  220. package/packages/loading/index.js +6 -6
  221. package/packages/loading/src/directive.js +105 -105
  222. package/packages/loading/src/index.js +74 -74
  223. package/packages/loading/src/loading.vue +35 -35
  224. package/packages/main/index.js +1 -1
  225. package/packages/main/src/main.vue +7 -7
  226. package/packages/menu/index.js +1 -1
  227. package/packages/menu/src/menu-item-group.vue +38 -38
  228. package/packages/menu/src/menu-item.vue +103 -103
  229. package/packages/menu/src/menu-mixin.js +39 -39
  230. package/packages/menu/src/menu.vue +298 -298
  231. package/packages/menu/src/submenu.vue +330 -331
  232. package/packages/menu-item/index.js +1 -1
  233. package/packages/menu-item-group/index.js +1 -1
  234. package/packages/message/src/main.js +65 -65
  235. package/packages/message/src/main.vue +105 -105
  236. package/packages/message-box/src/main.js +172 -172
  237. package/packages/message-box/src/main.vue +309 -309
  238. package/packages/notification/src/main.js +63 -63
  239. package/packages/notification/src/main.vue +135 -135
  240. package/packages/option/index.js +1 -1
  241. package/packages/option-group/index.js +1 -1
  242. package/packages/page-header/index.js +1 -1
  243. package/packages/page-header/src/main.vue +21 -21
  244. package/packages/pagination/index.js +1 -1
  245. package/packages/pagination/src/pager.vue +158 -158
  246. package/packages/pagination/src/pagination.js +377 -377
  247. package/packages/popconfirm/index.js +1 -1
  248. package/packages/popconfirm/src/main.vue +94 -94
  249. package/packages/popover/index.js +2 -2
  250. package/packages/popover/src/directive.js +15 -15
  251. package/packages/popover/src/main.vue +214 -214
  252. package/packages/progress/index.js +1 -1
  253. package/packages/progress/src/progress.vue +228 -228
  254. package/packages/radio/index.js +1 -1
  255. package/packages/radio/src/radio-button.vue +106 -106
  256. package/packages/radio/src/radio-group.vue +101 -101
  257. package/packages/radio/src/radio.vue +122 -122
  258. package/packages/radio-button/index.js +1 -1
  259. package/packages/radio-group/index.js +1 -1
  260. package/packages/rate/index.js +1 -1
  261. package/packages/rate/src/main.vue +316 -316
  262. package/packages/result/index.js +1 -1
  263. package/packages/result/src/icon-error.vue +6 -6
  264. package/packages/result/src/icon-info.vue +6 -6
  265. package/packages/result/src/icon-success.vue +6 -6
  266. package/packages/result/src/icon-warning.vue +6 -6
  267. package/packages/result/src/index.vue +51 -51
  268. package/packages/row/index.js +1 -1
  269. package/packages/row/src/row.js +36 -36
  270. package/packages/scrollbar/index.js +1 -1
  271. package/packages/scrollbar/src/bar.js +86 -86
  272. package/packages/scrollbar/src/main.js +120 -120
  273. package/packages/scrollbar/src/util.js +27 -27
  274. package/packages/select/index.js +1 -1
  275. package/packages/select/src/navigation-mixin.js +47 -47
  276. package/packages/select/src/option-group.vue +55 -55
  277. package/packages/select/src/option.vue +163 -163
  278. package/packages/select/src/select-dropdown.vue +57 -57
  279. package/packages/select/src/select.vue +895 -895
  280. package/packages/selectDisplayInput/index.js +1 -1
  281. package/packages/selectDisplayInput/src/main.vue +61 -61
  282. package/packages/skeleton/index.js +1 -1
  283. package/packages/skeleton/src/img-placeholder.vue +9 -9
  284. package/packages/skeleton/src/index.vue +70 -70
  285. package/packages/skeleton/src/item.vue +17 -17
  286. package/packages/skeleton-item/index.js +1 -1
  287. package/packages/slider/index.js +1 -1
  288. package/packages/slider/src/button.vue +230 -230
  289. package/packages/slider/src/main.vue +422 -422
  290. package/packages/slider/src/marker.js +14 -14
  291. package/packages/spinner/index.js +1 -1
  292. package/packages/spinner/src/spinner.vue +23 -23
  293. package/packages/statistic/index.js +1 -1
  294. package/packages/statistic/src/main.vue +196 -197
  295. package/packages/step/index.js +1 -1
  296. package/packages/steps/index.js +1 -1
  297. package/packages/steps/src/step.vue +177 -177
  298. package/packages/steps/src/steps.vue +53 -53
  299. package/packages/subTitle/index.js +1 -1
  300. package/packages/subTitle/src/main.vue +29 -29
  301. package/packages/submenu/index.js +1 -1
  302. package/packages/switch/index.js +1 -1
  303. package/packages/switch/src/component.vue +169 -169
  304. package/packages/tab-pane/index.js +1 -1
  305. package/packages/tabDialog/index.js +10 -10
  306. package/packages/tabDialog/src/dialog/drag.js +50 -50
  307. package/packages/tabDialog/src/dialog/dragHeight.js +27 -27
  308. package/packages/tabDialog/src/dialog/dragWidth.js +23 -23
  309. package/packages/tabDialog/src/main.vue +257 -257
  310. package/packages/table/index.js +1 -1
  311. package/packages/table/src/config.js +108 -108
  312. package/packages/table/src/dropdown.js +19 -19
  313. package/packages/table/src/filter-panel.vue +189 -189
  314. package/packages/table/src/layout-observer.js +60 -60
  315. package/packages/table/src/store/current.js +65 -65
  316. package/packages/table/src/store/expand.js +57 -57
  317. package/packages/table/src/store/helper.js +32 -32
  318. package/packages/table/src/store/index.js +133 -133
  319. package/packages/table/src/store/tree.js +194 -194
  320. package/packages/table/src/store/watcher.js +366 -366
  321. package/packages/table/src/table-body.js +456 -456
  322. package/packages/table/src/table-column.js +311 -311
  323. package/packages/table/src/table-footer.js +139 -139
  324. package/packages/table/src/table-header.js +496 -496
  325. package/packages/table/src/table-layout.js +241 -241
  326. package/packages/table/src/table-row.js +97 -97
  327. package/packages/table/src/table.vue +666 -666
  328. package/packages/table/src/util.js +214 -214
  329. package/packages/table-column/index.js +1 -1
  330. package/packages/tabs/index.js +1 -1
  331. package/packages/tabs/src/tab-bar.vue +47 -47
  332. package/packages/tabs/src/tab-nav.vue +268 -268
  333. package/packages/tabs/src/tab-pane.vue +47 -47
  334. package/packages/tabs/src/tabs.vue +174 -174
  335. package/packages/tag/index.js +1 -1
  336. package/packages/tag/src/tag.vue +55 -55
  337. package/packages/theme-chalk/gulpfile.js +11 -11
  338. package/packages/theme-chalk/src/alert.scss +138 -138
  339. package/packages/theme-chalk/src/aside.scss +3 -3
  340. package/packages/theme-chalk/src/autocomplete.scss +58 -58
  341. package/packages/theme-chalk/src/avatar.scss +46 -46
  342. package/packages/theme-chalk/src/backtop.scss +16 -16
  343. package/packages/theme-chalk/src/badge.scss +47 -47
  344. package/packages/theme-chalk/src/breadcrumb.scss +49 -49
  345. package/packages/theme-chalk/src/button.scss +229 -229
  346. package/packages/theme-chalk/src/calendar.scss +57 -57
  347. package/packages/theme-chalk/src/card.scss +23 -23
  348. package/packages/theme-chalk/src/carousel-item.scss +41 -41
  349. package/packages/theme-chalk/src/carousel.scss +148 -148
  350. package/packages/theme-chalk/src/cascader-panel.scss +106 -106
  351. package/packages/theme-chalk/src/cascader.scss +173 -173
  352. package/packages/theme-chalk/src/checkbox.scss +346 -346
  353. package/packages/theme-chalk/src/col.scss +130 -130
  354. package/packages/theme-chalk/src/collapse.scss +52 -52
  355. package/packages/theme-chalk/src/color-picker.scss +364 -364
  356. package/packages/theme-chalk/src/common/popup.scss +22 -22
  357. package/packages/theme-chalk/src/common/transition.scss +33 -33
  358. package/packages/theme-chalk/src/common/var.scss +16 -16
  359. package/packages/theme-chalk/src/container.scss +9 -9
  360. package/packages/theme-chalk/src/cy/base.scss +1 -1
  361. package/packages/theme-chalk/src/date-picker/date-picker.scss +91 -91
  362. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +97 -97
  363. package/packages/theme-chalk/src/date-picker/date-table.scss +146 -146
  364. package/packages/theme-chalk/src/date-picker/month-table.scss +69 -69
  365. package/packages/theme-chalk/src/date-picker/picker-panel.scss +105 -105
  366. package/packages/theme-chalk/src/date-picker/picker.scss +188 -188
  367. package/packages/theme-chalk/src/date-picker/time-picker.scss +72 -72
  368. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +23 -23
  369. package/packages/theme-chalk/src/date-picker/time-spinner.scss +106 -106
  370. package/packages/theme-chalk/src/date-picker/year-table.scss +47 -47
  371. package/packages/theme-chalk/src/descriptions-item.scss +33 -33
  372. package/packages/theme-chalk/src/descriptions.scss +105 -105
  373. package/packages/theme-chalk/src/dialog.scss +104 -104
  374. package/packages/theme-chalk/src/display.scss +7 -7
  375. package/packages/theme-chalk/src/divider.scss +36 -36
  376. package/packages/theme-chalk/src/drawer.scss +185 -185
  377. package/packages/theme-chalk/src/dropdown.scss +172 -172
  378. package/packages/theme-chalk/src/empty.scss +34 -34
  379. package/packages/theme-chalk/src/footer.scss +3 -3
  380. package/packages/theme-chalk/src/form.scss +149 -149
  381. package/packages/theme-chalk/src/header.scss +3 -3
  382. package/packages/theme-chalk/src/icon.scss +309 -309
  383. package/packages/theme-chalk/src/image.scss +153 -153
  384. package/packages/theme-chalk/src/input-number.scss +255 -255
  385. package/packages/theme-chalk/src/input.scss +345 -345
  386. package/packages/theme-chalk/src/link.scss +67 -67
  387. package/packages/theme-chalk/src/loading.scss +67 -67
  388. package/packages/theme-chalk/src/main.scss +7 -7
  389. package/packages/theme-chalk/src/menu.scss +248 -248
  390. package/packages/theme-chalk/src/message-box.scss +205 -205
  391. package/packages/theme-chalk/src/message.scss +111 -111
  392. package/packages/theme-chalk/src/mixins/_button.scss +64 -64
  393. package/packages/theme-chalk/src/mixins/function.scss +18 -18
  394. package/packages/theme-chalk/src/mixins/mixins.scss +126 -126
  395. package/packages/theme-chalk/src/mixins/utils.scss +26 -26
  396. package/packages/theme-chalk/src/notification.scss +88 -88
  397. package/packages/theme-chalk/src/option-group.scss +31 -31
  398. package/packages/theme-chalk/src/option.scss +27 -27
  399. package/packages/theme-chalk/src/page-header.scss +31 -31
  400. package/packages/theme-chalk/src/pagination.scss +284 -284
  401. package/packages/theme-chalk/src/popconfirm.scss +11 -11
  402. package/packages/theme-chalk/src/popover.scss +30 -30
  403. package/packages/theme-chalk/src/popper.scss +82 -82
  404. package/packages/theme-chalk/src/progress.scss +128 -128
  405. package/packages/theme-chalk/src/radio-button.scss +94 -94
  406. package/packages/theme-chalk/src/radio-group.scss +4 -4
  407. package/packages/theme-chalk/src/radio.scss +192 -192
  408. package/packages/theme-chalk/src/rate.scss +38 -38
  409. package/packages/theme-chalk/src/reset.scss +39 -39
  410. package/packages/theme-chalk/src/result.scss +56 -56
  411. package/packages/theme-chalk/src/row.scss +31 -31
  412. package/packages/theme-chalk/src/scrollbar.scss +57 -57
  413. package/packages/theme-chalk/src/select-dropdown.scss +47 -47
  414. package/packages/theme-chalk/src/select.scss +140 -140
  415. package/packages/theme-chalk/src/skeleton-item.scss +75 -75
  416. package/packages/theme-chalk/src/skeleton.scss +27 -27
  417. package/packages/theme-chalk/src/slider.scss +238 -238
  418. package/packages/theme-chalk/src/spinner.scss +27 -27
  419. package/packages/theme-chalk/src/statistic.scss +32 -32
  420. package/packages/theme-chalk/src/step.scss +312 -312
  421. package/packages/theme-chalk/src/steps.scss +13 -13
  422. package/packages/theme-chalk/src/switch.scss +101 -101
  423. package/packages/theme-chalk/src/table-column.scss +87 -87
  424. package/packages/theme-chalk/src/table.scss +556 -556
  425. package/packages/theme-chalk/src/tabs.scss +576 -576
  426. package/packages/theme-chalk/src/tag.scss +155 -155
  427. package/packages/theme-chalk/src/time-select.scss +14 -14
  428. package/packages/theme-chalk/src/timeline-item.scss +71 -71
  429. package/packages/theme-chalk/src/timeline.scss +8 -8
  430. package/packages/theme-chalk/src/tooltip.scss +136 -136
  431. package/packages/theme-chalk/src/transfer.scss +214 -214
  432. package/packages/theme-chalk/src/tree.scss +110 -110
  433. package/packages/theme-chalk/src/upload.scss +587 -587
  434. package/packages/time-picker/index.js +1 -1
  435. package/packages/time-select/index.js +1 -1
  436. package/packages/timeline/index.js +1 -1
  437. package/packages/timeline/src/item.vue +56 -56
  438. package/packages/timeline/src/main.vue +28 -28
  439. package/packages/timeline-item/index.js +1 -1
  440. package/packages/tooltip/index.js +1 -1
  441. package/packages/tooltip/src/main.js +234 -234
  442. package/packages/transfer/index.js +1 -1
  443. package/packages/transfer/src/main.vue +225 -225
  444. package/packages/transfer/src/transfer-panel.vue +245 -245
  445. package/packages/tree/index.js +1 -1
  446. package/packages/tree/src/model/node.js +467 -467
  447. package/packages/tree/src/model/tree-store.js +335 -335
  448. package/packages/tree/src/model/util.js +17 -17
  449. package/packages/tree/src/tree-node.vue +247 -247
  450. package/packages/tree/src/tree.vue +491 -491
  451. package/packages/treeSelect/index.js +1 -1
  452. package/packages/treeSelect/src/main.vue +275 -275
  453. package/packages/upload/index.js +1 -1
  454. package/packages/upload/src/ajax.js +77 -77
  455. package/packages/upload/src/index.vue +304 -304
  456. package/packages/upload/src/upload-dragger.vue +65 -65
  457. package/packages/upload/src/upload-list.vue +96 -96
  458. package/packages/upload/src/upload.vue +194 -194
  459. package/src/directives/mousewheel.js +9 -9
  460. package/src/directives/repeat-click.js +20 -20
  461. package/src/index.js +209 -210
  462. package/src/locale/format.js +24 -25
  463. package/src/locale/index.js +25 -25
  464. package/src/locale/lang/en.js +121 -121
  465. package/src/locale/lang/zh-CN.js +121 -121
  466. package/src/locale/lang/zh-TW.js +121 -121
  467. package/src/mixins/emitter.js +26 -26
  468. package/src/mixins/focus.js +7 -7
  469. package/src/mixins/locale.js +5 -5
  470. package/src/mixins/migrating.js +28 -28
  471. package/src/transitions/collapse-transition.js +60 -60
  472. package/src/utils/after-leave.js +17 -17
  473. package/src/utils/aria-dialog.js +48 -48
  474. package/src/utils/aria-utils.js +64 -64
  475. package/src/utils/clickoutside.js +34 -34
  476. package/src/utils/date-util.js +163 -163
  477. package/src/utils/dom.js +165 -165
  478. package/src/utils/menu/aria-menubar.js +5 -5
  479. package/src/utils/menu/aria-menuitem.js +36 -36
  480. package/src/utils/menu/aria-submenu.js +44 -44
  481. package/src/utils/merge.js +12 -12
  482. package/src/utils/popup/index.js +203 -203
  483. package/src/utils/popup/popup-manager.js +169 -169
  484. package/src/utils/resize-event.js +20 -20
  485. package/src/utils/scroll-into-view.js +20 -20
  486. package/src/utils/scrollbar-width.js +18 -18
  487. package/src/utils/shared.js +3 -3
  488. package/src/utils/types.js +12 -12
  489. package/src/utils/util.js +157 -157
  490. package/src/utils/vdom.js +1 -1
  491. package/src/utils/vue-popper.js +179 -179
  492. package/lib/directives/mousewheel.js +0 -26
  493. package/lib/directives/repeat-click.js +0 -33
  494. package/lib/locale/format.js +0 -56
  495. package/lib/locale/index.js +0 -63
  496. package/lib/locale/lang/en.js +0 -126
  497. package/lib/locale/lang/zh-CN.js +0 -126
  498. package/lib/locale/lang/zh-TW.js +0 -126
  499. package/lib/mixins/emitter.js +0 -36
  500. package/lib/mixins/focus.js +0 -15
  501. package/lib/mixins/locale.js +0 -17
  502. package/lib/mixins/migrating.js +0 -69
  503. package/lib/transitions/collapse-transition.js +0 -91
  504. package/lib/utils/after-leave.js +0 -35
  505. package/lib/utils/aria-dialog.js +0 -104
  506. package/lib/utils/aria-utils.js +0 -126
  507. package/lib/utils/clickoutside.js +0 -79
  508. package/lib/utils/date-util.js +0 -310
  509. package/lib/utils/date.js +0 -369
  510. package/lib/utils/dom.js +0 -234
  511. package/lib/utils/lodash.js +0 -9421
  512. package/lib/utils/menu/aria-menubar.js +0 -24
  513. package/lib/utils/menu/aria-menuitem.js +0 -62
  514. package/lib/utils/menu/aria-submenu.js +0 -69
  515. package/lib/utils/merge.js +0 -21
  516. package/lib/utils/popper.js +0 -1261
  517. package/lib/utils/popup/index.js +0 -233
  518. package/lib/utils/popup/popup-manager.js +0 -205
  519. package/lib/utils/resize-event.js +0 -59
  520. package/lib/utils/scroll-into-view.js +0 -38
  521. package/lib/utils/scrollbar-width.js +0 -39
  522. package/lib/utils/shared.js +0 -12
  523. package/lib/utils/types.js +0 -52
  524. package/lib/utils/util.js +0 -272
  525. package/lib/utils/vdom.js +0 -13
  526. package/lib/utils/vue-popper.js +0 -202
package/lib/select.js CHANGED
@@ -260,7 +260,7 @@ module.exports = require("element-ui/lib/utils/scroll-into-view");
260
260
 
261
261
  "use strict";
262
262
 
263
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/option.vue?vue&type=template&id=97998eb4
263
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/option.vue?vue&type=template&id=2340096e
264
264
  var render = function () {
265
265
  var _vm = this
266
266
  var _h = _vm.$createElement
@@ -298,7 +298,7 @@ var staticRenderFns = []
298
298
  render._withStripped = true
299
299
 
300
300
 
301
- // CONCATENATED MODULE: ./packages/select/src/option.vue?vue&type=template&id=97998eb4
301
+ // CONCATENATED MODULE: ./packages/select/src/option.vue?vue&type=template&id=2340096e
302
302
 
303
303
  // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter"
304
304
  var emitter_ = __webpack_require__(4);
@@ -332,148 +332,148 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
332
332
 
333
333
 
334
334
  /* harmony default export */ var optionvue_type_script_lang_js = ({
335
- mixins: [emitter_default.a],
336
-
337
- name: 'ElOption',
338
-
339
- componentName: 'ElOption',
340
-
341
- inject: ['select'],
342
-
343
- props: {
344
- value: {
345
- required: true
346
- },
347
- label: [String, Number],
348
- created: Boolean,
349
- disabled: {
350
- type: Boolean,
351
- default: false
352
- }
353
- },
354
-
355
- data: function data() {
356
- return {
357
- index: -1,
358
- groupDisabled: false,
359
- visible: true,
360
- hitState: false,
361
- hover: false
362
- };
363
- },
364
-
365
-
366
- computed: {
367
- isObject: function isObject() {
368
- return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';
369
- },
370
- currentLabel: function currentLabel() {
371
- return this.label || (this.isObject ? '' : this.value);
372
- },
373
- currentValue: function currentValue() {
374
- return this.value || this.label || '';
375
- },
376
- itemSelected: function itemSelected() {
377
- if (!this.select.multiple) {
378
- return this.isEqual(this.value, this.select.value);
379
- } else {
380
- return this.contains(this.select.value, this.value);
381
- }
382
- },
383
- limitReached: function limitReached() {
384
- if (this.select.multiple) {
385
- return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;
386
- } else {
387
- return false;
388
- }
389
- }
390
- },
391
-
392
- watch: {
393
- currentLabel: function currentLabel() {
394
- if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');
395
- },
396
- value: function value(val, oldVal) {
397
- var _select = this.select,
398
- remote = _select.remote,
399
- valueKey = _select.valueKey;
400
-
401
- if (!this.created && !remote) {
402
- if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {
403
- return;
404
- }
405
- this.dispatch('ElSelect', 'setSelected');
406
- }
407
- }
408
- },
409
-
410
- methods: {
411
- isEqual: function isEqual(a, b) {
412
- if (!this.isObject) {
413
- return a === b;
414
- } else {
415
- var valueKey = this.select.valueKey;
416
- return Object(util_["getValueByPath"])(a, valueKey) === Object(util_["getValueByPath"])(b, valueKey);
417
- }
418
- },
419
- contains: function contains() {
420
- var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
421
- var target = arguments[1];
422
-
423
- if (!this.isObject) {
424
- return arr && arr.indexOf(target) > -1;
425
- } else {
426
- var valueKey = this.select.valueKey;
427
- return arr && arr.some(function (item) {
428
- return Object(util_["getValueByPath"])(item, valueKey) === Object(util_["getValueByPath"])(target, valueKey);
429
- });
430
- }
431
- },
432
- handleGroupDisabled: function handleGroupDisabled(val) {
433
- this.groupDisabled = val;
434
- },
435
- hoverItem: function hoverItem() {
436
- if (!this.disabled && !this.groupDisabled) {
437
- this.select.hoverIndex = this.select.options.indexOf(this);
438
- }
439
- },
440
- selectOptionClick: function selectOptionClick() {
441
- if (this.disabled !== true && this.groupDisabled !== true) {
442
- this.dispatch('ElSelect', 'handleOptionClick', [this, true]);
443
- }
444
- },
445
- queryChange: function queryChange(query) {
446
- this.visible = new RegExp(Object(util_["escapeRegexpString"])(query), 'i').test(this.currentLabel) || this.created;
447
- if (!this.visible) {
448
- this.select.filteredOptionsCount--;
449
- }
450
- }
451
- },
452
-
453
- created: function created() {
454
- this.select.options.push(this);
455
- this.select.cachedOptions.push(this);
456
- this.select.optionsCount++;
457
- this.select.filteredOptionsCount++;
458
-
459
- this.$on('queryChange', this.queryChange);
460
- this.$on('handleGroupDisabled', this.handleGroupDisabled);
461
- },
462
- beforeDestroy: function beforeDestroy() {
463
- var _select2 = this.select,
464
- selected = _select2.selected,
465
- multiple = _select2.multiple;
466
-
467
- var selectedOptions = multiple ? selected : [selected];
468
- var index = this.select.cachedOptions.indexOf(this);
469
- var selectedIndex = selectedOptions.indexOf(this);
470
-
471
- // if option is not selected, remove it from cache
472
- if (index > -1 && selectedIndex < 0) {
473
- this.select.cachedOptions.splice(index, 1);
474
- }
475
- this.select.onOptionDestroy(this.select.options.indexOf(this));
476
- }
335
+ mixins: [emitter_default.a],
336
+
337
+ name: 'ElOption',
338
+
339
+ componentName: 'ElOption',
340
+
341
+ inject: ['select'],
342
+
343
+ props: {
344
+ value: {
345
+ required: true
346
+ },
347
+ label: [String, Number],
348
+ created: Boolean,
349
+ disabled: {
350
+ type: Boolean,
351
+ default: false
352
+ }
353
+ },
354
+
355
+ data: function data() {
356
+ return {
357
+ index: -1,
358
+ groupDisabled: false,
359
+ visible: true,
360
+ hitState: false,
361
+ hover: false
362
+ };
363
+ },
364
+
365
+
366
+ computed: {
367
+ isObject: function isObject() {
368
+ return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';
369
+ },
370
+ currentLabel: function currentLabel() {
371
+ return this.label || (this.isObject ? '' : this.value);
372
+ },
373
+ currentValue: function currentValue() {
374
+ return this.value || this.label || '';
375
+ },
376
+ itemSelected: function itemSelected() {
377
+ if (!this.select.multiple) {
378
+ return this.isEqual(this.value, this.select.value);
379
+ } else {
380
+ return this.contains(this.select.value, this.value);
381
+ }
382
+ },
383
+ limitReached: function limitReached() {
384
+ if (this.select.multiple) {
385
+ return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;
386
+ } else {
387
+ return false;
388
+ }
389
+ }
390
+ },
391
+
392
+ watch: {
393
+ currentLabel: function currentLabel() {
394
+ if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');
395
+ },
396
+ value: function value(val, oldVal) {
397
+ var _select = this.select,
398
+ remote = _select.remote,
399
+ valueKey = _select.valueKey;
400
+
401
+ if (!this.created && !remote) {
402
+ if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {
403
+ return;
404
+ }
405
+ this.dispatch('ElSelect', 'setSelected');
406
+ }
407
+ }
408
+ },
409
+
410
+ methods: {
411
+ isEqual: function isEqual(a, b) {
412
+ if (!this.isObject) {
413
+ return a === b;
414
+ } else {
415
+ var valueKey = this.select.valueKey;
416
+ return Object(util_["getValueByPath"])(a, valueKey) === Object(util_["getValueByPath"])(b, valueKey);
417
+ }
418
+ },
419
+ contains: function contains() {
420
+ var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
421
+ var target = arguments[1];
422
+
423
+ if (!this.isObject) {
424
+ return arr && arr.indexOf(target) > -1;
425
+ } else {
426
+ var valueKey = this.select.valueKey;
427
+ return arr && arr.some(function (item) {
428
+ return Object(util_["getValueByPath"])(item, valueKey) === Object(util_["getValueByPath"])(target, valueKey);
429
+ });
430
+ }
431
+ },
432
+ handleGroupDisabled: function handleGroupDisabled(val) {
433
+ this.groupDisabled = val;
434
+ },
435
+ hoverItem: function hoverItem() {
436
+ if (!this.disabled && !this.groupDisabled) {
437
+ this.select.hoverIndex = this.select.options.indexOf(this);
438
+ }
439
+ },
440
+ selectOptionClick: function selectOptionClick() {
441
+ if (this.disabled !== true && this.groupDisabled !== true) {
442
+ this.dispatch('ElSelect', 'handleOptionClick', [this, true]);
443
+ }
444
+ },
445
+ queryChange: function queryChange(query) {
446
+ this.visible = new RegExp(Object(util_["escapeRegexpString"])(query), 'i').test(this.currentLabel) || this.created;
447
+ if (!this.visible) {
448
+ this.select.filteredOptionsCount--;
449
+ }
450
+ }
451
+ },
452
+
453
+ created: function created() {
454
+ this.select.options.push(this);
455
+ this.select.cachedOptions.push(this);
456
+ this.select.optionsCount++;
457
+ this.select.filteredOptionsCount++;
458
+
459
+ this.$on('queryChange', this.queryChange);
460
+ this.$on('handleGroupDisabled', this.handleGroupDisabled);
461
+ },
462
+ beforeDestroy: function beforeDestroy() {
463
+ var _select2 = this.select,
464
+ selected = _select2.selected,
465
+ multiple = _select2.multiple;
466
+
467
+ var selectedOptions = multiple ? selected : [selected];
468
+ var index = this.select.cachedOptions.indexOf(this);
469
+ var selectedIndex = selectedOptions.indexOf(this);
470
+
471
+ // if option is not selected, remove it from cache
472
+ if (index > -1 && selectedIndex < 0) {
473
+ this.select.cachedOptions.splice(index, 1);
474
+ }
475
+ this.select.onOptionDestroy(this.select.options.indexOf(this));
476
+ }
477
477
  });
478
478
  // CONCATENATED MODULE: ./packages/select/src/option.vue?vue&type=script&lang=js
479
479
  /* harmony default export */ var src_optionvue_type_script_lang_js = (optionvue_type_script_lang_js);
@@ -531,7 +531,7 @@ module.exports = require("element-ui/lib/utils/vue-popper");
531
531
  // ESM COMPAT FLAG
532
532
  __webpack_require__.r(__webpack_exports__);
533
533
 
534
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=6398edf2
534
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=0f48f6e9
535
535
  var render = function () {
536
536
  var _vm = this
537
537
  var _h = _vm.$createElement
@@ -983,9 +983,9 @@ var render = function () {
983
983
  ? _vm._t("empty")
984
984
  : _c("p", { staticClass: "el-select-dropdown__empty" }, [
985
985
  _vm._v(
986
- "\n " +
986
+ "\n\t\t\t\t\t" +
987
987
  _vm._s(_vm.emptyText) +
988
- "\n "
988
+ "\n\t\t\t\t"
989
989
  ),
990
990
  ]),
991
991
  ]
@@ -1004,7 +1004,7 @@ var staticRenderFns = []
1004
1004
  render._withStripped = true
1005
1005
 
1006
1006
 
1007
- // CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=6398edf2
1007
+ // CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=0f48f6e9
1008
1008
 
1009
1009
  // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter"
1010
1010
  var emitter_ = __webpack_require__(4);
@@ -1022,8 +1022,8 @@ var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
1022
1022
  var input_ = __webpack_require__(11);
1023
1023
  var input_default = /*#__PURE__*/__webpack_require__.n(input_);
1024
1024
 
1025
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select-dropdown.vue?vue&type=template&id=6f750d4a
1026
- var select_dropdownvue_type_template_id_6f750d4a_render = function () {
1025
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select-dropdown.vue?vue&type=template&id=278c4356
1026
+ var select_dropdownvue_type_template_id_278c4356_render = function () {
1027
1027
  var _vm = this
1028
1028
  var _h = _vm.$createElement
1029
1029
  var _c = _vm._self._c || _h
@@ -1038,11 +1038,11 @@ var select_dropdownvue_type_template_id_6f750d4a_render = function () {
1038
1038
  2
1039
1039
  )
1040
1040
  }
1041
- var select_dropdownvue_type_template_id_6f750d4a_staticRenderFns = []
1042
- select_dropdownvue_type_template_id_6f750d4a_render._withStripped = true
1041
+ var select_dropdownvue_type_template_id_278c4356_staticRenderFns = []
1042
+ select_dropdownvue_type_template_id_278c4356_render._withStripped = true
1043
1043
 
1044
1044
 
1045
- // CONCATENATED MODULE: ./packages/select/src/select-dropdown.vue?vue&type=template&id=6f750d4a
1045
+ // CONCATENATED MODULE: ./packages/select/src/select-dropdown.vue?vue&type=template&id=278c4356
1046
1046
 
1047
1047
  // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper"
1048
1048
  var vue_popper_ = __webpack_require__(5);
@@ -1062,68 +1062,68 @@ var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
1062
1062
 
1063
1063
 
1064
1064
  /* harmony default export */ var select_dropdownvue_type_script_lang_js = ({
1065
- name: 'ElSelectDropdown',
1066
-
1067
- componentName: 'ElSelectDropdown',
1068
-
1069
- mixins: [vue_popper_default.a],
1070
-
1071
- props: {
1072
- placement: {
1073
- default: 'bottom-start'
1074
- },
1075
-
1076
- boundariesPadding: {
1077
- default: 0
1078
- },
1079
-
1080
- popperOptions: {
1081
- default: function _default() {
1082
- return {
1083
- gpuAcceleration: false
1084
- };
1085
- }
1086
- },
1087
-
1088
- visibleArrow: {
1089
- default: true
1090
- },
1091
-
1092
- appendToBody: {
1093
- type: Boolean,
1094
- default: true
1095
- }
1096
- },
1097
-
1098
- data: function data() {
1099
- return {
1100
- minWidth: ''
1101
- };
1102
- },
1103
-
1104
-
1105
- computed: {
1106
- popperClass: function popperClass() {
1107
- return this.$parent.popperClass;
1108
- }
1109
- },
1110
-
1111
- watch: {
1112
- '$parent.inputWidth': function $parentInputWidth() {
1113
- this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';
1114
- }
1115
- },
1116
-
1117
- mounted: function mounted() {
1118
- var _this = this;
1119
-
1120
- this.referenceElm = this.$parent.$refs.reference.$el;
1121
- this.$parent.popperElm = this.popperElm = this.$el;
1122
- this.$on('updatePopper', function () {
1123
- if (_this.$parent.visible) _this.updatePopper();
1124
- });
1125
- this.$on('destroyPopper', this.destroyPopper);
1126
- }
1065
+ name: 'ElSelectDropdown',
1066
+
1067
+ componentName: 'ElSelectDropdown',
1068
+
1069
+ mixins: [vue_popper_default.a],
1070
+
1071
+ props: {
1072
+ placement: {
1073
+ default: 'bottom-start'
1074
+ },
1075
+
1076
+ boundariesPadding: {
1077
+ default: 0
1078
+ },
1079
+
1080
+ popperOptions: {
1081
+ default: function _default() {
1082
+ return {
1083
+ gpuAcceleration: false
1084
+ };
1085
+ }
1086
+ },
1087
+
1088
+ visibleArrow: {
1089
+ default: true
1090
+ },
1091
+
1092
+ appendToBody: {
1093
+ type: Boolean,
1094
+ default: true
1095
+ }
1096
+ },
1097
+
1098
+ data: function data() {
1099
+ return {
1100
+ minWidth: ''
1101
+ };
1102
+ },
1103
+
1104
+
1105
+ computed: {
1106
+ popperClass: function popperClass() {
1107
+ return this.$parent.popperClass;
1108
+ }
1109
+ },
1110
+
1111
+ watch: {
1112
+ '$parent.inputWidth': function $parentInputWidth() {
1113
+ this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';
1114
+ }
1115
+ },
1116
+
1117
+ mounted: function mounted() {
1118
+ var _this = this;
1119
+
1120
+ this.referenceElm = this.$parent.$refs.reference.$el;
1121
+ this.$parent.popperElm = this.popperElm = this.$el;
1122
+ this.$on('updatePopper', function () {
1123
+ if (_this.$parent.visible) _this.updatePopper();
1124
+ });
1125
+ this.$on('destroyPopper', this.destroyPopper);
1126
+ }
1127
1127
  });
1128
1128
  // CONCATENATED MODULE: ./packages/select/src/select-dropdown.vue?vue&type=script&lang=js
1129
1129
  /* harmony default export */ var src_select_dropdownvue_type_script_lang_js = (select_dropdownvue_type_script_lang_js);
@@ -1140,8 +1140,8 @@ var componentNormalizer = __webpack_require__(0);
1140
1140
 
1141
1141
  var component = Object(componentNormalizer["a" /* default */])(
1142
1142
  src_select_dropdownvue_type_script_lang_js,
1143
- select_dropdownvue_type_template_id_6f750d4a_render,
1144
- select_dropdownvue_type_template_id_6f750d4a_staticRenderFns,
1143
+ select_dropdownvue_type_template_id_278c4356_render,
1144
+ select_dropdownvue_type_template_id_278c4356_staticRenderFns,
1145
1145
  false,
1146
1146
  null,
1147
1147
  null,
@@ -1181,67 +1181,67 @@ var util_ = __webpack_require__(3);
1181
1181
 
1182
1182
  // CONCATENATED MODULE: ./packages/select/src/navigation-mixin.js
1183
1183
  /* harmony default export */ var navigation_mixin = ({
1184
- data: function data() {
1185
- return {
1186
- hoverOption: -1
1187
- };
1188
- },
1189
-
1190
-
1191
- computed: {
1192
- optionsAllDisabled: function optionsAllDisabled() {
1193
- return this.options.filter(function (option) {
1194
- return option.visible;
1195
- }).every(function (option) {
1196
- return option.disabled;
1197
- });
1198
- }
1199
- },
1200
-
1201
- watch: {
1202
- hoverIndex: function hoverIndex(val) {
1203
- var _this = this;
1204
-
1205
- if (typeof val === 'number' && val > -1) {
1206
- this.hoverOption = this.options[val] || {};
1207
- }
1208
- this.options.forEach(function (option) {
1209
- option.hover = _this.hoverOption === option;
1210
- });
1211
- }
1212
- },
1213
-
1214
- methods: {
1215
- navigateOptions: function navigateOptions(direction) {
1216
- var _this2 = this;
1217
-
1218
- if (!this.visible) {
1219
- this.visible = true;
1220
- return;
1221
- }
1222
- if (this.options.length === 0 || this.filteredOptionsCount === 0) return;
1223
- if (!this.optionsAllDisabled) {
1224
- if (direction === 'next') {
1225
- this.hoverIndex++;
1226
- if (this.hoverIndex === this.options.length) {
1227
- this.hoverIndex = 0;
1228
- }
1229
- } else if (direction === 'prev') {
1230
- this.hoverIndex--;
1231
- if (this.hoverIndex < 0) {
1232
- this.hoverIndex = this.options.length - 1;
1233
- }
1234
- }
1235
- var option = this.options[this.hoverIndex];
1236
- if (option.disabled === true || option.groupDisabled === true || !option.visible) {
1237
- this.navigateOptions(direction);
1238
- }
1239
- this.$nextTick(function () {
1240
- return _this2.scrollToOption(_this2.hoverOption);
1241
- });
1242
- }
1243
- }
1244
- }
1184
+ data: function data() {
1185
+ return {
1186
+ hoverOption: -1
1187
+ };
1188
+ },
1189
+
1190
+
1191
+ computed: {
1192
+ optionsAllDisabled: function optionsAllDisabled() {
1193
+ return this.options.filter(function (option) {
1194
+ return option.visible;
1195
+ }).every(function (option) {
1196
+ return option.disabled;
1197
+ });
1198
+ }
1199
+ },
1200
+
1201
+ watch: {
1202
+ hoverIndex: function hoverIndex(val) {
1203
+ var _this = this;
1204
+
1205
+ if (typeof val === 'number' && val > -1) {
1206
+ this.hoverOption = this.options[val] || {};
1207
+ }
1208
+ this.options.forEach(function (option) {
1209
+ option.hover = _this.hoverOption === option;
1210
+ });
1211
+ }
1212
+ },
1213
+
1214
+ methods: {
1215
+ navigateOptions: function navigateOptions(direction) {
1216
+ var _this2 = this;
1217
+
1218
+ if (!this.visible) {
1219
+ this.visible = true;
1220
+ return;
1221
+ }
1222
+ if (this.options.length === 0 || this.filteredOptionsCount === 0) return;
1223
+ if (!this.optionsAllDisabled) {
1224
+ if (direction === 'next') {
1225
+ this.hoverIndex++;
1226
+ if (this.hoverIndex === this.options.length) {
1227
+ this.hoverIndex = 0;
1228
+ }
1229
+ } else if (direction === 'prev') {
1230
+ this.hoverIndex--;
1231
+ if (this.hoverIndex < 0) {
1232
+ this.hoverIndex = this.options.length - 1;
1233
+ }
1234
+ }
1235
+ var option = this.options[this.hoverIndex];
1236
+ if (option.disabled === true || option.groupDisabled === true || !option.visible) {
1237
+ this.navigateOptions(direction);
1238
+ }
1239
+ this.$nextTick(function () {
1240
+ return _this2.scrollToOption(_this2.hoverOption);
1241
+ });
1242
+ }
1243
+ }
1244
+ }
1245
1245
  });
1246
1246
  // EXTERNAL MODULE: external "element-ui/lib/utils/shared"
1247
1247
  var shared_ = __webpack_require__(21);
@@ -1402,726 +1402,726 @@ var shared_ = __webpack_require__(21);
1402
1402
 
1403
1403
 
1404
1404
  /* harmony default export */ var selectvue_type_script_lang_js = ({
1405
- mixins: [emitter_default.a, locale_default.a, focus_default()('reference'), navigation_mixin],
1406
-
1407
- name: 'ElSelect',
1408
-
1409
- componentName: 'ElSelect',
1410
-
1411
- inject: {
1412
- elForm: {
1413
- default: ''
1414
- },
1415
-
1416
- elFormItem: {
1417
- default: ''
1418
- }
1419
- },
1420
-
1421
- provide: function provide() {
1422
- return {
1423
- 'select': this
1424
- };
1425
- },
1426
-
1427
-
1428
- computed: {
1429
- _elFormItemSize: function _elFormItemSize() {
1430
- return (this.elFormItem || {}).elFormItemSize;
1431
- },
1432
- readonly: function readonly() {
1433
- return !this.filterable || this.multiple || !Object(util_["isIE"])() && !Object(util_["isEdge"])() && !this.visible;
1434
- },
1435
- showClose: function showClose() {
1436
- var hasValue = this.multiple ? Array.isArray(this.value) && this.value.length > 0 : this.value !== undefined && this.value !== null && this.value !== '';
1437
- var criteria = this.clearable && !this.selectDisabled && this.inputHovering && hasValue;
1438
- return criteria;
1439
- },
1440
- iconClass: function iconClass() {
1441
- return this.remote && this.filterable ? '' : this.visible ? 'arrow-up is-reverse' : 'arrow-up';
1442
- },
1443
- debounce: function debounce() {
1444
- return this.remote ? 300 : 0;
1445
- },
1446
- emptyText: function emptyText() {
1447
- if (this.loading) {
1448
- return this.loadingText || this.t('el.select.loading');
1449
- } else {
1450
- if (this.remote && this.query === '' && this.options.length === 0) return false;
1451
- if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {
1452
- return this.noMatchText || this.t('el.select.noMatch');
1453
- }
1454
- if (this.options.length === 0) {
1455
- return this.noDataText || this.t('el.select.noData');
1456
- }
1457
- }
1458
- return null;
1459
- },
1460
- showNewOption: function showNewOption() {
1461
- var _this = this;
1462
-
1463
- var hasExistingOption = this.options.filter(function (option) {
1464
- return !option.created;
1465
- }).some(function (option) {
1466
- return option.currentLabel === _this.query;
1467
- });
1468
- return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;
1469
- },
1470
- selectSize: function selectSize() {
1471
- return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
1472
- },
1473
- selectDisabled: function selectDisabled() {
1474
- return this.disabled || (this.elForm || {}).disabled;
1475
- },
1476
- collapseTagSize: function collapseTagSize() {
1477
- return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';
1478
- },
1479
- propPlaceholder: function propPlaceholder() {
1480
- return typeof this.placeholder !== 'undefined' ? this.placeholder : this.t('el.select.placeholder');
1481
- }
1482
- },
1483
-
1484
- components: {
1485
- ElInput: input_default.a,
1486
- ElSelectMenu: select_dropdown,
1487
- ElOption: src_option["a" /* default */],
1488
- ElTag: tag_default.a,
1489
- ElScrollbar: scrollbar_default.a
1490
- },
1491
-
1492
- directives: { Clickoutside: clickoutside_default.a },
1493
-
1494
- props: {
1495
- name: String,
1496
- id: String,
1497
- value: {
1498
- required: true
1499
- },
1500
- autocomplete: {
1501
- type: String,
1502
- default: 'off'
1503
- },
1504
- /** @Deprecated in next major version */
1505
- autoComplete: {
1506
- type: String,
1507
- validator: function validator(val) {
1508
- false && false;
1509
- return true;
1510
- }
1511
- },
1512
- automaticDropdown: Boolean,
1513
- size: String,
1514
- disabled: Boolean,
1515
- clearable: Boolean,
1516
- filterable: Boolean,
1517
- allowCreate: Boolean,
1518
- loading: Boolean,
1519
- popperClass: String,
1520
- remote: Boolean,
1521
- loadingText: String,
1522
- noMatchText: String,
1523
- noDataText: String,
1524
- remoteMethod: Function,
1525
- filterMethod: Function,
1526
- multiple: Boolean,
1527
- multipleLimit: {
1528
- type: Number,
1529
- default: 0
1530
- },
1531
- placeholder: {
1532
- type: String,
1533
- required: false
1534
- },
1535
- defaultFirstOption: Boolean,
1536
- reserveKeyword: Boolean,
1537
- valueKey: {
1538
- type: String,
1539
- default: 'value'
1540
- },
1541
- collapseTags: Boolean,
1542
- popperAppendToBody: {
1543
- type: Boolean,
1544
- default: true
1545
- }
1546
- },
1547
-
1548
- data: function data() {
1549
- return {
1550
- options: [],
1551
- cachedOptions: [],
1552
- createdLabel: null,
1553
- createdSelected: false,
1554
- selected: this.multiple ? [] : {},
1555
- inputLength: 20,
1556
- inputWidth: 0,
1557
- initialInputHeight: 0,
1558
- cachedPlaceHolder: '',
1559
- optionsCount: 0,
1560
- filteredOptionsCount: 0,
1561
- visible: false,
1562
- softFocus: false,
1563
- selectedLabel: '',
1564
- hoverIndex: -1,
1565
- query: '',
1566
- previousQuery: null,
1567
- inputHovering: false,
1568
- currentPlaceholder: '',
1569
- menuVisibleOnFocus: false,
1570
- isOnComposition: false,
1571
- isSilentBlur: false
1572
- };
1573
- },
1574
-
1575
-
1576
- watch: {
1577
- selectDisabled: function selectDisabled() {
1578
- var _this2 = this;
1579
-
1580
- this.$nextTick(function () {
1581
- _this2.resetInputHeight();
1582
- });
1583
- },
1584
- propPlaceholder: function propPlaceholder(val) {
1585
- this.cachedPlaceHolder = this.currentPlaceholder = val;
1586
- },
1587
- value: function value(val, oldVal) {
1588
- if (this.multiple) {
1589
- this.resetInputHeight();
1590
- if (val && val.length > 0 || this.$refs.input && this.query !== '') {
1591
- this.currentPlaceholder = '';
1592
- } else {
1593
- this.currentPlaceholder = this.cachedPlaceHolder;
1594
- }
1595
- if (this.filterable && !this.reserveKeyword) {
1596
- this.query = '';
1597
- this.handleQueryChange(this.query);
1598
- }
1599
- }
1600
- this.setSelected();
1601
- if (this.filterable && !this.multiple) {
1602
- this.inputLength = 20;
1603
- }
1604
- if (!Object(util_["valueEquals"])(val, oldVal)) {
1605
- this.dispatch('ElFormItem', 'el.form.change', val);
1606
- }
1607
- },
1608
- visible: function visible(val) {
1609
- var _this3 = this;
1610
-
1611
- if (!val) {
1612
- this.broadcast('ElSelectDropdown', 'destroyPopper');
1613
- if (this.$refs.input) {
1614
- this.$refs.input.blur();
1615
- }
1616
- this.query = '';
1617
- this.previousQuery = null;
1618
- this.selectedLabel = '';
1619
- this.inputLength = 20;
1620
- this.menuVisibleOnFocus = false;
1621
- this.resetHoverIndex();
1622
- this.$nextTick(function () {
1623
- if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {
1624
- _this3.currentPlaceholder = _this3.cachedPlaceHolder;
1625
- }
1626
- });
1627
- if (!this.multiple) {
1628
- if (this.selected) {
1629
- if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {
1630
- this.selectedLabel = this.createdLabel;
1631
- } else {
1632
- this.selectedLabel = this.selected.currentLabel;
1633
- }
1634
- if (this.filterable) this.query = this.selectedLabel;
1635
- }
1636
-
1637
- if (this.filterable) {
1638
- this.currentPlaceholder = this.cachedPlaceHolder;
1639
- }
1640
- }
1641
- } else {
1642
- this.broadcast('ElSelectDropdown', 'updatePopper');
1643
- if (this.filterable) {
1644
- this.query = this.remote ? '' : this.selectedLabel;
1645
- this.handleQueryChange(this.query);
1646
- if (this.multiple) {
1647
- this.$refs.input.focus();
1648
- } else {
1649
- if (!this.remote) {
1650
- this.broadcast('ElOption', 'queryChange', '');
1651
- this.broadcast('ElOptionGroup', 'queryChange');
1652
- }
1653
-
1654
- if (this.selectedLabel) {
1655
- this.currentPlaceholder = this.selectedLabel;
1656
- this.selectedLabel = '';
1657
- }
1658
- }
1659
- }
1660
- }
1661
- this.$emit('visible-change', val);
1662
- },
1663
- options: function options() {
1664
- var _this4 = this;
1665
-
1666
- if (this.$isServer) return;
1667
- this.$nextTick(function () {
1668
- _this4.broadcast('ElSelectDropdown', 'updatePopper');
1669
- });
1670
- if (this.multiple) {
1671
- this.resetInputHeight();
1672
- }
1673
- var inputs = this.$el.querySelectorAll('input');
1674
- if ([].indexOf.call(inputs, document.activeElement) === -1) {
1675
- this.setSelected();
1676
- }
1677
- if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
1678
- this.checkDefaultFirstOption();
1679
- }
1680
- }
1681
- },
1682
-
1683
- methods: {
1684
- handleNavigate: function handleNavigate(direction) {
1685
- if (this.isOnComposition) return;
1686
-
1687
- this.navigateOptions(direction);
1688
- },
1689
- handleComposition: function handleComposition(event) {
1690
- var _this5 = this;
1691
-
1692
- var text = event.target.value;
1693
- if (event.type === 'compositionend') {
1694
- this.isOnComposition = false;
1695
- this.$nextTick(function (_) {
1696
- return _this5.handleQueryChange(text);
1697
- });
1698
- } else {
1699
- var lastCharacter = text[text.length - 1] || '';
1700
- this.isOnComposition = !Object(shared_["isKorean"])(lastCharacter);
1701
- }
1702
- },
1703
- handleQueryChange: function handleQueryChange(val) {
1704
- var _this6 = this;
1705
-
1706
- if (this.previousQuery === val || this.isOnComposition) return;
1707
- if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {
1708
- this.previousQuery = val;
1709
- return;
1710
- }
1711
- this.previousQuery = val;
1712
- this.$nextTick(function () {
1713
- if (_this6.visible) _this6.broadcast('ElSelectDropdown', 'updatePopper');
1714
- });
1715
- this.hoverIndex = -1;
1716
- if (this.multiple && this.filterable) {
1717
- this.$nextTick(function () {
1718
- var length = _this6.$refs.input.value.length * 15 + 20;
1719
- _this6.inputLength = _this6.collapseTags ? Math.min(50, length) : length;
1720
- _this6.managePlaceholder();
1721
- _this6.resetInputHeight();
1722
- });
1723
- }
1724
- if (this.remote && typeof this.remoteMethod === 'function') {
1725
- this.hoverIndex = -1;
1726
- this.remoteMethod(val);
1727
- } else if (typeof this.filterMethod === 'function') {
1728
- this.filterMethod(val);
1729
- this.broadcast('ElOptionGroup', 'queryChange');
1730
- } else {
1731
- this.filteredOptionsCount = this.optionsCount;
1732
- this.broadcast('ElOption', 'queryChange', val);
1733
- this.broadcast('ElOptionGroup', 'queryChange');
1734
- }
1735
- if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
1736
- this.checkDefaultFirstOption();
1737
- }
1738
- },
1739
- scrollToOption: function scrollToOption(option) {
1740
- var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;
1741
- if (this.$refs.popper && target) {
1742
- var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');
1743
- scroll_into_view_default()(menu, target);
1744
- }
1745
- this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();
1746
- },
1747
- handleMenuEnter: function handleMenuEnter() {
1748
- var _this7 = this;
1749
-
1750
- this.$nextTick(function () {
1751
- return _this7.scrollToOption(_this7.selected);
1752
- });
1753
- },
1754
- emitChange: function emitChange(val) {
1755
- if (!Object(util_["valueEquals"])(this.value, val)) {
1756
- this.$emit('change', val);
1757
- }
1758
- },
1759
- getOption: function getOption(value) {
1760
- var option = void 0;
1761
- var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
1762
- var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';
1763
- var isUndefined = Object.prototype.toString.call(value).toLowerCase() === '[object undefined]';
1764
-
1765
- for (var i = this.cachedOptions.length - 1; i >= 0; i--) {
1766
- var cachedOption = this.cachedOptions[i];
1767
- var isEqual = isObject ? Object(util_["getValueByPath"])(cachedOption.value, this.valueKey) === Object(util_["getValueByPath"])(value, this.valueKey) : cachedOption.value === value;
1768
- if (isEqual) {
1769
- option = cachedOption;
1770
- break;
1771
- }
1772
- }
1773
- if (option) return option;
1774
- var label = !isObject && !isNull && !isUndefined ? String(value) : '';
1775
- var newOption = {
1776
- value: value,
1777
- currentLabel: label
1778
- };
1779
- if (this.multiple) {
1780
- newOption.hitState = false;
1781
- }
1782
- return newOption;
1783
- },
1784
- setSelected: function setSelected() {
1785
- var _this8 = this;
1786
-
1787
- if (!this.multiple) {
1788
- var option = this.getOption(this.value);
1789
- if (option.created) {
1790
- this.createdLabel = option.currentLabel;
1791
- this.createdSelected = true;
1792
- } else {
1793
- this.createdSelected = false;
1794
- }
1795
- this.selectedLabel = option.currentLabel;
1796
- this.selected = option;
1797
- if (this.filterable) this.query = this.selectedLabel;
1798
- return;
1799
- }
1800
- var result = [];
1801
- if (Array.isArray(this.value)) {
1802
- this.value.forEach(function (value) {
1803
- result.push(_this8.getOption(value));
1804
- });
1805
- }
1806
- this.selected = result;
1807
- this.$nextTick(function () {
1808
- _this8.resetInputHeight();
1809
- });
1810
- },
1811
- handleFocus: function handleFocus(event) {
1812
- if (!this.softFocus) {
1813
- if (this.automaticDropdown || this.filterable) {
1814
- if (this.filterable && !this.visible) {
1815
- this.menuVisibleOnFocus = true;
1816
- }
1817
- this.visible = true;
1818
- }
1819
- this.$emit('focus', event);
1820
- } else {
1821
- this.softFocus = false;
1822
- }
1823
- },
1824
- blur: function blur() {
1825
- this.visible = false;
1826
- this.$refs.reference.blur();
1827
- },
1828
- handleBlur: function handleBlur(event) {
1829
- var _this9 = this;
1830
-
1831
- setTimeout(function () {
1832
- if (_this9.isSilentBlur) {
1833
- _this9.isSilentBlur = false;
1834
- } else {
1835
- _this9.$emit('blur', event);
1836
- }
1837
- }, 50);
1838
- this.softFocus = false;
1839
- },
1840
- handleClearClick: function handleClearClick(event) {
1841
- this.deleteSelected(event);
1842
- },
1843
- doDestroy: function doDestroy() {
1844
- this.$refs.popper && this.$refs.popper.doDestroy();
1845
- },
1846
- handleClose: function handleClose() {
1847
- this.visible = false;
1848
- },
1849
- toggleLastOptionHitState: function toggleLastOptionHitState(hit) {
1850
- if (!Array.isArray(this.selected)) return;
1851
- var option = this.selected[this.selected.length - 1];
1852
- if (!option) return;
1853
-
1854
- if (hit === true || hit === false) {
1855
- option.hitState = hit;
1856
- return hit;
1857
- }
1858
-
1859
- option.hitState = !option.hitState;
1860
- return option.hitState;
1861
- },
1862
- deletePrevTag: function deletePrevTag(e) {
1863
- if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {
1864
- var value = this.value.slice();
1865
- value.pop();
1866
- this.$emit('input', value);
1867
- this.emitChange(value);
1868
- }
1869
- },
1870
- managePlaceholder: function managePlaceholder() {
1871
- if (this.currentPlaceholder !== '') {
1872
- this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;
1873
- }
1874
- },
1875
- resetInputState: function resetInputState(e) {
1876
- if (e.keyCode !== 8) this.toggleLastOptionHitState(false);
1877
- this.inputLength = this.$refs.input.value.length * 15 + 20;
1878
- this.resetInputHeight();
1879
- },
1880
- resetInputHeight: function resetInputHeight() {
1881
- var _this10 = this;
1882
-
1883
- if (this.collapseTags && !this.filterable) return;
1884
- this.$nextTick(function () {
1885
- if (!_this10.$refs.reference) return;
1886
- var inputChildNodes = _this10.$refs.reference.$el.childNodes;
1887
- var input = [].filter.call(inputChildNodes, function (item) {
1888
- return item.tagName === 'INPUT';
1889
- })[0];
1890
- var tags = _this10.$refs.tags;
1891
- var tagsHeight = tags ? Math.round(tags.getBoundingClientRect().height) : 0;
1892
- var sizeInMap = _this10.initialInputHeight || 40;
1893
- input.style.height = _this10.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tagsHeight + (tagsHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';
1894
- if (_this10.visible && _this10.emptyText !== false) {
1895
- _this10.broadcast('ElSelectDropdown', 'updatePopper');
1896
- }
1897
- });
1898
- },
1899
- resetHoverIndex: function resetHoverIndex() {
1900
- var _this11 = this;
1901
-
1902
- setTimeout(function () {
1903
- if (!_this11.multiple) {
1904
- _this11.hoverIndex = _this11.options.indexOf(_this11.selected);
1905
- } else {
1906
- if (_this11.selected.length > 0) {
1907
- _this11.hoverIndex = Math.min.apply(null, _this11.selected.map(function (item) {
1908
- return _this11.options.indexOf(item);
1909
- }));
1910
- } else {
1911
- _this11.hoverIndex = -1;
1912
- }
1913
- }
1914
- }, 300);
1915
- },
1916
- handleOptionSelect: function handleOptionSelect(option, byClick) {
1917
- var _this12 = this;
1918
-
1919
- if (this.multiple) {
1920
- var value = (this.value || []).slice();
1921
- var optionIndex = this.getValueIndex(value, option.value);
1922
- if (optionIndex > -1) {
1923
- value.splice(optionIndex, 1);
1924
- } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {
1925
- value.push(option.value);
1926
- }
1927
- this.$emit('input', value);
1928
- this.emitChange(value);
1929
- if (option.created) {
1930
- this.query = '';
1931
- this.handleQueryChange('');
1932
- this.inputLength = 20;
1933
- }
1934
- if (this.filterable) this.$refs.input.focus();
1935
- } else {
1936
- this.$emit('input', option.value);
1937
- this.emitChange(option.value);
1938
- this.visible = false;
1939
- }
1940
- this.isSilentBlur = byClick;
1941
- this.setSoftFocus();
1942
- if (this.visible) return;
1943
- this.$nextTick(function () {
1944
- _this12.scrollToOption(option);
1945
- });
1946
- },
1947
- setSoftFocus: function setSoftFocus() {
1948
- this.softFocus = true;
1949
- var input = this.$refs.input || this.$refs.reference;
1950
- if (input) {
1951
- input.focus();
1952
- }
1953
- },
1954
- getValueIndex: function getValueIndex() {
1955
- var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1956
- var value = arguments[1];
1957
-
1958
- var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
1959
- if (!isObject) {
1960
- return arr.indexOf(value);
1961
- } else {
1962
- var valueKey = this.valueKey;
1963
- var index = -1;
1964
- arr.some(function (item, i) {
1965
- if (Object(util_["getValueByPath"])(item, valueKey) === Object(util_["getValueByPath"])(value, valueKey)) {
1966
- index = i;
1967
- return true;
1968
- }
1969
- return false;
1970
- });
1971
- return index;
1972
- }
1973
- },
1974
- toggleMenu: function toggleMenu() {
1975
- if (!this.selectDisabled) {
1976
- if (this.menuVisibleOnFocus) {
1977
- this.menuVisibleOnFocus = false;
1978
- } else {
1979
- this.visible = !this.visible;
1980
- }
1981
- if (this.visible) {
1982
- (this.$refs.input || this.$refs.reference).focus();
1983
- }
1984
- }
1985
- },
1986
- selectOption: function selectOption() {
1987
- if (!this.visible) {
1988
- this.toggleMenu();
1989
- } else {
1990
- if (this.options[this.hoverIndex]) {
1991
- this.handleOptionSelect(this.options[this.hoverIndex]);
1992
- }
1993
- }
1994
- },
1995
- deleteSelected: function deleteSelected(event) {
1996
- event.stopPropagation();
1997
- var value = this.multiple ? [] : '';
1998
- this.$emit('input', value);
1999
- this.emitChange(value);
2000
- this.visible = false;
2001
- this.$emit('clear');
2002
- },
2003
- deleteTag: function deleteTag(event, tag) {
2004
- var index = this.selected.indexOf(tag);
2005
- if (index > -1 && !this.selectDisabled) {
2006
- var value = this.value.slice();
2007
- value.splice(index, 1);
2008
- this.$emit('input', value);
2009
- this.emitChange(value);
2010
- this.$emit('remove-tag', tag.value);
2011
- }
2012
- event.stopPropagation();
2013
- },
2014
- onInputChange: function onInputChange() {
2015
- if (this.filterable && this.query !== this.selectedLabel) {
2016
- this.query = this.selectedLabel;
2017
- this.handleQueryChange(this.query);
2018
- }
2019
- },
2020
- onOptionDestroy: function onOptionDestroy(index) {
2021
- if (index > -1) {
2022
- this.optionsCount--;
2023
- this.filteredOptionsCount--;
2024
- this.options.splice(index, 1);
2025
- }
2026
- },
2027
- resetInputWidth: function resetInputWidth() {
2028
- this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;
2029
- },
2030
- handleResize: function handleResize() {
2031
- this.resetInputWidth();
2032
- if (this.multiple) this.resetInputHeight();
2033
- },
2034
- checkDefaultFirstOption: function checkDefaultFirstOption() {
2035
- this.hoverIndex = -1;
2036
- // highlight the created option
2037
- var hasCreated = false;
2038
- for (var i = this.options.length - 1; i >= 0; i--) {
2039
- if (this.options[i].created) {
2040
- hasCreated = true;
2041
- this.hoverIndex = i;
2042
- break;
2043
- }
2044
- }
2045
- if (hasCreated) return;
2046
- for (var _i = 0; _i !== this.options.length; ++_i) {
2047
- var option = this.options[_i];
2048
- if (this.query) {
2049
- // highlight first options that passes the filter
2050
- if (!option.disabled && !option.groupDisabled && option.visible) {
2051
- this.hoverIndex = _i;
2052
- break;
2053
- }
2054
- } else {
2055
- // highlight currently selected option
2056
- if (option.itemSelected) {
2057
- this.hoverIndex = _i;
2058
- break;
2059
- }
2060
- }
2061
- }
2062
- },
2063
- getValueKey: function getValueKey(item) {
2064
- if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {
2065
- return item.value;
2066
- } else {
2067
- return Object(util_["getValueByPath"])(item.value, this.valueKey);
2068
- }
2069
- }
2070
- },
2071
-
2072
- created: function created() {
2073
- var _this13 = this;
2074
-
2075
- this.cachedPlaceHolder = this.currentPlaceholder = this.propPlaceholder;
2076
- if (this.multiple && !Array.isArray(this.value)) {
2077
- this.$emit('input', []);
2078
- }
2079
- if (!this.multiple && Array.isArray(this.value)) {
2080
- this.$emit('input', '');
2081
- }
2082
-
2083
- this.debouncedOnInputChange = debounce_default()(this.debounce, function () {
2084
- _this13.onInputChange();
2085
- });
2086
-
2087
- this.debouncedQueryChange = debounce_default()(this.debounce, function (e) {
2088
- _this13.handleQueryChange(e.target.value);
2089
- });
2090
-
2091
- this.$on('handleOptionClick', this.handleOptionSelect);
2092
- this.$on('setSelected', this.setSelected);
2093
- },
2094
- mounted: function mounted() {
2095
- var _this14 = this;
2096
-
2097
- if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {
2098
- this.currentPlaceholder = '';
2099
- }
2100
- Object(resize_event_["addResizeListener"])(this.$el, this.handleResize);
2101
-
2102
- var reference = this.$refs.reference;
2103
- if (reference && reference.$el) {
2104
- var sizeMap = {
2105
- medium: 36,
2106
- small: 32,
2107
- mini: 28
2108
- };
2109
- var input = reference.$el.querySelector('input');
2110
- this.initialInputHeight = input.getBoundingClientRect().height || sizeMap[this.selectSize];
2111
- }
2112
- if (this.remote && this.multiple) {
2113
- this.resetInputHeight();
2114
- }
2115
- this.$nextTick(function () {
2116
- if (reference && reference.$el) {
2117
- _this14.inputWidth = reference.$el.getBoundingClientRect().width;
2118
- }
2119
- });
2120
- this.setSelected();
2121
- },
2122
- beforeDestroy: function beforeDestroy() {
2123
- if (this.$el && this.handleResize) Object(resize_event_["removeResizeListener"])(this.$el, this.handleResize);
2124
- }
1405
+ mixins: [emitter_default.a, locale_default.a, focus_default()('reference'), navigation_mixin],
1406
+
1407
+ name: 'ElSelect',
1408
+
1409
+ componentName: 'ElSelect',
1410
+
1411
+ inject: {
1412
+ elForm: {
1413
+ default: ''
1414
+ },
1415
+
1416
+ elFormItem: {
1417
+ default: ''
1418
+ }
1419
+ },
1420
+
1421
+ provide: function provide() {
1422
+ return {
1423
+ 'select': this
1424
+ };
1425
+ },
1426
+
1427
+
1428
+ computed: {
1429
+ _elFormItemSize: function _elFormItemSize() {
1430
+ return (this.elFormItem || {}).elFormItemSize;
1431
+ },
1432
+ readonly: function readonly() {
1433
+ return !this.filterable || this.multiple || !Object(util_["isIE"])() && !Object(util_["isEdge"])() && !this.visible;
1434
+ },
1435
+ showClose: function showClose() {
1436
+ var hasValue = this.multiple ? Array.isArray(this.value) && this.value.length > 0 : this.value !== undefined && this.value !== null && this.value !== '';
1437
+ var criteria = this.clearable && !this.selectDisabled && this.inputHovering && hasValue;
1438
+ return criteria;
1439
+ },
1440
+ iconClass: function iconClass() {
1441
+ return this.remote && this.filterable ? '' : this.visible ? 'arrow-up is-reverse' : 'arrow-up';
1442
+ },
1443
+ debounce: function debounce() {
1444
+ return this.remote ? 300 : 0;
1445
+ },
1446
+ emptyText: function emptyText() {
1447
+ if (this.loading) {
1448
+ return this.loadingText || this.t('el.select.loading');
1449
+ } else {
1450
+ if (this.remote && this.query === '' && this.options.length === 0) return false;
1451
+ if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {
1452
+ return this.noMatchText || this.t('el.select.noMatch');
1453
+ }
1454
+ if (this.options.length === 0) {
1455
+ return this.noDataText || this.t('el.select.noData');
1456
+ }
1457
+ }
1458
+ return null;
1459
+ },
1460
+ showNewOption: function showNewOption() {
1461
+ var _this = this;
1462
+
1463
+ var hasExistingOption = this.options.filter(function (option) {
1464
+ return !option.created;
1465
+ }).some(function (option) {
1466
+ return option.currentLabel === _this.query;
1467
+ });
1468
+ return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;
1469
+ },
1470
+ selectSize: function selectSize() {
1471
+ return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
1472
+ },
1473
+ selectDisabled: function selectDisabled() {
1474
+ return this.disabled || (this.elForm || {}).disabled;
1475
+ },
1476
+ collapseTagSize: function collapseTagSize() {
1477
+ return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';
1478
+ },
1479
+ propPlaceholder: function propPlaceholder() {
1480
+ return typeof this.placeholder !== 'undefined' ? this.placeholder : this.t('el.select.placeholder');
1481
+ }
1482
+ },
1483
+
1484
+ components: {
1485
+ ElInput: input_default.a,
1486
+ ElSelectMenu: select_dropdown,
1487
+ ElOption: src_option["a" /* default */],
1488
+ ElTag: tag_default.a,
1489
+ ElScrollbar: scrollbar_default.a
1490
+ },
1491
+
1492
+ directives: { Clickoutside: clickoutside_default.a },
1493
+
1494
+ props: {
1495
+ name: String,
1496
+ id: String,
1497
+ value: {
1498
+ required: true
1499
+ },
1500
+ autocomplete: {
1501
+ type: String,
1502
+ default: 'off'
1503
+ },
1504
+ /** @Deprecated in next major version */
1505
+ autoComplete: {
1506
+ type: String,
1507
+ validator: function validator(val) {
1508
+ false && false;
1509
+ return true;
1510
+ }
1511
+ },
1512
+ automaticDropdown: Boolean,
1513
+ size: String,
1514
+ disabled: Boolean,
1515
+ clearable: Boolean,
1516
+ filterable: Boolean,
1517
+ allowCreate: Boolean,
1518
+ loading: Boolean,
1519
+ popperClass: String,
1520
+ remote: Boolean,
1521
+ loadingText: String,
1522
+ noMatchText: String,
1523
+ noDataText: String,
1524
+ remoteMethod: Function,
1525
+ filterMethod: Function,
1526
+ multiple: Boolean,
1527
+ multipleLimit: {
1528
+ type: Number,
1529
+ default: 0
1530
+ },
1531
+ placeholder: {
1532
+ type: String,
1533
+ required: false
1534
+ },
1535
+ defaultFirstOption: Boolean,
1536
+ reserveKeyword: Boolean,
1537
+ valueKey: {
1538
+ type: String,
1539
+ default: 'value'
1540
+ },
1541
+ collapseTags: Boolean,
1542
+ popperAppendToBody: {
1543
+ type: Boolean,
1544
+ default: true
1545
+ }
1546
+ },
1547
+
1548
+ data: function data() {
1549
+ return {
1550
+ options: [],
1551
+ cachedOptions: [],
1552
+ createdLabel: null,
1553
+ createdSelected: false,
1554
+ selected: this.multiple ? [] : {},
1555
+ inputLength: 20,
1556
+ inputWidth: 0,
1557
+ initialInputHeight: 0,
1558
+ cachedPlaceHolder: '',
1559
+ optionsCount: 0,
1560
+ filteredOptionsCount: 0,
1561
+ visible: false,
1562
+ softFocus: false,
1563
+ selectedLabel: '',
1564
+ hoverIndex: -1,
1565
+ query: '',
1566
+ previousQuery: null,
1567
+ inputHovering: false,
1568
+ currentPlaceholder: '',
1569
+ menuVisibleOnFocus: false,
1570
+ isOnComposition: false,
1571
+ isSilentBlur: false
1572
+ };
1573
+ },
1574
+
1575
+
1576
+ watch: {
1577
+ selectDisabled: function selectDisabled() {
1578
+ var _this2 = this;
1579
+
1580
+ this.$nextTick(function () {
1581
+ _this2.resetInputHeight();
1582
+ });
1583
+ },
1584
+ propPlaceholder: function propPlaceholder(val) {
1585
+ this.cachedPlaceHolder = this.currentPlaceholder = val;
1586
+ },
1587
+ value: function value(val, oldVal) {
1588
+ if (this.multiple) {
1589
+ this.resetInputHeight();
1590
+ if (val && val.length > 0 || this.$refs.input && this.query !== '') {
1591
+ this.currentPlaceholder = '';
1592
+ } else {
1593
+ this.currentPlaceholder = this.cachedPlaceHolder;
1594
+ }
1595
+ if (this.filterable && !this.reserveKeyword) {
1596
+ this.query = '';
1597
+ this.handleQueryChange(this.query);
1598
+ }
1599
+ }
1600
+ this.setSelected();
1601
+ if (this.filterable && !this.multiple) {
1602
+ this.inputLength = 20;
1603
+ }
1604
+ if (!Object(util_["valueEquals"])(val, oldVal)) {
1605
+ this.dispatch('ElFormItem', 'el.form.change', val);
1606
+ }
1607
+ },
1608
+ visible: function visible(val) {
1609
+ var _this3 = this;
1610
+
1611
+ if (!val) {
1612
+ this.broadcast('ElSelectDropdown', 'destroyPopper');
1613
+ if (this.$refs.input) {
1614
+ this.$refs.input.blur();
1615
+ }
1616
+ this.query = '';
1617
+ this.previousQuery = null;
1618
+ this.selectedLabel = '';
1619
+ this.inputLength = 20;
1620
+ this.menuVisibleOnFocus = false;
1621
+ this.resetHoverIndex();
1622
+ this.$nextTick(function () {
1623
+ if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {
1624
+ _this3.currentPlaceholder = _this3.cachedPlaceHolder;
1625
+ }
1626
+ });
1627
+ if (!this.multiple) {
1628
+ if (this.selected) {
1629
+ if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {
1630
+ this.selectedLabel = this.createdLabel;
1631
+ } else {
1632
+ this.selectedLabel = this.selected.currentLabel;
1633
+ }
1634
+ if (this.filterable) this.query = this.selectedLabel;
1635
+ }
1636
+
1637
+ if (this.filterable) {
1638
+ this.currentPlaceholder = this.cachedPlaceHolder;
1639
+ }
1640
+ }
1641
+ } else {
1642
+ this.broadcast('ElSelectDropdown', 'updatePopper');
1643
+ if (this.filterable) {
1644
+ this.query = this.remote ? '' : this.selectedLabel;
1645
+ this.handleQueryChange(this.query);
1646
+ if (this.multiple) {
1647
+ this.$refs.input.focus();
1648
+ } else {
1649
+ if (!this.remote) {
1650
+ this.broadcast('ElOption', 'queryChange', '');
1651
+ this.broadcast('ElOptionGroup', 'queryChange');
1652
+ }
1653
+
1654
+ if (this.selectedLabel) {
1655
+ this.currentPlaceholder = this.selectedLabel;
1656
+ this.selectedLabel = '';
1657
+ }
1658
+ }
1659
+ }
1660
+ }
1661
+ this.$emit('visible-change', val);
1662
+ },
1663
+ options: function options() {
1664
+ var _this4 = this;
1665
+
1666
+ if (this.$isServer) return;
1667
+ this.$nextTick(function () {
1668
+ _this4.broadcast('ElSelectDropdown', 'updatePopper');
1669
+ });
1670
+ if (this.multiple) {
1671
+ this.resetInputHeight();
1672
+ }
1673
+ var inputs = this.$el.querySelectorAll('input');
1674
+ if ([].indexOf.call(inputs, document.activeElement) === -1) {
1675
+ this.setSelected();
1676
+ }
1677
+ if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
1678
+ this.checkDefaultFirstOption();
1679
+ }
1680
+ }
1681
+ },
1682
+
1683
+ methods: {
1684
+ handleNavigate: function handleNavigate(direction) {
1685
+ if (this.isOnComposition) return;
1686
+
1687
+ this.navigateOptions(direction);
1688
+ },
1689
+ handleComposition: function handleComposition(event) {
1690
+ var _this5 = this;
1691
+
1692
+ var text = event.target.value;
1693
+ if (event.type === 'compositionend') {
1694
+ this.isOnComposition = false;
1695
+ this.$nextTick(function (_) {
1696
+ return _this5.handleQueryChange(text);
1697
+ });
1698
+ } else {
1699
+ var lastCharacter = text[text.length - 1] || '';
1700
+ this.isOnComposition = !Object(shared_["isKorean"])(lastCharacter);
1701
+ }
1702
+ },
1703
+ handleQueryChange: function handleQueryChange(val) {
1704
+ var _this6 = this;
1705
+
1706
+ if (this.previousQuery === val || this.isOnComposition) return;
1707
+ if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {
1708
+ this.previousQuery = val;
1709
+ return;
1710
+ }
1711
+ this.previousQuery = val;
1712
+ this.$nextTick(function () {
1713
+ if (_this6.visible) _this6.broadcast('ElSelectDropdown', 'updatePopper');
1714
+ });
1715
+ this.hoverIndex = -1;
1716
+ if (this.multiple && this.filterable) {
1717
+ this.$nextTick(function () {
1718
+ var length = _this6.$refs.input.value.length * 15 + 20;
1719
+ _this6.inputLength = _this6.collapseTags ? Math.min(50, length) : length;
1720
+ _this6.managePlaceholder();
1721
+ _this6.resetInputHeight();
1722
+ });
1723
+ }
1724
+ if (this.remote && typeof this.remoteMethod === 'function') {
1725
+ this.hoverIndex = -1;
1726
+ this.remoteMethod(val);
1727
+ } else if (typeof this.filterMethod === 'function') {
1728
+ this.filterMethod(val);
1729
+ this.broadcast('ElOptionGroup', 'queryChange');
1730
+ } else {
1731
+ this.filteredOptionsCount = this.optionsCount;
1732
+ this.broadcast('ElOption', 'queryChange', val);
1733
+ this.broadcast('ElOptionGroup', 'queryChange');
1734
+ }
1735
+ if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
1736
+ this.checkDefaultFirstOption();
1737
+ }
1738
+ },
1739
+ scrollToOption: function scrollToOption(option) {
1740
+ var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;
1741
+ if (this.$refs.popper && target) {
1742
+ var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');
1743
+ scroll_into_view_default()(menu, target);
1744
+ }
1745
+ this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();
1746
+ },
1747
+ handleMenuEnter: function handleMenuEnter() {
1748
+ var _this7 = this;
1749
+
1750
+ this.$nextTick(function () {
1751
+ return _this7.scrollToOption(_this7.selected);
1752
+ });
1753
+ },
1754
+ emitChange: function emitChange(val) {
1755
+ if (!Object(util_["valueEquals"])(this.value, val)) {
1756
+ this.$emit('change', val);
1757
+ }
1758
+ },
1759
+ getOption: function getOption(value) {
1760
+ var option = void 0;
1761
+ var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
1762
+ var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';
1763
+ var isUndefined = Object.prototype.toString.call(value).toLowerCase() === '[object undefined]';
1764
+
1765
+ for (var i = this.cachedOptions.length - 1; i >= 0; i--) {
1766
+ var cachedOption = this.cachedOptions[i];
1767
+ var isEqual = isObject ? Object(util_["getValueByPath"])(cachedOption.value, this.valueKey) === Object(util_["getValueByPath"])(value, this.valueKey) : cachedOption.value === value;
1768
+ if (isEqual) {
1769
+ option = cachedOption;
1770
+ break;
1771
+ }
1772
+ }
1773
+ if (option) return option;
1774
+ var label = !isObject && !isNull && !isUndefined ? String(value) : '';
1775
+ var newOption = {
1776
+ value: value,
1777
+ currentLabel: label
1778
+ };
1779
+ if (this.multiple) {
1780
+ newOption.hitState = false;
1781
+ }
1782
+ return newOption;
1783
+ },
1784
+ setSelected: function setSelected() {
1785
+ var _this8 = this;
1786
+
1787
+ if (!this.multiple) {
1788
+ var option = this.getOption(this.value);
1789
+ if (option.created) {
1790
+ this.createdLabel = option.currentLabel;
1791
+ this.createdSelected = true;
1792
+ } else {
1793
+ this.createdSelected = false;
1794
+ }
1795
+ this.selectedLabel = option.currentLabel;
1796
+ this.selected = option;
1797
+ if (this.filterable) this.query = this.selectedLabel;
1798
+ return;
1799
+ }
1800
+ var result = [];
1801
+ if (Array.isArray(this.value)) {
1802
+ this.value.forEach(function (value) {
1803
+ result.push(_this8.getOption(value));
1804
+ });
1805
+ }
1806
+ this.selected = result;
1807
+ this.$nextTick(function () {
1808
+ _this8.resetInputHeight();
1809
+ });
1810
+ },
1811
+ handleFocus: function handleFocus(event) {
1812
+ if (!this.softFocus) {
1813
+ if (this.automaticDropdown || this.filterable) {
1814
+ if (this.filterable && !this.visible) {
1815
+ this.menuVisibleOnFocus = true;
1816
+ }
1817
+ this.visible = true;
1818
+ }
1819
+ this.$emit('focus', event);
1820
+ } else {
1821
+ this.softFocus = false;
1822
+ }
1823
+ },
1824
+ blur: function blur() {
1825
+ this.visible = false;
1826
+ this.$refs.reference.blur();
1827
+ },
1828
+ handleBlur: function handleBlur(event) {
1829
+ var _this9 = this;
1830
+
1831
+ setTimeout(function () {
1832
+ if (_this9.isSilentBlur) {
1833
+ _this9.isSilentBlur = false;
1834
+ } else {
1835
+ _this9.$emit('blur', event);
1836
+ }
1837
+ }, 50);
1838
+ this.softFocus = false;
1839
+ },
1840
+ handleClearClick: function handleClearClick(event) {
1841
+ this.deleteSelected(event);
1842
+ },
1843
+ doDestroy: function doDestroy() {
1844
+ this.$refs.popper && this.$refs.popper.doDestroy();
1845
+ },
1846
+ handleClose: function handleClose() {
1847
+ this.visible = false;
1848
+ },
1849
+ toggleLastOptionHitState: function toggleLastOptionHitState(hit) {
1850
+ if (!Array.isArray(this.selected)) return;
1851
+ var option = this.selected[this.selected.length - 1];
1852
+ if (!option) return;
1853
+
1854
+ if (hit === true || hit === false) {
1855
+ option.hitState = hit;
1856
+ return hit;
1857
+ }
1858
+
1859
+ option.hitState = !option.hitState;
1860
+ return option.hitState;
1861
+ },
1862
+ deletePrevTag: function deletePrevTag(e) {
1863
+ if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {
1864
+ var value = this.value.slice();
1865
+ value.pop();
1866
+ this.$emit('input', value);
1867
+ this.emitChange(value);
1868
+ }
1869
+ },
1870
+ managePlaceholder: function managePlaceholder() {
1871
+ if (this.currentPlaceholder !== '') {
1872
+ this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;
1873
+ }
1874
+ },
1875
+ resetInputState: function resetInputState(e) {
1876
+ if (e.keyCode !== 8) this.toggleLastOptionHitState(false);
1877
+ this.inputLength = this.$refs.input.value.length * 15 + 20;
1878
+ this.resetInputHeight();
1879
+ },
1880
+ resetInputHeight: function resetInputHeight() {
1881
+ var _this10 = this;
1882
+
1883
+ if (this.collapseTags && !this.filterable) return;
1884
+ this.$nextTick(function () {
1885
+ if (!_this10.$refs.reference) return;
1886
+ var inputChildNodes = _this10.$refs.reference.$el.childNodes;
1887
+ var input = [].filter.call(inputChildNodes, function (item) {
1888
+ return item.tagName === 'INPUT';
1889
+ })[0];
1890
+ var tags = _this10.$refs.tags;
1891
+ var tagsHeight = tags ? Math.round(tags.getBoundingClientRect().height) : 0;
1892
+ var sizeInMap = _this10.initialInputHeight || 40;
1893
+ input.style.height = _this10.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tagsHeight + (tagsHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';
1894
+ if (_this10.visible && _this10.emptyText !== false) {
1895
+ _this10.broadcast('ElSelectDropdown', 'updatePopper');
1896
+ }
1897
+ });
1898
+ },
1899
+ resetHoverIndex: function resetHoverIndex() {
1900
+ var _this11 = this;
1901
+
1902
+ setTimeout(function () {
1903
+ if (!_this11.multiple) {
1904
+ _this11.hoverIndex = _this11.options.indexOf(_this11.selected);
1905
+ } else {
1906
+ if (_this11.selected.length > 0) {
1907
+ _this11.hoverIndex = Math.min.apply(null, _this11.selected.map(function (item) {
1908
+ return _this11.options.indexOf(item);
1909
+ }));
1910
+ } else {
1911
+ _this11.hoverIndex = -1;
1912
+ }
1913
+ }
1914
+ }, 300);
1915
+ },
1916
+ handleOptionSelect: function handleOptionSelect(option, byClick) {
1917
+ var _this12 = this;
1918
+
1919
+ if (this.multiple) {
1920
+ var value = (this.value || []).slice();
1921
+ var optionIndex = this.getValueIndex(value, option.value);
1922
+ if (optionIndex > -1) {
1923
+ value.splice(optionIndex, 1);
1924
+ } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {
1925
+ value.push(option.value);
1926
+ }
1927
+ this.$emit('input', value);
1928
+ this.emitChange(value);
1929
+ if (option.created) {
1930
+ this.query = '';
1931
+ this.handleQueryChange('');
1932
+ this.inputLength = 20;
1933
+ }
1934
+ if (this.filterable) this.$refs.input.focus();
1935
+ } else {
1936
+ this.$emit('input', option.value);
1937
+ this.emitChange(option.value);
1938
+ this.visible = false;
1939
+ }
1940
+ this.isSilentBlur = byClick;
1941
+ this.setSoftFocus();
1942
+ if (this.visible) return;
1943
+ this.$nextTick(function () {
1944
+ _this12.scrollToOption(option);
1945
+ });
1946
+ },
1947
+ setSoftFocus: function setSoftFocus() {
1948
+ this.softFocus = true;
1949
+ var input = this.$refs.input || this.$refs.reference;
1950
+ if (input) {
1951
+ input.focus();
1952
+ }
1953
+ },
1954
+ getValueIndex: function getValueIndex() {
1955
+ var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1956
+ var value = arguments[1];
1957
+
1958
+ var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
1959
+ if (!isObject) {
1960
+ return arr.indexOf(value);
1961
+ } else {
1962
+ var valueKey = this.valueKey;
1963
+ var index = -1;
1964
+ arr.some(function (item, i) {
1965
+ if (Object(util_["getValueByPath"])(item, valueKey) === Object(util_["getValueByPath"])(value, valueKey)) {
1966
+ index = i;
1967
+ return true;
1968
+ }
1969
+ return false;
1970
+ });
1971
+ return index;
1972
+ }
1973
+ },
1974
+ toggleMenu: function toggleMenu() {
1975
+ if (!this.selectDisabled) {
1976
+ if (this.menuVisibleOnFocus) {
1977
+ this.menuVisibleOnFocus = false;
1978
+ } else {
1979
+ this.visible = !this.visible;
1980
+ }
1981
+ if (this.visible) {
1982
+ (this.$refs.input || this.$refs.reference).focus();
1983
+ }
1984
+ }
1985
+ },
1986
+ selectOption: function selectOption() {
1987
+ if (!this.visible) {
1988
+ this.toggleMenu();
1989
+ } else {
1990
+ if (this.options[this.hoverIndex]) {
1991
+ this.handleOptionSelect(this.options[this.hoverIndex]);
1992
+ }
1993
+ }
1994
+ },
1995
+ deleteSelected: function deleteSelected(event) {
1996
+ event.stopPropagation();
1997
+ var value = this.multiple ? [] : '';
1998
+ this.$emit('input', value);
1999
+ this.emitChange(value);
2000
+ this.visible = false;
2001
+ this.$emit('clear');
2002
+ },
2003
+ deleteTag: function deleteTag(event, tag) {
2004
+ var index = this.selected.indexOf(tag);
2005
+ if (index > -1 && !this.selectDisabled) {
2006
+ var value = this.value.slice();
2007
+ value.splice(index, 1);
2008
+ this.$emit('input', value);
2009
+ this.emitChange(value);
2010
+ this.$emit('remove-tag', tag.value);
2011
+ }
2012
+ event.stopPropagation();
2013
+ },
2014
+ onInputChange: function onInputChange() {
2015
+ if (this.filterable && this.query !== this.selectedLabel) {
2016
+ this.query = this.selectedLabel;
2017
+ this.handleQueryChange(this.query);
2018
+ }
2019
+ },
2020
+ onOptionDestroy: function onOptionDestroy(index) {
2021
+ if (index > -1) {
2022
+ this.optionsCount--;
2023
+ this.filteredOptionsCount--;
2024
+ this.options.splice(index, 1);
2025
+ }
2026
+ },
2027
+ resetInputWidth: function resetInputWidth() {
2028
+ this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;
2029
+ },
2030
+ handleResize: function handleResize() {
2031
+ this.resetInputWidth();
2032
+ if (this.multiple) this.resetInputHeight();
2033
+ },
2034
+ checkDefaultFirstOption: function checkDefaultFirstOption() {
2035
+ this.hoverIndex = -1;
2036
+ // highlight the created option
2037
+ var hasCreated = false;
2038
+ for (var i = this.options.length - 1; i >= 0; i--) {
2039
+ if (this.options[i].created) {
2040
+ hasCreated = true;
2041
+ this.hoverIndex = i;
2042
+ break;
2043
+ }
2044
+ }
2045
+ if (hasCreated) return;
2046
+ for (var _i = 0; _i !== this.options.length; ++_i) {
2047
+ var option = this.options[_i];
2048
+ if (this.query) {
2049
+ // highlight first options that passes the filter
2050
+ if (!option.disabled && !option.groupDisabled && option.visible) {
2051
+ this.hoverIndex = _i;
2052
+ break;
2053
+ }
2054
+ } else {
2055
+ // highlight currently selected option
2056
+ if (option.itemSelected) {
2057
+ this.hoverIndex = _i;
2058
+ break;
2059
+ }
2060
+ }
2061
+ }
2062
+ },
2063
+ getValueKey: function getValueKey(item) {
2064
+ if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {
2065
+ return item.value;
2066
+ } else {
2067
+ return Object(util_["getValueByPath"])(item.value, this.valueKey);
2068
+ }
2069
+ }
2070
+ },
2071
+
2072
+ created: function created() {
2073
+ var _this13 = this;
2074
+
2075
+ this.cachedPlaceHolder = this.currentPlaceholder = this.propPlaceholder;
2076
+ if (this.multiple && !Array.isArray(this.value)) {
2077
+ this.$emit('input', []);
2078
+ }
2079
+ if (!this.multiple && Array.isArray(this.value)) {
2080
+ this.$emit('input', '');
2081
+ }
2082
+
2083
+ this.debouncedOnInputChange = debounce_default()(this.debounce, function () {
2084
+ _this13.onInputChange();
2085
+ });
2086
+
2087
+ this.debouncedQueryChange = debounce_default()(this.debounce, function (e) {
2088
+ _this13.handleQueryChange(e.target.value);
2089
+ });
2090
+
2091
+ this.$on('handleOptionClick', this.handleOptionSelect);
2092
+ this.$on('setSelected', this.setSelected);
2093
+ },
2094
+ mounted: function mounted() {
2095
+ var _this14 = this;
2096
+
2097
+ if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {
2098
+ this.currentPlaceholder = '';
2099
+ }
2100
+ Object(resize_event_["addResizeListener"])(this.$el, this.handleResize);
2101
+
2102
+ var reference = this.$refs.reference;
2103
+ if (reference && reference.$el) {
2104
+ var sizeMap = {
2105
+ medium: 36,
2106
+ small: 32,
2107
+ mini: 28
2108
+ };
2109
+ var input = reference.$el.querySelector('input');
2110
+ this.initialInputHeight = input.getBoundingClientRect().height || sizeMap[this.selectSize];
2111
+ }
2112
+ if (this.remote && this.multiple) {
2113
+ this.resetInputHeight();
2114
+ }
2115
+ this.$nextTick(function () {
2116
+ if (reference && reference.$el) {
2117
+ _this14.inputWidth = reference.$el.getBoundingClientRect().width;
2118
+ }
2119
+ });
2120
+ this.setSelected();
2121
+ },
2122
+ beforeDestroy: function beforeDestroy() {
2123
+ if (this.$el && this.handleResize) Object(resize_event_["removeResizeListener"])(this.$el, this.handleResize);
2124
+ }
2125
2125
  });
2126
2126
  // CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=script&lang=js
2127
2127
  /* harmony default export */ var src_selectvue_type_script_lang_js = (selectvue_type_script_lang_js);
@@ -2150,7 +2150,7 @@ var select_component = Object(componentNormalizer["a" /* default */])(
2150
2150
 
2151
2151
  /* istanbul ignore next */
2152
2152
  src_select.install = function (Vue) {
2153
- Vue.component(src_select.name, src_select);
2153
+ Vue.component(src_select.name, src_select);
2154
2154
  };
2155
2155
 
2156
2156
  /* harmony default export */ var packages_select = __webpack_exports__["default"] = (src_select);