nd-autosize-elementui 2.15.14 → 2.15.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/lib/index.js +1 -1
  2. package/lib/utils/vue-popper.js +1 -0
  3. package/package.json +2 -147
  4. package/LICENSE +0 -21
  5. package/README.md +0 -148
  6. package/packages/alert/index.js +0 -8
  7. package/packages/alert/src/main.vue +0 -94
  8. package/packages/aside/index.js +0 -8
  9. package/packages/aside/src/main.vue +0 -20
  10. package/packages/autocomplete/index.js +0 -8
  11. package/packages/autocomplete/src/autocomplete-suggestions.vue +0 -76
  12. package/packages/autocomplete/src/autocomplete.vue +0 -285
  13. package/packages/avatar/index.js +0 -8
  14. package/packages/avatar/src/main.vue +0 -107
  15. package/packages/backtop/index.js +0 -8
  16. package/packages/backtop/src/main.vue +0 -110
  17. package/packages/badge/index.js +0 -8
  18. package/packages/badge/src/main.vue +0 -53
  19. package/packages/breadcrumb/index.js +0 -8
  20. package/packages/breadcrumb/src/breadcrumb-item.vue +0 -41
  21. package/packages/breadcrumb/src/breadcrumb.vue +0 -34
  22. package/packages/breadcrumb-item/index.js +0 -8
  23. package/packages/button/index.js +0 -8
  24. package/packages/button/src/button-group.vue +0 -10
  25. package/packages/button/src/button.vue +0 -78
  26. package/packages/button-group/index.js +0 -8
  27. package/packages/calendar/index.js +0 -8
  28. package/packages/calendar/src/date-table.vue +0 -200
  29. package/packages/calendar/src/main.vue +0 -280
  30. package/packages/card/index.js +0 -8
  31. package/packages/card/src/main.vue +0 -23
  32. package/packages/carousel/index.js +0 -8
  33. package/packages/carousel/src/item.vue +0 -138
  34. package/packages/carousel/src/main.vue +0 -315
  35. package/packages/carousel-item/index.js +0 -8
  36. package/packages/cascader/index.js +0 -8
  37. package/packages/cascader/src/cascader.vue +0 -663
  38. package/packages/cascader-panel/index.js +0 -8
  39. package/packages/cascader-panel/src/cascader-menu.vue +0 -138
  40. package/packages/cascader-panel/src/cascader-node.vue +0 -246
  41. package/packages/cascader-panel/src/cascader-panel.vue +0 -391
  42. package/packages/cascader-panel/src/node.js +0 -166
  43. package/packages/cascader-panel/src/store.js +0 -58
  44. package/packages/checkbox/index.js +0 -8
  45. package/packages/checkbox/src/checkbox-button.vue +0 -199
  46. package/packages/checkbox/src/checkbox-group.vue +0 -48
  47. package/packages/checkbox/src/checkbox.vue +0 -222
  48. package/packages/checkbox-button/index.js +0 -8
  49. package/packages/checkbox-group/index.js +0 -8
  50. package/packages/col/index.js +0 -9
  51. package/packages/col/src/col.js +0 -71
  52. package/packages/collapse/index.js +0 -9
  53. package/packages/collapse/src/collapse-item.vue +0 -114
  54. package/packages/collapse/src/collapse.vue +0 -73
  55. package/packages/collapse-item/index.js +0 -8
  56. package/packages/color-picker/index.js +0 -8
  57. package/packages/color-picker/src/color.js +0 -317
  58. package/packages/color-picker/src/components/alpha-slider.vue +0 -132
  59. package/packages/color-picker/src/components/hue-slider.vue +0 -123
  60. package/packages/color-picker/src/components/picker-dropdown.vue +0 -121
  61. package/packages/color-picker/src/components/predefine.vue +0 -61
  62. package/packages/color-picker/src/components/sv-panel.vue +0 -100
  63. package/packages/color-picker/src/draggable.js +0 -36
  64. package/packages/color-picker/src/main.vue +0 -188
  65. package/packages/container/index.js +0 -8
  66. package/packages/container/src/main.vue +0 -33
  67. package/packages/date-picker/index.js +0 -8
  68. package/packages/date-picker/src/basic/date-table.vue +0 -441
  69. package/packages/date-picker/src/basic/month-table.vue +0 -269
  70. package/packages/date-picker/src/basic/time-spinner.vue +0 -304
  71. package/packages/date-picker/src/basic/year-table.vue +0 -111
  72. package/packages/date-picker/src/panel/date-range.vue +0 -680
  73. package/packages/date-picker/src/panel/date.vue +0 -609
  74. package/packages/date-picker/src/panel/month-range.vue +0 -289
  75. package/packages/date-picker/src/panel/time-range.vue +0 -248
  76. package/packages/date-picker/src/panel/time-select.vue +0 -178
  77. package/packages/date-picker/src/panel/time.vue +0 -186
  78. package/packages/date-picker/src/picker/date-picker.js +0 -43
  79. package/packages/date-picker/src/picker/time-picker.js +0 -39
  80. package/packages/date-picker/src/picker/time-select.js +0 -21
  81. package/packages/date-picker/src/picker.vue +0 -956
  82. package/packages/descriptions/index.js +0 -8
  83. package/packages/descriptions/src/descriptions-item.js +0 -30
  84. package/packages/descriptions/src/descriptions-row.js +0 -116
  85. package/packages/descriptions/src/index.js +0 -180
  86. package/packages/descriptions-item/index.js +0 -8
  87. package/packages/dialog/index.js +0 -8
  88. package/packages/dialog/src/component.vue +0 -212
  89. package/packages/divider/index.js +0 -8
  90. package/packages/divider/src/main.vue +0 -37
  91. package/packages/drawer/index.js +0 -8
  92. package/packages/drawer/src/main.vue +0 -205
  93. package/packages/dropdown/index.js +0 -8
  94. package/packages/dropdown/src/dropdown-item.vue +0 -37
  95. package/packages/dropdown/src/dropdown-menu.vue +0 -63
  96. package/packages/dropdown/src/dropdown.vue +0 -293
  97. package/packages/dropdown-item/index.js +0 -8
  98. package/packages/dropdown-menu/index.js +0 -8
  99. package/packages/empty/index.js +0 -7
  100. package/packages/empty/src/img-empty.vue +0 -132
  101. package/packages/empty/src/index.vue +0 -50
  102. package/packages/footer/index.js +0 -8
  103. package/packages/footer/src/main.vue +0 -20
  104. package/packages/form/index.js +0 -8
  105. package/packages/form/src/form-item.vue +0 -324
  106. package/packages/form/src/form.vue +0 -182
  107. package/packages/form/src/label-wrap.vue +0 -78
  108. package/packages/form-item/index.js +0 -8
  109. package/packages/header/index.js +0 -8
  110. package/packages/header/src/main.vue +0 -20
  111. package/packages/icon/index.js +0 -8
  112. package/packages/icon/src/icon.vue +0 -13
  113. package/packages/image/index.js +0 -8
  114. package/packages/image/src/image-viewer.vue +0 -330
  115. package/packages/image/src/main.vue +0 -249
  116. package/packages/infinite-scroll/index.js +0 -8
  117. package/packages/infinite-scroll/src/main.js +0 -150
  118. package/packages/input/index.js +0 -8
  119. package/packages/input/src/calcTextareaHeight.js +0 -104
  120. package/packages/input/src/input.vue +0 -440
  121. package/packages/input-number/index.js +0 -8
  122. package/packages/input-number/src/input-number.vue +0 -283
  123. package/packages/link/index.js +0 -8
  124. package/packages/link/src/main.vue +0 -53
  125. package/packages/loading/index.js +0 -11
  126. package/packages/loading/src/directive.js +0 -133
  127. package/packages/loading/src/index.js +0 -106
  128. package/packages/loading/src/loading.vue +0 -41
  129. package/packages/main/index.js +0 -8
  130. package/packages/main/src/main.vue +0 -12
  131. package/packages/menu/index.js +0 -8
  132. package/packages/menu/src/menu-item-group.vue +0 -45
  133. package/packages/menu/src/menu-item.vue +0 -112
  134. package/packages/menu/src/menu-mixin.js +0 -44
  135. package/packages/menu/src/menu.vue +0 -325
  136. package/packages/menu/src/submenu.vue +0 -349
  137. package/packages/menu-item/index.js +0 -8
  138. package/packages/menu-item-group/index.js +0 -8
  139. package/packages/message/index.js +0 -2
  140. package/packages/message/src/main.js +0 -91
  141. package/packages/message/src/main.vue +0 -117
  142. package/packages/message-box/index.js +0 -2
  143. package/packages/message-box/src/main.js +0 -216
  144. package/packages/message-box/src/main.vue +0 -332
  145. package/packages/notification/index.js +0 -2
  146. package/packages/notification/src/main.js +0 -94
  147. package/packages/notification/src/main.vue +0 -152
  148. package/packages/option/index.js +0 -8
  149. package/packages/option-group/index.js +0 -8
  150. package/packages/page-header/index.js +0 -8
  151. package/packages/page-header/src/main.vue +0 -30
  152. package/packages/pagination/index.js +0 -8
  153. package/packages/pagination/src/pager.vue +0 -163
  154. package/packages/pagination/src/pagination.js +0 -386
  155. package/packages/popconfirm/index.js +0 -8
  156. package/packages/popconfirm/src/main.vue +0 -104
  157. package/packages/popover/index.js +0 -14
  158. package/packages/popover/src/directive.js +0 -20
  159. package/packages/popover/src/main.vue +0 -237
  160. package/packages/progress/index.js +0 -8
  161. package/packages/progress/src/progress.vue +0 -235
  162. package/packages/radio/index.js +0 -8
  163. package/packages/radio/src/radio-button.vue +0 -115
  164. package/packages/radio/src/radio-group.vue +0 -113
  165. package/packages/radio/src/radio.vue +0 -134
  166. package/packages/radio-button/index.js +0 -8
  167. package/packages/radio-group/index.js +0 -8
  168. package/packages/rate/index.js +0 -8
  169. package/packages/rate/src/main.vue +0 -348
  170. package/packages/result/index.js +0 -8
  171. package/packages/result/src/icon-error.vue +0 -13
  172. package/packages/result/src/icon-info.vue +0 -13
  173. package/packages/result/src/icon-success.vue +0 -13
  174. package/packages/result/src/icon-warning.vue +0 -13
  175. package/packages/result/src/index.vue +0 -65
  176. package/packages/row/index.js +0 -9
  177. package/packages/row/src/row.js +0 -44
  178. package/packages/scrollbar/index.js +0 -8
  179. package/packages/scrollbar/src/bar.js +0 -92
  180. package/packages/scrollbar/src/main.js +0 -130
  181. package/packages/scrollbar/src/util.js +0 -34
  182. package/packages/select/index.js +0 -8
  183. package/packages/select/src/navigation-mixin.js +0 -54
  184. package/packages/select/src/option-group.vue +0 -60
  185. package/packages/select/src/option.vue +0 -168
  186. package/packages/select/src/select-dropdown.vue +0 -74
  187. package/packages/select/src/select.vue +0 -900
  188. package/packages/skeleton/index.js +0 -8
  189. package/packages/skeleton/src/img-placeholder.vue +0 -16
  190. package/packages/skeleton/src/index.vue +0 -76
  191. package/packages/skeleton/src/item.vue +0 -22
  192. package/packages/skeleton-item/index.js +0 -8
  193. package/packages/slider/index.js +0 -8
  194. package/packages/slider/src/button.vue +0 -238
  195. package/packages/slider/src/main.vue +0 -427
  196. package/packages/slider/src/marker.js +0 -18
  197. package/packages/spinner/index.js +0 -8
  198. package/packages/spinner/src/spinner.vue +0 -27
  199. package/packages/statistic/index.js +0 -8
  200. package/packages/statistic/src/main.vue +0 -204
  201. package/packages/step/index.js +0 -8
  202. package/packages/steps/README.md +0 -69
  203. package/packages/steps/index.js +0 -8
  204. package/packages/steps/src/step.vue +0 -184
  205. package/packages/steps/src/steps.vue +0 -68
  206. package/packages/submenu/index.js +0 -8
  207. package/packages/switch/index.js +0 -9
  208. package/packages/switch/src/component.vue +0 -174
  209. package/packages/tab-pane/index.js +0 -8
  210. package/packages/table/index.js +0 -8
  211. package/packages/table/src/config.js +0 -124
  212. package/packages/table/src/dropdown.js +0 -28
  213. package/packages/table/src/filter-panel.vue +0 -194
  214. package/packages/table/src/layout-observer.js +0 -68
  215. package/packages/table/src/store/current.js +0 -76
  216. package/packages/table/src/store/expand.js +0 -65
  217. package/packages/table/src/store/helper.js +0 -41
  218. package/packages/table/src/store/index.js +0 -147
  219. package/packages/table/src/store/tree.js +0 -209
  220. package/packages/table/src/store/watcher.js +0 -381
  221. package/packages/table/src/table-body.js +0 -469
  222. package/packages/table/src/table-column.js +0 -319
  223. package/packages/table/src/table-footer.js +0 -153
  224. package/packages/table/src/table-header.js +0 -511
  225. package/packages/table/src/table-layout.js +0 -249
  226. package/packages/table/src/table-row.js +0 -101
  227. package/packages/table/src/table.vue +0 -712
  228. package/packages/table/src/util.js +0 -273
  229. package/packages/table-column/index.js +0 -8
  230. package/packages/tabs/index.js +0 -8
  231. package/packages/tabs/src/tab-bar.vue +0 -57
  232. package/packages/tabs/src/tab-nav.vue +0 -294
  233. package/packages/tabs/src/tab-pane.vue +0 -56
  234. package/packages/tabs/src/tabs.vue +0 -191
  235. package/packages/tag/index.js +0 -8
  236. package/packages/tag/src/tag.vue +0 -58
  237. package/packages/theme-chalk/README.md +0 -33
  238. package/packages/theme-chalk/gulpfile.js +0 -25
  239. package/packages/theme-chalk/package.json +0 -35
  240. package/packages/theme-chalk/src/alert.scss +0 -147
  241. package/packages/theme-chalk/src/aside.scss +0 -7
  242. package/packages/theme-chalk/src/autocomplete.scss +0 -80
  243. package/packages/theme-chalk/src/avatar.scss +0 -51
  244. package/packages/theme-chalk/src/backtop.scss +0 -22
  245. package/packages/theme-chalk/src/badge.scss +0 -57
  246. package/packages/theme-chalk/src/base.scss +0 -2
  247. package/packages/theme-chalk/src/breadcrumb-item.scss +0 -0
  248. package/packages/theme-chalk/src/breadcrumb.scss +0 -55
  249. package/packages/theme-chalk/src/button-group.scss +0 -0
  250. package/packages/theme-chalk/src/button.scss +0 -262
  251. package/packages/theme-chalk/src/calendar.scss +0 -79
  252. package/packages/theme-chalk/src/card.scss +0 -32
  253. package/packages/theme-chalk/src/carousel-item.scss +0 -50
  254. package/packages/theme-chalk/src/carousel.scss +0 -161
  255. package/packages/theme-chalk/src/cascader-panel.scss +0 -120
  256. package/packages/theme-chalk/src/cascader.scss +0 -182
  257. package/packages/theme-chalk/src/checkbox-button.scss +0 -0
  258. package/packages/theme-chalk/src/checkbox-group.scss +0 -0
  259. package/packages/theme-chalk/src/checkbox.scss +0 -359
  260. package/packages/theme-chalk/src/col.scss +0 -156
  261. package/packages/theme-chalk/src/collapse-item.scss +0 -0
  262. package/packages/theme-chalk/src/collapse.scss +0 -63
  263. package/packages/theme-chalk/src/color-picker.scss +0 -384
  264. package/packages/theme-chalk/src/common/popup.scss +0 -42
  265. package/packages/theme-chalk/src/common/transition.scss +0 -99
  266. package/packages/theme-chalk/src/common/var.scss +0 -1028
  267. package/packages/theme-chalk/src/container.scss +0 -14
  268. package/packages/theme-chalk/src/date-picker/date-picker.scss +0 -97
  269. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +0 -101
  270. package/packages/theme-chalk/src/date-picker/date-table.scss +0 -151
  271. package/packages/theme-chalk/src/date-picker/month-table.scss +0 -82
  272. package/packages/theme-chalk/src/date-picker/picker-panel.scss +0 -117
  273. package/packages/theme-chalk/src/date-picker/picker.scss +0 -197
  274. package/packages/theme-chalk/src/date-picker/time-picker.scss +0 -85
  275. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +0 -31
  276. package/packages/theme-chalk/src/date-picker/time-spinner.scss +0 -110
  277. package/packages/theme-chalk/src/date-picker/year-table.scss +0 -51
  278. package/packages/theme-chalk/src/date-picker.scss +0 -12
  279. package/packages/theme-chalk/src/descriptions-item.scss +0 -42
  280. package/packages/theme-chalk/src/descriptions.scss +0 -111
  281. package/packages/theme-chalk/src/dialog.scss +0 -123
  282. package/packages/theme-chalk/src/display.scss +0 -12
  283. package/packages/theme-chalk/src/divider.scss +0 -47
  284. package/packages/theme-chalk/src/drawer.scss +0 -219
  285. package/packages/theme-chalk/src/dropdown-item.scss +0 -0
  286. package/packages/theme-chalk/src/dropdown-menu.scss +0 -0
  287. package/packages/theme-chalk/src/dropdown.scss +0 -182
  288. package/packages/theme-chalk/src/empty.scss +0 -45
  289. package/packages/theme-chalk/src/fonts/element-icons.ttf +0 -0
  290. package/packages/theme-chalk/src/fonts/element-icons.woff +0 -0
  291. package/packages/theme-chalk/src/footer.scss +0 -8
  292. package/packages/theme-chalk/src/form-item.scss +0 -0
  293. package/packages/theme-chalk/src/form.scss +0 -167
  294. package/packages/theme-chalk/src/header.scss +0 -8
  295. package/packages/theme-chalk/src/icon.scss +0 -1167
  296. package/packages/theme-chalk/src/image.scss +0 -179
  297. package/packages/theme-chalk/src/index.scss +0 -87
  298. package/packages/theme-chalk/src/infinite-scroll.scss +0 -0
  299. package/packages/theme-chalk/src/infiniteScroll.scss +0 -0
  300. package/packages/theme-chalk/src/input-number.scss +0 -180
  301. package/packages/theme-chalk/src/input.scss +0 -360
  302. package/packages/theme-chalk/src/link.scss +0 -81
  303. package/packages/theme-chalk/src/loading.scss +0 -96
  304. package/packages/theme-chalk/src/main.scss +0 -12
  305. package/packages/theme-chalk/src/menu-item-group.scss +0 -0
  306. package/packages/theme-chalk/src/menu-item.scss +0 -0
  307. package/packages/theme-chalk/src/menu.scss +0 -289
  308. package/packages/theme-chalk/src/message-box.scss +0 -226
  309. package/packages/theme-chalk/src/message.scss +0 -120
  310. package/packages/theme-chalk/src/mixins/_button.scss +0 -81
  311. package/packages/theme-chalk/src/mixins/config.scss +0 -4
  312. package/packages/theme-chalk/src/mixins/function.scss +0 -44
  313. package/packages/theme-chalk/src/mixins/mixins.scss +0 -190
  314. package/packages/theme-chalk/src/mixins/utils.scss +0 -39
  315. package/packages/theme-chalk/src/notification.scss +0 -99
  316. package/packages/theme-chalk/src/option-group.scss +0 -42
  317. package/packages/theme-chalk/src/option.scss +0 -36
  318. package/packages/theme-chalk/src/page-header.scss +0 -41
  319. package/packages/theme-chalk/src/pagination.scss +0 -295
  320. package/packages/theme-chalk/src/popconfirm.scss +0 -16
  321. package/packages/theme-chalk/src/popover.scss +0 -40
  322. package/packages/theme-chalk/src/popper.scss +0 -101
  323. package/packages/theme-chalk/src/progress.scss +0 -141
  324. package/packages/theme-chalk/src/radio-button.scss +0 -113
  325. package/packages/theme-chalk/src/radio-group.scss +0 -9
  326. package/packages/theme-chalk/src/radio.scss +0 -199
  327. package/packages/theme-chalk/src/rate.scss +0 -49
  328. package/packages/theme-chalk/src/reset.scss +0 -79
  329. package/packages/theme-chalk/src/result.scss +0 -61
  330. package/packages/theme-chalk/src/row.scss +0 -43
  331. package/packages/theme-chalk/src/scrollbar.scss +0 -72
  332. package/packages/theme-chalk/src/select-dropdown.scss +0 -62
  333. package/packages/theme-chalk/src/select.scss +0 -152
  334. package/packages/theme-chalk/src/skeleton-item.scss +0 -84
  335. package/packages/theme-chalk/src/skeleton.scss +0 -40
  336. package/packages/theme-chalk/src/slider.scss +0 -250
  337. package/packages/theme-chalk/src/spinner.scss +0 -44
  338. package/packages/theme-chalk/src/statistic.scss +0 -38
  339. package/packages/theme-chalk/src/step.scss +0 -317
  340. package/packages/theme-chalk/src/steps.scss +0 -20
  341. package/packages/theme-chalk/src/submenu.scss +0 -0
  342. package/packages/theme-chalk/src/switch.scss +0 -116
  343. package/packages/theme-chalk/src/tab-pane.scss +0 -0
  344. package/packages/theme-chalk/src/table-column.scss +0 -97
  345. package/packages/theme-chalk/src/table.scss +0 -564
  346. package/packages/theme-chalk/src/tabs.scss +0 -602
  347. package/packages/theme-chalk/src/tag.scss +0 -163
  348. package/packages/theme-chalk/src/time-picker.scss +0 -8
  349. package/packages/theme-chalk/src/time-select.scss +0 -37
  350. package/packages/theme-chalk/src/timeline-item.scss +0 -86
  351. package/packages/theme-chalk/src/timeline.scss +0 -14
  352. package/packages/theme-chalk/src/tooltip.scss +0 -141
  353. package/packages/theme-chalk/src/transfer.scss +0 -227
  354. package/packages/theme-chalk/src/tree.scss +0 -123
  355. package/packages/theme-chalk/src/upload.scss +0 -603
  356. package/packages/time-picker/index.js +0 -8
  357. package/packages/time-select/index.js +0 -8
  358. package/packages/timeline/index.js +0 -8
  359. package/packages/timeline/src/item.vue +0 -73
  360. package/packages/timeline/src/main.vue +0 -33
  361. package/packages/timeline-item/index.js +0 -8
  362. package/packages/tooltip/index.js +0 -8
  363. package/packages/tooltip/src/main.js +0 -257
  364. package/packages/transfer/index.js +0 -8
  365. package/packages/transfer/src/main.vue +0 -231
  366. package/packages/transfer/src/transfer-panel.vue +0 -251
  367. package/packages/tree/index.js +0 -8
  368. package/packages/tree/src/model/node.js +0 -484
  369. package/packages/tree/src/model/tree-store.js +0 -340
  370. package/packages/tree/src/model/util.js +0 -27
  371. package/packages/tree/src/tree-node.vue +0 -279
  372. package/packages/tree/src/tree.vue +0 -496
  373. package/packages/upload/index.js +0 -8
  374. package/packages/upload/src/ajax.js +0 -85
  375. package/packages/upload/src/index.vue +0 -338
  376. package/packages/upload/src/upload-dragger.vue +0 -70
  377. package/packages/upload/src/upload-list.vue +0 -105
  378. package/packages/upload/src/upload.vue +0 -211
  379. package/src/directives/mousewheel.js +0 -18
  380. package/src/directives/repeat-click.js +0 -26
  381. package/src/index.js +0 -309
  382. package/src/locale/format.js +0 -46
  383. package/src/locale/index.js +0 -48
  384. package/src/locale/lang/af-ZA.js +0 -123
  385. package/src/locale/lang/ar.js +0 -122
  386. package/src/locale/lang/az.js +0 -126
  387. package/src/locale/lang/bg.js +0 -123
  388. package/src/locale/lang/bn.js +0 -126
  389. package/src/locale/lang/ca.js +0 -122
  390. package/src/locale/lang/cs-CZ.js +0 -125
  391. package/src/locale/lang/da.js +0 -122
  392. package/src/locale/lang/de.js +0 -124
  393. package/src/locale/lang/ee.js +0 -123
  394. package/src/locale/lang/el.js +0 -123
  395. package/src/locale/lang/en.js +0 -123
  396. package/src/locale/lang/eo.js +0 -123
  397. package/src/locale/lang/es.js +0 -122
  398. package/src/locale/lang/eu.js +0 -123
  399. package/src/locale/lang/fa.js +0 -123
  400. package/src/locale/lang/fi.js +0 -123
  401. package/src/locale/lang/fr.js +0 -122
  402. package/src/locale/lang/he.js +0 -123
  403. package/src/locale/lang/hr.js +0 -123
  404. package/src/locale/lang/hu.js +0 -122
  405. package/src/locale/lang/hy-AM.js +0 -123
  406. package/src/locale/lang/id.js +0 -123
  407. package/src/locale/lang/is.js +0 -124
  408. package/src/locale/lang/it.js +0 -122
  409. package/src/locale/lang/ja.js +0 -123
  410. package/src/locale/lang/kg.js +0 -123
  411. package/src/locale/lang/km.js +0 -123
  412. package/src/locale/lang/ko.js +0 -123
  413. package/src/locale/lang/ku.js +0 -123
  414. package/src/locale/lang/kz.js +0 -123
  415. package/src/locale/lang/lo-LA.js +0 -126
  416. package/src/locale/lang/lt.js +0 -123
  417. package/src/locale/lang/lv.js +0 -123
  418. package/src/locale/lang/mn.js +0 -123
  419. package/src/locale/lang/ms.js +0 -122
  420. package/src/locale/lang/nb-NO.js +0 -122
  421. package/src/locale/lang/nl.js +0 -123
  422. package/src/locale/lang/pl.js +0 -123
  423. package/src/locale/lang/pt-br.js +0 -123
  424. package/src/locale/lang/pt.js +0 -123
  425. package/src/locale/lang/ro.js +0 -123
  426. package/src/locale/lang/ru-RU.js +0 -123
  427. package/src/locale/lang/si.js +0 -123
  428. package/src/locale/lang/sk.js +0 -125
  429. package/src/locale/lang/sl.js +0 -123
  430. package/src/locale/lang/sr-Latn.js +0 -123
  431. package/src/locale/lang/sr.js +0 -123
  432. package/src/locale/lang/sv-SE.js +0 -123
  433. package/src/locale/lang/sw.js +0 -123
  434. package/src/locale/lang/ta.js +0 -122
  435. package/src/locale/lang/th.js +0 -123
  436. package/src/locale/lang/tk.js +0 -123
  437. package/src/locale/lang/tr-TR.js +0 -123
  438. package/src/locale/lang/ua.js +0 -123
  439. package/src/locale/lang/ug-CN.js +0 -123
  440. package/src/locale/lang/uz-UZ.js +0 -123
  441. package/src/locale/lang/vi.js +0 -123
  442. package/src/locale/lang/zh-CN.js +0 -123
  443. package/src/locale/lang/zh-TW.js +0 -123
  444. package/src/mixins/emitter.js +0 -33
  445. package/src/mixins/focus.js +0 -9
  446. package/src/mixins/locale.js +0 -9
  447. package/src/mixins/migrating.js +0 -54
  448. package/src/transitions/collapse-transition.js +0 -77
  449. package/src/utils/after-leave.js +0 -27
  450. package/src/utils/aria-dialog.js +0 -90
  451. package/src/utils/aria-utils.js +0 -122
  452. package/src/utils/clickoutside.js +0 -76
  453. package/src/utils/date-util.js +0 -282
  454. package/src/utils/date.js +0 -368
  455. package/src/utils/dom.js +0 -227
  456. package/src/utils/lodash.js +0 -18075
  457. package/src/utils/menu/aria-menubar.js +0 -14
  458. package/src/utils/menu/aria-menuitem.js +0 -49
  459. package/src/utils/menu/aria-submenu.js +0 -59
  460. package/src/utils/merge.js +0 -15
  461. package/src/utils/popper.js +0 -1276
  462. package/src/utils/popup/index.js +0 -218
  463. package/src/utils/popup/popup-manager.js +0 -194
  464. package/src/utils/resize-event.js +0 -36
  465. package/src/utils/scroll-into-view.js +0 -27
  466. package/src/utils/scrollbar-width.js +0 -29
  467. package/src/utils/shared.js +0 -7
  468. package/src/utils/types.js +0 -40
  469. package/src/utils/util.js +0 -245
  470. package/src/utils/vdom.js +0 -5
  471. package/src/utils/vue-popper.js +0 -217
  472. package/types/alert.d.ts +0 -31
  473. package/types/aside.d.ts +0 -7
  474. package/types/autocomplete.d.ts +0 -78
  475. package/types/avatar.d.ts +0 -20
  476. package/types/backtop.d.ts +0 -16
  477. package/types/badge.d.ts +0 -16
  478. package/types/breadcrumb-item.d.ts +0 -10
  479. package/types/breadcrumb.d.ts +0 -10
  480. package/types/button-group.d.ts +0 -4
  481. package/types/button.d.ts +0 -37
  482. package/types/calendar.d.ts +0 -15
  483. package/types/card.d.ts +0 -26
  484. package/types/carousel-item.d.ts +0 -10
  485. package/types/carousel.d.ts +0 -57
  486. package/types/cascader-panel.d.ts +0 -72
  487. package/types/cascader.d.ts +0 -65
  488. package/types/checkbox-button.d.ts +0 -22
  489. package/types/checkbox-group.d.ts +0 -22
  490. package/types/checkbox.d.ts +0 -34
  491. package/types/col.d.ts +0 -46
  492. package/types/collapse-item.d.ts +0 -26
  493. package/types/collapse.d.ts +0 -10
  494. package/types/color-picker.d.ts +0 -21
  495. package/types/component.d.ts +0 -13
  496. package/types/container.d.ts +0 -7
  497. package/types/date-picker.d.ts +0 -124
  498. package/types/descriptions-item.d.ts +0 -37
  499. package/types/descriptions.d.ts +0 -52
  500. package/types/dialog.d.ts +0 -62
  501. package/types/divider.d.ts +0 -12
  502. package/types/drawer.d.ts +0 -63
  503. package/types/dropdown-item.d.ts +0 -16
  504. package/types/dropdown-menu.d.ts +0 -4
  505. package/types/dropdown.d.ts +0 -38
  506. package/types/element-ui.d.ts +0 -382
  507. package/types/empty.d.ts +0 -31
  508. package/types/footer.d.ts +0 -7
  509. package/types/form-item.d.ts +0 -37
  510. package/types/form.d.ts +0 -82
  511. package/types/header.d.ts +0 -7
  512. package/types/icon.d.ts +0 -7
  513. package/types/image.d.ts +0 -43
  514. package/types/index.d.ts +0 -4
  515. package/types/infinite-scroll.d.ts +0 -6
  516. package/types/input-number.d.ts +0 -47
  517. package/types/input.d.ts +0 -107
  518. package/types/link.d.ts +0 -25
  519. package/types/loading.d.ts +0 -62
  520. package/types/main.d.ts +0 -4
  521. package/types/menu-item-group.d.ts +0 -7
  522. package/types/menu-item.d.ts +0 -10
  523. package/types/menu.d.ts +0 -46
  524. package/types/message-box.d.ts +0 -176
  525. package/types/message.d.ts +0 -90
  526. package/types/notification.d.ts +0 -84
  527. package/types/option-group.d.ts +0 -10
  528. package/types/option.d.ts +0 -13
  529. package/types/page-header.d.ts +0 -10
  530. package/types/pagination.d.ts +0 -43
  531. package/types/popconfirm.d.ts +0 -29
  532. package/types/popover.d.ts +0 -71
  533. package/types/progress.d.ts +0 -37
  534. package/types/radio-button.d.ts +0 -16
  535. package/types/radio-group.d.ts +0 -18
  536. package/types/radio.d.ts +0 -19
  537. package/types/rate.d.ts +0 -64
  538. package/types/result.d.ts +0 -33
  539. package/types/row.d.ts +0 -25
  540. package/types/select.d.ts +0 -90
  541. package/types/skeleton-item.d.ts +0 -7
  542. package/types/skeleton.d.ts +0 -33
  543. package/types/slider.d.ts +0 -68
  544. package/types/spinner.d.ts +0 -16
  545. package/types/statistic.d.ts +0 -37
  546. package/types/step.d.ts +0 -34
  547. package/types/steps.d.ts +0 -28
  548. package/types/submenu.d.ts +0 -22
  549. package/types/switch.d.ts +0 -43
  550. package/types/tab-pane.d.ts +0 -19
  551. package/types/table-column.d.ts +0 -117
  552. package/types/table.d.ts +0 -177
  553. package/types/tabs.d.ts +0 -31
  554. package/types/tag.d.ts +0 -28
  555. package/types/time-picker.d.ts +0 -63
  556. package/types/time-select.d.ts +0 -56
  557. package/types/timeline-item.d.ts +0 -20
  558. package/types/timeline.d.ts +0 -6
  559. package/types/tooltip.d.ts +0 -52
  560. package/types/transfer.d.ts +0 -73
  561. package/types/tree.d.ts +0 -266
  562. package/types/upload.d.ts +0 -124
  563. package/web-types.json +0 -4195
@@ -1,441 +0,0 @@
1
- <template>
2
- <table
3
- cellspacing="0"
4
- cellpadding="0"
5
- class="el-date-table"
6
- @click="handleClick"
7
- @mousemove="handleMouseMove"
8
- :class="{ 'is-week-mode': selectionMode === 'week' }">
9
- <tbody>
10
- <tr>
11
- <th v-if="showWeekNumber">{{ t('el.datepicker.week') }}</th>
12
- <th v-for="(week, key) in WEEKS" :key="key">{{ t('el.datepicker.weeks.' + week) }}</th>
13
- </tr>
14
- <tr
15
- class="el-date-table__row"
16
- v-for="(row, key) in rows"
17
- :class="{ current: isWeekActive(row[1]) }"
18
- :key="key">
19
- <td
20
- v-for="(cell, key) in row"
21
- :class="getCellClasses(cell)"
22
- :key="key">
23
- <div>
24
- <span>
25
- {{ cell.text }}
26
- </span>
27
- </div>
28
- </td>
29
- </tr>
30
- </tbody>
31
- </table>
32
- </template>
33
-
34
- <script>
35
- import { getFirstDayOfMonth, getDayCountOfMonth, getWeekNumber, getStartDateOfMonth, prevDate, nextDate, isDate, clearTime as _clearTime} from 'element-ui/src/utils/date-util';
36
- import Locale from 'element-ui/src/mixins/locale';
37
- import { arrayFindIndex, arrayFind, coerceTruthyValueToArray } from 'element-ui/src/utils/util';
38
-
39
- const WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
40
- const getDateTimestamp = function(time) {
41
- if (typeof time === 'number' || typeof time === 'string') {
42
- return _clearTime(new Date(time)).getTime();
43
- } else if (time instanceof Date) {
44
- return _clearTime(time).getTime();
45
- } else {
46
- return NaN;
47
- }
48
- };
49
-
50
- // remove the first element that satisfies `pred` from arr
51
- // return a new array if modification occurs
52
- // return the original array otherwise
53
- const removeFromArray = function(arr, pred) {
54
- const idx = typeof pred === 'function' ? arrayFindIndex(arr, pred) : arr.indexOf(pred);
55
- return idx >= 0 ? [...arr.slice(0, idx), ...arr.slice(idx + 1)] : arr;
56
- };
57
-
58
- export default {
59
- mixins: [Locale],
60
-
61
- props: {
62
- firstDayOfWeek: {
63
- default: 7,
64
- type: Number,
65
- validator: val => val >= 1 && val <= 7
66
- },
67
-
68
- value: {},
69
-
70
- defaultValue: {
71
- validator(val) {
72
- // either: null, valid Date object, Array of valid Date objects
73
- return val === null || isDate(val) || (Array.isArray(val) && val.every(isDate));
74
- }
75
- },
76
-
77
- date: {},
78
-
79
- selectionMode: {
80
- default: 'day'
81
- },
82
-
83
- showWeekNumber: {
84
- type: Boolean,
85
- default: false
86
- },
87
-
88
- disabledDate: {},
89
-
90
- cellClassName: {},
91
-
92
- minDate: {},
93
-
94
- maxDate: {},
95
-
96
- rangeState: {
97
- default() {
98
- return {
99
- endDate: null,
100
- selecting: false
101
- };
102
- }
103
- }
104
- },
105
-
106
- computed: {
107
- offsetDay() {
108
- const week = this.firstDayOfWeek;
109
- // 周日为界限,左右偏移的天数,3217654 例如周一就是 -1,目的是调整前两行日期的位置
110
- return week > 3 ? 7 - week : -week;
111
- },
112
-
113
- WEEKS() {
114
- const week = this.firstDayOfWeek;
115
- return WEEKS.concat(WEEKS).slice(week, week + 7);
116
- },
117
-
118
- year() {
119
- return this.date.getFullYear();
120
- },
121
-
122
- month() {
123
- return this.date.getMonth();
124
- },
125
-
126
- startDate() {
127
- return getStartDateOfMonth(this.year, this.month);
128
- },
129
-
130
- rows() {
131
- // TODO: refactory rows / getCellClasses
132
- const date = new Date(this.year, this.month, 1);
133
- let day = getFirstDayOfMonth(date); // day of first day
134
- const dateCountOfMonth = getDayCountOfMonth(date.getFullYear(), date.getMonth());
135
- const dateCountOfLastMonth = getDayCountOfMonth(date.getFullYear(), (date.getMonth() === 0 ? 11 : date.getMonth() - 1));
136
-
137
- day = (day === 0 ? 7 : day);
138
-
139
- const offset = this.offsetDay;
140
- const rows = this.tableRows;
141
- let count = 1;
142
-
143
- const startDate = this.startDate;
144
- const disabledDate = this.disabledDate;
145
- const cellClassName = this.cellClassName;
146
- const selectedDate = this.selectionMode === 'dates' ? coerceTruthyValueToArray(this.value) : [];
147
- const now = getDateTimestamp(new Date());
148
-
149
- for (let i = 0; i < 6; i++) {
150
- const row = rows[i];
151
-
152
- if (this.showWeekNumber) {
153
- if (!row[0]) {
154
- row[0] = { type: 'week', text: getWeekNumber(nextDate(startDate, i * 7 + 1)) };
155
- }
156
- }
157
-
158
- for (let j = 0; j < 7; j++) {
159
- let cell = row[this.showWeekNumber ? j + 1 : j];
160
- if (!cell) {
161
- cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };
162
- }
163
-
164
- cell.type = 'normal';
165
-
166
- const index = i * 7 + j;
167
- const time = nextDate(startDate, index - offset).getTime();
168
- cell.inRange = time >= getDateTimestamp(this.minDate) && time <= getDateTimestamp(this.maxDate);
169
- cell.start = this.minDate && time === getDateTimestamp(this.minDate);
170
- cell.end = this.maxDate && time === getDateTimestamp(this.maxDate);
171
- const isToday = time === now;
172
-
173
- if (isToday) {
174
- cell.type = 'today';
175
- }
176
-
177
- if (i >= 0 && i <= 1) {
178
- const numberOfDaysFromPreviousMonth = day + offset < 0 ? 7 + day + offset : day + offset;
179
-
180
- if (j + i * 7 >= numberOfDaysFromPreviousMonth) {
181
- cell.text = count++;
182
- } else {
183
- cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - j % 7) + 1 + i * 7;
184
- cell.type = 'prev-month';
185
- }
186
- } else {
187
- if (count <= dateCountOfMonth) {
188
- cell.text = count++;
189
- } else {
190
- cell.text = count++ - dateCountOfMonth;
191
- cell.type = 'next-month';
192
- }
193
- }
194
-
195
- let cellDate = new Date(time);
196
- cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
197
- cell.selected = arrayFind(selectedDate, date => date.getTime() === cellDate.getTime());
198
- cell.customClass = typeof cellClassName === 'function' && cellClassName(cellDate);
199
- this.$set(row, this.showWeekNumber ? j + 1 : j, cell);
200
- }
201
-
202
- if (this.selectionMode === 'week') {
203
- const start = this.showWeekNumber ? 1 : 0;
204
- const end = this.showWeekNumber ? 7 : 6;
205
- const isWeekActive = this.isWeekActive(row[start + 1]);
206
-
207
- row[start].inRange = isWeekActive;
208
- row[start].start = isWeekActive;
209
- row[end].inRange = isWeekActive;
210
- row[end].end = isWeekActive;
211
- }
212
- }
213
-
214
- return rows;
215
- }
216
- },
217
-
218
- watch: {
219
- 'rangeState.endDate'(newVal) {
220
- this.markRange(this.minDate, newVal);
221
- },
222
-
223
- minDate(newVal, oldVal) {
224
- if (getDateTimestamp(newVal) !== getDateTimestamp(oldVal)) {
225
- this.markRange(this.minDate, this.maxDate);
226
- }
227
- },
228
-
229
- maxDate(newVal, oldVal) {
230
- if (getDateTimestamp(newVal) !== getDateTimestamp(oldVal)) {
231
- this.markRange(this.minDate, this.maxDate);
232
- }
233
- }
234
- },
235
-
236
- data() {
237
- return {
238
- tableRows: [ [], [], [], [], [], [] ],
239
- lastRow: null,
240
- lastColumn: null
241
- };
242
- },
243
-
244
- methods: {
245
- cellMatchesDate(cell, date) {
246
- const value = new Date(date);
247
- return this.year === value.getFullYear() &&
248
- this.month === value.getMonth() &&
249
- Number(cell.text) === value.getDate();
250
- },
251
-
252
- getCellClasses(cell) {
253
- const selectionMode = this.selectionMode;
254
- const defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];
255
-
256
- let classes = [];
257
- if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {
258
- classes.push('available');
259
- if (cell.type === 'today') {
260
- classes.push('today');
261
- }
262
- } else {
263
- classes.push(cell.type);
264
- }
265
-
266
- if (cell.type === 'normal' && defaultValue.some(date => this.cellMatchesDate(cell, date))) {
267
- classes.push('default');
268
- }
269
-
270
- if (selectionMode === 'day' && (cell.type === 'normal' || cell.type === 'today') && this.cellMatchesDate(cell, this.value)) {
271
- classes.push('current');
272
- }
273
-
274
- if (cell.inRange && ((cell.type === 'normal' || cell.type === 'today') || this.selectionMode === 'week')) {
275
- classes.push('in-range');
276
-
277
- if (cell.start) {
278
- classes.push('start-date');
279
- }
280
-
281
- if (cell.end) {
282
- classes.push('end-date');
283
- }
284
- }
285
-
286
- if (cell.disabled) {
287
- classes.push('disabled');
288
- }
289
-
290
- if (cell.selected) {
291
- classes.push('selected');
292
- }
293
-
294
- if (cell.customClass) {
295
- classes.push(cell.customClass);
296
- }
297
-
298
- return classes.join(' ');
299
- },
300
-
301
- getDateOfCell(row, column) {
302
- const offsetFromStart = row * 7 + (column - (this.showWeekNumber ? 1 : 0)) - this.offsetDay;
303
- return nextDate(this.startDate, offsetFromStart);
304
- },
305
-
306
- isWeekActive(cell) {
307
- if (this.selectionMode !== 'week') return false;
308
- const newDate = new Date(this.year, this.month, 1);
309
- const year = newDate.getFullYear();
310
- const month = newDate.getMonth();
311
-
312
- if (cell.type === 'prev-month') {
313
- newDate.setMonth(month === 0 ? 11 : month - 1);
314
- newDate.setFullYear(month === 0 ? year - 1 : year);
315
- }
316
-
317
- if (cell.type === 'next-month') {
318
- newDate.setMonth(month === 11 ? 0 : month + 1);
319
- newDate.setFullYear(month === 11 ? year + 1 : year);
320
- }
321
-
322
- newDate.setDate(parseInt(cell.text, 10));
323
-
324
- if (isDate(this.value)) {
325
- const dayOffset = (this.value.getDay() - this.firstDayOfWeek + 7) % 7 - 1;
326
- const weekDate = prevDate(this.value, dayOffset);
327
- return weekDate.getTime() === newDate.getTime();
328
- }
329
- return false;
330
- },
331
-
332
- markRange(minDate, maxDate) {
333
- minDate = getDateTimestamp(minDate);
334
- maxDate = getDateTimestamp(maxDate) || minDate;
335
- [minDate, maxDate] = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];
336
-
337
- const startDate = this.startDate;
338
- const rows = this.rows;
339
- for (let i = 0, k = rows.length; i < k; i++) {
340
- const row = rows[i];
341
- for (let j = 0, l = row.length; j < l; j++) {
342
- if (this.showWeekNumber && j === 0) continue;
343
-
344
- const cell = row[j];
345
- const index = i * 7 + j + (this.showWeekNumber ? -1 : 0);
346
- const time = nextDate(startDate, index - this.offsetDay).getTime();
347
-
348
- cell.inRange = minDate && time >= minDate && time <= maxDate;
349
- cell.start = minDate && time === minDate;
350
- cell.end = maxDate && time === maxDate;
351
- }
352
- }
353
- },
354
-
355
- handleMouseMove(event) {
356
- if (!this.rangeState.selecting) return;
357
-
358
- let target = event.target;
359
- if (target.tagName === 'SPAN') {
360
- target = target.parentNode.parentNode;
361
- }
362
- if (target.tagName === 'DIV') {
363
- target = target.parentNode;
364
- }
365
- if (target.tagName !== 'TD') return;
366
-
367
- const row = target.parentNode.rowIndex - 1;
368
- const column = target.cellIndex;
369
-
370
- // can not select disabled date
371
- if (this.rows[row][column].disabled) return;
372
-
373
- // only update rangeState when mouse moves to a new cell
374
- // this avoids frequent Date object creation and improves performance
375
- if (row !== this.lastRow || column !== this.lastColumn) {
376
- this.lastRow = row;
377
- this.lastColumn = column;
378
- this.$emit('changerange', {
379
- minDate: this.minDate,
380
- maxDate: this.maxDate,
381
- rangeState: {
382
- selecting: true,
383
- endDate: this.getDateOfCell(row, column)
384
- }
385
- });
386
- }
387
- },
388
-
389
- handleClick(event) {
390
- let target = event.target;
391
- if (target.tagName === 'SPAN') {
392
- target = target.parentNode.parentNode;
393
- }
394
- if (target.tagName === 'DIV') {
395
- target = target.parentNode;
396
- }
397
-
398
- if (target.tagName !== 'TD') return;
399
-
400
- const row = target.parentNode.rowIndex - 1;
401
- const column = this.selectionMode === 'week' ? 1 : target.cellIndex;
402
- const cell = this.rows[row][column];
403
-
404
- if (cell.disabled || cell.type === 'week') return;
405
-
406
- const newDate = this.getDateOfCell(row, column);
407
-
408
- if (this.selectionMode === 'range') {
409
- if (!this.rangeState.selecting) {
410
- this.$emit('pick', {minDate: newDate, maxDate: null});
411
- this.rangeState.selecting = true;
412
- } else {
413
- if (newDate >= this.minDate) {
414
- this.$emit('pick', {minDate: this.minDate, maxDate: newDate});
415
- } else {
416
- this.$emit('pick', {minDate: newDate, maxDate: this.minDate});
417
- }
418
- this.rangeState.selecting = false;
419
- }
420
- } else if (this.selectionMode === 'day') {
421
- this.$emit('pick', newDate);
422
- } else if (this.selectionMode === 'week') {
423
- const weekNumber = getWeekNumber(newDate);
424
- const value = newDate.getFullYear() + 'w' + weekNumber;
425
- this.$emit('pick', {
426
- year: newDate.getFullYear(),
427
- week: weekNumber,
428
- value: value,
429
- date: newDate
430
- });
431
- } else if (this.selectionMode === 'dates') {
432
- const value = this.value || [];
433
- const newValue = cell.selected
434
- ? removeFromArray(value, date => date.getTime() === newDate.getTime())
435
- : [...value, newDate];
436
- this.$emit('pick', newValue);
437
- }
438
- }
439
- }
440
- };
441
- </script>
@@ -1,269 +0,0 @@
1
- <template>
2
- <table @click="handleMonthTableClick" @mousemove="handleMouseMove" class="el-month-table">
3
- <tbody>
4
- <tr v-for="(row, key) in rows" :key="key">
5
- <td :class="getCellStyle(cell)" v-for="(cell, key) in row" :key="key">
6
- <div>
7
- <a class="cell">{{ t('el.datepicker.months.' + months[cell.text]) }}</a>
8
- </div>
9
- </td>
10
- </tr>
11
- </tbody>
12
- </table>
13
- </template>
14
-
15
- <script type="text/babel">
16
- import Locale from 'element-ui/src/mixins/locale';
17
- import { isDate, range, getDayCountOfMonth, nextDate } from 'element-ui/src/utils/date-util';
18
- import { hasClass } from 'element-ui/src/utils/dom';
19
- import { arrayFindIndex, coerceTruthyValueToArray, arrayFind } from 'element-ui/src/utils/util';
20
-
21
- const datesInMonth = (year, month) => {
22
- const numOfDays = getDayCountOfMonth(year, month);
23
- const firstDay = new Date(year, month, 1);
24
- return range(numOfDays).map(n => nextDate(firstDay, n));
25
- };
26
-
27
- const clearDate = (date) => {
28
- return new Date(date.getFullYear(), date.getMonth());
29
- };
30
-
31
- const getMonthTimestamp = function(time) {
32
- if (typeof time === 'number' || typeof time === 'string') {
33
- return clearDate(new Date(time)).getTime();
34
- } else if (time instanceof Date) {
35
- return clearDate(time).getTime();
36
- } else {
37
- return NaN;
38
- }
39
- };
40
-
41
- // remove the first element that satisfies `pred` from arr
42
- // return a new array if modification occurs
43
- // return the original array otherwise
44
- const removeFromArray = function(arr, pred) {
45
- const idx = typeof pred === 'function' ? arrayFindIndex(arr, pred) : arr.indexOf(pred);
46
- return idx >= 0 ? [...arr.slice(0, idx), ...arr.slice(idx + 1)] : arr;
47
- };
48
- export default {
49
- props: {
50
- disabledDate: {},
51
- value: {},
52
- selectionMode: {
53
- default: 'month'
54
- },
55
- minDate: {},
56
-
57
- maxDate: {},
58
- defaultValue: {
59
- validator(val) {
60
- // null or valid Date Object
61
- return val === null || isDate(val) || (Array.isArray(val) && val.every(isDate));
62
- }
63
- },
64
- date: {},
65
- rangeState: {
66
- default() {
67
- return {
68
- endDate: null,
69
- selecting: false
70
- };
71
- }
72
- }
73
- },
74
-
75
- mixins: [Locale],
76
-
77
- watch: {
78
- 'rangeState.endDate'(newVal) {
79
- this.markRange(this.minDate, newVal);
80
- },
81
-
82
- minDate(newVal, oldVal) {
83
- if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {
84
- this.markRange(this.minDate, this.maxDate);
85
- }
86
- },
87
-
88
- maxDate(newVal, oldVal) {
89
- if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {
90
- this.markRange(this.minDate, this.maxDate);
91
- }
92
- }
93
- },
94
-
95
- data() {
96
- return {
97
- months: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
98
- tableRows: [ [], [], [] ],
99
- lastRow: null,
100
- lastColumn: null
101
- };
102
- },
103
-
104
- methods: {
105
- cellMatchesDate(cell, date) {
106
- const value = new Date(date);
107
- return this.date.getFullYear() === value.getFullYear() && Number(cell.text) === value.getMonth();
108
- },
109
- getCellStyle(cell) {
110
- const style = {};
111
- const year = this.date.getFullYear();
112
- const today = new Date();
113
- const month = cell.text;
114
- const defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];
115
- style.disabled = typeof this.disabledDate === 'function'
116
- ? datesInMonth(year, month).every(this.disabledDate)
117
- : false;
118
- style.current = arrayFindIndex(coerceTruthyValueToArray(this.value), date => date.getFullYear() === year && date.getMonth() === month) >= 0;
119
- style.today = today.getFullYear() === year && today.getMonth() === month;
120
- style.default = defaultValue.some(date => this.cellMatchesDate(cell, date));
121
-
122
- if (cell.inRange) {
123
- style['in-range'] = true;
124
-
125
- if (cell.start) {
126
- style['start-date'] = true;
127
- }
128
-
129
- if (cell.end) {
130
- style['end-date'] = true;
131
- }
132
- }
133
- return style;
134
- },
135
- getMonthOfCell(month) {
136
- const year = this.date.getFullYear();
137
- return new Date(year, month, 1);
138
- },
139
- markRange(minDate, maxDate) {
140
- minDate = getMonthTimestamp(minDate);
141
- maxDate = getMonthTimestamp(maxDate) || minDate;
142
- [minDate, maxDate] = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];
143
- const rows = this.rows;
144
- for (let i = 0, k = rows.length; i < k; i++) {
145
- const row = rows[i];
146
- for (let j = 0, l = row.length; j < l; j++) {
147
-
148
- const cell = row[j];
149
- const index = i * 4 + j;
150
- const time = new Date(this.date.getFullYear(), index).getTime();
151
-
152
- cell.inRange = minDate && time >= minDate && time <= maxDate;
153
- cell.start = minDate && time === minDate;
154
- cell.end = maxDate && time === maxDate;
155
- }
156
- }
157
- },
158
- handleMouseMove(event) {
159
- if (!this.rangeState.selecting) return;
160
-
161
- let target = event.target;
162
- if (target.tagName === 'A') {
163
- target = target.parentNode.parentNode;
164
- }
165
- if (target.tagName === 'DIV') {
166
- target = target.parentNode;
167
- }
168
- if (target.tagName !== 'TD') return;
169
-
170
- const row = target.parentNode.rowIndex;
171
- const column = target.cellIndex;
172
- // can not select disabled date
173
- if (this.rows[row][column].disabled) return;
174
-
175
- // only update rangeState when mouse moves to a new cell
176
- // this avoids frequent Date object creation and improves performance
177
- if (row !== this.lastRow || column !== this.lastColumn) {
178
- this.lastRow = row;
179
- this.lastColumn = column;
180
- this.$emit('changerange', {
181
- minDate: this.minDate,
182
- maxDate: this.maxDate,
183
- rangeState: {
184
- selecting: true,
185
- endDate: this.getMonthOfCell(row * 4 + column)
186
- }
187
- });
188
- }
189
- },
190
- handleMonthTableClick(event) {
191
- let target = event.target;
192
- if (target.tagName === 'A') {
193
- target = target.parentNode.parentNode;
194
- }
195
- if (target.tagName === 'DIV') {
196
- target = target.parentNode;
197
- }
198
- if (target.tagName !== 'TD') return;
199
- if (hasClass(target, 'disabled')) return;
200
- const column = target.cellIndex;
201
- const row = target.parentNode.rowIndex;
202
- const month = row * 4 + column;
203
- const newDate = this.getMonthOfCell(month);
204
- if (this.selectionMode === 'range') {
205
- if (!this.rangeState.selecting) {
206
- this.$emit('pick', {minDate: newDate, maxDate: null});
207
- this.rangeState.selecting = true;
208
- } else {
209
- if (newDate >= this.minDate) {
210
- this.$emit('pick', {minDate: this.minDate, maxDate: newDate});
211
- } else {
212
- this.$emit('pick', {minDate: newDate, maxDate: this.minDate});
213
- }
214
- this.rangeState.selecting = false;
215
- }
216
- } else if (this.selectionMode === 'months') {
217
- const value = this.value || [];
218
- const year = this.date.getFullYear();
219
- const newValue = arrayFindIndex(value, date => date.getFullYear() === year && date.getMonth() === month) >= 0
220
- ? removeFromArray(value, date => date.getTime() === newDate.getTime())
221
- : [...value, newDate];
222
- this.$emit('pick', newValue);
223
- } else {
224
- this.$emit('pick', month);
225
- }
226
- }
227
- },
228
-
229
- computed: {
230
- rows() {
231
- // TODO: refactory rows / getCellClasses
232
- const rows = this.tableRows;
233
- const disabledDate = this.disabledDate;
234
- const selectedDate = [];
235
- const now = getMonthTimestamp(new Date());
236
-
237
- for (let i = 0; i < 3; i++) {
238
- const row = rows[i];
239
- for (let j = 0; j < 4; j++) {
240
- let cell = row[j];
241
- if (!cell) {
242
- cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };
243
- }
244
-
245
- cell.type = 'normal';
246
-
247
- const index = i * 4 + j;
248
- const time = new Date(this.date.getFullYear(), index).getTime();
249
- cell.inRange = time >= getMonthTimestamp(this.minDate) && time <= getMonthTimestamp(this.maxDate);
250
- cell.start = this.minDate && time === getMonthTimestamp(this.minDate);
251
- cell.end = this.maxDate && time === getMonthTimestamp(this.maxDate);
252
- const isToday = time === now;
253
-
254
- if (isToday) {
255
- cell.type = 'today';
256
- }
257
- cell.text = index;
258
- let cellDate = new Date(time);
259
- cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
260
- cell.selected = arrayFind(selectedDate, date => date.getTime() === cellDate.getTime());
261
-
262
- this.$set(row, j, cell);
263
- }
264
- }
265
- return rows;
266
- }
267
- }
268
- };
269
- </script>