element-sim 1.1.8 → 1.1.10

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 (579) hide show
  1. package/CHANGELOG.en-US.md +2085 -2085
  2. package/CHANGELOG.es.md +2092 -2092
  3. package/CHANGELOG.fr-FR.md +2085 -2085
  4. package/CHANGELOG.zh-CN.md +32 -22
  5. package/LICENSE +21 -21
  6. package/README.md +148 -148
  7. package/lib/cascader-panel.js +2 -2
  8. package/lib/cascader.js +2 -2
  9. package/lib/date-picker.js +5 -5
  10. package/lib/element-sim.common.js +62 -51
  11. package/lib/index.js +1 -1
  12. package/lib/input.js +14 -3
  13. package/lib/locale/format.js +10 -10
  14. package/lib/menu.js +25 -25
  15. package/lib/mixins/migrating.js +20 -20
  16. package/lib/result.js +8 -8
  17. package/lib/theme-chalk/base.css +1 -1
  18. package/lib/theme-chalk/dialog.css +1 -1
  19. package/lib/theme-chalk/drawer.css +1 -1
  20. package/lib/theme-chalk/icon.css +1 -1
  21. package/lib/theme-chalk/index.css +1 -1
  22. package/lib/time-picker.js +5 -5
  23. package/lib/time-select.js +5 -5
  24. package/lib/utils/after-leave.js +7 -7
  25. package/lib/utils/aria-dialog.js +16 -16
  26. package/lib/utils/aria-utils.js +25 -25
  27. package/lib/utils/clickoutside.js +7 -7
  28. package/lib/utils/date.js +37 -37
  29. package/lib/utils/lodash.js +9292 -9292
  30. package/lib/utils/popper.js +321 -321
  31. package/lib/utils/types.js +3 -3
  32. package/lib/utils/vue-popper.js +7 -7
  33. package/package.json +151 -151
  34. package/packages/alert/index.js +8 -8
  35. package/packages/alert/src/main.vue +94 -94
  36. package/packages/aside/index.js +8 -8
  37. package/packages/aside/src/main.vue +20 -20
  38. package/packages/autocomplete/index.js +8 -8
  39. package/packages/autocomplete/src/autocomplete-suggestions.vue +76 -76
  40. package/packages/autocomplete/src/autocomplete.vue +285 -285
  41. package/packages/avatar/index.js +8 -8
  42. package/packages/avatar/src/main.vue +107 -107
  43. package/packages/backtop/index.js +8 -8
  44. package/packages/backtop/src/main.vue +110 -110
  45. package/packages/badge/index.js +8 -8
  46. package/packages/badge/src/main.vue +53 -53
  47. package/packages/breadcrumb/index.js +8 -8
  48. package/packages/breadcrumb/src/breadcrumb-item.vue +41 -41
  49. package/packages/breadcrumb/src/breadcrumb.vue +34 -34
  50. package/packages/breadcrumb-item/index.js +8 -8
  51. package/packages/button/index.js +8 -8
  52. package/packages/button/src/button-group.vue +10 -10
  53. package/packages/button/src/button.vue +78 -78
  54. package/packages/button-group/index.js +8 -8
  55. package/packages/calendar/index.js +8 -8
  56. package/packages/calendar/src/date-table.vue +200 -200
  57. package/packages/calendar/src/main.vue +280 -280
  58. package/packages/card/index.js +8 -8
  59. package/packages/card/src/main.vue +23 -23
  60. package/packages/carousel/index.js +8 -8
  61. package/packages/carousel/src/item.vue +138 -138
  62. package/packages/carousel/src/main.vue +315 -315
  63. package/packages/carousel-item/index.js +8 -8
  64. package/packages/cascader/index.js +8 -8
  65. package/packages/cascader/src/cascader.vue +663 -663
  66. package/packages/cascader-panel/index.js +8 -8
  67. package/packages/cascader-panel/src/cascader-menu.vue +138 -138
  68. package/packages/cascader-panel/src/cascader-node.vue +246 -246
  69. package/packages/cascader-panel/src/cascader-panel.vue +391 -391
  70. package/packages/cascader-panel/src/node.js +166 -166
  71. package/packages/cascader-panel/src/store.js +58 -58
  72. package/packages/checkbox/index.js +8 -8
  73. package/packages/checkbox/src/checkbox-button.vue +199 -199
  74. package/packages/checkbox/src/checkbox-group.vue +48 -48
  75. package/packages/checkbox/src/checkbox.vue +222 -222
  76. package/packages/checkbox-button/index.js +8 -8
  77. package/packages/checkbox-group/index.js +8 -8
  78. package/packages/col/index.js +9 -9
  79. package/packages/col/src/col.js +71 -71
  80. package/packages/collapse/index.js +9 -9
  81. package/packages/collapse/src/collapse-item.vue +114 -114
  82. package/packages/collapse/src/collapse.vue +73 -73
  83. package/packages/collapse-item/index.js +8 -8
  84. package/packages/color-picker/index.js +8 -8
  85. package/packages/color-picker/src/color.js +317 -317
  86. package/packages/color-picker/src/components/alpha-slider.vue +132 -132
  87. package/packages/color-picker/src/components/hue-slider.vue +123 -123
  88. package/packages/color-picker/src/components/picker-dropdown.vue +121 -121
  89. package/packages/color-picker/src/components/predefine.vue +60 -60
  90. package/packages/color-picker/src/components/sv-panel.vue +100 -100
  91. package/packages/color-picker/src/draggable.js +36 -36
  92. package/packages/color-picker/src/main.vue +188 -188
  93. package/packages/container/index.js +8 -8
  94. package/packages/container/src/main.vue +33 -33
  95. package/packages/date-picker/index.js +8 -8
  96. package/packages/date-picker/src/basic/date-table.vue +441 -441
  97. package/packages/date-picker/src/basic/month-table.vue +269 -269
  98. package/packages/date-picker/src/basic/time-spinner.vue +304 -304
  99. package/packages/date-picker/src/basic/year-table.vue +111 -111
  100. package/packages/date-picker/src/panel/date-range.vue +680 -680
  101. package/packages/date-picker/src/panel/date.vue +609 -609
  102. package/packages/date-picker/src/panel/month-range.vue +289 -289
  103. package/packages/date-picker/src/panel/time-range.vue +248 -248
  104. package/packages/date-picker/src/panel/time-select.vue +178 -178
  105. package/packages/date-picker/src/panel/time.vue +186 -186
  106. package/packages/date-picker/src/picker/date-picker.js +43 -43
  107. package/packages/date-picker/src/picker/time-picker.js +39 -39
  108. package/packages/date-picker/src/picker/time-select.js +21 -21
  109. package/packages/date-picker/src/picker.vue +956 -956
  110. package/packages/descriptions/index.js +8 -8
  111. package/packages/descriptions/src/descriptions-item.js +30 -30
  112. package/packages/descriptions/src/descriptions-row.js +116 -116
  113. package/packages/descriptions/src/index.js +180 -180
  114. package/packages/descriptions-item/index.js +8 -8
  115. package/packages/dialog/index.js +8 -8
  116. package/packages/dialog/src/component.vue +212 -212
  117. package/packages/divider/index.js +8 -8
  118. package/packages/divider/src/main.vue +37 -37
  119. package/packages/drawer/index.js +8 -8
  120. package/packages/drawer/src/main.vue +208 -208
  121. package/packages/dropdown/index.js +8 -8
  122. package/packages/dropdown/src/dropdown-item.vue +37 -37
  123. package/packages/dropdown/src/dropdown-menu.vue +63 -63
  124. package/packages/dropdown/src/dropdown.vue +293 -293
  125. package/packages/dropdown-item/index.js +8 -8
  126. package/packages/dropdown-menu/index.js +8 -8
  127. package/packages/empty/index.js +7 -7
  128. package/packages/empty/src/img-empty.vue +132 -132
  129. package/packages/empty/src/index.vue +50 -50
  130. package/packages/footer/index.js +8 -8
  131. package/packages/footer/src/main.vue +20 -20
  132. package/packages/form/index.js +8 -8
  133. package/packages/form/src/form-item.vue +324 -324
  134. package/packages/form/src/form.vue +182 -182
  135. package/packages/form/src/label-wrap.vue +78 -78
  136. package/packages/form-item/index.js +8 -8
  137. package/packages/header/index.js +8 -8
  138. package/packages/header/src/main.vue +20 -20
  139. package/packages/icon/index.js +8 -8
  140. package/packages/icon/src/icon.vue +13 -13
  141. package/packages/image/index.js +8 -8
  142. package/packages/image/src/image-viewer.vue +330 -330
  143. package/packages/image/src/main.vue +249 -249
  144. package/packages/infinite-scroll/index.js +8 -8
  145. package/packages/infinite-scroll/src/main.js +150 -150
  146. package/packages/input/index.js +8 -8
  147. package/packages/input/src/calcTextareaHeight.js +104 -104
  148. package/packages/input/src/input.vue +444 -440
  149. package/packages/input-number/index.js +8 -8
  150. package/packages/input-number/src/input-number.vue +283 -283
  151. package/packages/link/index.js +8 -8
  152. package/packages/link/src/main.vue +53 -53
  153. package/packages/loading/index.js +11 -11
  154. package/packages/loading/src/directive.js +133 -133
  155. package/packages/loading/src/index.js +106 -106
  156. package/packages/loading/src/loading.vue +41 -41
  157. package/packages/main/index.js +8 -8
  158. package/packages/main/src/main.vue +12 -12
  159. package/packages/menu/index.js +8 -8
  160. package/packages/menu/src/menu-item-group.vue +45 -45
  161. package/packages/menu/src/menu-item.vue +112 -112
  162. package/packages/menu/src/menu-mixin.js +44 -44
  163. package/packages/menu/src/menu.vue +325 -325
  164. package/packages/menu/src/submenu.vue +349 -349
  165. package/packages/menu-item/index.js +8 -8
  166. package/packages/menu-item-group/index.js +8 -8
  167. package/packages/message/index.js +2 -2
  168. package/packages/message/src/main.js +91 -91
  169. package/packages/message/src/main.vue +117 -117
  170. package/packages/message-box/index.js +2 -2
  171. package/packages/message-box/src/main.js +216 -216
  172. package/packages/message-box/src/main.vue +332 -332
  173. package/packages/notification/index.js +2 -2
  174. package/packages/notification/src/main.js +94 -94
  175. package/packages/notification/src/main.vue +152 -152
  176. package/packages/option/index.js +8 -8
  177. package/packages/option-group/index.js +8 -8
  178. package/packages/page-header/index.js +8 -8
  179. package/packages/page-header/src/main.vue +30 -30
  180. package/packages/pagination/index.js +8 -8
  181. package/packages/pagination/src/pager.vue +163 -163
  182. package/packages/pagination/src/pagination.js +386 -386
  183. package/packages/popconfirm/index.js +8 -8
  184. package/packages/popconfirm/src/main.vue +104 -104
  185. package/packages/popover/index.js +14 -14
  186. package/packages/popover/src/directive.js +20 -20
  187. package/packages/popover/src/main.vue +237 -237
  188. package/packages/progress/index.js +8 -8
  189. package/packages/progress/src/progress.vue +235 -235
  190. package/packages/radio/index.js +8 -8
  191. package/packages/radio/src/radio-button.vue +115 -115
  192. package/packages/radio/src/radio-group.vue +113 -113
  193. package/packages/radio/src/radio.vue +134 -134
  194. package/packages/radio-button/index.js +8 -8
  195. package/packages/radio-group/index.js +8 -8
  196. package/packages/rate/index.js +8 -8
  197. package/packages/rate/src/main.vue +348 -348
  198. package/packages/result/index.js +8 -8
  199. package/packages/result/src/icon-error.vue +13 -13
  200. package/packages/result/src/icon-info.vue +13 -13
  201. package/packages/result/src/icon-success.vue +13 -13
  202. package/packages/result/src/icon-warning.vue +13 -13
  203. package/packages/result/src/index.vue +65 -65
  204. package/packages/row/index.js +9 -9
  205. package/packages/row/src/row.js +44 -44
  206. package/packages/scrollbar/index.js +8 -8
  207. package/packages/scrollbar/src/bar.js +92 -92
  208. package/packages/scrollbar/src/main.js +130 -130
  209. package/packages/scrollbar/src/util.js +34 -34
  210. package/packages/select/index.js +8 -8
  211. package/packages/select/src/navigation-mixin.js +54 -54
  212. package/packages/select/src/option-group.vue +60 -60
  213. package/packages/select/src/option.vue +168 -168
  214. package/packages/select/src/select-dropdown.vue +74 -74
  215. package/packages/select/src/select.vue +900 -900
  216. package/packages/skeleton/index.js +8 -8
  217. package/packages/skeleton/src/img-placeholder.vue +16 -16
  218. package/packages/skeleton/src/index.vue +76 -76
  219. package/packages/skeleton/src/item.vue +21 -21
  220. package/packages/skeleton-item/index.js +8 -8
  221. package/packages/slider/index.js +8 -8
  222. package/packages/slider/src/button.vue +238 -238
  223. package/packages/slider/src/main.vue +427 -427
  224. package/packages/slider/src/marker.js +18 -18
  225. package/packages/spinner/index.js +8 -8
  226. package/packages/spinner/src/spinner.vue +27 -27
  227. package/packages/statistic/index.js +8 -8
  228. package/packages/statistic/src/main.vue +204 -204
  229. package/packages/step/index.js +8 -8
  230. package/packages/steps/README.md +69 -69
  231. package/packages/steps/index.js +8 -8
  232. package/packages/steps/src/step.vue +184 -184
  233. package/packages/steps/src/steps.vue +68 -68
  234. package/packages/submenu/index.js +8 -8
  235. package/packages/switch/index.js +9 -9
  236. package/packages/switch/src/component.vue +174 -174
  237. package/packages/tab-pane/index.js +8 -8
  238. package/packages/table/index.js +8 -8
  239. package/packages/table/src/config.js +124 -124
  240. package/packages/table/src/dropdown.js +28 -28
  241. package/packages/table/src/filter-panel.vue +194 -194
  242. package/packages/table/src/layout-observer.js +68 -68
  243. package/packages/table/src/store/current.js +76 -76
  244. package/packages/table/src/store/expand.js +65 -65
  245. package/packages/table/src/store/helper.js +41 -41
  246. package/packages/table/src/store/index.js +147 -147
  247. package/packages/table/src/store/tree.js +209 -209
  248. package/packages/table/src/store/watcher.js +381 -381
  249. package/packages/table/src/table-body.js +469 -469
  250. package/packages/table/src/table-column.js +319 -319
  251. package/packages/table/src/table-footer.js +153 -153
  252. package/packages/table/src/table-header.js +511 -511
  253. package/packages/table/src/table-layout.js +249 -249
  254. package/packages/table/src/table-row.js +101 -101
  255. package/packages/table/src/table.vue +712 -712
  256. package/packages/table/src/util.js +273 -273
  257. package/packages/table-column/index.js +8 -8
  258. package/packages/tabs/index.js +8 -8
  259. package/packages/tabs/src/tab-bar.vue +57 -57
  260. package/packages/tabs/src/tab-nav.vue +294 -294
  261. package/packages/tabs/src/tab-pane.vue +56 -56
  262. package/packages/tabs/src/tabs.vue +191 -191
  263. package/packages/tag/index.js +8 -8
  264. package/packages/tag/src/tag.vue +58 -58
  265. package/packages/theme-chalk/README.md +33 -33
  266. package/packages/theme-chalk/lib/base.css +1 -1
  267. package/packages/theme-chalk/lib/dialog.css +1 -1
  268. package/packages/theme-chalk/lib/drawer.css +1 -1
  269. package/packages/theme-chalk/lib/icon.css +1 -1
  270. package/packages/theme-chalk/lib/index.css +1 -1
  271. package/packages/theme-chalk/package.json +35 -35
  272. package/packages/theme-chalk/src/.DS_Store +0 -0
  273. package/packages/theme-chalk/src/alert.scss +147 -147
  274. package/packages/theme-chalk/src/aside.scss +7 -7
  275. package/packages/theme-chalk/src/autocomplete.scss +80 -80
  276. package/packages/theme-chalk/src/avatar.scss +51 -51
  277. package/packages/theme-chalk/src/backtop.scss +22 -22
  278. package/packages/theme-chalk/src/badge.scss +57 -57
  279. package/packages/theme-chalk/src/base.scss +2 -2
  280. package/packages/theme-chalk/src/breadcrumb.scss +55 -55
  281. package/packages/theme-chalk/src/button.scss +262 -262
  282. package/packages/theme-chalk/src/calendar.scss +79 -79
  283. package/packages/theme-chalk/src/card.scss +32 -32
  284. package/packages/theme-chalk/src/carousel-item.scss +49 -49
  285. package/packages/theme-chalk/src/carousel.scss +161 -161
  286. package/packages/theme-chalk/src/cascader-panel.scss +120 -120
  287. package/packages/theme-chalk/src/cascader.scss +182 -182
  288. package/packages/theme-chalk/src/checkbox.scss +359 -359
  289. package/packages/theme-chalk/src/col.scss +155 -155
  290. package/packages/theme-chalk/src/collapse.scss +63 -63
  291. package/packages/theme-chalk/src/color-picker.scss +384 -384
  292. package/packages/theme-chalk/src/common/popup.scss +42 -42
  293. package/packages/theme-chalk/src/common/transition.scss +98 -98
  294. package/packages/theme-chalk/src/common/var.scss +1030 -1030
  295. package/packages/theme-chalk/src/container.scss +14 -14
  296. package/packages/theme-chalk/src/date-picker/date-picker.scss +97 -97
  297. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +101 -101
  298. package/packages/theme-chalk/src/date-picker/date-table.scss +151 -151
  299. package/packages/theme-chalk/src/date-picker/month-table.scss +82 -82
  300. package/packages/theme-chalk/src/date-picker/picker-panel.scss +117 -117
  301. package/packages/theme-chalk/src/date-picker/picker.scss +197 -197
  302. package/packages/theme-chalk/src/date-picker/time-picker.scss +85 -85
  303. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +31 -31
  304. package/packages/theme-chalk/src/date-picker/time-spinner.scss +110 -110
  305. package/packages/theme-chalk/src/date-picker/year-table.scss +51 -51
  306. package/packages/theme-chalk/src/date-picker.scss +11 -11
  307. package/packages/theme-chalk/src/descriptions-item.scss +42 -42
  308. package/packages/theme-chalk/src/descriptions.scss +111 -111
  309. package/packages/theme-chalk/src/dialog.scss +125 -123
  310. package/packages/theme-chalk/src/display.scss +12 -12
  311. package/packages/theme-chalk/src/divider.scss +46 -46
  312. package/packages/theme-chalk/src/drawer.scss +220 -219
  313. package/packages/theme-chalk/src/dropdown.scss +182 -182
  314. package/packages/theme-chalk/src/empty.scss +45 -45
  315. package/packages/theme-chalk/src/footer.scss +8 -8
  316. package/packages/theme-chalk/src/form.scss +167 -167
  317. package/packages/theme-chalk/src/header.scss +8 -8
  318. package/packages/theme-chalk/src/icon.scss +1393 -1167
  319. package/packages/theme-chalk/src/image.scss +179 -179
  320. package/packages/theme-chalk/src/input-number.scss +180 -180
  321. package/packages/theme-chalk/src/input.scss +360 -360
  322. package/packages/theme-chalk/src/link.scss +81 -81
  323. package/packages/theme-chalk/src/loading.scss +96 -96
  324. package/packages/theme-chalk/src/main.scss +12 -12
  325. package/packages/theme-chalk/src/menu.scss +289 -289
  326. package/packages/theme-chalk/src/message-box.scss +226 -226
  327. package/packages/theme-chalk/src/message.scss +120 -120
  328. package/packages/theme-chalk/src/mixins/_button.scss +81 -81
  329. package/packages/theme-chalk/src/mixins/config.scss +4 -4
  330. package/packages/theme-chalk/src/mixins/function.scss +44 -44
  331. package/packages/theme-chalk/src/mixins/mixins.scss +190 -190
  332. package/packages/theme-chalk/src/mixins/utils.scss +38 -38
  333. package/packages/theme-chalk/src/notification.scss +99 -99
  334. package/packages/theme-chalk/src/option-group.scss +42 -42
  335. package/packages/theme-chalk/src/option.scss +36 -36
  336. package/packages/theme-chalk/src/page-header.scss +41 -41
  337. package/packages/theme-chalk/src/pagination.scss +295 -295
  338. package/packages/theme-chalk/src/popconfirm.scss +16 -16
  339. package/packages/theme-chalk/src/popover.scss +40 -40
  340. package/packages/theme-chalk/src/popper.scss +100 -100
  341. package/packages/theme-chalk/src/progress.scss +141 -141
  342. package/packages/theme-chalk/src/radio-button.scss +113 -113
  343. package/packages/theme-chalk/src/radio-group.scss +9 -9
  344. package/packages/theme-chalk/src/radio.scss +199 -199
  345. package/packages/theme-chalk/src/rate.scss +49 -49
  346. package/packages/theme-chalk/src/reset.scss +79 -79
  347. package/packages/theme-chalk/src/result.scss +61 -61
  348. package/packages/theme-chalk/src/row.scss +43 -43
  349. package/packages/theme-chalk/src/scrollbar.scss +72 -72
  350. package/packages/theme-chalk/src/select-dropdown.scss +62 -62
  351. package/packages/theme-chalk/src/select.scss +152 -152
  352. package/packages/theme-chalk/src/skeleton-item.scss +84 -84
  353. package/packages/theme-chalk/src/skeleton.scss +40 -40
  354. package/packages/theme-chalk/src/slider.scss +250 -250
  355. package/packages/theme-chalk/src/spinner.scss +44 -44
  356. package/packages/theme-chalk/src/statistic.scss +38 -38
  357. package/packages/theme-chalk/src/step.scss +317 -317
  358. package/packages/theme-chalk/src/steps.scss +20 -20
  359. package/packages/theme-chalk/src/switch.scss +116 -116
  360. package/packages/theme-chalk/src/table-column.scss +96 -96
  361. package/packages/theme-chalk/src/table.scss +564 -564
  362. package/packages/theme-chalk/src/tabs.scss +602 -602
  363. package/packages/theme-chalk/src/tag.scss +163 -163
  364. package/packages/theme-chalk/src/time-picker.scss +8 -8
  365. package/packages/theme-chalk/src/time-select.scss +37 -37
  366. package/packages/theme-chalk/src/timeline-item.scss +86 -86
  367. package/packages/theme-chalk/src/timeline.scss +14 -14
  368. package/packages/theme-chalk/src/tooltip.scss +141 -141
  369. package/packages/theme-chalk/src/transfer.scss +227 -227
  370. package/packages/theme-chalk/src/tree.scss +123 -123
  371. package/packages/theme-chalk/src/upload.scss +603 -603
  372. package/packages/time-picker/index.js +8 -8
  373. package/packages/time-select/index.js +8 -8
  374. package/packages/timeline/index.js +8 -8
  375. package/packages/timeline/src/item.vue +73 -73
  376. package/packages/timeline/src/main.vue +33 -33
  377. package/packages/timeline-item/index.js +8 -8
  378. package/packages/tooltip/index.js +8 -8
  379. package/packages/tooltip/src/main.js +242 -242
  380. package/packages/transfer/index.js +8 -8
  381. package/packages/transfer/src/main.vue +231 -231
  382. package/packages/transfer/src/transfer-panel.vue +251 -251
  383. package/packages/tree/index.js +8 -8
  384. package/packages/tree/src/model/node.js +484 -484
  385. package/packages/tree/src/model/tree-store.js +340 -340
  386. package/packages/tree/src/model/util.js +27 -27
  387. package/packages/tree/src/tree-node.vue +279 -279
  388. package/packages/tree/src/tree.vue +496 -496
  389. package/packages/upload/index.js +8 -8
  390. package/packages/upload/src/ajax.js +85 -85
  391. package/packages/upload/src/index.vue +338 -338
  392. package/packages/upload/src/upload-dragger.vue +70 -70
  393. package/packages/upload/src/upload-list.vue +105 -105
  394. package/packages/upload/src/upload.vue +211 -211
  395. package/src/directives/mousewheel.js +18 -18
  396. package/src/directives/repeat-click.js +26 -26
  397. package/src/index.js +259 -259
  398. package/src/locale/format.js +46 -46
  399. package/src/locale/index.js +48 -48
  400. package/src/locale/lang/af-ZA.js +123 -123
  401. package/src/locale/lang/ar.js +122 -122
  402. package/src/locale/lang/az.js +126 -126
  403. package/src/locale/lang/bg.js +123 -123
  404. package/src/locale/lang/bn.js +126 -126
  405. package/src/locale/lang/ca.js +122 -122
  406. package/src/locale/lang/cs-CZ.js +125 -125
  407. package/src/locale/lang/da.js +122 -122
  408. package/src/locale/lang/de.js +124 -124
  409. package/src/locale/lang/ee.js +123 -123
  410. package/src/locale/lang/el.js +123 -123
  411. package/src/locale/lang/en.js +123 -123
  412. package/src/locale/lang/eo.js +123 -123
  413. package/src/locale/lang/es.js +122 -122
  414. package/src/locale/lang/eu.js +123 -123
  415. package/src/locale/lang/fa.js +123 -123
  416. package/src/locale/lang/fi.js +123 -123
  417. package/src/locale/lang/fr.js +122 -122
  418. package/src/locale/lang/he.js +123 -123
  419. package/src/locale/lang/hr.js +123 -123
  420. package/src/locale/lang/hu.js +122 -122
  421. package/src/locale/lang/hy-AM.js +123 -123
  422. package/src/locale/lang/id.js +123 -123
  423. package/src/locale/lang/is.js +124 -124
  424. package/src/locale/lang/it.js +122 -122
  425. package/src/locale/lang/ja.js +123 -123
  426. package/src/locale/lang/kg.js +123 -123
  427. package/src/locale/lang/km.js +123 -123
  428. package/src/locale/lang/ko.js +123 -123
  429. package/src/locale/lang/ku.js +123 -123
  430. package/src/locale/lang/kz.js +123 -123
  431. package/src/locale/lang/lo-LA.js +126 -126
  432. package/src/locale/lang/lt.js +123 -123
  433. package/src/locale/lang/lv.js +123 -123
  434. package/src/locale/lang/mn.js +123 -123
  435. package/src/locale/lang/ms.js +122 -122
  436. package/src/locale/lang/nb-NO.js +122 -122
  437. package/src/locale/lang/nl.js +123 -123
  438. package/src/locale/lang/pl.js +123 -123
  439. package/src/locale/lang/pt-br.js +123 -123
  440. package/src/locale/lang/pt.js +123 -123
  441. package/src/locale/lang/ro.js +123 -123
  442. package/src/locale/lang/ru-RU.js +123 -123
  443. package/src/locale/lang/si.js +123 -123
  444. package/src/locale/lang/sk.js +125 -125
  445. package/src/locale/lang/sl.js +123 -123
  446. package/src/locale/lang/sr-Latn.js +123 -123
  447. package/src/locale/lang/sr.js +123 -123
  448. package/src/locale/lang/sv-SE.js +123 -123
  449. package/src/locale/lang/sw.js +123 -123
  450. package/src/locale/lang/ta.js +122 -122
  451. package/src/locale/lang/th.js +123 -123
  452. package/src/locale/lang/tk.js +123 -123
  453. package/src/locale/lang/tr-TR.js +123 -123
  454. package/src/locale/lang/ua.js +123 -123
  455. package/src/locale/lang/ug-CN.js +123 -123
  456. package/src/locale/lang/uz-UZ.js +123 -123
  457. package/src/locale/lang/vi.js +123 -123
  458. package/src/locale/lang/zh-CN.js +123 -123
  459. package/src/locale/lang/zh-TW.js +123 -123
  460. package/src/mixins/emitter.js +33 -33
  461. package/src/mixins/focus.js +9 -9
  462. package/src/mixins/locale.js +9 -9
  463. package/src/mixins/migrating.js +54 -54
  464. package/src/transitions/collapse-transition.js +77 -77
  465. package/src/utils/after-leave.js +27 -27
  466. package/src/utils/aria-dialog.js +90 -90
  467. package/src/utils/aria-utils.js +122 -122
  468. package/src/utils/clickoutside.js +76 -76
  469. package/src/utils/date-util.js +282 -282
  470. package/src/utils/date.js +368 -368
  471. package/src/utils/dom.js +227 -227
  472. package/src/utils/lodash.js +18075 -18075
  473. package/src/utils/menu/aria-menubar.js +14 -14
  474. package/src/utils/menu/aria-menuitem.js +49 -49
  475. package/src/utils/menu/aria-submenu.js +59 -59
  476. package/src/utils/merge.js +15 -15
  477. package/src/utils/popper.js +1276 -1276
  478. package/src/utils/popup/index.js +218 -218
  479. package/src/utils/popup/popup-manager.js +194 -194
  480. package/src/utils/resize-event.js +36 -36
  481. package/src/utils/scroll-into-view.js +27 -27
  482. package/src/utils/scrollbar-width.js +29 -29
  483. package/src/utils/shared.js +7 -7
  484. package/src/utils/types.js +40 -40
  485. package/src/utils/util.js +245 -245
  486. package/src/utils/vdom.js +5 -5
  487. package/src/utils/vue-popper.js +198 -198
  488. package/types/alert.d.ts +31 -31
  489. package/types/aside.d.ts +7 -7
  490. package/types/autocomplete.d.ts +78 -78
  491. package/types/avatar.d.ts +20 -20
  492. package/types/backtop.d.ts +16 -16
  493. package/types/badge.d.ts +16 -16
  494. package/types/breadcrumb-item.d.ts +10 -10
  495. package/types/breadcrumb.d.ts +10 -10
  496. package/types/button-group.d.ts +4 -4
  497. package/types/button.d.ts +37 -37
  498. package/types/calendar.d.ts +15 -15
  499. package/types/card.d.ts +26 -26
  500. package/types/carousel-item.d.ts +10 -10
  501. package/types/carousel.d.ts +57 -57
  502. package/types/cascader-panel.d.ts +72 -72
  503. package/types/cascader.d.ts +65 -65
  504. package/types/checkbox-button.d.ts +22 -22
  505. package/types/checkbox-group.d.ts +22 -22
  506. package/types/checkbox.d.ts +34 -34
  507. package/types/col.d.ts +46 -46
  508. package/types/collapse-item.d.ts +26 -26
  509. package/types/collapse.d.ts +10 -10
  510. package/types/color-picker.d.ts +21 -21
  511. package/types/component.d.ts +13 -13
  512. package/types/container.d.ts +7 -7
  513. package/types/date-picker.d.ts +124 -124
  514. package/types/descriptions-item.d.ts +37 -37
  515. package/types/descriptions.d.ts +52 -52
  516. package/types/dialog.d.ts +62 -62
  517. package/types/divider.d.ts +12 -12
  518. package/types/drawer.d.ts +63 -63
  519. package/types/dropdown-item.d.ts +16 -16
  520. package/types/dropdown-menu.d.ts +4 -4
  521. package/types/dropdown.d.ts +38 -38
  522. package/types/element-ui.d.ts +381 -381
  523. package/types/empty.d.ts +31 -31
  524. package/types/footer.d.ts +7 -7
  525. package/types/form-item.d.ts +37 -37
  526. package/types/form.d.ts +82 -82
  527. package/types/header.d.ts +7 -7
  528. package/types/icon.d.ts +7 -7
  529. package/types/image.d.ts +43 -43
  530. package/types/index.d.ts +4 -4
  531. package/types/infinite-scroll.d.ts +5 -5
  532. package/types/input-number.d.ts +47 -47
  533. package/types/input.d.ts +107 -107
  534. package/types/link.d.ts +25 -25
  535. package/types/loading.d.ts +62 -62
  536. package/types/main.d.ts +4 -4
  537. package/types/menu-item-group.d.ts +7 -7
  538. package/types/menu-item.d.ts +10 -10
  539. package/types/menu.d.ts +46 -46
  540. package/types/message-box.d.ts +176 -176
  541. package/types/message.d.ts +90 -90
  542. package/types/notification.d.ts +84 -84
  543. package/types/option-group.d.ts +10 -10
  544. package/types/option.d.ts +13 -13
  545. package/types/page-header.d.ts +10 -10
  546. package/types/pagination.d.ts +43 -43
  547. package/types/popconfirm.d.ts +29 -29
  548. package/types/popover.d.ts +71 -71
  549. package/types/progress.d.ts +37 -37
  550. package/types/radio-button.d.ts +16 -16
  551. package/types/radio-group.d.ts +18 -18
  552. package/types/radio.d.ts +19 -19
  553. package/types/rate.d.ts +64 -64
  554. package/types/result.d.ts +33 -33
  555. package/types/row.d.ts +25 -25
  556. package/types/select.d.ts +90 -90
  557. package/types/skeleton-item.d.ts +7 -7
  558. package/types/skeleton.d.ts +33 -33
  559. package/types/slider.d.ts +68 -68
  560. package/types/spinner.d.ts +16 -16
  561. package/types/statistic.d.ts +37 -37
  562. package/types/step.d.ts +34 -34
  563. package/types/steps.d.ts +28 -28
  564. package/types/submenu.d.ts +22 -22
  565. package/types/switch.d.ts +43 -43
  566. package/types/tab-pane.d.ts +19 -19
  567. package/types/table-column.d.ts +117 -117
  568. package/types/table.d.ts +177 -177
  569. package/types/tabs.d.ts +31 -31
  570. package/types/tag.d.ts +28 -28
  571. package/types/time-picker.d.ts +63 -63
  572. package/types/time-select.d.ts +56 -56
  573. package/types/timeline-item.d.ts +20 -20
  574. package/types/timeline.d.ts +6 -6
  575. package/types/tooltip.d.ts +52 -52
  576. package/types/transfer.d.ts +73 -73
  577. package/types/tree.d.ts +266 -266
  578. package/types/upload.d.ts +124 -124
  579. package/web-types.json +4195 -4195
@@ -1,150 +1,150 @@
1
- import throttle from 'throttle-debounce/debounce';
2
- import {
3
- isHtmlElement,
4
- isFunction,
5
- isUndefined,
6
- isDefined
7
- } from 'element-sim/src/utils/types';
8
- import {
9
- getScrollContainer
10
- } from 'element-sim/src/utils/dom';
11
-
12
- const getStyleComputedProperty = (element, property) => {
13
- if (element === window) {
14
- element = document.documentElement;
15
- }
16
-
17
- if (element.nodeType !== 1) {
18
- return [];
19
- }
20
- // NOTE: 1 DOM access here
21
- const css = window.getComputedStyle(element, null);
22
- return property ? css[property] : css;
23
- };
24
-
25
- const entries = (obj) => {
26
- return Object.keys(obj || {})
27
- .map(key => ([key, obj[key]]));
28
- };
29
-
30
- const getPositionSize = (el, prop) => {
31
- return el === window || el === document
32
- ? document.documentElement[prop]
33
- : el[prop];
34
- };
35
-
36
- const getOffsetHeight = el => {
37
- return getPositionSize(el, 'offsetHeight');
38
- };
39
-
40
- const getClientHeight = el => {
41
- return getPositionSize(el, 'clientHeight');
42
- };
43
-
44
- const scope = 'ElInfiniteScroll';
45
- const attributes = {
46
- delay: {
47
- type: Number,
48
- default: 200
49
- },
50
- distance: {
51
- type: Number,
52
- default: 0
53
- },
54
- disabled: {
55
- type: Boolean,
56
- default: false
57
- },
58
- immediate: {
59
- type: Boolean,
60
- default: true
61
- }
62
- };
63
-
64
- const getScrollOptions = (el, vm) => {
65
- if (!isHtmlElement(el)) return {};
66
-
67
- return entries(attributes).reduce((map, [key, option]) => {
68
- const { type, default: defaultValue } = option;
69
- let value = el.getAttribute(`infinite-scroll-${key}`);
70
- value = isUndefined(vm[value]) ? value : vm[value];
71
- switch (type) {
72
- case Number:
73
- value = Number(value);
74
- value = Number.isNaN(value) ? defaultValue : value;
75
- break;
76
- case Boolean:
77
- value = isDefined(value) ? value === 'false' ? false : Boolean(value) : defaultValue;
78
- break;
79
- default:
80
- value = type(value);
81
- }
82
- map[key] = value;
83
- return map;
84
- }, {});
85
- };
86
-
87
- const getElementTop = el => el.getBoundingClientRect().top;
88
-
89
- const handleScroll = function(cb) {
90
- const { el, vm, container, observer } = this[scope];
91
- const { distance, disabled } = getScrollOptions(el, vm);
92
-
93
- if (disabled) return;
94
-
95
- const containerInfo = container.getBoundingClientRect();
96
- if (!containerInfo.width && !containerInfo.height) return;
97
-
98
- let shouldTrigger = false;
99
-
100
- if (container === el) {
101
- // be aware of difference between clientHeight & offsetHeight & window.getComputedStyle().height
102
- const scrollBottom = container.scrollTop + getClientHeight(container);
103
- shouldTrigger = container.scrollHeight - scrollBottom <= distance;
104
- } else {
105
- const heightBelowTop = getOffsetHeight(el) + getElementTop(el) - getElementTop(container);
106
- const offsetHeight = getOffsetHeight(container);
107
- const borderBottom = Number.parseFloat(getStyleComputedProperty(container, 'borderBottomWidth'));
108
- shouldTrigger = heightBelowTop - offsetHeight + borderBottom <= distance;
109
- }
110
-
111
- if (shouldTrigger && isFunction(cb)) {
112
- cb.call(vm);
113
- } else if (observer) {
114
- observer.disconnect();
115
- this[scope].observer = null;
116
- }
117
-
118
- };
119
-
120
- export default {
121
- name: 'InfiniteScroll',
122
- inserted(el, binding, vnode) {
123
- const cb = binding.value;
124
-
125
- const vm = vnode.context;
126
- // only include vertical scroll
127
- const container = getScrollContainer(el, true);
128
- const { delay, immediate } = getScrollOptions(el, vm);
129
- const onScroll = throttle(delay, handleScroll.bind(el, cb));
130
-
131
- el[scope] = { el, vm, container, onScroll };
132
-
133
- if (container) {
134
- container.addEventListener('scroll', onScroll);
135
-
136
- if (immediate) {
137
- const observer = el[scope].observer = new MutationObserver(onScroll);
138
- observer.observe(container, { childList: true, subtree: true });
139
- onScroll();
140
- }
141
- }
142
- },
143
- unbind(el) {
144
- const { container, onScroll } = el[scope];
145
- if (container) {
146
- container.removeEventListener('scroll', onScroll);
147
- }
148
- }
149
- };
150
-
1
+ import throttle from 'throttle-debounce/debounce';
2
+ import {
3
+ isHtmlElement,
4
+ isFunction,
5
+ isUndefined,
6
+ isDefined
7
+ } from 'element-sim/src/utils/types';
8
+ import {
9
+ getScrollContainer
10
+ } from 'element-sim/src/utils/dom';
11
+
12
+ const getStyleComputedProperty = (element, property) => {
13
+ if (element === window) {
14
+ element = document.documentElement;
15
+ }
16
+
17
+ if (element.nodeType !== 1) {
18
+ return [];
19
+ }
20
+ // NOTE: 1 DOM access here
21
+ const css = window.getComputedStyle(element, null);
22
+ return property ? css[property] : css;
23
+ };
24
+
25
+ const entries = (obj) => {
26
+ return Object.keys(obj || {})
27
+ .map(key => ([key, obj[key]]));
28
+ };
29
+
30
+ const getPositionSize = (el, prop) => {
31
+ return el === window || el === document
32
+ ? document.documentElement[prop]
33
+ : el[prop];
34
+ };
35
+
36
+ const getOffsetHeight = el => {
37
+ return getPositionSize(el, 'offsetHeight');
38
+ };
39
+
40
+ const getClientHeight = el => {
41
+ return getPositionSize(el, 'clientHeight');
42
+ };
43
+
44
+ const scope = 'ElInfiniteScroll';
45
+ const attributes = {
46
+ delay: {
47
+ type: Number,
48
+ default: 200
49
+ },
50
+ distance: {
51
+ type: Number,
52
+ default: 0
53
+ },
54
+ disabled: {
55
+ type: Boolean,
56
+ default: false
57
+ },
58
+ immediate: {
59
+ type: Boolean,
60
+ default: true
61
+ }
62
+ };
63
+
64
+ const getScrollOptions = (el, vm) => {
65
+ if (!isHtmlElement(el)) return {};
66
+
67
+ return entries(attributes).reduce((map, [key, option]) => {
68
+ const { type, default: defaultValue } = option;
69
+ let value = el.getAttribute(`infinite-scroll-${key}`);
70
+ value = isUndefined(vm[value]) ? value : vm[value];
71
+ switch (type) {
72
+ case Number:
73
+ value = Number(value);
74
+ value = Number.isNaN(value) ? defaultValue : value;
75
+ break;
76
+ case Boolean:
77
+ value = isDefined(value) ? value === 'false' ? false : Boolean(value) : defaultValue;
78
+ break;
79
+ default:
80
+ value = type(value);
81
+ }
82
+ map[key] = value;
83
+ return map;
84
+ }, {});
85
+ };
86
+
87
+ const getElementTop = el => el.getBoundingClientRect().top;
88
+
89
+ const handleScroll = function(cb) {
90
+ const { el, vm, container, observer } = this[scope];
91
+ const { distance, disabled } = getScrollOptions(el, vm);
92
+
93
+ if (disabled) return;
94
+
95
+ const containerInfo = container.getBoundingClientRect();
96
+ if (!containerInfo.width && !containerInfo.height) return;
97
+
98
+ let shouldTrigger = false;
99
+
100
+ if (container === el) {
101
+ // be aware of difference between clientHeight & offsetHeight & window.getComputedStyle().height
102
+ const scrollBottom = container.scrollTop + getClientHeight(container);
103
+ shouldTrigger = container.scrollHeight - scrollBottom <= distance;
104
+ } else {
105
+ const heightBelowTop = getOffsetHeight(el) + getElementTop(el) - getElementTop(container);
106
+ const offsetHeight = getOffsetHeight(container);
107
+ const borderBottom = Number.parseFloat(getStyleComputedProperty(container, 'borderBottomWidth'));
108
+ shouldTrigger = heightBelowTop - offsetHeight + borderBottom <= distance;
109
+ }
110
+
111
+ if (shouldTrigger && isFunction(cb)) {
112
+ cb.call(vm);
113
+ } else if (observer) {
114
+ observer.disconnect();
115
+ this[scope].observer = null;
116
+ }
117
+
118
+ };
119
+
120
+ export default {
121
+ name: 'InfiniteScroll',
122
+ inserted(el, binding, vnode) {
123
+ const cb = binding.value;
124
+
125
+ const vm = vnode.context;
126
+ // only include vertical scroll
127
+ const container = getScrollContainer(el, true);
128
+ const { delay, immediate } = getScrollOptions(el, vm);
129
+ const onScroll = throttle(delay, handleScroll.bind(el, cb));
130
+
131
+ el[scope] = { el, vm, container, onScroll };
132
+
133
+ if (container) {
134
+ container.addEventListener('scroll', onScroll);
135
+
136
+ if (immediate) {
137
+ const observer = el[scope].observer = new MutationObserver(onScroll);
138
+ observer.observe(container, { childList: true, subtree: true });
139
+ onScroll();
140
+ }
141
+ }
142
+ },
143
+ unbind(el) {
144
+ const { container, onScroll } = el[scope];
145
+ if (container) {
146
+ container.removeEventListener('scroll', onScroll);
147
+ }
148
+ }
149
+ };
150
+
@@ -1,8 +1,8 @@
1
- import ElInput from './src/input';
2
-
3
- /* istanbul ignore next */
4
- ElInput.install = function(Vue) {
5
- Vue.component(ElInput.name, ElInput);
6
- };
7
-
8
- export default ElInput;
1
+ import ElInput from './src/input';
2
+
3
+ /* istanbul ignore next */
4
+ ElInput.install = function(Vue) {
5
+ Vue.component(ElInput.name, ElInput);
6
+ };
7
+
8
+ export default ElInput;
@@ -1,104 +1,104 @@
1
- let hiddenTextarea;
2
-
3
- const HIDDEN_STYLE = `
4
- height:0 !important;
5
- visibility:hidden !important;
6
- overflow:hidden !important;
7
- position:absolute !important;
8
- z-index:-1000 !important;
9
- top:0 !important;
10
- right:0 !important
11
- `;
12
-
13
- const CONTEXT_STYLE = [
14
- 'letter-spacing',
15
- 'line-height',
16
- 'padding-top',
17
- 'padding-bottom',
18
- 'font-family',
19
- 'font-weight',
20
- 'font-size',
21
- 'text-rendering',
22
- 'text-transform',
23
- 'width',
24
- 'text-indent',
25
- 'padding-left',
26
- 'padding-right',
27
- 'border-width',
28
- 'box-sizing'
29
- ];
30
-
31
- function calculateNodeStyling(targetElement) {
32
- const style = window.getComputedStyle(targetElement);
33
-
34
- const boxSizing = style.getPropertyValue('box-sizing');
35
-
36
- const paddingSize = (
37
- parseFloat(style.getPropertyValue('padding-bottom')) +
38
- parseFloat(style.getPropertyValue('padding-top'))
39
- );
40
-
41
- const borderSize = (
42
- parseFloat(style.getPropertyValue('border-bottom-width')) +
43
- parseFloat(style.getPropertyValue('border-top-width'))
44
- );
45
-
46
- const contextStyle = CONTEXT_STYLE
47
- .map(name => `${name}:${style.getPropertyValue(name)}`)
48
- .join(';');
49
-
50
- return { contextStyle, paddingSize, borderSize, boxSizing };
51
- }
52
-
53
- export default function calcTextareaHeight(
54
- targetElement,
55
- minRows = 1,
56
- maxRows = null
57
- ) {
58
- if (!hiddenTextarea) {
59
- hiddenTextarea = document.createElement('textarea');
60
- document.body.appendChild(hiddenTextarea);
61
- }
62
-
63
- let {
64
- paddingSize,
65
- borderSize,
66
- boxSizing,
67
- contextStyle
68
- } = calculateNodeStyling(targetElement);
69
-
70
- hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);
71
- hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
72
-
73
- let height = hiddenTextarea.scrollHeight;
74
- const result = {};
75
-
76
- if (boxSizing === 'border-box') {
77
- height = height + borderSize;
78
- } else if (boxSizing === 'content-box') {
79
- height = height - paddingSize;
80
- }
81
-
82
- hiddenTextarea.value = '';
83
- let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
84
-
85
- if (minRows !== null) {
86
- let minHeight = singleRowHeight * minRows;
87
- if (boxSizing === 'border-box') {
88
- minHeight = minHeight + paddingSize + borderSize;
89
- }
90
- height = Math.max(minHeight, height);
91
- result.minHeight = `${ minHeight }px`;
92
- }
93
- if (maxRows !== null) {
94
- let maxHeight = singleRowHeight * maxRows;
95
- if (boxSizing === 'border-box') {
96
- maxHeight = maxHeight + paddingSize + borderSize;
97
- }
98
- height = Math.min(maxHeight, height);
99
- }
100
- result.height = `${ height }px`;
101
- hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);
102
- hiddenTextarea = null;
103
- return result;
104
- };
1
+ let hiddenTextarea;
2
+
3
+ const HIDDEN_STYLE = `
4
+ height:0 !important;
5
+ visibility:hidden !important;
6
+ overflow:hidden !important;
7
+ position:absolute !important;
8
+ z-index:-1000 !important;
9
+ top:0 !important;
10
+ right:0 !important
11
+ `;
12
+
13
+ const CONTEXT_STYLE = [
14
+ 'letter-spacing',
15
+ 'line-height',
16
+ 'padding-top',
17
+ 'padding-bottom',
18
+ 'font-family',
19
+ 'font-weight',
20
+ 'font-size',
21
+ 'text-rendering',
22
+ 'text-transform',
23
+ 'width',
24
+ 'text-indent',
25
+ 'padding-left',
26
+ 'padding-right',
27
+ 'border-width',
28
+ 'box-sizing'
29
+ ];
30
+
31
+ function calculateNodeStyling(targetElement) {
32
+ const style = window.getComputedStyle(targetElement);
33
+
34
+ const boxSizing = style.getPropertyValue('box-sizing');
35
+
36
+ const paddingSize = (
37
+ parseFloat(style.getPropertyValue('padding-bottom')) +
38
+ parseFloat(style.getPropertyValue('padding-top'))
39
+ );
40
+
41
+ const borderSize = (
42
+ parseFloat(style.getPropertyValue('border-bottom-width')) +
43
+ parseFloat(style.getPropertyValue('border-top-width'))
44
+ );
45
+
46
+ const contextStyle = CONTEXT_STYLE
47
+ .map(name => `${name}:${style.getPropertyValue(name)}`)
48
+ .join(';');
49
+
50
+ return { contextStyle, paddingSize, borderSize, boxSizing };
51
+ }
52
+
53
+ export default function calcTextareaHeight(
54
+ targetElement,
55
+ minRows = 1,
56
+ maxRows = null
57
+ ) {
58
+ if (!hiddenTextarea) {
59
+ hiddenTextarea = document.createElement('textarea');
60
+ document.body.appendChild(hiddenTextarea);
61
+ }
62
+
63
+ let {
64
+ paddingSize,
65
+ borderSize,
66
+ boxSizing,
67
+ contextStyle
68
+ } = calculateNodeStyling(targetElement);
69
+
70
+ hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);
71
+ hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
72
+
73
+ let height = hiddenTextarea.scrollHeight;
74
+ const result = {};
75
+
76
+ if (boxSizing === 'border-box') {
77
+ height = height + borderSize;
78
+ } else if (boxSizing === 'content-box') {
79
+ height = height - paddingSize;
80
+ }
81
+
82
+ hiddenTextarea.value = '';
83
+ let singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
84
+
85
+ if (minRows !== null) {
86
+ let minHeight = singleRowHeight * minRows;
87
+ if (boxSizing === 'border-box') {
88
+ minHeight = minHeight + paddingSize + borderSize;
89
+ }
90
+ height = Math.max(minHeight, height);
91
+ result.minHeight = `${ minHeight }px`;
92
+ }
93
+ if (maxRows !== null) {
94
+ let maxHeight = singleRowHeight * maxRows;
95
+ if (boxSizing === 'border-box') {
96
+ maxHeight = maxHeight + paddingSize + borderSize;
97
+ }
98
+ height = Math.min(maxHeight, height);
99
+ }
100
+ result.height = `${ height }px`;
101
+ hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);
102
+ hiddenTextarea = null;
103
+ return result;
104
+ };