element-plus 1.2.0-beta.1 → 1.2.0-beta.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 (524) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +930 -690
  5. package/dist/index.full.min.js +11 -11
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +11 -11
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +937 -699
  10. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -0
  11. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs.map +1 -1
  12. package/es/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.mjs.map +1 -1
  13. package/es/components/alert/src/alert.vue_vue&type=script&lang.mjs.map +1 -1
  14. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs +1 -1
  15. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs.map +1 -1
  16. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs +4 -0
  17. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs.map +1 -1
  18. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.mjs.map +1 -1
  19. package/es/components/button/index.d.ts +6 -1
  20. package/es/components/button/src/button.d.ts +4 -0
  21. package/es/components/button/src/button.mjs +4 -1
  22. package/es/components/button/src/button.mjs.map +1 -1
  23. package/es/components/button/src/button.vue.d.ts +6 -1
  24. package/es/components/button/src/button.vue_vue&type=script&lang.mjs +7 -1
  25. package/es/components/button/src/button.vue_vue&type=script&lang.mjs.map +1 -1
  26. package/es/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.mjs.map +1 -1
  27. package/es/components/cascader/index.d.ts +8430 -12
  28. package/es/components/cascader/src/index.vue.d.ts +4216 -6
  29. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs +25 -16
  30. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  31. package/es/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
  32. package/es/components/cascader-panel/index.d.ts +238 -10
  33. package/es/components/cascader-panel/src/index.vue.d.ts +122 -8
  34. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs +31 -12
  35. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  36. package/es/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.mjs.map +1 -1
  37. package/es/components/cascader-panel/src/menu.vue.d.ts +2 -2
  38. package/es/components/cascader-panel/src/menu.vue_vue&type=script&lang.mjs.map +1 -1
  39. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs +14 -11
  40. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs.map +1 -1
  41. package/es/components/cascader-panel/src/node.vue.d.ts +1 -1
  42. package/es/components/cascader-panel/src/node.vue_vue&type=script&lang.mjs.map +1 -1
  43. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs +1 -1
  44. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs.map +1 -1
  45. package/es/components/color-picker/src/color.mjs +20 -13
  46. package/es/components/color-picker/src/color.mjs.map +1 -1
  47. package/es/components/config-provider/index.d.ts +12 -5
  48. package/es/components/config-provider/index.mjs +1 -1
  49. package/es/components/config-provider/index.mjs.map +1 -1
  50. package/es/components/config-provider/src/config-provider.d.ts +7 -0
  51. package/es/components/config-provider/src/config-provider.mjs +18 -0
  52. package/es/components/config-provider/src/config-provider.mjs.map +1 -0
  53. package/es/components/config-provider/src/index.d.ts +18 -0
  54. package/es/components/config-provider/src/index.mjs +22 -0
  55. package/es/components/config-provider/src/index.mjs.map +1 -0
  56. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
  57. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
  58. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs +1 -1
  59. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs.map +1 -1
  60. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.mjs.map +1 -1
  61. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs +23 -16
  62. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs.map +1 -1
  63. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.mjs.map +1 -1
  64. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs +2 -0
  65. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs.map +1 -1
  66. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.mjs.map +1 -1
  67. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs +2 -1
  68. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs.map +1 -1
  69. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.mjs.map +1 -1
  70. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs +2 -0
  71. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs.map +1 -1
  72. package/es/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.mjs.map +1 -1
  73. package/es/components/dropdown/src/dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  74. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs +68 -68
  75. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs.map +1 -1
  76. package/es/components/form/index.d.ts +2 -2
  77. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs +4 -3
  78. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs.map +1 -1
  79. package/es/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.mjs.map +1 -1
  80. package/es/components/form/src/form.type.d.ts +1 -3
  81. package/es/components/form/src/form.vue.d.ts +2 -3
  82. package/es/components/image/index.d.ts +4 -0
  83. package/es/components/image/src/image.d.ts +1 -0
  84. package/es/components/image/src/image.mjs +4 -0
  85. package/es/components/image/src/image.mjs.map +1 -1
  86. package/es/components/image/src/image.vue.d.ts +4 -0
  87. package/es/components/image/src/image.vue_vue&type=script&lang.mjs +2 -2
  88. package/es/components/image/src/image.vue_vue&type=script&lang.mjs.map +1 -1
  89. package/es/components/image/src/image.vue_vue&type=template&id=34467287&lang.mjs.map +1 -1
  90. package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  91. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +2 -2
  92. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs.map +1 -1
  93. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs +2 -2
  94. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs.map +1 -1
  95. package/es/components/input/src/input.vue_vue&type=script&lang.mjs +2 -2
  96. package/es/components/input/src/input.vue_vue&type=script&lang.mjs.map +1 -1
  97. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs +18 -16
  98. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs.map +1 -1
  99. package/es/components/loading/src/createLoadingComponent.mjs +3 -7
  100. package/es/components/loading/src/createLoadingComponent.mjs.map +1 -1
  101. package/es/components/menu/src/menu.mjs +1 -1
  102. package/es/components/menu/src/menu.mjs.map +1 -1
  103. package/es/components/menu/src/sub-menu.mjs +1 -1
  104. package/es/components/menu/src/sub-menu.mjs.map +1 -1
  105. package/es/components/message/src/message-method.mjs +13 -0
  106. package/es/components/message/src/message-method.mjs.map +1 -1
  107. package/es/components/message/src/message.d.ts +2 -0
  108. package/es/components/message/src/message.mjs +8 -0
  109. package/es/components/message/src/message.mjs.map +1 -1
  110. package/es/components/message/src/message.vue.d.ts +8 -0
  111. package/es/components/message/src/message.vue_vue&type=script&lang.mjs +7 -1
  112. package/es/components/message/src/message.vue_vue&type=script&lang.mjs.map +1 -1
  113. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs +56 -46
  114. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs.map +1 -1
  115. package/es/components/page-header/src/page-header.vue_vue&type=script&lang.mjs.map +1 -1
  116. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs +3 -3
  117. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs.map +1 -1
  118. package/es/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.mjs.map +1 -1
  119. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs +1 -1
  120. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs.map +1 -1
  121. package/es/components/result/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  122. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs +4 -3
  123. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs.map +1 -1
  124. package/es/components/select/index.d.ts +5 -1
  125. package/es/components/select/src/select.vue.d.ts +5 -1
  126. package/es/components/select/src/select.vue_vue&type=script&lang.mjs +4 -1
  127. package/es/components/select/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  128. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs +6 -5
  129. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs.map +1 -1
  130. package/es/components/select/src/useSelect.mjs +1 -1
  131. package/es/components/select/src/useSelect.mjs.map +1 -1
  132. package/es/components/select-v2/index.d.ts +14 -0
  133. package/es/components/select-v2/src/defaults.d.ts +4 -0
  134. package/es/components/select-v2/src/defaults.mjs +4 -0
  135. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  136. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs +1 -0
  137. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  138. package/es/components/select-v2/src/select.vue.d.ts +7 -0
  139. package/es/components/select-v2/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  140. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs +9 -7
  141. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs.map +1 -1
  142. package/es/components/table/src/config.mjs +22 -2
  143. package/es/components/table/src/config.mjs.map +1 -1
  144. package/es/components/table/src/store/watcher.mjs +15 -7
  145. package/es/components/table/src/store/watcher.mjs.map +1 -1
  146. package/es/components/table/src/table/style-helper.mjs +2 -2
  147. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  148. package/es/components/table/src/table-body/render-helper.mjs +2 -3
  149. package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
  150. package/es/components/table/src/table-header/event-helper.mjs +3 -1
  151. package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
  152. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs +3 -3
  153. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs.map +1 -1
  154. package/es/components/tabs/src/tabs.mjs +1 -1
  155. package/es/components/tabs/src/tabs.mjs.map +1 -1
  156. package/es/components/teleport/index.d.ts +23 -0
  157. package/es/components/teleport/index.mjs +9 -0
  158. package/es/components/teleport/index.mjs.map +1 -0
  159. package/es/components/teleport/src/teleport.d.ts +7 -0
  160. package/es/components/teleport/src/teleport.mjs +18 -0
  161. package/es/components/teleport/src/teleport.mjs.map +1 -0
  162. package/es/components/teleport/src/teleport.vue.d.ts +22 -0
  163. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs +28 -0
  164. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs.map +1 -0
  165. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs +19 -0
  166. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs.map +1 -0
  167. package/es/components/teleport/src/teleport2.mjs +7 -0
  168. package/es/components/teleport/src/teleport2.mjs.map +1 -0
  169. package/es/components/teleport/style/css.d.ts +0 -0
  170. package/es/components/teleport/style/css.mjs +2 -0
  171. package/es/components/teleport/style/css.mjs.map +1 -0
  172. package/es/components/teleport/style/index.d.ts +0 -0
  173. package/es/components/teleport/style/index.mjs +2 -0
  174. package/es/components/teleport/style/index.mjs.map +1 -0
  175. package/es/components/time-picker/src/common/picker.vue_vue&type=script&lang.mjs.map +1 -1
  176. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs +11 -8
  177. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs.map +1 -1
  178. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.mjs.map +1 -1
  179. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs +9 -1
  180. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs.map +1 -1
  181. package/es/components/time-select/src/time-select.vue_vue&type=script&lang.mjs.map +1 -1
  182. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs +6 -3
  183. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs.map +1 -1
  184. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs +2 -0
  185. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs.map +1 -1
  186. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs +3 -2
  187. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs.map +1 -1
  188. package/es/components/transfer/src/useMove.mjs +3 -0
  189. package/es/components/transfer/src/useMove.mjs.map +1 -1
  190. package/es/components/tree/index.d.ts +6 -0
  191. package/es/components/tree/src/tree-node.vue.d.ts +1 -0
  192. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs +20 -0
  193. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  194. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs +10 -7
  195. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs.map +1 -1
  196. package/es/components/tree/src/tree.type.d.ts +3 -0
  197. package/es/components/tree/src/tree.vue.d.ts +3 -0
  198. package/es/components/tree/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  199. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs +2 -1
  200. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs.map +1 -1
  201. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs +4 -2
  202. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  203. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs +5 -4
  204. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs.map +1 -1
  205. package/es/components/tree-v2/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  206. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs +2 -1
  207. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs.map +1 -1
  208. package/es/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  209. package/es/components/virtual-list/src/builders/build-list.d.ts +9 -3
  210. package/es/components/virtual-list/src/builders/build-list.mjs +7 -4
  211. package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
  212. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  213. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  214. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  215. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  216. package/es/components/virtual-list/src/components/scrollbar.mjs +1 -2
  217. package/es/components/virtual-list/src/components/scrollbar.mjs.map +1 -1
  218. package/es/components/virtual-list/src/props.d.ts +6 -3
  219. package/es/components/virtual-list/src/props.mjs +5 -1
  220. package/es/components/virtual-list/src/props.mjs.map +1 -1
  221. package/es/hooks/index.d.ts +1 -0
  222. package/es/hooks/index.mjs +1 -0
  223. package/es/hooks/index.mjs.map +1 -1
  224. package/es/hooks/use-global-config/index.d.ts +1 -0
  225. package/es/hooks/use-global-config/index.mjs +15 -0
  226. package/es/hooks/use-global-config/index.mjs.map +1 -0
  227. package/es/hooks/use-locale/index.d.ts +2 -4
  228. package/es/hooks/use-locale/index.mjs +4 -3
  229. package/es/hooks/use-locale/index.mjs.map +1 -1
  230. package/es/hooks/use-popper/index.mjs +6 -5
  231. package/es/hooks/use-popper/index.mjs.map +1 -1
  232. package/es/index.mjs +2 -0
  233. package/es/index.mjs.map +1 -1
  234. package/es/tokens/config-provider.d.ts +4 -0
  235. package/es/tokens/config-provider.mjs +4 -0
  236. package/es/tokens/config-provider.mjs.map +1 -0
  237. package/es/tokens/index.d.ts +1 -0
  238. package/es/tokens/index.mjs +1 -0
  239. package/es/tokens/index.mjs.map +1 -1
  240. package/es/version.d.ts +1 -1
  241. package/es/version.mjs +1 -1
  242. package/es/version.mjs.map +1 -1
  243. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js +1 -0
  244. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js.map +1 -1
  245. package/lib/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.js.map +1 -1
  246. package/lib/components/alert/src/alert.vue_vue&type=script&lang.js.map +1 -1
  247. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js +1 -1
  248. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js.map +1 -1
  249. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js +4 -0
  250. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js.map +1 -1
  251. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.js.map +1 -1
  252. package/lib/components/button/index.d.ts +6 -1
  253. package/lib/components/button/src/button.d.ts +4 -0
  254. package/lib/components/button/src/button.js +4 -1
  255. package/lib/components/button/src/button.js.map +1 -1
  256. package/lib/components/button/src/button.vue.d.ts +6 -1
  257. package/lib/components/button/src/button.vue_vue&type=script&lang.js +9 -3
  258. package/lib/components/button/src/button.vue_vue&type=script&lang.js.map +1 -1
  259. package/lib/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.js.map +1 -1
  260. package/lib/components/cascader/index.d.ts +8430 -12
  261. package/lib/components/cascader/src/index.vue.d.ts +4216 -6
  262. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js +25 -16
  263. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
  264. package/lib/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
  265. package/lib/components/cascader-panel/index.d.ts +238 -10
  266. package/lib/components/cascader-panel/src/index.vue.d.ts +122 -8
  267. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js +31 -12
  268. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js.map +1 -1
  269. package/lib/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.js.map +1 -1
  270. package/lib/components/cascader-panel/src/menu.vue.d.ts +2 -2
  271. package/lib/components/cascader-panel/src/menu.vue_vue&type=script&lang.js.map +1 -1
  272. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js +14 -11
  273. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js.map +1 -1
  274. package/lib/components/cascader-panel/src/node.vue.d.ts +1 -1
  275. package/lib/components/cascader-panel/src/node.vue_vue&type=script&lang.js.map +1 -1
  276. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js +1 -1
  277. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js.map +1 -1
  278. package/lib/components/color-picker/src/color.js +20 -13
  279. package/lib/components/color-picker/src/color.js.map +1 -1
  280. package/lib/components/config-provider/index.d.ts +12 -5
  281. package/lib/components/config-provider/index.js +2 -2
  282. package/lib/components/config-provider/index.js.map +1 -1
  283. package/lib/components/config-provider/src/config-provider.d.ts +7 -0
  284. package/lib/components/config-provider/src/config-provider.js +22 -0
  285. package/lib/components/config-provider/src/config-provider.js.map +1 -0
  286. package/lib/components/config-provider/src/index.d.ts +18 -0
  287. package/lib/components/config-provider/src/index.js +26 -0
  288. package/lib/components/config-provider/src/index.js.map +1 -0
  289. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
  290. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
  291. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js +1 -1
  292. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js.map +1 -1
  293. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.js.map +1 -1
  294. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js +22 -15
  295. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js.map +1 -1
  296. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.js.map +1 -1
  297. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js +4 -2
  298. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js.map +1 -1
  299. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.js.map +1 -1
  300. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js +4 -3
  301. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js.map +1 -1
  302. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.js.map +1 -1
  303. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js +2 -0
  304. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js.map +1 -1
  305. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.js.map +1 -1
  306. package/lib/components/dropdown/src/dropdown.vue_vue&type=script&lang.js.map +1 -1
  307. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js +67 -67
  308. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js.map +1 -1
  309. package/lib/components/form/index.d.ts +2 -2
  310. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js +3 -2
  311. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js.map +1 -1
  312. package/lib/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.js.map +1 -1
  313. package/lib/components/form/src/form.type.d.ts +1 -3
  314. package/lib/components/form/src/form.vue.d.ts +2 -3
  315. package/lib/components/image/index.d.ts +4 -0
  316. package/lib/components/image/src/image.d.ts +1 -0
  317. package/lib/components/image/src/image.js +4 -0
  318. package/lib/components/image/src/image.js.map +1 -1
  319. package/lib/components/image/src/image.vue.d.ts +4 -0
  320. package/lib/components/image/src/image.vue_vue&type=script&lang.js +2 -2
  321. package/lib/components/image/src/image.vue_vue&type=script&lang.js.map +1 -1
  322. package/lib/components/image/src/image.vue_vue&type=template&id=34467287&lang.js.map +1 -1
  323. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  324. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +2 -2
  325. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js.map +1 -1
  326. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js +2 -2
  327. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js.map +1 -1
  328. package/lib/components/input/src/input.vue_vue&type=script&lang.js +1 -1
  329. package/lib/components/input/src/input.vue_vue&type=script&lang.js.map +1 -1
  330. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js +17 -15
  331. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js.map +1 -1
  332. package/lib/components/loading/src/createLoadingComponent.js +3 -7
  333. package/lib/components/loading/src/createLoadingComponent.js.map +1 -1
  334. package/lib/components/menu/src/menu.js +1 -1
  335. package/lib/components/menu/src/menu.js.map +1 -1
  336. package/lib/components/menu/src/sub-menu.js +1 -1
  337. package/lib/components/menu/src/sub-menu.js.map +1 -1
  338. package/lib/components/message/src/message-method.js +13 -0
  339. package/lib/components/message/src/message-method.js.map +1 -1
  340. package/lib/components/message/src/message.d.ts +2 -0
  341. package/lib/components/message/src/message.js +8 -0
  342. package/lib/components/message/src/message.js.map +1 -1
  343. package/lib/components/message/src/message.vue.d.ts +8 -0
  344. package/lib/components/message/src/message.vue_vue&type=script&lang.js +8 -2
  345. package/lib/components/message/src/message.vue_vue&type=script&lang.js.map +1 -1
  346. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js +55 -45
  347. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js.map +1 -1
  348. package/lib/components/page-header/src/page-header.vue_vue&type=script&lang.js.map +1 -1
  349. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js +2 -2
  350. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js.map +1 -1
  351. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.js.map +1 -1
  352. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js +1 -1
  353. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js.map +1 -1
  354. package/lib/components/result/src/index.vue_vue&type=script&lang.js.map +1 -1
  355. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js +3 -2
  356. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js.map +1 -1
  357. package/lib/components/select/index.d.ts +5 -1
  358. package/lib/components/select/src/select.vue.d.ts +5 -1
  359. package/lib/components/select/src/select.vue_vue&type=script&lang.js +4 -1
  360. package/lib/components/select/src/select.vue_vue&type=script&lang.js.map +1 -1
  361. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js +6 -5
  362. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js.map +1 -1
  363. package/lib/components/select/src/useSelect.js +1 -1
  364. package/lib/components/select/src/useSelect.js.map +1 -1
  365. package/lib/components/select-v2/index.d.ts +14 -0
  366. package/lib/components/select-v2/src/defaults.d.ts +4 -0
  367. package/lib/components/select-v2/src/defaults.js +4 -0
  368. package/lib/components/select-v2/src/defaults.js.map +1 -1
  369. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js +1 -0
  370. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js.map +1 -1
  371. package/lib/components/select-v2/src/select.vue.d.ts +7 -0
  372. package/lib/components/select-v2/src/select.vue_vue&type=script&lang.js.map +1 -1
  373. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js +9 -7
  374. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js.map +1 -1
  375. package/lib/components/table/src/config.js +22 -2
  376. package/lib/components/table/src/config.js.map +1 -1
  377. package/lib/components/table/src/store/watcher.js +14 -6
  378. package/lib/components/table/src/store/watcher.js.map +1 -1
  379. package/lib/components/table/src/table/style-helper.js +2 -2
  380. package/lib/components/table/src/table/style-helper.js.map +1 -1
  381. package/lib/components/table/src/table-body/render-helper.js +2 -3
  382. package/lib/components/table/src/table-body/render-helper.js.map +1 -1
  383. package/lib/components/table/src/table-header/event-helper.js +3 -1
  384. package/lib/components/table/src/table-header/event-helper.js.map +1 -1
  385. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js +3 -3
  386. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js.map +1 -1
  387. package/lib/components/tabs/src/tabs.js +1 -1
  388. package/lib/components/tabs/src/tabs.js.map +1 -1
  389. package/lib/components/teleport/index.d.ts +23 -0
  390. package/lib/components/teleport/index.js +15 -0
  391. package/lib/components/teleport/index.js.map +1 -0
  392. package/lib/components/teleport/src/teleport.d.ts +7 -0
  393. package/lib/components/teleport/src/teleport.js +22 -0
  394. package/lib/components/teleport/src/teleport.js.map +1 -0
  395. package/lib/components/teleport/src/teleport.vue.d.ts +22 -0
  396. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js +32 -0
  397. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js.map +1 -0
  398. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js +23 -0
  399. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js.map +1 -0
  400. package/lib/components/teleport/src/teleport2.js +12 -0
  401. package/lib/components/teleport/src/teleport2.js.map +1 -0
  402. package/lib/components/teleport/style/css.d.ts +0 -0
  403. package/lib/components/teleport/style/css.js +3 -0
  404. package/lib/components/teleport/style/css.js.map +1 -0
  405. package/lib/components/teleport/style/index.d.ts +0 -0
  406. package/lib/components/teleport/style/index.js +3 -0
  407. package/lib/components/teleport/style/index.js.map +1 -0
  408. package/lib/components/time-picker/src/common/picker.vue_vue&type=script&lang.js.map +1 -1
  409. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js +10 -7
  410. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js.map +1 -1
  411. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.js.map +1 -1
  412. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js +9 -1
  413. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js.map +1 -1
  414. package/lib/components/time-select/src/time-select.vue_vue&type=script&lang.js.map +1 -1
  415. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js +5 -2
  416. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js.map +1 -1
  417. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js +4 -2
  418. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js.map +1 -1
  419. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js +3 -2
  420. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js.map +1 -1
  421. package/lib/components/transfer/src/useMove.js +3 -0
  422. package/lib/components/transfer/src/useMove.js.map +1 -1
  423. package/lib/components/tree/index.d.ts +6 -0
  424. package/lib/components/tree/src/tree-node.vue.d.ts +1 -0
  425. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js +20 -0
  426. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  427. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js +9 -6
  428. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js.map +1 -1
  429. package/lib/components/tree/src/tree.type.d.ts +3 -0
  430. package/lib/components/tree/src/tree.vue.d.ts +3 -0
  431. package/lib/components/tree/src/tree.vue_vue&type=script&lang.js.map +1 -1
  432. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js +2 -1
  433. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js.map +1 -1
  434. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js +4 -2
  435. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  436. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js +4 -3
  437. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js.map +1 -1
  438. package/lib/components/tree-v2/src/tree.vue_vue&type=script&lang.js.map +1 -1
  439. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js +2 -1
  440. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js.map +1 -1
  441. package/lib/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  442. package/lib/components/virtual-list/src/builders/build-list.d.ts +9 -3
  443. package/lib/components/virtual-list/src/builders/build-list.js +7 -4
  444. package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
  445. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  446. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  447. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  448. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  449. package/lib/components/virtual-list/src/components/scrollbar.js +1 -2
  450. package/lib/components/virtual-list/src/components/scrollbar.js.map +1 -1
  451. package/lib/components/virtual-list/src/props.d.ts +6 -3
  452. package/lib/components/virtual-list/src/props.js +5 -1
  453. package/lib/components/virtual-list/src/props.js.map +1 -1
  454. package/lib/hooks/index.d.ts +1 -0
  455. package/lib/hooks/index.js +2 -0
  456. package/lib/hooks/index.js.map +1 -1
  457. package/lib/hooks/use-global-config/index.d.ts +1 -0
  458. package/lib/hooks/use-global-config/index.js +19 -0
  459. package/lib/hooks/use-global-config/index.js.map +1 -0
  460. package/lib/hooks/use-locale/index.d.ts +2 -4
  461. package/lib/hooks/use-locale/index.js +4 -3
  462. package/lib/hooks/use-locale/index.js.map +1 -1
  463. package/lib/hooks/use-popper/index.js +6 -5
  464. package/lib/hooks/use-popper/index.js.map +1 -1
  465. package/lib/index.js +4 -0
  466. package/lib/index.js.map +1 -1
  467. package/lib/tokens/config-provider.d.ts +4 -0
  468. package/lib/tokens/config-provider.js +8 -0
  469. package/lib/tokens/config-provider.js.map +1 -0
  470. package/lib/tokens/index.d.ts +1 -0
  471. package/lib/tokens/index.js +2 -0
  472. package/lib/tokens/index.js.map +1 -1
  473. package/lib/version.d.ts +1 -1
  474. package/lib/version.js +1 -1
  475. package/lib/version.js.map +1 -1
  476. package/package.json +2 -2
  477. package/tags.json +1 -1
  478. package/theme-chalk/el-checkbox.css +1 -1
  479. package/theme-chalk/el-date-picker.css +1 -1
  480. package/theme-chalk/el-form.css +1 -1
  481. package/theme-chalk/el-input-number.css +1 -1
  482. package/theme-chalk/el-input.css +1 -1
  483. package/theme-chalk/el-menu.css +1 -1
  484. package/theme-chalk/el-message.css +1 -1
  485. package/theme-chalk/el-select.css +1 -1
  486. package/theme-chalk/el-tabs.css +1 -1
  487. package/theme-chalk/el-time-picker.css +1 -1
  488. package/theme-chalk/el-time-select.css +1 -1
  489. package/theme-chalk/el-virtual-list.css +1 -1
  490. package/theme-chalk/index.css +1 -1
  491. package/theme-chalk/src/checkbox.scss +1 -1
  492. package/theme-chalk/src/common/var.scss +0 -2
  493. package/theme-chalk/src/date-picker/picker.scss +0 -1
  494. package/theme-chalk/src/form.scss +1 -1
  495. package/theme-chalk/src/input-number.scss +1 -0
  496. package/theme-chalk/src/input.scss +14 -15
  497. package/theme-chalk/src/menu.scss +16 -14
  498. package/theme-chalk/src/message.scss +6 -1
  499. package/theme-chalk/src/select.scss +2 -3
  500. package/theme-chalk/src/tabs.scss +6 -0
  501. package/theme-chalk/src/virtual-list.scss +16 -0
  502. package/web-types.json +1 -1
  503. package/es/components/affix/index.d.ts +0 -48
  504. package/es/components/affix/src/affix.vue.d.ts +0 -48
  505. package/es/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  506. package/es/components/config-provider/config-provider.d.ts +0 -11
  507. package/es/components/config-provider/config-provider.mjs +0 -20
  508. package/es/components/config-provider/config-provider.mjs.map +0 -1
  509. package/es/components/select/src/useSelect.d.ts +0 -76
  510. package/es/components/slider/index.d.ts +0 -307
  511. package/es/components/slider/src/index.vue.d.ts +0 -155
  512. package/es/components/slider/src/useSlide.d.ts +0 -21
  513. package/es/components/tree-v2/src/composables/useTree.d.ts +0 -29
  514. package/lib/components/affix/index.d.ts +0 -48
  515. package/lib/components/affix/src/affix.vue.d.ts +0 -48
  516. package/lib/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  517. package/lib/components/config-provider/config-provider.d.ts +0 -11
  518. package/lib/components/config-provider/config-provider.js +0 -24
  519. package/lib/components/config-provider/config-provider.js.map +0 -1
  520. package/lib/components/select/src/useSelect.d.ts +0 -76
  521. package/lib/components/slider/index.d.ts +0 -307
  522. package/lib/components/slider/src/index.vue.d.ts +0 -155
  523. package/lib/components/slider/src/useSlide.d.ts +0 -21
  524. package/lib/components/tree-v2/src/composables/useTree.d.ts +0 -29
@@ -7,8 +7,9 @@ declare const FixedSizeList: import("vue").DefineComponent<{
7
7
  readonly innerElement: import("../../../../utils/props").BuildPropReturn<readonly [StringConstructor, ObjectConstructor], "div", unknown, unknown, unknown>;
8
8
  readonly style: import("../../../../utils/props").BuildPropReturn<import("../../../../utils/props").PropWrapper<import("../../../../utils/types").StyleValue>, unknown, unknown, unknown, unknown>;
9
9
  readonly useIsScrolling: import("../../../../utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
10
- readonly width: import("../../../../utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, true, unknown, unknown>;
10
+ readonly width: import("../../../../utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, false, unknown, unknown>;
11
11
  readonly perfMode: import("../../../../utils/props").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
12
+ readonly scrollbarAlwaysOn: import("../../../../utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
12
13
  readonly cache: import("../../../../utils/props").BuildPropReturn<NumberConstructor, 2, false, never, never>;
13
14
  readonly estimatedItemSize: import("../../../../utils/props").BuildPropReturn<NumberConstructor, never, false, never, never>;
14
15
  readonly layout: import("../../../../utils/props").BuildPropReturn<StringConstructor, "vertical", false, "horizontal" | "vertical", never>;
@@ -16,7 +17,7 @@ declare const FixedSizeList: import("vue").DefineComponent<{
16
17
  readonly total: import("../../../../utils/props").BuildPropReturn<NumberConstructor, never, true, never, never>;
17
18
  readonly itemSize: import("../../../../utils/props").BuildPropReturn<import("../../../../utils/props").PropWrapper<number | import("../types").ItemSize>, never, true, never, never>;
18
19
  }, {
19
- clientSize: import("vue").ComputedRef<string | number>;
20
+ clientSize: import("vue").ComputedRef<string | number | undefined>;
20
21
  estimatedTotalSize: import("vue").ComputedRef<number>;
21
22
  windowStyle: import("vue").ComputedRef<(string | import("vue").CSSProperties | import("../../../../utils/types").StyleValue[] | {
22
23
  position: string;
@@ -39,6 +40,7 @@ declare const FixedSizeList: import("vue").DefineComponent<{
39
40
  scrollOffset: number;
40
41
  updateRequested: boolean;
41
42
  isScrollbarDragging: boolean;
43
+ scrollbarAlwaysOn: import("../../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
42
44
  }>;
43
45
  getItemStyle: (idx: number) => import("vue").CSSProperties;
44
46
  onScroll: (e: Event) => void;
@@ -58,6 +60,7 @@ declare const FixedSizeList: import("vue").DefineComponent<{
58
60
  readonly useIsScrolling?: unknown;
59
61
  readonly width?: unknown;
60
62
  readonly perfMode?: unknown;
63
+ readonly scrollbarAlwaysOn?: unknown;
61
64
  readonly cache?: unknown;
62
65
  readonly estimatedItemSize?: unknown;
63
66
  readonly layout?: unknown;
@@ -66,12 +69,12 @@ declare const FixedSizeList: import("vue").DefineComponent<{
66
69
  readonly itemSize?: unknown;
67
70
  } & {
68
71
  height: import("../../../../utils/props").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
69
- width: import("../../../../utils/props").BuildPropType<readonly [NumberConstructor, StringConstructor], unknown, unknown>;
70
72
  layout: import("../../../../utils/props").BuildPropType<StringConstructor, "horizontal" | "vertical", never>;
71
73
  data: any[];
72
74
  direction: import("../../../../utils/props").BuildPropType<StringConstructor, "ltr" | "rtl", never>;
73
75
  className: string;
74
76
  total: number;
77
+ scrollbarAlwaysOn: import("../../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
75
78
  perfMode: import("../../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
76
79
  containerElement: import("../../../../utils/props").BuildPropType<import("../../../../utils/props").PropWrapper<string | Element>, unknown, unknown>;
77
80
  innerElement: import("../../../../utils/props").BuildPropType<readonly [StringConstructor, ObjectConstructor], unknown, unknown>;
@@ -80,17 +83,20 @@ declare const FixedSizeList: import("vue").DefineComponent<{
80
83
  initScrollOffset: number;
81
84
  itemSize: import("../../../../utils/props").BuildPropType<import("../../../../utils/props").PropWrapper<number | import("../types").ItemSize>, never, never>;
82
85
  } & {
86
+ width?: import("../../../../utils/props").BuildPropType<readonly [NumberConstructor, StringConstructor], unknown, unknown> | undefined;
83
87
  style?: import("../../../../utils/types").StyleValue | undefined;
84
88
  estimatedItemSize?: number | undefined;
85
89
  }> & {
86
90
  onScroll?: ((...args: any[]) => any) | undefined;
87
91
  "onItem-rendered"?: ((...args: any[]) => any) | undefined;
88
92
  }, {
93
+ width: import("../../../../utils/props").BuildPropType<readonly [NumberConstructor, StringConstructor], unknown, unknown>;
89
94
  layout: import("../../../../utils/props").BuildPropType<StringConstructor, "horizontal" | "vertical", never>;
90
95
  style: import("../../../../utils/types").StyleValue;
91
96
  data: any[];
92
97
  direction: import("../../../../utils/props").BuildPropType<StringConstructor, "ltr" | "rtl", never>;
93
98
  className: string;
99
+ scrollbarAlwaysOn: import("../../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
94
100
  perfMode: import("../../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
95
101
  containerElement: import("../../../../utils/props").BuildPropType<import("../../../../utils/props").PropWrapper<string | Element>, unknown, unknown>;
96
102
  innerElement: import("../../../../utils/props").BuildPropType<readonly [StringConstructor, ObjectConstructor], unknown, unknown>;
@@ -31,8 +31,7 @@ const ScrollBar = defineComponent({
31
31
  [ScrollbarDirKey[props.layout]]: "2px",
32
32
  right: "2px",
33
33
  bottom: "2px",
34
- borderRadius: "4px",
35
- ...props.visible ? {} : { display: "none" }
34
+ borderRadius: "4px"
36
35
  }));
37
36
  const thumbSize = computed(() => {
38
37
  const ratio = props.ratio;
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar.mjs","sources":["../../../../../../../packages/components/virtual-list/src/components/scrollbar.ts"],"sourcesContent":["import {\n computed,\n defineComponent,\n ref,\n reactive,\n onMounted,\n onBeforeUnmount,\n watch,\n h,\n withModifiers,\n unref,\n} from 'vue'\nimport { BAR_MAP } from '@element-plus/components/scrollbar'\nimport { on, off } from '@element-plus/utils/dom'\nimport { rAF, cAF } from '@element-plus/utils/raf'\nimport isServer from '@element-plus/utils/isServer'\n\nimport { SCROLLBAR_MIN_SIZE, HORIZONTAL, ScrollbarDirKey } from '../defaults'\nimport { virtualizedScrollbarProps } from '../props'\nimport { renderThumbStyle } from '../utils'\n\nimport type { CSSProperties } from 'vue'\n\nconst ScrollBar = defineComponent({\n name: 'ElVirtualScrollBar',\n props: virtualizedScrollbarProps,\n emits: ['scroll', 'start-move', 'stop-move'],\n setup(props, { emit }) {\n const GAP = 4 // top 2 + bottom 2 | left 2 + right 2\n\n // DOM refs\n const trackRef = ref<HTMLElement>()\n const thumbRef = ref<HTMLElement>()\n\n // local variables\n let frameHandle: null | number = null\n let onselectstartStore: null | typeof document.onselectstart = null\n\n // data\n const state = reactive({\n isDragging: false,\n traveled: 0,\n })\n\n const bar = computed(() => BAR_MAP[props.layout])\n\n const trackSize = computed(() => props.clientSize! - GAP)\n\n const trackStyle = computed<CSSProperties>(() => ({\n position: 'absolute',\n width: HORIZONTAL === props.layout ? `${trackSize.value}px` : '6px',\n height: HORIZONTAL === props.layout ? '6px' : `${trackSize.value}px`,\n [ScrollbarDirKey[props.layout]]: '2px',\n right: '2px',\n bottom: '2px',\n borderRadius: '4px',\n ...(props.visible ? {} : { display: 'none' }),\n }))\n\n const thumbSize = computed(() => {\n const ratio = props.ratio!\n const clientSize = props.clientSize!\n if (ratio >= 100) {\n return Number.POSITIVE_INFINITY\n }\n\n if (ratio >= 50) {\n return (ratio * clientSize) / 100\n }\n\n const SCROLLBAR_MAX_SIZE = clientSize / 3\n return Math.floor(\n Math.min(\n Math.max(ratio * clientSize, SCROLLBAR_MIN_SIZE),\n SCROLLBAR_MAX_SIZE\n )\n )\n })\n\n // const sizeRange = computed(() => props.size - thumbSize.value)\n\n const thumbStyle = computed<CSSProperties>(() => {\n if (!Number.isFinite(thumbSize.value)) {\n return {\n display: 'none',\n }\n }\n\n const thumb = `${thumbSize.value}px`\n\n const style: CSSProperties = renderThumbStyle(\n {\n bar: bar.value,\n size: thumb,\n move: state.traveled,\n },\n props.layout\n )\n\n return style\n })\n\n const totalSteps = computed(() =>\n Math.floor(props.clientSize! - thumbSize.value - GAP)\n )\n\n const attachEvents = () => {\n on(window, 'mousemove', onMouseMove)\n on(window, 'mouseup', onMouseUp)\n\n const thumbEl = unref(thumbRef)\n\n if (!thumbEl) return\n\n onselectstartStore = document.onselectstart\n document.onselectstart = () => false\n\n on(thumbEl, 'touchmove', onMouseMove)\n on(thumbEl, 'touchend', onMouseUp)\n }\n\n const detachEvents = () => {\n off(window, 'mousemove', onMouseMove)\n off(window, 'mouseup', onMouseUp)\n\n document.onselectstart = onselectstartStore\n onselectstartStore = null\n\n const thumbEl = unref(thumbRef)\n if (!thumbEl) return\n\n off(thumbEl, 'touchmove', onMouseMove)\n off(thumbEl, 'touchend', onMouseUp)\n }\n\n const onThumbMouseDown = (e: Event) => {\n e.stopImmediatePropagation()\n if (\n (e as KeyboardEvent).ctrlKey ||\n [1, 2].includes((e as MouseEvent).button)\n ) {\n return\n }\n\n state.isDragging = true\n state[bar.value.axis] =\n e.currentTarget![bar.value.offset] -\n (e[bar.value.client] -\n (e.currentTarget as HTMLElement).getBoundingClientRect()[\n bar.value.direction\n ])\n\n emit('start-move')\n attachEvents()\n }\n\n const onMouseUp = () => {\n state.isDragging = false\n state[bar.value.axis] = 0\n emit('stop-move')\n detachEvents()\n }\n\n const onMouseMove = (e: Event) => {\n const { isDragging } = state\n if (!isDragging) return\n if (!thumbRef.value || !trackRef.value) return\n\n const prevPage = state[bar.value.axis]\n if (!prevPage) return\n\n cAF(frameHandle!)\n // using the current track's offset top/left - the current pointer's clientY/clientX\n // to get the relative position of the pointer to the track.\n const offset =\n (trackRef.value.getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]) *\n -1\n\n // find where the thumb was clicked on.\n const thumbClickPosition = thumbRef.value[bar.value.offset] - prevPage\n /**\n * +--------------+ +--------------+\n * | - <--------- thumb.offsetTop | |\n * | |+| <--+ | |\n * | - | | |\n * | Content | | | |\n * | | | | |\n * | | | | |\n * | | | | -\n * | | +--> | |+|\n * | | | -\n * +--------------+ +--------------+\n */\n\n // using the current position - prev position to\n\n const distance = offset - thumbClickPosition\n // get how many steps in total.\n // gap of 2 on top, 2 on bottom, in total 4.\n // using totalSteps ÷ totalSize getting each step's size * distance to get the new\n // scroll offset to scrollTo\n frameHandle = rAF(() => {\n state.traveled = Math.max(\n 0,\n Math.min(\n distance,\n totalSteps.value // 2 is the top value\n )\n )\n emit('scroll', distance, totalSteps.value)\n })\n }\n\n const clickTrackHandler = (e: MouseEvent) => {\n const offset = Math.abs(\n (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]\n )\n const thumbHalf = thumbRef.value![bar.value.offset] / 2\n const distance = offset - thumbHalf\n\n state.traveled = Math.max(0, Math.min(distance, totalSteps.value))\n emit('scroll', distance, totalSteps.value)\n }\n\n const onScrollbarTouchStart = (e: Event) => e.preventDefault()\n\n watch(\n () => props.scrollFrom,\n (v) => {\n if (state.isDragging) return\n /**\n * this is simply mapping the current scrollbar offset\n *\n * formula 1:\n * v = scrollOffset / (estimatedTotalSize - clientSize)\n * traveled = v * (clientSize - thumbSize - GAP) --> v * totalSteps\n *\n * formula 2:\n * traveled = (v * clientSize) / (clientSize / totalSteps) --> (v * clientSize) * (totalSteps / clientSize) --> v * totalSteps\n */\n state.traveled = Math.ceil(v! * totalSteps.value)\n }\n )\n\n onMounted(() => {\n if (isServer) return\n\n on(trackRef.value!, 'touchstart', onScrollbarTouchStart)\n on(thumbRef.value!, 'touchstart', onThumbMouseDown)\n })\n\n onBeforeUnmount(() => {\n off(trackRef.value!, 'touchstart', onScrollbarTouchStart)\n detachEvents()\n })\n\n return () => {\n return h(\n 'div',\n {\n role: 'presentation',\n ref: trackRef,\n class: 'el-virtual-scrollbar',\n style: trackStyle.value,\n onMousedown: withModifiers(clickTrackHandler, ['stop', 'prevent']),\n },\n h(\n 'div',\n {\n ref: thumbRef,\n class: 'el-scrollbar__thumb',\n style: thumbStyle.value,\n onMousedown: onThumbMouseDown,\n },\n []\n )\n )\n }\n },\n})\n\nexport default ScrollBar\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scrollbar.mjs","sources":["../../../../../../../packages/components/virtual-list/src/components/scrollbar.ts"],"sourcesContent":["import {\n computed,\n defineComponent,\n ref,\n reactive,\n onMounted,\n onBeforeUnmount,\n watch,\n h,\n withModifiers,\n unref,\n} from 'vue'\nimport { BAR_MAP } from '@element-plus/components/scrollbar'\nimport { on, off } from '@element-plus/utils/dom'\nimport { rAF, cAF } from '@element-plus/utils/raf'\nimport isServer from '@element-plus/utils/isServer'\n\nimport { SCROLLBAR_MIN_SIZE, HORIZONTAL, ScrollbarDirKey } from '../defaults'\nimport { virtualizedScrollbarProps } from '../props'\nimport { renderThumbStyle } from '../utils'\n\nimport type { CSSProperties } from 'vue'\n\nconst ScrollBar = defineComponent({\n name: 'ElVirtualScrollBar',\n props: virtualizedScrollbarProps,\n emits: ['scroll', 'start-move', 'stop-move'],\n setup(props, { emit }) {\n const GAP = 4 // top 2 + bottom 2 | left 2 + right 2\n\n // DOM refs\n const trackRef = ref<HTMLElement>()\n const thumbRef = ref<HTMLElement>()\n\n // local variables\n let frameHandle: null | number = null\n let onselectstartStore: null | typeof document.onselectstart = null\n\n // data\n const state = reactive({\n isDragging: false,\n traveled: 0,\n })\n\n const bar = computed(() => BAR_MAP[props.layout])\n\n const trackSize = computed(() => props.clientSize! - GAP)\n\n const trackStyle = computed<CSSProperties>(() => ({\n position: 'absolute',\n width: HORIZONTAL === props.layout ? `${trackSize.value}px` : '6px',\n height: HORIZONTAL === props.layout ? '6px' : `${trackSize.value}px`,\n [ScrollbarDirKey[props.layout]]: '2px',\n right: '2px',\n bottom: '2px',\n borderRadius: '4px',\n }))\n\n const thumbSize = computed(() => {\n const ratio = props.ratio!\n const clientSize = props.clientSize!\n if (ratio >= 100) {\n return Number.POSITIVE_INFINITY\n }\n\n if (ratio >= 50) {\n return (ratio * clientSize) / 100\n }\n\n const SCROLLBAR_MAX_SIZE = clientSize / 3\n return Math.floor(\n Math.min(\n Math.max(ratio * clientSize, SCROLLBAR_MIN_SIZE),\n SCROLLBAR_MAX_SIZE\n )\n )\n })\n\n // const sizeRange = computed(() => props.size - thumbSize.value)\n\n const thumbStyle = computed<CSSProperties>(() => {\n if (!Number.isFinite(thumbSize.value)) {\n return {\n display: 'none',\n }\n }\n\n const thumb = `${thumbSize.value}px`\n\n const style: CSSProperties = renderThumbStyle(\n {\n bar: bar.value,\n size: thumb,\n move: state.traveled,\n },\n props.layout\n )\n\n return style\n })\n\n const totalSteps = computed(() =>\n Math.floor(props.clientSize! - thumbSize.value - GAP)\n )\n\n const attachEvents = () => {\n on(window, 'mousemove', onMouseMove)\n on(window, 'mouseup', onMouseUp)\n\n const thumbEl = unref(thumbRef)\n\n if (!thumbEl) return\n\n onselectstartStore = document.onselectstart\n document.onselectstart = () => false\n\n on(thumbEl, 'touchmove', onMouseMove)\n on(thumbEl, 'touchend', onMouseUp)\n }\n\n const detachEvents = () => {\n off(window, 'mousemove', onMouseMove)\n off(window, 'mouseup', onMouseUp)\n\n document.onselectstart = onselectstartStore\n onselectstartStore = null\n\n const thumbEl = unref(thumbRef)\n if (!thumbEl) return\n\n off(thumbEl, 'touchmove', onMouseMove)\n off(thumbEl, 'touchend', onMouseUp)\n }\n\n const onThumbMouseDown = (e: Event) => {\n e.stopImmediatePropagation()\n if (\n (e as KeyboardEvent).ctrlKey ||\n [1, 2].includes((e as MouseEvent).button)\n ) {\n return\n }\n\n state.isDragging = true\n state[bar.value.axis] =\n e.currentTarget![bar.value.offset] -\n (e[bar.value.client] -\n (e.currentTarget as HTMLElement).getBoundingClientRect()[\n bar.value.direction\n ])\n\n emit('start-move')\n attachEvents()\n }\n\n const onMouseUp = () => {\n state.isDragging = false\n state[bar.value.axis] = 0\n emit('stop-move')\n detachEvents()\n }\n\n const onMouseMove = (e: Event) => {\n const { isDragging } = state\n if (!isDragging) return\n if (!thumbRef.value || !trackRef.value) return\n\n const prevPage = state[bar.value.axis]\n if (!prevPage) return\n\n cAF(frameHandle!)\n // using the current track's offset top/left - the current pointer's clientY/clientX\n // to get the relative position of the pointer to the track.\n const offset =\n (trackRef.value.getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]) *\n -1\n\n // find where the thumb was clicked on.\n const thumbClickPosition = thumbRef.value[bar.value.offset] - prevPage\n /**\n * +--------------+ +--------------+\n * | - <--------- thumb.offsetTop | |\n * | |+| <--+ | |\n * | - | | |\n * | Content | | | |\n * | | | | |\n * | | | | |\n * | | | | -\n * | | +--> | |+|\n * | | | -\n * +--------------+ +--------------+\n */\n\n // using the current position - prev position to\n\n const distance = offset - thumbClickPosition\n // get how many steps in total.\n // gap of 2 on top, 2 on bottom, in total 4.\n // using totalSteps ÷ totalSize getting each step's size * distance to get the new\n // scroll offset to scrollTo\n frameHandle = rAF(() => {\n state.traveled = Math.max(\n 0,\n Math.min(\n distance,\n totalSteps.value // 2 is the top value\n )\n )\n emit('scroll', distance, totalSteps.value)\n })\n }\n\n const clickTrackHandler = (e: MouseEvent) => {\n const offset = Math.abs(\n (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]\n )\n const thumbHalf = thumbRef.value![bar.value.offset] / 2\n const distance = offset - thumbHalf\n\n state.traveled = Math.max(0, Math.min(distance, totalSteps.value))\n emit('scroll', distance, totalSteps.value)\n }\n\n const onScrollbarTouchStart = (e: Event) => e.preventDefault()\n\n watch(\n () => props.scrollFrom,\n (v) => {\n if (state.isDragging) return\n /**\n * this is simply mapping the current scrollbar offset\n *\n * formula 1:\n * v = scrollOffset / (estimatedTotalSize - clientSize)\n * traveled = v * (clientSize - thumbSize - GAP) --> v * totalSteps\n *\n * formula 2:\n * traveled = (v * clientSize) / (clientSize / totalSteps) --> (v * clientSize) * (totalSteps / clientSize) --> v * totalSteps\n */\n state.traveled = Math.ceil(v! * totalSteps.value)\n }\n )\n\n onMounted(() => {\n if (isServer) return\n\n on(trackRef.value!, 'touchstart', onScrollbarTouchStart)\n on(thumbRef.value!, 'touchstart', onThumbMouseDown)\n })\n\n onBeforeUnmount(() => {\n off(trackRef.value!, 'touchstart', onScrollbarTouchStart)\n detachEvents()\n })\n\n return () => {\n return h(\n 'div',\n {\n role: 'presentation',\n ref: trackRef,\n class: 'el-virtual-scrollbar',\n style: trackStyle.value,\n onMousedown: withModifiers(clickTrackHandler, ['stop', 'prevent']),\n },\n h(\n 'div',\n {\n ref: thumbRef,\n class: 'el-scrollbar__thumb',\n style: thumbStyle.value,\n onMousedown: onThumbMouseDown,\n },\n []\n )\n )\n }\n },\n})\n\nexport default ScrollBar\n"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@ export declare const virtualizedProps: {
10
10
  readonly innerElement: import("element-plus/es/utils/props").BuildPropReturn<readonly [StringConstructor, ObjectConstructor], "div", unknown, unknown, unknown>;
11
11
  readonly style: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<StyleValue>, unknown, unknown, unknown, unknown>;
12
12
  readonly useIsScrolling: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
13
- readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, true, unknown, unknown>;
13
+ readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, false, unknown, unknown>;
14
14
  readonly perfMode: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
15
+ readonly scrollbarAlwaysOn: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
15
16
  };
16
17
  export declare const virtualizedListProps: {
17
18
  readonly className: import("element-plus/es/utils/props").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
@@ -22,8 +23,9 @@ export declare const virtualizedListProps: {
22
23
  readonly innerElement: import("element-plus/es/utils/props").BuildPropReturn<readonly [StringConstructor, ObjectConstructor], "div", unknown, unknown, unknown>;
23
24
  readonly style: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<StyleValue>, unknown, unknown, unknown, unknown>;
24
25
  readonly useIsScrolling: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
25
- readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, true, unknown, unknown>;
26
+ readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, false, unknown, unknown>;
26
27
  readonly perfMode: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
28
+ readonly scrollbarAlwaysOn: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
27
29
  readonly cache: import("element-plus/es/utils/props").BuildPropReturn<NumberConstructor, 2, false, never, never>;
28
30
  readonly estimatedItemSize: import("element-plus/es/utils/props").BuildPropReturn<NumberConstructor, never, false, never, never>;
29
31
  readonly layout: import("element-plus/es/utils/props").BuildPropReturn<StringConstructor, "vertical", false, "horizontal" | "vertical", never>;
@@ -40,8 +42,9 @@ export declare const virtualizedGridProps: {
40
42
  readonly innerElement: import("element-plus/es/utils/props").BuildPropReturn<readonly [StringConstructor, ObjectConstructor], "div", unknown, unknown, unknown>;
41
43
  readonly style: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<StyleValue>, unknown, unknown, unknown, unknown>;
42
44
  readonly useIsScrolling: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
43
- readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, true, unknown, unknown>;
45
+ readonly width: import("element-plus/es/utils/props").BuildPropReturn<readonly [NumberConstructor, StringConstructor], unknown, false, unknown, unknown>;
44
46
  readonly perfMode: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
47
+ readonly scrollbarAlwaysOn: import("element-plus/es/utils/props").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
45
48
  readonly columnCache: import("element-plus/es/utils/props").BuildPropReturn<NumberConstructor, 2, false, never, never>;
46
49
  readonly columnWidth: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<number | ItemSize>, never, true, never, never>;
47
50
  readonly estimatedColumnWidth: import("element-plus/es/utils/props").BuildPropReturn<NumberConstructor, never, false, never, never>;
@@ -61,11 +61,15 @@ const virtualizedProps = buildProps({
61
61
  },
62
62
  width: {
63
63
  type: [Number, String],
64
- required: true
64
+ required: false
65
65
  },
66
66
  perfMode: {
67
67
  type: Boolean,
68
68
  default: true
69
+ },
70
+ scrollbarAlwaysOn: {
71
+ type: Boolean,
72
+ default: false
69
73
  }
70
74
  });
71
75
  const virtualizedListProps = buildProps({
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../../../../packages/components/virtual-list/src/props.ts"],"sourcesContent":["import {\n buildProp,\n buildProps,\n definePropType,\n mutable,\n} from '@element-plus/utils/props'\nimport { VERTICAL } from './defaults'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { StyleValue } from '@element-plus/utils/types'\nimport type { ItemSize } from './types'\n\nconst itemSize = buildProp({\n type: definePropType<number | ItemSize>([Number, Function]),\n required: true,\n} as const)\n\nconst estimatedItemSize = buildProp({\n type: Number,\n} as const)\n\nconst cache = buildProp({\n type: Number,\n default: 2,\n} as const)\n\nconst direction = buildProp({\n type: String,\n values: ['ltr', 'rtl'],\n default: 'ltr',\n} as const)\n\nconst initScrollOffset = buildProp({\n type: Number,\n default: 0,\n} as const)\n\nconst total = buildProp({\n type: Number,\n required: true,\n} as const)\n\nconst layout = buildProp({\n type: String,\n values: ['horizontal', 'vertical'],\n default: VERTICAL,\n} as const)\n\nexport const virtualizedProps = buildProps({\n className: {\n type: String,\n default: '',\n },\n\n containerElement: {\n type: definePropType<string | Element>([String, Object]),\n default: 'div',\n },\n\n data: {\n type: definePropType<any[]>(Array),\n default: () => mutable([] as const),\n },\n\n /**\n * @description controls the horizontal direction.\n */\n direction,\n\n height: {\n type: [String, Number],\n required: true,\n },\n\n innerElement: {\n type: [String, Object],\n default: 'div',\n },\n\n style: {\n type: definePropType<StyleValue>([Object, String, Array]),\n },\n\n useIsScrolling: {\n type: Boolean,\n default: false,\n },\n\n width: {\n type: [Number, String],\n required: true,\n },\n\n perfMode: {\n type: Boolean,\n default: true,\n },\n} as const)\n\nexport const virtualizedListProps = buildProps({\n /**\n * @description describes how many items should be pre rendered to the head\n * and the tail of the window\n */\n cache,\n\n estimatedItemSize,\n\n /**\n * @description controls the list's orientation\n */\n layout,\n\n initScrollOffset,\n\n /**\n * @description describes the total number of the list.\n */\n total,\n\n itemSize,\n ...virtualizedProps,\n} as const)\n\nexport const virtualizedGridProps = buildProps({\n columnCache: cache,\n columnWidth: itemSize,\n estimatedColumnWidth: estimatedItemSize,\n estimatedRowHeight: estimatedItemSize,\n initScrollLeft: initScrollOffset,\n initScrollTop: initScrollOffset,\n rowCache: cache,\n rowHeight: itemSize,\n totalColumn: total,\n totalRow: total,\n ...virtualizedProps,\n} as const)\n\nexport const virtualizedScrollbarProps = buildProps({\n layout,\n total,\n ratio: {\n type: Number,\n required: true,\n },\n clientSize: {\n type: Number,\n required: true,\n },\n scrollFrom: {\n type: Number,\n required: true,\n },\n visible: Boolean,\n} as const)\n\nexport type VirtualizedProps = ExtractPropTypes<typeof virtualizedProps>\nexport type VirtualizedListProps = ExtractPropTypes<typeof virtualizedListProps>\nexport type VirtualizedGridProps = ExtractPropTypes<typeof virtualizedGridProps>\n\nexport type VirtualizedScrollbarProps = ExtractPropTypes<\n typeof virtualizedScrollbarProps\n>\n"],"names":[],"mappings":";;;AAYA,MAAM,WAAW,UAAU;AAAA,EACzB,MAAM,eAAkC,CAAC,QAAQ;AAAA,EACjD,UAAU;AAAA;AAGZ,MAAM,oBAAoB,UAAU;AAAA,EAClC,MAAM;AAAA;AAGR,MAAM,QAAQ,UAAU;AAAA,EACtB,MAAM;AAAA,EACN,SAAS;AAAA;AAGX,MAAM,YAAY,UAAU;AAAA,EAC1B,MAAM;AAAA,EACN,QAAQ,CAAC,OAAO;AAAA,EAChB,SAAS;AAAA;AAGX,MAAM,mBAAmB,UAAU;AAAA,EACjC,MAAM;AAAA,EACN,SAAS;AAAA;AAGX,MAAM,QAAQ,UAAU;AAAA,EACtB,MAAM;AAAA,EACN,UAAU;AAAA;AAGZ,MAAM,SAAS,UAAU;AAAA,EACvB,MAAM;AAAA,EACN,QAAQ,CAAC,cAAc;AAAA,EACvB,SAAS;AAAA;MAGE,mBAAmB,WAAW;AAAA,EACzC,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAGX,kBAAkB;AAAA,IAChB,MAAM,eAAiC,CAAC,QAAQ;AAAA,IAChD,SAAS;AAAA;AAAA,EAGX,MAAM;AAAA,IACJ,MAAM,eAAsB;AAAA,IAC5B,SAAS,MAAM,QAAQ;AAAA;AAAA,EAMzB;AAAA,EAEA,QAAQ;AAAA,IACN,MAAM,CAAC,QAAQ;AAAA,IACf,UAAU;AAAA;AAAA,EAGZ,cAAc;AAAA,IACZ,MAAM,CAAC,QAAQ;AAAA,IACf,SAAS;AAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM,eAA2B,CAAC,QAAQ,QAAQ;AAAA;AAAA,EAGpD,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ;AAAA,IACf,UAAU;AAAA;AAAA,EAGZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;MAIA,uBAAuB,WAAW;AAAA,EAK7C;AAAA,EAEA;AAAA,EAKA;AAAA,EAEA;AAAA,EAKA;AAAA,EAEA;AAAA,KACG;AAAA;MAGQ,uBAAuB,WAAW;AAAA,EAC7C,aAAa;AAAA,EACb,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,UAAU;AAAA,KACP;AAAA;MAGQ,4BAA4B,WAAW;AAAA,EAClD;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,SAAS;AAAA;;;;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../../../../packages/components/virtual-list/src/props.ts"],"sourcesContent":["import {\n buildProp,\n buildProps,\n definePropType,\n mutable,\n} from '@element-plus/utils/props'\nimport { VERTICAL } from './defaults'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { StyleValue } from '@element-plus/utils/types'\nimport type { ItemSize } from './types'\n\nconst itemSize = buildProp({\n type: definePropType<number | ItemSize>([Number, Function]),\n required: true,\n} as const)\n\nconst estimatedItemSize = buildProp({\n type: Number,\n} as const)\n\nconst cache = buildProp({\n type: Number,\n default: 2,\n} as const)\n\nconst direction = buildProp({\n type: String,\n values: ['ltr', 'rtl'],\n default: 'ltr',\n} as const)\n\nconst initScrollOffset = buildProp({\n type: Number,\n default: 0,\n} as const)\n\nconst total = buildProp({\n type: Number,\n required: true,\n} as const)\n\nconst layout = buildProp({\n type: String,\n values: ['horizontal', 'vertical'],\n default: VERTICAL,\n} as const)\n\nexport const virtualizedProps = buildProps({\n className: {\n type: String,\n default: '',\n },\n\n containerElement: {\n type: definePropType<string | Element>([String, Object]),\n default: 'div',\n },\n\n data: {\n type: definePropType<any[]>(Array),\n default: () => mutable([] as const),\n },\n\n /**\n * @description controls the horizontal direction.\n */\n direction,\n\n height: {\n type: [String, Number],\n required: true,\n },\n\n innerElement: {\n type: [String, Object],\n default: 'div',\n },\n\n style: {\n type: definePropType<StyleValue>([Object, String, Array]),\n },\n\n useIsScrolling: {\n type: Boolean,\n default: false,\n },\n\n width: {\n type: [Number, String],\n required: false,\n },\n\n perfMode: {\n type: Boolean,\n default: true,\n },\n scrollbarAlwaysOn: {\n type: Boolean,\n default: false,\n },\n} as const)\n\nexport const virtualizedListProps = buildProps({\n /**\n * @description describes how many items should be pre rendered to the head\n * and the tail of the window\n */\n cache,\n\n estimatedItemSize,\n\n /**\n * @description controls the list's orientation\n */\n layout,\n\n initScrollOffset,\n\n /**\n * @description describes the total number of the list.\n */\n total,\n\n itemSize,\n ...virtualizedProps,\n} as const)\n\nexport const virtualizedGridProps = buildProps({\n columnCache: cache,\n columnWidth: itemSize,\n estimatedColumnWidth: estimatedItemSize,\n estimatedRowHeight: estimatedItemSize,\n initScrollLeft: initScrollOffset,\n initScrollTop: initScrollOffset,\n rowCache: cache,\n rowHeight: itemSize,\n totalColumn: total,\n totalRow: total,\n ...virtualizedProps,\n} as const)\n\nexport const virtualizedScrollbarProps = buildProps({\n layout,\n total,\n ratio: {\n type: Number,\n required: true,\n },\n clientSize: {\n type: Number,\n required: true,\n },\n scrollFrom: {\n type: Number,\n required: true,\n },\n visible: Boolean,\n} as const)\n\nexport type VirtualizedProps = ExtractPropTypes<typeof virtualizedProps>\nexport type VirtualizedListProps = ExtractPropTypes<typeof virtualizedListProps>\nexport type VirtualizedGridProps = ExtractPropTypes<typeof virtualizedGridProps>\n\nexport type VirtualizedScrollbarProps = ExtractPropTypes<\n typeof virtualizedScrollbarProps\n>\n"],"names":[],"mappings":";;;AAYA,MAAM,WAAW,UAAU;AAAA,EACzB,MAAM,eAAkC,CAAC,QAAQ;AAAA,EACjD,UAAU;AAAA;AAGZ,MAAM,oBAAoB,UAAU;AAAA,EAClC,MAAM;AAAA;AAGR,MAAM,QAAQ,UAAU;AAAA,EACtB,MAAM;AAAA,EACN,SAAS;AAAA;AAGX,MAAM,YAAY,UAAU;AAAA,EAC1B,MAAM;AAAA,EACN,QAAQ,CAAC,OAAO;AAAA,EAChB,SAAS;AAAA;AAGX,MAAM,mBAAmB,UAAU;AAAA,EACjC,MAAM;AAAA,EACN,SAAS;AAAA;AAGX,MAAM,QAAQ,UAAU;AAAA,EACtB,MAAM;AAAA,EACN,UAAU;AAAA;AAGZ,MAAM,SAAS,UAAU;AAAA,EACvB,MAAM;AAAA,EACN,QAAQ,CAAC,cAAc;AAAA,EACvB,SAAS;AAAA;MAGE,mBAAmB,WAAW;AAAA,EACzC,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAGX,kBAAkB;AAAA,IAChB,MAAM,eAAiC,CAAC,QAAQ;AAAA,IAChD,SAAS;AAAA;AAAA,EAGX,MAAM;AAAA,IACJ,MAAM,eAAsB;AAAA,IAC5B,SAAS,MAAM,QAAQ;AAAA;AAAA,EAMzB;AAAA,EAEA,QAAQ;AAAA,IACN,MAAM,CAAC,QAAQ;AAAA,IACf,UAAU;AAAA;AAAA,EAGZ,cAAc;AAAA,IACZ,MAAM,CAAC,QAAQ;AAAA,IACf,SAAS;AAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM,eAA2B,CAAC,QAAQ,QAAQ;AAAA;AAAA,EAGpD,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ;AAAA,IACf,UAAU;AAAA;AAAA,EAGZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;MAIA,uBAAuB,WAAW;AAAA,EAK7C;AAAA,EAEA;AAAA,EAKA;AAAA,EAEA;AAAA,EAKA;AAAA,EAEA;AAAA,KACG;AAAA;MAGQ,uBAAuB,WAAW;AAAA,EAC7C,aAAa;AAAA,EACb,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,UAAU;AAAA,KACP;AAAA;MAGQ,4BAA4B,WAAW;AAAA,EAClD;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,SAAS;AAAA;;;;"}
@@ -15,3 +15,4 @@ export * from './use-css-var';
15
15
  export * from './use-locale';
16
16
  export * from './use-form-item';
17
17
  export * from './use-same-target';
18
+ export * from './use-global-config';
@@ -15,4 +15,5 @@ export { themeVarsKey, useCssVar, useThemeVars } from './use-css-var/index.mjs';
15
15
  export { LocaleInjectionKey, localeProviderMaker, useLocale, useLocaleInject, useLocaleProps } from './use-locale/index.mjs';
16
16
  export { useFormItem, useFormItemProps } from './use-form-item/index.mjs';
17
17
  export { useSameTarget } from './use-same-target/index.mjs';
18
+ export { useGlobalConfig } from './use-global-config/index.mjs';
18
19
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export declare const useGlobalConfig: () => any;
@@ -0,0 +1,15 @@
1
+ import { inject } from 'vue';
2
+ import '../../tokens/index.mjs';
3
+ import { configProviderContextKey } from '../../tokens/config-provider.mjs';
4
+
5
+ const defaultConfig = {
6
+ button: {
7
+ autoInsertSpace: true
8
+ }
9
+ };
10
+ const useGlobalConfig = () => {
11
+ return inject(configProviderContextKey, defaultConfig);
12
+ };
13
+
14
+ export { useGlobalConfig };
15
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-global-config/index.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { configProviderContextKey } from '@element-plus/tokens'\nimport type { ConfigProvdierContext } from '@element-plus/tokens'\n\nconst defaultConfig: ConfigProvdierContext = {\n button: {\n autoInsertSpace: true,\n },\n}\n\nexport const useGlobalConfig = () => {\n return inject(configProviderContextKey, defaultConfig)\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,gBAAuC;AAAA,EAC3C,QAAQ;AAAA,IACN,iBAAiB;AAAA;AAAA;MAIR,kBAAkB,MAAM;AACnC,SAAO,OAAO,0BAA0B;AAAA;;;;"}
@@ -1,9 +1,7 @@
1
- import type { InjectionKey, PropType, Ref } from 'vue';
1
+ import type { InjectionKey, Ref } from 'vue';
2
2
  import type { Language } from 'element-plus/es/locale';
3
3
  export declare const useLocaleProps: {
4
- locale: {
5
- type: PropType<Language>;
6
- };
4
+ locale: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<Language>, never, false, never, never>;
7
5
  };
8
6
  declare type Translator = (...args: any[]) => string;
9
7
  export declare type LocaleContext = {
@@ -1,10 +1,11 @@
1
1
  import { getCurrentInstance, computed, provide, ref, inject } from 'vue';
2
2
  import defaultLang from '../../locale/lang/en.mjs';
3
+ import { buildProp, definePropType } from '../../utils/props.mjs';
3
4
 
4
5
  const useLocaleProps = {
5
- locale: {
6
- type: Object
7
- }
6
+ locale: buildProp({
7
+ type: definePropType(Object)
8
+ })
8
9
  };
9
10
  const LocaleInjectionKey = "ElLocaleInjection";
10
11
  let localeObjCache;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-locale/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref } from 'vue'\nimport English from '@element-plus/locale/lang/en'\n\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { Language } from '@element-plus/locale'\n\nexport const useLocaleProps = {\n locale: {\n type: Object as PropType<Language>,\n },\n}\n\ntype Translator = (...args: any[]) => string\n\nexport type LocaleContext = {\n locale: Ref<Language>\n lang: Ref<string>\n t: Translator\n}\n\nexport const LocaleInjectionKey =\n 'ElLocaleInjection' as unknown as InjectionKey<LocaleContext>\n\n// this is meant to fix global methods like `ElMessage(opts)`, this way we can inject current locale\n// into the component as default injection value.\n// refer to: https://github.com/element-plus/element-plus/issues/2610#issuecomment-887965266\nlet localeObjCache: LocaleContext\n\nfunction translate(path, option, current) {\n const paths = path.split('.')\n let value\n for (let i = 0, j = paths.length; i < j; i++) {\n const property = paths[i]\n value = current[property]\n if (i === j - 1) return template(value, option)\n if (!value) return ''\n current = value\n }\n}\n\nexport const useLocale = () => {\n const vm = getCurrentInstance()!\n const props = vm.props as {\n locale: Language\n }\n\n const locale = computed(() => props.locale || English)\n const lang = computed(() => locale.value.name)\n\n const _translator = (...args: any[]) => {\n const [path, option] = args\n return translate(path, option, locale.value)\n }\n\n const t = (...args: any[]) => {\n return _translator(...args)\n }\n\n const provides = {\n locale,\n lang,\n t,\n } as LocaleContext\n\n // this could be broken if someone tries to do following:\n\n /**\n * <config-provider :locale=\"lang1\">\n * <config-provider :locale=\"lang2\">\n * Something calls modal component.\n * </config-provider>\n * </config-provider>\n */\n localeObjCache = provides\n provide(LocaleInjectionKey, provides)\n}\n\nfunction template(str: string, option) {\n if (!str || !option) return str\n return str.replace(/\\{(\\w+)\\}/g, (_, key) => {\n return option[key]\n })\n}\n\nexport const localeProviderMaker = (locale = English) => {\n const lang = ref(locale.name)\n const localeRef = ref(locale)\n return {\n lang,\n locale: localeRef,\n t: (...args: any[]) => {\n const [path, option] = args\n return translate(path, option, localeRef.value)\n },\n }\n}\n\nexport const useLocaleInject = () => {\n return inject(\n LocaleInjectionKey,\n localeObjCache || {\n lang: ref(English.name),\n locale: ref(English),\n t: (...args) => {\n const [path, option] = args\n return translate(path, option, English)\n },\n }\n )\n}\n"],"names":["English"],"mappings":";;;MAMa,iBAAiB;AAAA,EAC5B,QAAQ;AAAA,IACN,MAAM;AAAA;AAAA;MAYG,qBACX;AAKF,IAAI;AAEJ,mBAAmB,MAAM,QAAQ,SAAS;AACxC,QAAM,QAAQ,KAAK,MAAM;AACzB,MAAI;AACJ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AAC5C,UAAM,WAAW,MAAM;AACvB,YAAQ,QAAQ;AAChB,QAAI,MAAM,IAAI;AAAG,aAAO,SAAS,OAAO;AACxC,QAAI,CAAC;AAAO,aAAO;AACnB,cAAU;AAAA;AAAA;MAID,YAAY,MAAM;AAC7B,QAAM,KAAK;AACX,QAAM,QAAQ,GAAG;AAIjB,QAAM,SAAS,SAAS,MAAM,MAAM,UAAUA;AAC9C,QAAM,OAAO,SAAS,MAAM,OAAO,MAAM;AAEzC,QAAM,cAAc,IAAI,SAAgB;AACtC,UAAM,CAAC,MAAM,UAAU;AACvB,WAAO,UAAU,MAAM,QAAQ,OAAO;AAAA;AAGxC,QAAM,IAAI,IAAI,SAAgB;AAC5B,WAAO,YAAY,GAAG;AAAA;AAGxB,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA;AAYF,mBAAiB;AACjB,UAAQ,oBAAoB;AAAA;AAG9B,kBAAkB,KAAa,QAAQ;AACrC,MAAI,CAAC,OAAO,CAAC;AAAQ,WAAO;AAC5B,SAAO,IAAI,QAAQ,cAAc,CAAC,GAAG,QAAQ;AAC3C,WAAO,OAAO;AAAA;AAAA;MAIL,sBAAsB,CAAC,SAASA,gBAAY;AACvD,QAAM,OAAO,IAAI,OAAO;AACxB,QAAM,YAAY,IAAI;AACtB,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,GAAG,IAAI,SAAgB;AACrB,YAAM,CAAC,MAAM,UAAU;AACvB,aAAO,UAAU,MAAM,QAAQ,UAAU;AAAA;AAAA;AAAA;MAKlC,kBAAkB,MAAM;AACnC,SAAO,OACL,oBACA,kBAAkB;AAAA,IAChB,MAAM,IAAIA,YAAQ;AAAA,IAClB,QAAQ,IAAIA;AAAA,IACZ,GAAG,IAAI,SAAS;AACd,YAAM,CAAC,MAAM,UAAU;AACvB,aAAO,UAAU,MAAM,QAAQA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-locale/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref } from 'vue'\nimport English from '@element-plus/locale/lang/en'\nimport { buildProp, definePropType } from '@element-plus/utils/props'\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Language } from '@element-plus/locale'\n\nexport const useLocaleProps = {\n locale: buildProp({\n type: definePropType<Language>(Object),\n }),\n}\n\ntype Translator = (...args: any[]) => string\n\nexport type LocaleContext = {\n locale: Ref<Language>\n lang: Ref<string>\n t: Translator\n}\n\nexport const LocaleInjectionKey =\n 'ElLocaleInjection' as unknown as InjectionKey<LocaleContext>\n\n// this is meant to fix global methods like `ElMessage(opts)`, this way we can inject current locale\n// into the component as default injection value.\n// refer to: https://github.com/element-plus/element-plus/issues/2610#issuecomment-887965266\nlet localeObjCache: LocaleContext\n\nfunction translate(path, option, current) {\n const paths = path.split('.')\n let value\n for (let i = 0, j = paths.length; i < j; i++) {\n const property = paths[i]\n value = current[property]\n if (i === j - 1) return template(value, option)\n if (!value) return ''\n current = value\n }\n}\n\nexport const useLocale = () => {\n const vm = getCurrentInstance()!\n const props = vm.props as {\n locale: Language\n }\n\n const locale = computed(() => props.locale || English)\n const lang = computed(() => locale.value.name)\n\n const _translator = (...args: any[]) => {\n const [path, option] = args\n return translate(path, option, locale.value)\n }\n\n const t = (...args: any[]) => {\n return _translator(...args)\n }\n\n const provides = {\n locale,\n lang,\n t,\n } as LocaleContext\n\n // this could be broken if someone tries to do following:\n\n /**\n * <config-provider :locale=\"lang1\">\n * <config-provider :locale=\"lang2\">\n * Something calls modal component.\n * </config-provider>\n * </config-provider>\n */\n localeObjCache = provides\n provide(LocaleInjectionKey, provides)\n}\n\nfunction template(str: string, option) {\n if (!str || !option) return str\n return str.replace(/\\{(\\w+)\\}/g, (_, key) => {\n return option[key]\n })\n}\n\nexport const localeProviderMaker = (locale = English) => {\n const lang = ref(locale.name)\n const localeRef = ref(locale)\n return {\n lang,\n locale: localeRef,\n t: (...args: any[]) => {\n const [path, option] = args\n return translate(path, option, localeRef.value)\n },\n }\n}\n\nexport const useLocaleInject = () => {\n return inject(\n LocaleInjectionKey,\n localeObjCache || {\n lang: ref(English.name),\n locale: ref(English),\n t: (...args) => {\n const [path, option] = args\n return translate(path, option, English)\n },\n }\n )\n}\n"],"names":["English"],"mappings":";;;;MAMa,iBAAiB;AAAA,EAC5B,QAAQ,UAAU;AAAA,IAChB,MAAM,eAAyB;AAAA;AAAA;MAYtB,qBACX;AAKF,IAAI;AAEJ,mBAAmB,MAAM,QAAQ,SAAS;AACxC,QAAM,QAAQ,KAAK,MAAM;AACzB,MAAI;AACJ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AAC5C,UAAM,WAAW,MAAM;AACvB,YAAQ,QAAQ;AAChB,QAAI,MAAM,IAAI;AAAG,aAAO,SAAS,OAAO;AACxC,QAAI,CAAC;AAAO,aAAO;AACnB,cAAU;AAAA;AAAA;MAID,YAAY,MAAM;AAC7B,QAAM,KAAK;AACX,QAAM,QAAQ,GAAG;AAIjB,QAAM,SAAS,SAAS,MAAM,MAAM,UAAUA;AAC9C,QAAM,OAAO,SAAS,MAAM,OAAO,MAAM;AAEzC,QAAM,cAAc,IAAI,SAAgB;AACtC,UAAM,CAAC,MAAM,UAAU;AACvB,WAAO,UAAU,MAAM,QAAQ,OAAO;AAAA;AAGxC,QAAM,IAAI,IAAI,SAAgB;AAC5B,WAAO,YAAY,GAAG;AAAA;AAGxB,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA;AAYF,mBAAiB;AACjB,UAAQ,oBAAoB;AAAA;AAG9B,kBAAkB,KAAa,QAAQ;AACrC,MAAI,CAAC,OAAO,CAAC;AAAQ,WAAO;AAC5B,SAAO,IAAI,QAAQ,cAAc,CAAC,GAAG,QAAQ;AAC3C,WAAO,OAAO;AAAA;AAAA;MAIL,sBAAsB,CAAC,SAASA,gBAAY;AACvD,QAAM,OAAO,IAAI,OAAO;AACxB,QAAM,YAAY,IAAI;AACtB,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,GAAG,IAAI,SAAgB;AACrB,YAAM,CAAC,MAAM,UAAU;AACvB,aAAO,UAAU,MAAM,QAAQ,UAAU;AAAA;AAAA;AAAA;MAKlC,kBAAkB,MAAM;AACnC,SAAO,OACL,oBACA,kBAAkB;AAAA,IAChB,MAAM,IAAIA,YAAQ;AAAA,IAClB,QAAQ,IAAIA;AAAA,IACZ,GAAG,IAAI,SAAS;AACd,YAAM,CAAC,MAAM,UAAU;AACvB,aAAO,UAAU,MAAM,QAAQA;AAAA;AAAA;AAAA;;;;"}
@@ -93,8 +93,9 @@ const usePopperProps = {
93
93
  }
94
94
  };
95
95
  const usePopperHook = () => {
96
+ var _a;
96
97
  const vm = getCurrentInstance();
97
- const props = vm.props;
98
+ const props = (_a = vm.proxy) == null ? void 0 : _a.$props;
98
99
  const { slots } = vm;
99
100
  const arrowRef = ref(null);
100
101
  const triggerRef = ref(null);
@@ -138,8 +139,8 @@ const usePopperHook = () => {
138
139
  }
139
140
  }
140
141
  function detachPopper() {
141
- var _a;
142
- (_a = popperInstance == null ? void 0 : popperInstance.destroy) == null ? void 0 : _a.call(popperInstance);
142
+ var _a2;
143
+ (_a2 = popperInstance == null ? void 0 : popperInstance.destroy) == null ? void 0 : _a2.call(popperInstance);
143
144
  popperInstance = null;
144
145
  }
145
146
  function onPopperMouseEnter() {
@@ -226,8 +227,8 @@ const usePopperHook = () => {
226
227
  }, null) : null;
227
228
  }
228
229
  function triggerRenderer(triggerProps) {
229
- var _a;
230
- const trigger = (_a = slots.trigger) == null ? void 0 : _a.call(slots);
230
+ var _a2;
231
+ const trigger = (_a2 = slots.trigger) == null ? void 0 : _a2.call(slots);
231
232
  const firstElement = getFirstValidNode(trigger, 1);
232
233
  if (!firstElement)
233
234
  throwError("renderTrigger", "trigger expects single rooted node");
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-popper/index.ts"],"sourcesContent":["import {\n cloneVNode,\n computed,\n Fragment,\n getCurrentInstance,\n h,\n nextTick,\n toDisplayString,\n toRef,\n Transition,\n ref,\n renderSlot,\n withDirectives,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport { createPopper } from '@popperjs/core'\nimport { ClickOutside } from '@element-plus/directives'\nimport {\n generateId,\n isHTMLElement,\n isString,\n refAttacher,\n} from '@element-plus/utils/util'\nimport { getFirstValidNode } from '@element-plus/utils/vnode'\nimport { stop } from '@element-plus/utils/dom'\nimport PopupManager from '@element-plus/utils/popup-manager'\nimport { throwError } from '@element-plus/utils/error'\n\nimport useTeleport from '../use-teleport'\nimport useTimeout from '../use-timeout'\nimport { useModelToggle } from '../use-model-toggle'\nimport { useTransitionFallthrough } from '../use-transition-fallthrough'\nimport { defaultPopperOptions, defaultModifiers } from './use-popper-options'\nimport { useTargetEvents, DEFAULT_TRIGGER } from './use-target-events'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n PropType,\n} from 'vue'\nimport type {\n Instance as PopperInstance,\n StrictModifiers,\n} from '@popperjs/core'\nimport type { RefElement, Nullable } from '@element-plus/utils/types'\nimport type { Trigger } from './use-target-events'\n\nexport type PopperEffect = 'light' | 'dark'\nexport type Offset = [number, number] | number\n\ntype ElementType = ComponentPublicInstance | HTMLElement\n\nexport const DARK_EFFECT = 'dark'\nexport const LIGHT_EFFECT = 'light'\n\nexport const usePopperControlProps = {\n appendToBody: {\n type: Boolean,\n default: true,\n },\n arrowOffset: {\n type: Number,\n },\n popperOptions: defaultPopperOptions,\n popperClass: {\n type: String,\n default: '',\n },\n}\n\nexport const usePopperProps = {\n ...usePopperControlProps,\n // the arrow size is an equailateral triangle with 10px side length, the 3rd side length ~ 14.1px\n // adding a offset to the ceil of 4.1 should be 5 this resolves the problem of arrow overflowing out of popper.\n autoClose: {\n type: Number,\n default: 0,\n },\n content: {\n type: String,\n default: '',\n },\n class: String,\n style: Object,\n hideAfter: {\n type: Number,\n default: 200,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n effect: {\n type: String as PropType<PopperEffect>,\n default: DARK_EFFECT,\n },\n enterable: {\n type: Boolean,\n default: true,\n },\n manualMode: {\n type: Boolean,\n default: false,\n },\n showAfter: {\n type: Number,\n default: 0,\n },\n pure: {\n type: Boolean,\n default: false,\n },\n showArrow: {\n type: Boolean,\n default: true,\n },\n transition: {\n type: String,\n default: 'el-fade-in-linear',\n },\n trigger: {\n type: [String, Array] as PropType<Trigger>,\n default: DEFAULT_TRIGGER,\n },\n visible: {\n type: Boolean,\n default: undefined,\n },\n stopPopperMouseEvent: {\n type: Boolean,\n default: true,\n },\n}\n\nexport const usePopperHook = () => {\n const vm = getCurrentInstance()\n const props: ExtractPropTypes<typeof usePopperProps> = vm.props as any\n const { slots } = vm\n\n const arrowRef = ref<RefElement>(null)\n const triggerRef = ref<ElementType>(null)\n const popperRef = ref<RefElement>(null)\n\n const popperStyle = ref<CSSProperties>({ zIndex: PopupManager.nextZIndex() })\n const visible = ref(false)\n const isManual = computed(\n () => props.manualMode || props.trigger === 'manual'\n )\n\n const popperId = `el-popper-${generateId()}`\n let popperInstance: Nullable<PopperInstance> = null\n\n const { renderTeleport, showTeleport, hideTeleport } = useTeleport(\n popupRenderer,\n toRef(props, 'appendToBody')\n )\n\n const { show, hide } = useModelToggle({\n indicator: visible,\n onShow,\n onHide,\n })\n\n const { registerTimeout, cancelTimeout } = useTimeout()\n\n // event handlers\n\n function onShow() {\n popperStyle.value.zIndex = PopupManager.nextZIndex()\n nextTick(initializePopper)\n }\n\n function onHide() {\n hideTeleport()\n nextTick(detachPopper)\n }\n\n /**\n * The calling mechanism here is:\n * when the visibility gets changed, let's say we change it to true\n * the delayShow gets called which initializes a global root node for the popper content\n * to insert in, then it register a timer for calling the show method, which changes the flag to\n * true, then calls onShow method.\n * So the order of invocation is: delayedShow -> timer(show) -> set the indicator to true -> onShow\n */\n\n function delayShow() {\n if (isManual.value || props.disabled) return\n // renders out the teleport element root.\n showTeleport()\n registerTimeout(show, props.showAfter)\n }\n\n function delayHide() {\n if (isManual.value) return\n registerTimeout(hide, props.hideAfter)\n }\n\n function onToggle() {\n if (visible.value) {\n delayShow()\n } else {\n delayHide()\n }\n }\n\n function detachPopper() {\n popperInstance?.destroy?.()\n popperInstance = null\n }\n\n function onPopperMouseEnter() {\n // if trigger is click, user won't be able to close popper when\n // user tries to move the mouse over popper contents\n if (props.enterable && props.trigger !== 'click') {\n cancelTimeout()\n }\n }\n\n function onPopperMouseLeave() {\n const { trigger } = props\n const shouldPrevent =\n (isString(trigger) && (trigger === 'click' || trigger === 'focus')) ||\n // we'd like to test array type trigger here, but the only case we need to cover is trigger === 'click' or\n // trigger === 'focus', because that when trigger is string\n // trigger.length === 1 and trigger[0] === 5 chars string is mutually exclusive.\n // so there will be no need to test if trigger is array type.\n (trigger.length === 1 &&\n (trigger[0] === 'click' || trigger[0] === 'focus'))\n if (shouldPrevent) return\n delayHide()\n }\n\n function initializePopper() {\n if (!visible.value || popperInstance !== null) {\n return\n }\n const unwrappedTrigger = triggerRef.value\n const $el = isHTMLElement(unwrappedTrigger)\n ? unwrappedTrigger\n : (unwrappedTrigger as ComponentPublicInstance).$el\n\n popperInstance = createPopper($el, popperRef.value, buildPopperOptions())\n popperInstance.update()\n }\n\n function buildPopperOptions() {\n const modifiers = [...defaultModifiers, ...props.popperOptions.modifiers]\n\n if (props.showArrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n padding: props.arrowOffset || 5,\n element: arrowRef.value,\n },\n } as StrictModifiers)\n }\n\n return {\n ...props.popperOptions,\n modifiers,\n }\n }\n\n const { onAfterEnter, onAfterLeave, onBeforeEnter, onBeforeLeave } =\n useTransitionFallthrough()\n\n const events = useTargetEvents(delayShow, delayHide, onToggle)\n\n const arrowRefAttacher = refAttacher(arrowRef)\n const popperRefAttacher = refAttacher(popperRef)\n const triggerRefAttacher = refAttacher(triggerRef)\n\n // renderers\n function popupRenderer() {\n const mouseUpAndDown = props.stopPopperMouseEvent ? stop : NOOP\n return h(\n Transition as any,\n {\n name: props.transition,\n onAfterEnter,\n onAfterLeave,\n onBeforeEnter,\n onBeforeLeave,\n },\n {\n default: () => () =>\n visible.value\n ? h(\n 'div',\n {\n 'aria-hidden': false,\n class: [\n props.popperClass,\n 'el-popper',\n `is-${props.effect}`,\n props.pure ? 'is-pure' : '',\n ],\n style: popperStyle.value,\n id: popperId,\n ref: popperRefAttacher,\n role: 'tooltip',\n onMouseenter: onPopperMouseEnter,\n onMouseleave: onPopperMouseLeave,\n onClick: stop,\n onMousedown: mouseUpAndDown,\n onMouseup: mouseUpAndDown,\n },\n [\n renderSlot(slots, 'default', {}, () => [\n toDisplayString(props.content),\n ]),\n arrowRenderer(),\n ]\n )\n : null,\n }\n )\n }\n\n function arrowRenderer() {\n return props.showArrow\n ? h(\n 'div',\n {\n ref: arrowRefAttacher,\n class: 'el-popper__arrow',\n 'data-popper-arrow': '',\n },\n null\n )\n : null\n }\n\n function triggerRenderer(triggerProps) {\n const trigger = slots.trigger?.()\n const firstElement = getFirstValidNode(trigger, 1)\n if (!firstElement)\n throwError('renderTrigger', 'trigger expects single rooted node')\n return cloneVNode(firstElement, triggerProps, true)\n }\n\n function render() {\n const trigger = triggerRenderer({\n 'aria-describedby': popperId,\n class: props.class,\n style: props.style,\n ref: triggerRefAttacher,\n ...events,\n })\n return h(Fragment, null, [\n isManual.value\n ? trigger\n : withDirectives(trigger, [[ClickOutside, delayHide]]),\n renderTeleport(),\n ])\n }\n\n return {\n render,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-popper/index.ts"],"sourcesContent":["import {\n cloneVNode,\n computed,\n Fragment,\n getCurrentInstance,\n h,\n nextTick,\n toDisplayString,\n toRef,\n Transition,\n ref,\n renderSlot,\n withDirectives,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport { createPopper } from '@popperjs/core'\nimport { ClickOutside } from '@element-plus/directives'\nimport {\n generateId,\n isHTMLElement,\n isString,\n refAttacher,\n} from '@element-plus/utils/util'\nimport { getFirstValidNode } from '@element-plus/utils/vnode'\nimport { stop } from '@element-plus/utils/dom'\nimport PopupManager from '@element-plus/utils/popup-manager'\nimport { throwError } from '@element-plus/utils/error'\n\nimport useTeleport from '../use-teleport'\nimport useTimeout from '../use-timeout'\nimport { useModelToggle } from '../use-model-toggle'\nimport { useTransitionFallthrough } from '../use-transition-fallthrough'\nimport { defaultPopperOptions, defaultModifiers } from './use-popper-options'\nimport { useTargetEvents, DEFAULT_TRIGGER } from './use-target-events'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n PropType,\n} from 'vue'\nimport type {\n Instance as PopperInstance,\n StrictModifiers,\n} from '@popperjs/core'\nimport type { RefElement, Nullable } from '@element-plus/utils/types'\nimport type { Trigger } from './use-target-events'\n\nexport type PopperEffect = 'light' | 'dark'\nexport type Offset = [number, number] | number\n\ntype ElementType = ComponentPublicInstance | HTMLElement\n\nexport const DARK_EFFECT = 'dark'\nexport const LIGHT_EFFECT = 'light'\n\nexport const usePopperControlProps = {\n appendToBody: {\n type: Boolean,\n default: true,\n },\n arrowOffset: {\n type: Number,\n },\n popperOptions: defaultPopperOptions,\n popperClass: {\n type: String,\n default: '',\n },\n}\n\nexport const usePopperProps = {\n ...usePopperControlProps,\n // the arrow size is an equailateral triangle with 10px side length, the 3rd side length ~ 14.1px\n // adding a offset to the ceil of 4.1 should be 5 this resolves the problem of arrow overflowing out of popper.\n autoClose: {\n type: Number,\n default: 0,\n },\n content: {\n type: String,\n default: '',\n },\n class: String,\n style: Object,\n hideAfter: {\n type: Number,\n default: 200,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n effect: {\n type: String as PropType<PopperEffect>,\n default: DARK_EFFECT,\n },\n enterable: {\n type: Boolean,\n default: true,\n },\n manualMode: {\n type: Boolean,\n default: false,\n },\n showAfter: {\n type: Number,\n default: 0,\n },\n pure: {\n type: Boolean,\n default: false,\n },\n showArrow: {\n type: Boolean,\n default: true,\n },\n transition: {\n type: String,\n default: 'el-fade-in-linear',\n },\n trigger: {\n type: [String, Array] as PropType<Trigger>,\n default: DEFAULT_TRIGGER,\n },\n visible: {\n type: Boolean,\n default: undefined,\n },\n stopPopperMouseEvent: {\n type: Boolean,\n default: true,\n },\n}\n\nexport const usePopperHook = () => {\n const vm = getCurrentInstance()!\n const props: ExtractPropTypes<typeof usePopperProps> = vm.proxy?.$props as any\n const { slots } = vm\n\n const arrowRef = ref<RefElement>(null)\n const triggerRef = ref<ElementType>(null)\n const popperRef = ref<RefElement>(null)\n\n const popperStyle = ref<CSSProperties>({ zIndex: PopupManager.nextZIndex() })\n const visible = ref(false)\n const isManual = computed(\n () => props.manualMode || props.trigger === 'manual'\n )\n\n const popperId = `el-popper-${generateId()}`\n let popperInstance: Nullable<PopperInstance> = null\n\n const { renderTeleport, showTeleport, hideTeleport } = useTeleport(\n popupRenderer,\n toRef(props, 'appendToBody')\n )\n\n const { show, hide } = useModelToggle({\n indicator: visible,\n onShow,\n onHide,\n })\n\n const { registerTimeout, cancelTimeout } = useTimeout()\n\n // event handlers\n\n function onShow() {\n popperStyle.value.zIndex = PopupManager.nextZIndex()\n nextTick(initializePopper)\n }\n\n function onHide() {\n hideTeleport()\n nextTick(detachPopper)\n }\n\n /**\n * The calling mechanism here is:\n * when the visibility gets changed, let's say we change it to true\n * the delayShow gets called which initializes a global root node for the popper content\n * to insert in, then it register a timer for calling the show method, which changes the flag to\n * true, then calls onShow method.\n * So the order of invocation is: delayedShow -> timer(show) -> set the indicator to true -> onShow\n */\n\n function delayShow() {\n if (isManual.value || props.disabled) return\n // renders out the teleport element root.\n showTeleport()\n registerTimeout(show, props.showAfter)\n }\n\n function delayHide() {\n if (isManual.value) return\n registerTimeout(hide, props.hideAfter)\n }\n\n function onToggle() {\n if (visible.value) {\n delayShow()\n } else {\n delayHide()\n }\n }\n\n function detachPopper() {\n popperInstance?.destroy?.()\n popperInstance = null\n }\n\n function onPopperMouseEnter() {\n // if trigger is click, user won't be able to close popper when\n // user tries to move the mouse over popper contents\n if (props.enterable && props.trigger !== 'click') {\n cancelTimeout()\n }\n }\n\n function onPopperMouseLeave() {\n const { trigger } = props\n const shouldPrevent =\n (isString(trigger) && (trigger === 'click' || trigger === 'focus')) ||\n // we'd like to test array type trigger here, but the only case we need to cover is trigger === 'click' or\n // trigger === 'focus', because that when trigger is string\n // trigger.length === 1 and trigger[0] === 5 chars string is mutually exclusive.\n // so there will be no need to test if trigger is array type.\n (trigger.length === 1 &&\n (trigger[0] === 'click' || trigger[0] === 'focus'))\n if (shouldPrevent) return\n delayHide()\n }\n\n function initializePopper() {\n if (!visible.value || popperInstance !== null) {\n return\n }\n const unwrappedTrigger = triggerRef.value\n const $el = isHTMLElement(unwrappedTrigger)\n ? unwrappedTrigger\n : (unwrappedTrigger as ComponentPublicInstance).$el\n\n popperInstance = createPopper($el, popperRef.value, buildPopperOptions())\n popperInstance.update()\n }\n\n function buildPopperOptions() {\n const modifiers = [...defaultModifiers, ...props.popperOptions.modifiers]\n\n if (props.showArrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n padding: props.arrowOffset || 5,\n element: arrowRef.value,\n },\n } as StrictModifiers)\n }\n\n return {\n ...props.popperOptions,\n modifiers,\n }\n }\n\n const { onAfterEnter, onAfterLeave, onBeforeEnter, onBeforeLeave } =\n useTransitionFallthrough()\n\n const events = useTargetEvents(delayShow, delayHide, onToggle)\n\n const arrowRefAttacher = refAttacher(arrowRef)\n const popperRefAttacher = refAttacher(popperRef)\n const triggerRefAttacher = refAttacher(triggerRef)\n\n // renderers\n function popupRenderer() {\n const mouseUpAndDown = props.stopPopperMouseEvent ? stop : NOOP\n return h(\n Transition as any,\n {\n name: props.transition,\n onAfterEnter,\n onAfterLeave,\n onBeforeEnter,\n onBeforeLeave,\n },\n {\n default: () => () =>\n visible.value\n ? h(\n 'div',\n {\n 'aria-hidden': false,\n class: [\n props.popperClass,\n 'el-popper',\n `is-${props.effect}`,\n props.pure ? 'is-pure' : '',\n ],\n style: popperStyle.value,\n id: popperId,\n ref: popperRefAttacher,\n role: 'tooltip',\n onMouseenter: onPopperMouseEnter,\n onMouseleave: onPopperMouseLeave,\n onClick: stop,\n onMousedown: mouseUpAndDown,\n onMouseup: mouseUpAndDown,\n },\n [\n renderSlot(slots, 'default', {}, () => [\n toDisplayString(props.content),\n ]),\n arrowRenderer(),\n ]\n )\n : null,\n }\n )\n }\n\n function arrowRenderer() {\n return props.showArrow\n ? h(\n 'div',\n {\n ref: arrowRefAttacher,\n class: 'el-popper__arrow',\n 'data-popper-arrow': '',\n },\n null\n )\n : null\n }\n\n function triggerRenderer(triggerProps) {\n const trigger = slots.trigger?.()\n const firstElement = getFirstValidNode(trigger, 1)\n if (!firstElement)\n throwError('renderTrigger', 'trigger expects single rooted node')\n return cloneVNode(firstElement, triggerProps, true)\n }\n\n function render() {\n const trigger = triggerRenderer({\n 'aria-describedby': popperId,\n class: props.class,\n style: props.style,\n ref: triggerRefAttacher,\n ...events,\n })\n return h(Fragment, null, [\n isManual.value\n ? trigger\n : withDirectives(trigger, [[ClickOutside, delayHide]]),\n renderTeleport(),\n ])\n }\n\n return {\n render,\n }\n}\n"],"names":[],"mappings":"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"}
package/es/index.mjs CHANGED
@@ -152,10 +152,12 @@ export { themeVarsKey, useCssVar, useThemeVars } from './hooks/use-css-var/index
152
152
  export { LocaleInjectionKey, localeProviderMaker, useLocale, useLocaleInject, useLocaleProps } from './hooks/use-locale/index.mjs';
153
153
  export { useFormItem, useFormItemProps } from './hooks/use-form-item/index.mjs';
154
154
  export { useSameTarget } from './hooks/use-same-target/index.mjs';
155
+ export { useGlobalConfig } from './hooks/use-global-config/index.mjs';
155
156
  export { elFormItemKey, elFormKey } from './tokens/form.mjs';
156
157
  export { elButtonGroupKey } from './tokens/button.mjs';
157
158
  export { elBreadcrumbKey } from './tokens/breadcrumb.mjs';
158
159
  export { elPaginationKey } from './tokens/pagination.mjs';
160
+ export { configProviderContextKey } from './tokens/config-provider.mjs';
159
161
 
160
162
  const install = installer.install;
161
163
  const version = installer.version;
package/es/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../packages/element-plus/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@element-plus/components'\nexport * from '@element-plus/directives'\nexport * from '@element-plus/hooks'\nexport * from '@element-plus/tokens'\n\nexport { default as makeInstaller } from './make-installer'\nexport { default } from './defaults'\n\nexport const install = installer.install\nexport const version = installer.version\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASa,UAAU,UAAU;MACpB,UAAU,UAAU;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../packages/element-plus/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@element-plus/components'\nexport * from '@element-plus/directives'\nexport * from '@element-plus/hooks'\nexport * from '@element-plus/tokens'\n\nexport { default as makeInstaller } from './make-installer'\nexport { default } from './defaults'\n\nexport const install = installer.install\nexport const version = installer.version\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASa,UAAU,UAAU;MACpB,UAAU,UAAU;;;;"}
@@ -0,0 +1,4 @@
1
+ import type { configProviderProps } from 'element-plus/es/components/config-provider/config-provider';
2
+ import type { InjectionKey, ExtractPropTypes } from 'vue';
3
+ export declare type ConfigProvdierContext = ExtractPropTypes<typeof configProviderProps>;
4
+ export declare const configProviderContextKey: InjectionKey<ConfigProvdierContext>;
@@ -0,0 +1,4 @@
1
+ const configProviderContextKey = Symbol();
2
+
3
+ export { configProviderContextKey };
4
+ //# sourceMappingURL=config-provider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-provider.mjs","sources":["../../../../packages/tokens/config-provider.ts"],"sourcesContent":["import type { configProviderProps } from '@element-plus/components/config-provider/config-provider'\nimport type { InjectionKey, ExtractPropTypes } from 'vue'\n\nexport type ConfigProvdierContext = ExtractPropTypes<typeof configProviderProps>\n\nexport const configProviderContextKey: InjectionKey<ConfigProvdierContext> =\n Symbol()\n"],"names":[],"mappings":"MAKa,2BACX;;;;"}
@@ -2,3 +2,4 @@ export * from './form';
2
2
  export * from './button';
3
3
  export * from './breadcrumb';
4
4
  export * from './pagination';
5
+ export * from './config-provider';
@@ -2,4 +2,5 @@ export { elFormItemKey, elFormKey } from './form.mjs';
2
2
  export { elButtonGroupKey } from './button.mjs';
3
3
  export { elBreadcrumbKey } from './breadcrumb.mjs';
4
4
  export { elPaginationKey } from './pagination.mjs';
5
+ export { configProviderContextKey } from './config-provider.mjs';
5
6
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/es/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.2.0-beta.1";
1
+ export declare const version = "1.2.0-beta.2";
package/es/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const version = "1.2.0-beta.1";
1
+ const version = "1.2.0-beta.2";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '1.2.0-beta.1'\n"],"names":[],"mappings":"MAAa,UAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '1.2.0-beta.2'\n"],"names":[],"mappings":"MAAa,UAAU;;;;"}
@@ -94,6 +94,7 @@ var script = vue.defineComponent({
94
94
  });
95
95
  core.useEventListener(scrollContainer, "scroll", onScroll);
96
96
  core.useResizeObserver(root, () => update());
97
+ core.useResizeObserver(target, () => update());
97
98
  return {
98
99
  root,
99
100
  state,
@@ -1 +1 @@
1
- {"version":3,"file":"affix.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"el-affix\" :style=\"rootStyle\">\n <div :class=\"{ 'el-affix--fixed': state.fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n shallowRef,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils/dom'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElAffix',\n\n props: affixProps,\n emits: affixEmits,\n\n setup(props, { emit }) {\n const target = shallowRef<HTMLElement>()\n const root = shallowRef<HTMLDivElement>()\n const scrollContainer = shallowRef<HTMLElement | Window>()\n\n const state = reactive({\n fixed: false,\n height: 0, // height of root\n width: 0, // width of root\n scrollTop: 0, // scrollTop of documentElement\n clientHeight: 0, // clientHeight of documentElement\n transform: 0,\n })\n\n const rootStyle = computed<CSSProperties>(() => {\n return {\n height: state.fixed ? `${state.height}px` : '',\n width: state.fixed ? `${state.width}px` : '',\n }\n })\n\n const affixStyle = computed<CSSProperties | undefined>(() => {\n if (!state.fixed) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const transform = state.transform\n ? `translateY(${state.transform}px)`\n : ''\n\n return {\n height: `${state.height}px`,\n width: `${state.width}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform,\n zIndex: props.zIndex,\n }\n })\n\n const update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n state.height = rootRect.height\n state.width = rootRect.width\n state.scrollTop =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop\n state.clientHeight = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - state.height\n state.fixed = props.offset > rootRect.top && targetRect.bottom > 0\n state.transform = difference < 0 ? difference : 0\n } else {\n state.fixed = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n state.clientHeight - targetRect.top - props.offset - state.height\n state.fixed =\n state.clientHeight - props.offset < rootRect.bottom &&\n state.clientHeight > targetRect.top\n state.transform = difference < 0 ? -difference : 0\n } else {\n state.fixed = state.clientHeight - props.offset < rootRect.bottom\n }\n }\n }\n\n const onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: state.scrollTop,\n fixed: state.fixed,\n })\n }\n\n watch(\n () => state.fixed,\n () => {\n emit('change', state.fixed)\n }\n )\n\n onMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n })\n\n useEventListener(scrollContainer, 'scroll', onScroll)\n useResizeObserver(root, () => update())\n\n return {\n root,\n state,\n rootStyle,\n affixStyle,\n update,\n }\n },\n})\n</script>\n"],"names":["defineComponent","affixProps","affixEmits","shallowRef","reactive","computed","getScrollContainer"],"mappings":";;;;;;;;;AAsBA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,OAAOC;AAAA,EACP,OAAOC;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,SAASC;AACf,UAAM,OAAOA;AACb,UAAM,kBAAkBA;AAExB,UAAM,QAAQC,aAAS;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,WAAW;AAAA;AAGb,UAAM,YAAYC,aAAwB,MAAM;AAC9C,aAAO;AAAA,QACL,QAAQ,MAAM,QAAQ,GAAG,MAAM,aAAa;AAAA,QAC5C,OAAO,MAAM,QAAQ,GAAG,MAAM,YAAY;AAAA;AAAA;AAI9C,UAAM,aAAaA,aAAoC,MAAM;AAC3D,UAAI,CAAC,MAAM;AAAO;AAElB,YAAM,SAAS,MAAM,SAAS,GAAG,MAAM,aAAa;AACpD,YAAM,YAAY,MAAM,YACpB,cAAc,MAAM,iBACpB;AAEJ,aAAO;AAAA,QACL,QAAQ,GAAG,MAAM;AAAA,QACjB,OAAO,GAAG,MAAM;AAAA,QAChB,KAAK,MAAM,aAAa,QAAQ,SAAS;AAAA,QACzC,QAAQ,MAAM,aAAa,WAAW,SAAS;AAAA,QAC/C;AAAA,QACA,QAAQ,MAAM;AAAA;AAAA;AAIlB,UAAM,SAAS,MAAM;AACnB,UAAI,CAAC,KAAK,SAAS,CAAC,OAAO,SAAS,CAAC,gBAAgB;AAAO;AAE5D,YAAM,WAAW,KAAK,MAAM;AAC5B,YAAM,aAAa,OAAO,MAAM;AAChC,YAAM,SAAS,SAAS;AACxB,YAAM,QAAQ,SAAS;AACvB,YAAM,YACJ,gBAAgB,iBAAiB,SAC7B,SAAS,gBAAgB,YACzB,gBAAgB,MAAM;AAC5B,YAAM,eAAe,SAAS,gBAAgB;AAE9C,UAAI,MAAM,aAAa,OAAO;AAC5B,YAAI,MAAM,QAAQ;AAChB,gBAAM,aAAa,WAAW,SAAS,MAAM,SAAS,MAAM;AAC5D,gBAAM,QAAQ,MAAM,SAAS,SAAS,OAAO,WAAW,SAAS;AACjE,gBAAM,YAAY,aAAa,IAAI,aAAa;AAAA,eAC3C;AACL,gBAAM,QAAQ,MAAM,SAAS,SAAS;AAAA;AAAA,aAEnC;AACL,YAAI,MAAM,QAAQ;AAChB,gBAAM,aACJ,MAAM,eAAe,WAAW,MAAM,MAAM,SAAS,MAAM;AAC7D,gBAAM,QACJ,MAAM,eAAe,MAAM,SAAS,SAAS,UAC7C,MAAM,eAAe,WAAW;AAClC,gBAAM,YAAY,aAAa,IAAI,CAAC,aAAa;AAAA,eAC5C;AACL,gBAAM,QAAQ,MAAM,eAAe,MAAM,SAAS,SAAS;AAAA;AAAA;AAAA;AAKjE,UAAM,WAAW,MAAM;AACrB;AAEA,WAAK,UAAU;AAAA,QACb,WAAW,MAAM;AAAA,QACjB,OAAO,MAAM;AAAA;AAAA;AAIjB,cACE,MAAM,MAAM,OACZ,MAAM;AACJ,WAAK,UAAU,MAAM;AAAA;AAIzB,kBAAU,MAAM;;AACd,UAAI,MAAM,QAAQ;AAChB,eAAO,QACL,eAAS,cAA2B,MAAM,YAA1C,YAAqD;AACvD,YAAI,CAAC,OAAO,OAAO;AACjB,gBAAM,IAAI,MAAM,0BAA0B,MAAM;AAAA;AAAA,aAE7C;AACL,eAAO,QAAQ,SAAS;AAAA;AAE1B,sBAAgB,QAAQC,uBAAmB,KAAK,OAAQ;AAAA;AAG1D,0BAAiB,iBAAiB,UAAU;AAC5C,2BAAkB,MAAM,MAAM;AAE9B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"affix.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"el-affix\" :style=\"rootStyle\">\n <div :class=\"{ 'el-affix--fixed': state.fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n shallowRef,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils/dom'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElAffix',\n\n props: affixProps,\n emits: affixEmits,\n\n setup(props, { emit }) {\n const target = shallowRef<HTMLElement>()\n const root = shallowRef<HTMLDivElement>()\n const scrollContainer = shallowRef<HTMLElement | Window>()\n\n const state = reactive({\n fixed: false,\n height: 0, // height of root\n width: 0, // width of root\n scrollTop: 0, // scrollTop of documentElement\n clientHeight: 0, // clientHeight of documentElement\n transform: 0,\n })\n\n const rootStyle = computed<CSSProperties>(() => {\n return {\n height: state.fixed ? `${state.height}px` : '',\n width: state.fixed ? `${state.width}px` : '',\n }\n })\n\n const affixStyle = computed<CSSProperties | undefined>(() => {\n if (!state.fixed) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const transform = state.transform\n ? `translateY(${state.transform}px)`\n : ''\n\n return {\n height: `${state.height}px`,\n width: `${state.width}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform,\n zIndex: props.zIndex,\n }\n })\n\n const update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n state.height = rootRect.height\n state.width = rootRect.width\n state.scrollTop =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop\n state.clientHeight = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - state.height\n state.fixed = props.offset > rootRect.top && targetRect.bottom > 0\n state.transform = difference < 0 ? difference : 0\n } else {\n state.fixed = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n state.clientHeight - targetRect.top - props.offset - state.height\n state.fixed =\n state.clientHeight - props.offset < rootRect.bottom &&\n state.clientHeight > targetRect.top\n state.transform = difference < 0 ? -difference : 0\n } else {\n state.fixed = state.clientHeight - props.offset < rootRect.bottom\n }\n }\n }\n\n const onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: state.scrollTop,\n fixed: state.fixed,\n })\n }\n\n watch(\n () => state.fixed,\n () => {\n emit('change', state.fixed)\n }\n )\n\n onMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n })\n\n useEventListener(scrollContainer, 'scroll', onScroll)\n useResizeObserver(root, () => update())\n useResizeObserver(target, () => update())\n\n return {\n root,\n state,\n rootStyle,\n affixStyle,\n update,\n }\n },\n})\n</script>\n"],"names":["defineComponent","affixProps","affixEmits","shallowRef","reactive","computed","getScrollContainer"],"mappings":";;;;;;;;;AAsBA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,OAAOC;AAAA,EACP,OAAOC;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,SAASC;AACf,UAAM,OAAOA;AACb,UAAM,kBAAkBA;AAExB,UAAM,QAAQC,aAAS;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,WAAW;AAAA;AAGb,UAAM,YAAYC,aAAwB,MAAM;AAC9C,aAAO;AAAA,QACL,QAAQ,MAAM,QAAQ,GAAG,MAAM,aAAa;AAAA,QAC5C,OAAO,MAAM,QAAQ,GAAG,MAAM,YAAY;AAAA;AAAA;AAI9C,UAAM,aAAaA,aAAoC,MAAM;AAC3D,UAAI,CAAC,MAAM;AAAO;AAElB,YAAM,SAAS,MAAM,SAAS,GAAG,MAAM,aAAa;AACpD,YAAM,YAAY,MAAM,YACpB,cAAc,MAAM,iBACpB;AAEJ,aAAO;AAAA,QACL,QAAQ,GAAG,MAAM;AAAA,QACjB,OAAO,GAAG,MAAM;AAAA,QAChB,KAAK,MAAM,aAAa,QAAQ,SAAS;AAAA,QACzC,QAAQ,MAAM,aAAa,WAAW,SAAS;AAAA,QAC/C;AAAA,QACA,QAAQ,MAAM;AAAA;AAAA;AAIlB,UAAM,SAAS,MAAM;AACnB,UAAI,CAAC,KAAK,SAAS,CAAC,OAAO,SAAS,CAAC,gBAAgB;AAAO;AAE5D,YAAM,WAAW,KAAK,MAAM;AAC5B,YAAM,aAAa,OAAO,MAAM;AAChC,YAAM,SAAS,SAAS;AACxB,YAAM,QAAQ,SAAS;AACvB,YAAM,YACJ,gBAAgB,iBAAiB,SAC7B,SAAS,gBAAgB,YACzB,gBAAgB,MAAM;AAC5B,YAAM,eAAe,SAAS,gBAAgB;AAE9C,UAAI,MAAM,aAAa,OAAO;AAC5B,YAAI,MAAM,QAAQ;AAChB,gBAAM,aAAa,WAAW,SAAS,MAAM,SAAS,MAAM;AAC5D,gBAAM,QAAQ,MAAM,SAAS,SAAS,OAAO,WAAW,SAAS;AACjE,gBAAM,YAAY,aAAa,IAAI,aAAa;AAAA,eAC3C;AACL,gBAAM,QAAQ,MAAM,SAAS,SAAS;AAAA;AAAA,aAEnC;AACL,YAAI,MAAM,QAAQ;AAChB,gBAAM,aACJ,MAAM,eAAe,WAAW,MAAM,MAAM,SAAS,MAAM;AAC7D,gBAAM,QACJ,MAAM,eAAe,MAAM,SAAS,SAAS,UAC7C,MAAM,eAAe,WAAW;AAClC,gBAAM,YAAY,aAAa,IAAI,CAAC,aAAa;AAAA,eAC5C;AACL,gBAAM,QAAQ,MAAM,eAAe,MAAM,SAAS,SAAS;AAAA;AAAA;AAAA;AAKjE,UAAM,WAAW,MAAM;AACrB;AAEA,WAAK,UAAU;AAAA,QACb,WAAW,MAAM;AAAA,QACjB,OAAO,MAAM;AAAA;AAAA;AAIjB,cACE,MAAM,MAAM,OACZ,MAAM;AACJ,WAAK,UAAU,MAAM;AAAA;AAIzB,kBAAU,MAAM;;AACd,UAAI,MAAM,QAAQ;AAChB,eAAO,QACL,eAAS,cAA2B,MAAM,YAA1C,YAAqD;AACvD,YAAI,CAAC,OAAO,OAAO;AACjB,gBAAM,IAAI,MAAM,0BAA0B,MAAM;AAAA;AAAA,aAE7C;AACL,eAAO,QAAQ,SAAS;AAAA;AAE1B,sBAAgB,QAAQC,uBAAmB,KAAK,OAAQ;AAAA;AAG1D,0BAAiB,iBAAiB,UAAU;AAC5C,2BAAkB,MAAM,MAAM;AAC9B,2BAAkB,QAAQ,MAAM;AAEhC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"affix.vue_vue&type=template&id=0745df9e&lang.js","sources":["../../../../../../packages/components/affix/src/affix.vue?vue&type=template&id=0745df9e&lang.js"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"el-affix\" :style=\"rootStyle\">\n <div :class=\"{ 'el-affix--fixed': state.fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n shallowRef,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils/dom'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElAffix',\n\n props: affixProps,\n emits: affixEmits,\n\n setup(props, { emit }) {\n const target = shallowRef<HTMLElement>()\n const root = shallowRef<HTMLDivElement>()\n const scrollContainer = shallowRef<HTMLElement | Window>()\n\n const state = reactive({\n fixed: false,\n height: 0, // height of root\n width: 0, // width of root\n scrollTop: 0, // scrollTop of documentElement\n clientHeight: 0, // clientHeight of documentElement\n transform: 0,\n })\n\n const rootStyle = computed<CSSProperties>(() => {\n return {\n height: state.fixed ? `${state.height}px` : '',\n width: state.fixed ? `${state.width}px` : '',\n }\n })\n\n const affixStyle = computed<CSSProperties | undefined>(() => {\n if (!state.fixed) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const transform = state.transform\n ? `translateY(${state.transform}px)`\n : ''\n\n return {\n height: `${state.height}px`,\n width: `${state.width}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform,\n zIndex: props.zIndex,\n }\n })\n\n const update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n state.height = rootRect.height\n state.width = rootRect.width\n state.scrollTop =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop\n state.clientHeight = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - state.height\n state.fixed = props.offset > rootRect.top && targetRect.bottom > 0\n state.transform = difference < 0 ? difference : 0\n } else {\n state.fixed = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n state.clientHeight - targetRect.top - props.offset - state.height\n state.fixed =\n state.clientHeight - props.offset < rootRect.bottom &&\n state.clientHeight > targetRect.top\n state.transform = difference < 0 ? -difference : 0\n } else {\n state.fixed = state.clientHeight - props.offset < rootRect.bottom\n }\n }\n }\n\n const onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: state.scrollTop,\n fixed: state.fixed,\n })\n }\n\n watch(\n () => state.fixed,\n () => {\n emit('change', state.fixed)\n }\n )\n\n onMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n })\n\n useEventListener(scrollContainer, 'scroll', onScroll)\n useResizeObserver(root, () => update())\n\n return {\n root,\n state,\n rootStyle,\n affixStyle,\n update,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot"],"mappings":";;;;;;;0BACEA;IAAK,KAAI;AAAA,IAAO,OAAM;AAAA,IAAY,0BAAO;;IACvCC;MAAM,+CAA4B,WAAM;AAAA,MAAU,0BAAO;;MACvDC;;;;;;;"}
1
+ {"version":3,"file":"affix.vue_vue&type=template&id=0745df9e&lang.js","sources":["../../../../../../packages/components/affix/src/affix.vue?vue&type=template&id=0745df9e&lang.js"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"el-affix\" :style=\"rootStyle\">\n <div :class=\"{ 'el-affix--fixed': state.fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n shallowRef,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils/dom'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElAffix',\n\n props: affixProps,\n emits: affixEmits,\n\n setup(props, { emit }) {\n const target = shallowRef<HTMLElement>()\n const root = shallowRef<HTMLDivElement>()\n const scrollContainer = shallowRef<HTMLElement | Window>()\n\n const state = reactive({\n fixed: false,\n height: 0, // height of root\n width: 0, // width of root\n scrollTop: 0, // scrollTop of documentElement\n clientHeight: 0, // clientHeight of documentElement\n transform: 0,\n })\n\n const rootStyle = computed<CSSProperties>(() => {\n return {\n height: state.fixed ? `${state.height}px` : '',\n width: state.fixed ? `${state.width}px` : '',\n }\n })\n\n const affixStyle = computed<CSSProperties | undefined>(() => {\n if (!state.fixed) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const transform = state.transform\n ? `translateY(${state.transform}px)`\n : ''\n\n return {\n height: `${state.height}px`,\n width: `${state.width}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform,\n zIndex: props.zIndex,\n }\n })\n\n const update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n state.height = rootRect.height\n state.width = rootRect.width\n state.scrollTop =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop\n state.clientHeight = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - state.height\n state.fixed = props.offset > rootRect.top && targetRect.bottom > 0\n state.transform = difference < 0 ? difference : 0\n } else {\n state.fixed = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n state.clientHeight - targetRect.top - props.offset - state.height\n state.fixed =\n state.clientHeight - props.offset < rootRect.bottom &&\n state.clientHeight > targetRect.top\n state.transform = difference < 0 ? -difference : 0\n } else {\n state.fixed = state.clientHeight - props.offset < rootRect.bottom\n }\n }\n }\n\n const onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: state.scrollTop,\n fixed: state.fixed,\n })\n }\n\n watch(\n () => state.fixed,\n () => {\n emit('change', state.fixed)\n }\n )\n\n onMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n })\n\n useEventListener(scrollContainer, 'scroll', onScroll)\n useResizeObserver(root, () => update())\n useResizeObserver(target, () => update())\n\n return {\n root,\n state,\n rootStyle,\n affixStyle,\n update,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot"],"mappings":";;;;;;;0BACEA;IAAK,KAAI;AAAA,IAAO,OAAM;AAAA,IAAY,0BAAO;;IACvCC;MAAM,+CAA4B,WAAM;AAAA,MAAU,0BAAO;;MACvDC;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n <transition name=\"el-alert-fade\">\n <div\n v-show=\"visible\"\n class=\"el-alert\"\n :class=\"[typeClass, center ? 'is-center' : '', 'is-' + effect]\"\n role=\"alert\"\n >\n <el-icon v-if=\"showIcon\" class=\"el-alert__icon\" :class=\"isBigIcon\">\n <component :is=\"iconComponent\" />\n </el-icon>\n <div class=\"el-alert__content\">\n <span\n v-if=\"title || $slots.title\"\n class=\"el-alert__title\"\n :class=\"[isBoldTitle]\"\n >\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <p v-if=\"$slots.default || description\" class=\"el-alert__description\">\n <slot>\n {{ description }}\n </slot>\n </p>\n <template v-if=\"closable\">\n <div\n v-if=\"closeText\"\n class=\"el-alert__closebtn is-customed\"\n @click=\"close\"\n >\n {{ closeText }}\n </div>\n <el-icon v-else class=\"el-alert__closebtn\" @click=\"close\">\n <close />\n </el-icon>\n </template>\n </div>\n </div>\n </transition>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { TypeComponents, TypeComponentsMap } from '@element-plus/utils/icon'\nimport { alertProps, alertEmits } from './alert'\n\nexport default defineComponent({\n name: 'ElAlert',\n\n components: {\n ElIcon,\n ...TypeComponents,\n },\n\n props: alertProps,\n emits: alertEmits,\n\n setup(props, { emit, slots }) {\n // state\n const visible = ref(true)\n\n // computed\n const typeClass = computed(() => `el-alert--${props.type}`)\n const iconComponent = computed(\n () => TypeComponentsMap[props.type] || TypeComponentsMap['info']\n )\n const isBigIcon = computed(() =>\n props.description || slots.default ? 'is-big' : ''\n )\n const isBoldTitle = computed(() =>\n props.description || slots.default ? 'is-bold' : ''\n )\n\n // methods\n const close = (evt: MouseEvent) => {\n visible.value = false\n emit('close', evt)\n }\n\n return {\n visible,\n typeClass,\n iconComponent,\n isBigIcon,\n isBoldTitle,\n close,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElIcon","TypeComponents","alertProps","alertEmits","ref","computed","TypeComponentsMap"],"mappings":";;;;;;;;;AA8CA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,YACVC;AAAA,OACGC;AAAA;AAAA,EAGL,OAAOC;AAAA,EACP,OAAOC;AAAA,EAEP,MAAM,OAAO,EAAE,MAAM,SAAS;AAE5B,UAAM,UAAUC,QAAI;AAGpB,UAAM,YAAYC,aAAS,MAAM,aAAa,MAAM;AACpD,UAAM,gBAAgBA,aACpB,MAAMC,uBAAkB,MAAM,SAASA,uBAAkB;AAE3D,UAAM,YAAYD,aAAS,MACzB,MAAM,eAAe,MAAM,UAAU,WAAW;AAElD,UAAM,cAAcA,aAAS,MAC3B,MAAM,eAAe,MAAM,UAAU,YAAY;AAInD,UAAM,QAAQ,CAAC,QAAoB;AACjC,cAAQ,QAAQ;AAChB,WAAK,SAAS;AAAA;AAGhB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"alert.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n <transition name=\"el-alert-fade\">\n <div\n v-show=\"visible\"\n class=\"el-alert\"\n :class=\"[typeClass, center ? 'is-center' : '', 'is-' + effect]\"\n role=\"alert\"\n >\n <el-icon\n v-if=\"showIcon && iconComponent\"\n class=\"el-alert__icon\"\n :class=\"isBigIcon\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <div class=\"el-alert__content\">\n <span\n v-if=\"title || $slots.title\"\n class=\"el-alert__title\"\n :class=\"[isBoldTitle]\"\n >\n <slot name=\"title\">{{ title }}</slot>\n </span>\n <p v-if=\"$slots.default || description\" class=\"el-alert__description\">\n <slot>\n {{ description }}\n </slot>\n </p>\n <template v-if=\"closable\">\n <div\n v-if=\"closeText\"\n class=\"el-alert__closebtn is-customed\"\n @click=\"close\"\n >\n {{ closeText }}\n </div>\n <el-icon v-else class=\"el-alert__closebtn\" @click=\"close\">\n <close />\n </el-icon>\n </template>\n </div>\n </div>\n </transition>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { TypeComponents, TypeComponentsMap } from '@element-plus/utils/icon'\nimport { alertProps, alertEmits } from './alert'\n\nexport default defineComponent({\n name: 'ElAlert',\n\n components: {\n ElIcon,\n ...TypeComponents,\n },\n\n props: alertProps,\n emits: alertEmits,\n\n setup(props, { emit, slots }) {\n // state\n const visible = ref(true)\n\n // computed\n const typeClass = computed(() => `el-alert--${props.type}`)\n const iconComponent = computed(\n () => TypeComponentsMap[props.type] || TypeComponentsMap['info']\n )\n const isBigIcon = computed(() =>\n props.description || slots.default ? 'is-big' : ''\n )\n const isBoldTitle = computed(() =>\n props.description || slots.default ? 'is-bold' : ''\n )\n\n // methods\n const close = (evt: MouseEvent) => {\n visible.value = false\n emit('close', evt)\n }\n\n return {\n visible,\n typeClass,\n iconComponent,\n isBigIcon,\n isBoldTitle,\n close,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElIcon","TypeComponents","alertProps","alertEmits","ref","computed","TypeComponentsMap"],"mappings":";;;;;;;;;AAkDA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,YACVC;AAAA,OACGC;AAAA;AAAA,EAGL,OAAOC;AAAA,EACP,OAAOC;AAAA,EAEP,MAAM,OAAO,EAAE,MAAM,SAAS;AAE5B,UAAM,UAAUC,QAAI;AAGpB,UAAM,YAAYC,aAAS,MAAM,aAAa,MAAM;AACpD,UAAM,gBAAgBA,aACpB,MAAMC,uBAAkB,MAAM,SAASA,uBAAkB;AAE3D,UAAM,YAAYD,aAAS,MACzB,MAAM,eAAe,MAAM,UAAU,WAAW;AAElD,UAAM,cAAcA,aAAS,MAC3B,MAAM,eAAe,MAAM,UAAU,YAAY;AAInD,UAAM,QAAQ,CAAC,QAAoB;AACjC,cAAQ,QAAQ;AAChB,WAAK,SAAS;AAAA;AAGhB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}