element-sim 1.0.0 → 1.0.2

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 (654) hide show
  1. package/CHANGELOG.en-US.md +2085 -2085
  2. package/CHANGELOG.es.md +7 -2093
  3. package/CHANGELOG.fr-FR.md +2085 -2085
  4. package/CHANGELOG.zh-CN.md +2085 -2085
  5. package/LICENSE +21 -21
  6. package/README.md +148 -148
  7. package/lib/autocomplete.js +25 -25
  8. package/lib/calendar.js +12 -12
  9. package/lib/carousel-item.js +4 -4
  10. package/lib/carousel.js +4 -4
  11. package/lib/cascader-panel.js +25 -25
  12. package/lib/cascader.js +34 -34
  13. package/lib/checkbox-button.js +4 -4
  14. package/lib/checkbox-group.js +4 -4
  15. package/lib/checkbox.js +4 -4
  16. package/lib/collapse-item.js +8 -8
  17. package/lib/color-picker.js +21 -21
  18. package/lib/date-picker.js +83 -83
  19. package/lib/descriptions.js +2 -2
  20. package/lib/dialog.js +8 -8
  21. package/lib/directives/repeat-click.js +2 -2
  22. package/lib/drawer.js +6 -6
  23. package/lib/dropdown-item.js +4 -4
  24. package/lib/dropdown-menu.js +4 -4
  25. package/lib/dropdown.js +12 -12
  26. package/lib/{element-ui.common.js → element-SIM.common.js} +547 -547
  27. package/lib/empty.js +4 -4
  28. package/lib/form-item.js +8 -8
  29. package/lib/form.js +4 -4
  30. package/lib/image.js +19 -19
  31. package/lib/index.js +1 -1
  32. package/lib/infinite-scroll.js +4 -4
  33. package/lib/input-number.js +15 -15
  34. package/lib/input.js +10 -10
  35. package/lib/loading.js +8 -8
  36. package/lib/locale/format.js +11 -11
  37. package/lib/locale/index.js +1 -1
  38. package/lib/menu-item.js +6 -6
  39. package/lib/menu.js +31 -31
  40. package/lib/message-box.js +20 -20
  41. package/lib/message.js +6 -6
  42. package/lib/mixins/locale.js +1 -1
  43. package/lib/mixins/migrating.js +21 -21
  44. package/lib/notification.js +6 -6
  45. package/lib/option-group.js +4 -4
  46. package/lib/option.js +6 -6
  47. package/lib/page-header.js +4 -4
  48. package/lib/pagination.js +10 -10
  49. package/lib/popconfirm.js +8 -8
  50. package/lib/popover.js +8 -8
  51. package/lib/radio-button.js +4 -4
  52. package/lib/radio-group.js +4 -4
  53. package/lib/radio.js +4 -4
  54. package/lib/rate.js +8 -8
  55. package/lib/result.js +8 -8
  56. package/lib/scrollbar.js +8 -8
  57. package/lib/select.js +37 -37
  58. package/lib/slider.js +15 -15
  59. package/lib/statistic.js +4 -4
  60. package/lib/steps.js +4 -4
  61. package/lib/submenu.js +6 -6
  62. package/lib/switch.js +8 -8
  63. package/lib/table-column.js +8 -8
  64. package/lib/table.js +41 -41
  65. package/lib/tabs.js +6 -6
  66. package/lib/theme-chalk/autocomplete.css +1 -1
  67. package/lib/theme-chalk/cascader.css +1 -1
  68. package/lib/theme-chalk/date-picker.css +1 -1
  69. package/lib/theme-chalk/index.css +1 -1
  70. package/lib/theme-chalk/input-number.css +1 -1
  71. package/lib/theme-chalk/input.css +1 -1
  72. package/lib/theme-chalk/message-box.css +1 -1
  73. package/lib/theme-chalk/pagination.css +1 -1
  74. package/lib/theme-chalk/select.css +1 -1
  75. package/lib/theme-chalk/slider.css +1 -1
  76. package/lib/theme-chalk/time-picker.css +1 -1
  77. package/lib/theme-chalk/time-select.css +1 -1
  78. package/lib/theme-chalk/transfer.css +1 -1
  79. package/lib/time-picker.js +42 -42
  80. package/lib/time-select.js +25 -25
  81. package/lib/tooltip.js +6 -6
  82. package/lib/transfer.js +23 -23
  83. package/lib/transitions/collapse-transition.js +1 -1
  84. package/lib/tree.js +23 -23
  85. package/lib/upload.js +11 -11
  86. package/lib/utils/after-leave.js +7 -7
  87. package/lib/utils/aria-dialog.js +16 -16
  88. package/lib/utils/aria-utils.js +25 -25
  89. package/lib/utils/clickoutside.js +8 -8
  90. package/lib/utils/date-util.js +2 -2
  91. package/lib/utils/date.js +37 -37
  92. package/lib/utils/lodash.js +9292 -9292
  93. package/lib/utils/popper.js +321 -321
  94. package/lib/utils/popup/index.js +2 -2
  95. package/lib/utils/popup/popup-manager.js +1 -1
  96. package/lib/utils/types.js +3 -3
  97. package/lib/utils/util.js +1 -1
  98. package/lib/utils/vdom.js +1 -1
  99. package/lib/utils/vue-popper.js +8 -8
  100. package/package.json +151 -151
  101. package/packages/alert/index.js +8 -8
  102. package/packages/alert/src/main.vue +94 -94
  103. package/packages/aside/index.js +8 -8
  104. package/packages/aside/src/main.vue +20 -20
  105. package/packages/autocomplete/index.js +8 -8
  106. package/packages/autocomplete/src/autocomplete-suggestions.vue +76 -76
  107. package/packages/autocomplete/src/autocomplete.vue +285 -285
  108. package/packages/avatar/index.js +8 -8
  109. package/packages/avatar/src/main.vue +107 -107
  110. package/packages/backtop/index.js +8 -8
  111. package/packages/backtop/src/main.vue +110 -110
  112. package/packages/badge/index.js +8 -8
  113. package/packages/badge/src/main.vue +53 -53
  114. package/packages/breadcrumb/index.js +8 -8
  115. package/packages/breadcrumb/src/breadcrumb-item.vue +41 -41
  116. package/packages/breadcrumb/src/breadcrumb.vue +34 -34
  117. package/packages/breadcrumb-item/index.js +8 -8
  118. package/packages/button/index.js +8 -8
  119. package/packages/button/src/button-group.vue +10 -10
  120. package/packages/button/src/button.vue +78 -78
  121. package/packages/button-group/index.js +8 -8
  122. package/packages/calendar/index.js +8 -8
  123. package/packages/calendar/src/date-table.vue +200 -200
  124. package/packages/calendar/src/main.vue +280 -280
  125. package/packages/card/index.js +8 -8
  126. package/packages/card/src/main.vue +23 -23
  127. package/packages/carousel/index.js +8 -8
  128. package/packages/carousel/src/item.vue +138 -138
  129. package/packages/carousel/src/main.vue +315 -315
  130. package/packages/carousel-item/index.js +8 -8
  131. package/packages/cascader/index.js +8 -8
  132. package/packages/cascader/src/cascader.vue +663 -663
  133. package/packages/cascader-panel/index.js +8 -8
  134. package/packages/cascader-panel/src/cascader-menu.vue +138 -138
  135. package/packages/cascader-panel/src/cascader-node.vue +246 -246
  136. package/packages/cascader-panel/src/cascader-panel.vue +391 -391
  137. package/packages/cascader-panel/src/node.js +166 -166
  138. package/packages/cascader-panel/src/store.js +58 -58
  139. package/packages/checkbox/index.js +8 -8
  140. package/packages/checkbox/src/checkbox-button.vue +199 -199
  141. package/packages/checkbox/src/checkbox-group.vue +48 -48
  142. package/packages/checkbox/src/checkbox.vue +222 -222
  143. package/packages/checkbox-button/index.js +8 -8
  144. package/packages/checkbox-group/index.js +8 -8
  145. package/packages/col/index.js +9 -9
  146. package/packages/col/src/col.js +71 -71
  147. package/packages/collapse/index.js +9 -9
  148. package/packages/collapse/src/collapse-item.vue +114 -114
  149. package/packages/collapse/src/collapse.vue +73 -73
  150. package/packages/collapse-item/index.js +8 -8
  151. package/packages/color-picker/index.js +8 -8
  152. package/packages/color-picker/src/color.js +317 -317
  153. package/packages/color-picker/src/components/alpha-slider.vue +132 -132
  154. package/packages/color-picker/src/components/hue-slider.vue +123 -123
  155. package/packages/color-picker/src/components/picker-dropdown.vue +121 -121
  156. package/packages/color-picker/src/components/predefine.vue +60 -60
  157. package/packages/color-picker/src/components/sv-panel.vue +100 -100
  158. package/packages/color-picker/src/draggable.js +36 -36
  159. package/packages/color-picker/src/main.vue +188 -188
  160. package/packages/container/index.js +8 -8
  161. package/packages/container/src/main.vue +33 -33
  162. package/packages/date-picker/index.js +8 -8
  163. package/packages/date-picker/src/basic/date-table.vue +441 -441
  164. package/packages/date-picker/src/basic/month-table.vue +269 -269
  165. package/packages/date-picker/src/basic/time-spinner.vue +304 -304
  166. package/packages/date-picker/src/basic/year-table.vue +111 -111
  167. package/packages/date-picker/src/panel/date-range.vue +680 -680
  168. package/packages/date-picker/src/panel/date.vue +609 -609
  169. package/packages/date-picker/src/panel/month-range.vue +289 -289
  170. package/packages/date-picker/src/panel/time-range.vue +248 -248
  171. package/packages/date-picker/src/panel/time-select.vue +178 -178
  172. package/packages/date-picker/src/panel/time.vue +186 -186
  173. package/packages/date-picker/src/picker/date-picker.js +43 -43
  174. package/packages/date-picker/src/picker/time-picker.js +39 -39
  175. package/packages/date-picker/src/picker/time-select.js +21 -21
  176. package/packages/date-picker/src/picker.vue +956 -956
  177. package/packages/descriptions/index.js +8 -8
  178. package/packages/descriptions/src/descriptions-item.js +30 -30
  179. package/packages/descriptions/src/descriptions-row.js +116 -116
  180. package/packages/descriptions/src/index.js +180 -180
  181. package/packages/descriptions-item/index.js +8 -8
  182. package/packages/dialog/index.js +8 -8
  183. package/packages/dialog/src/component.vue +212 -212
  184. package/packages/divider/index.js +8 -8
  185. package/packages/divider/src/main.vue +37 -37
  186. package/packages/drawer/index.js +8 -8
  187. package/packages/drawer/src/main.vue +205 -205
  188. package/packages/dropdown/index.js +8 -8
  189. package/packages/dropdown/src/dropdown-item.vue +37 -37
  190. package/packages/dropdown/src/dropdown-menu.vue +63 -63
  191. package/packages/dropdown/src/dropdown.vue +293 -293
  192. package/packages/dropdown-item/index.js +8 -8
  193. package/packages/dropdown-menu/index.js +8 -8
  194. package/packages/empty/index.js +7 -7
  195. package/packages/empty/src/img-empty.vue +132 -132
  196. package/packages/empty/src/index.vue +50 -50
  197. package/packages/footer/index.js +8 -8
  198. package/packages/footer/src/main.vue +20 -20
  199. package/packages/form/index.js +8 -8
  200. package/packages/form/src/form-item.vue +324 -324
  201. package/packages/form/src/form.vue +182 -182
  202. package/packages/form/src/label-wrap.vue +78 -78
  203. package/packages/form-item/index.js +8 -8
  204. package/packages/header/index.js +8 -8
  205. package/packages/header/src/main.vue +20 -20
  206. package/packages/icon/index.js +8 -8
  207. package/packages/icon/src/icon.vue +13 -13
  208. package/packages/image/index.js +8 -8
  209. package/packages/image/src/image-viewer.vue +330 -330
  210. package/packages/image/src/main.vue +249 -249
  211. package/packages/infinite-scroll/index.js +8 -8
  212. package/packages/infinite-scroll/src/main.js +150 -150
  213. package/packages/input/index.js +8 -8
  214. package/packages/input/src/calcTextareaHeight.js +104 -104
  215. package/packages/input/src/input.vue +440 -440
  216. package/packages/input-number/index.js +8 -8
  217. package/packages/input-number/src/input-number.vue +283 -283
  218. package/packages/link/index.js +8 -8
  219. package/packages/link/src/main.vue +53 -53
  220. package/packages/loading/index.js +11 -11
  221. package/packages/loading/src/directive.js +133 -133
  222. package/packages/loading/src/index.js +106 -106
  223. package/packages/loading/src/loading.vue +41 -41
  224. package/packages/main/index.js +8 -8
  225. package/packages/main/src/main.vue +12 -12
  226. package/packages/menu/index.js +8 -8
  227. package/packages/menu/src/menu-item-group.vue +45 -45
  228. package/packages/menu/src/menu-item.vue +112 -112
  229. package/packages/menu/src/menu-mixin.js +44 -44
  230. package/packages/menu/src/menu.vue +325 -325
  231. package/packages/menu/src/submenu.vue +349 -349
  232. package/packages/menu-item/index.js +8 -8
  233. package/packages/menu-item-group/index.js +8 -8
  234. package/packages/message/index.js +2 -2
  235. package/packages/message/src/main.js +91 -91
  236. package/packages/message/src/main.vue +117 -117
  237. package/packages/message-box/index.js +2 -2
  238. package/packages/message-box/src/main.js +216 -216
  239. package/packages/message-box/src/main.vue +332 -332
  240. package/packages/notification/index.js +2 -2
  241. package/packages/notification/src/main.js +94 -94
  242. package/packages/notification/src/main.vue +152 -152
  243. package/packages/option/index.js +8 -8
  244. package/packages/option-group/index.js +8 -8
  245. package/packages/page-header/index.js +8 -8
  246. package/packages/page-header/src/main.vue +30 -30
  247. package/packages/pagination/index.js +8 -8
  248. package/packages/pagination/src/pager.vue +163 -163
  249. package/packages/pagination/src/pagination.js +386 -386
  250. package/packages/popconfirm/index.js +8 -8
  251. package/packages/popconfirm/src/main.vue +104 -104
  252. package/packages/popover/index.js +14 -14
  253. package/packages/popover/src/directive.js +20 -20
  254. package/packages/popover/src/main.vue +237 -237
  255. package/packages/progress/index.js +8 -8
  256. package/packages/progress/src/progress.vue +235 -235
  257. package/packages/radio/index.js +8 -8
  258. package/packages/radio/src/radio-button.vue +115 -115
  259. package/packages/radio/src/radio-group.vue +113 -113
  260. package/packages/radio/src/radio.vue +134 -134
  261. package/packages/radio-button/index.js +8 -8
  262. package/packages/radio-group/index.js +8 -8
  263. package/packages/rate/index.js +8 -8
  264. package/packages/rate/src/main.vue +348 -348
  265. package/packages/result/index.js +8 -8
  266. package/packages/result/src/icon-error.vue +13 -13
  267. package/packages/result/src/icon-info.vue +13 -13
  268. package/packages/result/src/icon-success.vue +13 -13
  269. package/packages/result/src/icon-warning.vue +13 -13
  270. package/packages/result/src/index.vue +65 -65
  271. package/packages/row/index.js +9 -9
  272. package/packages/row/src/row.js +44 -44
  273. package/packages/scrollbar/index.js +8 -8
  274. package/packages/scrollbar/src/bar.js +92 -92
  275. package/packages/scrollbar/src/main.js +130 -130
  276. package/packages/scrollbar/src/util.js +34 -34
  277. package/packages/select/index.js +8 -8
  278. package/packages/select/src/navigation-mixin.js +54 -54
  279. package/packages/select/src/option-group.vue +60 -60
  280. package/packages/select/src/option.vue +168 -168
  281. package/packages/select/src/select-dropdown.vue +74 -74
  282. package/packages/select/src/select.vue +900 -900
  283. package/packages/skeleton/index.js +8 -8
  284. package/packages/skeleton/src/img-placeholder.vue +16 -16
  285. package/packages/skeleton/src/index.vue +76 -76
  286. package/packages/skeleton/src/item.vue +21 -21
  287. package/packages/skeleton-item/index.js +8 -8
  288. package/packages/slider/index.js +8 -8
  289. package/packages/slider/src/button.vue +238 -238
  290. package/packages/slider/src/main.vue +427 -427
  291. package/packages/slider/src/marker.js +18 -18
  292. package/packages/spinner/index.js +8 -8
  293. package/packages/spinner/src/spinner.vue +27 -27
  294. package/packages/statistic/index.js +8 -8
  295. package/packages/statistic/src/main.vue +204 -204
  296. package/packages/step/index.js +8 -8
  297. package/packages/steps/README.md +69 -69
  298. package/packages/steps/index.js +8 -8
  299. package/packages/steps/src/step.vue +184 -184
  300. package/packages/steps/src/steps.vue +68 -68
  301. package/packages/submenu/index.js +8 -8
  302. package/packages/switch/index.js +9 -9
  303. package/packages/switch/src/component.vue +174 -174
  304. package/packages/tab-pane/index.js +8 -8
  305. package/packages/table/index.js +8 -8
  306. package/packages/table/src/config.js +124 -124
  307. package/packages/table/src/dropdown.js +28 -28
  308. package/packages/table/src/filter-panel.vue +194 -194
  309. package/packages/table/src/layout-observer.js +68 -68
  310. package/packages/table/src/store/current.js +76 -76
  311. package/packages/table/src/store/expand.js +65 -65
  312. package/packages/table/src/store/helper.js +41 -41
  313. package/packages/table/src/store/index.js +147 -147
  314. package/packages/table/src/store/tree.js +209 -209
  315. package/packages/table/src/store/watcher.js +381 -381
  316. package/packages/table/src/table-body.js +469 -469
  317. package/packages/table/src/table-column.js +319 -319
  318. package/packages/table/src/table-footer.js +153 -153
  319. package/packages/table/src/table-header.js +511 -511
  320. package/packages/table/src/table-layout.js +249 -249
  321. package/packages/table/src/table-row.js +101 -101
  322. package/packages/table/src/table.vue +712 -712
  323. package/packages/table/src/util.js +273 -273
  324. package/packages/table-column/index.js +8 -8
  325. package/packages/tabs/index.js +8 -8
  326. package/packages/tabs/src/tab-bar.vue +57 -57
  327. package/packages/tabs/src/tab-nav.vue +294 -294
  328. package/packages/tabs/src/tab-pane.vue +56 -56
  329. package/packages/tabs/src/tabs.vue +191 -191
  330. package/packages/tag/index.js +8 -8
  331. package/packages/tag/src/tag.vue +58 -58
  332. package/packages/theme-chalk/README.md +33 -33
  333. package/packages/theme-chalk/lib/autocomplete.css +1 -1
  334. package/packages/theme-chalk/lib/cascader.css +1 -1
  335. package/packages/theme-chalk/lib/date-picker.css +1 -1
  336. package/packages/theme-chalk/lib/index.css +1 -1
  337. package/packages/theme-chalk/lib/input-number.css +1 -1
  338. package/packages/theme-chalk/lib/input.css +1 -1
  339. package/packages/theme-chalk/lib/message-box.css +1 -1
  340. package/packages/theme-chalk/lib/pagination.css +1 -1
  341. package/packages/theme-chalk/lib/select.css +1 -1
  342. package/packages/theme-chalk/lib/slider.css +1 -1
  343. package/packages/theme-chalk/lib/time-picker.css +1 -1
  344. package/packages/theme-chalk/lib/time-select.css +1 -1
  345. package/packages/theme-chalk/lib/transfer.css +1 -1
  346. package/packages/theme-chalk/package.json +35 -35
  347. package/packages/theme-chalk/src/alert.scss +147 -147
  348. package/packages/theme-chalk/src/aside.scss +7 -7
  349. package/packages/theme-chalk/src/autocomplete.scss +80 -80
  350. package/packages/theme-chalk/src/avatar.scss +51 -51
  351. package/packages/theme-chalk/src/backtop.scss +22 -22
  352. package/packages/theme-chalk/src/badge.scss +57 -57
  353. package/packages/theme-chalk/src/base.scss +2 -2
  354. package/packages/theme-chalk/src/breadcrumb.scss +55 -55
  355. package/packages/theme-chalk/src/button.scss +272 -262
  356. package/packages/theme-chalk/src/calendar.scss +79 -79
  357. package/packages/theme-chalk/src/card.scss +32 -32
  358. package/packages/theme-chalk/src/carousel-item.scss +49 -49
  359. package/packages/theme-chalk/src/carousel.scss +161 -161
  360. package/packages/theme-chalk/src/cascader-panel.scss +120 -120
  361. package/packages/theme-chalk/src/cascader.scss +182 -182
  362. package/packages/theme-chalk/src/checkbox.scss +359 -359
  363. package/packages/theme-chalk/src/col.scss +155 -155
  364. package/packages/theme-chalk/src/collapse.scss +63 -63
  365. package/packages/theme-chalk/src/color-picker.scss +384 -384
  366. package/packages/theme-chalk/src/common/popup.scss +42 -42
  367. package/packages/theme-chalk/src/common/transition.scss +98 -98
  368. package/packages/theme-chalk/src/common/var.scss +1030 -1028
  369. package/packages/theme-chalk/src/container.scss +14 -14
  370. package/packages/theme-chalk/src/date-picker/date-picker.scss +97 -97
  371. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +101 -101
  372. package/packages/theme-chalk/src/date-picker/date-table.scss +151 -151
  373. package/packages/theme-chalk/src/date-picker/month-table.scss +82 -82
  374. package/packages/theme-chalk/src/date-picker/picker-panel.scss +117 -117
  375. package/packages/theme-chalk/src/date-picker/picker.scss +197 -197
  376. package/packages/theme-chalk/src/date-picker/time-picker.scss +85 -85
  377. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +31 -31
  378. package/packages/theme-chalk/src/date-picker/time-spinner.scss +110 -110
  379. package/packages/theme-chalk/src/date-picker/year-table.scss +51 -51
  380. package/packages/theme-chalk/src/date-picker.scss +11 -11
  381. package/packages/theme-chalk/src/descriptions-item.scss +42 -42
  382. package/packages/theme-chalk/src/descriptions.scss +111 -111
  383. package/packages/theme-chalk/src/dialog.scss +123 -123
  384. package/packages/theme-chalk/src/display.scss +12 -12
  385. package/packages/theme-chalk/src/divider.scss +46 -46
  386. package/packages/theme-chalk/src/drawer.scss +219 -219
  387. package/packages/theme-chalk/src/dropdown.scss +182 -182
  388. package/packages/theme-chalk/src/empty.scss +45 -45
  389. package/packages/theme-chalk/src/footer.scss +8 -8
  390. package/packages/theme-chalk/src/form.scss +167 -167
  391. package/packages/theme-chalk/src/header.scss +8 -8
  392. package/packages/theme-chalk/src/icon.scss +1167 -1167
  393. package/packages/theme-chalk/src/image.scss +179 -179
  394. package/packages/theme-chalk/src/index.scss +87 -87
  395. package/packages/theme-chalk/src/input-number.scss +180 -180
  396. package/packages/theme-chalk/src/input.scss +360 -360
  397. package/packages/theme-chalk/src/link.scss +81 -81
  398. package/packages/theme-chalk/src/loading.scss +96 -96
  399. package/packages/theme-chalk/src/main.scss +12 -12
  400. package/packages/theme-chalk/src/menu.scss +289 -289
  401. package/packages/theme-chalk/src/message-box.scss +226 -226
  402. package/packages/theme-chalk/src/message.scss +120 -120
  403. package/packages/theme-chalk/src/mixins/_button.scss +81 -81
  404. package/packages/theme-chalk/src/mixins/config.scss +4 -4
  405. package/packages/theme-chalk/src/mixins/function.scss +44 -44
  406. package/packages/theme-chalk/src/mixins/mixins.scss +190 -190
  407. package/packages/theme-chalk/src/mixins/utils.scss +38 -38
  408. package/packages/theme-chalk/src/notification.scss +99 -99
  409. package/packages/theme-chalk/src/option-group.scss +42 -42
  410. package/packages/theme-chalk/src/option.scss +36 -36
  411. package/packages/theme-chalk/src/page-header.scss +41 -41
  412. package/packages/theme-chalk/src/pagination.scss +295 -295
  413. package/packages/theme-chalk/src/popconfirm.scss +16 -16
  414. package/packages/theme-chalk/src/popover.scss +40 -40
  415. package/packages/theme-chalk/src/popper.scss +100 -100
  416. package/packages/theme-chalk/src/progress.scss +141 -141
  417. package/packages/theme-chalk/src/radio-button.scss +113 -113
  418. package/packages/theme-chalk/src/radio-group.scss +9 -9
  419. package/packages/theme-chalk/src/radio.scss +199 -199
  420. package/packages/theme-chalk/src/rate.scss +49 -49
  421. package/packages/theme-chalk/src/reset.scss +79 -79
  422. package/packages/theme-chalk/src/result.scss +61 -61
  423. package/packages/theme-chalk/src/row.scss +43 -43
  424. package/packages/theme-chalk/src/scrollbar.scss +72 -72
  425. package/packages/theme-chalk/src/select-dropdown.scss +62 -62
  426. package/packages/theme-chalk/src/select.scss +152 -152
  427. package/packages/theme-chalk/src/skeleton-item.scss +84 -84
  428. package/packages/theme-chalk/src/skeleton.scss +40 -40
  429. package/packages/theme-chalk/src/slider.scss +250 -250
  430. package/packages/theme-chalk/src/spinner.scss +44 -44
  431. package/packages/theme-chalk/src/statistic.scss +38 -38
  432. package/packages/theme-chalk/src/step.scss +317 -317
  433. package/packages/theme-chalk/src/steps.scss +20 -20
  434. package/packages/theme-chalk/src/switch.scss +116 -116
  435. package/packages/theme-chalk/src/table-column.scss +96 -96
  436. package/packages/theme-chalk/src/table.scss +564 -564
  437. package/packages/theme-chalk/src/tabs.scss +602 -602
  438. package/packages/theme-chalk/src/tag.scss +163 -163
  439. package/packages/theme-chalk/src/time-picker.scss +8 -8
  440. package/packages/theme-chalk/src/time-select.scss +37 -37
  441. package/packages/theme-chalk/src/timeline-item.scss +86 -86
  442. package/packages/theme-chalk/src/timeline.scss +14 -14
  443. package/packages/theme-chalk/src/tooltip.scss +141 -141
  444. package/packages/theme-chalk/src/transfer.scss +227 -227
  445. package/packages/theme-chalk/src/tree.scss +123 -123
  446. package/packages/theme-chalk/src/upload.scss +603 -603
  447. package/packages/time-picker/index.js +8 -8
  448. package/packages/time-select/index.js +8 -8
  449. package/packages/timeline/index.js +8 -8
  450. package/packages/timeline/src/item.vue +73 -73
  451. package/packages/timeline/src/main.vue +33 -33
  452. package/packages/timeline-item/index.js +8 -8
  453. package/packages/tooltip/index.js +8 -8
  454. package/packages/tooltip/src/main.js +242 -242
  455. package/packages/transfer/index.js +8 -8
  456. package/packages/transfer/src/main.vue +231 -231
  457. package/packages/transfer/src/transfer-panel.vue +251 -251
  458. package/packages/tree/index.js +8 -8
  459. package/packages/tree/src/model/node.js +484 -484
  460. package/packages/tree/src/model/tree-store.js +340 -340
  461. package/packages/tree/src/model/util.js +27 -27
  462. package/packages/tree/src/tree-node.vue +279 -279
  463. package/packages/tree/src/tree.vue +496 -496
  464. package/packages/upload/index.js +8 -8
  465. package/packages/upload/src/ajax.js +85 -85
  466. package/packages/upload/src/index.vue +338 -338
  467. package/packages/upload/src/upload-dragger.vue +70 -70
  468. package/packages/upload/src/upload-list.vue +105 -105
  469. package/packages/upload/src/upload.vue +211 -211
  470. package/src/directives/mousewheel.js +18 -18
  471. package/src/directives/repeat-click.js +26 -26
  472. package/src/index.js +261 -261
  473. package/src/locale/format.js +46 -46
  474. package/src/locale/index.js +48 -48
  475. package/src/locale/lang/af-ZA.js +123 -123
  476. package/src/locale/lang/ar.js +122 -122
  477. package/src/locale/lang/az.js +126 -126
  478. package/src/locale/lang/bg.js +123 -123
  479. package/src/locale/lang/bn.js +126 -126
  480. package/src/locale/lang/ca.js +122 -122
  481. package/src/locale/lang/cs-CZ.js +125 -125
  482. package/src/locale/lang/da.js +122 -122
  483. package/src/locale/lang/de.js +124 -124
  484. package/src/locale/lang/ee.js +123 -123
  485. package/src/locale/lang/el.js +123 -123
  486. package/src/locale/lang/en.js +123 -123
  487. package/src/locale/lang/eo.js +123 -123
  488. package/src/locale/lang/es.js +122 -122
  489. package/src/locale/lang/eu.js +123 -123
  490. package/src/locale/lang/fa.js +123 -123
  491. package/src/locale/lang/fi.js +123 -123
  492. package/src/locale/lang/fr.js +122 -122
  493. package/src/locale/lang/he.js +123 -123
  494. package/src/locale/lang/hr.js +123 -123
  495. package/src/locale/lang/hu.js +122 -122
  496. package/src/locale/lang/hy-AM.js +123 -123
  497. package/src/locale/lang/id.js +123 -123
  498. package/src/locale/lang/is.js +124 -124
  499. package/src/locale/lang/it.js +122 -122
  500. package/src/locale/lang/ja.js +123 -123
  501. package/src/locale/lang/kg.js +123 -123
  502. package/src/locale/lang/km.js +123 -123
  503. package/src/locale/lang/ko.js +123 -123
  504. package/src/locale/lang/ku.js +123 -123
  505. package/src/locale/lang/kz.js +123 -123
  506. package/src/locale/lang/lo-LA.js +126 -126
  507. package/src/locale/lang/lt.js +123 -123
  508. package/src/locale/lang/lv.js +123 -123
  509. package/src/locale/lang/mn.js +123 -123
  510. package/src/locale/lang/ms.js +122 -122
  511. package/src/locale/lang/nb-NO.js +122 -122
  512. package/src/locale/lang/nl.js +123 -123
  513. package/src/locale/lang/pl.js +123 -123
  514. package/src/locale/lang/pt-br.js +123 -123
  515. package/src/locale/lang/pt.js +123 -123
  516. package/src/locale/lang/ro.js +123 -123
  517. package/src/locale/lang/ru-RU.js +123 -123
  518. package/src/locale/lang/si.js +123 -123
  519. package/src/locale/lang/sk.js +125 -125
  520. package/src/locale/lang/sl.js +123 -123
  521. package/src/locale/lang/sr-Latn.js +123 -123
  522. package/src/locale/lang/sr.js +123 -123
  523. package/src/locale/lang/sv-SE.js +123 -123
  524. package/src/locale/lang/sw.js +123 -123
  525. package/src/locale/lang/ta.js +122 -122
  526. package/src/locale/lang/th.js +123 -123
  527. package/src/locale/lang/tk.js +123 -123
  528. package/src/locale/lang/tr-TR.js +123 -123
  529. package/src/locale/lang/ua.js +123 -123
  530. package/src/locale/lang/ug-CN.js +123 -123
  531. package/src/locale/lang/uz-UZ.js +123 -123
  532. package/src/locale/lang/vi.js +123 -123
  533. package/src/locale/lang/zh-CN.js +123 -123
  534. package/src/locale/lang/zh-TW.js +123 -123
  535. package/src/mixins/emitter.js +33 -33
  536. package/src/mixins/focus.js +9 -9
  537. package/src/mixins/locale.js +9 -9
  538. package/src/mixins/migrating.js +54 -54
  539. package/src/transitions/collapse-transition.js +77 -77
  540. package/src/utils/after-leave.js +27 -27
  541. package/src/utils/aria-dialog.js +90 -90
  542. package/src/utils/aria-utils.js +122 -122
  543. package/src/utils/clickoutside.js +76 -76
  544. package/src/utils/date-util.js +282 -282
  545. package/src/utils/date.js +368 -368
  546. package/src/utils/dom.js +227 -227
  547. package/src/utils/lodash.js +18075 -18075
  548. package/src/utils/menu/aria-menubar.js +14 -14
  549. package/src/utils/menu/aria-menuitem.js +49 -49
  550. package/src/utils/menu/aria-submenu.js +59 -59
  551. package/src/utils/merge.js +15 -15
  552. package/src/utils/popper.js +1276 -1276
  553. package/src/utils/popup/index.js +218 -218
  554. package/src/utils/popup/popup-manager.js +194 -194
  555. package/src/utils/resize-event.js +36 -36
  556. package/src/utils/scroll-into-view.js +27 -27
  557. package/src/utils/scrollbar-width.js +29 -29
  558. package/src/utils/shared.js +7 -7
  559. package/src/utils/types.js +40 -40
  560. package/src/utils/util.js +245 -245
  561. package/src/utils/vdom.js +5 -5
  562. package/src/utils/vue-popper.js +198 -198
  563. package/types/alert.d.ts +31 -31
  564. package/types/aside.d.ts +7 -7
  565. package/types/autocomplete.d.ts +78 -78
  566. package/types/avatar.d.ts +20 -20
  567. package/types/backtop.d.ts +16 -16
  568. package/types/badge.d.ts +16 -16
  569. package/types/breadcrumb-item.d.ts +10 -10
  570. package/types/breadcrumb.d.ts +10 -10
  571. package/types/button-group.d.ts +4 -4
  572. package/types/button.d.ts +37 -37
  573. package/types/calendar.d.ts +15 -15
  574. package/types/card.d.ts +26 -26
  575. package/types/carousel-item.d.ts +10 -10
  576. package/types/carousel.d.ts +57 -57
  577. package/types/cascader-panel.d.ts +72 -72
  578. package/types/cascader.d.ts +65 -65
  579. package/types/checkbox-button.d.ts +22 -22
  580. package/types/checkbox-group.d.ts +22 -22
  581. package/types/checkbox.d.ts +34 -34
  582. package/types/col.d.ts +46 -46
  583. package/types/collapse-item.d.ts +26 -26
  584. package/types/collapse.d.ts +10 -10
  585. package/types/color-picker.d.ts +21 -21
  586. package/types/component.d.ts +13 -13
  587. package/types/container.d.ts +7 -7
  588. package/types/date-picker.d.ts +124 -124
  589. package/types/descriptions-item.d.ts +37 -37
  590. package/types/descriptions.d.ts +52 -52
  591. package/types/dialog.d.ts +62 -62
  592. package/types/divider.d.ts +12 -12
  593. package/types/drawer.d.ts +63 -63
  594. package/types/dropdown-item.d.ts +16 -16
  595. package/types/dropdown-menu.d.ts +4 -4
  596. package/types/dropdown.d.ts +38 -38
  597. package/types/element-ui.d.ts +381 -381
  598. package/types/empty.d.ts +31 -31
  599. package/types/footer.d.ts +7 -7
  600. package/types/form-item.d.ts +37 -37
  601. package/types/form.d.ts +82 -82
  602. package/types/header.d.ts +7 -7
  603. package/types/icon.d.ts +7 -7
  604. package/types/image.d.ts +43 -43
  605. package/types/index.d.ts +4 -4
  606. package/types/infinite-scroll.d.ts +5 -5
  607. package/types/input-number.d.ts +47 -47
  608. package/types/input.d.ts +107 -107
  609. package/types/link.d.ts +25 -25
  610. package/types/loading.d.ts +62 -62
  611. package/types/main.d.ts +4 -4
  612. package/types/menu-item-group.d.ts +7 -7
  613. package/types/menu-item.d.ts +10 -10
  614. package/types/menu.d.ts +46 -46
  615. package/types/message-box.d.ts +176 -176
  616. package/types/message.d.ts +90 -90
  617. package/types/notification.d.ts +84 -84
  618. package/types/option-group.d.ts +10 -10
  619. package/types/option.d.ts +13 -13
  620. package/types/page-header.d.ts +10 -10
  621. package/types/pagination.d.ts +43 -43
  622. package/types/popconfirm.d.ts +29 -29
  623. package/types/popover.d.ts +71 -71
  624. package/types/progress.d.ts +37 -37
  625. package/types/radio-button.d.ts +16 -16
  626. package/types/radio-group.d.ts +18 -18
  627. package/types/radio.d.ts +19 -19
  628. package/types/rate.d.ts +64 -64
  629. package/types/result.d.ts +33 -33
  630. package/types/row.d.ts +25 -25
  631. package/types/select.d.ts +90 -90
  632. package/types/skeleton-item.d.ts +7 -7
  633. package/types/skeleton.d.ts +33 -33
  634. package/types/slider.d.ts +68 -68
  635. package/types/spinner.d.ts +16 -16
  636. package/types/statistic.d.ts +37 -37
  637. package/types/step.d.ts +34 -34
  638. package/types/steps.d.ts +28 -28
  639. package/types/submenu.d.ts +22 -22
  640. package/types/switch.d.ts +43 -43
  641. package/types/tab-pane.d.ts +19 -19
  642. package/types/table-column.d.ts +117 -117
  643. package/types/table.d.ts +177 -177
  644. package/types/tabs.d.ts +31 -31
  645. package/types/tag.d.ts +28 -28
  646. package/types/time-picker.d.ts +63 -63
  647. package/types/time-select.d.ts +56 -56
  648. package/types/timeline-item.d.ts +20 -20
  649. package/types/timeline.d.ts +6 -6
  650. package/types/tooltip.d.ts +52 -52
  651. package/types/transfer.d.ts +73 -73
  652. package/types/tree.d.ts +266 -266
  653. package/types/upload.d.ts +124 -124
  654. package/web-types.json +4195 -4195
@@ -1,282 +1,282 @@
1
- import fecha from 'element-ui/src/utils/date';
2
- import { t } from 'element-ui/src/locale';
3
-
4
- const weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
5
- const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
6
-
7
- const newArray = function(start, end) {
8
- let result = [];
9
- for (let i = start; i <= end; i++) {
10
- result.push(i);
11
- }
12
- return result;
13
- };
14
-
15
- export const getI18nSettings = () => {
16
- return {
17
- dayNamesShort: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
18
- dayNames: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
19
- monthNamesShort: months.map(month => t(`el.datepicker.months.${ month }`)),
20
- monthNames: months.map((month, index) => t(`el.datepicker.month${ index + 1 }`)),
21
- amPm: ['am', 'pm']
22
- };
23
- };
24
-
25
- export const toDate = function(date) {
26
- return isDate(date) ? new Date(date) : null;
27
- };
28
-
29
- export const isDate = function(date) {
30
- if (date === null || date === undefined) return false;
31
- if (isNaN(new Date(date).getTime())) return false;
32
- if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
33
- return true;
34
- };
35
-
36
- export const isDateObject = function(val) {
37
- return val instanceof Date;
38
- };
39
-
40
- export const formatDate = function(date, format) {
41
- date = toDate(date);
42
- if (!date) return '';
43
- return fecha.format(date, format || 'yyyy-MM-dd', getI18nSettings());
44
- };
45
-
46
- export const parseDate = function(string, format) {
47
- return fecha.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
48
- };
49
-
50
- export const getDayCountOfMonth = function(year, month) {
51
- if (isNaN(+month)) return 31;
52
-
53
- return new Date(year, +month + 1, 0).getDate();
54
- };
55
-
56
- export const getDayCountOfYear = function(year) {
57
- const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
58
- return isLeapYear ? 366 : 365;
59
- };
60
-
61
- export const getFirstDayOfMonth = function(date) {
62
- const temp = new Date(date.getTime());
63
- temp.setDate(1);
64
- return temp.getDay();
65
- };
66
-
67
- // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
68
- // {prev, next} Date should work for Daylight Saving Time
69
- // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
70
- export const prevDate = function(date, amount = 1) {
71
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
72
- };
73
-
74
- export const nextDate = function(date, amount = 1) {
75
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
76
- };
77
-
78
- export const getStartDateOfMonth = function(year, month) {
79
- const result = new Date(year, month, 1);
80
- const day = result.getDay();
81
-
82
- if (day === 0) {
83
- return prevDate(result, 7);
84
- } else {
85
- return prevDate(result, day);
86
- }
87
- };
88
-
89
- export const getWeekNumber = function(src) {
90
- if (!isDate(src)) return null;
91
- const date = new Date(src.getTime());
92
- date.setHours(0, 0, 0, 0);
93
- // Thursday in current week decides the year.
94
- date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
95
- // January 4 is always in week 1.
96
- const week1 = new Date(date.getFullYear(), 0, 4);
97
- // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
98
- // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
99
- return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
100
- };
101
-
102
- export const getRangeHours = function(ranges) {
103
- const hours = [];
104
- let disabledHours = [];
105
-
106
- (ranges || []).forEach(range => {
107
- const value = range.map(date => date.getHours());
108
-
109
- disabledHours = disabledHours.concat(newArray(value[0], value[1]));
110
- });
111
-
112
- if (disabledHours.length) {
113
- for (let i = 0; i < 24; i++) {
114
- hours[i] = disabledHours.indexOf(i) === -1;
115
- }
116
- } else {
117
- for (let i = 0; i < 24; i++) {
118
- hours[i] = false;
119
- }
120
- }
121
-
122
- return hours;
123
- };
124
-
125
- export const getPrevMonthLastDays = (date, amount) => {
126
- if (amount <= 0) return [];
127
- const temp = new Date(date.getTime());
128
- temp.setDate(0);
129
- const lastDay = temp.getDate();
130
- return range(amount).map((_, index) => lastDay - (amount - index - 1));
131
- };
132
-
133
- export const getMonthDays = (date) => {
134
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
135
- const days = temp.getDate();
136
- return range(days).map((_, index) => index + 1);
137
- };
138
-
139
- function setRangeData(arr, start, end, value) {
140
- for (let i = start; i < end; i++) {
141
- arr[i] = value;
142
- }
143
- }
144
-
145
- export const getRangeMinutes = function(ranges, hour) {
146
- const minutes = new Array(60);
147
-
148
- if (ranges.length > 0) {
149
- ranges.forEach(range => {
150
- const start = range[0];
151
- const end = range[1];
152
- const startHour = start.getHours();
153
- const startMinute = start.getMinutes();
154
- const endHour = end.getHours();
155
- const endMinute = end.getMinutes();
156
- if (startHour === hour && endHour !== hour) {
157
- setRangeData(minutes, startMinute, 60, true);
158
- } else if (startHour === hour && endHour === hour) {
159
- setRangeData(minutes, startMinute, endMinute + 1, true);
160
- } else if (startHour !== hour && endHour === hour) {
161
- setRangeData(minutes, 0, endMinute + 1, true);
162
- } else if (startHour < hour && endHour > hour) {
163
- setRangeData(minutes, 0, 60, true);
164
- }
165
- });
166
- } else {
167
- setRangeData(minutes, 0, 60, true);
168
- }
169
- return minutes;
170
- };
171
-
172
- export const range = function(n) {
173
- // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
174
- return Array.apply(null, {length: n}).map((_, n) => n);
175
- };
176
-
177
- export const modifyDate = function(date, y, m, d) {
178
- return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
179
- };
180
-
181
- export const modifyTime = function(date, h, m, s) {
182
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
183
- };
184
-
185
- export const modifyWithTimeString = (date, time) => {
186
- if (date == null || !time) {
187
- return date;
188
- }
189
- time = parseDate(time, 'HH:mm:ss');
190
- return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
191
- };
192
-
193
- export const clearTime = function(date) {
194
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
195
- };
196
-
197
- export const clearMilliseconds = function(date) {
198
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
199
- };
200
-
201
- export const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
202
- // TODO: refactory a more elegant solution
203
- if (ranges.length === 0) return date;
204
- const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
205
- const ndate = normalizeDate(date);
206
- const nranges = ranges.map(range => range.map(normalizeDate));
207
- if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
208
-
209
- let minDate = nranges[0][0];
210
- let maxDate = nranges[0][0];
211
-
212
- nranges.forEach(nrange => {
213
- minDate = new Date(Math.min(nrange[0], minDate));
214
- maxDate = new Date(Math.max(nrange[1], minDate));
215
- });
216
-
217
- const ret = ndate < minDate ? minDate : maxDate;
218
- // preserve Year/Month/Date
219
- return modifyDate(
220
- ret,
221
- date.getFullYear(),
222
- date.getMonth(),
223
- date.getDate()
224
- );
225
- };
226
-
227
- export const timeWithinRange = function(date, selectableRange, format) {
228
- const limitedDate = limitTimeRange(date, selectableRange, format);
229
- return limitedDate.getTime() === date.getTime();
230
- };
231
-
232
- export const changeYearMonthAndClampDate = function(date, year, month) {
233
- // clamp date to the number of days in `year`, `month`
234
- // eg: (2010-1-31, 2010, 2) => 2010-2-28
235
- const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
236
- return modifyDate(date, year, month, monthDate);
237
- };
238
-
239
- export const prevMonth = function(date) {
240
- const year = date.getFullYear();
241
- const month = date.getMonth();
242
- return month === 0
243
- ? changeYearMonthAndClampDate(date, year - 1, 11)
244
- : changeYearMonthAndClampDate(date, year, month - 1);
245
- };
246
-
247
- export const nextMonth = function(date) {
248
- const year = date.getFullYear();
249
- const month = date.getMonth();
250
- return month === 11
251
- ? changeYearMonthAndClampDate(date, year + 1, 0)
252
- : changeYearMonthAndClampDate(date, year, month + 1);
253
- };
254
-
255
- export const prevYear = function(date, amount = 1) {
256
- const year = date.getFullYear();
257
- const month = date.getMonth();
258
- return changeYearMonthAndClampDate(date, year - amount, month);
259
- };
260
-
261
- export const nextYear = function(date, amount = 1) {
262
- const year = date.getFullYear();
263
- const month = date.getMonth();
264
- return changeYearMonthAndClampDate(date, year + amount, month);
265
- };
266
-
267
- export const extractDateFormat = function(format) {
268
- return format
269
- .replace(/\W?m{1,2}|\W?ZZ/g, '')
270
- .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
271
- .trim();
272
- };
273
-
274
- export const extractTimeFormat = function(format) {
275
- return format
276
- .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
277
- .trim();
278
- };
279
-
280
- export const validateRangeInOneMonth = function(start, end) {
281
- return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
282
- };
1
+ import fecha from 'element-sim/src/utils/date';
2
+ import { t } from 'element-sim/src/locale';
3
+
4
+ const weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
5
+ const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
6
+
7
+ const newArray = function(start, end) {
8
+ let result = [];
9
+ for (let i = start; i <= end; i++) {
10
+ result.push(i);
11
+ }
12
+ return result;
13
+ };
14
+
15
+ export const getI18nSettings = () => {
16
+ return {
17
+ dayNamesShort: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
18
+ dayNames: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
19
+ monthNamesShort: months.map(month => t(`el.datepicker.months.${ month }`)),
20
+ monthNames: months.map((month, index) => t(`el.datepicker.month${ index + 1 }`)),
21
+ amPm: ['am', 'pm']
22
+ };
23
+ };
24
+
25
+ export const toDate = function(date) {
26
+ return isDate(date) ? new Date(date) : null;
27
+ };
28
+
29
+ export const isDate = function(date) {
30
+ if (date === null || date === undefined) return false;
31
+ if (isNaN(new Date(date).getTime())) return false;
32
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
33
+ return true;
34
+ };
35
+
36
+ export const isDateObject = function(val) {
37
+ return val instanceof Date;
38
+ };
39
+
40
+ export const formatDate = function(date, format) {
41
+ date = toDate(date);
42
+ if (!date) return '';
43
+ return fecha.format(date, format || 'yyyy-MM-dd', getI18nSettings());
44
+ };
45
+
46
+ export const parseDate = function(string, format) {
47
+ return fecha.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
48
+ };
49
+
50
+ export const getDayCountOfMonth = function(year, month) {
51
+ if (isNaN(+month)) return 31;
52
+
53
+ return new Date(year, +month + 1, 0).getDate();
54
+ };
55
+
56
+ export const getDayCountOfYear = function(year) {
57
+ const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
58
+ return isLeapYear ? 366 : 365;
59
+ };
60
+
61
+ export const getFirstDayOfMonth = function(date) {
62
+ const temp = new Date(date.getTime());
63
+ temp.setDate(1);
64
+ return temp.getDay();
65
+ };
66
+
67
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
68
+ // {prev, next} Date should work for Daylight Saving Time
69
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
70
+ export const prevDate = function(date, amount = 1) {
71
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
72
+ };
73
+
74
+ export const nextDate = function(date, amount = 1) {
75
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
76
+ };
77
+
78
+ export const getStartDateOfMonth = function(year, month) {
79
+ const result = new Date(year, month, 1);
80
+ const day = result.getDay();
81
+
82
+ if (day === 0) {
83
+ return prevDate(result, 7);
84
+ } else {
85
+ return prevDate(result, day);
86
+ }
87
+ };
88
+
89
+ export const getWeekNumber = function(src) {
90
+ if (!isDate(src)) return null;
91
+ const date = new Date(src.getTime());
92
+ date.setHours(0, 0, 0, 0);
93
+ // Thursday in current week decides the year.
94
+ date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
95
+ // January 4 is always in week 1.
96
+ const week1 = new Date(date.getFullYear(), 0, 4);
97
+ // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
98
+ // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
99
+ return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
100
+ };
101
+
102
+ export const getRangeHours = function(ranges) {
103
+ const hours = [];
104
+ let disabledHours = [];
105
+
106
+ (ranges || []).forEach(range => {
107
+ const value = range.map(date => date.getHours());
108
+
109
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
110
+ });
111
+
112
+ if (disabledHours.length) {
113
+ for (let i = 0; i < 24; i++) {
114
+ hours[i] = disabledHours.indexOf(i) === -1;
115
+ }
116
+ } else {
117
+ for (let i = 0; i < 24; i++) {
118
+ hours[i] = false;
119
+ }
120
+ }
121
+
122
+ return hours;
123
+ };
124
+
125
+ export const getPrevMonthLastDays = (date, amount) => {
126
+ if (amount <= 0) return [];
127
+ const temp = new Date(date.getTime());
128
+ temp.setDate(0);
129
+ const lastDay = temp.getDate();
130
+ return range(amount).map((_, index) => lastDay - (amount - index - 1));
131
+ };
132
+
133
+ export const getMonthDays = (date) => {
134
+ const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
135
+ const days = temp.getDate();
136
+ return range(days).map((_, index) => index + 1);
137
+ };
138
+
139
+ function setRangeData(arr, start, end, value) {
140
+ for (let i = start; i < end; i++) {
141
+ arr[i] = value;
142
+ }
143
+ }
144
+
145
+ export const getRangeMinutes = function(ranges, hour) {
146
+ const minutes = new Array(60);
147
+
148
+ if (ranges.length > 0) {
149
+ ranges.forEach(range => {
150
+ const start = range[0];
151
+ const end = range[1];
152
+ const startHour = start.getHours();
153
+ const startMinute = start.getMinutes();
154
+ const endHour = end.getHours();
155
+ const endMinute = end.getMinutes();
156
+ if (startHour === hour && endHour !== hour) {
157
+ setRangeData(minutes, startMinute, 60, true);
158
+ } else if (startHour === hour && endHour === hour) {
159
+ setRangeData(minutes, startMinute, endMinute + 1, true);
160
+ } else if (startHour !== hour && endHour === hour) {
161
+ setRangeData(minutes, 0, endMinute + 1, true);
162
+ } else if (startHour < hour && endHour > hour) {
163
+ setRangeData(minutes, 0, 60, true);
164
+ }
165
+ });
166
+ } else {
167
+ setRangeData(minutes, 0, 60, true);
168
+ }
169
+ return minutes;
170
+ };
171
+
172
+ export const range = function(n) {
173
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
174
+ return Array.apply(null, {length: n}).map((_, n) => n);
175
+ };
176
+
177
+ export const modifyDate = function(date, y, m, d) {
178
+ return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
179
+ };
180
+
181
+ export const modifyTime = function(date, h, m, s) {
182
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
183
+ };
184
+
185
+ export const modifyWithTimeString = (date, time) => {
186
+ if (date == null || !time) {
187
+ return date;
188
+ }
189
+ time = parseDate(time, 'HH:mm:ss');
190
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
191
+ };
192
+
193
+ export const clearTime = function(date) {
194
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
195
+ };
196
+
197
+ export const clearMilliseconds = function(date) {
198
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
199
+ };
200
+
201
+ export const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
202
+ // TODO: refactory a more elegant solution
203
+ if (ranges.length === 0) return date;
204
+ const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
205
+ const ndate = normalizeDate(date);
206
+ const nranges = ranges.map(range => range.map(normalizeDate));
207
+ if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
208
+
209
+ let minDate = nranges[0][0];
210
+ let maxDate = nranges[0][0];
211
+
212
+ nranges.forEach(nrange => {
213
+ minDate = new Date(Math.min(nrange[0], minDate));
214
+ maxDate = new Date(Math.max(nrange[1], minDate));
215
+ });
216
+
217
+ const ret = ndate < minDate ? minDate : maxDate;
218
+ // preserve Year/Month/Date
219
+ return modifyDate(
220
+ ret,
221
+ date.getFullYear(),
222
+ date.getMonth(),
223
+ date.getDate()
224
+ );
225
+ };
226
+
227
+ export const timeWithinRange = function(date, selectableRange, format) {
228
+ const limitedDate = limitTimeRange(date, selectableRange, format);
229
+ return limitedDate.getTime() === date.getTime();
230
+ };
231
+
232
+ export const changeYearMonthAndClampDate = function(date, year, month) {
233
+ // clamp date to the number of days in `year`, `month`
234
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
235
+ const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
236
+ return modifyDate(date, year, month, monthDate);
237
+ };
238
+
239
+ export const prevMonth = function(date) {
240
+ const year = date.getFullYear();
241
+ const month = date.getMonth();
242
+ return month === 0
243
+ ? changeYearMonthAndClampDate(date, year - 1, 11)
244
+ : changeYearMonthAndClampDate(date, year, month - 1);
245
+ };
246
+
247
+ export const nextMonth = function(date) {
248
+ const year = date.getFullYear();
249
+ const month = date.getMonth();
250
+ return month === 11
251
+ ? changeYearMonthAndClampDate(date, year + 1, 0)
252
+ : changeYearMonthAndClampDate(date, year, month + 1);
253
+ };
254
+
255
+ export const prevYear = function(date, amount = 1) {
256
+ const year = date.getFullYear();
257
+ const month = date.getMonth();
258
+ return changeYearMonthAndClampDate(date, year - amount, month);
259
+ };
260
+
261
+ export const nextYear = function(date, amount = 1) {
262
+ const year = date.getFullYear();
263
+ const month = date.getMonth();
264
+ return changeYearMonthAndClampDate(date, year + amount, month);
265
+ };
266
+
267
+ export const extractDateFormat = function(format) {
268
+ return format
269
+ .replace(/\W?m{1,2}|\W?ZZ/g, '')
270
+ .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
271
+ .trim();
272
+ };
273
+
274
+ export const extractTimeFormat = function(format) {
275
+ return format
276
+ .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
277
+ .trim();
278
+ };
279
+
280
+ export const validateRangeInOneMonth = function(start, end) {
281
+ return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
282
+ };