@element-plus/nightly 0.0.20260116 → 0.0.20260117

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 (343) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +119 -75
  3. package/dist/index.full.min.js +17 -17
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +24 -24
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +120 -76
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/affix/src/affix.d.ts +33 -2
  277. package/es/components/affix/src/affix.mjs.map +1 -1
  278. package/es/components/affix/src/affix.vue.d.ts +36 -22
  279. package/es/components/affix/src/affix.vue2.mjs +10 -3
  280. package/es/components/affix/src/affix.vue2.mjs.map +1 -1
  281. package/es/components/anchor/src/anchor-link.d.ts +17 -2
  282. package/es/components/anchor/src/anchor-link.mjs.map +1 -1
  283. package/es/components/anchor/src/anchor-link.vue.d.ts +24 -7
  284. package/es/components/anchor/src/anchor-link.vue2.mjs +6 -4
  285. package/es/components/anchor/src/anchor-link.vue2.mjs.map +1 -1
  286. package/es/components/anchor/src/anchor.d.ts +41 -2
  287. package/es/components/anchor/src/anchor.mjs.map +1 -1
  288. package/es/components/anchor/src/anchor.vue.d.ts +36 -34
  289. package/es/components/anchor/src/anchor.vue2.mjs +12 -3
  290. package/es/components/anchor/src/anchor.vue2.mjs.map +1 -1
  291. package/es/components/autocomplete/src/autocomplete.vue.d.ts +1 -1
  292. package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs +1 -1
  293. package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs.map +1 -1
  294. package/es/components/icon/src/icon.d.ts +17 -2
  295. package/es/components/icon/src/icon.mjs.map +1 -1
  296. package/es/components/icon/src/icon.vue.d.ts +24 -27
  297. package/es/components/icon/src/icon.vue2.mjs +4 -2
  298. package/es/components/icon/src/icon.vue2.mjs.map +1 -1
  299. package/es/components/input/src/input.d.ts +145 -8
  300. package/es/components/input/src/input.mjs.map +1 -1
  301. package/es/components/input/src/input.vue.d.ts +55 -210
  302. package/es/components/input/src/input.vue2.mjs +74 -41
  303. package/es/components/input/src/input.vue2.mjs.map +1 -1
  304. package/es/components/input-number/src/input-number.vue.d.ts +1 -1
  305. package/es/components/mention/src/mention.vue.d.ts +1 -1
  306. package/es/version.d.ts +1 -1
  307. package/es/version.mjs +1 -1
  308. package/es/version.mjs.map +1 -1
  309. package/lib/components/affix/src/affix.d.ts +33 -2
  310. package/lib/components/affix/src/affix.js.map +1 -1
  311. package/lib/components/affix/src/affix.vue.d.ts +36 -22
  312. package/lib/components/affix/src/affix.vue2.js +9 -2
  313. package/lib/components/affix/src/affix.vue2.js.map +1 -1
  314. package/lib/components/anchor/src/anchor-link.d.ts +17 -2
  315. package/lib/components/anchor/src/anchor-link.js.map +1 -1
  316. package/lib/components/anchor/src/anchor-link.vue.d.ts +24 -7
  317. package/lib/components/anchor/src/anchor-link.vue2.js +6 -4
  318. package/lib/components/anchor/src/anchor-link.vue2.js.map +1 -1
  319. package/lib/components/anchor/src/anchor.d.ts +41 -2
  320. package/lib/components/anchor/src/anchor.js.map +1 -1
  321. package/lib/components/anchor/src/anchor.vue.d.ts +36 -34
  322. package/lib/components/anchor/src/anchor.vue2.js +11 -2
  323. package/lib/components/anchor/src/anchor.vue2.js.map +1 -1
  324. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +1 -1
  325. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js +1 -1
  326. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js.map +1 -1
  327. package/lib/components/icon/src/icon.d.ts +17 -2
  328. package/lib/components/icon/src/icon.js.map +1 -1
  329. package/lib/components/icon/src/icon.vue.d.ts +24 -27
  330. package/lib/components/icon/src/icon.vue2.js +4 -2
  331. package/lib/components/icon/src/icon.vue2.js.map +1 -1
  332. package/lib/components/input/src/input.d.ts +145 -8
  333. package/lib/components/input/src/input.js.map +1 -1
  334. package/lib/components/input/src/input.vue.d.ts +55 -210
  335. package/lib/components/input/src/input.vue2.js +71 -38
  336. package/lib/components/input/src/input.vue2.js.map +1 -1
  337. package/lib/components/input-number/src/input-number.vue.d.ts +1 -1
  338. package/lib/components/mention/src/mention.vue.d.ts +1 -1
  339. package/lib/version.d.ts +1 -1
  340. package/lib/version.js +1 -1
  341. package/lib/version.js.map +1 -1
  342. package/package.json +2 -2
  343. package/web-types.json +1 -1
@@ -18,7 +18,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
18
  name: COMPONENT_NAME
19
19
  },
20
20
  __name: "affix",
21
- props: affix.affixProps,
21
+ props: {
22
+ zIndex: { type: null, required: false, default: 100 },
23
+ target: { type: String, required: false, default: "" },
24
+ offset: { type: Number, required: false, default: 0 },
25
+ position: { type: String, required: false, default: "top" },
26
+ teleported: { type: Boolean, required: false },
27
+ appendTo: { type: null, required: false, default: "body" }
28
+ },
22
29
  emits: affix.affixEmits,
23
30
  setup(__props, { expose: __expose, emit: __emit }) {
24
31
  const props = __props;
@@ -134,7 +141,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
134
141
  [
135
142
  vue.createVNode(vue.unref(index$1.ElTeleport), {
136
143
  disabled: teleportDisabled.value,
137
- to: _ctx.appendTo
144
+ to: __props.appendTo
138
145
  }, {
139
146
  default: vue.withCtx(() => [
140
147
  vue.createElementVNode(
@@ -1 +1 @@
1
- {"version":3,"file":"affix.vue2.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" :class=\"ns.b()\" :style=\"rootStyle\">\n <el-teleport :disabled=\"teleportDisabled\" :to=\"appendTo\">\n <div :class=\"{ [ns.m('fixed')]: fixed }\" :style=\"affixStyle\">\n <slot />\n </div>\n </el-teleport>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n useElementBounding,\n useEventListener,\n useWindowSize,\n} from '@vueuse/core'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { addUnit, getScrollContainer, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\nconst COMPONENT_NAME = 'ElAffix'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = defineProps(affixProps)\nconst emit = defineEmits(affixEmits)\n\nconst ns = useNamespace('affix')\n\nconst target = shallowRef<HTMLElement>()\nconst root = shallowRef<HTMLDivElement>()\nconst scrollContainer = shallowRef<HTMLElement | Window>()\nconst { height: windowHeight } = useWindowSize()\nconst {\n height: rootHeight,\n width: rootWidth,\n top: rootTop,\n bottom: rootBottom,\n left: rootLeft,\n update: updateRoot,\n} = useElementBounding(root, { windowScroll: false })\nconst targetRect = useElementBounding(target)\n\nconst fixed = ref(false)\nconst scrollTop = ref(0)\nconst transform = ref(0)\n\nconst teleportDisabled = computed(() => {\n return !props.teleported || !fixed.value\n})\n\nconst rootStyle = computed<CSSProperties>(() => {\n return {\n height: fixed.value ? `${rootHeight.value}px` : '',\n width: fixed.value ? `${rootWidth.value}px` : '',\n }\n})\n\nconst affixStyle = computed<CSSProperties>(() => {\n if (!fixed.value) return {}\n\n const offset = addUnit(props.offset)\n return {\n height: `${rootHeight.value}px`,\n width: `${rootWidth.value}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n left: props.teleported ? `${rootLeft.value}px` : '',\n transform: transform.value ? `translateY(${transform.value}px)` : '',\n zIndex: props.zIndex,\n }\n})\n\nconst update = () => {\n if (!scrollContainer.value) return\n\n scrollTop.value =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop || 0\n\n const { position, target, offset } = props\n const rootHeightOffset = offset + rootHeight.value\n\n if (position === 'top') {\n if (target) {\n const difference = targetRect.bottom.value - rootHeightOffset\n fixed.value = offset > rootTop.value && targetRect.bottom.value > 0\n transform.value = difference < 0 ? difference : 0\n } else {\n fixed.value = offset > rootTop.value\n }\n } else if (target) {\n const difference =\n windowHeight.value - targetRect.top.value - rootHeightOffset\n fixed.value =\n windowHeight.value - offset < rootBottom.value &&\n windowHeight.value > targetRect.top.value\n transform.value = difference < 0 ? -difference : 0\n } else {\n fixed.value = windowHeight.value - offset < rootBottom.value\n }\n}\n\nconst updateRootRect = async () => {\n if (!fixed.value) {\n updateRoot()\n return\n }\n\n fixed.value = false\n await nextTick()\n updateRoot()\n fixed.value = true\n}\n\nconst handleScroll = async () => {\n updateRoot()\n await nextTick()\n emit('scroll', {\n scrollTop: scrollTop.value,\n fixed: fixed.value,\n })\n}\n\nwatch(fixed, (val) => emit(CHANGE_EVENT, val))\n\nonMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value)\n throwError(COMPONENT_NAME, `Target does not exist: ${props.target}`)\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n updateRoot()\n})\n\nuseEventListener(scrollContainer, 'scroll', handleScroll)\nwatchEffect(update)\n\ndefineExpose({\n /** @description update affix status */\n update,\n /** @description update rootRect info */\n updateRoot: updateRootRect,\n})\n</script>\n"],"names":["useNamespace","shallowRef","useWindowSize","useElementBounding","ref","computed","addUnit","target","nextTick","watch","CHANGE_EVENT","onMounted","throwError","getScrollContainer","useEventListener","watchEffect","_createElementBlock","_normalizeClass","_unref","_createVNode","ElTeleport","appendTo","_createElementVNode","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"affix.vue2.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" :class=\"ns.b()\" :style=\"rootStyle\">\n <el-teleport :disabled=\"teleportDisabled\" :to=\"appendTo\">\n <div :class=\"{ [ns.m('fixed')]: fixed }\" :style=\"affixStyle\">\n <slot />\n </div>\n </el-teleport>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n useElementBounding,\n useEventListener,\n useWindowSize,\n} from '@vueuse/core'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { addUnit, getScrollContainer, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { affixEmits } from './affix'\n\nimport type { CSSProperties } from 'vue'\nimport type { AffixProps } from './affix'\n\nconst COMPONENT_NAME = 'ElAffix'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<AffixProps>(), {\n zIndex: 100,\n target: '',\n offset: 0,\n position: 'top',\n appendTo: 'body',\n})\nconst emit = defineEmits(affixEmits)\n\nconst ns = useNamespace('affix')\n\nconst target = shallowRef<HTMLElement>()\nconst root = shallowRef<HTMLDivElement>()\nconst scrollContainer = shallowRef<HTMLElement | Window>()\nconst { height: windowHeight } = useWindowSize()\nconst {\n height: rootHeight,\n width: rootWidth,\n top: rootTop,\n bottom: rootBottom,\n left: rootLeft,\n update: updateRoot,\n} = useElementBounding(root, { windowScroll: false })\nconst targetRect = useElementBounding(target)\n\nconst fixed = ref(false)\nconst scrollTop = ref(0)\nconst transform = ref(0)\n\nconst teleportDisabled = computed(() => {\n return !props.teleported || !fixed.value\n})\n\nconst rootStyle = computed<CSSProperties>(() => {\n return {\n height: fixed.value ? `${rootHeight.value}px` : '',\n width: fixed.value ? `${rootWidth.value}px` : '',\n }\n})\n\nconst affixStyle = computed<CSSProperties>(() => {\n if (!fixed.value) return {}\n\n const offset = addUnit(props.offset)\n return {\n height: `${rootHeight.value}px`,\n width: `${rootWidth.value}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n left: props.teleported ? `${rootLeft.value}px` : '',\n transform: transform.value ? `translateY(${transform.value}px)` : '',\n zIndex: props.zIndex,\n }\n})\n\nconst update = () => {\n if (!scrollContainer.value) return\n\n scrollTop.value =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop || 0\n\n const { position, target, offset } = props\n const rootHeightOffset = offset + rootHeight.value\n\n if (position === 'top') {\n if (target) {\n const difference = targetRect.bottom.value - rootHeightOffset\n fixed.value = offset > rootTop.value && targetRect.bottom.value > 0\n transform.value = difference < 0 ? difference : 0\n } else {\n fixed.value = offset > rootTop.value\n }\n } else if (target) {\n const difference =\n windowHeight.value - targetRect.top.value - rootHeightOffset\n fixed.value =\n windowHeight.value - offset < rootBottom.value &&\n windowHeight.value > targetRect.top.value\n transform.value = difference < 0 ? -difference : 0\n } else {\n fixed.value = windowHeight.value - offset < rootBottom.value\n }\n}\n\nconst updateRootRect = async () => {\n if (!fixed.value) {\n updateRoot()\n return\n }\n\n fixed.value = false\n await nextTick()\n updateRoot()\n fixed.value = true\n}\n\nconst handleScroll = async () => {\n updateRoot()\n await nextTick()\n emit('scroll', {\n scrollTop: scrollTop.value,\n fixed: fixed.value,\n })\n}\n\nwatch(fixed, (val) => emit(CHANGE_EVENT, val))\n\nonMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value)\n throwError(COMPONENT_NAME, `Target does not exist: ${props.target}`)\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n updateRoot()\n})\n\nuseEventListener(scrollContainer, 'scroll', handleScroll)\nwatchEffect(update)\n\ndefineExpose({\n /** @description update affix status */\n update,\n /** @description update rootRect info */\n updateRoot: updateRootRect,\n})\n</script>\n"],"names":["useNamespace","shallowRef","useWindowSize","useElementBounding","ref","computed","addUnit","target","nextTick","watch","CHANGE_EVENT","onMounted","throwError","getScrollContainer","useEventListener","watchEffect","_createElementBlock","_normalizeClass","_unref","_createVNode","ElTeleport","_createElementVNode","_renderSlot"],"mappings":"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"}
@@ -1,7 +1,22 @@
1
- import type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue';
1
+ import type { ExtractPublicPropTypes } from 'vue';
2
+ export interface AnchorLinkProps {
3
+ /**
4
+ * @description the text content of the anchor link
5
+ */
6
+ title?: string;
7
+ /**
8
+ * @description The address of the anchor link
9
+ */
10
+ href?: string;
11
+ }
12
+ /**
13
+ * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.
14
+ */
2
15
  export declare const anchorLinkProps: {
3
16
  title: StringConstructor;
4
17
  href: StringConstructor;
5
18
  };
6
- export type AnchorLinkProps = ExtractPropTypes<typeof anchorLinkProps>;
19
+ /**
20
+ * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.
21
+ */
7
22
  export type AnchorLinkPropsPublic = ExtractPublicPropTypes<typeof anchorLinkProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-link.js","sources":["../../../../../../packages/components/anchor/src/anchor-link.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\n\nexport const anchorLinkProps = buildProps({\n /**\n * @description the text content of the anchor link\n */\n title: String,\n /**\n * @description The address of the anchor link\n */\n href: String,\n})\n\nexport type AnchorLinkProps = ExtractPropTypes<typeof anchorLinkProps>\nexport type AnchorLinkPropsPublic = ExtractPublicPropTypes<\n typeof anchorLinkProps\n>\n"],"names":["buildProps"],"mappings":";;;;AAIO,MAAM,kBAAkBA,kBAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIxC,KAAA,EAAO,MAAA;AAAA;AAAA;AAAA;AAAA,EAIP,IAAA,EAAM;AACR,CAAC;;;;"}
1
+ {"version":3,"file":"anchor-link.js","sources":["../../../../../../packages/components/anchor/src/anchor-link.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\n\nexport interface AnchorLinkProps {\n /**\n * @description the text content of the anchor link\n */\n title?: string\n /**\n * @description The address of the anchor link\n */\n href?: string\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.\n */\nexport const anchorLinkProps = buildProps({\n /**\n * @description the text content of the anchor link\n */\n title: String,\n /**\n * @description The address of the anchor link\n */\n href: String,\n})\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead.\n */\nexport type AnchorLinkPropsPublic = ExtractPublicPropTypes<\n typeof anchorLinkProps\n>\n"],"names":["buildProps"],"mappings":";;;;AAkBO,MAAM,kBAAkBA,kBAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIxC,KAAA,EAAO,MAAA;AAAA;AAAA;AAAA;AAAA,EAIP,IAAA,EAAM;AACR,CAAC;;;;"}
@@ -1,21 +1,38 @@
1
+ import type { AnchorLinkProps } from './anchor-link';
1
2
  declare var __VLS_1: {}, __VLS_3: {};
2
3
  type __VLS_Slots = {} & {
3
4
  default?: (props: typeof __VLS_1) => any;
4
5
  } & {
5
6
  'sub-link'?: (props: typeof __VLS_3) => any;
6
7
  };
7
- declare const __VLS_base: import("vue").DefineComponent<{
8
- title: StringConstructor;
9
- href: StringConstructor;
10
- }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
11
- title: StringConstructor;
12
- href: StringConstructor;
13
- }>>, {}, {}>;
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<AnchorLinkProps>, {
9
+ href: undefined;
10
+ }>, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<AnchorLinkProps>, {
11
+ href: undefined;
12
+ }>>>, {
13
+ href: string;
14
+ }, {}>;
14
15
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
16
  declare const _default: typeof __VLS_export;
16
17
  export default _default;
18
+ type __VLS_TypePropsToOption<T> = {
19
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
20
+ type: import('vue').PropType<Required<T>[K]>;
21
+ } : {
22
+ type: import('vue').PropType<T[K]>;
23
+ required: true;
24
+ };
25
+ };
26
+ type __VLS_WithDefaultsLocal<P, D> = {
27
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
28
+ default: D[K];
29
+ }> : P[K];
30
+ };
17
31
  type __VLS_WithSlots<T, S> = T & {
18
32
  new (): {
19
33
  $slots: S;
20
34
  };
21
35
  };
36
+ type __VLS_PrettifyLocal<T> = {
37
+ [K in keyof T as K]: T[K];
38
+ } & {};
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
- var anchorLink = require('./anchor-link.js');
7
6
  var constants = require('./constants.js');
8
7
 
9
8
  const _hoisted_1 = ["href"];
@@ -12,7 +11,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
12
11
  name: "ElAnchorLink"
13
12
  },
14
13
  __name: "anchor-link",
15
- props: anchorLink.anchorLinkProps,
14
+ props: {
15
+ title: { type: String, required: false },
16
+ href: { type: String, required: false, default: void 0 }
17
+ },
16
18
  setup(__props) {
17
19
  const props = __props;
18
20
  const linkRef = vue.ref(null);
@@ -71,12 +73,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
71
73
  ref_key: "linkRef",
72
74
  ref: linkRef,
73
75
  class: vue.normalizeClass(cls.value),
74
- href: _ctx.href,
76
+ href: __props.href,
75
77
  onClick: handleClick
76
78
  }, [
77
79
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
78
80
  vue.createTextVNode(
79
- vue.toDisplayString(_ctx.title),
81
+ vue.toDisplayString(__props.title),
80
82
  1
81
83
  /* TEXT */
82
84
  )
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-link.vue2.js","sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('item')\">\n <a ref=\"linkRef\" :class=\"cls\" :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div\n v-if=\"$slots['sub-link'] && direction === 'vertical'\"\n :class=\"ns.e('list')\"\n >\n <slot name=\"sub-link\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { anchorLinkProps } from './anchor-link'\nimport { anchorKey } from './constants'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = defineProps(anchorLinkProps)\n\nconst linkRef = ref<HTMLElement | null>(null)\n\nconst {\n ns,\n direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick: contextHandleClick,\n} = inject(anchorKey)!\n\nconst cls = computed(() => [\n ns.e('link'),\n ns.is('active', currentAnchor.value === props.href),\n])\n\nconst handleClick = (e: MouseEvent) => {\n contextHandleClick(e, props.href)\n}\n\nwatch(\n () => props.href,\n (val, oldVal) => {\n nextTick(() => {\n if (oldVal) removeLink(oldVal)\n if (val) {\n addLink({\n href: val,\n el: linkRef.value!,\n })\n }\n })\n }\n)\n\nonMounted(() => {\n const { href } = props\n if (href) {\n addLink({\n href,\n el: linkRef.value!,\n })\n }\n})\n\nonBeforeUnmount(() => {\n const { href } = props\n if (href) {\n removeLink(href)\n }\n})\n</script>\n"],"names":["ref","inject","anchorKey","computed","watch","nextTick","onMounted","onBeforeUnmount","_createElementBlock","_normalizeClass","_unref","_createElementVNode","href","_renderSlot","title","$slots"],"mappings":";;;;;;;;;;;;;;;;AA+BA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,OAAA,GAAUA,QAAwB,IAAI,CAAA;AAE5C,IAAA,MAAM;AAAA,MACJ,EAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf,GAAIC,WAAOC,mBAAS,CAAA;AAEpB,IAAA,MAAM,GAAA,GAAMC,aAAS,MAAM;AAAA,MACzB,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,MACX,GAAG,EAAA,CAAG,QAAA,EAAU,aAAA,CAAc,KAAA,KAAU,MAAM,IAAI;AAAA,KACnD,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAkB;AACrC,MAAA,kBAAA,CAAmB,CAAA,EAAG,MAAM,IAAI,CAAA;AAAA,IAClC,CAAA;AAEA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,CAAC,KAAK,MAAA,KAAW;AACf,QAAAC,YAAA,CAAS,MAAM;AACb,UAAA,IAAI,MAAA,aAAmB,MAAM,CAAA;AAC7B,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAA,CAAQ;AAAA,cACN,IAAA,EAAM,GAAA;AAAA,cACN,IAAI,OAAA,CAAQ;AAAA,aACb,CAAA;AAAA,UACH;AAAA,QACF,CAAC,CAAA;AAAA,MACH;AAAA,KACF;AAEA,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAA,CAAQ;AAAA,UACN,IAAA;AAAA,UACA,IAAI,OAAA,CAAQ;AAAA,SACb,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAAC,mBAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,UAAA,CAAW,IAAI,CAAA;AAAA,MACjB;AAAA,IACF,CAAC,CAAA;;8BAlFCC,sBAAA;AAAA,QAUM,KAAA;AAAA,QAAA;AAAA,UAVA,OAAKC,kBAAA,CAAEC,SAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;UACfC,uBAEI,GAAA,EAAA;AAAA,qBAFG,SAAA;AAAA,YAAJ,GAAA,EAAI,OAAA;AAAA,YAAW,KAAA,qBAAO,GAAA,CAAA,KAAG,CAAA;AAAA,YAAG,MAAMC,IAAAA,CAAAA,IAAAA;AAAAA,YAAO,OAAA,EAAO;AAAA;YACjDC,eAAwB,IAAA,wBAAxB,MAAwB;AAAA;oCAAfC,KAAAA,KAAK,CAAA;AAAA,gBAAA;AAAA;AAAA;AAAA;;UAGRC,IAAAA,CAAAA,sBAAsBL,UAAA,SAAA,CAAA,KAAS,UAAA,qBADvCF,sBAAA;AAAA,YAKM,KAAA;AAAA,YAAA;AAAA;cAHH,OAAKC,kBAAA,CAAEC,SAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;cAEZG,cAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA;AAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"anchor-link.vue2.js","sources":["../../../../../../packages/components/anchor/src/anchor-link.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('item')\">\n <a ref=\"linkRef\" :class=\"cls\" :href=\"href\" @click=\"handleClick\">\n <slot>{{ title }}</slot>\n </a>\n <div\n v-if=\"$slots['sub-link'] && direction === 'vertical'\"\n :class=\"ns.e('list')\"\n >\n <slot name=\"sub-link\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { anchorKey } from './constants'\n\nimport type { AnchorLinkProps } from './anchor-link'\n\ndefineOptions({\n name: 'ElAnchorLink',\n})\n\nconst props = withDefaults(defineProps<AnchorLinkProps>(), {\n href: undefined,\n})\n\nconst linkRef = ref<HTMLElement | null>(null)\n\nconst {\n ns,\n direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick: contextHandleClick,\n} = inject(anchorKey)!\n\nconst cls = computed(() => [\n ns.e('link'),\n ns.is('active', currentAnchor.value === props.href),\n])\n\nconst handleClick = (e: MouseEvent) => {\n contextHandleClick(e, props.href)\n}\n\nwatch(\n () => props.href,\n (val, oldVal) => {\n nextTick(() => {\n if (oldVal) removeLink(oldVal)\n if (val) {\n addLink({\n href: val,\n el: linkRef.value!,\n })\n }\n })\n }\n)\n\nonMounted(() => {\n const { href } = props\n if (href) {\n addLink({\n href,\n el: linkRef.value!,\n })\n }\n})\n\nonBeforeUnmount(() => {\n const { href } = props\n if (href) {\n removeLink(href)\n }\n})\n</script>\n"],"names":["ref","inject","anchorKey","computed","watch","nextTick","onMounted","onBeforeUnmount","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_renderSlot","$slots"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,OAAA,GAAUA,QAAwB,IAAI,CAAA;AAE5C,IAAA,MAAM;AAAA,MACJ,EAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf,GAAIC,WAAOC,mBAAS,CAAA;AAEpB,IAAA,MAAM,GAAA,GAAMC,aAAS,MAAM;AAAA,MACzB,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,MACX,GAAG,EAAA,CAAG,QAAA,EAAU,aAAA,CAAc,KAAA,KAAU,MAAM,IAAI;AAAA,KACnD,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAkB;AACrC,MAAA,kBAAA,CAAmB,CAAA,EAAG,MAAM,IAAI,CAAA;AAAA,IAClC,CAAA;AAEA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,CAAC,KAAK,MAAA,KAAW;AACf,QAAAC,YAAA,CAAS,MAAM;AACb,UAAA,IAAI,MAAA,aAAmB,MAAM,CAAA;AAC7B,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAA,CAAQ;AAAA,cACN,IAAA,EAAM,GAAA;AAAA,cACN,IAAI,OAAA,CAAQ;AAAA,aACb,CAAA;AAAA,UACH;AAAA,QACF,CAAC,CAAA;AAAA,MACH;AAAA,KACF;AAEA,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAA,CAAQ;AAAA,UACN,IAAA;AAAA,UACA,IAAI,OAAA,CAAQ;AAAA,SACb,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAAC,mBAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,UAAA,CAAW,IAAI,CAAA;AAAA,MACjB;AAAA,IACF,CAAC,CAAA;;8BArFCC,sBAAA;AAAA,QAUM,KAAA;AAAA,QAAA;AAAA,UAVA,OAAKC,kBAAA,CAAEC,SAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;UACfC,uBAEI,GAAA,EAAA;AAAA,qBAFG,SAAA;AAAA,YAAJ,GAAA,EAAI,OAAA;AAAA,YAAW,KAAA,qBAAO,GAAA,CAAA,KAAG,CAAA;AAAA,YAAG,MAAM,OAAA,CAAA,IAAA;AAAA,YAAO,OAAA,EAAO;AAAA;YACjDC,eAAwB,IAAA,wBAAxB,MAAwB;AAAA;oCAAf,QAAA,KAAK,CAAA;AAAA,gBAAA;AAAA;AAAA;AAAA;;UAGRC,IAAAA,CAAAA,sBAAsBH,UAAA,SAAA,CAAA,KAAS,UAAA,qBADvCF,sBAAA;AAAA,YAKM,KAAA;AAAA,YAAA;AAAA;cAHH,OAAKC,kBAAA,CAAEC,SAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;cAEZE,cAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA;AAAA;;;;;;;;;;;;;;"}
@@ -1,5 +1,42 @@
1
- import type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue';
1
+ import type { ExtractPublicPropTypes } from 'vue';
2
2
  import type Anchor from './anchor.vue';
3
+ export interface AnchorProps {
4
+ /**
5
+ * @description scroll container
6
+ */
7
+ container?: string | HTMLElement | Window | null;
8
+ /**
9
+ * @description Set the offset of the anchor scroll
10
+ */
11
+ offset?: number;
12
+ /**
13
+ * @description The offset of the element starting to trigger the anchor
14
+ */
15
+ bound?: number;
16
+ /**
17
+ * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds
18
+ */
19
+ duration?: number;
20
+ /**
21
+ * @description Whether to show the marker
22
+ */
23
+ marker?: boolean;
24
+ /**
25
+ * @description Set Anchor type
26
+ */
27
+ type?: 'default' | 'underline';
28
+ /**
29
+ * @description Set Anchor direction
30
+ */
31
+ direction?: 'vertical' | 'horizontal';
32
+ /**
33
+ * @description Scroll whether link is selected at the top
34
+ */
35
+ selectScrollTop?: boolean;
36
+ }
37
+ /**
38
+ * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.
39
+ */
3
40
  export declare const anchorProps: {
4
41
  container: {
5
42
  readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null) | ((new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null))[], unknown, unknown>>;
@@ -15,7 +52,9 @@ export declare const anchorProps: {
15
52
  direction: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical") | ((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical"))[], unknown, unknown, string, boolean>;
16
53
  selectScrollTop: BooleanConstructor;
17
54
  };
18
- export type AnchorProps = ExtractPropTypes<typeof anchorProps>;
55
+ /**
56
+ * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.
57
+ */
19
58
  export type AnchorPropsPublic = ExtractPublicPropTypes<typeof anchorProps>;
20
59
  export type AnchorInstance = InstanceType<typeof Anchor> & unknown;
21
60
  export declare const anchorEmits: {
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.js","sources":["../../../../../../packages/components/anchor/src/anchor.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isString,\n isUndefined,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type Anchor from './anchor.vue'\n\nexport const anchorProps = buildProps({\n /**\n * @description scroll container\n */\n container: {\n type: definePropType<string | HTMLElement | Window | null>([\n String,\n Object,\n ]),\n },\n /**\n * @description Set the offset of the anchor scroll\n */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description The offset of the element starting to trigger the anchor\n */\n bound: {\n type: Number,\n default: 15,\n },\n /**\n * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds\n */\n duration: {\n type: Number,\n default: 300,\n },\n /**\n * @description Whether to show the marker\n */\n marker: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Set Anchor type\n */\n type: {\n type: definePropType<'default' | 'underline'>(String),\n default: 'default',\n },\n /**\n * @description Set Anchor direction\n */\n direction: {\n type: definePropType<'vertical' | 'horizontal'>(String),\n default: 'vertical',\n },\n /**\n * @description Scroll whether link is selected at the top\n */\n selectScrollTop: Boolean,\n})\n\nexport type AnchorProps = ExtractPropTypes<typeof anchorProps>\nexport type AnchorPropsPublic = ExtractPublicPropTypes<typeof anchorProps>\nexport type AnchorInstance = InstanceType<typeof Anchor> & unknown\n\nexport const anchorEmits = {\n change: (href: string) => isString(href),\n click: (e: MouseEvent, href?: string) =>\n e instanceof MouseEvent && (isString(href) || isUndefined(href)),\n}\nexport type AnchorEmits = typeof anchorEmits\n"],"names":["buildProps","definePropType","isString","isUndefined"],"mappings":";;;;;;AAUO,MAAM,cAAcA,kBAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIpC,SAAA,EAAW;AAAA,IACT,MAAMC,sBAAA,CAAqD;AAAA,MACzD,MAAA;AAAA,MACA;AAAA,KACD;AAAA,GACH;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAMA,uBAAwC,MAAM,CAAA;AAAA,IACpD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAMA,uBAA0C,MAAM,CAAA;AAAA,IACtD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,eAAA,EAAiB;AACnB,CAAC;AAMM,MAAM,WAAA,GAAc;AAAA,EACzB,MAAA,EAAQ,CAAC,IAAA,KAAiBC,eAAA,CAAS,IAAI,CAAA;AAAA,EACvC,KAAA,EAAO,CAAC,CAAA,EAAe,IAAA,KACrB,CAAA,YAAa,eAAeA,eAAA,CAAS,IAAI,CAAA,IAAKC,iBAAA,CAAY,IAAI,CAAA;AAClE;;;;;"}
1
+ {"version":3,"file":"anchor.js","sources":["../../../../../../packages/components/anchor/src/anchor.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isString,\n isUndefined,\n} from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Anchor from './anchor.vue'\n\nexport interface AnchorProps {\n /**\n * @description scroll container\n */\n container?: string | HTMLElement | Window | null\n /**\n * @description Set the offset of the anchor scroll\n */\n offset?: number\n /**\n * @description The offset of the element starting to trigger the anchor\n */\n bound?: number\n /**\n * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds\n */\n duration?: number\n /**\n * @description Whether to show the marker\n */\n marker?: boolean\n /**\n * @description Set Anchor type\n */\n type?: 'default' | 'underline'\n /**\n * @description Set Anchor direction\n */\n direction?: 'vertical' | 'horizontal'\n /**\n * @description Scroll whether link is selected at the top\n */\n selectScrollTop?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.\n */\nexport const anchorProps = buildProps({\n /**\n * @description scroll container\n */\n container: {\n type: definePropType<string | HTMLElement | Window | null>([\n String,\n Object,\n ]),\n },\n /**\n * @description Set the offset of the anchor scroll\n */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description The offset of the element starting to trigger the anchor\n */\n bound: {\n type: Number,\n default: 15,\n },\n /**\n * @description Set the scroll duration of the container when the anchor is clicked, in milliseconds\n */\n duration: {\n type: Number,\n default: 300,\n },\n /**\n * @description Whether to show the marker\n */\n marker: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Set Anchor type\n */\n type: {\n type: definePropType<'default' | 'underline'>(String),\n default: 'default',\n },\n /**\n * @description Set Anchor direction\n */\n direction: {\n type: definePropType<'vertical' | 'horizontal'>(String),\n default: 'vertical',\n },\n /**\n * @description Scroll whether link is selected at the top\n */\n selectScrollTop: Boolean,\n})\n\n/**\n * @deprecated Removed after 3.0.0, Use `AnchorProps` instead.\n */\nexport type AnchorPropsPublic = ExtractPublicPropTypes<typeof anchorProps>\nexport type AnchorInstance = InstanceType<typeof Anchor> & unknown\n\nexport const anchorEmits = {\n change: (href: string) => isString(href),\n click: (e: MouseEvent, href?: string) =>\n e instanceof MouseEvent && (isString(href) || isUndefined(href)),\n}\nexport type AnchorEmits = typeof anchorEmits\n"],"names":["buildProps","definePropType","isString","isUndefined"],"mappings":";;;;;;AAgDO,MAAM,cAAcA,kBAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIpC,SAAA,EAAW;AAAA,IACT,MAAMC,sBAAA,CAAqD;AAAA,MACzD,MAAA;AAAA,MACA;AAAA,KACD;AAAA,GACH;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAMA,uBAAwC,MAAM,CAAA;AAAA,IACpD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAMA,uBAA0C,MAAM,CAAA;AAAA,IACtD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,eAAA,EAAiB;AACnB,CAAC;AAQM,MAAM,WAAA,GAAc;AAAA,EACzB,MAAA,EAAQ,CAAC,IAAA,KAAiBC,eAAA,CAAS,IAAI,CAAA;AAAA,EACvC,KAAA,EAAO,CAAC,CAAA,EAAe,IAAA,KACrB,CAAA,YAAa,eAAeA,eAAA,CAAS,IAAI,CAAA,IAAKC,iBAAA,CAAY,IAAI,CAAA;AAClE;;;;;"}
@@ -1,57 +1,59 @@
1
+ import type { AnchorProps } from './anchor';
1
2
  declare var __VLS_1: {};
2
3
  type __VLS_Slots = {} & {
3
4
  default?: (props: typeof __VLS_1) => any;
4
5
  };
5
- declare const __VLS_base: import("vue").DefineComponent<{
6
- container: {
7
- readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null) | ((new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null))[], unknown, unknown>>;
8
- readonly required: false;
9
- readonly validator: ((val: unknown) => boolean) | undefined;
10
- __epPropKey: true;
11
- };
12
- offset: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
13
- bound: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
14
- duration: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
15
- marker: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
16
- type: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "default" | "underline") | (() => "default" | "underline") | ((new (...args: any[]) => "default" | "underline") | (() => "default" | "underline"))[], unknown, unknown, string, boolean>;
17
- direction: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical") | ((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical"))[], unknown, unknown, string, boolean>;
18
- selectScrollTop: BooleanConstructor;
19
- }, {
6
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<AnchorProps>, {
7
+ offset: number;
8
+ bound: number;
9
+ duration: number;
10
+ marker: boolean;
11
+ type: string;
12
+ direction: string;
13
+ }>, {
20
14
  scrollTo: (href?: string) => void;
21
15
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
16
  click: (e: MouseEvent, href?: string | undefined) => void;
23
17
  change: (href: string) => void;
24
- }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
25
- container: {
26
- readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null) | ((new (...args: any[]) => string | HTMLElement | Window) | (() => string | HTMLElement | Window | null))[], unknown, unknown>>;
27
- readonly required: false;
28
- readonly validator: ((val: unknown) => boolean) | undefined;
29
- __epPropKey: true;
30
- };
31
- offset: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
32
- bound: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
33
- duration: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
34
- marker: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
35
- type: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "default" | "underline") | (() => "default" | "underline") | ((new (...args: any[]) => "default" | "underline") | (() => "default" | "underline"))[], unknown, unknown, string, boolean>;
36
- direction: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical") | ((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical"))[], unknown, unknown, string, boolean>;
37
- selectScrollTop: BooleanConstructor;
38
- }>> & {
18
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<AnchorProps>, {
19
+ offset: number;
20
+ bound: number;
21
+ duration: number;
22
+ marker: boolean;
23
+ type: string;
24
+ direction: string;
25
+ }>>> & {
39
26
  onClick?: ((e: MouseEvent, href?: string | undefined) => any) | undefined;
40
27
  onChange?: ((href: string) => any) | undefined;
41
28
  }, {
42
- marker: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
43
- direction: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical") | ((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical"))[], unknown, unknown>;
29
+ marker: boolean;
30
+ direction: "vertical" | "horizontal";
44
31
  offset: number;
45
- type: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => "default" | "underline") | (() => "default" | "underline") | ((new (...args: any[]) => "default" | "underline") | (() => "default" | "underline"))[], unknown, unknown>;
32
+ type: "default" | "underline";
46
33
  duration: number;
47
34
  bound: number;
48
- selectScrollTop: boolean;
49
35
  }, {}>;
50
36
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
51
37
  declare const _default: typeof __VLS_export;
52
38
  export default _default;
39
+ type __VLS_TypePropsToOption<T> = {
40
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
41
+ type: import('vue').PropType<Required<T>[K]>;
42
+ } : {
43
+ type: import('vue').PropType<T[K]>;
44
+ required: true;
45
+ };
46
+ };
47
+ type __VLS_WithDefaultsLocal<P, D> = {
48
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
49
+ default: D[K];
50
+ }> : P[K];
51
+ };
53
52
  type __VLS_WithSlots<T, S> = T & {
54
53
  new (): {
55
54
  $slots: S;
56
55
  };
57
56
  };
57
+ type __VLS_PrettifyLocal<T> = {
58
+ [K in keyof T as K]: T[K];
59
+ } & {};
@@ -19,7 +19,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
19
19
  name: "ElAnchor"
20
20
  },
21
21
  __name: "anchor",
22
- props: anchor.anchorProps,
22
+ props: {
23
+ container: { type: null, required: false },
24
+ offset: { type: Number, required: false, default: 0 },
25
+ bound: { type: Number, required: false, default: 15 },
26
+ duration: { type: Number, required: false, default: 300 },
27
+ marker: { type: Boolean, required: false, default: true },
28
+ type: { type: String, required: false, default: "default" },
29
+ direction: { type: String, required: false, default: "vertical" },
30
+ selectScrollTop: { type: Boolean, required: false }
31
+ },
23
32
  emits: anchor.anchorEmits,
24
33
  setup(__props, { expose: __expose, emit: __emit }) {
25
34
  const props = __props;
@@ -205,7 +214,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
205
214
  class: vue.normalizeClass(cls.value)
206
215
  },
207
216
  [
208
- _ctx.marker ? (vue.openBlock(), vue.createElementBlock(
217
+ __props.marker ? (vue.openBlock(), vue.createElementBlock(
209
218
  "div",
210
219
  {
211
220
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.vue2.js","sources":["../../../../../../packages/components/anchor/src/anchor.vue"],"sourcesContent":["<template>\n <div ref=\"anchorRef\" :class=\"cls\">\n <div\n v-if=\"marker\"\n ref=\"markerRef\"\n :class=\"ns.e('marker')\"\n :style=\"markerStyle\"\n />\n <div :class=\"ns.e('list')\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { useNamespace } from '@element-plus/hooks'\nimport {\n animateScrollTo,\n getElement,\n getOffsetTopDistance,\n getScrollElement,\n getScrollTop,\n isUndefined,\n isWindow,\n throttleByRaf,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { anchorEmits, anchorProps } from './anchor'\nimport { anchorKey } from './constants'\n\nimport type { CSSProperties } from 'vue'\nimport type { AnchorLinkState } from './constants'\n\ndefineOptions({\n name: 'ElAnchor',\n})\n\nconst props = defineProps(anchorProps)\nconst emit = defineEmits(anchorEmits)\nconst slots = useSlots()\n\nconst currentAnchor = ref('')\nconst markerStyle = ref<CSSProperties>({})\nconst anchorRef = ref<HTMLElement | null>(null)\nconst markerRef = ref<HTMLElement | null>(null)\nconst containerEl = ref<HTMLElement | Window>()\n\nconst links: Record<string, HTMLElement> = {}\nlet isScrolling = false\nlet currentScrollTop = 0\n\nconst ns = useNamespace('anchor')\n\nconst cls = computed(() => [\n ns.b(),\n props.type === 'underline' ? ns.m('underline') : '',\n ns.m(props.direction),\n])\n\nconst addLink = (state: AnchorLinkState) => {\n links[state.href] = state.el\n}\n\nconst removeLink = (href: string) => {\n delete links[href]\n}\n\nconst setCurrentAnchor = (href: string) => {\n const activeHref = currentAnchor.value\n if (activeHref !== href) {\n currentAnchor.value = href\n emit(CHANGE_EVENT, href)\n }\n}\n\nlet clearAnimate: (() => void) | null = null\nlet currentTargetHref = ''\n\nconst scrollToAnchor = (href: string) => {\n if (!containerEl.value) return\n const target = getElement(href)\n if (!target) return\n\n if (clearAnimate) {\n if (currentTargetHref === href) return\n clearAnimate()\n }\n\n currentTargetHref = href\n isScrolling = true\n const scrollEle = getScrollElement(target, containerEl.value)\n const distance = getOffsetTopDistance(target, scrollEle)\n const max = scrollEle.scrollHeight - scrollEle.clientHeight\n const to = Math.min(distance - props.offset, max)\n clearAnimate = animateScrollTo(\n containerEl.value,\n currentScrollTop,\n to,\n props.duration,\n () => {\n // make sure it is executed after throttleByRaf's handleScroll\n setTimeout(() => {\n isScrolling = false\n currentTargetHref = ''\n }, 20)\n }\n )\n}\n\nconst scrollTo = (href?: string) => {\n if (href) {\n setCurrentAnchor(href)\n scrollToAnchor(href)\n }\n}\n\nconst handleClick = (e: MouseEvent, href?: string) => {\n emit('click', e, href)\n scrollTo(href)\n}\n\nconst handleScroll = throttleByRaf(() => {\n if (containerEl.value) {\n currentScrollTop = getScrollTop(containerEl.value)\n }\n const currentHref = getCurrentHref()\n if (isScrolling || isUndefined(currentHref)) return\n setCurrentAnchor(currentHref)\n})\n\nconst getCurrentHref = () => {\n if (!containerEl.value) return\n const scrollTop = getScrollTop(containerEl.value)\n const anchorTopList: { top: number; href: string }[] = []\n\n for (const href of Object.keys(links)) {\n const target = getElement(href)\n if (!target) continue\n const scrollEle = getScrollElement(target, containerEl.value)\n const distance = getOffsetTopDistance(target, scrollEle)\n anchorTopList.push({\n top: distance - props.offset - props.bound,\n href,\n })\n }\n anchorTopList.sort((prev, next) => prev.top - next.top)\n for (let i = 0; i < anchorTopList.length; i++) {\n const item = anchorTopList[i]\n const next = anchorTopList[i + 1]\n\n if (i === 0 && scrollTop === 0) {\n return props.selectScrollTop ? item.href : ''\n }\n if (item.top <= scrollTop && (!next || next.top > scrollTop)) {\n return item.href\n }\n }\n}\n\nconst getContainer = () => {\n const el = getElement(props.container)\n if (!el || isWindow(el)) {\n containerEl.value = window\n } else {\n containerEl.value = el\n }\n}\n\nuseEventListener(containerEl, 'scroll', handleScroll)\n\nconst updateMarkerStyle = () => {\n nextTick(() => {\n if (!anchorRef.value || !markerRef.value || !currentAnchor.value) {\n markerStyle.value = {}\n return\n }\n const currentLinkEl = links[currentAnchor.value]\n if (!currentLinkEl) {\n markerStyle.value = {}\n return\n }\n const anchorRect = anchorRef.value.getBoundingClientRect()\n const markerRect = markerRef.value.getBoundingClientRect()\n const linkRect = currentLinkEl.getBoundingClientRect()\n\n if (props.direction === 'horizontal') {\n const left = linkRect.left - anchorRect.left\n markerStyle.value = {\n left: `${left}px`,\n width: `${linkRect.width}px`,\n opacity: 1,\n }\n } else {\n const top =\n linkRect.top -\n anchorRect.top +\n (linkRect.height - markerRect.height) / 2\n markerStyle.value = {\n top: `${top}px`,\n opacity: 1,\n }\n }\n })\n}\n\nwatch(currentAnchor, updateMarkerStyle)\nwatch(() => slots.default?.(), updateMarkerStyle)\n\nonMounted(() => {\n getContainer()\n const hash = decodeURIComponent(window.location.hash)\n const target = getElement(hash)\n if (target) {\n scrollTo(hash)\n } else {\n handleScroll()\n }\n})\n\nwatch(\n () => props.container,\n () => {\n getContainer()\n }\n)\n\nprovide(anchorKey, {\n ns,\n direction: props.direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick,\n})\n\ndefineExpose({\n scrollTo,\n})\n</script>\n"],"names":["useSlots","ref","useNamespace","computed","CHANGE_EVENT","getElement","getScrollElement","getOffsetTopDistance","animateScrollTo","throttleByRaf","getScrollTop","isUndefined","isWindow","useEventListener","nextTick","watch","onMounted","provide","anchorKey","_createElementBlock","marker","_normalizeClass","_unref","_createElementVNode","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"anchor.vue2.js","sources":["../../../../../../packages/components/anchor/src/anchor.vue"],"sourcesContent":["<template>\n <div ref=\"anchorRef\" :class=\"cls\">\n <div\n v-if=\"marker\"\n ref=\"markerRef\"\n :class=\"ns.e('marker')\"\n :style=\"markerStyle\"\n />\n <div :class=\"ns.e('list')\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { useNamespace } from '@element-plus/hooks'\nimport {\n animateScrollTo,\n getElement,\n getOffsetTopDistance,\n getScrollElement,\n getScrollTop,\n isUndefined,\n isWindow,\n throttleByRaf,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport { anchorEmits } from './anchor'\nimport { anchorKey } from './constants'\n\nimport type { CSSProperties } from 'vue'\nimport type { AnchorProps } from './anchor'\nimport type { AnchorLinkState } from './constants'\n\ndefineOptions({\n name: 'ElAnchor',\n})\n\nconst props = withDefaults(defineProps<AnchorProps>(), {\n offset: 0,\n bound: 15,\n duration: 300,\n marker: true,\n type: 'default',\n direction: 'vertical',\n})\nconst emit = defineEmits(anchorEmits)\nconst slots = useSlots()\n\nconst currentAnchor = ref('')\nconst markerStyle = ref<CSSProperties>({})\nconst anchorRef = ref<HTMLElement | null>(null)\nconst markerRef = ref<HTMLElement | null>(null)\nconst containerEl = ref<HTMLElement | Window>()\n\nconst links: Record<string, HTMLElement> = {}\nlet isScrolling = false\nlet currentScrollTop = 0\n\nconst ns = useNamespace('anchor')\n\nconst cls = computed(() => [\n ns.b(),\n props.type === 'underline' ? ns.m('underline') : '',\n ns.m(props.direction),\n])\n\nconst addLink = (state: AnchorLinkState) => {\n links[state.href] = state.el\n}\n\nconst removeLink = (href: string) => {\n delete links[href]\n}\n\nconst setCurrentAnchor = (href: string) => {\n const activeHref = currentAnchor.value\n if (activeHref !== href) {\n currentAnchor.value = href\n emit(CHANGE_EVENT, href)\n }\n}\n\nlet clearAnimate: (() => void) | null = null\nlet currentTargetHref = ''\n\nconst scrollToAnchor = (href: string) => {\n if (!containerEl.value) return\n const target = getElement(href)\n if (!target) return\n\n if (clearAnimate) {\n if (currentTargetHref === href) return\n clearAnimate()\n }\n\n currentTargetHref = href\n isScrolling = true\n const scrollEle = getScrollElement(target, containerEl.value)\n const distance = getOffsetTopDistance(target, scrollEle)\n const max = scrollEle.scrollHeight - scrollEle.clientHeight\n const to = Math.min(distance - props.offset, max)\n clearAnimate = animateScrollTo(\n containerEl.value,\n currentScrollTop,\n to,\n props.duration,\n () => {\n // make sure it is executed after throttleByRaf's handleScroll\n setTimeout(() => {\n isScrolling = false\n currentTargetHref = ''\n }, 20)\n }\n )\n}\n\nconst scrollTo = (href?: string) => {\n if (href) {\n setCurrentAnchor(href)\n scrollToAnchor(href)\n }\n}\n\nconst handleClick = (e: MouseEvent, href?: string) => {\n emit('click', e, href)\n scrollTo(href)\n}\n\nconst handleScroll = throttleByRaf(() => {\n if (containerEl.value) {\n currentScrollTop = getScrollTop(containerEl.value)\n }\n const currentHref = getCurrentHref()\n if (isScrolling || isUndefined(currentHref)) return\n setCurrentAnchor(currentHref)\n})\n\nconst getCurrentHref = () => {\n if (!containerEl.value) return\n const scrollTop = getScrollTop(containerEl.value)\n const anchorTopList: { top: number; href: string }[] = []\n\n for (const href of Object.keys(links)) {\n const target = getElement(href)\n if (!target) continue\n const scrollEle = getScrollElement(target, containerEl.value)\n const distance = getOffsetTopDistance(target, scrollEle)\n anchorTopList.push({\n top: distance - props.offset - props.bound,\n href,\n })\n }\n anchorTopList.sort((prev, next) => prev.top - next.top)\n for (let i = 0; i < anchorTopList.length; i++) {\n const item = anchorTopList[i]\n const next = anchorTopList[i + 1]\n\n if (i === 0 && scrollTop === 0) {\n return props.selectScrollTop ? item.href : ''\n }\n if (item.top <= scrollTop && (!next || next.top > scrollTop)) {\n return item.href\n }\n }\n}\n\nconst getContainer = () => {\n const el = getElement(props.container)\n if (!el || isWindow(el)) {\n containerEl.value = window\n } else {\n containerEl.value = el\n }\n}\n\nuseEventListener(containerEl, 'scroll', handleScroll)\n\nconst updateMarkerStyle = () => {\n nextTick(() => {\n if (!anchorRef.value || !markerRef.value || !currentAnchor.value) {\n markerStyle.value = {}\n return\n }\n const currentLinkEl = links[currentAnchor.value]\n if (!currentLinkEl) {\n markerStyle.value = {}\n return\n }\n const anchorRect = anchorRef.value.getBoundingClientRect()\n const markerRect = markerRef.value.getBoundingClientRect()\n const linkRect = currentLinkEl.getBoundingClientRect()\n\n if (props.direction === 'horizontal') {\n const left = linkRect.left - anchorRect.left\n markerStyle.value = {\n left: `${left}px`,\n width: `${linkRect.width}px`,\n opacity: 1,\n }\n } else {\n const top =\n linkRect.top -\n anchorRect.top +\n (linkRect.height - markerRect.height) / 2\n markerStyle.value = {\n top: `${top}px`,\n opacity: 1,\n }\n }\n })\n}\n\nwatch(currentAnchor, updateMarkerStyle)\nwatch(() => slots.default?.(), updateMarkerStyle)\n\nonMounted(() => {\n getContainer()\n const hash = decodeURIComponent(window.location.hash)\n const target = getElement(hash)\n if (target) {\n scrollTo(hash)\n } else {\n handleScroll()\n }\n})\n\nwatch(\n () => props.container,\n () => {\n getContainer()\n }\n)\n\nprovide(anchorKey, {\n ns,\n direction: props.direction,\n currentAnchor,\n addLink,\n removeLink,\n handleClick,\n})\n\ndefineExpose({\n scrollTo,\n})\n</script>\n"],"names":["useSlots","ref","useNamespace","computed","CHANGE_EVENT","getElement","getScrollElement","getOffsetTopDistance","animateScrollTo","throttleByRaf","getScrollTop","isUndefined","isWindow","useEventListener","nextTick","watch","onMounted","provide","anchorKey","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_renderSlot"],"mappings":"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"}
@@ -511,6 +511,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
511
511
  readonly modelValue: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
512
512
  readonly placement: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement))[], "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end", unknown>;
513
513
  readonly teleported: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
514
+ readonly inputmode: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined) | ((new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined))[], unknown, unknown>;
514
515
  readonly modelModifiers: import("@element-plus/nightly/es/components/input").InputModelModifiers;
515
516
  readonly autosize: import("@element-plus/nightly/es/components/input").InputAutoSize;
516
517
  readonly autocomplete: AutoFill;
@@ -519,7 +520,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
519
520
  readonly validateEvent: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
520
521
  readonly inputStyle: StyleValue;
521
522
  readonly rows: number;
522
- readonly inputmode: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined) | ((new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined))[], unknown, unknown>;
523
523
  readonly readonly: boolean;
524
524
  readonly clearable: boolean;
525
525
  readonly showPassword: boolean;
@@ -23,7 +23,7 @@ const useBasicDateTable = (props, emit) => {
23
23
  const firstDayOfWeek = props.date.$locale().weekStart || 7;
24
24
  const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase());
25
25
  const offsetDay = vue.computed(() => {
26
- return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek;
26
+ return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : firstDayOfWeek;
27
27
  });
28
28
  const startDate = vue.computed(() => {
29
29
  const startDayOfMonth = props.date.startOf("month");