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/tree.js CHANGED
@@ -241,7 +241,7 @@ module.exports = require("element-ui/lib/mixins/emitter");
241
241
  // ESM COMPAT FLAG
242
242
  __webpack_require__.r(__webpack_exports__);
243
243
 
244
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree.vue?vue&type=template&id=5814ec4e
244
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree.vue?vue&type=template&id=37500abf
245
245
  var render = function () {
246
246
  var _vm = this
247
247
  var _h = _vm.$createElement
@@ -299,7 +299,7 @@ var staticRenderFns = []
299
299
  render._withStripped = true
300
300
 
301
301
 
302
- // CONCATENATED MODULE: ./packages/tree/src/tree.vue?vue&type=template&id=5814ec4e
302
+ // CONCATENATED MODULE: ./packages/tree/src/tree.vue?vue&type=template&id=37500abf
303
303
 
304
304
  // EXTERNAL MODULE: external "element-ui/lib/utils/merge"
305
305
  var merge_ = __webpack_require__(9);
@@ -309,29 +309,29 @@ var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
309
309
  var NODE_KEY = '$treeNodeId';
310
310
 
311
311
  var markNodeData = function markNodeData(node, data) {
312
- if (!data || data[NODE_KEY]) return;
313
- Object.defineProperty(data, NODE_KEY, {
314
- value: node.id,
315
- enumerable: false,
316
- configurable: false,
317
- writable: false
318
- });
312
+ if (!data || data[NODE_KEY]) return;
313
+ Object.defineProperty(data, NODE_KEY, {
314
+ value: node.id,
315
+ enumerable: false,
316
+ configurable: false,
317
+ writable: false
318
+ });
319
319
  };
320
320
 
321
321
  var util_getNodeKey = function getNodeKey(key, data) {
322
- if (!key) return data[NODE_KEY];
323
- return data[key];
322
+ if (!key) return data[NODE_KEY];
323
+ return data[key];
324
324
  };
325
325
 
326
326
  var findNearestComponent = function findNearestComponent(element, componentName) {
327
- var target = element;
328
- while (target && target.tagName !== 'BODY') {
329
- if (target.__vue__ && target.__vue__.$options.name === componentName) {
330
- return target.__vue__;
331
- }
332
- target = target.parentNode;
333
- }
334
- return null;
327
+ var target = element;
328
+ while (target && target.tagName !== 'BODY') {
329
+ if (target.__vue__ && target.__vue__.$options.name === componentName) {
330
+ return target.__vue__;
331
+ }
332
+ target = target.parentNode;
333
+ }
334
+ return null;
335
335
  };
336
336
  // EXTERNAL MODULE: external "element-ui/lib/utils/util"
337
337
  var util_ = __webpack_require__(3);
@@ -346,530 +346,530 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
346
346
 
347
347
 
348
348
  var getChildState = function getChildState(node) {
349
- var all = true;
350
- var none = true;
351
- var allWithoutDisable = true;
352
- for (var i = 0, j = node.length; i < j; i++) {
353
- var n = node[i];
354
- if (n.checked !== true || n.indeterminate) {
355
- all = false;
356
- if (!n.disabled) {
357
- allWithoutDisable = false;
358
- }
359
- }
360
- if (n.checked !== false || n.indeterminate) {
361
- none = false;
362
- }
363
- }
364
-
365
- return { all: all, none: none, allWithoutDisable: allWithoutDisable, half: !all && !none };
349
+ var all = true;
350
+ var none = true;
351
+ var allWithoutDisable = true;
352
+ for (var i = 0, j = node.length; i < j; i++) {
353
+ var n = node[i];
354
+ if (n.checked !== true || n.indeterminate) {
355
+ all = false;
356
+ if (!n.disabled) {
357
+ allWithoutDisable = false;
358
+ }
359
+ }
360
+ if (n.checked !== false || n.indeterminate) {
361
+ none = false;
362
+ }
363
+ }
364
+
365
+ return { all: all, none: none, allWithoutDisable: allWithoutDisable, half: !all && !none };
366
366
  };
367
367
 
368
368
  var reInitChecked = function reInitChecked(node) {
369
- if (node.childNodes.length === 0 || node.loading) return;
370
-
371
- var _getChildState = getChildState(node.childNodes),
372
- all = _getChildState.all,
373
- none = _getChildState.none,
374
- half = _getChildState.half;
375
-
376
- if (all) {
377
- node.checked = true;
378
- node.indeterminate = false;
379
- } else if (half) {
380
- node.checked = false;
381
- node.indeterminate = true;
382
- } else if (none) {
383
- node.checked = false;
384
- node.indeterminate = false;
385
- }
386
-
387
- var parent = node.parent;
388
- if (!parent || parent.level === 0) return;
389
-
390
- if (!node.store.checkStrictly) {
391
- reInitChecked(parent);
392
- }
369
+ if (node.childNodes.length === 0 || node.loading) return;
370
+
371
+ var _getChildState = getChildState(node.childNodes),
372
+ all = _getChildState.all,
373
+ none = _getChildState.none,
374
+ half = _getChildState.half;
375
+
376
+ if (all) {
377
+ node.checked = true;
378
+ node.indeterminate = false;
379
+ } else if (half) {
380
+ node.checked = false;
381
+ node.indeterminate = true;
382
+ } else if (none) {
383
+ node.checked = false;
384
+ node.indeterminate = false;
385
+ }
386
+
387
+ var parent = node.parent;
388
+ if (!parent || parent.level === 0) return;
389
+
390
+ if (!node.store.checkStrictly) {
391
+ reInitChecked(parent);
392
+ }
393
393
  };
394
394
 
395
395
  var getPropertyFromData = function getPropertyFromData(node, prop) {
396
- var props = node.store.props;
397
- var data = node.data || {};
398
- var config = props[prop];
399
-
400
- if (typeof config === 'function') {
401
- return config(data, node);
402
- } else if (typeof config === 'string') {
403
- return data[config];
404
- } else if (typeof config === 'undefined') {
405
- var dataProp = data[prop];
406
- return dataProp === undefined ? '' : dataProp;
407
- }
396
+ var props = node.store.props;
397
+ var data = node.data || {};
398
+ var config = props[prop];
399
+
400
+ if (typeof config === 'function') {
401
+ return config(data, node);
402
+ } else if (typeof config === 'string') {
403
+ return data[config];
404
+ } else if (typeof config === 'undefined') {
405
+ var dataProp = data[prop];
406
+ return dataProp === undefined ? '' : dataProp;
407
+ }
408
408
  };
409
409
 
410
410
  var nodeIdSeed = 0;
411
411
 
412
412
  var node_Node = function () {
413
- function Node(options) {
414
- _classCallCheck(this, Node);
415
-
416
- this.id = nodeIdSeed++;
417
- this.text = null;
418
- this.checked = false;
419
- this.indeterminate = false;
420
- this.data = null;
421
- this.expanded = false;
422
- this.parent = null;
423
- this.visible = true;
424
- this.isCurrent = false;
425
-
426
- for (var name in options) {
427
- if (options.hasOwnProperty(name)) {
428
- this[name] = options[name];
429
- }
430
- }
431
-
432
- // internal
433
- this.level = 0;
434
- this.loaded = false;
435
- this.childNodes = [];
436
- this.loading = false;
437
-
438
- if (this.parent) {
439
- this.level = this.parent.level + 1;
440
- }
441
-
442
- var store = this.store;
443
- if (!store) {
444
- throw new Error('[Node]store is required!');
445
- }
446
- store.registerNode(this);
447
-
448
- var props = store.props;
449
- if (props && typeof props.isLeaf !== 'undefined') {
450
- var isLeaf = getPropertyFromData(this, 'isLeaf');
451
- if (typeof isLeaf === 'boolean') {
452
- this.isLeafByUser = isLeaf;
453
- }
454
- }
455
-
456
- if (store.lazy !== true && this.data) {
457
- this.setData(this.data);
458
-
459
- if (store.defaultExpandAll) {
460
- this.expanded = true;
461
- }
462
- } else if (this.level > 0 && store.lazy && store.defaultExpandAll) {
463
- this.expand();
464
- }
465
- if (!Array.isArray(this.data)) {
466
- markNodeData(this, this.data);
467
- }
468
- if (!this.data) return;
469
- var defaultExpandedKeys = store.defaultExpandedKeys;
470
- var key = store.key;
471
- if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {
472
- this.expand(null, store.autoExpandParent);
473
- }
474
-
475
- if (key && store.currentNodeKey !== undefined && this.key === store.currentNodeKey) {
476
- store.currentNode = this;
477
- store.currentNode.isCurrent = true;
478
- }
479
-
480
- if (store.lazy) {
481
- store._initDefaultCheckedNode(this);
482
- }
483
-
484
- this.updateLeafState();
485
- }
486
-
487
- Node.prototype.setData = function setData(data) {
488
- if (!Array.isArray(data)) {
489
- markNodeData(this, data);
490
- }
491
-
492
- this.data = data;
493
- this.childNodes = [];
494
-
495
- var children = void 0;
496
- if (this.level === 0 && this.data instanceof Array) {
497
- children = this.data;
498
- } else {
499
- children = getPropertyFromData(this, 'children') || [];
500
- }
501
-
502
- for (var i = 0, j = children.length; i < j; i++) {
503
- this.insertChild({ data: children[i] });
504
- }
505
- };
506
-
507
- Node.prototype.contains = function contains(target) {
508
- var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
509
-
510
- var walk = function walk(parent) {
511
- var children = parent.childNodes || [];
512
- var result = false;
513
- for (var i = 0, j = children.length; i < j; i++) {
514
- var child = children[i];
515
- if (child === target || deep && walk(child)) {
516
- result = true;
517
- break;
518
- }
519
- }
520
- return result;
521
- };
522
-
523
- return walk(this);
524
- };
525
-
526
- Node.prototype.remove = function remove() {
527
- var parent = this.parent;
528
- if (parent) {
529
- parent.removeChild(this);
530
- }
531
- };
532
-
533
- Node.prototype.insertChild = function insertChild(child, index, batch) {
534
- if (!child) throw new Error('insertChild error: child is required.');
535
-
536
- if (!(child instanceof Node)) {
537
- if (!batch) {
538
- var children = this.getChildren(true) || [];
539
- if (children.indexOf(child.data) === -1) {
540
- if (typeof index === 'undefined' || index < 0) {
541
- children.push(child.data);
542
- } else {
543
- children.splice(index, 0, child.data);
544
- }
545
- }
546
- }
547
- merge_default()(child, {
548
- parent: this,
549
- store: this.store
550
- });
551
- child = new Node(child);
552
- }
553
-
554
- child.level = this.level + 1;
555
-
556
- if (typeof index === 'undefined' || index < 0) {
557
- this.childNodes.push(child);
558
- } else {
559
- this.childNodes.splice(index, 0, child);
560
- }
561
-
562
- this.updateLeafState();
563
- };
564
-
565
- Node.prototype.insertBefore = function insertBefore(child, ref) {
566
- var index = void 0;
567
- if (ref) {
568
- index = this.childNodes.indexOf(ref);
569
- }
570
- this.insertChild(child, index);
571
- };
572
-
573
- Node.prototype.insertAfter = function insertAfter(child, ref) {
574
- var index = void 0;
575
- if (ref) {
576
- index = this.childNodes.indexOf(ref);
577
- if (index !== -1) index += 1;
578
- }
579
- this.insertChild(child, index);
580
- };
581
-
582
- Node.prototype.removeChild = function removeChild(child) {
583
- var children = this.getChildren() || [];
584
- var dataIndex = children.indexOf(child.data);
585
- if (dataIndex > -1) {
586
- children.splice(dataIndex, 1);
587
- }
588
-
589
- var index = this.childNodes.indexOf(child);
590
-
591
- if (index > -1) {
592
- this.store && this.store.deregisterNode(child);
593
- child.parent = null;
594
- this.childNodes.splice(index, 1);
595
- }
596
-
597
- this.updateLeafState();
598
- };
599
-
600
- Node.prototype.removeChildByData = function removeChildByData(data) {
601
- var targetNode = null;
602
-
603
- for (var i = 0; i < this.childNodes.length; i++) {
604
- if (this.childNodes[i].data === data) {
605
- targetNode = this.childNodes[i];
606
- break;
607
- }
608
- }
609
-
610
- if (targetNode) {
611
- this.removeChild(targetNode);
612
- }
613
- };
614
-
615
- Node.prototype.expand = function expand(callback, expandParent) {
616
- var _this = this;
617
-
618
- var done = function done() {
619
- if (expandParent) {
620
- var parent = _this.parent;
621
- while (parent.level > 0) {
622
- parent.expanded = true;
623
- parent = parent.parent;
624
- }
625
- }
626
- _this.expanded = true;
627
- if (callback) callback();
628
- };
629
-
630
- if (this.shouldLoadData()) {
631
- this.loadData(function (data) {
632
- if (data instanceof Array) {
633
- if (_this.checked) {
634
- _this.setChecked(true, true);
635
- } else if (!_this.store.checkStrictly) {
636
- reInitChecked(_this);
637
- }
638
- done();
639
- }
640
- });
641
- } else {
642
- done();
643
- }
644
- };
645
-
646
- Node.prototype.doCreateChildren = function doCreateChildren(array) {
647
- var _this2 = this;
648
-
649
- var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
650
-
651
- array.forEach(function (item) {
652
- _this2.insertChild(merge_default()({ data: item }, defaultProps), undefined, true);
653
- });
654
- };
655
-
656
- Node.prototype.collapse = function collapse() {
657
- this.expanded = false;
658
- };
659
-
660
- Node.prototype.shouldLoadData = function shouldLoadData() {
661
- return this.store.lazy === true && this.store.load && !this.loaded;
662
- };
663
-
664
- Node.prototype.updateLeafState = function updateLeafState() {
665
- if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {
666
- this.isLeaf = this.isLeafByUser;
667
- return;
668
- }
669
- var childNodes = this.childNodes;
670
- if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {
671
- this.isLeaf = !childNodes || childNodes.length === 0;
672
- return;
673
- }
674
- this.isLeaf = false;
675
- };
676
-
677
- Node.prototype.setChecked = function setChecked(value, deep, recursion, passValue) {
678
- var _this3 = this;
679
-
680
- this.indeterminate = value === 'half';
681
- this.checked = value === true;
682
-
683
- if (this.store.checkStrictly) return;
684
-
685
- if (!(this.shouldLoadData() && !this.store.checkDescendants)) {
686
- var _getChildState2 = getChildState(this.childNodes),
687
- all = _getChildState2.all,
688
- allWithoutDisable = _getChildState2.allWithoutDisable;
689
-
690
- if (!this.isLeaf && !all && allWithoutDisable) {
691
- this.checked = false;
692
- value = false;
693
- }
694
-
695
- var handleDescendants = function handleDescendants() {
696
- if (deep) {
697
- var childNodes = _this3.childNodes;
698
- for (var i = 0, j = childNodes.length; i < j; i++) {
699
- var child = childNodes[i];
700
- passValue = passValue || value !== false;
701
- var isCheck = child.disabled ? child.checked : passValue;
702
- child.setChecked(isCheck, deep, true, passValue);
703
- }
704
-
705
- var _getChildState3 = getChildState(childNodes),
706
- half = _getChildState3.half,
707
- _all = _getChildState3.all;
708
-
709
- if (!_all) {
710
- _this3.checked = _all;
711
- _this3.indeterminate = half;
712
- }
713
- }
714
- };
715
-
716
- if (this.shouldLoadData()) {
717
- // Only work on lazy load data.
718
- this.loadData(function () {
719
- handleDescendants();
720
- reInitChecked(_this3);
721
- }, {
722
- checked: value !== false
723
- });
724
- return;
725
- } else {
726
- handleDescendants();
727
- }
728
- }
729
-
730
- var parent = this.parent;
731
- if (!parent || parent.level === 0) return;
732
-
733
- if (!recursion) {
734
- reInitChecked(parent);
735
- }
736
- };
737
-
738
- Node.prototype.getChildren = function getChildren() {
739
- var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
740
- // this is data
741
- if (this.level === 0) return this.data;
742
- var data = this.data;
743
- if (!data) return null;
744
-
745
- var props = this.store.props;
746
- var children = 'children';
747
- if (props) {
748
- children = props.children || 'children';
749
- }
750
-
751
- if (data[children] === undefined) {
752
- data[children] = null;
753
- }
754
-
755
- if (forceInit && !data[children]) {
756
- data[children] = [];
757
- }
758
-
759
- return data[children];
760
- };
761
-
762
- Node.prototype.updateChildren = function updateChildren() {
763
- var _this4 = this;
764
-
765
- var newData = this.getChildren() || [];
766
- var oldData = this.childNodes.map(function (node) {
767
- return node.data;
768
- });
769
-
770
- var newDataMap = {};
771
- var newNodes = [];
772
-
773
- newData.forEach(function (item, index) {
774
- var key = item[NODE_KEY];
775
- var isNodeExists = !!key && Object(util_["arrayFindIndex"])(oldData, function (data) {
776
- return data[NODE_KEY] === key;
777
- }) >= 0;
778
- if (isNodeExists) {
779
- newDataMap[key] = { index: index, data: item };
780
- } else {
781
- newNodes.push({ index: index, data: item });
782
- }
783
- });
784
-
785
- if (!this.store.lazy) {
786
- oldData.forEach(function (item) {
787
- if (!newDataMap[item[NODE_KEY]]) _this4.removeChildByData(item);
788
- });
789
- }
790
-
791
- newNodes.forEach(function (_ref) {
792
- var index = _ref.index,
793
- data = _ref.data;
794
-
795
- _this4.insertChild({ data: data }, index);
796
- });
797
-
798
- this.updateLeafState();
799
- };
800
-
801
- Node.prototype.loadData = function loadData(callback) {
802
- var _this5 = this;
803
-
804
- var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
805
-
806
- if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) {
807
- this.loading = true;
808
-
809
- var resolve = function resolve(children) {
810
- _this5.childNodes = [];
811
-
812
- _this5.doCreateChildren(children, defaultProps);
813
- _this5.loaded = true;
814
- _this5.loading = false;
815
- _this5.updateLeafState();
816
- if (callback) {
817
- callback.call(_this5, children);
818
- }
819
- };
820
-
821
- this.store.load(this, resolve);
822
- } else {
823
- if (callback) {
824
- callback.call(this);
825
- }
826
- }
827
- };
828
-
829
- _createClass(Node, [{
830
- key: 'label',
831
- get: function get() {
832
- return getPropertyFromData(this, 'label');
833
- }
834
- }, {
835
- key: 'key',
836
- get: function get() {
837
- var nodeKey = this.store.key;
838
- if (this.data) return this.data[nodeKey];
839
- return null;
840
- }
841
- }, {
842
- key: 'disabled',
843
- get: function get() {
844
- return getPropertyFromData(this, 'disabled');
845
- }
846
- }, {
847
- key: 'nextSibling',
848
- get: function get() {
849
- var parent = this.parent;
850
- if (parent) {
851
- var index = parent.childNodes.indexOf(this);
852
- if (index > -1) {
853
- return parent.childNodes[index + 1];
854
- }
855
- }
856
- return null;
857
- }
858
- }, {
859
- key: 'previousSibling',
860
- get: function get() {
861
- var parent = this.parent;
862
- if (parent) {
863
- var index = parent.childNodes.indexOf(this);
864
- if (index > -1) {
865
- return index > 0 ? parent.childNodes[index - 1] : null;
866
- }
867
- }
868
- return null;
869
- }
870
- }]);
871
-
872
- return Node;
413
+ function Node(options) {
414
+ _classCallCheck(this, Node);
415
+
416
+ this.id = nodeIdSeed++;
417
+ this.text = null;
418
+ this.checked = false;
419
+ this.indeterminate = false;
420
+ this.data = null;
421
+ this.expanded = false;
422
+ this.parent = null;
423
+ this.visible = true;
424
+ this.isCurrent = false;
425
+
426
+ for (var name in options) {
427
+ if (options.hasOwnProperty(name)) {
428
+ this[name] = options[name];
429
+ }
430
+ }
431
+
432
+ // internal
433
+ this.level = 0;
434
+ this.loaded = false;
435
+ this.childNodes = [];
436
+ this.loading = false;
437
+
438
+ if (this.parent) {
439
+ this.level = this.parent.level + 1;
440
+ }
441
+
442
+ var store = this.store;
443
+ if (!store) {
444
+ throw new Error('[Node]store is required!');
445
+ }
446
+ store.registerNode(this);
447
+
448
+ var props = store.props;
449
+ if (props && typeof props.isLeaf !== 'undefined') {
450
+ var isLeaf = getPropertyFromData(this, 'isLeaf');
451
+ if (typeof isLeaf === 'boolean') {
452
+ this.isLeafByUser = isLeaf;
453
+ }
454
+ }
455
+
456
+ if (store.lazy !== true && this.data) {
457
+ this.setData(this.data);
458
+
459
+ if (store.defaultExpandAll) {
460
+ this.expanded = true;
461
+ }
462
+ } else if (this.level > 0 && store.lazy && store.defaultExpandAll) {
463
+ this.expand();
464
+ }
465
+ if (!Array.isArray(this.data)) {
466
+ markNodeData(this, this.data);
467
+ }
468
+ if (!this.data) return;
469
+ var defaultExpandedKeys = store.defaultExpandedKeys;
470
+ var key = store.key;
471
+ if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {
472
+ this.expand(null, store.autoExpandParent);
473
+ }
474
+
475
+ if (key && store.currentNodeKey !== undefined && this.key === store.currentNodeKey) {
476
+ store.currentNode = this;
477
+ store.currentNode.isCurrent = true;
478
+ }
479
+
480
+ if (store.lazy) {
481
+ store._initDefaultCheckedNode(this);
482
+ }
483
+
484
+ this.updateLeafState();
485
+ }
486
+
487
+ Node.prototype.setData = function setData(data) {
488
+ if (!Array.isArray(data)) {
489
+ markNodeData(this, data);
490
+ }
491
+
492
+ this.data = data;
493
+ this.childNodes = [];
494
+
495
+ var children = void 0;
496
+ if (this.level === 0 && this.data instanceof Array) {
497
+ children = this.data;
498
+ } else {
499
+ children = getPropertyFromData(this, 'children') || [];
500
+ }
501
+
502
+ for (var i = 0, j = children.length; i < j; i++) {
503
+ this.insertChild({ data: children[i] });
504
+ }
505
+ };
506
+
507
+ Node.prototype.contains = function contains(target) {
508
+ var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
509
+
510
+ var walk = function walk(parent) {
511
+ var children = parent.childNodes || [];
512
+ var result = false;
513
+ for (var i = 0, j = children.length; i < j; i++) {
514
+ var child = children[i];
515
+ if (child === target || deep && walk(child)) {
516
+ result = true;
517
+ break;
518
+ }
519
+ }
520
+ return result;
521
+ };
522
+
523
+ return walk(this);
524
+ };
525
+
526
+ Node.prototype.remove = function remove() {
527
+ var parent = this.parent;
528
+ if (parent) {
529
+ parent.removeChild(this);
530
+ }
531
+ };
532
+
533
+ Node.prototype.insertChild = function insertChild(child, index, batch) {
534
+ if (!child) throw new Error('insertChild error: child is required.');
535
+
536
+ if (!(child instanceof Node)) {
537
+ if (!batch) {
538
+ var children = this.getChildren(true) || [];
539
+ if (children.indexOf(child.data) === -1) {
540
+ if (typeof index === 'undefined' || index < 0) {
541
+ children.push(child.data);
542
+ } else {
543
+ children.splice(index, 0, child.data);
544
+ }
545
+ }
546
+ }
547
+ merge_default()(child, {
548
+ parent: this,
549
+ store: this.store
550
+ });
551
+ child = new Node(child);
552
+ }
553
+
554
+ child.level = this.level + 1;
555
+
556
+ if (typeof index === 'undefined' || index < 0) {
557
+ this.childNodes.push(child);
558
+ } else {
559
+ this.childNodes.splice(index, 0, child);
560
+ }
561
+
562
+ this.updateLeafState();
563
+ };
564
+
565
+ Node.prototype.insertBefore = function insertBefore(child, ref) {
566
+ var index = void 0;
567
+ if (ref) {
568
+ index = this.childNodes.indexOf(ref);
569
+ }
570
+ this.insertChild(child, index);
571
+ };
572
+
573
+ Node.prototype.insertAfter = function insertAfter(child, ref) {
574
+ var index = void 0;
575
+ if (ref) {
576
+ index = this.childNodes.indexOf(ref);
577
+ if (index !== -1) index += 1;
578
+ }
579
+ this.insertChild(child, index);
580
+ };
581
+
582
+ Node.prototype.removeChild = function removeChild(child) {
583
+ var children = this.getChildren() || [];
584
+ var dataIndex = children.indexOf(child.data);
585
+ if (dataIndex > -1) {
586
+ children.splice(dataIndex, 1);
587
+ }
588
+
589
+ var index = this.childNodes.indexOf(child);
590
+
591
+ if (index > -1) {
592
+ this.store && this.store.deregisterNode(child);
593
+ child.parent = null;
594
+ this.childNodes.splice(index, 1);
595
+ }
596
+
597
+ this.updateLeafState();
598
+ };
599
+
600
+ Node.prototype.removeChildByData = function removeChildByData(data) {
601
+ var targetNode = null;
602
+
603
+ for (var i = 0; i < this.childNodes.length; i++) {
604
+ if (this.childNodes[i].data === data) {
605
+ targetNode = this.childNodes[i];
606
+ break;
607
+ }
608
+ }
609
+
610
+ if (targetNode) {
611
+ this.removeChild(targetNode);
612
+ }
613
+ };
614
+
615
+ Node.prototype.expand = function expand(callback, expandParent) {
616
+ var _this = this;
617
+
618
+ var done = function done() {
619
+ if (expandParent) {
620
+ var parent = _this.parent;
621
+ while (parent.level > 0) {
622
+ parent.expanded = true;
623
+ parent = parent.parent;
624
+ }
625
+ }
626
+ _this.expanded = true;
627
+ if (callback) callback();
628
+ };
629
+
630
+ if (this.shouldLoadData()) {
631
+ this.loadData(function (data) {
632
+ if (data instanceof Array) {
633
+ if (_this.checked) {
634
+ _this.setChecked(true, true);
635
+ } else if (!_this.store.checkStrictly) {
636
+ reInitChecked(_this);
637
+ }
638
+ done();
639
+ }
640
+ });
641
+ } else {
642
+ done();
643
+ }
644
+ };
645
+
646
+ Node.prototype.doCreateChildren = function doCreateChildren(array) {
647
+ var _this2 = this;
648
+
649
+ var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
650
+
651
+ array.forEach(function (item) {
652
+ _this2.insertChild(merge_default()({ data: item }, defaultProps), undefined, true);
653
+ });
654
+ };
655
+
656
+ Node.prototype.collapse = function collapse() {
657
+ this.expanded = false;
658
+ };
659
+
660
+ Node.prototype.shouldLoadData = function shouldLoadData() {
661
+ return this.store.lazy === true && this.store.load && !this.loaded;
662
+ };
663
+
664
+ Node.prototype.updateLeafState = function updateLeafState() {
665
+ if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {
666
+ this.isLeaf = this.isLeafByUser;
667
+ return;
668
+ }
669
+ var childNodes = this.childNodes;
670
+ if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {
671
+ this.isLeaf = !childNodes || childNodes.length === 0;
672
+ return;
673
+ }
674
+ this.isLeaf = false;
675
+ };
676
+
677
+ Node.prototype.setChecked = function setChecked(value, deep, recursion, passValue) {
678
+ var _this3 = this;
679
+
680
+ this.indeterminate = value === 'half';
681
+ this.checked = value === true;
682
+
683
+ if (this.store.checkStrictly) return;
684
+
685
+ if (!(this.shouldLoadData() && !this.store.checkDescendants)) {
686
+ var _getChildState2 = getChildState(this.childNodes),
687
+ all = _getChildState2.all,
688
+ allWithoutDisable = _getChildState2.allWithoutDisable;
689
+
690
+ if (!this.isLeaf && !all && allWithoutDisable) {
691
+ this.checked = false;
692
+ value = false;
693
+ }
694
+
695
+ var handleDescendants = function handleDescendants() {
696
+ if (deep) {
697
+ var childNodes = _this3.childNodes;
698
+ for (var i = 0, j = childNodes.length; i < j; i++) {
699
+ var child = childNodes[i];
700
+ passValue = passValue || value !== false;
701
+ var isCheck = child.disabled ? child.checked : passValue;
702
+ child.setChecked(isCheck, deep, true, passValue);
703
+ }
704
+
705
+ var _getChildState3 = getChildState(childNodes),
706
+ half = _getChildState3.half,
707
+ _all = _getChildState3.all;
708
+
709
+ if (!_all) {
710
+ _this3.checked = _all;
711
+ _this3.indeterminate = half;
712
+ }
713
+ }
714
+ };
715
+
716
+ if (this.shouldLoadData()) {
717
+ // Only work on lazy load data.
718
+ this.loadData(function () {
719
+ handleDescendants();
720
+ reInitChecked(_this3);
721
+ }, {
722
+ checked: value !== false
723
+ });
724
+ return;
725
+ } else {
726
+ handleDescendants();
727
+ }
728
+ }
729
+
730
+ var parent = this.parent;
731
+ if (!parent || parent.level === 0) return;
732
+
733
+ if (!recursion) {
734
+ reInitChecked(parent);
735
+ }
736
+ };
737
+
738
+ Node.prototype.getChildren = function getChildren() {
739
+ var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
740
+ // this is data
741
+ if (this.level === 0) return this.data;
742
+ var data = this.data;
743
+ if (!data) return null;
744
+
745
+ var props = this.store.props;
746
+ var children = 'children';
747
+ if (props) {
748
+ children = props.children || 'children';
749
+ }
750
+
751
+ if (data[children] === undefined) {
752
+ data[children] = null;
753
+ }
754
+
755
+ if (forceInit && !data[children]) {
756
+ data[children] = [];
757
+ }
758
+
759
+ return data[children];
760
+ };
761
+
762
+ Node.prototype.updateChildren = function updateChildren() {
763
+ var _this4 = this;
764
+
765
+ var newData = this.getChildren() || [];
766
+ var oldData = this.childNodes.map(function (node) {
767
+ return node.data;
768
+ });
769
+
770
+ var newDataMap = {};
771
+ var newNodes = [];
772
+
773
+ newData.forEach(function (item, index) {
774
+ var key = item[NODE_KEY];
775
+ var isNodeExists = !!key && Object(util_["arrayFindIndex"])(oldData, function (data) {
776
+ return data[NODE_KEY] === key;
777
+ }) >= 0;
778
+ if (isNodeExists) {
779
+ newDataMap[key] = { index: index, data: item };
780
+ } else {
781
+ newNodes.push({ index: index, data: item });
782
+ }
783
+ });
784
+
785
+ if (!this.store.lazy) {
786
+ oldData.forEach(function (item) {
787
+ if (!newDataMap[item[NODE_KEY]]) _this4.removeChildByData(item);
788
+ });
789
+ }
790
+
791
+ newNodes.forEach(function (_ref) {
792
+ var index = _ref.index,
793
+ data = _ref.data;
794
+
795
+ _this4.insertChild({ data: data }, index);
796
+ });
797
+
798
+ this.updateLeafState();
799
+ };
800
+
801
+ Node.prototype.loadData = function loadData(callback) {
802
+ var _this5 = this;
803
+
804
+ var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
805
+
806
+ if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) {
807
+ this.loading = true;
808
+
809
+ var resolve = function resolve(children) {
810
+ _this5.childNodes = [];
811
+
812
+ _this5.doCreateChildren(children, defaultProps);
813
+ _this5.loaded = true;
814
+ _this5.loading = false;
815
+ _this5.updateLeafState();
816
+ if (callback) {
817
+ callback.call(_this5, children);
818
+ }
819
+ };
820
+
821
+ this.store.load(this, resolve);
822
+ } else {
823
+ if (callback) {
824
+ callback.call(this);
825
+ }
826
+ }
827
+ };
828
+
829
+ _createClass(Node, [{
830
+ key: 'label',
831
+ get: function get() {
832
+ return getPropertyFromData(this, 'label');
833
+ }
834
+ }, {
835
+ key: 'key',
836
+ get: function get() {
837
+ var nodeKey = this.store.key;
838
+ if (this.data) return this.data[nodeKey];
839
+ return null;
840
+ }
841
+ }, {
842
+ key: 'disabled',
843
+ get: function get() {
844
+ return getPropertyFromData(this, 'disabled');
845
+ }
846
+ }, {
847
+ key: 'nextSibling',
848
+ get: function get() {
849
+ var parent = this.parent;
850
+ if (parent) {
851
+ var index = parent.childNodes.indexOf(this);
852
+ if (index > -1) {
853
+ return parent.childNodes[index + 1];
854
+ }
855
+ }
856
+ return null;
857
+ }
858
+ }, {
859
+ key: 'previousSibling',
860
+ get: function get() {
861
+ var parent = this.parent;
862
+ if (parent) {
863
+ var index = parent.childNodes.indexOf(this);
864
+ if (index > -1) {
865
+ return index > 0 ? parent.childNodes[index - 1] : null;
866
+ }
867
+ }
868
+ return null;
869
+ }
870
+ }]);
871
+
872
+ return Node;
873
873
  }();
874
874
 
875
875
  /* harmony default export */ var model_node = (node_Node);
@@ -882,387 +882,387 @@ function tree_store_classCallCheck(instance, Constructor) { if (!(instance insta
882
882
 
883
883
 
884
884
  var tree_store_TreeStore = function () {
885
- function TreeStore(options) {
886
- var _this = this;
887
-
888
- tree_store_classCallCheck(this, TreeStore);
889
-
890
- this.currentNode = null;
891
- this.currentNodeKey = null;
892
-
893
- for (var option in options) {
894
- if (options.hasOwnProperty(option)) {
895
- this[option] = options[option];
896
- }
897
- }
898
-
899
- this.nodesMap = {};
900
-
901
- this.root = new model_node({
902
- data: this.data,
903
- store: this
904
- });
905
-
906
- if (this.lazy && this.load) {
907
- var loadFn = this.load;
908
- loadFn(this.root, function (data) {
909
- _this.root.doCreateChildren(data);
910
- _this._initDefaultCheckedNodes();
911
- });
912
- } else {
913
- this._initDefaultCheckedNodes();
914
- }
915
- }
916
-
917
- TreeStore.prototype.filter = function filter(value) {
918
- var filterNodeMethod = this.filterNodeMethod;
919
- var lazy = this.lazy;
920
- var traverse = function traverse(node) {
921
- var childNodes = node.root ? node.root.childNodes : node.childNodes;
922
-
923
- childNodes.forEach(function (child) {
924
- child.visible = filterNodeMethod.call(child, value, child.data, child);
925
-
926
- traverse(child);
927
- });
928
-
929
- if (!node.visible && childNodes.length) {
930
- var allHidden = true;
931
- allHidden = !childNodes.some(function (child) {
932
- return child.visible;
933
- });
934
-
935
- if (node.root) {
936
- node.root.visible = allHidden === false;
937
- } else {
938
- node.visible = allHidden === false;
939
- }
940
- }
941
- if (!value) return;
942
-
943
- if (node.visible && !node.isLeaf && !lazy) node.expand();
944
- };
945
-
946
- traverse(this);
947
- };
948
-
949
- TreeStore.prototype.setData = function setData(newVal) {
950
- var instanceChanged = newVal !== this.root.data;
951
- if (instanceChanged) {
952
- this.root.setData(newVal);
953
- this._initDefaultCheckedNodes();
954
- } else {
955
- this.root.updateChildren();
956
- }
957
- };
958
-
959
- TreeStore.prototype.getNode = function getNode(data) {
960
- if (data instanceof model_node) return data;
961
- var key = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object' ? data : util_getNodeKey(this.key, data);
962
- return this.nodesMap[key] || null;
963
- };
964
-
965
- TreeStore.prototype.insertBefore = function insertBefore(data, refData) {
966
- var refNode = this.getNode(refData);
967
- refNode.parent.insertBefore({ data: data }, refNode);
968
- };
969
-
970
- TreeStore.prototype.insertAfter = function insertAfter(data, refData) {
971
- var refNode = this.getNode(refData);
972
- refNode.parent.insertAfter({ data: data }, refNode);
973
- };
974
-
975
- TreeStore.prototype.remove = function remove(data) {
976
- var node = this.getNode(data);
977
-
978
- if (node && node.parent) {
979
- if (node === this.currentNode) {
980
- this.currentNode = null;
981
- }
982
- node.parent.removeChild(node);
983
- }
984
- };
985
-
986
- TreeStore.prototype.append = function append(data, parentData) {
987
- var parentNode = parentData ? this.getNode(parentData) : this.root;
988
-
989
- if (parentNode) {
990
- parentNode.insertChild({ data: data });
991
- }
992
- };
993
-
994
- TreeStore.prototype._initDefaultCheckedNodes = function _initDefaultCheckedNodes() {
995
- var _this2 = this;
996
-
997
- var defaultCheckedKeys = this.defaultCheckedKeys || [];
998
- var nodesMap = this.nodesMap;
999
-
1000
- defaultCheckedKeys.forEach(function (checkedKey) {
1001
- var node = nodesMap[checkedKey];
1002
-
1003
- if (node) {
1004
- node.setChecked(true, !_this2.checkStrictly);
1005
- }
1006
- });
1007
- };
1008
-
1009
- TreeStore.prototype._initDefaultCheckedNode = function _initDefaultCheckedNode(node) {
1010
- var defaultCheckedKeys = this.defaultCheckedKeys || [];
1011
-
1012
- if (defaultCheckedKeys.indexOf(node.key) !== -1) {
1013
- node.setChecked(true, !this.checkStrictly);
1014
- }
1015
- };
1016
-
1017
- TreeStore.prototype.setDefaultCheckedKey = function setDefaultCheckedKey(newVal) {
1018
- if (newVal !== this.defaultCheckedKeys) {
1019
- this.defaultCheckedKeys = newVal;
1020
- this._initDefaultCheckedNodes();
1021
- }
1022
- };
1023
-
1024
- TreeStore.prototype.registerNode = function registerNode(node) {
1025
- var key = this.key;
1026
- if (!key || !node || !node.data) return;
1027
-
1028
- var nodeKey = node.key;
1029
- if (nodeKey !== undefined) this.nodesMap[node.key] = node;
1030
- };
1031
-
1032
- TreeStore.prototype.deregisterNode = function deregisterNode(node) {
1033
- var _this3 = this;
1034
-
1035
- var key = this.key;
1036
- if (!key || !node || !node.data) return;
1037
-
1038
- node.childNodes.forEach(function (child) {
1039
- _this3.deregisterNode(child);
1040
- });
1041
-
1042
- delete this.nodesMap[node.key];
1043
- };
1044
-
1045
- TreeStore.prototype.getCheckedNodes = function getCheckedNodes() {
1046
- var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1047
- var includeHalfChecked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1048
-
1049
- var checkedNodes = [];
1050
- var traverse = function traverse(node) {
1051
- var childNodes = node.root ? node.root.childNodes : node.childNodes;
1052
-
1053
- childNodes.forEach(function (child) {
1054
- if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
1055
- checkedNodes.push(child.data);
1056
- }
1057
-
1058
- traverse(child);
1059
- });
1060
- };
1061
-
1062
- traverse(this);
1063
-
1064
- return checkedNodes;
1065
- };
1066
-
1067
- TreeStore.prototype.getCheckedKeys = function getCheckedKeys() {
1068
- var _this4 = this;
1069
-
1070
- var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1071
-
1072
- return this.getCheckedNodes(leafOnly).map(function (data) {
1073
- return (data || {})[_this4.key];
1074
- });
1075
- };
1076
-
1077
- TreeStore.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() {
1078
- var nodes = [];
1079
- var traverse = function traverse(node) {
1080
- var childNodes = node.root ? node.root.childNodes : node.childNodes;
1081
-
1082
- childNodes.forEach(function (child) {
1083
- if (child.indeterminate) {
1084
- nodes.push(child.data);
1085
- }
1086
-
1087
- traverse(child);
1088
- });
1089
- };
1090
-
1091
- traverse(this);
1092
-
1093
- return nodes;
1094
- };
1095
-
1096
- TreeStore.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() {
1097
- var _this5 = this;
1098
-
1099
- return this.getHalfCheckedNodes().map(function (data) {
1100
- return (data || {})[_this5.key];
1101
- });
1102
- };
1103
-
1104
- TreeStore.prototype._getAllNodes = function _getAllNodes() {
1105
- var allNodes = [];
1106
- var nodesMap = this.nodesMap;
1107
- for (var nodeKey in nodesMap) {
1108
- if (nodesMap.hasOwnProperty(nodeKey)) {
1109
- allNodes.push(nodesMap[nodeKey]);
1110
- }
1111
- }
1112
-
1113
- return allNodes;
1114
- };
1115
-
1116
- TreeStore.prototype.updateChildren = function updateChildren(key, data) {
1117
- var node = this.nodesMap[key];
1118
- if (!node) return;
1119
- var childNodes = node.childNodes;
1120
- for (var i = childNodes.length - 1; i >= 0; i--) {
1121
- var child = childNodes[i];
1122
- this.remove(child.data);
1123
- }
1124
- for (var _i = 0, j = data.length; _i < j; _i++) {
1125
- var _child = data[_i];
1126
- this.append(_child, node.data);
1127
- }
1128
- };
1129
-
1130
- TreeStore.prototype._setCheckedKeys = function _setCheckedKeys(key) {
1131
- var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1132
- var checkedKeys = arguments[2];
1133
-
1134
- var allNodes = this._getAllNodes().sort(function (a, b) {
1135
- return b.level - a.level;
1136
- });
1137
- var cache = Object.create(null);
1138
- var keys = Object.keys(checkedKeys);
1139
- allNodes.forEach(function (node) {
1140
- return node.setChecked(false, false);
1141
- });
1142
- for (var i = 0, j = allNodes.length; i < j; i++) {
1143
- var node = allNodes[i];
1144
- var nodeKey = node.data[key].toString();
1145
- var checked = keys.indexOf(nodeKey) > -1;
1146
- if (!checked) {
1147
- if (node.checked && !cache[nodeKey]) {
1148
- node.setChecked(false, false);
1149
- }
1150
- continue;
1151
- }
1152
-
1153
- var parent = node.parent;
1154
- while (parent && parent.level > 0) {
1155
- cache[parent.data[key]] = true;
1156
- parent = parent.parent;
1157
- }
1158
-
1159
- if (node.isLeaf || this.checkStrictly) {
1160
- node.setChecked(true, false);
1161
- continue;
1162
- }
1163
- node.setChecked(true, true);
1164
-
1165
- if (leafOnly) {
1166
- (function () {
1167
- node.setChecked(false, false);
1168
- var traverse = function traverse(node) {
1169
- var childNodes = node.childNodes;
1170
- childNodes.forEach(function (child) {
1171
- if (!child.isLeaf) {
1172
- child.setChecked(false, false);
1173
- }
1174
- traverse(child);
1175
- });
1176
- };
1177
- traverse(node);
1178
- })();
1179
- }
1180
- }
1181
- };
1182
-
1183
- TreeStore.prototype.setCheckedNodes = function setCheckedNodes(array) {
1184
- var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1185
-
1186
- var key = this.key;
1187
- var checkedKeys = {};
1188
- array.forEach(function (item) {
1189
- checkedKeys[(item || {})[key]] = true;
1190
- });
1191
-
1192
- this._setCheckedKeys(key, leafOnly, checkedKeys);
1193
- };
1194
-
1195
- TreeStore.prototype.setCheckedKeys = function setCheckedKeys(keys) {
1196
- var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1197
-
1198
- this.defaultCheckedKeys = keys;
1199
- var key = this.key;
1200
- var checkedKeys = {};
1201
- keys.forEach(function (key) {
1202
- checkedKeys[key] = true;
1203
- });
1204
-
1205
- this._setCheckedKeys(key, leafOnly, checkedKeys);
1206
- };
1207
-
1208
- TreeStore.prototype.setDefaultExpandedKeys = function setDefaultExpandedKeys(keys) {
1209
- var _this6 = this;
1210
-
1211
- keys = keys || [];
1212
- this.defaultExpandedKeys = keys;
1213
-
1214
- keys.forEach(function (key) {
1215
- var node = _this6.getNode(key);
1216
- if (node) node.expand(null, _this6.autoExpandParent);
1217
- });
1218
- };
1219
-
1220
- TreeStore.prototype.setChecked = function setChecked(data, checked, deep) {
1221
- var node = this.getNode(data);
1222
-
1223
- if (node) {
1224
- node.setChecked(!!checked, deep);
1225
- }
1226
- };
1227
-
1228
- TreeStore.prototype.getCurrentNode = function getCurrentNode() {
1229
- return this.currentNode;
1230
- };
1231
-
1232
- TreeStore.prototype.setCurrentNode = function setCurrentNode(currentNode) {
1233
- var prevCurrentNode = this.currentNode;
1234
- if (prevCurrentNode) {
1235
- prevCurrentNode.isCurrent = false;
1236
- }
1237
- this.currentNode = currentNode;
1238
- this.currentNode.isCurrent = true;
1239
- };
1240
-
1241
- TreeStore.prototype.setUserCurrentNode = function setUserCurrentNode(node) {
1242
- var key = node[this.key];
1243
- var currNode = this.nodesMap[key];
1244
- this.setCurrentNode(currNode);
1245
- };
1246
-
1247
- TreeStore.prototype.setCurrentNodeKey = function setCurrentNodeKey(key) {
1248
- if (key === null || key === undefined) {
1249
- this.currentNode && (this.currentNode.isCurrent = false);
1250
- this.currentNode = null;
1251
- return;
1252
- }
1253
- var node = this.getNode(key);
1254
- if (node) {
1255
- this.setCurrentNode(node);
1256
- }
1257
- };
1258
-
1259
- return TreeStore;
885
+ function TreeStore(options) {
886
+ var _this = this;
887
+
888
+ tree_store_classCallCheck(this, TreeStore);
889
+
890
+ this.currentNode = null;
891
+ this.currentNodeKey = null;
892
+
893
+ for (var option in options) {
894
+ if (options.hasOwnProperty(option)) {
895
+ this[option] = options[option];
896
+ }
897
+ }
898
+
899
+ this.nodesMap = {};
900
+
901
+ this.root = new model_node({
902
+ data: this.data,
903
+ store: this
904
+ });
905
+
906
+ if (this.lazy && this.load) {
907
+ var loadFn = this.load;
908
+ loadFn(this.root, function (data) {
909
+ _this.root.doCreateChildren(data);
910
+ _this._initDefaultCheckedNodes();
911
+ });
912
+ } else {
913
+ this._initDefaultCheckedNodes();
914
+ }
915
+ }
916
+
917
+ TreeStore.prototype.filter = function filter(value) {
918
+ var filterNodeMethod = this.filterNodeMethod;
919
+ var lazy = this.lazy;
920
+ var traverse = function traverse(node) {
921
+ var childNodes = node.root ? node.root.childNodes : node.childNodes;
922
+
923
+ childNodes.forEach(function (child) {
924
+ child.visible = filterNodeMethod.call(child, value, child.data, child);
925
+
926
+ traverse(child);
927
+ });
928
+
929
+ if (!node.visible && childNodes.length) {
930
+ var allHidden = true;
931
+ allHidden = !childNodes.some(function (child) {
932
+ return child.visible;
933
+ });
934
+
935
+ if (node.root) {
936
+ node.root.visible = allHidden === false;
937
+ } else {
938
+ node.visible = allHidden === false;
939
+ }
940
+ }
941
+ if (!value) return;
942
+
943
+ if (node.visible && !node.isLeaf && !lazy) node.expand();
944
+ };
945
+
946
+ traverse(this);
947
+ };
948
+
949
+ TreeStore.prototype.setData = function setData(newVal) {
950
+ var instanceChanged = newVal !== this.root.data;
951
+ if (instanceChanged) {
952
+ this.root.setData(newVal);
953
+ this._initDefaultCheckedNodes();
954
+ } else {
955
+ this.root.updateChildren();
956
+ }
957
+ };
958
+
959
+ TreeStore.prototype.getNode = function getNode(data) {
960
+ if (data instanceof model_node) return data;
961
+ var key = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object' ? data : util_getNodeKey(this.key, data);
962
+ return this.nodesMap[key] || null;
963
+ };
964
+
965
+ TreeStore.prototype.insertBefore = function insertBefore(data, refData) {
966
+ var refNode = this.getNode(refData);
967
+ refNode.parent.insertBefore({ data: data }, refNode);
968
+ };
969
+
970
+ TreeStore.prototype.insertAfter = function insertAfter(data, refData) {
971
+ var refNode = this.getNode(refData);
972
+ refNode.parent.insertAfter({ data: data }, refNode);
973
+ };
974
+
975
+ TreeStore.prototype.remove = function remove(data) {
976
+ var node = this.getNode(data);
977
+
978
+ if (node && node.parent) {
979
+ if (node === this.currentNode) {
980
+ this.currentNode = null;
981
+ }
982
+ node.parent.removeChild(node);
983
+ }
984
+ };
985
+
986
+ TreeStore.prototype.append = function append(data, parentData) {
987
+ var parentNode = parentData ? this.getNode(parentData) : this.root;
988
+
989
+ if (parentNode) {
990
+ parentNode.insertChild({ data: data });
991
+ }
992
+ };
993
+
994
+ TreeStore.prototype._initDefaultCheckedNodes = function _initDefaultCheckedNodes() {
995
+ var _this2 = this;
996
+
997
+ var defaultCheckedKeys = this.defaultCheckedKeys || [];
998
+ var nodesMap = this.nodesMap;
999
+
1000
+ defaultCheckedKeys.forEach(function (checkedKey) {
1001
+ var node = nodesMap[checkedKey];
1002
+
1003
+ if (node) {
1004
+ node.setChecked(true, !_this2.checkStrictly);
1005
+ }
1006
+ });
1007
+ };
1008
+
1009
+ TreeStore.prototype._initDefaultCheckedNode = function _initDefaultCheckedNode(node) {
1010
+ var defaultCheckedKeys = this.defaultCheckedKeys || [];
1011
+
1012
+ if (defaultCheckedKeys.indexOf(node.key) !== -1) {
1013
+ node.setChecked(true, !this.checkStrictly);
1014
+ }
1015
+ };
1016
+
1017
+ TreeStore.prototype.setDefaultCheckedKey = function setDefaultCheckedKey(newVal) {
1018
+ if (newVal !== this.defaultCheckedKeys) {
1019
+ this.defaultCheckedKeys = newVal;
1020
+ this._initDefaultCheckedNodes();
1021
+ }
1022
+ };
1023
+
1024
+ TreeStore.prototype.registerNode = function registerNode(node) {
1025
+ var key = this.key;
1026
+ if (!key || !node || !node.data) return;
1027
+
1028
+ var nodeKey = node.key;
1029
+ if (nodeKey !== undefined) this.nodesMap[node.key] = node;
1030
+ };
1031
+
1032
+ TreeStore.prototype.deregisterNode = function deregisterNode(node) {
1033
+ var _this3 = this;
1034
+
1035
+ var key = this.key;
1036
+ if (!key || !node || !node.data) return;
1037
+
1038
+ node.childNodes.forEach(function (child) {
1039
+ _this3.deregisterNode(child);
1040
+ });
1041
+
1042
+ delete this.nodesMap[node.key];
1043
+ };
1044
+
1045
+ TreeStore.prototype.getCheckedNodes = function getCheckedNodes() {
1046
+ var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1047
+ var includeHalfChecked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1048
+
1049
+ var checkedNodes = [];
1050
+ var traverse = function traverse(node) {
1051
+ var childNodes = node.root ? node.root.childNodes : node.childNodes;
1052
+
1053
+ childNodes.forEach(function (child) {
1054
+ if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
1055
+ checkedNodes.push(child.data);
1056
+ }
1057
+
1058
+ traverse(child);
1059
+ });
1060
+ };
1061
+
1062
+ traverse(this);
1063
+
1064
+ return checkedNodes;
1065
+ };
1066
+
1067
+ TreeStore.prototype.getCheckedKeys = function getCheckedKeys() {
1068
+ var _this4 = this;
1069
+
1070
+ var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1071
+
1072
+ return this.getCheckedNodes(leafOnly).map(function (data) {
1073
+ return (data || {})[_this4.key];
1074
+ });
1075
+ };
1076
+
1077
+ TreeStore.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() {
1078
+ var nodes = [];
1079
+ var traverse = function traverse(node) {
1080
+ var childNodes = node.root ? node.root.childNodes : node.childNodes;
1081
+
1082
+ childNodes.forEach(function (child) {
1083
+ if (child.indeterminate) {
1084
+ nodes.push(child.data);
1085
+ }
1086
+
1087
+ traverse(child);
1088
+ });
1089
+ };
1090
+
1091
+ traverse(this);
1092
+
1093
+ return nodes;
1094
+ };
1095
+
1096
+ TreeStore.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() {
1097
+ var _this5 = this;
1098
+
1099
+ return this.getHalfCheckedNodes().map(function (data) {
1100
+ return (data || {})[_this5.key];
1101
+ });
1102
+ };
1103
+
1104
+ TreeStore.prototype._getAllNodes = function _getAllNodes() {
1105
+ var allNodes = [];
1106
+ var nodesMap = this.nodesMap;
1107
+ for (var nodeKey in nodesMap) {
1108
+ if (nodesMap.hasOwnProperty(nodeKey)) {
1109
+ allNodes.push(nodesMap[nodeKey]);
1110
+ }
1111
+ }
1112
+
1113
+ return allNodes;
1114
+ };
1115
+
1116
+ TreeStore.prototype.updateChildren = function updateChildren(key, data) {
1117
+ var node = this.nodesMap[key];
1118
+ if (!node) return;
1119
+ var childNodes = node.childNodes;
1120
+ for (var i = childNodes.length - 1; i >= 0; i--) {
1121
+ var child = childNodes[i];
1122
+ this.remove(child.data);
1123
+ }
1124
+ for (var _i = 0, j = data.length; _i < j; _i++) {
1125
+ var _child = data[_i];
1126
+ this.append(_child, node.data);
1127
+ }
1128
+ };
1129
+
1130
+ TreeStore.prototype._setCheckedKeys = function _setCheckedKeys(key) {
1131
+ var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1132
+ var checkedKeys = arguments[2];
1133
+
1134
+ var allNodes = this._getAllNodes().sort(function (a, b) {
1135
+ return b.level - a.level;
1136
+ });
1137
+ var cache = Object.create(null);
1138
+ var keys = Object.keys(checkedKeys);
1139
+ allNodes.forEach(function (node) {
1140
+ return node.setChecked(false, false);
1141
+ });
1142
+ for (var i = 0, j = allNodes.length; i < j; i++) {
1143
+ var node = allNodes[i];
1144
+ var nodeKey = node.data[key].toString();
1145
+ var checked = keys.indexOf(nodeKey) > -1;
1146
+ if (!checked) {
1147
+ if (node.checked && !cache[nodeKey]) {
1148
+ node.setChecked(false, false);
1149
+ }
1150
+ continue;
1151
+ }
1152
+
1153
+ var parent = node.parent;
1154
+ while (parent && parent.level > 0) {
1155
+ cache[parent.data[key]] = true;
1156
+ parent = parent.parent;
1157
+ }
1158
+
1159
+ if (node.isLeaf || this.checkStrictly) {
1160
+ node.setChecked(true, false);
1161
+ continue;
1162
+ }
1163
+ node.setChecked(true, true);
1164
+
1165
+ if (leafOnly) {
1166
+ (function () {
1167
+ node.setChecked(false, false);
1168
+ var traverse = function traverse(node) {
1169
+ var childNodes = node.childNodes;
1170
+ childNodes.forEach(function (child) {
1171
+ if (!child.isLeaf) {
1172
+ child.setChecked(false, false);
1173
+ }
1174
+ traverse(child);
1175
+ });
1176
+ };
1177
+ traverse(node);
1178
+ })();
1179
+ }
1180
+ }
1181
+ };
1182
+
1183
+ TreeStore.prototype.setCheckedNodes = function setCheckedNodes(array) {
1184
+ var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1185
+
1186
+ var key = this.key;
1187
+ var checkedKeys = {};
1188
+ array.forEach(function (item) {
1189
+ checkedKeys[(item || {})[key]] = true;
1190
+ });
1191
+
1192
+ this._setCheckedKeys(key, leafOnly, checkedKeys);
1193
+ };
1194
+
1195
+ TreeStore.prototype.setCheckedKeys = function setCheckedKeys(keys) {
1196
+ var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1197
+
1198
+ this.defaultCheckedKeys = keys;
1199
+ var key = this.key;
1200
+ var checkedKeys = {};
1201
+ keys.forEach(function (key) {
1202
+ checkedKeys[key] = true;
1203
+ });
1204
+
1205
+ this._setCheckedKeys(key, leafOnly, checkedKeys);
1206
+ };
1207
+
1208
+ TreeStore.prototype.setDefaultExpandedKeys = function setDefaultExpandedKeys(keys) {
1209
+ var _this6 = this;
1210
+
1211
+ keys = keys || [];
1212
+ this.defaultExpandedKeys = keys;
1213
+
1214
+ keys.forEach(function (key) {
1215
+ var node = _this6.getNode(key);
1216
+ if (node) node.expand(null, _this6.autoExpandParent);
1217
+ });
1218
+ };
1219
+
1220
+ TreeStore.prototype.setChecked = function setChecked(data, checked, deep) {
1221
+ var node = this.getNode(data);
1222
+
1223
+ if (node) {
1224
+ node.setChecked(!!checked, deep);
1225
+ }
1226
+ };
1227
+
1228
+ TreeStore.prototype.getCurrentNode = function getCurrentNode() {
1229
+ return this.currentNode;
1230
+ };
1231
+
1232
+ TreeStore.prototype.setCurrentNode = function setCurrentNode(currentNode) {
1233
+ var prevCurrentNode = this.currentNode;
1234
+ if (prevCurrentNode) {
1235
+ prevCurrentNode.isCurrent = false;
1236
+ }
1237
+ this.currentNode = currentNode;
1238
+ this.currentNode.isCurrent = true;
1239
+ };
1240
+
1241
+ TreeStore.prototype.setUserCurrentNode = function setUserCurrentNode(node) {
1242
+ var key = node[this.key];
1243
+ var currNode = this.nodesMap[key];
1244
+ this.setCurrentNode(currNode);
1245
+ };
1246
+
1247
+ TreeStore.prototype.setCurrentNodeKey = function setCurrentNodeKey(key) {
1248
+ if (key === null || key === undefined) {
1249
+ this.currentNode && (this.currentNode.isCurrent = false);
1250
+ this.currentNode = null;
1251
+ return;
1252
+ }
1253
+ var node = this.getNode(key);
1254
+ if (node) {
1255
+ this.setCurrentNode(node);
1256
+ }
1257
+ };
1258
+
1259
+ return TreeStore;
1260
1260
  }();
1261
1261
 
1262
1262
  /* harmony default export */ var tree_store = (tree_store_TreeStore);
1263
1263
  ;
1264
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree-node.vue?vue&type=template&id=3869abb7
1265
- var tree_nodevue_type_template_id_3869abb7_render = function () {
1264
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree-node.vue?vue&type=template&id=769053c6
1265
+ var tree_nodevue_type_template_id_769053c6_render = function () {
1266
1266
  var this$1 = this
1267
1267
  var _vm = this
1268
1268
  var _h = _vm.$createElement
@@ -1413,11 +1413,11 @@ var tree_nodevue_type_template_id_3869abb7_render = function () {
1413
1413
  1
1414
1414
  )
1415
1415
  }
1416
- var tree_nodevue_type_template_id_3869abb7_staticRenderFns = []
1417
- tree_nodevue_type_template_id_3869abb7_render._withStripped = true
1416
+ var tree_nodevue_type_template_id_769053c6_staticRenderFns = []
1417
+ tree_nodevue_type_template_id_769053c6_render._withStripped = true
1418
1418
 
1419
1419
 
1420
- // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=template&id=3869abb7
1420
+ // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=template&id=769053c6
1421
1421
 
1422
1422
  // EXTERNAL MODULE: external "element-ui/lib/transitions/collapse-transition"
1423
1423
  var collapse_transition_ = __webpack_require__(23);
@@ -1512,200 +1512,200 @@ var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
1512
1512
 
1513
1513
 
1514
1514
  /* harmony default export */ var tree_nodevue_type_script_lang_js = ({
1515
- name: 'ElTreeNode',
1516
-
1517
- componentName: 'ElTreeNode',
1518
-
1519
- mixins: [emitter_default.a],
1520
-
1521
- props: {
1522
- node: {
1523
- default: function _default() {
1524
- return {};
1525
- }
1526
- },
1527
- props: {},
1528
- renderContent: Function,
1529
- renderAfterExpand: {
1530
- type: Boolean,
1531
- default: true
1532
- },
1533
- showCheckbox: {
1534
- type: Boolean,
1535
- default: false
1536
- }
1537
- },
1538
-
1539
- components: {
1540
- ElCollapseTransition: collapse_transition_default.a,
1541
- ElCheckbox: checkbox_default.a,
1542
- NodeContent: {
1543
- props: {
1544
- node: {
1545
- required: true
1546
- }
1547
- },
1548
- render: function render(h) {
1549
- var parent = this.$parent;
1550
- var tree = parent.tree;
1551
- var node = this.node;
1552
- var data = node.data,
1553
- store = node.store;
1554
-
1555
- return parent.renderContent ? parent.renderContent.call(parent._renderProxy, h, { _self: tree.$vnode.context, node: node, data: data, store: store }) : tree.$scopedSlots.default ? tree.$scopedSlots.default({ node: node, data: data }) : h(
1556
- 'span',
1557
- { 'class': 'el-tree-node__label' },
1558
- [node.label]
1559
- );
1560
- }
1561
- }
1562
- },
1563
-
1564
- data: function data() {
1565
- return {
1566
- tree: null,
1567
- expanded: false,
1568
- childNodeRendered: false,
1569
- oldChecked: null,
1570
- oldIndeterminate: null
1571
- };
1572
- },
1573
-
1574
-
1575
- watch: {
1576
- 'node.indeterminate': function nodeIndeterminate(val) {
1577
- this.handleSelectChange(this.node.checked, val);
1578
- },
1579
- 'node.checked': function nodeChecked(val) {
1580
- this.handleSelectChange(val, this.node.indeterminate);
1581
- },
1582
- 'node.expanded': function nodeExpanded(val) {
1583
- var _this = this;
1584
-
1585
- this.$nextTick(function () {
1586
- return _this.expanded = val;
1587
- });
1588
- if (val) {
1589
- this.childNodeRendered = true;
1590
- }
1591
- }
1592
- },
1593
-
1594
- methods: {
1595
- getNodeKey: function getNodeKey(node) {
1596
- return util_getNodeKey(this.tree.nodeKey, node.data);
1597
- },
1598
- handleSelectChange: function handleSelectChange(checked, indeterminate) {
1599
- if (this.oldChecked !== checked && this.oldIndeterminate !== indeterminate) {
1600
- this.tree.$emit('check-change', this.node.data, checked, indeterminate);
1601
- }
1602
- this.oldChecked = checked;
1603
- this.indeterminate = indeterminate;
1604
- },
1605
- handleClick: function handleClick() {
1606
- var store = this.tree.store;
1607
- store.setCurrentNode(this.node);
1608
- this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode);
1609
- this.tree.currentNode = this;
1610
- if (this.tree.expandOnClickNode) {
1611
- this.handleExpandIconClick();
1612
- }
1613
- if (this.tree.checkOnClickNode && !this.node.disabled) {
1614
- this.handleCheckChange(null, {
1615
- target: { checked: !this.node.checked }
1616
- });
1617
- }
1618
- this.tree.$emit('node-click', this.node.data, this.node, this);
1619
- },
1620
- handleContextMenu: function handleContextMenu(event) {
1621
- if (this.tree._events['node-contextmenu'] && this.tree._events['node-contextmenu'].length > 0) {
1622
- event.stopPropagation();
1623
- event.preventDefault();
1624
- }
1625
- this.tree.$emit('node-contextmenu', event, this.node.data, this.node, this);
1626
- },
1627
- handleExpandIconClick: function handleExpandIconClick() {
1628
- if (this.node.isLeaf) return;
1629
- if (this.expanded) {
1630
- this.tree.$emit('node-collapse', this.node.data, this.node, this);
1631
- this.node.collapse();
1632
- } else {
1633
- this.node.expand();
1634
- this.$emit('node-expand', this.node.data, this.node, this);
1635
- }
1636
- },
1637
- handleCheckChange: function handleCheckChange(value, ev) {
1638
- var _this2 = this;
1639
-
1640
- this.node.setChecked(ev.target.checked, !this.tree.checkStrictly);
1641
- this.$nextTick(function () {
1642
- var store = _this2.tree.store;
1643
- _this2.tree.$emit('check', _this2.node.data, {
1644
- checkedNodes: store.getCheckedNodes(),
1645
- checkedKeys: store.getCheckedKeys(),
1646
- halfCheckedNodes: store.getHalfCheckedNodes(),
1647
- halfCheckedKeys: store.getHalfCheckedKeys()
1648
- });
1649
- });
1650
- },
1651
- handleChildNodeExpand: function handleChildNodeExpand(nodeData, node, instance) {
1652
- this.broadcast('ElTreeNode', 'tree-node-expand', node);
1653
- this.tree.$emit('node-expand', nodeData, node, instance);
1654
- },
1655
- handleDragStart: function handleDragStart(event) {
1656
- if (!this.tree.draggable) return;
1657
- this.tree.$emit('tree-node-drag-start', event, this);
1658
- },
1659
- handleDragOver: function handleDragOver(event) {
1660
- if (!this.tree.draggable) return;
1661
- this.tree.$emit('tree-node-drag-over', event, this);
1662
- event.preventDefault();
1663
- },
1664
- handleDrop: function handleDrop(event) {
1665
- event.preventDefault();
1666
- },
1667
- handleDragEnd: function handleDragEnd(event) {
1668
- if (!this.tree.draggable) return;
1669
- this.tree.$emit('tree-node-drag-end', event, this);
1670
- }
1671
- },
1672
-
1673
- created: function created() {
1674
- var _this3 = this;
1675
-
1676
- var parent = this.$parent;
1677
-
1678
- if (parent.isTree) {
1679
- this.tree = parent;
1680
- } else {
1681
- this.tree = parent.tree;
1682
- }
1683
-
1684
- var tree = this.tree;
1685
- if (!tree) {
1686
- console.warn('Can not find node\'s tree.');
1687
- }
1688
-
1689
- var props = tree.props || {};
1690
- var childrenKey = props['children'] || 'children';
1691
-
1692
- this.$watch('node.data.' + childrenKey, function () {
1693
- _this3.node.updateChildren();
1694
- });
1695
-
1696
- if (this.node.expanded) {
1697
- this.expanded = true;
1698
- this.childNodeRendered = true;
1699
- }
1700
-
1701
- if (this.tree.accordion) {
1702
- this.$on('tree-node-expand', function (node) {
1703
- if (_this3.node !== node) {
1704
- _this3.node.collapse();
1705
- }
1706
- });
1707
- }
1708
- }
1515
+ name: 'ElTreeNode',
1516
+
1517
+ componentName: 'ElTreeNode',
1518
+
1519
+ mixins: [emitter_default.a],
1520
+
1521
+ props: {
1522
+ node: {
1523
+ default: function _default() {
1524
+ return {};
1525
+ }
1526
+ },
1527
+ props: {},
1528
+ renderContent: Function,
1529
+ renderAfterExpand: {
1530
+ type: Boolean,
1531
+ default: true
1532
+ },
1533
+ showCheckbox: {
1534
+ type: Boolean,
1535
+ default: false
1536
+ }
1537
+ },
1538
+
1539
+ components: {
1540
+ ElCollapseTransition: collapse_transition_default.a,
1541
+ ElCheckbox: checkbox_default.a,
1542
+ NodeContent: {
1543
+ props: {
1544
+ node: {
1545
+ required: true
1546
+ }
1547
+ },
1548
+ render: function render(h) {
1549
+ var parent = this.$parent;
1550
+ var tree = parent.tree;
1551
+ var node = this.node;
1552
+ var data = node.data,
1553
+ store = node.store;
1554
+
1555
+ return parent.renderContent ? parent.renderContent.call(parent._renderProxy, h, { _self: tree.$vnode.context, node: node, data: data, store: store }) : tree.$scopedSlots.default ? tree.$scopedSlots.default({ node: node, data: data }) : h(
1556
+ 'span',
1557
+ { 'class': 'el-tree-node__label' },
1558
+ [node.label]
1559
+ );
1560
+ }
1561
+ }
1562
+ },
1563
+
1564
+ data: function data() {
1565
+ return {
1566
+ tree: null,
1567
+ expanded: false,
1568
+ childNodeRendered: false,
1569
+ oldChecked: null,
1570
+ oldIndeterminate: null
1571
+ };
1572
+ },
1573
+
1574
+
1575
+ watch: {
1576
+ 'node.indeterminate': function nodeIndeterminate(val) {
1577
+ this.handleSelectChange(this.node.checked, val);
1578
+ },
1579
+ 'node.checked': function nodeChecked(val) {
1580
+ this.handleSelectChange(val, this.node.indeterminate);
1581
+ },
1582
+ 'node.expanded': function nodeExpanded(val) {
1583
+ var _this = this;
1584
+
1585
+ this.$nextTick(function () {
1586
+ return _this.expanded = val;
1587
+ });
1588
+ if (val) {
1589
+ this.childNodeRendered = true;
1590
+ }
1591
+ }
1592
+ },
1593
+
1594
+ methods: {
1595
+ getNodeKey: function getNodeKey(node) {
1596
+ return util_getNodeKey(this.tree.nodeKey, node.data);
1597
+ },
1598
+ handleSelectChange: function handleSelectChange(checked, indeterminate) {
1599
+ if (this.oldChecked !== checked && this.oldIndeterminate !== indeterminate) {
1600
+ this.tree.$emit('check-change', this.node.data, checked, indeterminate);
1601
+ }
1602
+ this.oldChecked = checked;
1603
+ this.indeterminate = indeterminate;
1604
+ },
1605
+ handleClick: function handleClick() {
1606
+ var store = this.tree.store;
1607
+ store.setCurrentNode(this.node);
1608
+ this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode);
1609
+ this.tree.currentNode = this;
1610
+ if (this.tree.expandOnClickNode) {
1611
+ this.handleExpandIconClick();
1612
+ }
1613
+ if (this.tree.checkOnClickNode && !this.node.disabled) {
1614
+ this.handleCheckChange(null, {
1615
+ target: { checked: !this.node.checked }
1616
+ });
1617
+ }
1618
+ this.tree.$emit('node-click', this.node.data, this.node, this);
1619
+ },
1620
+ handleContextMenu: function handleContextMenu(event) {
1621
+ if (this.tree._events['node-contextmenu'] && this.tree._events['node-contextmenu'].length > 0) {
1622
+ event.stopPropagation();
1623
+ event.preventDefault();
1624
+ }
1625
+ this.tree.$emit('node-contextmenu', event, this.node.data, this.node, this);
1626
+ },
1627
+ handleExpandIconClick: function handleExpandIconClick() {
1628
+ if (this.node.isLeaf) return;
1629
+ if (this.expanded) {
1630
+ this.tree.$emit('node-collapse', this.node.data, this.node, this);
1631
+ this.node.collapse();
1632
+ } else {
1633
+ this.node.expand();
1634
+ this.$emit('node-expand', this.node.data, this.node, this);
1635
+ }
1636
+ },
1637
+ handleCheckChange: function handleCheckChange(value, ev) {
1638
+ var _this2 = this;
1639
+
1640
+ this.node.setChecked(ev.target.checked, !this.tree.checkStrictly);
1641
+ this.$nextTick(function () {
1642
+ var store = _this2.tree.store;
1643
+ _this2.tree.$emit('check', _this2.node.data, {
1644
+ checkedNodes: store.getCheckedNodes(),
1645
+ checkedKeys: store.getCheckedKeys(),
1646
+ halfCheckedNodes: store.getHalfCheckedNodes(),
1647
+ halfCheckedKeys: store.getHalfCheckedKeys()
1648
+ });
1649
+ });
1650
+ },
1651
+ handleChildNodeExpand: function handleChildNodeExpand(nodeData, node, instance) {
1652
+ this.broadcast('ElTreeNode', 'tree-node-expand', node);
1653
+ this.tree.$emit('node-expand', nodeData, node, instance);
1654
+ },
1655
+ handleDragStart: function handleDragStart(event) {
1656
+ if (!this.tree.draggable) return;
1657
+ this.tree.$emit('tree-node-drag-start', event, this);
1658
+ },
1659
+ handleDragOver: function handleDragOver(event) {
1660
+ if (!this.tree.draggable) return;
1661
+ this.tree.$emit('tree-node-drag-over', event, this);
1662
+ event.preventDefault();
1663
+ },
1664
+ handleDrop: function handleDrop(event) {
1665
+ event.preventDefault();
1666
+ },
1667
+ handleDragEnd: function handleDragEnd(event) {
1668
+ if (!this.tree.draggable) return;
1669
+ this.tree.$emit('tree-node-drag-end', event, this);
1670
+ }
1671
+ },
1672
+
1673
+ created: function created() {
1674
+ var _this3 = this;
1675
+
1676
+ var parent = this.$parent;
1677
+
1678
+ if (parent.isTree) {
1679
+ this.tree = parent;
1680
+ } else {
1681
+ this.tree = parent.tree;
1682
+ }
1683
+
1684
+ var tree = this.tree;
1685
+ if (!tree) {
1686
+ console.warn('Can not find node\'s tree.');
1687
+ }
1688
+
1689
+ var props = tree.props || {};
1690
+ var childrenKey = props['children'] || 'children';
1691
+
1692
+ this.$watch('node.data.' + childrenKey, function () {
1693
+ _this3.node.updateChildren();
1694
+ });
1695
+
1696
+ if (this.node.expanded) {
1697
+ this.expanded = true;
1698
+ this.childNodeRendered = true;
1699
+ }
1700
+
1701
+ if (this.tree.accordion) {
1702
+ this.$on('tree-node-expand', function (node) {
1703
+ if (_this3.node !== node) {
1704
+ _this3.node.collapse();
1705
+ }
1706
+ });
1707
+ }
1708
+ }
1709
1709
  });
1710
1710
  // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=script&lang=js
1711
1711
  /* harmony default export */ var src_tree_nodevue_type_script_lang_js = (tree_nodevue_type_script_lang_js);
@@ -1722,8 +1722,8 @@ var componentNormalizer = __webpack_require__(0);
1722
1722
 
1723
1723
  var component = Object(componentNormalizer["a" /* default */])(
1724
1724
  src_tree_nodevue_type_script_lang_js,
1725
- tree_nodevue_type_template_id_3869abb7_render,
1726
- tree_nodevue_type_template_id_3869abb7_staticRenderFns,
1725
+ tree_nodevue_type_template_id_769053c6_render,
1726
+ tree_nodevue_type_template_id_769053c6_staticRenderFns,
1727
1727
  false,
1728
1728
  null,
1729
1729
  null,
@@ -1780,444 +1780,444 @@ var dom_ = __webpack_require__(2);
1780
1780
 
1781
1781
 
1782
1782
  /* harmony default export */ var treevue_type_script_lang_js = ({
1783
- name: 'ElTree',
1784
-
1785
- mixins: [emitter_default.a],
1786
-
1787
- components: {
1788
- ElTreeNode: tree_node
1789
- },
1790
-
1791
- data: function data() {
1792
- return {
1793
- store: null,
1794
- root: null,
1795
- currentNode: null,
1796
- treeItems: null,
1797
- checkboxItems: [],
1798
- dragState: {
1799
- showDropIndicator: false,
1800
- draggingNode: null,
1801
- dropNode: null,
1802
- allowDrop: true
1803
- }
1804
- };
1805
- },
1806
-
1807
-
1808
- props: {
1809
- data: {
1810
- type: Array
1811
- },
1812
- emptyText: {
1813
- type: String,
1814
- default: function _default() {
1815
- return Object(locale_["t"])('el.tree.emptyText');
1816
- }
1817
- },
1818
- renderAfterExpand: {
1819
- type: Boolean,
1820
- default: true
1821
- },
1822
- nodeKey: String,
1823
- checkStrictly: Boolean,
1824
- defaultExpandAll: Boolean,
1825
- expandOnClickNode: {
1826
- type: Boolean,
1827
- default: true
1828
- },
1829
- checkOnClickNode: Boolean,
1830
- checkDescendants: {
1831
- type: Boolean,
1832
- default: false
1833
- },
1834
- autoExpandParent: {
1835
- type: Boolean,
1836
- default: true
1837
- },
1838
- defaultCheckedKeys: Array,
1839
- defaultExpandedKeys: Array,
1840
- currentNodeKey: [String, Number],
1841
- renderContent: Function,
1842
- showCheckbox: {
1843
- type: Boolean,
1844
- default: false
1845
- },
1846
- draggable: {
1847
- type: Boolean,
1848
- default: false
1849
- },
1850
- allowDrag: Function,
1851
- allowDrop: Function,
1852
- props: {
1853
- default: function _default() {
1854
- return {
1855
- children: 'children',
1856
- label: 'label',
1857
- disabled: 'disabled'
1858
- };
1859
- }
1860
- },
1861
- lazy: {
1862
- type: Boolean,
1863
- default: false
1864
- },
1865
- highlightCurrent: Boolean,
1866
- load: Function,
1867
- filterNodeMethod: Function,
1868
- accordion: Boolean,
1869
- indent: {
1870
- type: Number,
1871
- default: 18
1872
- },
1873
- iconClass: String
1874
- },
1875
-
1876
- computed: {
1877
- children: {
1878
- set: function set(value) {
1879
- this.data = value;
1880
- },
1881
- get: function get() {
1882
- return this.data;
1883
- }
1884
- },
1885
-
1886
- treeItemArray: function treeItemArray() {
1887
- return Array.prototype.slice.call(this.treeItems);
1888
- },
1889
- isEmpty: function isEmpty() {
1890
- var childNodes = this.root.childNodes;
1891
-
1892
- return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref) {
1893
- var visible = _ref.visible;
1894
- return !visible;
1895
- });
1896
- }
1897
- },
1898
-
1899
- watch: {
1900
- defaultCheckedKeys: function defaultCheckedKeys(newVal) {
1901
- this.store.setDefaultCheckedKey(newVal);
1902
- },
1903
- defaultExpandedKeys: function defaultExpandedKeys(newVal) {
1904
- this.store.defaultExpandedKeys = newVal;
1905
- this.store.setDefaultExpandedKeys(newVal);
1906
- },
1907
- data: function data(newVal) {
1908
- this.store.setData(newVal);
1909
- },
1910
- checkboxItems: function checkboxItems(val) {
1911
- Array.prototype.forEach.call(val, function (checkbox) {
1912
- checkbox.setAttribute('tabindex', -1);
1913
- });
1914
- },
1915
- checkStrictly: function checkStrictly(newVal) {
1916
- this.store.checkStrictly = newVal;
1917
- }
1918
- },
1919
-
1920
- methods: {
1921
- filter: function filter(value) {
1922
- if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter');
1923
- this.store.filter(value);
1924
- },
1925
- getNodeKey: function getNodeKey(node) {
1926
- return util_getNodeKey(this.nodeKey, node.data);
1927
- },
1928
- getNodePath: function getNodePath(data) {
1929
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getNodePath');
1930
- var node = this.store.getNode(data);
1931
- if (!node) return [];
1932
- var path = [node.data];
1933
- var parent = node.parent;
1934
- while (parent && parent !== this.root) {
1935
- path.push(parent.data);
1936
- parent = parent.parent;
1937
- }
1938
- return path.reverse();
1939
- },
1940
- getCheckedNodes: function getCheckedNodes(leafOnly, includeHalfChecked) {
1941
- return this.store.getCheckedNodes(leafOnly, includeHalfChecked);
1942
- },
1943
- getCheckedKeys: function getCheckedKeys(leafOnly) {
1944
- return this.store.getCheckedKeys(leafOnly);
1945
- },
1946
- getCurrentNode: function getCurrentNode() {
1947
- var currentNode = this.store.getCurrentNode();
1948
- return currentNode ? currentNode.data : null;
1949
- },
1950
- getCurrentKey: function getCurrentKey() {
1951
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getCurrentKey');
1952
- var currentNode = this.getCurrentNode();
1953
- return currentNode ? currentNode[this.nodeKey] : null;
1954
- },
1955
- setCheckedNodes: function setCheckedNodes(nodes, leafOnly) {
1956
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedNodes');
1957
- this.store.setCheckedNodes(nodes, leafOnly);
1958
- },
1959
- setCheckedKeys: function setCheckedKeys(keys, leafOnly) {
1960
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys');
1961
- this.store.setCheckedKeys(keys, leafOnly);
1962
- },
1963
- setChecked: function setChecked(data, checked, deep) {
1964
- this.store.setChecked(data, checked, deep);
1965
- },
1966
- getHalfCheckedNodes: function getHalfCheckedNodes() {
1967
- return this.store.getHalfCheckedNodes();
1968
- },
1969
- getHalfCheckedKeys: function getHalfCheckedKeys() {
1970
- return this.store.getHalfCheckedKeys();
1971
- },
1972
- setCurrentNode: function setCurrentNode(node) {
1973
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode');
1974
- this.store.setUserCurrentNode(node);
1975
- },
1976
- setCurrentKey: function setCurrentKey(key) {
1977
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey');
1978
- this.store.setCurrentNodeKey(key);
1979
- },
1980
- getNode: function getNode(data) {
1981
- return this.store.getNode(data);
1982
- },
1983
- remove: function remove(data) {
1984
- this.store.remove(data);
1985
- },
1986
- append: function append(data, parentNode) {
1987
- this.store.append(data, parentNode);
1988
- },
1989
- insertBefore: function insertBefore(data, refNode) {
1990
- this.store.insertBefore(data, refNode);
1991
- },
1992
- insertAfter: function insertAfter(data, refNode) {
1993
- this.store.insertAfter(data, refNode);
1994
- },
1995
- handleNodeExpand: function handleNodeExpand(nodeData, node, instance) {
1996
- this.broadcast('ElTreeNode', 'tree-node-expand', node);
1997
- this.$emit('node-expand', nodeData, node, instance);
1998
- },
1999
- updateKeyChildren: function updateKeyChildren(key, data) {
2000
- if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild');
2001
- this.store.updateChildren(key, data);
2002
- },
2003
- initTabIndex: function initTabIndex() {
2004
- this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
2005
- this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
2006
- var checkedItem = this.$el.querySelectorAll('.is-checked[role=treeitem]');
2007
- if (checkedItem.length) {
2008
- checkedItem[0].setAttribute('tabindex', 0);
2009
- return;
2010
- }
2011
- this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0);
2012
- },
2013
- handleKeydown: function handleKeydown(ev) {
2014
- var currentItem = ev.target;
2015
- if (currentItem.className.indexOf('el-tree-node') === -1) return;
2016
- var keyCode = ev.keyCode;
2017
- this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
2018
- var currentIndex = this.treeItemArray.indexOf(currentItem);
2019
- var nextIndex = void 0;
2020
- if ([38, 40].indexOf(keyCode) > -1) {
2021
- // up、down
2022
- ev.preventDefault();
2023
- if (keyCode === 38) {
2024
- // up
2025
- nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
2026
- } else {
2027
- nextIndex = currentIndex < this.treeItemArray.length - 1 ? currentIndex + 1 : 0;
2028
- }
2029
- this.treeItemArray[nextIndex].focus(); // 选中
2030
- }
2031
- if ([37, 39].indexOf(keyCode) > -1) {
2032
- // left、right 展开
2033
- ev.preventDefault();
2034
- currentItem.click(); // 选中
2035
- }
2036
- var hasInput = currentItem.querySelector('[type="checkbox"]');
2037
- if ([13, 32].indexOf(keyCode) > -1 && hasInput) {
2038
- // space enter选中checkbox
2039
- ev.preventDefault();
2040
- hasInput.click();
2041
- }
2042
- }
2043
- },
2044
-
2045
- created: function created() {
2046
- var _this = this;
2047
-
2048
- this.isTree = true;
2049
-
2050
- this.store = new tree_store({
2051
- key: this.nodeKey,
2052
- data: this.data,
2053
- lazy: this.lazy,
2054
- props: this.props,
2055
- load: this.load,
2056
- currentNodeKey: this.currentNodeKey,
2057
- checkStrictly: this.checkStrictly,
2058
- checkDescendants: this.checkDescendants,
2059
- defaultCheckedKeys: this.defaultCheckedKeys,
2060
- defaultExpandedKeys: this.defaultExpandedKeys,
2061
- autoExpandParent: this.autoExpandParent,
2062
- defaultExpandAll: this.defaultExpandAll,
2063
- filterNodeMethod: this.filterNodeMethod
2064
- });
2065
-
2066
- this.root = this.store.root;
2067
-
2068
- var dragState = this.dragState;
2069
- this.$on('tree-node-drag-start', function (event, treeNode) {
2070
- if (typeof _this.allowDrag === 'function' && !_this.allowDrag(treeNode.node)) {
2071
- event.preventDefault();
2072
- return false;
2073
- }
2074
- event.dataTransfer.effectAllowed = 'move';
2075
-
2076
- // wrap in try catch to address IE's error when first param is 'text/plain'
2077
- try {
2078
- // setData is required for draggable to work in FireFox
2079
- // the content has to be '' so dragging a node out of the tree won't open a new tab in FireFox
2080
- event.dataTransfer.setData('text/plain', '');
2081
- } catch (e) {}
2082
- dragState.draggingNode = treeNode;
2083
- _this.$emit('node-drag-start', treeNode.node, event);
2084
- });
2085
-
2086
- this.$on('tree-node-drag-over', function (event, treeNode) {
2087
- var dropNode = findNearestComponent(event.target, 'ElTreeNode');
2088
- var oldDropNode = dragState.dropNode;
2089
- if (oldDropNode && oldDropNode !== dropNode) {
2090
- Object(dom_["removeClass"])(oldDropNode.$el, 'is-drop-inner');
2091
- }
2092
- var draggingNode = dragState.draggingNode;
2093
- if (!draggingNode || !dropNode) return;
2094
-
2095
- var dropPrev = true;
2096
- var dropInner = true;
2097
- var dropNext = true;
2098
- var userAllowDropInner = true;
2099
- if (typeof _this.allowDrop === 'function') {
2100
- dropPrev = _this.allowDrop(draggingNode.node, dropNode.node, 'prev');
2101
- userAllowDropInner = dropInner = _this.allowDrop(draggingNode.node, dropNode.node, 'inner');
2102
- dropNext = _this.allowDrop(draggingNode.node, dropNode.node, 'next');
2103
- }
2104
- event.dataTransfer.dropEffect = dropInner ? 'move' : 'none';
2105
- if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {
2106
- if (oldDropNode) {
2107
- _this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event);
2108
- }
2109
- _this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event);
2110
- }
2111
-
2112
- if (dropPrev || dropInner || dropNext) {
2113
- dragState.dropNode = dropNode;
2114
- }
2115
-
2116
- if (dropNode.node.nextSibling === draggingNode.node) {
2117
- dropNext = false;
2118
- }
2119
- if (dropNode.node.previousSibling === draggingNode.node) {
2120
- dropPrev = false;
2121
- }
2122
- if (dropNode.node.contains(draggingNode.node, false)) {
2123
- dropInner = false;
2124
- }
2125
- if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) {
2126
- dropPrev = false;
2127
- dropInner = false;
2128
- dropNext = false;
2129
- }
2130
-
2131
- var targetPosition = dropNode.$el.getBoundingClientRect();
2132
- var treePosition = _this.$el.getBoundingClientRect();
2133
-
2134
- var dropType = void 0;
2135
- var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;
2136
- var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;
2137
-
2138
- var indicatorTop = -9999;
2139
- var distance = event.clientY - targetPosition.top;
2140
- if (distance < targetPosition.height * prevPercent) {
2141
- dropType = 'before';
2142
- } else if (distance > targetPosition.height * nextPercent) {
2143
- dropType = 'after';
2144
- } else if (dropInner) {
2145
- dropType = 'inner';
2146
- } else {
2147
- dropType = 'none';
2148
- }
2149
-
2150
- var iconPosition = dropNode.$el.querySelector('.el-tree-node__expand-icon').getBoundingClientRect();
2151
- var dropIndicator = _this.$refs.dropIndicator;
2152
- if (dropType === 'before') {
2153
- indicatorTop = iconPosition.top - treePosition.top;
2154
- } else if (dropType === 'after') {
2155
- indicatorTop = iconPosition.bottom - treePosition.top;
2156
- }
2157
- dropIndicator.style.top = indicatorTop + 'px';
2158
- dropIndicator.style.left = iconPosition.right - treePosition.left + 'px';
2159
-
2160
- if (dropType === 'inner') {
2161
- Object(dom_["addClass"])(dropNode.$el, 'is-drop-inner');
2162
- } else {
2163
- Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner');
2164
- }
2165
-
2166
- dragState.showDropIndicator = dropType === 'before' || dropType === 'after';
2167
- dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;
2168
- dragState.dropType = dropType;
2169
- _this.$emit('node-drag-over', draggingNode.node, dropNode.node, event);
2170
- });
2171
-
2172
- this.$on('tree-node-drag-end', function (event) {
2173
- var draggingNode = dragState.draggingNode,
2174
- dropType = dragState.dropType,
2175
- dropNode = dragState.dropNode;
2176
-
2177
- event.preventDefault();
2178
- event.dataTransfer.dropEffect = 'move';
2179
-
2180
- if (draggingNode && dropNode) {
2181
- var draggingNodeCopy = { data: draggingNode.node.data };
2182
- if (dropType !== 'none') {
2183
- draggingNode.node.remove();
2184
- }
2185
- if (dropType === 'before') {
2186
- dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
2187
- } else if (dropType === 'after') {
2188
- dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
2189
- } else if (dropType === 'inner') {
2190
- dropNode.node.insertChild(draggingNodeCopy);
2191
- }
2192
- if (dropType !== 'none') {
2193
- _this.store.registerNode(draggingNodeCopy);
2194
- }
2195
-
2196
- Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner');
2197
-
2198
- _this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);
2199
- if (dropType !== 'none') {
2200
- _this.$emit('node-drop', draggingNode.node, dropNode.node, dropType, event);
2201
- }
2202
- }
2203
- if (draggingNode && !dropNode) {
2204
- _this.$emit('node-drag-end', draggingNode.node, null, dropType, event);
2205
- }
2206
-
2207
- dragState.showDropIndicator = false;
2208
- dragState.draggingNode = null;
2209
- dragState.dropNode = null;
2210
- dragState.allowDrop = true;
2211
- });
2212
- },
2213
- mounted: function mounted() {
2214
- this.initTabIndex();
2215
- this.$el.addEventListener('keydown', this.handleKeydown);
2216
- },
2217
- updated: function updated() {
2218
- this.treeItems = this.$el.querySelectorAll('[role=treeitem]');
2219
- this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
2220
- }
1783
+ name: 'ElTree',
1784
+
1785
+ mixins: [emitter_default.a],
1786
+
1787
+ components: {
1788
+ ElTreeNode: tree_node
1789
+ },
1790
+
1791
+ data: function data() {
1792
+ return {
1793
+ store: null,
1794
+ root: null,
1795
+ currentNode: null,
1796
+ treeItems: null,
1797
+ checkboxItems: [],
1798
+ dragState: {
1799
+ showDropIndicator: false,
1800
+ draggingNode: null,
1801
+ dropNode: null,
1802
+ allowDrop: true
1803
+ }
1804
+ };
1805
+ },
1806
+
1807
+
1808
+ props: {
1809
+ data: {
1810
+ type: Array
1811
+ },
1812
+ emptyText: {
1813
+ type: String,
1814
+ default: function _default() {
1815
+ return Object(locale_["t"])('el.tree.emptyText');
1816
+ }
1817
+ },
1818
+ renderAfterExpand: {
1819
+ type: Boolean,
1820
+ default: true
1821
+ },
1822
+ nodeKey: String,
1823
+ checkStrictly: Boolean,
1824
+ defaultExpandAll: Boolean,
1825
+ expandOnClickNode: {
1826
+ type: Boolean,
1827
+ default: true
1828
+ },
1829
+ checkOnClickNode: Boolean,
1830
+ checkDescendants: {
1831
+ type: Boolean,
1832
+ default: false
1833
+ },
1834
+ autoExpandParent: {
1835
+ type: Boolean,
1836
+ default: true
1837
+ },
1838
+ defaultCheckedKeys: Array,
1839
+ defaultExpandedKeys: Array,
1840
+ currentNodeKey: [String, Number],
1841
+ renderContent: Function,
1842
+ showCheckbox: {
1843
+ type: Boolean,
1844
+ default: false
1845
+ },
1846
+ draggable: {
1847
+ type: Boolean,
1848
+ default: false
1849
+ },
1850
+ allowDrag: Function,
1851
+ allowDrop: Function,
1852
+ props: {
1853
+ default: function _default() {
1854
+ return {
1855
+ children: 'children',
1856
+ label: 'label',
1857
+ disabled: 'disabled'
1858
+ };
1859
+ }
1860
+ },
1861
+ lazy: {
1862
+ type: Boolean,
1863
+ default: false
1864
+ },
1865
+ highlightCurrent: Boolean,
1866
+ load: Function,
1867
+ filterNodeMethod: Function,
1868
+ accordion: Boolean,
1869
+ indent: {
1870
+ type: Number,
1871
+ default: 18
1872
+ },
1873
+ iconClass: String
1874
+ },
1875
+
1876
+ computed: {
1877
+ children: {
1878
+ set: function set(value) {
1879
+ this.data = value;
1880
+ },
1881
+ get: function get() {
1882
+ return this.data;
1883
+ }
1884
+ },
1885
+
1886
+ treeItemArray: function treeItemArray() {
1887
+ return Array.prototype.slice.call(this.treeItems);
1888
+ },
1889
+ isEmpty: function isEmpty() {
1890
+ var childNodes = this.root.childNodes;
1891
+
1892
+ return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref) {
1893
+ var visible = _ref.visible;
1894
+ return !visible;
1895
+ });
1896
+ }
1897
+ },
1898
+
1899
+ watch: {
1900
+ defaultCheckedKeys: function defaultCheckedKeys(newVal) {
1901
+ this.store.setDefaultCheckedKey(newVal);
1902
+ },
1903
+ defaultExpandedKeys: function defaultExpandedKeys(newVal) {
1904
+ this.store.defaultExpandedKeys = newVal;
1905
+ this.store.setDefaultExpandedKeys(newVal);
1906
+ },
1907
+ data: function data(newVal) {
1908
+ this.store.setData(newVal);
1909
+ },
1910
+ checkboxItems: function checkboxItems(val) {
1911
+ Array.prototype.forEach.call(val, function (checkbox) {
1912
+ checkbox.setAttribute('tabindex', -1);
1913
+ });
1914
+ },
1915
+ checkStrictly: function checkStrictly(newVal) {
1916
+ this.store.checkStrictly = newVal;
1917
+ }
1918
+ },
1919
+
1920
+ methods: {
1921
+ filter: function filter(value) {
1922
+ if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter');
1923
+ this.store.filter(value);
1924
+ },
1925
+ getNodeKey: function getNodeKey(node) {
1926
+ return util_getNodeKey(this.nodeKey, node.data);
1927
+ },
1928
+ getNodePath: function getNodePath(data) {
1929
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getNodePath');
1930
+ var node = this.store.getNode(data);
1931
+ if (!node) return [];
1932
+ var path = [node.data];
1933
+ var parent = node.parent;
1934
+ while (parent && parent !== this.root) {
1935
+ path.push(parent.data);
1936
+ parent = parent.parent;
1937
+ }
1938
+ return path.reverse();
1939
+ },
1940
+ getCheckedNodes: function getCheckedNodes(leafOnly, includeHalfChecked) {
1941
+ return this.store.getCheckedNodes(leafOnly, includeHalfChecked);
1942
+ },
1943
+ getCheckedKeys: function getCheckedKeys(leafOnly) {
1944
+ return this.store.getCheckedKeys(leafOnly);
1945
+ },
1946
+ getCurrentNode: function getCurrentNode() {
1947
+ var currentNode = this.store.getCurrentNode();
1948
+ return currentNode ? currentNode.data : null;
1949
+ },
1950
+ getCurrentKey: function getCurrentKey() {
1951
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getCurrentKey');
1952
+ var currentNode = this.getCurrentNode();
1953
+ return currentNode ? currentNode[this.nodeKey] : null;
1954
+ },
1955
+ setCheckedNodes: function setCheckedNodes(nodes, leafOnly) {
1956
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedNodes');
1957
+ this.store.setCheckedNodes(nodes, leafOnly);
1958
+ },
1959
+ setCheckedKeys: function setCheckedKeys(keys, leafOnly) {
1960
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys');
1961
+ this.store.setCheckedKeys(keys, leafOnly);
1962
+ },
1963
+ setChecked: function setChecked(data, checked, deep) {
1964
+ this.store.setChecked(data, checked, deep);
1965
+ },
1966
+ getHalfCheckedNodes: function getHalfCheckedNodes() {
1967
+ return this.store.getHalfCheckedNodes();
1968
+ },
1969
+ getHalfCheckedKeys: function getHalfCheckedKeys() {
1970
+ return this.store.getHalfCheckedKeys();
1971
+ },
1972
+ setCurrentNode: function setCurrentNode(node) {
1973
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode');
1974
+ this.store.setUserCurrentNode(node);
1975
+ },
1976
+ setCurrentKey: function setCurrentKey(key) {
1977
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey');
1978
+ this.store.setCurrentNodeKey(key);
1979
+ },
1980
+ getNode: function getNode(data) {
1981
+ return this.store.getNode(data);
1982
+ },
1983
+ remove: function remove(data) {
1984
+ this.store.remove(data);
1985
+ },
1986
+ append: function append(data, parentNode) {
1987
+ this.store.append(data, parentNode);
1988
+ },
1989
+ insertBefore: function insertBefore(data, refNode) {
1990
+ this.store.insertBefore(data, refNode);
1991
+ },
1992
+ insertAfter: function insertAfter(data, refNode) {
1993
+ this.store.insertAfter(data, refNode);
1994
+ },
1995
+ handleNodeExpand: function handleNodeExpand(nodeData, node, instance) {
1996
+ this.broadcast('ElTreeNode', 'tree-node-expand', node);
1997
+ this.$emit('node-expand', nodeData, node, instance);
1998
+ },
1999
+ updateKeyChildren: function updateKeyChildren(key, data) {
2000
+ if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild');
2001
+ this.store.updateChildren(key, data);
2002
+ },
2003
+ initTabIndex: function initTabIndex() {
2004
+ this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
2005
+ this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
2006
+ var checkedItem = this.$el.querySelectorAll('.is-checked[role=treeitem]');
2007
+ if (checkedItem.length) {
2008
+ checkedItem[0].setAttribute('tabindex', 0);
2009
+ return;
2010
+ }
2011
+ this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0);
2012
+ },
2013
+ handleKeydown: function handleKeydown(ev) {
2014
+ var currentItem = ev.target;
2015
+ if (currentItem.className.indexOf('el-tree-node') === -1) return;
2016
+ var keyCode = ev.keyCode;
2017
+ this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
2018
+ var currentIndex = this.treeItemArray.indexOf(currentItem);
2019
+ var nextIndex = void 0;
2020
+ if ([38, 40].indexOf(keyCode) > -1) {
2021
+ // up、down
2022
+ ev.preventDefault();
2023
+ if (keyCode === 38) {
2024
+ // up
2025
+ nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
2026
+ } else {
2027
+ nextIndex = currentIndex < this.treeItemArray.length - 1 ? currentIndex + 1 : 0;
2028
+ }
2029
+ this.treeItemArray[nextIndex].focus(); // 选中
2030
+ }
2031
+ if ([37, 39].indexOf(keyCode) > -1) {
2032
+ // left、right 展开
2033
+ ev.preventDefault();
2034
+ currentItem.click(); // 选中
2035
+ }
2036
+ var hasInput = currentItem.querySelector('[type="checkbox"]');
2037
+ if ([13, 32].indexOf(keyCode) > -1 && hasInput) {
2038
+ // space enter选中checkbox
2039
+ ev.preventDefault();
2040
+ hasInput.click();
2041
+ }
2042
+ }
2043
+ },
2044
+
2045
+ created: function created() {
2046
+ var _this = this;
2047
+
2048
+ this.isTree = true;
2049
+
2050
+ this.store = new tree_store({
2051
+ key: this.nodeKey,
2052
+ data: this.data,
2053
+ lazy: this.lazy,
2054
+ props: this.props,
2055
+ load: this.load,
2056
+ currentNodeKey: this.currentNodeKey,
2057
+ checkStrictly: this.checkStrictly,
2058
+ checkDescendants: this.checkDescendants,
2059
+ defaultCheckedKeys: this.defaultCheckedKeys,
2060
+ defaultExpandedKeys: this.defaultExpandedKeys,
2061
+ autoExpandParent: this.autoExpandParent,
2062
+ defaultExpandAll: this.defaultExpandAll,
2063
+ filterNodeMethod: this.filterNodeMethod
2064
+ });
2065
+
2066
+ this.root = this.store.root;
2067
+
2068
+ var dragState = this.dragState;
2069
+ this.$on('tree-node-drag-start', function (event, treeNode) {
2070
+ if (typeof _this.allowDrag === 'function' && !_this.allowDrag(treeNode.node)) {
2071
+ event.preventDefault();
2072
+ return false;
2073
+ }
2074
+ event.dataTransfer.effectAllowed = 'move';
2075
+
2076
+ // wrap in try catch to address IE's error when first param is 'text/plain'
2077
+ try {
2078
+ // setData is required for draggable to work in FireFox
2079
+ // the content has to be '' so dragging a node out of the tree won't open a new tab in FireFox
2080
+ event.dataTransfer.setData('text/plain', '');
2081
+ } catch (e) {}
2082
+ dragState.draggingNode = treeNode;
2083
+ _this.$emit('node-drag-start', treeNode.node, event);
2084
+ });
2085
+
2086
+ this.$on('tree-node-drag-over', function (event, treeNode) {
2087
+ var dropNode = findNearestComponent(event.target, 'ElTreeNode');
2088
+ var oldDropNode = dragState.dropNode;
2089
+ if (oldDropNode && oldDropNode !== dropNode) {
2090
+ Object(dom_["removeClass"])(oldDropNode.$el, 'is-drop-inner');
2091
+ }
2092
+ var draggingNode = dragState.draggingNode;
2093
+ if (!draggingNode || !dropNode) return;
2094
+
2095
+ var dropPrev = true;
2096
+ var dropInner = true;
2097
+ var dropNext = true;
2098
+ var userAllowDropInner = true;
2099
+ if (typeof _this.allowDrop === 'function') {
2100
+ dropPrev = _this.allowDrop(draggingNode.node, dropNode.node, 'prev');
2101
+ userAllowDropInner = dropInner = _this.allowDrop(draggingNode.node, dropNode.node, 'inner');
2102
+ dropNext = _this.allowDrop(draggingNode.node, dropNode.node, 'next');
2103
+ }
2104
+ event.dataTransfer.dropEffect = dropInner ? 'move' : 'none';
2105
+ if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {
2106
+ if (oldDropNode) {
2107
+ _this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event);
2108
+ }
2109
+ _this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event);
2110
+ }
2111
+
2112
+ if (dropPrev || dropInner || dropNext) {
2113
+ dragState.dropNode = dropNode;
2114
+ }
2115
+
2116
+ if (dropNode.node.nextSibling === draggingNode.node) {
2117
+ dropNext = false;
2118
+ }
2119
+ if (dropNode.node.previousSibling === draggingNode.node) {
2120
+ dropPrev = false;
2121
+ }
2122
+ if (dropNode.node.contains(draggingNode.node, false)) {
2123
+ dropInner = false;
2124
+ }
2125
+ if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) {
2126
+ dropPrev = false;
2127
+ dropInner = false;
2128
+ dropNext = false;
2129
+ }
2130
+
2131
+ var targetPosition = dropNode.$el.getBoundingClientRect();
2132
+ var treePosition = _this.$el.getBoundingClientRect();
2133
+
2134
+ var dropType = void 0;
2135
+ var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;
2136
+ var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;
2137
+
2138
+ var indicatorTop = -9999;
2139
+ var distance = event.clientY - targetPosition.top;
2140
+ if (distance < targetPosition.height * prevPercent) {
2141
+ dropType = 'before';
2142
+ } else if (distance > targetPosition.height * nextPercent) {
2143
+ dropType = 'after';
2144
+ } else if (dropInner) {
2145
+ dropType = 'inner';
2146
+ } else {
2147
+ dropType = 'none';
2148
+ }
2149
+
2150
+ var iconPosition = dropNode.$el.querySelector('.el-tree-node__expand-icon').getBoundingClientRect();
2151
+ var dropIndicator = _this.$refs.dropIndicator;
2152
+ if (dropType === 'before') {
2153
+ indicatorTop = iconPosition.top - treePosition.top;
2154
+ } else if (dropType === 'after') {
2155
+ indicatorTop = iconPosition.bottom - treePosition.top;
2156
+ }
2157
+ dropIndicator.style.top = indicatorTop + 'px';
2158
+ dropIndicator.style.left = iconPosition.right - treePosition.left + 'px';
2159
+
2160
+ if (dropType === 'inner') {
2161
+ Object(dom_["addClass"])(dropNode.$el, 'is-drop-inner');
2162
+ } else {
2163
+ Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner');
2164
+ }
2165
+
2166
+ dragState.showDropIndicator = dropType === 'before' || dropType === 'after';
2167
+ dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;
2168
+ dragState.dropType = dropType;
2169
+ _this.$emit('node-drag-over', draggingNode.node, dropNode.node, event);
2170
+ });
2171
+
2172
+ this.$on('tree-node-drag-end', function (event) {
2173
+ var draggingNode = dragState.draggingNode,
2174
+ dropType = dragState.dropType,
2175
+ dropNode = dragState.dropNode;
2176
+
2177
+ event.preventDefault();
2178
+ event.dataTransfer.dropEffect = 'move';
2179
+
2180
+ if (draggingNode && dropNode) {
2181
+ var draggingNodeCopy = { data: draggingNode.node.data };
2182
+ if (dropType !== 'none') {
2183
+ draggingNode.node.remove();
2184
+ }
2185
+ if (dropType === 'before') {
2186
+ dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
2187
+ } else if (dropType === 'after') {
2188
+ dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
2189
+ } else if (dropType === 'inner') {
2190
+ dropNode.node.insertChild(draggingNodeCopy);
2191
+ }
2192
+ if (dropType !== 'none') {
2193
+ _this.store.registerNode(draggingNodeCopy);
2194
+ }
2195
+
2196
+ Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner');
2197
+
2198
+ _this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);
2199
+ if (dropType !== 'none') {
2200
+ _this.$emit('node-drop', draggingNode.node, dropNode.node, dropType, event);
2201
+ }
2202
+ }
2203
+ if (draggingNode && !dropNode) {
2204
+ _this.$emit('node-drag-end', draggingNode.node, null, dropType, event);
2205
+ }
2206
+
2207
+ dragState.showDropIndicator = false;
2208
+ dragState.draggingNode = null;
2209
+ dragState.dropNode = null;
2210
+ dragState.allowDrop = true;
2211
+ });
2212
+ },
2213
+ mounted: function mounted() {
2214
+ this.initTabIndex();
2215
+ this.$el.addEventListener('keydown', this.handleKeydown);
2216
+ },
2217
+ updated: function updated() {
2218
+ this.treeItems = this.$el.querySelectorAll('[role=treeitem]');
2219
+ this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
2220
+ }
2221
2221
  });
2222
2222
  // CONCATENATED MODULE: ./packages/tree/src/tree.vue?vue&type=script&lang=js
2223
2223
  /* harmony default export */ var src_treevue_type_script_lang_js = (treevue_type_script_lang_js);
@@ -2246,7 +2246,7 @@ var tree_component = Object(componentNormalizer["a" /* default */])(
2246
2246
 
2247
2247
  /* istanbul ignore next */
2248
2248
  tree.install = function (Vue) {
2249
- Vue.component(tree.name, tree);
2249
+ Vue.component(tree.name, tree);
2250
2250
  };
2251
2251
 
2252
2252
  /* harmony default export */ var packages_tree = __webpack_exports__["default"] = (tree);