@element-plus/nightly 0.0.20220401 → 0.0.20220404

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 (325) hide show
  1. package/README.md +4 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +579 -369
  5. package/dist/index.full.min.js +10 -10
  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 +579 -370
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +1 -1
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.mjs +1 -1
  17. package/dist/locale/ar.mjs +1 -1
  18. package/dist/locale/az.js +1 -1
  19. package/dist/locale/az.min.js +1 -1
  20. package/dist/locale/az.min.mjs +1 -1
  21. package/dist/locale/az.mjs +1 -1
  22. package/dist/locale/bg.js +1 -1
  23. package/dist/locale/bg.min.js +1 -1
  24. package/dist/locale/bg.min.mjs +1 -1
  25. package/dist/locale/bg.mjs +1 -1
  26. package/dist/locale/bn.js +1 -1
  27. package/dist/locale/bn.min.js +1 -1
  28. package/dist/locale/bn.min.mjs +1 -1
  29. package/dist/locale/bn.mjs +1 -1
  30. package/dist/locale/ca.js +1 -1
  31. package/dist/locale/ca.min.js +1 -1
  32. package/dist/locale/ca.min.mjs +1 -1
  33. package/dist/locale/ca.mjs +1 -1
  34. package/dist/locale/cs.js +1 -1
  35. package/dist/locale/cs.min.js +1 -1
  36. package/dist/locale/cs.min.mjs +1 -1
  37. package/dist/locale/cs.mjs +1 -1
  38. package/dist/locale/da.js +1 -1
  39. package/dist/locale/da.min.js +1 -1
  40. package/dist/locale/da.min.mjs +1 -1
  41. package/dist/locale/da.mjs +1 -1
  42. package/dist/locale/de.js +1 -1
  43. package/dist/locale/de.min.js +1 -1
  44. package/dist/locale/de.min.mjs +1 -1
  45. package/dist/locale/de.mjs +1 -1
  46. package/dist/locale/el.js +1 -1
  47. package/dist/locale/el.min.js +1 -1
  48. package/dist/locale/el.min.mjs +1 -1
  49. package/dist/locale/el.mjs +1 -1
  50. package/dist/locale/en.js +1 -1
  51. package/dist/locale/en.min.js +1 -1
  52. package/dist/locale/en.min.mjs +1 -1
  53. package/dist/locale/en.mjs +1 -1
  54. package/dist/locale/eo.js +1 -1
  55. package/dist/locale/eo.min.js +1 -1
  56. package/dist/locale/eo.min.mjs +1 -1
  57. package/dist/locale/eo.mjs +1 -1
  58. package/dist/locale/es.js +1 -1
  59. package/dist/locale/es.min.js +1 -1
  60. package/dist/locale/es.min.mjs +1 -1
  61. package/dist/locale/es.mjs +1 -1
  62. package/dist/locale/et.js +1 -1
  63. package/dist/locale/et.min.js +1 -1
  64. package/dist/locale/et.min.mjs +1 -1
  65. package/dist/locale/et.mjs +1 -1
  66. package/dist/locale/eu.js +1 -1
  67. package/dist/locale/eu.min.js +1 -1
  68. package/dist/locale/eu.min.mjs +1 -1
  69. package/dist/locale/eu.mjs +1 -1
  70. package/dist/locale/fa.js +1 -1
  71. package/dist/locale/fa.min.js +1 -1
  72. package/dist/locale/fa.min.mjs +1 -1
  73. package/dist/locale/fa.mjs +1 -1
  74. package/dist/locale/fi.js +1 -1
  75. package/dist/locale/fi.min.js +1 -1
  76. package/dist/locale/fi.min.mjs +1 -1
  77. package/dist/locale/fi.mjs +1 -1
  78. package/dist/locale/fr.js +1 -1
  79. package/dist/locale/fr.min.js +1 -1
  80. package/dist/locale/fr.min.mjs +1 -1
  81. package/dist/locale/fr.mjs +1 -1
  82. package/dist/locale/he.js +1 -1
  83. package/dist/locale/he.min.js +1 -1
  84. package/dist/locale/he.min.mjs +1 -1
  85. package/dist/locale/he.mjs +1 -1
  86. package/dist/locale/hr.js +1 -1
  87. package/dist/locale/hr.min.js +1 -1
  88. package/dist/locale/hr.min.mjs +1 -1
  89. package/dist/locale/hr.mjs +1 -1
  90. package/dist/locale/hu.js +1 -1
  91. package/dist/locale/hu.min.js +1 -1
  92. package/dist/locale/hu.min.mjs +1 -1
  93. package/dist/locale/hu.mjs +1 -1
  94. package/dist/locale/hy-am.js +1 -1
  95. package/dist/locale/hy-am.min.js +1 -1
  96. package/dist/locale/hy-am.min.mjs +1 -1
  97. package/dist/locale/hy-am.mjs +1 -1
  98. package/dist/locale/id.js +1 -1
  99. package/dist/locale/id.min.js +1 -1
  100. package/dist/locale/id.min.mjs +1 -1
  101. package/dist/locale/id.mjs +1 -1
  102. package/dist/locale/it.js +1 -1
  103. package/dist/locale/it.min.js +1 -1
  104. package/dist/locale/it.min.mjs +1 -1
  105. package/dist/locale/it.mjs +1 -1
  106. package/dist/locale/ja.js +1 -1
  107. package/dist/locale/ja.min.js +1 -1
  108. package/dist/locale/ja.min.mjs +1 -1
  109. package/dist/locale/ja.mjs +1 -1
  110. package/dist/locale/kk.js +1 -1
  111. package/dist/locale/kk.min.js +1 -1
  112. package/dist/locale/kk.min.mjs +1 -1
  113. package/dist/locale/kk.mjs +1 -1
  114. package/dist/locale/km.js +1 -1
  115. package/dist/locale/km.min.js +1 -1
  116. package/dist/locale/km.min.mjs +1 -1
  117. package/dist/locale/km.mjs +1 -1
  118. package/dist/locale/ko.js +1 -1
  119. package/dist/locale/ko.min.js +1 -1
  120. package/dist/locale/ko.min.mjs +1 -1
  121. package/dist/locale/ko.mjs +1 -1
  122. package/dist/locale/ku.js +1 -1
  123. package/dist/locale/ku.min.js +1 -1
  124. package/dist/locale/ku.min.mjs +1 -1
  125. package/dist/locale/ku.mjs +1 -1
  126. package/dist/locale/ky.js +1 -1
  127. package/dist/locale/ky.min.js +1 -1
  128. package/dist/locale/ky.min.mjs +1 -1
  129. package/dist/locale/ky.mjs +1 -1
  130. package/dist/locale/lt.js +1 -1
  131. package/dist/locale/lt.min.js +1 -1
  132. package/dist/locale/lt.min.mjs +1 -1
  133. package/dist/locale/lt.mjs +1 -1
  134. package/dist/locale/lv.js +1 -1
  135. package/dist/locale/lv.min.js +1 -1
  136. package/dist/locale/lv.min.mjs +1 -1
  137. package/dist/locale/lv.mjs +1 -1
  138. package/dist/locale/mg.js +1 -1
  139. package/dist/locale/mg.min.js +1 -1
  140. package/dist/locale/mg.min.mjs +1 -1
  141. package/dist/locale/mg.mjs +1 -1
  142. package/dist/locale/mn.js +1 -1
  143. package/dist/locale/mn.min.js +1 -1
  144. package/dist/locale/mn.min.mjs +1 -1
  145. package/dist/locale/mn.mjs +1 -1
  146. package/dist/locale/nb-no.js +1 -1
  147. package/dist/locale/nb-no.min.js +1 -1
  148. package/dist/locale/nb-no.min.mjs +1 -1
  149. package/dist/locale/nb-no.mjs +1 -1
  150. package/dist/locale/nl.js +1 -1
  151. package/dist/locale/nl.min.js +1 -1
  152. package/dist/locale/nl.min.mjs +1 -1
  153. package/dist/locale/nl.mjs +1 -1
  154. package/dist/locale/pa.js +1 -1
  155. package/dist/locale/pa.min.js +1 -1
  156. package/dist/locale/pa.min.mjs +1 -1
  157. package/dist/locale/pa.mjs +1 -1
  158. package/dist/locale/pl.js +1 -1
  159. package/dist/locale/pl.min.js +1 -1
  160. package/dist/locale/pl.min.mjs +1 -1
  161. package/dist/locale/pl.mjs +1 -1
  162. package/dist/locale/pt-br.js +1 -1
  163. package/dist/locale/pt-br.min.js +1 -1
  164. package/dist/locale/pt-br.min.mjs +1 -1
  165. package/dist/locale/pt-br.mjs +1 -1
  166. package/dist/locale/pt.js +1 -1
  167. package/dist/locale/pt.min.js +1 -1
  168. package/dist/locale/pt.min.mjs +1 -1
  169. package/dist/locale/pt.mjs +1 -1
  170. package/dist/locale/ro.js +1 -1
  171. package/dist/locale/ro.min.js +1 -1
  172. package/dist/locale/ro.min.mjs +1 -1
  173. package/dist/locale/ro.mjs +1 -1
  174. package/dist/locale/ru.js +1 -1
  175. package/dist/locale/ru.min.js +1 -1
  176. package/dist/locale/ru.min.mjs +1 -1
  177. package/dist/locale/ru.mjs +1 -1
  178. package/dist/locale/sk.js +1 -1
  179. package/dist/locale/sk.min.js +1 -1
  180. package/dist/locale/sk.min.mjs +1 -1
  181. package/dist/locale/sk.mjs +1 -1
  182. package/dist/locale/sl.js +1 -1
  183. package/dist/locale/sl.min.js +1 -1
  184. package/dist/locale/sl.min.mjs +1 -1
  185. package/dist/locale/sl.mjs +1 -1
  186. package/dist/locale/sr.js +1 -1
  187. package/dist/locale/sr.min.js +1 -1
  188. package/dist/locale/sr.min.mjs +1 -1
  189. package/dist/locale/sr.mjs +1 -1
  190. package/dist/locale/sv.js +1 -1
  191. package/dist/locale/sv.min.js +1 -1
  192. package/dist/locale/sv.min.mjs +1 -1
  193. package/dist/locale/sv.mjs +1 -1
  194. package/dist/locale/ta.js +1 -1
  195. package/dist/locale/ta.min.js +1 -1
  196. package/dist/locale/ta.min.mjs +1 -1
  197. package/dist/locale/ta.mjs +1 -1
  198. package/dist/locale/th.js +1 -1
  199. package/dist/locale/th.min.js +1 -1
  200. package/dist/locale/th.min.mjs +1 -1
  201. package/dist/locale/th.mjs +1 -1
  202. package/dist/locale/tk.js +1 -1
  203. package/dist/locale/tk.min.js +1 -1
  204. package/dist/locale/tk.min.mjs +1 -1
  205. package/dist/locale/tk.mjs +1 -1
  206. package/dist/locale/tr.js +1 -1
  207. package/dist/locale/tr.min.js +1 -1
  208. package/dist/locale/tr.min.mjs +1 -1
  209. package/dist/locale/tr.mjs +1 -1
  210. package/dist/locale/ug-cn.js +1 -1
  211. package/dist/locale/ug-cn.min.js +1 -1
  212. package/dist/locale/ug-cn.min.mjs +1 -1
  213. package/dist/locale/ug-cn.mjs +1 -1
  214. package/dist/locale/uk.js +1 -1
  215. package/dist/locale/uk.min.js +1 -1
  216. package/dist/locale/uk.min.mjs +1 -1
  217. package/dist/locale/uk.mjs +1 -1
  218. package/dist/locale/uz-uz.js +1 -1
  219. package/dist/locale/uz-uz.min.js +1 -1
  220. package/dist/locale/uz-uz.min.mjs +1 -1
  221. package/dist/locale/uz-uz.mjs +1 -1
  222. package/dist/locale/vi.js +1 -1
  223. package/dist/locale/vi.min.js +1 -1
  224. package/dist/locale/vi.min.mjs +1 -1
  225. package/dist/locale/vi.mjs +1 -1
  226. package/dist/locale/zh-cn.js +1 -1
  227. package/dist/locale/zh-cn.min.js +1 -1
  228. package/dist/locale/zh-cn.min.mjs +1 -1
  229. package/dist/locale/zh-cn.mjs +1 -1
  230. package/dist/locale/zh-tw.js +1 -1
  231. package/dist/locale/zh-tw.min.js +1 -1
  232. package/dist/locale/zh-tw.min.mjs +1 -1
  233. package/dist/locale/zh-tw.mjs +1 -1
  234. package/es/component.mjs +2 -0
  235. package/es/component.mjs.map +1 -1
  236. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  237. package/es/components/index.d.ts +1 -0
  238. package/es/components/index.mjs +1 -0
  239. package/es/components/index.mjs.map +1 -1
  240. package/es/components/tabs/index.d.ts +2 -0
  241. package/es/components/tabs/src/tabs.d.ts +5 -0
  242. package/es/components/tabs/src/tabs.mjs +16 -2
  243. package/es/components/tabs/src/tabs.mjs.map +1 -1
  244. package/es/components/tree-select/index.d.ts +12 -0
  245. package/es/components/tree-select/index.mjs +10 -0
  246. package/es/components/tree-select/index.mjs.map +1 -0
  247. package/es/components/tree-select/src/select.d.ts +10 -0
  248. package/es/components/tree-select/src/select.mjs +42 -0
  249. package/es/components/tree-select/src/select.mjs.map +1 -0
  250. package/es/components/tree-select/src/tree-select-option.d.ts +378 -0
  251. package/es/components/tree-select/src/tree-select-option.mjs +19 -0
  252. package/es/components/tree-select/src/tree-select-option.mjs.map +1 -0
  253. package/es/components/tree-select/src/tree-select.mjs +64 -0
  254. package/es/components/tree-select/src/tree-select.mjs.map +1 -0
  255. package/es/components/tree-select/src/tree-select.vue.d.ts +6 -0
  256. package/es/components/tree-select/src/tree.d.ts +12 -0
  257. package/es/components/tree-select/src/tree.mjs +87 -0
  258. package/es/components/tree-select/src/tree.mjs.map +1 -0
  259. package/es/components/tree-select/style/css.d.ts +3 -0
  260. package/es/components/tree-select/style/css.mjs +4 -0
  261. package/es/components/tree-select/style/css.mjs.map +1 -0
  262. package/es/components/tree-select/style/index.d.ts +3 -0
  263. package/es/components/tree-select/style/index.mjs +4 -0
  264. package/es/components/tree-select/style/index.mjs.map +1 -0
  265. package/es/hooks/use-deprecated/index.d.ts +1 -1
  266. package/es/hooks/use-deprecated/index.mjs.map +1 -1
  267. package/es/index.mjs +1 -0
  268. package/es/index.mjs.map +1 -1
  269. package/es/version.d.ts +1 -1
  270. package/es/version.mjs +1 -1
  271. package/es/version.mjs.map +1 -1
  272. package/lib/component.js +6 -4
  273. package/lib/component.js.map +1 -1
  274. package/lib/components/calendar/src/calendar2.js.map +1 -1
  275. package/lib/components/index.d.ts +1 -0
  276. package/lib/components/index.js +19 -17
  277. package/lib/components/index.js.map +1 -1
  278. package/lib/components/tabs/index.d.ts +2 -0
  279. package/lib/components/tabs/src/tabs.d.ts +5 -0
  280. package/lib/components/tabs/src/tabs.js +18 -4
  281. package/lib/components/tabs/src/tabs.js.map +1 -1
  282. package/lib/components/tree-select/index.d.ts +12 -0
  283. package/lib/components/tree-select/index.js +15 -0
  284. package/lib/components/tree-select/index.js.map +1 -0
  285. package/lib/components/tree-select/src/select.d.ts +10 -0
  286. package/lib/components/tree-select/src/select.js +46 -0
  287. package/lib/components/tree-select/src/select.js.map +1 -0
  288. package/lib/components/tree-select/src/tree-select-option.d.ts +378 -0
  289. package/lib/components/tree-select/src/tree-select-option.js +23 -0
  290. package/lib/components/tree-select/src/tree-select-option.js.map +1 -0
  291. package/lib/components/tree-select/src/tree-select.js +68 -0
  292. package/lib/components/tree-select/src/tree-select.js.map +1 -0
  293. package/lib/components/tree-select/src/tree-select.vue.d.ts +6 -0
  294. package/lib/components/tree-select/src/tree.d.ts +12 -0
  295. package/lib/components/tree-select/src/tree.js +91 -0
  296. package/lib/components/tree-select/src/tree.js.map +1 -0
  297. package/lib/components/tree-select/style/css.d.ts +3 -0
  298. package/lib/components/tree-select/style/css.js +7 -0
  299. package/lib/components/tree-select/style/css.js.map +1 -0
  300. package/lib/components/tree-select/style/index.d.ts +3 -0
  301. package/lib/components/tree-select/style/index.js +7 -0
  302. package/lib/components/tree-select/style/index.js.map +1 -0
  303. package/lib/hooks/use-deprecated/index.d.ts +1 -1
  304. package/lib/hooks/use-deprecated/index.js.map +1 -1
  305. package/lib/index.js +104 -102
  306. package/lib/index.js.map +1 -1
  307. package/lib/version.d.ts +1 -1
  308. package/lib/version.js +1 -1
  309. package/lib/version.js.map +1 -1
  310. package/package.json +3 -3
  311. package/tags.json +1 -1
  312. package/theme-chalk/base.css +1 -1
  313. package/theme-chalk/el-tree-select.css +1 -0
  314. package/theme-chalk/el-var.css +1 -1
  315. package/theme-chalk/index.css +1 -1
  316. package/theme-chalk/src/card.scss +11 -10
  317. package/theme-chalk/src/common/var.scss +14 -25
  318. package/theme-chalk/src/dark/css-vars.scss +10 -2
  319. package/theme-chalk/src/dark/var.scss +67 -0
  320. package/theme-chalk/src/index.scss +1 -0
  321. package/theme-chalk/src/mixins/_var.scss +15 -17
  322. package/theme-chalk/src/mixins/mixins.scss +1 -1
  323. package/theme-chalk/src/tree-select.scss +36 -0
  324. package/theme-chalk/src/var.scss +32 -33
  325. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, defineExpose, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n})\n\nconst nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n})\n\nconst prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n})\n\nconst nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n})\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0DA,IAAA,MAAA,cAAA,GAAA,YAAA,CAAA;AASA,IAAA,MAAA,EAAA,GAAA,aAAA,UAAA,CAAA,CAAA;AAEA,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,GAAA,SAAA,EAAA,CAAA;AACA,IAAA,MAAA,cAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA,GAAA,GAAA,KAAA,EAAA,CAAA,MAAA,CAAA,KAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAA,cAAA,GAAA,SAAA,MAAA;AACA,MAAA,OAAA,KAAA,KAAA,CAAA,QAAA,CAAA,GAAA,OAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,cAAA,GAAA,SAAA,MAAA;AACA,MAAA,OAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAA,OAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,aAAA,GAAA,SAAA,MAAA;AACA,MAAA,OAAA,KAAA,KAAA,CAAA,QAAA,CAAA,GAAA,MAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,aAAA,GAAA,SAAA,MAAA;AACA,MAAA,OAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAA,MAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,QAAA,GAAA,SAAA,MAAA;AACA,MAAA,MAAA,WAAA,GAAA,CAAA,mBAAA,EAAA,IAAA,CAAA,KAAA,CAAA,OAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,OAAA,CAAA,EAAA,KAAA,KAAA,CAAA,IAAA,MAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,kBAAA,QAAA,CAAA;AAAA,MACA,GAAA,GAAA;AACA,QAAA,IAAA,CAAA,KAAA,CAAA,UAAA;AAAA,UAAA,OAAA,WAAA,CAAA,KAAA,CAAA;AACA,QAAA,OAAA,IAAA,CAAA,KAAA,CAAA;AAAA,OACA;AAAA,MACA,IAAA,GAAA,EAAA;AACA,QAAA,IAAA,CAAA,GAAA;AAAA,UAAA,OAAA;AACA,QAAA,WAAA,CAAA,KAAA,GAAA,GAAA,CAAA;AACA,QAAA,MAAA,MAAA,GAAA,IAAA,MAAA,EAAA,CAAA;AAEA,QAAA,IAAA,CAAA,SAAA,MAAA,CAAA,CAAA;AACA,QAAA,IAAA,CAAA,qBAAA,MAAA,CAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,IAAA,GAAA,SAAA,MAAA;AACA,MAAA,IAAA,CAAA,MAAA,UAAA,EAAA;AACA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,UAAA,OAAA,eAAA,CAAA,KAAA,CAAA;AAAA,SACA,MAAA,IAAA,cAAA,CAAA,KAAA,CAAA,MAAA,EAAA;AACA,UAAA,OAAA,cAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SACA;AACA,QAAA,OAAA,GAAA,CAAA;AAAA,OACA,MAAA;AACA,QAAA,OAAA,MAAA,KAAA,CAAA,UAAA,CAAA,CAAA,MAAA,CAAA,KAAA,KAAA,CAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA,CAAA;AAIA,IAAA,MAAA,2BAAA,GAAA,CACA,UAAA,EACA,QACA,KAAA;AACA,MAAA,MAAA,QAAA,GAAA,UAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA;AACA,MAAA,MAAA,OAAA,GAAA,QAAA,CAAA,KAAA,CAAA,MAAA,CAAA,CAAA;AACA,MAAA,MAAA,UAAA,GAAA,QAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA;AACA,MAAA,MAAA,SAAA,GAAA,OAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA;AAGA,MAAA,IAAA,eAAA,SAAA,EAAA;AACA,QAAA,OAAA,CAAA,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA,CAAA;AAAA,OACA,MAAA,IAEA,UAAA,GAAA,CAAA,KAAA,SAAA,EAAA;AACA,QAAA,MAAA,iBAAA,GAAA,QAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACA,QAAA,MAAA,iBAAA,GAAA,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AAGA,QAAA,MAAA,UAAA,GAAA,iBAAA,CAAA,MAAA,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;AACA,QAAA,MAAA,oBAAA,UACA,GAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,EAAA,MAAA,CACA,GAAA,iBAAA,CAAA;AAEA,QAAA,OAAA;AAAA,UACA,CAAA,UAAA,iBAAA,CAAA;AAAA,UACA,CAAA,iBAAA,CAAA,OAAA,CAAA,MAAA,GAAA,OAAA,CAAA;AAAA,SACA,CAAA;AAAA,OACA,MAAA,IAEA,UAAA,GAAA,CAAA,KAAA,SAAA,EAAA;AACA,QAAA,MAAA,iBAAA,GAAA,QAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACA,QAAA,MAAA,sBAAA,QAAA,CAAA,GAAA,CAAA,GAAA,OAAA,CAAA,CAAA,QAAA,OAAA,CAAA,CAAA;AAGA,QAAA,MAAA,mBAAA,GAAA,iBAAA,CAAA,MAAA,CACA,mBACA,EAAA,MACA,IACA,mBAAA,CAAA,GAAA,CAAA,CAAA,EAAA,MAAA,CACA,GAAA,mBAAA,CAAA;AAEA,QAAA,MAAA,kBAAA,GAAA,mBAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACA,QAAA,MAAA,iBAAA,GAAA,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AAGA,QAAA,MAAA,iBAAA,GAAA,kBAAA,CAAA,MAAA,CACA,iBACA,EAAA,MACA,IACA,iBAAA,CAAA,GAAA,CAAA,CAAA,EAAA,MAAA,CACA,GAAA,iBAAA,CAAA;AAEA,QAAA,OAAA;AAAA,UACA,CAAA,UAAA,iBAAA,CAAA;AAAA,UACA,CAAA,mBAAA,CAAA,OAAA,CAAA,MAAA,GAAA,kBAAA,CAAA;AAAA,UACA,CAAA,iBAAA,CAAA,OAAA,CAAA,MAAA,GAAA,OAAA,CAAA;AAAA,SACA,CAAA;AAAA,OAGA,MAAA;AACA,QAAA,SAAA,CACA,gBACA,6DACA,CAAA,CAAA;AACA,QAAA,OAAA,EAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA;AAGA,IAAA,MAAA,cAAA,GAAA,SAAA,MAAA;AACA,MAAA,IAAA,CAAA,KAAA,CAAA,KAAA;AAAA,QAAA,OAAA,EAAA,CAAA;AACA,MAAA,MAAA,aAAA,GAAA,KAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,MAAA,MAAA,CAAA,YAAA,QAAA,CAAA,GAAA,aAAA,CAAA;AACA,MAAA,IAAA,UAAA,CAAA,OAAA,CAAA,QAAA,CAAA,EAAA;AACA,QAAA,SAAA,CAAA,gBAAA,4CAAA,CAAA,CAAA;AACA,QAAA,OAAA,EAAA,CAAA;AAAA,OACA;AACA,MAAA,IAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA;AAEA,QAAA,OAAA,2BAAA,CAAA,YAAA,QAAA,CAAA,CAAA;AAAA,OACA,MAAA;AAEA,QAAA,IAAA,UAAA,CAAA,IAAA,CAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,QAAA,CAAA,KAAA,EAAA,EAAA;AACA,UAAA,SAAA,CACA,gBACA,6DACA,CAAA,CAAA;AACA,UAAA,OAAA,EAAA,CAAA;AAAA,SACA;AACA,QAAA,OAAA,2BAAA,CAAA,YAAA,QAAA,CAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,OAAA,GAAA,CAAA,GAAA,KAAA;AACA,MAAA,eAAA,CAAA,KAAA,GAAA,GAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,UAAA,GAAA,CAAA,IAAA,KAAA;AACA,MAAA,IAAA,GAAA,CAAA;AACA,MAAA,IAAA,SAAA,YAAA,EAAA;AACA,QAAA,GAAA,GAAA,cAAA,CAAA,KAAA,CAAA;AAAA,OACA,MAAA,IAAA,SAAA,YAAA,EAAA;AACA,QAAA,GAAA,GAAA,cAAA,CAAA,KAAA,CAAA;AAAA,OACA,MAAA,IAAA,SAAA,WAAA,EAAA;AACA,QAAA,GAAA,GAAA,aAAA,CAAA,KAAA,CAAA;AAAA,OACA,MAAA,IAAA,SAAA,WAAA,EAAA;AACA,QAAA,GAAA,GAAA,aAAA,CAAA,KAAA,CAAA;AAAA,OACA,MAAA;AACA,QAAA,GAAA,GAAA,GAAA,CAAA;AAAA,OACA;AAEA,MAAA,IAAA,GAAA,CAAA,MAAA,CAAA,IAAA,CAAA,KAAA,EAAA,KAAA,CAAA;AAAA,QAAA,OAAA;AACA,MAAA,OAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,CAAA;AAAA,MAEA,WAAA,EAAA,eAAA;AAAA,MAEA,OAAA;AAAA,MAEA,UAAA;AAAA,MAEA,2BAAA;AAAA,KACA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n})\n\nconst nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n})\n\nconst prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n})\n\nconst nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n})\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -61,6 +61,7 @@ export * from './timeline';
61
61
  export * from './tooltip';
62
62
  export * from './transfer';
63
63
  export * from './tree';
64
+ export * from './tree-select';
64
65
  export * from './tree-v2';
65
66
  export * from './upload';
66
67
  export * from './virtual-list';
@@ -61,6 +61,7 @@ export { ElTimeline, ElTimelineItem } from './timeline/index.mjs';
61
61
  export { ElTooltip } from './tooltip/index.mjs';
62
62
  export { ElTransfer } from './transfer/index.mjs';
63
63
  export { ElTree } from './tree/index.mjs';
64
+ export { ElTreeSelect } from './tree-select/index.mjs';
64
65
  export { ElTreeV2 } from './tree-v2/index.mjs';
65
66
  export { ElUpload } from './upload/index.mjs';
66
67
  import './virtual-list/index.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -26,6 +26,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
26
26
  index: string | undefined;
27
27
  isClosable: boolean;
28
28
  }, ev: Event) => boolean;
29
+ 'tab-change': (name: import("./src/tabs").TabPanelName) => boolean;
29
30
  edit: (paneName: import("./src/tabs").TabPanelName | undefined, action: "remove" | "add") => boolean;
30
31
  'tab-remove': (name: import("./src/tabs").TabPanelName) => boolean;
31
32
  'tab-add': () => boolean;
@@ -57,6 +58,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
57
58
  index: string | undefined;
58
59
  isClosable: boolean;
59
60
  }, ev: Event) => any) | undefined;
61
+ "onTab-change"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
60
62
  onEdit?: ((paneName: import("./src/tabs").TabPanelName | undefined, action: "remove" | "add") => any) | undefined;
61
63
  "onTab-remove"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
62
64
  "onTab-add"?: (() => any) | undefined;
@@ -16,8 +16,10 @@ export declare const tabsProps: {
16
16
  export declare type TabsProps = ExtractPropTypes<typeof tabsProps>;
17
17
  export declare const tabsEmits: {
18
18
  "update:modelValue": (name: TabPanelName) => boolean;
19
+ /** @deprecated use `tab-change` instead */
19
20
  input: (name: TabPanelName) => boolean;
20
21
  'tab-click': (pane: TabsPaneContext, ev: Event) => boolean;
22
+ 'tab-change': (name: TabPanelName) => boolean;
21
23
  edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') => boolean;
22
24
  'tab-remove': (name: TabPanelName) => boolean;
23
25
  'tab-add': () => boolean;
@@ -35,6 +37,7 @@ declare const _default: import("vue").DefineComponent<{
35
37
  readonly stretch: BooleanConstructor;
36
38
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
39
  "update:modelValue": (name: TabPanelName) => boolean;
40
+ /** @deprecated use `tab-change` instead */
38
41
  input: (name: TabPanelName) => boolean;
39
42
  'tab-click': (pane: {
40
43
  uid: number;
@@ -51,6 +54,7 @@ declare const _default: import("vue").DefineComponent<{
51
54
  index: string | undefined;
52
55
  isClosable: boolean;
53
56
  }, ev: Event) => boolean;
57
+ 'tab-change': (name: TabPanelName) => boolean;
54
58
  edit: (paneName: TabPanelName | undefined, action: "remove" | "add") => boolean;
55
59
  'tab-remove': (name: TabPanelName) => boolean;
56
60
  'tab-add': () => boolean;
@@ -82,6 +86,7 @@ declare const _default: import("vue").DefineComponent<{
82
86
  index: string | undefined;
83
87
  isClosable: boolean;
84
88
  }, ev: Event) => any) | undefined;
89
+ "onTab-change"?: ((name: TabPanelName) => any) | undefined;
85
90
  onEdit?: ((paneName: TabPanelName | undefined, action: "remove" | "add") => any) | undefined;
86
91
  "onTab-remove"?: ((name: TabPanelName) => any) | undefined;
87
92
  "onTab-add"?: (() => any) | undefined;
@@ -1,5 +1,5 @@
1
- import { Fragment, defineComponent, getCurrentInstance, ref, onUpdated, onMounted, watch, nextTick, provide, createVNode, renderSlot } from 'vue';
2
- import { isString, isPromise, NOOP } from '@vue/shared';
1
+ import { Fragment, defineComponent, getCurrentInstance, computed, ref, onUpdated, onMounted, watch, nextTick, provide, createVNode, renderSlot } from 'vue';
2
+ import { isString, isFunction, isPromise, NOOP } from '@vue/shared';
3
3
  import '../../../utils/index.mjs';
4
4
  import '../../../constants/index.mjs';
5
5
  import { ElIcon } from '../../icon/index.mjs';
@@ -10,6 +10,7 @@ import TabNav from './tab-nav.mjs';
10
10
  import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
11
11
  import { isNumber } from '@vueuse/core';
12
12
  import { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../constants/event.mjs';
13
+ import { useDeprecated } from '../../../hooks/use-deprecated/index.mjs';
13
14
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
14
15
  import { tabsRootContextKey } from '../../../tokens/tabs.mjs';
15
16
  import { EVENT_CODE } from '../../../constants/aria.mjs';
@@ -47,6 +48,7 @@ const tabsEmits = {
47
48
  [UPDATE_MODEL_EVENT]: (name) => isPanelName(name),
48
49
  [INPUT_EVENT]: (name) => isPanelName(name),
49
50
  "tab-click": (pane, ev) => ev instanceof Event,
51
+ "tab-change": (name) => isPanelName(name),
50
52
  edit: (paneName, action) => ["remove", "add"].includes(action),
51
53
  "tab-remove": (name) => isPanelName(name),
52
54
  "tab-add": () => true
@@ -74,6 +76,17 @@ var Tabs = defineComponent({
74
76
  expose
75
77
  }) {
76
78
  const instance = getCurrentInstance();
79
+ useDeprecated({
80
+ scope: "el-tabs",
81
+ type: "Event",
82
+ from: "input",
83
+ replacement: "tab-change",
84
+ version: "2.5.0",
85
+ ref: "https://element-plus.org/en-US/component/tabs.html#tabs-events"
86
+ }, computed(() => {
87
+ var _a;
88
+ return isFunction((_a = instance.vnode.props) == null ? void 0 : _a.onInput);
89
+ }));
77
90
  const ns = useNamespace("tabs");
78
91
  const nav$ = ref();
79
92
  const panes = ref([]);
@@ -100,6 +113,7 @@ var Tabs = defineComponent({
100
113
  currentName.value = value;
101
114
  emit(INPUT_EVENT, value);
102
115
  emit(UPDATE_MODEL_EVENT, value);
116
+ emit("tab-change", value);
103
117
  };
104
118
  const setCurrentName = (value) => {
105
119
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","name","isPanelName","pane","ev","Event","edit","paneName","action","getPaneInstanceFromSlot","children","vnode","Array","from","forEach","node","paneInstanceList","props","emits","setup","emit","slots","expose","instance","getCurrentInstance","ns","useNamespace","nav$","currentName","paneStatesMap","updatePaneInstances","content","isForceUpdate","panesChanged","panes","length","changeCurrentName","value","setCurrentName","canLeave","NOOP","handleTabClick","tab","tabName","handleTabRemove","disabled","stopPropagation","handleTabAdd","onUpdated","onMounted","watch","nextTick","_createVNode","provide","updatePaneState","newButton","code"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.mjs","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n computed,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isFunction,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n /** @deprecated use `tab-change` instead */\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n 'tab-change': (name: TabPanelName) => isPanelName(name),\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n\n useDeprecated(\n {\n scope: 'el-tabs',\n type: 'Event',\n from: 'input',\n replacement: 'tab-change',\n version: '2.5.0',\n ref: 'https://element-plus.org/en-US/component/tabs.html#tabs-events',\n },\n computed(() => isFunction(instance.vnode.props?.onInput))\n )\n\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n /** @deprecated use `tab-change` instead */\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n emit('tab-change', value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","name","edit","isPanelName","getPaneInstanceFromSlot","vnode","children","Array","forEach","node","paneInstanceList","props","emits","setup","emit","slots","expose","instance","getCurrentInstance","useDeprecated","scope","from","replacement","version","ref","computed","ns","nav$","paneStatesMap","content","class","panesChanged","isForceUpdate","panes","length","changeCurrentName","currentName","setCurrentName","value","canLeave","isPromise","NOOP","handleTabClick","tabName","tab","disabled","handleTabRemove","ev","pane","handleTabAdd","onUpdated","onMounted","watch","updatePaneInstances","_createVNode","provide","tabsRootContextKey","updatePaneState","newButton","e"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { SFCWithInstall } from 'element-plus/es/utils';
2
+ declare const _TreeSelect: SFCWithInstall<import("vue").DefineComponent<any, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
3
+ [key: string]: any;
4
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<any>, {} | {
5
+ [x: string]: any;
6
+ }>>;
7
+ export default _TreeSelect;
8
+ export declare const ElTreeSelect: SFCWithInstall<import("vue").DefineComponent<any, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
9
+ [key: string]: any;
10
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<any>, {} | {
11
+ [x: string]: any;
12
+ }>>;
@@ -0,0 +1,10 @@
1
+ import TreeSelect from './src/tree-select.mjs';
2
+
3
+ TreeSelect.install = (app) => {
4
+ app.component(TreeSelect.name, TreeSelect);
5
+ };
6
+ const _TreeSelect = TreeSelect;
7
+ const ElTreeSelect = _TreeSelect;
8
+
9
+ export { ElTreeSelect, _TreeSelect as default };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/tree-select/index.ts"],"sourcesContent":["import TreeSelect from './src/tree-select.vue'\n\nimport type { App } from 'vue'\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nTreeSelect.install = (app: App): void => {\n app.component(TreeSelect.name, TreeSelect)\n}\n\nconst _TreeSelect = TreeSelect as SFCWithInstall<typeof TreeSelect>\n\nexport default _TreeSelect\nexport const ElTreeSelect = _TreeSelect\n"],"names":[],"mappings":";;AACA,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK;AAC9B,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC,CAAC;AACG,MAAC,WAAW,GAAG,WAAW;AAEnB,MAAC,YAAY,GAAG;;;;"}
@@ -0,0 +1,10 @@
1
+ import ElSelect from 'element-plus/es/components/select';
2
+ import type { Ref } from 'vue';
3
+ import type ElTree from 'element-plus/es/components/tree';
4
+ export declare const useSelect: (props: any, { attrs }: {
5
+ attrs: any;
6
+ }, { tree, key, }: {
7
+ select: Ref<InstanceType<typeof ElSelect> | undefined>;
8
+ tree: Ref<InstanceType<typeof ElTree> | undefined>;
9
+ key: Ref<string>;
10
+ }) => any;
@@ -0,0 +1,42 @@
1
+ import { toRefs, computed, nextTick } from 'vue';
2
+ import { pick } from 'lodash-unified';
3
+ import { ElSelect } from '../../select/index.mjs';
4
+ import '../../../hooks/index.mjs';
5
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
6
+
7
+ const useSelect = (props, { attrs }, {
8
+ tree,
9
+ key
10
+ }) => {
11
+ const ns = useNamespace("tree-select");
12
+ const result = {
13
+ ...pick(toRefs(props), Object.keys(ElSelect.props)),
14
+ ...attrs,
15
+ valueKey: key,
16
+ popperClass: computed(() => {
17
+ const classes = [ns.e("popper")];
18
+ if (props.popperClass)
19
+ classes.push(props.popperClass);
20
+ return classes.join(" ");
21
+ }),
22
+ filterMethod: (keyword = "") => {
23
+ if (props.filterMethod)
24
+ props.filterMethod(keyword);
25
+ nextTick(() => {
26
+ var _a;
27
+ (_a = tree.value) == null ? void 0 : _a.filter(keyword);
28
+ });
29
+ },
30
+ onVisibleChange: (visible) => {
31
+ var _a;
32
+ (_a = attrs.onVisibleChange) == null ? void 0 : _a.call(attrs, visible);
33
+ if (props.filterable && visible) {
34
+ result.filterMethod();
35
+ }
36
+ }
37
+ };
38
+ return result;
39
+ };
40
+
41
+ export { useSelect };
42
+ //# sourceMappingURL=select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/tree-select/src/select.ts"],"sourcesContent":["import { computed, nextTick, toRefs } from 'vue'\nimport { pick } from 'lodash-unified'\nimport ElSelect from '@element-plus/components/select'\nimport { useNamespace } from '@element-plus/hooks'\nimport type { Ref } from 'vue'\nimport type ElTree from '@element-plus/components/tree'\n\nexport const useSelect = (\n props,\n { attrs },\n {\n tree,\n key,\n }: {\n select: Ref<InstanceType<typeof ElSelect> | undefined>\n tree: Ref<InstanceType<typeof ElTree> | undefined>\n key: Ref<string>\n }\n) => {\n const ns = useNamespace('tree-select')\n\n const result = {\n ...pick(toRefs(props), Object.keys(ElSelect.props)),\n ...attrs,\n valueKey: key,\n popperClass: computed(() => {\n const classes = [ns.e('popper')]\n if (props.popperClass) classes.push(props.popperClass)\n return classes.join(' ')\n }),\n filterMethod: (keyword = '') => {\n if (props.filterMethod) props.filterMethod(keyword)\n\n nextTick(() => {\n // let tree node expand only, same with tree filter\n tree.value?.filter(keyword)\n })\n },\n // clear filter text when visible change\n onVisibleChange: (visible: boolean) => {\n attrs.onVisibleChange?.(visible)\n\n if (props.filterable && visible) {\n result.filterMethod()\n }\n },\n }\n\n return result\n}\n"],"names":[],"mappings":";;;;;;AAIY,MAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;AAC5C,EAAE,IAAI;AACN,EAAE,GAAG;AACL,CAAC,KAAK;AACN,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AACzC,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,IAAI,GAAG,KAAK;AACZ,IAAI,QAAQ,EAAE,GAAG;AACjB,IAAI,WAAW,EAAE,QAAQ,CAAC,MAAM;AAChC,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,MAAM,IAAI,KAAK,CAAC,WAAW;AAC3B,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACxC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,KAAK,CAAC;AACN,IAAI,YAAY,EAAE,CAAC,OAAO,GAAG,EAAE,KAAK;AACpC,MAAM,IAAI,KAAK,CAAC,YAAY;AAC5B,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACpC,MAAM,QAAQ,CAAC,MAAM;AACrB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChE,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,eAAe,EAAE,CAAC,OAAO,KAAK;AAClC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9E,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE;AACvC,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}