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
@@ -31,13 +31,13 @@ const bound01 = function(value, max) {
31
31
  return value % max / parseFloat(max);
32
32
  };
33
33
  const INT_HEX_MAP = { 10: "A", 11: "B", 12: "C", 13: "D", 14: "E", 15: "F" };
34
+ const hexOne = function(value) {
35
+ value = Math.min(Math.round(value), 255);
36
+ const high = Math.floor(value / 16);
37
+ const low = value % 16;
38
+ return `${INT_HEX_MAP[high] || high}${INT_HEX_MAP[low] || low}`;
39
+ };
34
40
  const toHex = function({ r, g, b }) {
35
- const hexOne = function(value) {
36
- value = Math.min(Math.round(value), 255);
37
- const high = Math.floor(value / 16);
38
- const low = value % 16;
39
- return `${INT_HEX_MAP[high] || high}${INT_HEX_MAP[low] || low}`;
40
- };
41
41
  if (isNaN(r) || isNaN(g) || isNaN(b))
42
42
  return "";
43
43
  return `#${hexOne(r)}${hexOne(g)}${hexOne(b)}`;
@@ -145,6 +145,9 @@ class Color {
145
145
  this.doOnChange();
146
146
  }
147
147
  get(prop) {
148
+ if (prop === "alpha") {
149
+ return Math.floor(this[`_${prop}`]);
150
+ }
148
151
  return this[`_${prop}`];
149
152
  }
150
153
  toRgb() {
@@ -167,7 +170,7 @@ class Color {
167
170
  if (value.indexOf("hsl") !== -1) {
168
171
  const parts = value.replace(/hsla|hsl|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
169
172
  if (parts.length === 4) {
170
- this._alpha = Math.floor(parseFloat(parts[3]) * 100);
173
+ this._alpha = parseFloat(parts[3]) * 100;
171
174
  } else if (parts.length === 3) {
172
175
  this._alpha = 100;
173
176
  }
@@ -178,7 +181,7 @@ class Color {
178
181
  } else if (value.indexOf("hsv") !== -1) {
179
182
  const parts = value.replace(/hsva|hsv|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
180
183
  if (parts.length === 4) {
181
- this._alpha = Math.floor(parseFloat(parts[3]) * 100);
184
+ this._alpha = parseFloat(parts[3]) * 100;
182
185
  } else if (parts.length === 3) {
183
186
  this._alpha = 100;
184
187
  }
@@ -188,7 +191,7 @@ class Color {
188
191
  } else if (value.indexOf("rgb") !== -1) {
189
192
  const parts = value.replace(/rgba|rgb|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
190
193
  if (parts.length === 4) {
191
- this._alpha = Math.floor(parseFloat(parts[3]) * 100);
194
+ this._alpha = parseFloat(parts[3]) * 100;
192
195
  } else if (parts.length === 3) {
193
196
  this._alpha = 100;
194
197
  }
@@ -211,7 +214,7 @@ class Color {
211
214
  b = parseHexChannel(hex.substring(4, 6));
212
215
  }
213
216
  if (hex.length === 8) {
214
- this._alpha = Math.floor(parseHexChannel(hex.substring(6)) / 255 * 100);
217
+ this._alpha = parseHexChannel(hex.substring(6)) / 255 * 100;
215
218
  } else if (hex.length === 3 || hex.length === 6) {
216
219
  this._alpha = 100;
217
220
  }
@@ -228,16 +231,20 @@ class Color {
228
231
  switch (format) {
229
232
  case "hsl": {
230
233
  const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);
231
- this.value = `hsla(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%, ${_alpha / 100})`;
234
+ this.value = `hsla(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%, ${this.get("alpha") / 100})`;
232
235
  break;
233
236
  }
234
237
  case "hsv": {
235
- this.value = `hsva(${_hue}, ${Math.round(_saturation)}%, ${Math.round(_value)}%, ${_alpha / 100})`;
238
+ this.value = `hsva(${_hue}, ${Math.round(_saturation)}%, ${Math.round(_value)}%, ${this.get("alpha") / 100})`;
239
+ break;
240
+ }
241
+ case "hex": {
242
+ this.value = `${toHex(hsv2rgb(_hue, _saturation, _value))}${hexOne(_alpha * 255 / 100)}`;
236
243
  break;
237
244
  }
238
245
  default: {
239
246
  const { r, g, b } = hsv2rgb(_hue, _saturation, _value);
240
- this.value = `rgba(${r}, ${g}, ${b}, ${_alpha / 100})`;
247
+ this.value = `rgba(${r}, ${g}, ${b}, ${this.get("alpha") / 100})`;
241
248
  }
242
249
  }
243
250
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sources":["../../../../../../packages/components/color-picker/src/color.ts"],"sourcesContent":["import { hasOwn } from '@vue/shared'\n\nconst hsv2hsl = function (hue: number, sat: number, val: number) {\n return [\n hue,\n (sat * val) / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0,\n hue / 2,\n ]\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nconst isOnePointZero = function (n: unknown) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1\n}\n\nconst isPercentage = function (n: unknown) {\n return typeof n === 'string' && n.indexOf('%') !== -1\n}\n\n// Take input from [0, n] and return it as [0, 1]\nconst bound01 = function (value: number | string, max: number | string) {\n if (isOnePointZero(value)) value = '100%'\n\n const processPercent = isPercentage(value)\n value = Math.min(max as number, Math.max(0, parseFloat(`${value}`)))\n\n // Automatically convert percentage into number\n if (processPercent) {\n value = parseInt(`${value * (max as number)}`, 10) / 100\n }\n\n // Handle floating point rounding errors\n if (Math.abs(value - (max as number)) < 0.000001) {\n return 1\n }\n\n // Convert into [0, 1] range if it isn't already\n return (value % (max as number)) / parseFloat(max as string)\n}\n\nconst INT_HEX_MAP = { 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' }\n\nconst toHex = function ({ r, g, b }) {\n const hexOne = function (value: number) {\n value = Math.min(Math.round(value), 255)\n const high = Math.floor(value / 16)\n const low = value % 16\n return `${INT_HEX_MAP[high] || high}${INT_HEX_MAP[low] || low}`\n }\n\n if (isNaN(r) || isNaN(g) || isNaN(b)) return ''\n\n return `#${hexOne(r)}${hexOne(g)}${hexOne(b)}`\n}\n\nconst HEX_INT_MAP = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 }\n\nconst parseHexChannel = function (hex: string) {\n if (hex.length === 2) {\n return (\n (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 +\n (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1])\n )\n }\n\n return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]\n}\n\nconst hsl2hsv = function (hue: number, sat: number, light: number) {\n sat = sat / 100\n light = light / 100\n let smin = sat\n const lmin = Math.max(light, 0.01)\n // let sv\n // let v\n\n light *= 2\n sat *= light <= 1 ? light : 2 - light\n smin *= lmin <= 1 ? lmin : 2 - lmin\n const v = (light + sat) / 2\n const sv =\n light === 0 ? (2 * smin) / (lmin + smin) : (2 * sat) / (light + sat)\n\n return {\n h: hue,\n s: sv * 100,\n v: v * 100,\n }\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nconst rgb2hsv = function (r, g, b) {\n r = bound01(r, 255)\n g = bound01(g, 255)\n b = bound01(b, 255)\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n let h\n const v = max\n\n const d = max - min\n const s = max === 0 ? 0 : d / max\n\n if (max === min) {\n h = 0 // achromatic\n } else {\n switch (max) {\n case r: {\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n }\n case g: {\n h = (b - r) / d + 2\n break\n }\n case b: {\n h = (r - g) / d + 4\n break\n }\n }\n h /= 6\n }\n\n return { h: h * 360, s: s * 100, v: v * 100 }\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nconst hsv2rgb = function (h, s, v) {\n h = bound01(h, 360) * 6\n s = bound01(s, 100)\n v = bound01(v, 100)\n\n const i = Math.floor(h)\n const f = h - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n const mod = i % 6\n const r = [v, q, p, p, t, v][mod]\n const g = [t, v, v, q, p, p][mod]\n const b = [p, p, t, v, v, q][mod]\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n }\n}\n\nexport interface Options {\n enableAlpha: boolean\n format: string\n value?: string\n}\n\nexport default class Color {\n private _hue = 0\n private _saturation = 100\n private _value = 100\n private _alpha = 100\n public enableAlpha = false\n public format = 'hex'\n public value = ''\n public selected?: boolean\n constructor(options?: Options) {\n options = options || ({} as Options)\n\n for (const option in options) {\n if (hasOwn(options, option)) {\n this[option] = options[option]\n }\n }\n\n this.doOnChange()\n }\n\n set(prop: { [key: string]: any } | any, value?: number) {\n if (arguments.length === 1 && typeof prop === 'object') {\n for (const p in prop) {\n if (hasOwn(prop, p)) {\n this.set(p, prop[p])\n }\n }\n\n return\n }\n\n this[`_${prop}`] = value\n this.doOnChange()\n }\n\n get(prop: string) {\n return this[`_${prop}`]\n }\n\n toRgb() {\n return hsv2rgb(this._hue, this._saturation, this._value)\n }\n\n fromString(value) {\n if (!value) {\n this._hue = 0\n this._saturation = 100\n this._value = 100\n\n this.doOnChange()\n return\n }\n\n const fromHSV = (h, s, v) => {\n this._hue = Math.max(0, Math.min(360, h))\n this._saturation = Math.max(0, Math.min(100, s))\n this._value = Math.max(0, Math.min(100, v))\n\n this.doOnChange()\n }\n\n if (value.indexOf('hsl') !== -1) {\n const parts = value\n .replace(/hsla|hsl|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = Math.floor(parseFloat(parts[3]) * 100)\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n const { h, s, v } = hsl2hsv(parts[0], parts[1], parts[2])\n fromHSV(h, s, v)\n }\n } else if (value.indexOf('hsv') !== -1) {\n const parts = value\n .replace(/hsva|hsv|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = Math.floor(parseFloat(parts[3]) * 100)\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n fromHSV(parts[0], parts[1], parts[2])\n }\n } else if (value.indexOf('rgb') !== -1) {\n const parts = value\n .replace(/rgba|rgb|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = Math.floor(parseFloat(parts[3]) * 100)\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n const { h, s, v } = rgb2hsv(parts[0], parts[1], parts[2])\n fromHSV(h, s, v)\n }\n } else if (value.indexOf('#') !== -1) {\n const hex = value.replace('#', '').trim()\n if (!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(hex))\n return\n let r, g, b\n\n if (hex.length === 3) {\n r = parseHexChannel(hex[0] + hex[0])\n g = parseHexChannel(hex[1] + hex[1])\n b = parseHexChannel(hex[2] + hex[2])\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseHexChannel(hex.substring(0, 2))\n g = parseHexChannel(hex.substring(2, 4))\n b = parseHexChannel(hex.substring(4, 6))\n }\n\n if (hex.length === 8) {\n this._alpha = Math.floor(\n (parseHexChannel(hex.substring(6)) / 255) * 100\n )\n } else if (hex.length === 3 || hex.length === 6) {\n this._alpha = 100\n }\n\n const { h, s, v } = rgb2hsv(r, g, b)\n fromHSV(h, s, v)\n }\n }\n\n compare(color) {\n return (\n Math.abs(color._hue - this._hue) < 2 &&\n Math.abs(color._saturation - this._saturation) < 1 &&\n Math.abs(color._value - this._value) < 1 &&\n Math.abs(color._alpha - this._alpha) < 1\n )\n }\n\n doOnChange() {\n const { _hue, _saturation, _value, _alpha, format } = this\n\n if (this.enableAlpha) {\n switch (format) {\n case 'hsl': {\n const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100)\n this.value = `hsla(${_hue}, ${Math.round(\n hsl[1] * 100\n )}%, ${Math.round(hsl[2] * 100)}%, ${_alpha / 100})`\n break\n }\n case 'hsv': {\n this.value = `hsva(${_hue}, ${Math.round(_saturation)}%, ${Math.round(\n _value\n )}%, ${_alpha / 100})`\n break\n }\n default: {\n const { r, g, b } = hsv2rgb(_hue, _saturation, _value)\n this.value = `rgba(${r}, ${g}, ${b}, ${_alpha / 100})`\n }\n }\n } else {\n switch (format) {\n case 'hsl': {\n const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100)\n this.value = `hsl(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(\n hsl[2] * 100\n )}%)`\n break\n }\n case 'hsv': {\n this.value = `hsv(${_hue}, ${Math.round(_saturation)}%, ${Math.round(\n _value\n )}%)`\n break\n }\n case 'rgb': {\n const { r, g, b } = hsv2rgb(_hue, _saturation, _value)\n this.value = `rgb(${r}, ${g}, ${b})`\n break\n }\n default: {\n this.value = toHex(hsv2rgb(_hue, _saturation, _value))\n }\n }\n }\n }\n}\n"],"names":["hasOwn"],"mappings":"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"}
1
+ {"version":3,"file":"color.js","sources":["../../../../../../packages/components/color-picker/src/color.ts"],"sourcesContent":["import { hasOwn } from '@vue/shared'\n\nconst hsv2hsl = function (hue: number, sat: number, val: number) {\n return [\n hue,\n (sat * val) / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0,\n hue / 2,\n ]\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nconst isOnePointZero = function (n: unknown) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1\n}\n\nconst isPercentage = function (n: unknown) {\n return typeof n === 'string' && n.indexOf('%') !== -1\n}\n\n// Take input from [0, n] and return it as [0, 1]\nconst bound01 = function (value: number | string, max: number | string) {\n if (isOnePointZero(value)) value = '100%'\n\n const processPercent = isPercentage(value)\n value = Math.min(max as number, Math.max(0, parseFloat(`${value}`)))\n\n // Automatically convert percentage into number\n if (processPercent) {\n value = parseInt(`${value * (max as number)}`, 10) / 100\n }\n\n // Handle floating point rounding errors\n if (Math.abs(value - (max as number)) < 0.000001) {\n return 1\n }\n\n // Convert into [0, 1] range if it isn't already\n return (value % (max as number)) / parseFloat(max as string)\n}\n\nconst INT_HEX_MAP = { 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' }\n\nconst hexOne = function (value: number) {\n value = Math.min(Math.round(value), 255)\n const high = Math.floor(value / 16)\n const low = value % 16\n return `${INT_HEX_MAP[high] || high}${INT_HEX_MAP[low] || low}`\n}\n\nconst toHex = function ({ r, g, b }) {\n if (isNaN(r) || isNaN(g) || isNaN(b)) return ''\n\n return `#${hexOne(r)}${hexOne(g)}${hexOne(b)}`\n}\n\nconst HEX_INT_MAP = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 }\n\nconst parseHexChannel = function (hex: string) {\n if (hex.length === 2) {\n return (\n (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 +\n (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1])\n )\n }\n\n return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]\n}\n\nconst hsl2hsv = function (hue: number, sat: number, light: number) {\n sat = sat / 100\n light = light / 100\n let smin = sat\n const lmin = Math.max(light, 0.01)\n // let sv\n // let v\n\n light *= 2\n sat *= light <= 1 ? light : 2 - light\n smin *= lmin <= 1 ? lmin : 2 - lmin\n const v = (light + sat) / 2\n const sv =\n light === 0 ? (2 * smin) / (lmin + smin) : (2 * sat) / (light + sat)\n\n return {\n h: hue,\n s: sv * 100,\n v: v * 100,\n }\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nconst rgb2hsv = function (r, g, b) {\n r = bound01(r, 255)\n g = bound01(g, 255)\n b = bound01(b, 255)\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n let h\n const v = max\n\n const d = max - min\n const s = max === 0 ? 0 : d / max\n\n if (max === min) {\n h = 0 // achromatic\n } else {\n switch (max) {\n case r: {\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n }\n case g: {\n h = (b - r) / d + 2\n break\n }\n case b: {\n h = (r - g) / d + 4\n break\n }\n }\n h /= 6\n }\n\n return { h: h * 360, s: s * 100, v: v * 100 }\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nconst hsv2rgb = function (h, s, v) {\n h = bound01(h, 360) * 6\n s = bound01(s, 100)\n v = bound01(v, 100)\n\n const i = Math.floor(h)\n const f = h - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n const mod = i % 6\n const r = [v, q, p, p, t, v][mod]\n const g = [t, v, v, q, p, p][mod]\n const b = [p, p, t, v, v, q][mod]\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n }\n}\n\nexport interface Options {\n enableAlpha: boolean\n format: string\n value?: string\n}\n\nexport default class Color {\n private _hue = 0\n private _saturation = 100\n private _value = 100\n private _alpha = 100\n public enableAlpha = false\n public format = 'hex'\n public value = ''\n public selected?: boolean\n constructor(options?: Options) {\n options = options || ({} as Options)\n\n for (const option in options) {\n if (hasOwn(options, option)) {\n this[option] = options[option]\n }\n }\n\n this.doOnChange()\n }\n\n set(prop: { [key: string]: any } | any, value?: number) {\n if (arguments.length === 1 && typeof prop === 'object') {\n for (const p in prop) {\n if (hasOwn(prop, p)) {\n this.set(p, prop[p])\n }\n }\n\n return\n }\n\n this[`_${prop}`] = value\n this.doOnChange()\n }\n\n get(prop: string) {\n if (prop === 'alpha') {\n return Math.floor(this[`_${prop}`])\n }\n return this[`_${prop}`]\n }\n\n toRgb() {\n return hsv2rgb(this._hue, this._saturation, this._value)\n }\n\n fromString(value) {\n if (!value) {\n this._hue = 0\n this._saturation = 100\n this._value = 100\n\n this.doOnChange()\n return\n }\n\n const fromHSV = (h, s, v) => {\n this._hue = Math.max(0, Math.min(360, h))\n this._saturation = Math.max(0, Math.min(100, s))\n this._value = Math.max(0, Math.min(100, v))\n\n this.doOnChange()\n }\n\n if (value.indexOf('hsl') !== -1) {\n const parts = value\n .replace(/hsla|hsl|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = parseFloat(parts[3]) * 100\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n const { h, s, v } = hsl2hsv(parts[0], parts[1], parts[2])\n fromHSV(h, s, v)\n }\n } else if (value.indexOf('hsv') !== -1) {\n const parts = value\n .replace(/hsva|hsv|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = parseFloat(parts[3]) * 100\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n fromHSV(parts[0], parts[1], parts[2])\n }\n } else if (value.indexOf('rgb') !== -1) {\n const parts = value\n .replace(/rgba|rgb|\\(|\\)/gm, '')\n .split(/\\s|,/g)\n .filter((val) => val !== '')\n .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10)))\n\n if (parts.length === 4) {\n this._alpha = parseFloat(parts[3]) * 100\n } else if (parts.length === 3) {\n this._alpha = 100\n }\n if (parts.length >= 3) {\n const { h, s, v } = rgb2hsv(parts[0], parts[1], parts[2])\n fromHSV(h, s, v)\n }\n } else if (value.indexOf('#') !== -1) {\n const hex = value.replace('#', '').trim()\n if (!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(hex))\n return\n let r, g, b\n\n if (hex.length === 3) {\n r = parseHexChannel(hex[0] + hex[0])\n g = parseHexChannel(hex[1] + hex[1])\n b = parseHexChannel(hex[2] + hex[2])\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseHexChannel(hex.substring(0, 2))\n g = parseHexChannel(hex.substring(2, 4))\n b = parseHexChannel(hex.substring(4, 6))\n }\n\n if (hex.length === 8) {\n this._alpha = (parseHexChannel(hex.substring(6)) / 255) * 100\n } else if (hex.length === 3 || hex.length === 6) {\n this._alpha = 100\n }\n\n const { h, s, v } = rgb2hsv(r, g, b)\n fromHSV(h, s, v)\n }\n }\n\n compare(color) {\n return (\n Math.abs(color._hue - this._hue) < 2 &&\n Math.abs(color._saturation - this._saturation) < 1 &&\n Math.abs(color._value - this._value) < 1 &&\n Math.abs(color._alpha - this._alpha) < 1\n )\n }\n\n doOnChange() {\n const { _hue, _saturation, _value, _alpha, format } = this\n\n if (this.enableAlpha) {\n switch (format) {\n case 'hsl': {\n const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100)\n this.value = `hsla(${_hue}, ${Math.round(\n hsl[1] * 100\n )}%, ${Math.round(hsl[2] * 100)}%, ${this.get('alpha') / 100})`\n break\n }\n case 'hsv': {\n this.value = `hsva(${_hue}, ${Math.round(_saturation)}%, ${Math.round(\n _value\n )}%, ${this.get('alpha') / 100})`\n break\n }\n case 'hex': {\n this.value = `${toHex(hsv2rgb(_hue, _saturation, _value))}${hexOne(\n (_alpha * 255) / 100\n )}`\n break\n }\n default: {\n const { r, g, b } = hsv2rgb(_hue, _saturation, _value)\n this.value = `rgba(${r}, ${g}, ${b}, ${this.get('alpha') / 100})`\n }\n }\n } else {\n switch (format) {\n case 'hsl': {\n const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100)\n this.value = `hsl(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(\n hsl[2] * 100\n )}%)`\n break\n }\n case 'hsv': {\n this.value = `hsv(${_hue}, ${Math.round(_saturation)}%, ${Math.round(\n _value\n )}%)`\n break\n }\n case 'rgb': {\n const { r, g, b } = hsv2rgb(_hue, _saturation, _value)\n this.value = `rgb(${r}, ${g}, ${b})`\n break\n }\n default: {\n this.value = toHex(hsv2rgb(_hue, _saturation, _value))\n }\n }\n }\n }\n}\n"],"names":["hasOwn"],"mappings":"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"}
@@ -1,12 +1,19 @@
1
1
  export declare const ElConfigProvider: import("../../utils/types").SFCWithInstall<import("vue").DefineComponent<{
2
- locale: {
3
- type: import("vue").PropType<import("../../locale").Language>;
4
- };
2
+ button: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("..").ButtonConfigContext>, import("../../utils/types").Mutable<{
3
+ readonly autoInsertSpace: true;
4
+ }>, false, never, never>;
5
+ locale: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("../../locale").Language>, never, false, never, never>;
5
6
  }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
6
7
  [key: string]: any;
7
8
  }>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
9
+ button?: unknown;
8
10
  locale?: unknown;
9
- } & {} & {
11
+ } & {
12
+ button: import("..").ButtonConfigContext;
13
+ } & {
10
14
  locale?: import("../../locale").Language | undefined;
11
- }>, {}>> & Record<string, any>;
15
+ }>, {
16
+ button: import("..").ButtonConfigContext;
17
+ locale: import("../../locale").Language;
18
+ }>> & Record<string, any>;
12
19
  export default ElConfigProvider;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var withInstall = require('../../utils/with-install.js');
6
- var configProvider = require('./config-provider.js');
6
+ var index = require('./src/index.js');
7
7
 
8
- const ElConfigProvider = withInstall.withInstall(configProvider.ConfigProvider);
8
+ const ElConfigProvider = withInstall.withInstall(index.ConfigProvider);
9
9
 
10
10
  exports.ElConfigProvider = ElConfigProvider;
11
11
  exports["default"] = ElConfigProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/config-provider/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport { ConfigProvider } from './config-provider'\n\nexport const ElConfigProvider = withInstall(ConfigProvider)\nexport default ElConfigProvider\n"],"names":["withInstall","ConfigProvider"],"mappings":";;;;;;;MAGa,mBAAmBA,wBAAYC;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/config-provider/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport { ConfigProvider } from './src'\n\nexport const ElConfigProvider = withInstall(ConfigProvider)\nexport default ElConfigProvider\n"],"names":["withInstall","ConfigProvider"],"mappings":";;;;;;;MAGa,mBAAmBA,wBAAYC;;;;;"}
@@ -0,0 +1,7 @@
1
+ import type { ButtonConfigContext } from 'element-plus/es/components/button';
2
+ export declare const configProviderProps: {
3
+ button: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<ButtonConfigContext>, import("../../../utils/types").Mutable<{
4
+ readonly autoInsertSpace: true;
5
+ }>, false, never, never>;
6
+ locale: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<import("../../../locale").Language>, never, false, never, never>;
7
+ };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../../hooks/index.js');
6
+ var props = require('../../../utils/props.js');
7
+ var index = require('../../../hooks/use-locale/index.js');
8
+
9
+ const configProviderProps = {
10
+ ...index.useLocaleProps,
11
+ button: props.buildProp({
12
+ type: props.definePropType(Object),
13
+ default: () => {
14
+ return props.mutable({
15
+ autoInsertSpace: true
16
+ });
17
+ }
18
+ })
19
+ };
20
+
21
+ exports.configProviderProps = configProviderProps;
22
+ //# sourceMappingURL=config-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-provider.js","sources":["../../../../../../packages/components/config-provider/src/config-provider.ts"],"sourcesContent":["import { useLocaleProps } from '@element-plus/hooks'\nimport { buildProp, definePropType, mutable } from '@element-plus/utils/props'\nimport type { ButtonConfigContext } from '@element-plus/components/button'\n\nexport const configProviderProps = {\n ...useLocaleProps,\n // Add more configs\n button: buildProp({\n type: definePropType<ButtonConfigContext>(Object),\n default: () => {\n return mutable({\n autoInsertSpace: true,\n } as const)\n },\n }),\n}\n"],"names":["useLocaleProps","buildProp","definePropType","mutable"],"mappings":";;;;;;;;MAIa,sBAAsB;AAAA,KAC9BA;AAAA,EAEH,QAAQC,gBAAU;AAAA,IAChB,MAAMC,qBAAoC;AAAA,IAC1C,SAAS,MAAM;AACb,aAAOC,cAAQ;AAAA,QACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -0,0 +1,18 @@
1
+ export declare const ConfigProvider: import("vue").DefineComponent<{
2
+ button: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("../..").ButtonConfigContext>, import("../../../utils/types").Mutable<{
3
+ readonly autoInsertSpace: true;
4
+ }>, false, never, never>;
5
+ locale: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("../../../locale").Language>, never, false, never, never>;
6
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
7
+ [key: string]: any;
8
+ }>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
9
+ button?: unknown;
10
+ locale?: unknown;
11
+ } & {
12
+ button: import("../..").ButtonConfigContext;
13
+ } & {
14
+ locale?: import("../../../locale").Language | undefined;
15
+ }>, {
16
+ button: import("../..").ButtonConfigContext;
17
+ locale: import("../../../locale").Language;
18
+ }>;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ require('../../../hooks/index.js');
7
+ require('../../../tokens/index.js');
8
+ var configProvider = require('./config-provider.js');
9
+ var index = require('../../../hooks/use-locale/index.js');
10
+ var configProvider$1 = require('../../../tokens/config-provider.js');
11
+
12
+ const ConfigProvider = vue.defineComponent({
13
+ name: "ElConfigProvider",
14
+ props: configProvider.configProviderProps,
15
+ setup(props, { slots }) {
16
+ index.useLocale();
17
+ vue.provide(configProvider$1.configProviderContextKey, props);
18
+ return () => {
19
+ var _a;
20
+ return (_a = slots.default) == null ? void 0 : _a.call(slots);
21
+ };
22
+ }
23
+ });
24
+
25
+ exports.ConfigProvider = ConfigProvider;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/config-provider/src/index.ts"],"sourcesContent":["import { provide, defineComponent } from 'vue'\nimport { useLocale } from '@element-plus/hooks'\nimport { configProviderContextKey } from '@element-plus/tokens'\nimport { configProviderProps } from './config-provider'\n\nexport const ConfigProvider = defineComponent({\n name: 'ElConfigProvider',\n props: configProviderProps,\n setup(props, { slots }) {\n useLocale()\n provide(configProviderContextKey, props)\n return () => slots.default?.()\n },\n})\n"],"names":["defineComponent","configProviderProps","configProviderContextKey"],"mappings":";;;;;;;;;;;MAKa,iBAAiBA,oBAAgB;AAAA,EAC5C,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAM,OAAO,EAAE,SAAS;AACtB;AACA,gBAAQC,2CAA0B;AAClC,WAAO,MAAG;AAXd;AAWiB,yBAAM,YAAN;AAAA;AAAA;AAAA;;;;"}
@@ -10,7 +10,7 @@ var ElDatePickerCell = vue.defineComponent({
10
10
  name: "ElDatePickerCell",
11
11
  props: props.buildProps({
12
12
  cell: {
13
- type: props.definePropType(Array)
13
+ type: props.definePropType(Object)
14
14
  }
15
15
  }),
16
16
  setup(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"basic-cell-render.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-cell-render.ts"],"sourcesContent":["import { h, defineComponent, inject } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport { ROOT_PICKER_INJECTION_KEY } from '../date-picker.type'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n name: 'ElDatePickerCell',\n props: buildProps({\n cell: {\n type: definePropType<DateCell>(Array),\n },\n }),\n setup(props) {\n const picker = inject(ROOT_PICKER_INJECTION_KEY)\n return () => {\n const cell = props.cell\n return picker?.ctx.slots.default\n ? picker.ctx.slots.default(cell)\n : h(\n 'div',\n {\n class: 'el-date-table-cell',\n },\n [\n h(\n 'span',\n {\n class: 'el-date-table-cell__text',\n },\n [cell?.text]\n ),\n ]\n )\n }\n },\n})\n"],"names":["defineComponent","buildProps","definePropType","inject","ROOT_PICKER_INJECTION_KEY","h"],"mappings":";;;;;;;;AAKA,uBAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC,iBAAW;AAAA,IAChB,MAAM;AAAA,MACJ,MAAMC,qBAAyB;AAAA;AAAA;AAAA,EAGnC,MAAM,OAAO;AACX,UAAM,SAASC,WAAOC;AACtB,WAAO,MAAM;AACX,YAAM,OAAO,MAAM;AACnB,aAAO,kCAAQ,IAAI,MAAM,WACrB,OAAO,IAAI,MAAM,QAAQ,QACzBC,MACE,OACA;AAAA,QACE,OAAO;AAAA,SAET;AAAA,QACEA,MACE,QACA;AAAA,UACE,OAAO;AAAA,WAET,CAAC,6BAAM;AAAA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"basic-cell-render.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-cell-render.ts"],"sourcesContent":["import { h, defineComponent, inject } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport { ROOT_PICKER_INJECTION_KEY } from '../date-picker.type'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n name: 'ElDatePickerCell',\n props: buildProps({\n cell: {\n type: definePropType<DateCell>(Object),\n },\n }),\n setup(props) {\n const picker = inject(ROOT_PICKER_INJECTION_KEY)\n return () => {\n const cell = props.cell\n return picker?.ctx.slots.default\n ? picker.ctx.slots.default(cell)\n : h(\n 'div',\n {\n class: 'el-date-table-cell',\n },\n [\n h(\n 'span',\n {\n class: 'el-date-table-cell__text',\n },\n [cell?.text]\n ),\n ]\n )\n }\n },\n})\n"],"names":["defineComponent","buildProps","definePropType","inject","ROOT_PICKER_INJECTION_KEY","h"],"mappings":";;;;;;;;AAKA,uBAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC,iBAAW;AAAA,IAChB,MAAM;AAAA,MACJ,MAAMC,qBAAyB;AAAA;AAAA;AAAA,EAGnC,MAAM,OAAO;AACX,UAAM,SAASC,WAAOC;AACtB,WAAO,MAAM;AACX,YAAM,OAAO,MAAM;AACnB,aAAO,kCAAQ,IAAI,MAAM,WACrB,OAAO,IAAI,MAAM,QAAQ,QACzBC,MACE,OACA;AAAA,QACE,OAAO;AAAA,SAET;AAAA,QACEA,MACE,QACA;AAAA,UACE,OAAO;AAAA,WAET,CAAC,6BAAM;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -236,7 +236,7 @@ var script = vue.defineComponent({
236
236
  }
237
237
  target = target.parentNode;
238
238
  }
239
- if (target.tagName !== "TD")
239
+ if (!target || target.tagName !== "TD")
240
240
  return;
241
241
  const row = target.parentNode.rowIndex - 1;
242
242
  const column = target.cellIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-date-table.vue_vue&type=script&lang.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElDatePickerCell","useLocaleInject","ref","computed","coerceTruthyValueToArray","dayjs"],"mappings":"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"}
1
+ {"version":3,"file":"basic-date-table.vue_vue&type=script&lang.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElDatePickerCell","useLocaleInject","ref","computed","coerceTruthyValueToArray","dayjs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-date-table.vue_vue&type=template&id=0572814e&lang.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue?vue&type=template&id=0572814e&lang.js"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode"],"mappings":";;;;;;;;;0BACEA;IACE,aAAY;AAAA,IACZ,aAAY;AAAA,IACZ,2BAAM,mCACoB;IACzB,gDAAO;IACP,oDAAW;;IAEZC;MACEA;QACY,wCAAVD,6DAA6B;8BAC7BA,0DAA0B,aAAd,MAAM;kCAAlBA,+BAAkC,2BAC7B,gCAA2B;;;4BAGlCA,0DACuB,YAAb,KAAK;gCADfA;UAEG;AAAA,UACD,2BAAM,iCACa,kBAAa;;gCAEhCA,0DACyB,MAAf,MAAM;oCADhBA;cAEG,KAAK;AAAA,cACL,0BAAO,oBAAe;AAAA;cAEvBE,kDAAsB;;;;;;;;;;;"}
1
+ {"version":3,"file":"basic-date-table.vue_vue&type=template&id=0572814e&lang.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue?vue&type=template&id=0572814e&lang.js"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode"],"mappings":";;;;;;;;;0BACEA;IACE,aAAY;AAAA,IACZ,aAAY;AAAA,IACZ,2BAAM,mCACoB;IACzB,gDAAO;IACP,oDAAW;;IAEZC;MACEA;QACY,wCAAVD,6DAA6B;8BAC7BA,0DAA0B,aAAd,MAAM;kCAAlBA,+BAAkC,2BAC7B,gCAA2B;;;4BAGlCA,0DACuB,YAAb,KAAK;gCADfA;UAEG;AAAA,UACD,2BAAM,iCACa,kBAAa;;gCAEhCA,0DACyB,MAAf,MAAM;oCADhBA;cAEG,KAAK;AAAA,cACL,0BAAO,oBAAe;AAAA;cAEvBE,kDAAsB;;;;;;;;;;;"}
@@ -65,7 +65,19 @@ var script = vue.defineComponent({
65
65
  emits: ["pick", "set-picker-option"],
66
66
  setup(props, ctx) {
67
67
  const { t, lang } = index$4.useLocaleInject();
68
+ const pickerBase = vue.inject("EP_PICKER_BASE");
69
+ const {
70
+ shortcuts,
71
+ disabledDate,
72
+ cellClassName,
73
+ defaultTime,
74
+ defaultValue,
75
+ arrowControl
76
+ } = pickerBase.props;
68
77
  const innerDate = vue.ref(dayjs__default["default"]().locale(lang.value));
78
+ const defaultTimeD = vue.computed(() => {
79
+ return dayjs__default["default"](defaultTime).locale(lang.value);
80
+ });
69
81
  const month = vue.computed(() => {
70
82
  return innerDate.value.month();
71
83
  });
@@ -79,9 +91,8 @@ var script = vue.defineComponent({
79
91
  return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || "HH:mm:ss") : true;
80
92
  };
81
93
  const formatEmit = (emitDayjs) => {
82
- if (defaultTime) {
83
- const defaultTimeD = dayjs__default["default"](defaultTime).locale(lang.value);
84
- return defaultTimeD.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
94
+ if (defaultTime && !visibleTime.value) {
95
+ return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
85
96
  }
86
97
  if (showTime.value)
87
98
  return emitDayjs.millisecond(0);
@@ -202,9 +213,9 @@ var script = vue.defineComponent({
202
213
  } else {
203
214
  let result = props.parsedValue;
204
215
  if (!result) {
205
- const defaultTimeD = dayjs__default["default"](defaultTime).locale(lang.value);
216
+ const defaultTimeD2 = dayjs__default["default"](defaultTime).locale(lang.value);
206
217
  const defaultValueD = getDefaultValue();
207
- result = defaultTimeD.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date());
218
+ result = defaultTimeD2.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date());
208
219
  }
209
220
  innerDate.value = result;
210
221
  emit(result);
@@ -286,7 +297,12 @@ var script = vue.defineComponent({
286
297
  return dayjs__default["default"](value, props.format).locale(lang.value);
287
298
  };
288
299
  const getDefaultValue = () => {
289
- return dayjs__default["default"](defaultValue).locale(lang.value);
300
+ const parseDate = dayjs__default["default"](defaultValue).locale(lang.value);
301
+ if (!defaultValue) {
302
+ const defaultTimeDValue = defaultTimeD.value;
303
+ return dayjs__default["default"]().hour(defaultTimeDValue.hour()).minute(defaultTimeDValue.minute()).second(defaultTimeDValue.second()).locale(lang.value);
304
+ }
305
+ return parseDate;
290
306
  };
291
307
  const handleKeydown = (event) => {
292
308
  const { code, keyCode } = event;
@@ -355,15 +371,6 @@ var script = vue.defineComponent({
355
371
  ctx.emit("set-picker-option", ["formatToString", formatToString]);
356
372
  ctx.emit("set-picker-option", ["parseUserInput", parseUserInput]);
357
373
  ctx.emit("set-picker-option", ["handleKeydown", handleKeydown]);
358
- const pickerBase = vue.inject("EP_PICKER_BASE");
359
- const {
360
- shortcuts,
361
- disabledDate,
362
- cellClassName,
363
- defaultTime,
364
- defaultValue,
365
- arrowControl
366
- } = pickerBase.props;
367
374
  vue.watch(() => props.parsedValue, (val) => {
368
375
  if (val) {
369
376
  if (selectionMode.value === "dates")