cy-element-ui 1.1.13 → 1.1.15

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 (523) 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/directives/mousewheel.js +9 -9
  31. package/lib/directives/repeat-click.js +22 -22
  32. package/lib/divider.js +20 -20
  33. package/lib/drawer.js +156 -156
  34. package/lib/dropdown-item.js +19 -19
  35. package/lib/dropdown-menu.js +56 -56
  36. package/lib/dropdown.js +329 -329
  37. package/lib/element-ui.common.js +44918 -0
  38. package/lib/empty.js +39 -39
  39. package/lib/footer.js +11 -11
  40. package/lib/form-item.js +369 -369
  41. package/lib/form.js +181 -181
  42. package/lib/header.js +11 -11
  43. package/lib/icon.js +7 -7
  44. package/lib/image.js +520 -520
  45. package/lib/index.js +1 -1
  46. package/lib/infinite-scroll.js +127 -127
  47. package/lib/input-number.js +260 -260
  48. package/lib/input.js +370 -370
  49. package/lib/link.js +28 -28
  50. package/lib/loading.js +219 -219
  51. package/lib/locale/format.js +25 -26
  52. package/lib/locale/index.js +24 -24
  53. package/lib/locale/lang/en.js +121 -121
  54. package/lib/locale/lang/zh-CN.js +121 -121
  55. package/lib/locale/lang/zh-TW.js +121 -121
  56. package/lib/main.js +5 -5
  57. package/lib/menu-item-group.js +33 -33
  58. package/lib/menu-item.js +116 -116
  59. package/lib/menu.js +490 -490
  60. package/lib/message-box.js +421 -421
  61. package/lib/message.js +150 -150
  62. package/lib/mixins/emitter.js +26 -26
  63. package/lib/mixins/focus.js +7 -7
  64. package/lib/mixins/locale.js +8 -8
  65. package/lib/mixins/migrating.js +34 -34
  66. package/lib/notification.js +184 -184
  67. package/lib/option-group.js +46 -46
  68. package/lib/option.js +145 -145
  69. package/lib/page-header.js +14 -14
  70. package/lib/pagination.js +530 -530
  71. package/lib/popconfirm.js +68 -68
  72. package/lib/popover.js +225 -225
  73. package/lib/progress.js +183 -183
  74. package/lib/radio-button.js +78 -78
  75. package/lib/radio-group.js +103 -103
  76. package/lib/radio.js +86 -86
  77. package/lib/rate.js +283 -283
  78. package/lib/result.js +61 -61
  79. package/lib/row.js +32 -32
  80. package/lib/scrollbar.js +247 -247
  81. package/lib/select.js +999 -999
  82. package/lib/selectDisplayInput.js +61 -61
  83. package/lib/skeleton-item.js +19 -19
  84. package/lib/skeleton.js +53 -53
  85. package/lib/slider.js +550 -550
  86. package/lib/spinner.js +19 -19
  87. package/lib/statistic.js +198 -198
  88. package/lib/step.js +125 -125
  89. package/lib/steps.js +54 -54
  90. package/lib/subTitle.js +24 -24
  91. package/lib/submenu.js +405 -406
  92. package/lib/switch.js +135 -135
  93. package/lib/tab-pane.js +43 -43
  94. package/lib/tabDialog.js +508 -508
  95. package/lib/table-column.js +713 -713
  96. package/lib/table.js +3432 -3432
  97. package/lib/tabs.js +578 -578
  98. package/lib/tag.js +60 -60
  99. package/lib/time-picker.js +1350 -1350
  100. package/lib/time-select.js +949 -949
  101. package/lib/timeline-item.js +25 -25
  102. package/lib/timeline.js +30 -30
  103. package/lib/tooltip.js +255 -255
  104. package/lib/transfer.js +385 -385
  105. package/lib/transitions/collapse-transition.js +76 -76
  106. package/lib/tree.js +1547 -1547
  107. package/lib/treeSelect.js +2618 -2618
  108. package/lib/umd/locale/en.js +137 -137
  109. package/lib/umd/locale/zh-CN.js +137 -137
  110. package/lib/umd/locale/zh-TW.js +137 -137
  111. package/lib/upload.js +738 -738
  112. package/lib/utils/after-leave.js +19 -19
  113. package/lib/utils/aria-dialog.js +56 -56
  114. package/lib/utils/aria-utils.js +66 -66
  115. package/lib/utils/clickoutside.js +39 -39
  116. package/lib/utils/date-util.js +177 -177
  117. package/lib/utils/dom.js +161 -161
  118. package/lib/utils/menu/aria-menubar.js +8 -8
  119. package/lib/utils/menu/aria-menuitem.js +38 -38
  120. package/lib/utils/menu/aria-submenu.js +45 -45
  121. package/lib/utils/merge.js +12 -12
  122. package/lib/utils/popup/index.js +201 -201
  123. package/lib/utils/popup/popup-manager.js +171 -171
  124. package/lib/utils/resize-event.js +33 -33
  125. package/lib/utils/scroll-into-view.js +25 -25
  126. package/lib/utils/scrollbar-width.js +18 -18
  127. package/lib/utils/shared.js +3 -3
  128. package/lib/utils/types.js +10 -10
  129. package/lib/utils/util.js +170 -170
  130. package/lib/utils/vdom.js +1 -1
  131. package/lib/utils/vue-popper.js +176 -176
  132. package/package.json +9 -7
  133. package/packages/alert/index.js +1 -1
  134. package/packages/alert/src/main.vue +82 -82
  135. package/packages/aside/index.js +1 -1
  136. package/packages/aside/src/main.vue +13 -13
  137. package/packages/autocomplete/index.js +1 -1
  138. package/packages/autocomplete/src/autocomplete-suggestions.vue +64 -64
  139. package/packages/autocomplete/src/autocomplete.vue +272 -272
  140. package/packages/avatar/index.js +1 -1
  141. package/packages/avatar/src/main.vue +88 -88
  142. package/packages/backtop/index.js +1 -1
  143. package/packages/backtop/src/main.vue +92 -92
  144. package/packages/badge/index.js +1 -1
  145. package/packages/badge/src/main.vue +41 -41
  146. package/packages/breadcrumb/index.js +1 -1
  147. package/packages/breadcrumb/src/breadcrumb-item.vue +35 -35
  148. package/packages/breadcrumb/src/breadcrumb.vue +27 -27
  149. package/packages/breadcrumb-item/index.js +1 -1
  150. package/packages/button/index.js +1 -1
  151. package/packages/button/src/button-group.vue +6 -6
  152. package/packages/button/src/button.vue +70 -70
  153. package/packages/button-group/index.js +1 -1
  154. package/packages/calendar/index.js +1 -1
  155. package/packages/calendar/src/date-table.vue +193 -193
  156. package/packages/calendar/src/main.vue +242 -242
  157. package/packages/card/index.js +1 -1
  158. package/packages/card/src/main.vue +18 -18
  159. package/packages/carousel/index.js +1 -1
  160. package/packages/carousel/src/item.vue +122 -122
  161. package/packages/carousel/src/main.vue +305 -305
  162. package/packages/carousel-item/index.js +1 -1
  163. package/packages/cascader/index.js +1 -1
  164. package/packages/cascader/src/cascader.vue +626 -626
  165. package/packages/cascader-panel/index.js +1 -1
  166. package/packages/cascader-panel/src/cascader-menu.vue +128 -128
  167. package/packages/cascader-panel/src/cascader-node.vue +244 -244
  168. package/packages/cascader-panel/src/cascader-panel.vue +334 -334
  169. package/packages/cascader-panel/src/node.js +157 -158
  170. package/packages/cascader-panel/src/store.js +49 -50
  171. package/packages/checkbox/index.js +1 -1
  172. package/packages/checkbox/src/checkbox-button.vue +195 -195
  173. package/packages/checkbox/src/checkbox-group.vue +43 -43
  174. package/packages/checkbox/src/checkbox.vue +218 -218
  175. package/packages/checkbox-button/index.js +1 -1
  176. package/packages/checkbox-group/index.js +1 -1
  177. package/packages/col/index.js +1 -1
  178. package/packages/col/src/col.js +63 -63
  179. package/packages/collapse/index.js +1 -1
  180. package/packages/collapse/src/collapse-item.vue +101 -101
  181. package/packages/collapse/src/collapse.vue +61 -61
  182. package/packages/collapse-item/index.js +1 -1
  183. package/packages/color-picker/index.js +1 -1
  184. package/packages/color-picker/src/color.js +263 -263
  185. package/packages/color-picker/src/components/alpha-slider.vue +127 -127
  186. package/packages/color-picker/src/components/hue-slider.vue +118 -118
  187. package/packages/color-picker/src/components/picker-dropdown.vue +105 -105
  188. package/packages/color-picker/src/components/predefine.vue +55 -55
  189. package/packages/color-picker/src/components/sv-panel.vue +95 -95
  190. package/packages/color-picker/src/draggable.js +27 -27
  191. package/packages/color-picker/src/main.vue +183 -183
  192. package/packages/container/index.js +1 -1
  193. package/packages/container/src/main.vue +25 -25
  194. package/packages/date-picker/index.js +1 -1
  195. package/packages/date-picker/src/basic/date-table.vue +435 -435
  196. package/packages/date-picker/src/basic/month-table.vue +239 -240
  197. package/packages/date-picker/src/basic/time-spinner.vue +279 -279
  198. package/packages/date-picker/src/basic/year-table.vue +99 -99
  199. package/packages/date-picker/src/panel/date-range.vue +675 -675
  200. package/packages/date-picker/src/panel/date.vue +604 -604
  201. package/packages/date-picker/src/panel/month-range.vue +260 -260
  202. package/packages/date-picker/src/panel/time-range.vue +242 -242
  203. package/packages/date-picker/src/panel/time-select.vue +173 -173
  204. package/packages/date-picker/src/panel/time.vue +181 -181
  205. package/packages/date-picker/src/picker/date-picker.js +29 -29
  206. package/packages/date-picker/src/picker/time-picker.js +28 -28
  207. package/packages/date-picker/src/picker/time-select.js +12 -12
  208. package/packages/date-picker/src/picker.vue +900 -900
  209. package/packages/descriptions/index.js +1 -1
  210. package/packages/descriptions/src/descriptions-item.js +28 -28
  211. package/packages/descriptions/src/descriptions-row.js +114 -114
  212. package/packages/descriptions/src/index.js +168 -168
  213. package/packages/descriptions-item/index.js +1 -1
  214. package/packages/dialog/index.js +1 -1
  215. package/packages/dialog/src/component.vue +207 -207
  216. package/packages/divider/index.js +1 -1
  217. package/packages/divider/src/main.vue +29 -29
  218. package/packages/drawer/index.js +1 -1
  219. package/packages/drawer/src/main.vue +195 -195
  220. package/packages/dropdown/index.js +1 -1
  221. package/packages/dropdown/src/dropdown-item.vue +29 -29
  222. package/packages/dropdown/src/dropdown-menu.vue +59 -59
  223. package/packages/dropdown/src/dropdown.vue +271 -271
  224. package/packages/dropdown-item/index.js +1 -1
  225. package/packages/dropdown-menu/index.js +1 -1
  226. package/packages/empty/index.js +1 -1
  227. package/packages/empty/src/img-empty.vue +124 -124
  228. package/packages/empty/src/index.vue +40 -40
  229. package/packages/footer/index.js +1 -1
  230. package/packages/footer/src/main.vue +13 -13
  231. package/packages/form/index.js +1 -1
  232. package/packages/form/src/form-item.vue +294 -294
  233. package/packages/form/src/form.vue +169 -169
  234. package/packages/form/src/label-wrap.vue +65 -65
  235. package/packages/form-item/index.js +1 -1
  236. package/packages/header/index.js +1 -1
  237. package/packages/header/src/main.vue +13 -13
  238. package/packages/icon/index.js +1 -1
  239. package/packages/icon/src/icon.vue +7 -7
  240. package/packages/image/index.js +1 -1
  241. package/packages/image/src/image-viewer.vue +309 -309
  242. package/packages/image/src/main.vue +242 -242
  243. package/packages/infinite-scroll/index.js +1 -1
  244. package/packages/infinite-scroll/src/main.js +113 -114
  245. package/packages/input/index.js +1 -1
  246. package/packages/input/src/calcTextareaHeight.js +70 -70
  247. package/packages/input/src/input.vue +416 -416
  248. package/packages/input-number/index.js +1 -1
  249. package/packages/input-number/src/input-number.vue +272 -272
  250. package/packages/link/index.js +1 -1
  251. package/packages/link/src/main.vue +40 -40
  252. package/packages/loading/index.js +6 -6
  253. package/packages/loading/src/directive.js +105 -105
  254. package/packages/loading/src/index.js +74 -74
  255. package/packages/loading/src/loading.vue +35 -35
  256. package/packages/main/index.js +1 -1
  257. package/packages/main/src/main.vue +7 -7
  258. package/packages/menu/index.js +1 -1
  259. package/packages/menu/src/menu-item-group.vue +38 -38
  260. package/packages/menu/src/menu-item.vue +103 -103
  261. package/packages/menu/src/menu-mixin.js +39 -39
  262. package/packages/menu/src/menu.vue +298 -298
  263. package/packages/menu/src/submenu.vue +330 -331
  264. package/packages/menu-item/index.js +1 -1
  265. package/packages/menu-item-group/index.js +1 -1
  266. package/packages/message/src/main.js +65 -65
  267. package/packages/message/src/main.vue +105 -105
  268. package/packages/message-box/src/main.js +172 -172
  269. package/packages/message-box/src/main.vue +309 -309
  270. package/packages/notification/src/main.js +63 -63
  271. package/packages/notification/src/main.vue +135 -135
  272. package/packages/option/index.js +1 -1
  273. package/packages/option-group/index.js +1 -1
  274. package/packages/page-header/index.js +1 -1
  275. package/packages/page-header/src/main.vue +21 -21
  276. package/packages/pagination/index.js +1 -1
  277. package/packages/pagination/src/pager.vue +158 -158
  278. package/packages/pagination/src/pagination.js +377 -377
  279. package/packages/popconfirm/index.js +1 -1
  280. package/packages/popconfirm/src/main.vue +94 -94
  281. package/packages/popover/index.js +2 -2
  282. package/packages/popover/src/directive.js +15 -15
  283. package/packages/popover/src/main.vue +214 -214
  284. package/packages/progress/index.js +1 -1
  285. package/packages/progress/src/progress.vue +228 -228
  286. package/packages/radio/index.js +1 -1
  287. package/packages/radio/src/radio-button.vue +106 -106
  288. package/packages/radio/src/radio-group.vue +101 -101
  289. package/packages/radio/src/radio.vue +122 -122
  290. package/packages/radio-button/index.js +1 -1
  291. package/packages/radio-group/index.js +1 -1
  292. package/packages/rate/index.js +1 -1
  293. package/packages/rate/src/main.vue +316 -316
  294. package/packages/result/index.js +1 -1
  295. package/packages/result/src/icon-error.vue +6 -6
  296. package/packages/result/src/icon-info.vue +6 -6
  297. package/packages/result/src/icon-success.vue +6 -6
  298. package/packages/result/src/icon-warning.vue +6 -6
  299. package/packages/result/src/index.vue +51 -51
  300. package/packages/row/index.js +1 -1
  301. package/packages/row/src/row.js +36 -36
  302. package/packages/scrollbar/index.js +1 -1
  303. package/packages/scrollbar/src/bar.js +86 -86
  304. package/packages/scrollbar/src/main.js +120 -120
  305. package/packages/scrollbar/src/util.js +27 -27
  306. package/packages/select/index.js +1 -1
  307. package/packages/select/src/navigation-mixin.js +47 -47
  308. package/packages/select/src/option-group.vue +55 -55
  309. package/packages/select/src/option.vue +163 -163
  310. package/packages/select/src/select-dropdown.vue +57 -57
  311. package/packages/select/src/select.vue +895 -895
  312. package/packages/selectDisplayInput/index.js +1 -1
  313. package/packages/selectDisplayInput/src/main.vue +61 -61
  314. package/packages/skeleton/index.js +1 -1
  315. package/packages/skeleton/src/img-placeholder.vue +9 -9
  316. package/packages/skeleton/src/index.vue +70 -70
  317. package/packages/skeleton/src/item.vue +17 -17
  318. package/packages/skeleton-item/index.js +1 -1
  319. package/packages/slider/index.js +1 -1
  320. package/packages/slider/src/button.vue +230 -230
  321. package/packages/slider/src/main.vue +422 -422
  322. package/packages/slider/src/marker.js +14 -14
  323. package/packages/spinner/index.js +1 -1
  324. package/packages/spinner/src/spinner.vue +23 -23
  325. package/packages/statistic/index.js +1 -1
  326. package/packages/statistic/src/main.vue +196 -197
  327. package/packages/step/index.js +1 -1
  328. package/packages/steps/index.js +1 -1
  329. package/packages/steps/src/step.vue +177 -177
  330. package/packages/steps/src/steps.vue +53 -53
  331. package/packages/subTitle/index.js +1 -1
  332. package/packages/subTitle/src/main.vue +29 -29
  333. package/packages/submenu/index.js +1 -1
  334. package/packages/switch/index.js +1 -1
  335. package/packages/switch/src/component.vue +169 -169
  336. package/packages/tab-pane/index.js +1 -1
  337. package/packages/tabDialog/index.js +10 -10
  338. package/packages/tabDialog/src/dialog/drag.js +50 -50
  339. package/packages/tabDialog/src/dialog/dragHeight.js +27 -27
  340. package/packages/tabDialog/src/dialog/dragWidth.js +23 -23
  341. package/packages/tabDialog/src/main.vue +257 -257
  342. package/packages/table/index.js +1 -1
  343. package/packages/table/src/config.js +108 -108
  344. package/packages/table/src/dropdown.js +19 -19
  345. package/packages/table/src/filter-panel.vue +189 -189
  346. package/packages/table/src/layout-observer.js +60 -60
  347. package/packages/table/src/store/current.js +65 -65
  348. package/packages/table/src/store/expand.js +57 -57
  349. package/packages/table/src/store/helper.js +32 -32
  350. package/packages/table/src/store/index.js +133 -133
  351. package/packages/table/src/store/tree.js +194 -194
  352. package/packages/table/src/store/watcher.js +366 -366
  353. package/packages/table/src/table-body.js +456 -456
  354. package/packages/table/src/table-column.js +311 -311
  355. package/packages/table/src/table-footer.js +139 -139
  356. package/packages/table/src/table-header.js +496 -496
  357. package/packages/table/src/table-layout.js +241 -241
  358. package/packages/table/src/table-row.js +97 -97
  359. package/packages/table/src/table.vue +666 -666
  360. package/packages/table/src/util.js +214 -214
  361. package/packages/table-column/index.js +1 -1
  362. package/packages/tabs/index.js +1 -1
  363. package/packages/tabs/src/tab-bar.vue +47 -47
  364. package/packages/tabs/src/tab-nav.vue +268 -268
  365. package/packages/tabs/src/tab-pane.vue +47 -47
  366. package/packages/tabs/src/tabs.vue +174 -174
  367. package/packages/tag/index.js +1 -1
  368. package/packages/tag/src/tag.vue +55 -55
  369. package/packages/theme-chalk/gulpfile.js +11 -11
  370. package/packages/theme-chalk/src/alert.scss +138 -138
  371. package/packages/theme-chalk/src/aside.scss +3 -3
  372. package/packages/theme-chalk/src/autocomplete.scss +58 -58
  373. package/packages/theme-chalk/src/avatar.scss +46 -46
  374. package/packages/theme-chalk/src/backtop.scss +16 -16
  375. package/packages/theme-chalk/src/badge.scss +47 -47
  376. package/packages/theme-chalk/src/breadcrumb.scss +49 -49
  377. package/packages/theme-chalk/src/button.scss +229 -229
  378. package/packages/theme-chalk/src/calendar.scss +57 -57
  379. package/packages/theme-chalk/src/card.scss +23 -23
  380. package/packages/theme-chalk/src/carousel-item.scss +41 -41
  381. package/packages/theme-chalk/src/carousel.scss +148 -148
  382. package/packages/theme-chalk/src/cascader-panel.scss +106 -106
  383. package/packages/theme-chalk/src/cascader.scss +173 -173
  384. package/packages/theme-chalk/src/checkbox.scss +346 -346
  385. package/packages/theme-chalk/src/col.scss +130 -130
  386. package/packages/theme-chalk/src/collapse.scss +52 -52
  387. package/packages/theme-chalk/src/color-picker.scss +364 -364
  388. package/packages/theme-chalk/src/common/popup.scss +22 -22
  389. package/packages/theme-chalk/src/common/transition.scss +33 -33
  390. package/packages/theme-chalk/src/common/var.scss +16 -16
  391. package/packages/theme-chalk/src/container.scss +9 -9
  392. package/packages/theme-chalk/src/cy/base.scss +1 -1
  393. package/packages/theme-chalk/src/date-picker/date-picker.scss +91 -91
  394. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +97 -97
  395. package/packages/theme-chalk/src/date-picker/date-table.scss +146 -146
  396. package/packages/theme-chalk/src/date-picker/month-table.scss +69 -69
  397. package/packages/theme-chalk/src/date-picker/picker-panel.scss +105 -105
  398. package/packages/theme-chalk/src/date-picker/picker.scss +188 -188
  399. package/packages/theme-chalk/src/date-picker/time-picker.scss +72 -72
  400. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +23 -23
  401. package/packages/theme-chalk/src/date-picker/time-spinner.scss +106 -106
  402. package/packages/theme-chalk/src/date-picker/year-table.scss +47 -47
  403. package/packages/theme-chalk/src/descriptions-item.scss +33 -33
  404. package/packages/theme-chalk/src/descriptions.scss +105 -105
  405. package/packages/theme-chalk/src/dialog.scss +104 -104
  406. package/packages/theme-chalk/src/display.scss +7 -7
  407. package/packages/theme-chalk/src/divider.scss +36 -36
  408. package/packages/theme-chalk/src/drawer.scss +185 -185
  409. package/packages/theme-chalk/src/dropdown.scss +172 -172
  410. package/packages/theme-chalk/src/empty.scss +34 -34
  411. package/packages/theme-chalk/src/footer.scss +3 -3
  412. package/packages/theme-chalk/src/form.scss +149 -149
  413. package/packages/theme-chalk/src/header.scss +3 -3
  414. package/packages/theme-chalk/src/icon.scss +309 -309
  415. package/packages/theme-chalk/src/image.scss +153 -153
  416. package/packages/theme-chalk/src/input-number.scss +255 -255
  417. package/packages/theme-chalk/src/input.scss +345 -345
  418. package/packages/theme-chalk/src/link.scss +67 -67
  419. package/packages/theme-chalk/src/loading.scss +67 -67
  420. package/packages/theme-chalk/src/main.scss +7 -7
  421. package/packages/theme-chalk/src/menu.scss +248 -248
  422. package/packages/theme-chalk/src/message-box.scss +205 -205
  423. package/packages/theme-chalk/src/message.scss +111 -111
  424. package/packages/theme-chalk/src/mixins/_button.scss +64 -64
  425. package/packages/theme-chalk/src/mixins/function.scss +18 -18
  426. package/packages/theme-chalk/src/mixins/mixins.scss +126 -126
  427. package/packages/theme-chalk/src/mixins/utils.scss +26 -26
  428. package/packages/theme-chalk/src/notification.scss +88 -88
  429. package/packages/theme-chalk/src/option-group.scss +31 -31
  430. package/packages/theme-chalk/src/option.scss +27 -27
  431. package/packages/theme-chalk/src/page-header.scss +31 -31
  432. package/packages/theme-chalk/src/pagination.scss +284 -284
  433. package/packages/theme-chalk/src/popconfirm.scss +11 -11
  434. package/packages/theme-chalk/src/popover.scss +30 -30
  435. package/packages/theme-chalk/src/popper.scss +82 -82
  436. package/packages/theme-chalk/src/progress.scss +128 -128
  437. package/packages/theme-chalk/src/radio-button.scss +94 -94
  438. package/packages/theme-chalk/src/radio-group.scss +4 -4
  439. package/packages/theme-chalk/src/radio.scss +192 -192
  440. package/packages/theme-chalk/src/rate.scss +38 -38
  441. package/packages/theme-chalk/src/reset.scss +39 -39
  442. package/packages/theme-chalk/src/result.scss +56 -56
  443. package/packages/theme-chalk/src/row.scss +31 -31
  444. package/packages/theme-chalk/src/scrollbar.scss +57 -57
  445. package/packages/theme-chalk/src/select-dropdown.scss +47 -47
  446. package/packages/theme-chalk/src/select.scss +140 -140
  447. package/packages/theme-chalk/src/skeleton-item.scss +75 -75
  448. package/packages/theme-chalk/src/skeleton.scss +27 -27
  449. package/packages/theme-chalk/src/slider.scss +238 -238
  450. package/packages/theme-chalk/src/spinner.scss +27 -27
  451. package/packages/theme-chalk/src/statistic.scss +32 -32
  452. package/packages/theme-chalk/src/step.scss +312 -312
  453. package/packages/theme-chalk/src/steps.scss +13 -13
  454. package/packages/theme-chalk/src/switch.scss +101 -101
  455. package/packages/theme-chalk/src/table-column.scss +87 -87
  456. package/packages/theme-chalk/src/table.scss +556 -556
  457. package/packages/theme-chalk/src/tabs.scss +576 -576
  458. package/packages/theme-chalk/src/tag.scss +155 -155
  459. package/packages/theme-chalk/src/time-select.scss +14 -14
  460. package/packages/theme-chalk/src/timeline-item.scss +71 -71
  461. package/packages/theme-chalk/src/timeline.scss +8 -8
  462. package/packages/theme-chalk/src/tooltip.scss +136 -136
  463. package/packages/theme-chalk/src/transfer.scss +214 -214
  464. package/packages/theme-chalk/src/tree.scss +110 -110
  465. package/packages/theme-chalk/src/upload.scss +587 -587
  466. package/packages/time-picker/index.js +1 -1
  467. package/packages/time-select/index.js +1 -1
  468. package/packages/timeline/index.js +1 -1
  469. package/packages/timeline/src/item.vue +56 -56
  470. package/packages/timeline/src/main.vue +28 -28
  471. package/packages/timeline-item/index.js +1 -1
  472. package/packages/tooltip/index.js +1 -1
  473. package/packages/tooltip/src/main.js +234 -234
  474. package/packages/transfer/index.js +1 -1
  475. package/packages/transfer/src/main.vue +225 -225
  476. package/packages/transfer/src/transfer-panel.vue +245 -245
  477. package/packages/tree/index.js +1 -1
  478. package/packages/tree/src/model/node.js +467 -467
  479. package/packages/tree/src/model/tree-store.js +335 -335
  480. package/packages/tree/src/model/util.js +17 -17
  481. package/packages/tree/src/tree-node.vue +247 -247
  482. package/packages/tree/src/tree.vue +491 -491
  483. package/packages/treeSelect/index.js +1 -1
  484. package/packages/treeSelect/src/main.vue +275 -275
  485. package/packages/upload/index.js +1 -1
  486. package/packages/upload/src/ajax.js +77 -77
  487. package/packages/upload/src/index.vue +304 -304
  488. package/packages/upload/src/upload-dragger.vue +65 -65
  489. package/packages/upload/src/upload-list.vue +96 -96
  490. package/packages/upload/src/upload.vue +194 -194
  491. package/src/directives/mousewheel.js +9 -9
  492. package/src/directives/repeat-click.js +20 -20
  493. package/src/index.js +209 -210
  494. package/src/locale/format.js +24 -25
  495. package/src/locale/index.js +25 -25
  496. package/src/locale/lang/en.js +121 -121
  497. package/src/locale/lang/zh-CN.js +121 -121
  498. package/src/locale/lang/zh-TW.js +121 -121
  499. package/src/mixins/emitter.js +26 -26
  500. package/src/mixins/focus.js +7 -7
  501. package/src/mixins/locale.js +5 -5
  502. package/src/mixins/migrating.js +28 -28
  503. package/src/transitions/collapse-transition.js +60 -60
  504. package/src/utils/after-leave.js +17 -17
  505. package/src/utils/aria-dialog.js +48 -48
  506. package/src/utils/aria-utils.js +64 -64
  507. package/src/utils/clickoutside.js +34 -34
  508. package/src/utils/date-util.js +163 -163
  509. package/src/utils/dom.js +165 -165
  510. package/src/utils/menu/aria-menubar.js +5 -5
  511. package/src/utils/menu/aria-menuitem.js +36 -36
  512. package/src/utils/menu/aria-submenu.js +44 -44
  513. package/src/utils/merge.js +12 -12
  514. package/src/utils/popup/index.js +203 -203
  515. package/src/utils/popup/popup-manager.js +169 -169
  516. package/src/utils/resize-event.js +20 -20
  517. package/src/utils/scroll-into-view.js +20 -20
  518. package/src/utils/scrollbar-width.js +18 -18
  519. package/src/utils/shared.js +3 -3
  520. package/src/utils/types.js +12 -12
  521. package/src/utils/util.js +157 -157
  522. package/src/utils/vdom.js +1 -1
  523. package/src/utils/vue-popper.js +179 -179
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);