@element-plus/nightly 0.0.20240819 → 0.0.20240822

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 (382) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +68 -35
  4. package/dist/index.full.min.js +22 -22
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +22 -22
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +68 -36
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hr.js +1 -1
  94. package/dist/locale/hr.min.js +1 -1
  95. package/dist/locale/hr.min.mjs +1 -1
  96. package/dist/locale/hr.mjs +1 -1
  97. package/dist/locale/hu.js +1 -1
  98. package/dist/locale/hu.min.js +1 -1
  99. package/dist/locale/hu.min.mjs +1 -1
  100. package/dist/locale/hu.mjs +1 -1
  101. package/dist/locale/hy-am.js +1 -1
  102. package/dist/locale/hy-am.min.js +1 -1
  103. package/dist/locale/hy-am.min.mjs +1 -1
  104. package/dist/locale/hy-am.mjs +1 -1
  105. package/dist/locale/id.js +1 -1
  106. package/dist/locale/id.min.js +1 -1
  107. package/dist/locale/id.min.mjs +1 -1
  108. package/dist/locale/id.mjs +1 -1
  109. package/dist/locale/it.js +1 -1
  110. package/dist/locale/it.min.js +1 -1
  111. package/dist/locale/it.min.mjs +1 -1
  112. package/dist/locale/it.mjs +1 -1
  113. package/dist/locale/ja.js +1 -1
  114. package/dist/locale/ja.min.js +1 -1
  115. package/dist/locale/ja.min.mjs +1 -1
  116. package/dist/locale/ja.mjs +1 -1
  117. package/dist/locale/kk.js +1 -1
  118. package/dist/locale/kk.min.js +1 -1
  119. package/dist/locale/kk.min.mjs +1 -1
  120. package/dist/locale/kk.mjs +1 -1
  121. package/dist/locale/km.js +1 -1
  122. package/dist/locale/km.min.js +1 -1
  123. package/dist/locale/km.min.mjs +1 -1
  124. package/dist/locale/km.mjs +1 -1
  125. package/dist/locale/ko.js +1 -1
  126. package/dist/locale/ko.min.js +1 -1
  127. package/dist/locale/ko.min.mjs +1 -1
  128. package/dist/locale/ko.mjs +1 -1
  129. package/dist/locale/ku.js +1 -1
  130. package/dist/locale/ku.min.js +1 -1
  131. package/dist/locale/ku.min.mjs +1 -1
  132. package/dist/locale/ku.mjs +1 -1
  133. package/dist/locale/ky.js +1 -1
  134. package/dist/locale/ky.min.js +1 -1
  135. package/dist/locale/ky.min.mjs +1 -1
  136. package/dist/locale/ky.mjs +1 -1
  137. package/dist/locale/lt.js +1 -1
  138. package/dist/locale/lt.min.js +1 -1
  139. package/dist/locale/lt.min.mjs +1 -1
  140. package/dist/locale/lt.mjs +1 -1
  141. package/dist/locale/lv.js +1 -1
  142. package/dist/locale/lv.min.js +1 -1
  143. package/dist/locale/lv.min.mjs +1 -1
  144. package/dist/locale/lv.mjs +1 -1
  145. package/dist/locale/mg.js +1 -1
  146. package/dist/locale/mg.min.js +1 -1
  147. package/dist/locale/mg.min.mjs +1 -1
  148. package/dist/locale/mg.mjs +1 -1
  149. package/dist/locale/mn.js +1 -1
  150. package/dist/locale/mn.min.js +1 -1
  151. package/dist/locale/mn.min.mjs +1 -1
  152. package/dist/locale/mn.mjs +1 -1
  153. package/dist/locale/my.js +1 -1
  154. package/dist/locale/my.min.js +1 -1
  155. package/dist/locale/my.min.mjs +1 -1
  156. package/dist/locale/my.mjs +1 -1
  157. package/dist/locale/nb-no.js +1 -1
  158. package/dist/locale/nb-no.min.js +1 -1
  159. package/dist/locale/nb-no.min.mjs +1 -1
  160. package/dist/locale/nb-no.mjs +1 -1
  161. package/dist/locale/nl.js +1 -1
  162. package/dist/locale/nl.min.js +1 -1
  163. package/dist/locale/nl.min.mjs +1 -1
  164. package/dist/locale/nl.mjs +1 -1
  165. package/dist/locale/pa.js +1 -1
  166. package/dist/locale/pa.min.js +1 -1
  167. package/dist/locale/pa.min.mjs +1 -1
  168. package/dist/locale/pa.mjs +1 -1
  169. package/dist/locale/pl.js +1 -1
  170. package/dist/locale/pl.min.js +1 -1
  171. package/dist/locale/pl.min.mjs +1 -1
  172. package/dist/locale/pl.mjs +1 -1
  173. package/dist/locale/pt-br.js +1 -1
  174. package/dist/locale/pt-br.min.js +1 -1
  175. package/dist/locale/pt-br.min.mjs +1 -1
  176. package/dist/locale/pt-br.mjs +1 -1
  177. package/dist/locale/pt.js +1 -1
  178. package/dist/locale/pt.min.js +1 -1
  179. package/dist/locale/pt.min.mjs +1 -1
  180. package/dist/locale/pt.mjs +1 -1
  181. package/dist/locale/ro.js +1 -1
  182. package/dist/locale/ro.min.js +1 -1
  183. package/dist/locale/ro.min.mjs +1 -1
  184. package/dist/locale/ro.mjs +1 -1
  185. package/dist/locale/ru.js +1 -1
  186. package/dist/locale/ru.min.js +1 -1
  187. package/dist/locale/ru.min.mjs +1 -1
  188. package/dist/locale/ru.mjs +1 -1
  189. package/dist/locale/sk.js +1 -1
  190. package/dist/locale/sk.min.js +1 -1
  191. package/dist/locale/sk.min.mjs +1 -1
  192. package/dist/locale/sk.mjs +1 -1
  193. package/dist/locale/sl.js +1 -1
  194. package/dist/locale/sl.min.js +1 -1
  195. package/dist/locale/sl.min.mjs +1 -1
  196. package/dist/locale/sl.mjs +1 -1
  197. package/dist/locale/sr.js +1 -1
  198. package/dist/locale/sr.min.js +1 -1
  199. package/dist/locale/sr.min.mjs +1 -1
  200. package/dist/locale/sr.mjs +1 -1
  201. package/dist/locale/sv.js +1 -1
  202. package/dist/locale/sv.min.js +1 -1
  203. package/dist/locale/sv.min.mjs +1 -1
  204. package/dist/locale/sv.mjs +1 -1
  205. package/dist/locale/sw.js +1 -1
  206. package/dist/locale/sw.min.js +1 -1
  207. package/dist/locale/sw.min.mjs +1 -1
  208. package/dist/locale/sw.mjs +1 -1
  209. package/dist/locale/ta.js +1 -1
  210. package/dist/locale/ta.min.js +1 -1
  211. package/dist/locale/ta.min.mjs +1 -1
  212. package/dist/locale/ta.mjs +1 -1
  213. package/dist/locale/th.js +1 -1
  214. package/dist/locale/th.min.js +1 -1
  215. package/dist/locale/th.min.mjs +1 -1
  216. package/dist/locale/th.mjs +1 -1
  217. package/dist/locale/tk.js +1 -1
  218. package/dist/locale/tk.min.js +1 -1
  219. package/dist/locale/tk.min.mjs +1 -1
  220. package/dist/locale/tk.mjs +1 -1
  221. package/dist/locale/tr.js +1 -1
  222. package/dist/locale/tr.min.js +1 -1
  223. package/dist/locale/tr.min.mjs +1 -1
  224. package/dist/locale/tr.mjs +1 -1
  225. package/dist/locale/ug-cn.js +1 -1
  226. package/dist/locale/ug-cn.min.js +1 -1
  227. package/dist/locale/ug-cn.min.mjs +1 -1
  228. package/dist/locale/ug-cn.mjs +1 -1
  229. package/dist/locale/uk.js +1 -1
  230. package/dist/locale/uk.min.js +1 -1
  231. package/dist/locale/uk.min.mjs +1 -1
  232. package/dist/locale/uk.mjs +1 -1
  233. package/dist/locale/uz-uz.js +1 -1
  234. package/dist/locale/uz-uz.min.js +1 -1
  235. package/dist/locale/uz-uz.min.mjs +1 -1
  236. package/dist/locale/uz-uz.mjs +1 -1
  237. package/dist/locale/vi.js +1 -1
  238. package/dist/locale/vi.min.js +1 -1
  239. package/dist/locale/vi.min.mjs +1 -1
  240. package/dist/locale/vi.mjs +1 -1
  241. package/dist/locale/zh-cn.js +1 -1
  242. package/dist/locale/zh-cn.min.js +1 -1
  243. package/dist/locale/zh-cn.min.mjs +1 -1
  244. package/dist/locale/zh-cn.mjs +1 -1
  245. package/dist/locale/zh-tw.js +1 -1
  246. package/dist/locale/zh-tw.min.js +1 -1
  247. package/dist/locale/zh-tw.min.mjs +1 -1
  248. package/dist/locale/zh-tw.mjs +1 -1
  249. package/es/components/affix/src/affix2.mjs +11 -9
  250. package/es/components/affix/src/affix2.mjs.map +1 -1
  251. package/es/components/carousel/index.mjs +1 -1
  252. package/es/components/carousel/src/carousel-item2.mjs +3 -3
  253. package/es/components/carousel/src/carousel-item2.mjs.map +1 -1
  254. package/es/components/carousel/src/constants.d.ts +1 -0
  255. package/es/components/carousel/src/constants.mjs +2 -1
  256. package/es/components/carousel/src/constants.mjs.map +1 -1
  257. package/es/components/carousel/src/use-carousel-item.d.ts +1 -1
  258. package/es/components/carousel/src/use-carousel-item.mjs +4 -4
  259. package/es/components/carousel/src/use-carousel-item.mjs.map +1 -1
  260. package/es/components/carousel/src/use-carousel.mjs +3 -4
  261. package/es/components/carousel/src/use-carousel.mjs.map +1 -1
  262. package/es/components/descriptions/src/description-item.d.ts +4 -0
  263. package/es/components/descriptions/src/description-item.mjs +4 -0
  264. package/es/components/descriptions/src/description-item.mjs.map +1 -1
  265. package/es/components/descriptions/src/description2.mjs +16 -1
  266. package/es/components/descriptions/src/description2.mjs.map +1 -1
  267. package/es/components/descriptions/src/descriptions-cell.mjs +7 -3
  268. package/es/components/descriptions/src/descriptions-cell.mjs.map +1 -1
  269. package/es/components/descriptions/src/descriptions.type.d.ts +1 -0
  270. package/es/components/dialog/src/dialog-content.vue.d.ts +1 -1
  271. package/es/components/dialog/src/dialog-content2.mjs +2 -2
  272. package/es/components/dialog/src/dialog-content2.mjs.map +1 -1
  273. package/es/components/dialog/src/dialog.vue.d.ts +1 -1
  274. package/es/components/dialog/src/dialog2.mjs +3 -3
  275. package/es/components/dialog/src/dialog2.mjs.map +1 -1
  276. package/es/components/index.mjs +3 -3
  277. package/es/components/pagination/src/components/jumper.mjs +59 -9
  278. package/es/components/pagination/src/components/jumper.mjs.map +1 -1
  279. package/es/components/pagination/src/components/jumper2.mjs +9 -59
  280. package/es/components/pagination/src/components/jumper2.mjs.map +1 -1
  281. package/es/components/pagination/src/components/pager.mjs +17 -210
  282. package/es/components/pagination/src/components/pager.mjs.map +1 -1
  283. package/es/components/pagination/src/components/pager2.mjs +210 -17
  284. package/es/components/pagination/src/components/pager2.mjs.map +1 -1
  285. package/es/components/pagination/src/pagination.mjs +2 -2
  286. package/es/components/select/src/select2.mjs +5 -1
  287. package/es/components/select/src/select2.mjs.map +1 -1
  288. package/es/components/select-v2/src/select.mjs +5 -1
  289. package/es/components/select-v2/src/select.mjs.map +1 -1
  290. package/es/components/statistic/index.mjs +2 -2
  291. package/es/components/statistic/src/statistic.mjs +25 -70
  292. package/es/components/statistic/src/statistic.mjs.map +1 -1
  293. package/es/components/statistic/src/statistic2.mjs +70 -25
  294. package/es/components/statistic/src/statistic2.mjs.map +1 -1
  295. package/es/components/virtual-list/src/builders/build-grid.mjs +4 -4
  296. package/es/components/virtual-list/src/builders/build-grid.mjs.map +1 -1
  297. package/es/components/virtual-list/src/builders/build-list.mjs +3 -4
  298. package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
  299. package/es/components/watermark/index.mjs +2 -2
  300. package/es/components/watermark/src/watermark.mjs +28 -209
  301. package/es/components/watermark/src/watermark.mjs.map +1 -1
  302. package/es/components/watermark/src/watermark2.mjs +209 -28
  303. package/es/components/watermark/src/watermark2.mjs.map +1 -1
  304. package/es/hooks/use-draggable/index.d.ts +1 -1
  305. package/es/hooks/use-draggable/index.mjs +2 -2
  306. package/es/hooks/use-draggable/index.mjs.map +1 -1
  307. package/es/index.mjs +3 -3
  308. package/es/version.d.ts +1 -1
  309. package/es/version.mjs +1 -1
  310. package/es/version.mjs.map +1 -1
  311. package/global.d.ts +1 -0
  312. package/lib/components/affix/src/affix2.js +11 -9
  313. package/lib/components/affix/src/affix2.js.map +1 -1
  314. package/lib/components/carousel/index.js +1 -0
  315. package/lib/components/carousel/index.js.map +1 -1
  316. package/lib/components/carousel/src/carousel-item2.js +3 -3
  317. package/lib/components/carousel/src/carousel-item2.js.map +1 -1
  318. package/lib/components/carousel/src/constants.d.ts +1 -0
  319. package/lib/components/carousel/src/constants.js +2 -0
  320. package/lib/components/carousel/src/constants.js.map +1 -1
  321. package/lib/components/carousel/src/use-carousel-item.d.ts +1 -1
  322. package/lib/components/carousel/src/use-carousel-item.js +3 -3
  323. package/lib/components/carousel/src/use-carousel-item.js.map +1 -1
  324. package/lib/components/carousel/src/use-carousel.js +2 -3
  325. package/lib/components/carousel/src/use-carousel.js.map +1 -1
  326. package/lib/components/descriptions/src/description-item.d.ts +4 -0
  327. package/lib/components/descriptions/src/description-item.js +4 -0
  328. package/lib/components/descriptions/src/description-item.js.map +1 -1
  329. package/lib/components/descriptions/src/description2.js +16 -1
  330. package/lib/components/descriptions/src/description2.js.map +1 -1
  331. package/lib/components/descriptions/src/descriptions-cell.js +7 -3
  332. package/lib/components/descriptions/src/descriptions-cell.js.map +1 -1
  333. package/lib/components/descriptions/src/descriptions.type.d.ts +1 -0
  334. package/lib/components/dialog/src/dialog-content.vue.d.ts +1 -1
  335. package/lib/components/dialog/src/dialog-content2.js +2 -2
  336. package/lib/components/dialog/src/dialog-content2.js.map +1 -1
  337. package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
  338. package/lib/components/dialog/src/dialog2.js +3 -3
  339. package/lib/components/dialog/src/dialog2.js.map +1 -1
  340. package/lib/components/index.js +3 -2
  341. package/lib/components/index.js.map +1 -1
  342. package/lib/components/pagination/src/components/jumper.js +59 -9
  343. package/lib/components/pagination/src/components/jumper.js.map +1 -1
  344. package/lib/components/pagination/src/components/jumper2.js +9 -59
  345. package/lib/components/pagination/src/components/jumper2.js.map +1 -1
  346. package/lib/components/pagination/src/components/pager.js +17 -210
  347. package/lib/components/pagination/src/components/pager.js.map +1 -1
  348. package/lib/components/pagination/src/components/pager2.js +210 -17
  349. package/lib/components/pagination/src/components/pager2.js.map +1 -1
  350. package/lib/components/pagination/src/pagination.js +2 -2
  351. package/lib/components/select/src/select2.js +5 -1
  352. package/lib/components/select/src/select2.js.map +1 -1
  353. package/lib/components/select-v2/src/select.js +5 -1
  354. package/lib/components/select-v2/src/select.js.map +1 -1
  355. package/lib/components/statistic/index.js +2 -2
  356. package/lib/components/statistic/src/statistic.js +25 -70
  357. package/lib/components/statistic/src/statistic.js.map +1 -1
  358. package/lib/components/statistic/src/statistic2.js +70 -25
  359. package/lib/components/statistic/src/statistic2.js.map +1 -1
  360. package/lib/components/virtual-list/src/builders/build-grid.js +3 -3
  361. package/lib/components/virtual-list/src/builders/build-grid.js.map +1 -1
  362. package/lib/components/virtual-list/src/builders/build-list.js +2 -3
  363. package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
  364. package/lib/components/watermark/index.js +2 -2
  365. package/lib/components/watermark/src/watermark.js +28 -209
  366. package/lib/components/watermark/src/watermark.js.map +1 -1
  367. package/lib/components/watermark/src/watermark2.js +209 -28
  368. package/lib/components/watermark/src/watermark2.js.map +1 -1
  369. package/lib/hooks/use-draggable/index.d.ts +1 -1
  370. package/lib/hooks/use-draggable/index.js +2 -2
  371. package/lib/hooks/use-draggable/index.js.map +1 -1
  372. package/lib/index.js +3 -2
  373. package/lib/index.js.map +1 -1
  374. package/lib/version.d.ts +1 -1
  375. package/lib/version.js +1 -1
  376. package/lib/version.js.map +1 -1
  377. package/package.json +2 -2
  378. package/tags.json +1 -1
  379. package/theme-chalk/el-dialog.css +1 -1
  380. package/theme-chalk/index.css +1 -1
  381. package/theme-chalk/src/common/var.scss +1 -1
  382. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build-grid.mjs","sources":["../../../../../../../packages/components/virtual-list/src/builders/build-grid.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n h,\n nextTick,\n onMounted,\n ref,\n resolveDynamicComponent,\n unref,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport {\n getScrollBarWidth,\n hasOwn,\n isClient,\n isNumber,\n isString,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Scrollbar from '../components/scrollbar'\nimport { useGridWheel } from '../hooks/use-grid-wheel'\nimport { useCache } from '../hooks/use-cache'\nimport { virtualizedGridProps } from '../props'\nimport { getRTLOffsetType, getScrollDir, isRTL } from '../utils'\nimport {\n AUTO_ALIGNMENT,\n BACKWARD,\n FORWARD,\n ITEM_RENDER_EVT,\n RTL,\n RTL_OFFSET_NAG,\n RTL_OFFSET_POS_ASC,\n RTL_OFFSET_POS_DESC,\n SCROLL_EVT,\n} from '../defaults'\nimport type {\n CSSProperties,\n Ref,\n StyleValue,\n UnwrapRef,\n VNode,\n VNodeChild,\n} from 'vue'\nimport type {\n Alignment,\n GridConstructorProps,\n GridScrollOptions,\n ScrollbarExpose,\n} from '../types'\nimport type { VirtualizedGridProps } from '../props'\n\nconst createGrid = ({\n name,\n clearCache,\n getColumnPosition,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getColumnOffset,\n getRowOffset,\n getRowPosition,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n\n initCache,\n injectToInstance,\n validateProps,\n}: GridConstructorProps<VirtualizedGridProps>) => {\n return defineComponent({\n name: name ?? 'ElVirtualList',\n props: virtualizedGridProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose, slots }) {\n const ns = useNamespace('vl')\n\n validateProps(props)\n const instance = getCurrentInstance()!\n const cache = ref(initCache(props, instance))\n injectToInstance?.(instance, cache)\n // refs\n // here windowRef and innerRef can be type of HTMLElement\n // or user defined component type, depends on the type passed\n // by user\n const windowRef = ref<HTMLElement>()\n const hScrollbar = ref<ScrollbarExpose>()\n const vScrollbar = ref<ScrollbarExpose>()\n // innerRef is the actual container element which contains all the elements\n const innerRef = ref(null)\n const states = ref({\n isScrolling: false,\n scrollLeft: isNumber(props.initScrollLeft) ? props.initScrollLeft : 0,\n scrollTop: isNumber(props.initScrollTop) ? props.initScrollTop : 0,\n updateRequested: false,\n xAxisScrollDir: FORWARD,\n yAxisScrollDir: FORWARD,\n })\n\n const getItemStyleCache = useCache()\n\n // computed\n const parsedHeight = computed(() =>\n Number.parseInt(`${props.height}`, 10)\n )\n const parsedWidth = computed(() => Number.parseInt(`${props.width}`, 10))\n const columnsToRender = computed(() => {\n const { totalColumn, totalRow, columnCache } = props\n const { isScrolling, xAxisScrollDir, scrollLeft } = unref(states)\n\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getColumnStartIndexForOffset(\n props,\n scrollLeft,\n unref(cache)\n )\n const stopIndex = getColumnStopIndexForStartIndex(\n props,\n startIndex,\n scrollLeft,\n unref(cache)\n )\n\n const cacheBackward =\n !isScrolling || xAxisScrollDir === BACKWARD\n ? Math.max(1, columnCache)\n : 1\n const cacheForward =\n !isScrolling || xAxisScrollDir === FORWARD\n ? Math.max(1, columnCache)\n : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalColumn! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const rowsToRender = computed(() => {\n const { totalColumn, totalRow, rowCache } = props\n const { isScrolling, yAxisScrollDir, scrollTop } = unref(states)\n\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getRowStartIndexForOffset(\n props,\n scrollTop,\n unref(cache)\n )\n const stopIndex = getRowStopIndexForStartIndex(\n props,\n startIndex,\n scrollTop,\n unref(cache)\n )\n\n const cacheBackward =\n !isScrolling || yAxisScrollDir === BACKWARD\n ? Math.max(1, rowCache)\n : 1\n const cacheForward =\n !isScrolling || yAxisScrollDir === FORWARD ? Math.max(1, rowCache) : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalRow! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const estimatedTotalHeight = computed(() =>\n getEstimatedTotalHeight(props, unref(cache))\n )\n const estimatedTotalWidth = computed(() =>\n getEstimatedTotalWidth(props, unref(cache))\n )\n\n const windowStyle = computed<StyleValue>(() => [\n {\n position: 'relative',\n overflow: 'hidden',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n },\n {\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width,\n },\n props.style ?? {},\n ])\n\n const innerStyle = computed(() => {\n const width = `${unref(estimatedTotalWidth)}px`\n const height = `${unref(estimatedTotalHeight)}px`\n\n return {\n height,\n pointerEvents: unref(states).isScrolling ? 'none' : undefined,\n width,\n }\n })\n\n // methods\n const emitEvents = () => {\n const { totalColumn, totalRow } = props\n\n if (totalColumn! > 0 && totalRow! > 0) {\n const [\n columnCacheStart,\n columnCacheEnd,\n columnVisibleStart,\n columnVisibleEnd,\n ] = unref(columnsToRender)\n const [rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd] =\n unref(rowsToRender)\n // emit the render item event with\n // [xAxisInvisibleStart, xAxisInvisibleEnd, xAxisVisibleStart, xAxisVisibleEnd]\n // [yAxisInvisibleStart, yAxisInvisibleEnd, yAxisVisibleStart, yAxisVisibleEnd]\n emit(ITEM_RENDER_EVT, {\n columnCacheStart,\n columnCacheEnd,\n rowCacheStart,\n rowCacheEnd,\n columnVisibleStart,\n columnVisibleEnd,\n rowVisibleStart,\n rowVisibleEnd,\n })\n }\n\n const {\n scrollLeft,\n scrollTop,\n updateRequested,\n xAxisScrollDir,\n yAxisScrollDir,\n } = unref(states)\n emit(SCROLL_EVT, {\n xAxisScrollDir,\n scrollLeft,\n yAxisScrollDir,\n scrollTop,\n updateRequested,\n })\n }\n\n const onScroll = (e: Event) => {\n const {\n clientHeight,\n clientWidth,\n scrollHeight,\n scrollLeft,\n scrollTop,\n scrollWidth,\n } = e.currentTarget as HTMLElement\n\n const _states = unref(states)\n\n if (\n _states.scrollTop === scrollTop &&\n _states.scrollLeft === scrollLeft\n ) {\n return\n }\n\n let _scrollLeft = scrollLeft\n\n if (isRTL(props.direction)) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG:\n _scrollLeft = -scrollLeft\n break\n case RTL_OFFSET_POS_DESC:\n _scrollLeft = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollLeft: _scrollLeft,\n scrollTop: Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n ),\n updateRequested: true,\n xAxisScrollDir: getScrollDir(_states.scrollLeft, _scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop),\n }\n\n nextTick(() => resetIsScrolling())\n\n onUpdated()\n emitEvents()\n }\n\n const onVerticalScroll = (distance: number, totalSteps: number) => {\n const height = unref(parsedHeight)\n const offset =\n ((estimatedTotalHeight.value - height) / totalSteps) * distance\n scrollTo({\n scrollTop: Math.min(estimatedTotalHeight.value - height, offset),\n })\n }\n\n const onHorizontalScroll = (distance: number, totalSteps: number) => {\n const width = unref(parsedWidth)\n const offset =\n ((estimatedTotalWidth.value - width) / totalSteps) * distance\n scrollTo({\n scrollLeft: Math.min(estimatedTotalWidth.value - width, offset),\n })\n }\n\n const { onWheel } = useGridWheel(\n {\n atXStartEdge: computed(() => states.value.scrollLeft <= 0),\n atXEndEdge: computed(\n () =>\n states.value.scrollLeft >=\n estimatedTotalWidth.value - unref(parsedWidth)\n ),\n atYStartEdge: computed(() => states.value.scrollTop <= 0),\n atYEndEdge: computed(\n () =>\n states.value.scrollTop >=\n estimatedTotalHeight.value - unref(parsedHeight)\n ),\n },\n (x: number, y: number) => {\n hScrollbar.value?.onMouseUp?.()\n vScrollbar.value?.onMouseUp?.()\n const width = unref(parsedWidth)\n const height = unref(parsedHeight)\n scrollTo({\n scrollLeft: Math.min(\n states.value.scrollLeft + x,\n estimatedTotalWidth.value - width\n ),\n scrollTop: Math.min(\n states.value.scrollTop + y,\n estimatedTotalHeight.value - height\n ),\n })\n }\n )\n\n useEventListener(windowRef, 'wheel', onWheel, {\n passive: false,\n })\n\n const scrollTo = ({\n scrollLeft = states.value.scrollLeft,\n scrollTop = states.value.scrollTop,\n }: GridScrollOptions) => {\n scrollLeft = Math.max(scrollLeft, 0)\n scrollTop = Math.max(scrollTop, 0)\n const _states = unref(states)\n if (\n scrollTop === _states.scrollTop &&\n scrollLeft === _states.scrollLeft\n ) {\n return\n }\n\n states.value = {\n ..._states,\n xAxisScrollDir: getScrollDir(_states.scrollLeft, scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop),\n scrollLeft,\n scrollTop,\n updateRequested: true,\n }\n\n nextTick(() => resetIsScrolling())\n\n onUpdated()\n emitEvents()\n }\n\n const scrollToItem = (\n rowIndex = 0,\n columnIdx = 0,\n alignment: Alignment = AUTO_ALIGNMENT\n ) => {\n const _states = unref(states)\n columnIdx = Math.max(0, Math.min(columnIdx, props.totalColumn! - 1))\n rowIndex = Math.max(0, Math.min(rowIndex, props.totalRow! - 1))\n const scrollBarWidth = getScrollBarWidth(ns.namespace.value)\n\n const _cache = unref(cache)\n const estimatedHeight = getEstimatedTotalHeight(props, _cache)\n const estimatedWidth = getEstimatedTotalWidth(props, _cache)\n\n scrollTo({\n scrollLeft: getColumnOffset(\n props,\n columnIdx,\n alignment,\n _states.scrollLeft,\n _cache,\n estimatedWidth > props.width! ? scrollBarWidth : 0\n ),\n scrollTop: getRowOffset(\n props,\n rowIndex,\n alignment,\n _states.scrollTop,\n _cache,\n estimatedHeight > props.height! ? scrollBarWidth : 0\n ),\n })\n }\n\n const getItemStyle = (\n rowIndex: number,\n columnIndex: number\n ): CSSProperties => {\n const { columnWidth, direction, rowHeight } = props\n const itemStyleCache = getItemStyleCache.value(\n clearCache && columnWidth,\n clearCache && rowHeight,\n clearCache && direction\n )\n // since there was no need to introduce an nested array into cache object\n // we use row,column to construct the key for indexing the map.\n const key = `${rowIndex},${columnIndex}`\n\n if (hasOwn(itemStyleCache, key)) {\n return itemStyleCache[key]\n } else {\n const [, left] = getColumnPosition(props, columnIndex, unref(cache))\n const _cache = unref(cache)\n\n const rtl = isRTL(direction)\n const [height, top] = getRowPosition(props, rowIndex, _cache)\n const [width] = getColumnPosition(props, columnIndex, _cache)\n\n itemStyleCache[key] = {\n position: 'absolute',\n left: rtl ? undefined : `${left}px`,\n right: rtl ? `${left}px` : undefined,\n top: `${top}px`,\n height: `${height}px`,\n width: `${width}px`,\n }\n\n return itemStyleCache[key]\n }\n }\n\n // TODO: debounce setting is scrolling.\n\n const resetIsScrolling = () => {\n // timer = null\n\n states.value.isScrolling = false\n nextTick(() => {\n getItemStyleCache.value(-1, null, null)\n })\n }\n\n // life cycles\n onMounted(() => {\n // for SSR\n if (!isClient) return\n const { initScrollLeft, initScrollTop } = props\n const windowElement = unref(windowRef)\n if (windowElement) {\n if (isNumber(initScrollLeft)) {\n windowElement.scrollLeft = initScrollLeft\n }\n if (isNumber(initScrollTop)) {\n windowElement.scrollTop = initScrollTop\n }\n }\n emitEvents()\n })\n\n const onUpdated = () => {\n const { direction } = props\n const { scrollLeft, scrollTop, updateRequested } = unref(states)\n\n const windowElement = unref(windowRef)\n if (updateRequested && windowElement) {\n if (direction === RTL) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n windowElement.scrollLeft = -scrollLeft\n break\n }\n case RTL_OFFSET_POS_ASC: {\n windowElement.scrollLeft = scrollLeft\n break\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement\n windowElement.scrollLeft =\n scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n } else {\n windowElement.scrollLeft = Math.max(0, scrollLeft)\n }\n\n windowElement.scrollTop = Math.max(0, scrollTop)\n }\n }\n\n const { resetAfterColumnIndex, resetAfterRowIndex, resetAfter } =\n instance.proxy as any\n\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n states,\n resetAfterColumnIndex,\n resetAfterRowIndex,\n resetAfter,\n })\n\n // rendering part\n\n const renderScrollbars = () => {\n const {\n scrollbarAlwaysOn,\n scrollbarStartGap,\n scrollbarEndGap,\n totalColumn,\n totalRow,\n } = props\n\n const width = unref(parsedWidth)\n const height = unref(parsedHeight)\n const estimatedWidth = unref(estimatedTotalWidth)\n const estimatedHeight = unref(estimatedTotalHeight)\n const { scrollLeft, scrollTop } = unref(states)\n const horizontalScrollbar = h(Scrollbar, {\n ref: hScrollbar,\n alwaysOn: scrollbarAlwaysOn,\n startGap: scrollbarStartGap,\n endGap: scrollbarEndGap,\n class: ns.e('horizontal'),\n clientSize: width,\n layout: 'horizontal',\n onScroll: onHorizontalScroll,\n ratio: (width * 100) / estimatedWidth,\n scrollFrom: scrollLeft / (estimatedWidth - width),\n total: totalRow,\n visible: true,\n })\n\n const verticalScrollbar = h(Scrollbar, {\n ref: vScrollbar,\n alwaysOn: scrollbarAlwaysOn,\n startGap: scrollbarStartGap,\n endGap: scrollbarEndGap,\n class: ns.e('vertical'),\n clientSize: height,\n layout: 'vertical',\n onScroll: onVerticalScroll,\n ratio: (height * 100) / estimatedHeight,\n scrollFrom: scrollTop / (estimatedHeight - height),\n\n total: totalColumn,\n visible: true,\n })\n\n return {\n horizontalScrollbar,\n verticalScrollbar,\n }\n }\n\n const renderItems = () => {\n const [columnStart, columnEnd] = unref(columnsToRender)\n const [rowStart, rowEnd] = unref(rowsToRender)\n const { data, totalColumn, totalRow, useIsScrolling, itemKey } = props\n const children: VNodeChild[] = []\n if (totalRow > 0 && totalColumn > 0) {\n for (let row = rowStart; row <= rowEnd; row++) {\n for (let column = columnStart; column <= columnEnd; column++) {\n children.push(\n slots.default?.({\n columnIndex: column,\n data,\n key: itemKey({ columnIndex: column, data, rowIndex: row }),\n isScrolling: useIsScrolling\n ? unref(states).isScrolling\n : undefined,\n style: getItemStyle(row, column),\n rowIndex: row,\n })\n )\n }\n }\n }\n return children\n }\n\n const renderInner = () => {\n const Inner = resolveDynamicComponent(props.innerElement) as VNode\n const children = renderItems()\n return [\n h(\n Inner,\n {\n style: unref(innerStyle),\n ref: innerRef,\n },\n !isString(Inner)\n ? {\n default: () => children,\n }\n : children\n ),\n ]\n }\n\n const renderWindow = () => {\n const Container = resolveDynamicComponent(\n props.containerElement\n ) as VNode\n const { horizontalScrollbar, verticalScrollbar } = renderScrollbars()\n const Inner = renderInner()\n\n return h(\n 'div',\n {\n key: 0,\n class: ns.e('wrapper'),\n role: props.role,\n },\n [\n h(\n Container,\n {\n class: props.className,\n style: unref(windowStyle),\n onScroll,\n ref: windowRef,\n },\n !isString(Container) ? { default: () => Inner } : Inner\n ),\n horizontalScrollbar,\n verticalScrollbar,\n ]\n )\n }\n\n return renderWindow\n },\n })\n}\n\nexport default createGrid\n\ntype Dir = typeof FORWARD | typeof BACKWARD\n\nexport type GridInstance = InstanceType<ReturnType<typeof createGrid>> &\n UnwrapRef<{\n windowRef: Ref<HTMLElement>\n innerRef: Ref<HTMLElement>\n getItemStyleCache: ReturnType<typeof useCache>\n scrollTo: (scrollOptions: GridScrollOptions) => void\n scrollToItem: (\n rowIndex: number,\n columnIndex: number,\n alignment: Alignment\n ) => void\n states: Ref<{\n isScrolling: boolean\n scrollLeft: number\n scrollTop: number\n updateRequested: boolean\n xAxisScrollDir: Dir\n yAxisScrollDir: Dir\n }>\n }>\n"],"names":["Scrollbar"],"mappings":"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"}
1
+ {"version":3,"file":"build-grid.mjs","sources":["../../../../../../../packages/components/virtual-list/src/builders/build-grid.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n Fragment,\n computed,\n defineComponent,\n getCurrentInstance,\n h,\n nextTick,\n onMounted,\n ref,\n resolveDynamicComponent,\n unref,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport {\n getScrollBarWidth,\n hasOwn,\n isClient,\n isNumber,\n isString,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Scrollbar from '../components/scrollbar'\nimport { useGridWheel } from '../hooks/use-grid-wheel'\nimport { useCache } from '../hooks/use-cache'\nimport { virtualizedGridProps } from '../props'\nimport { getRTLOffsetType, getScrollDir, isRTL } from '../utils'\nimport {\n AUTO_ALIGNMENT,\n BACKWARD,\n FORWARD,\n ITEM_RENDER_EVT,\n RTL,\n RTL_OFFSET_NAG,\n RTL_OFFSET_POS_ASC,\n RTL_OFFSET_POS_DESC,\n SCROLL_EVT,\n} from '../defaults'\nimport type {\n CSSProperties,\n Ref,\n StyleValue,\n UnwrapRef,\n VNode,\n VNodeChild,\n} from 'vue'\nimport type {\n Alignment,\n GridConstructorProps,\n GridScrollOptions,\n ScrollbarExpose,\n} from '../types'\nimport type { VirtualizedGridProps } from '../props'\n\nconst createGrid = ({\n name,\n clearCache,\n getColumnPosition,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getColumnOffset,\n getRowOffset,\n getRowPosition,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n\n initCache,\n injectToInstance,\n validateProps,\n}: GridConstructorProps<VirtualizedGridProps>) => {\n return defineComponent({\n name: name ?? 'ElVirtualList',\n props: virtualizedGridProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose, slots }) {\n const ns = useNamespace('vl')\n\n validateProps(props)\n const instance = getCurrentInstance()!\n const cache = ref(initCache(props, instance))\n injectToInstance?.(instance, cache)\n // refs\n // here windowRef and innerRef can be type of HTMLElement\n // or user defined component type, depends on the type passed\n // by user\n const windowRef = ref<HTMLElement>()\n const hScrollbar = ref<ScrollbarExpose>()\n const vScrollbar = ref<ScrollbarExpose>()\n // innerRef is the actual container element which contains all the elements\n const innerRef = ref(null)\n const states = ref({\n isScrolling: false,\n scrollLeft: isNumber(props.initScrollLeft) ? props.initScrollLeft : 0,\n scrollTop: isNumber(props.initScrollTop) ? props.initScrollTop : 0,\n updateRequested: false,\n xAxisScrollDir: FORWARD,\n yAxisScrollDir: FORWARD,\n })\n\n const getItemStyleCache = useCache()\n\n // computed\n const parsedHeight = computed(() =>\n Number.parseInt(`${props.height}`, 10)\n )\n const parsedWidth = computed(() => Number.parseInt(`${props.width}`, 10))\n const columnsToRender = computed(() => {\n const { totalColumn, totalRow, columnCache } = props\n const { isScrolling, xAxisScrollDir, scrollLeft } = unref(states)\n\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getColumnStartIndexForOffset(\n props,\n scrollLeft,\n unref(cache)\n )\n const stopIndex = getColumnStopIndexForStartIndex(\n props,\n startIndex,\n scrollLeft,\n unref(cache)\n )\n\n const cacheBackward =\n !isScrolling || xAxisScrollDir === BACKWARD\n ? Math.max(1, columnCache)\n : 1\n const cacheForward =\n !isScrolling || xAxisScrollDir === FORWARD\n ? Math.max(1, columnCache)\n : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalColumn! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const rowsToRender = computed(() => {\n const { totalColumn, totalRow, rowCache } = props\n const { isScrolling, yAxisScrollDir, scrollTop } = unref(states)\n\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getRowStartIndexForOffset(\n props,\n scrollTop,\n unref(cache)\n )\n const stopIndex = getRowStopIndexForStartIndex(\n props,\n startIndex,\n scrollTop,\n unref(cache)\n )\n\n const cacheBackward =\n !isScrolling || yAxisScrollDir === BACKWARD\n ? Math.max(1, rowCache)\n : 1\n const cacheForward =\n !isScrolling || yAxisScrollDir === FORWARD ? Math.max(1, rowCache) : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalRow! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const estimatedTotalHeight = computed(() =>\n getEstimatedTotalHeight(props, unref(cache))\n )\n const estimatedTotalWidth = computed(() =>\n getEstimatedTotalWidth(props, unref(cache))\n )\n\n const windowStyle = computed<StyleValue>(() => [\n {\n position: 'relative',\n overflow: 'hidden',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n },\n {\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width,\n },\n props.style ?? {},\n ])\n\n const innerStyle = computed(() => {\n const width = `${unref(estimatedTotalWidth)}px`\n const height = `${unref(estimatedTotalHeight)}px`\n\n return {\n height,\n pointerEvents: unref(states).isScrolling ? 'none' : undefined,\n width,\n }\n })\n\n // methods\n const emitEvents = () => {\n const { totalColumn, totalRow } = props\n\n if (totalColumn! > 0 && totalRow! > 0) {\n const [\n columnCacheStart,\n columnCacheEnd,\n columnVisibleStart,\n columnVisibleEnd,\n ] = unref(columnsToRender)\n const [rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd] =\n unref(rowsToRender)\n // emit the render item event with\n // [xAxisInvisibleStart, xAxisInvisibleEnd, xAxisVisibleStart, xAxisVisibleEnd]\n // [yAxisInvisibleStart, yAxisInvisibleEnd, yAxisVisibleStart, yAxisVisibleEnd]\n emit(ITEM_RENDER_EVT, {\n columnCacheStart,\n columnCacheEnd,\n rowCacheStart,\n rowCacheEnd,\n columnVisibleStart,\n columnVisibleEnd,\n rowVisibleStart,\n rowVisibleEnd,\n })\n }\n\n const {\n scrollLeft,\n scrollTop,\n updateRequested,\n xAxisScrollDir,\n yAxisScrollDir,\n } = unref(states)\n emit(SCROLL_EVT, {\n xAxisScrollDir,\n scrollLeft,\n yAxisScrollDir,\n scrollTop,\n updateRequested,\n })\n }\n\n const onScroll = (e: Event) => {\n const {\n clientHeight,\n clientWidth,\n scrollHeight,\n scrollLeft,\n scrollTop,\n scrollWidth,\n } = e.currentTarget as HTMLElement\n\n const _states = unref(states)\n\n if (\n _states.scrollTop === scrollTop &&\n _states.scrollLeft === scrollLeft\n ) {\n return\n }\n\n let _scrollLeft = scrollLeft\n\n if (isRTL(props.direction)) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG:\n _scrollLeft = -scrollLeft\n break\n case RTL_OFFSET_POS_DESC:\n _scrollLeft = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollLeft: _scrollLeft,\n scrollTop: Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n ),\n updateRequested: true,\n xAxisScrollDir: getScrollDir(_states.scrollLeft, _scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop),\n }\n\n nextTick(() => resetIsScrolling())\n\n onUpdated()\n emitEvents()\n }\n\n const onVerticalScroll = (distance: number, totalSteps: number) => {\n const height = unref(parsedHeight)\n const offset =\n ((estimatedTotalHeight.value - height) / totalSteps) * distance\n scrollTo({\n scrollTop: Math.min(estimatedTotalHeight.value - height, offset),\n })\n }\n\n const onHorizontalScroll = (distance: number, totalSteps: number) => {\n const width = unref(parsedWidth)\n const offset =\n ((estimatedTotalWidth.value - width) / totalSteps) * distance\n scrollTo({\n scrollLeft: Math.min(estimatedTotalWidth.value - width, offset),\n })\n }\n\n const { onWheel } = useGridWheel(\n {\n atXStartEdge: computed(() => states.value.scrollLeft <= 0),\n atXEndEdge: computed(\n () =>\n states.value.scrollLeft >=\n estimatedTotalWidth.value - unref(parsedWidth)\n ),\n atYStartEdge: computed(() => states.value.scrollTop <= 0),\n atYEndEdge: computed(\n () =>\n states.value.scrollTop >=\n estimatedTotalHeight.value - unref(parsedHeight)\n ),\n },\n (x: number, y: number) => {\n hScrollbar.value?.onMouseUp?.()\n vScrollbar.value?.onMouseUp?.()\n const width = unref(parsedWidth)\n const height = unref(parsedHeight)\n scrollTo({\n scrollLeft: Math.min(\n states.value.scrollLeft + x,\n estimatedTotalWidth.value - width\n ),\n scrollTop: Math.min(\n states.value.scrollTop + y,\n estimatedTotalHeight.value - height\n ),\n })\n }\n )\n\n useEventListener(windowRef, 'wheel', onWheel, {\n passive: false,\n })\n\n const scrollTo = ({\n scrollLeft = states.value.scrollLeft,\n scrollTop = states.value.scrollTop,\n }: GridScrollOptions) => {\n scrollLeft = Math.max(scrollLeft, 0)\n scrollTop = Math.max(scrollTop, 0)\n const _states = unref(states)\n if (\n scrollTop === _states.scrollTop &&\n scrollLeft === _states.scrollLeft\n ) {\n return\n }\n\n states.value = {\n ..._states,\n xAxisScrollDir: getScrollDir(_states.scrollLeft, scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop),\n scrollLeft,\n scrollTop,\n updateRequested: true,\n }\n\n nextTick(() => resetIsScrolling())\n\n onUpdated()\n emitEvents()\n }\n\n const scrollToItem = (\n rowIndex = 0,\n columnIdx = 0,\n alignment: Alignment = AUTO_ALIGNMENT\n ) => {\n const _states = unref(states)\n columnIdx = Math.max(0, Math.min(columnIdx, props.totalColumn! - 1))\n rowIndex = Math.max(0, Math.min(rowIndex, props.totalRow! - 1))\n const scrollBarWidth = getScrollBarWidth(ns.namespace.value)\n\n const _cache = unref(cache)\n const estimatedHeight = getEstimatedTotalHeight(props, _cache)\n const estimatedWidth = getEstimatedTotalWidth(props, _cache)\n\n scrollTo({\n scrollLeft: getColumnOffset(\n props,\n columnIdx,\n alignment,\n _states.scrollLeft,\n _cache,\n estimatedWidth > props.width! ? scrollBarWidth : 0\n ),\n scrollTop: getRowOffset(\n props,\n rowIndex,\n alignment,\n _states.scrollTop,\n _cache,\n estimatedHeight > props.height! ? scrollBarWidth : 0\n ),\n })\n }\n\n const getItemStyle = (\n rowIndex: number,\n columnIndex: number\n ): CSSProperties => {\n const { columnWidth, direction, rowHeight } = props\n const itemStyleCache = getItemStyleCache.value(\n clearCache && columnWidth,\n clearCache && rowHeight,\n clearCache && direction\n )\n // since there was no need to introduce an nested array into cache object\n // we use row,column to construct the key for indexing the map.\n const key = `${rowIndex},${columnIndex}`\n\n if (hasOwn(itemStyleCache, key)) {\n return itemStyleCache[key]\n } else {\n const [, left] = getColumnPosition(props, columnIndex, unref(cache))\n const _cache = unref(cache)\n\n const rtl = isRTL(direction)\n const [height, top] = getRowPosition(props, rowIndex, _cache)\n const [width] = getColumnPosition(props, columnIndex, _cache)\n\n itemStyleCache[key] = {\n position: 'absolute',\n left: rtl ? undefined : `${left}px`,\n right: rtl ? `${left}px` : undefined,\n top: `${top}px`,\n height: `${height}px`,\n width: `${width}px`,\n }\n\n return itemStyleCache[key]\n }\n }\n\n // TODO: debounce setting is scrolling.\n\n const resetIsScrolling = () => {\n // timer = null\n\n states.value.isScrolling = false\n nextTick(() => {\n getItemStyleCache.value(-1, null, null)\n })\n }\n\n // life cycles\n onMounted(() => {\n // for SSR\n if (!isClient) return\n const { initScrollLeft, initScrollTop } = props\n const windowElement = unref(windowRef)\n if (windowElement) {\n if (isNumber(initScrollLeft)) {\n windowElement.scrollLeft = initScrollLeft\n }\n if (isNumber(initScrollTop)) {\n windowElement.scrollTop = initScrollTop\n }\n }\n emitEvents()\n })\n\n const onUpdated = () => {\n const { direction } = props\n const { scrollLeft, scrollTop, updateRequested } = unref(states)\n\n const windowElement = unref(windowRef)\n if (updateRequested && windowElement) {\n if (direction === RTL) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n windowElement.scrollLeft = -scrollLeft\n break\n }\n case RTL_OFFSET_POS_ASC: {\n windowElement.scrollLeft = scrollLeft\n break\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement\n windowElement.scrollLeft =\n scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n } else {\n windowElement.scrollLeft = Math.max(0, scrollLeft)\n }\n\n windowElement.scrollTop = Math.max(0, scrollTop)\n }\n }\n\n const { resetAfterColumnIndex, resetAfterRowIndex, resetAfter } =\n instance.proxy as any\n\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n states,\n resetAfterColumnIndex,\n resetAfterRowIndex,\n resetAfter,\n })\n\n // rendering part\n\n const renderScrollbars = () => {\n const {\n scrollbarAlwaysOn,\n scrollbarStartGap,\n scrollbarEndGap,\n totalColumn,\n totalRow,\n } = props\n\n const width = unref(parsedWidth)\n const height = unref(parsedHeight)\n const estimatedWidth = unref(estimatedTotalWidth)\n const estimatedHeight = unref(estimatedTotalHeight)\n const { scrollLeft, scrollTop } = unref(states)\n const horizontalScrollbar = h(Scrollbar, {\n ref: hScrollbar,\n alwaysOn: scrollbarAlwaysOn,\n startGap: scrollbarStartGap,\n endGap: scrollbarEndGap,\n class: ns.e('horizontal'),\n clientSize: width,\n layout: 'horizontal',\n onScroll: onHorizontalScroll,\n ratio: (width * 100) / estimatedWidth,\n scrollFrom: scrollLeft / (estimatedWidth - width),\n total: totalRow,\n visible: true,\n })\n\n const verticalScrollbar = h(Scrollbar, {\n ref: vScrollbar,\n alwaysOn: scrollbarAlwaysOn,\n startGap: scrollbarStartGap,\n endGap: scrollbarEndGap,\n class: ns.e('vertical'),\n clientSize: height,\n layout: 'vertical',\n onScroll: onVerticalScroll,\n ratio: (height * 100) / estimatedHeight,\n scrollFrom: scrollTop / (estimatedHeight - height),\n\n total: totalColumn,\n visible: true,\n })\n\n return {\n horizontalScrollbar,\n verticalScrollbar,\n }\n }\n\n const renderItems = () => {\n const [columnStart, columnEnd] = unref(columnsToRender)\n const [rowStart, rowEnd] = unref(rowsToRender)\n const { data, totalColumn, totalRow, useIsScrolling, itemKey } = props\n const children: VNodeChild[] = []\n if (totalRow > 0 && totalColumn > 0) {\n for (let row = rowStart; row <= rowEnd; row++) {\n for (let column = columnStart; column <= columnEnd; column++) {\n const key = itemKey({ columnIndex: column, data, rowIndex: row })\n children.push(\n h(\n Fragment,\n { key },\n slots.default?.({\n columnIndex: column,\n data,\n isScrolling: useIsScrolling\n ? unref(states).isScrolling\n : undefined,\n style: getItemStyle(row, column),\n rowIndex: row,\n })\n )\n )\n }\n }\n }\n return children\n }\n\n const renderInner = () => {\n const Inner = resolveDynamicComponent(props.innerElement) as VNode\n const children = renderItems()\n return [\n h(\n Inner,\n {\n style: unref(innerStyle),\n ref: innerRef,\n },\n !isString(Inner)\n ? {\n default: () => children,\n }\n : children\n ),\n ]\n }\n\n const renderWindow = () => {\n const Container = resolveDynamicComponent(\n props.containerElement\n ) as VNode\n const { horizontalScrollbar, verticalScrollbar } = renderScrollbars()\n const Inner = renderInner()\n\n return h(\n 'div',\n {\n key: 0,\n class: ns.e('wrapper'),\n role: props.role,\n },\n [\n h(\n Container,\n {\n class: props.className,\n style: unref(windowStyle),\n onScroll,\n ref: windowRef,\n },\n !isString(Container) ? { default: () => Inner } : Inner\n ),\n horizontalScrollbar,\n verticalScrollbar,\n ]\n )\n }\n\n return renderWindow\n },\n })\n}\n\nexport default createGrid\n\ntype Dir = typeof FORWARD | typeof BACKWARD\n\nexport type GridInstance = InstanceType<ReturnType<typeof createGrid>> &\n UnwrapRef<{\n windowRef: Ref<HTMLElement>\n innerRef: Ref<HTMLElement>\n getItemStyleCache: ReturnType<typeof useCache>\n scrollTo: (scrollOptions: GridScrollOptions) => void\n scrollToItem: (\n rowIndex: number,\n columnIndex: number,\n alignment: Alignment\n ) => void\n states: Ref<{\n isScrolling: boolean\n scrollLeft: number\n scrollTop: number\n updateRequested: boolean\n xAxisScrollDir: Dir\n yAxisScrollDir: Dir\n }>\n }>\n"],"names":["Scrollbar"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, getCurrentInstance, ref, computed, unref, nextTick, onMounted, onUpdated, onActivated, resolveDynamicComponent, h } from 'vue';
1
+ import { defineComponent, getCurrentInstance, ref, computed, unref, nextTick, onMounted, onUpdated, onActivated, resolveDynamicComponent, h, Fragment } from 'vue';
2
2
  import { useEventListener, isClient } from '@vueuse/core';
3
3
  import '../../../../utils/index.mjs';
4
4
  import '../../../../hooks/index.mjs';
@@ -321,13 +321,12 @@ const createList = ({
321
321
  const children = [];
322
322
  if (total > 0) {
323
323
  for (let i = start; i <= end; i++) {
324
- children.push((_a = $slots.default) == null ? void 0 : _a.call($slots, {
324
+ children.push(h(Fragment, { key: i }, (_a = $slots.default) == null ? void 0 : _a.call($slots, {
325
325
  data,
326
- key: i,
327
326
  index: i,
328
327
  isScrolling: useIsScrolling ? states.isScrolling : void 0,
329
328
  style: getItemStyle(i)
330
- }));
329
+ })));
331
330
  }
332
331
  }
333
332
  const InnerNode = [
@@ -1 +1 @@
1
- {"version":3,"file":"build-list.mjs","sources":["../../../../../../../packages/components/virtual-list/src/builders/build-list.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n h,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n ref,\n resolveDynamicComponent,\n unref,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { hasOwn, isClient, isNumber, isString } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useCache } from '../hooks/use-cache'\nimport useWheel from '../hooks/use-wheel'\nimport Scrollbar from '../components/scrollbar'\nimport { getRTLOffsetType, getScrollDir, isHorizontal } from '../utils'\nimport { virtualizedListProps } from '../props'\nimport {\n AUTO_ALIGNMENT,\n BACKWARD,\n FORWARD,\n HORIZONTAL,\n ITEM_RENDER_EVT,\n RTL,\n RTL_OFFSET_NAG,\n RTL_OFFSET_POS_ASC,\n RTL_OFFSET_POS_DESC,\n SCROLL_EVT,\n} from '../defaults'\n\nimport type { CSSProperties, Slot, VNode, VNodeChild } from 'vue'\nimport type { Alignment, ListConstructorProps } from '../types'\nimport type { VirtualizedListProps } from '../props'\n\nconst createList = ({\n name,\n getOffset,\n getItemSize,\n getItemOffset,\n getEstimatedTotalSize,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initCache,\n clearCache,\n validateProps,\n}: ListConstructorProps<VirtualizedListProps>) => {\n return defineComponent({\n name: name ?? 'ElVirtualList',\n props: virtualizedListProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose }) {\n validateProps(props)\n const instance = getCurrentInstance()!\n\n const ns = useNamespace('vl')\n\n const dynamicSizeCache = ref(initCache(props, instance))\n\n const getItemStyleCache = useCache()\n // refs\n // here windowRef and innerRef can be type of HTMLElement\n // or user defined component type, depends on the type passed\n // by user\n const windowRef = ref<HTMLElement>()\n const innerRef = ref<HTMLElement>()\n const scrollbarRef = ref()\n const states = ref({\n isScrolling: false,\n scrollDir: 'forward',\n scrollOffset: isNumber(props.initScrollOffset)\n ? props.initScrollOffset\n : 0,\n updateRequested: false,\n isScrollbarDragging: false,\n scrollbarAlwaysOn: props.scrollbarAlwaysOn,\n })\n\n // computed\n const itemsToRender = computed(() => {\n const { total, cache } = props\n const { isScrolling, scrollDir, scrollOffset } = unref(states)\n\n if (total === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getStartIndexForOffset(\n props,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n const stopIndex = getStopIndexForStartIndex(\n props,\n startIndex,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n\n const cacheBackward =\n !isScrolling || scrollDir === BACKWARD ? Math.max(1, cache) : 1\n const cacheForward =\n !isScrolling || scrollDir === FORWARD ? Math.max(1, cache) : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(total! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const estimatedTotalSize = computed(() =>\n getEstimatedTotalSize(props, unref(dynamicSizeCache))\n )\n\n const _isHorizontal = computed(() => isHorizontal(props.layout))\n\n const windowStyle = computed(() => [\n {\n position: 'relative',\n [`overflow-${_isHorizontal.value ? 'x' : 'y'}`]: 'scroll',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n },\n {\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width,\n },\n props.style,\n ])\n\n const innerStyle = computed(() => {\n const size = unref(estimatedTotalSize)\n const horizontal = unref(_isHorizontal)\n return {\n height: horizontal ? '100%' : `${size}px`,\n pointerEvents: unref(states).isScrolling ? 'none' : undefined,\n width: horizontal ? `${size}px` : '100%',\n }\n })\n\n const clientSize = computed(() =>\n _isHorizontal.value ? props.width : props.height\n )\n\n // methods\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => states.value.scrollOffset <= 0),\n atEndEdge: computed(\n () => states.value.scrollOffset >= estimatedTotalSize.value\n ),\n layout: computed(() => props.layout),\n },\n (offset) => {\n ;(\n scrollbarRef.value as any as {\n onMouseUp: () => void\n }\n ).onMouseUp?.()\n scrollTo(\n Math.min(\n states.value.scrollOffset + offset,\n estimatedTotalSize.value - (clientSize.value as number)\n )\n )\n }\n )\n\n useEventListener(windowRef, 'wheel', onWheel, {\n passive: false,\n })\n\n const emitEvents = () => {\n const { total } = props\n\n if (total! > 0) {\n const [cacheStart, cacheEnd, visibleStart, visibleEnd] =\n unref(itemsToRender)\n emit(ITEM_RENDER_EVT, cacheStart, cacheEnd, visibleStart, visibleEnd)\n }\n\n const { scrollDir, scrollOffset, updateRequested } = unref(states)\n emit(SCROLL_EVT, scrollDir, scrollOffset, updateRequested)\n }\n\n const scrollVertically = (e: Event) => {\n const { clientHeight, scrollHeight, scrollTop } =\n e.currentTarget as HTMLElement\n const _states = unref(states)\n if (_states.scrollOffset === scrollTop) {\n return\n }\n\n const scrollOffset = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n )\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const scrollHorizontally = (e: Event) => {\n const { clientWidth, scrollLeft, scrollWidth } =\n e.currentTarget as HTMLElement\n const _states = unref(states)\n\n if (_states.scrollOffset === scrollLeft) {\n return\n }\n\n const { direction } = props\n\n let scrollOffset = scrollLeft\n\n if (direction === RTL) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n scrollOffset = -scrollLeft\n break\n }\n case RTL_OFFSET_POS_DESC: {\n scrollOffset = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n }\n\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n )\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const onScroll = (e: Event) => {\n unref(_isHorizontal) ? scrollHorizontally(e) : scrollVertically(e)\n emitEvents()\n }\n\n const onScrollbarScroll = (distanceToGo: number, totalSteps: number) => {\n const offset =\n ((estimatedTotalSize.value - (clientSize.value as number)) /\n totalSteps) *\n distanceToGo\n scrollTo(\n Math.min(\n estimatedTotalSize.value - (clientSize.value as number),\n offset\n )\n )\n }\n\n const scrollTo = (offset: number) => {\n offset = Math.max(offset, 0)\n\n if (offset === unref(states).scrollOffset) {\n return\n }\n\n states.value = {\n ...unref(states),\n scrollOffset: offset,\n scrollDir: getScrollDir(unref(states).scrollOffset, offset),\n updateRequested: true,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const scrollToItem = (\n idx: number,\n alignment: Alignment = AUTO_ALIGNMENT\n ) => {\n const { scrollOffset } = unref(states)\n\n idx = Math.max(0, Math.min(idx, props.total! - 1))\n scrollTo(\n getOffset(\n props,\n idx,\n alignment,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n )\n }\n\n const getItemStyle = (idx: number) => {\n const { direction, itemSize, layout } = props\n\n const itemStyleCache = getItemStyleCache.value(\n clearCache && itemSize,\n clearCache && layout,\n clearCache && direction\n )\n\n let style: CSSProperties\n if (hasOwn(itemStyleCache, String(idx))) {\n style = itemStyleCache[idx]\n } else {\n const offset = getItemOffset(props, idx, unref(dynamicSizeCache))\n const size = getItemSize(props, idx, unref(dynamicSizeCache))\n const horizontal = unref(_isHorizontal)\n\n const isRtl = direction === RTL\n const offsetHorizontal = horizontal ? offset : 0\n itemStyleCache[idx] = style = {\n position: 'absolute',\n left: isRtl ? undefined : `${offsetHorizontal}px`,\n right: isRtl ? `${offsetHorizontal}px` : undefined,\n top: !horizontal ? `${offset}px` : 0,\n height: !horizontal ? `${size}px` : '100%',\n width: horizontal ? `${size}px` : '100%',\n }\n }\n\n return style\n }\n\n // TODO:\n // perf optimization here, reset isScrolling with debounce.\n\n const resetIsScrolling = () => {\n // timer = null\n\n states.value.isScrolling = false\n nextTick(() => {\n getItemStyleCache.value(-1, null, null)\n })\n }\n\n const resetScrollTop = () => {\n const window = windowRef.value\n if (window) {\n window.scrollTop = 0\n }\n }\n\n // life cycles\n onMounted(() => {\n if (!isClient) return\n const { initScrollOffset } = props\n const windowElement = unref(windowRef)\n if (isNumber(initScrollOffset) && windowElement) {\n if (unref(_isHorizontal)) {\n windowElement.scrollLeft = initScrollOffset\n } else {\n windowElement.scrollTop = initScrollOffset\n }\n }\n\n emitEvents()\n })\n\n onUpdated(() => {\n const { direction, layout } = props\n const { scrollOffset, updateRequested } = unref(states)\n const windowElement = unref(windowRef)\n\n if (updateRequested && windowElement) {\n if (layout === HORIZONTAL) {\n if (direction === RTL) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n windowElement.scrollLeft = -scrollOffset\n break\n }\n case RTL_OFFSET_POS_ASC: {\n windowElement.scrollLeft = scrollOffset\n break\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement\n windowElement.scrollLeft =\n scrollWidth - clientWidth - scrollOffset\n break\n }\n }\n } else {\n windowElement.scrollLeft = scrollOffset\n }\n } else {\n windowElement.scrollTop = scrollOffset\n }\n }\n })\n\n onActivated(() => {\n unref(windowRef).scrollTop = unref(states).scrollOffset\n })\n\n const api = {\n ns,\n clientSize,\n estimatedTotalSize,\n windowStyle,\n windowRef,\n innerRef,\n innerStyle,\n itemsToRender,\n scrollbarRef,\n states,\n getItemStyle,\n onScroll,\n onScrollbarScroll,\n onWheel,\n scrollTo,\n scrollToItem,\n resetScrollTop,\n }\n\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n resetScrollTop,\n states,\n })\n\n return api\n },\n\n render(ctx: any) {\n const {\n $slots,\n className,\n clientSize,\n containerElement,\n data,\n getItemStyle,\n innerElement,\n itemsToRender,\n innerStyle,\n layout,\n total,\n onScroll,\n onScrollbarScroll,\n states,\n useIsScrolling,\n windowStyle,\n ns,\n } = ctx\n\n const [start, end] = itemsToRender\n\n const Container = resolveDynamicComponent(containerElement)\n const Inner = resolveDynamicComponent(innerElement)\n\n const children = [] as VNodeChild[]\n\n if (total > 0) {\n for (let i = start; i <= end; i++) {\n children.push(\n ($slots.default as Slot)?.({\n data,\n key: i,\n index: i,\n isScrolling: useIsScrolling ? states.isScrolling : undefined,\n style: getItemStyle(i),\n })\n )\n }\n }\n\n const InnerNode = [\n h(\n Inner as VNode,\n {\n style: innerStyle,\n ref: 'innerRef',\n },\n !isString(Inner)\n ? {\n default: () => children,\n }\n : children\n ),\n ]\n\n const scrollbar = h(Scrollbar, {\n ref: 'scrollbarRef',\n clientSize,\n layout,\n onScroll: onScrollbarScroll,\n ratio: (clientSize * 100) / this.estimatedTotalSize,\n scrollFrom:\n states.scrollOffset / (this.estimatedTotalSize - clientSize),\n total,\n })\n\n const listContainer = h(\n Container as VNode,\n {\n class: [ns.e('window'), className],\n style: windowStyle,\n onScroll,\n ref: 'windowRef',\n key: 0,\n },\n !isString(Container) ? { default: () => [InnerNode] } : [InnerNode]\n )\n\n return h(\n 'div',\n {\n key: 0,\n class: [ns.e('wrapper'), states.scrollbarAlwaysOn ? 'always-on' : ''],\n },\n [listContainer, scrollbar]\n )\n },\n })\n}\n\nexport default createList\n"],"names":["Scrollbar"],"mappings":"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"}
1
+ {"version":3,"file":"build-list.mjs","sources":["../../../../../../../packages/components/virtual-list/src/builders/build-list.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n Fragment,\n computed,\n defineComponent,\n getCurrentInstance,\n h,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n ref,\n resolveDynamicComponent,\n unref,\n} from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { hasOwn, isClient, isNumber, isString } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useCache } from '../hooks/use-cache'\nimport useWheel from '../hooks/use-wheel'\nimport Scrollbar from '../components/scrollbar'\nimport { getRTLOffsetType, getScrollDir, isHorizontal } from '../utils'\nimport { virtualizedListProps } from '../props'\nimport {\n AUTO_ALIGNMENT,\n BACKWARD,\n FORWARD,\n HORIZONTAL,\n ITEM_RENDER_EVT,\n RTL,\n RTL_OFFSET_NAG,\n RTL_OFFSET_POS_ASC,\n RTL_OFFSET_POS_DESC,\n SCROLL_EVT,\n} from '../defaults'\n\nimport type { CSSProperties, Slot, VNode, VNodeChild } from 'vue'\nimport type { Alignment, ListConstructorProps } from '../types'\nimport type { VirtualizedListProps } from '../props'\n\nconst createList = ({\n name,\n getOffset,\n getItemSize,\n getItemOffset,\n getEstimatedTotalSize,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initCache,\n clearCache,\n validateProps,\n}: ListConstructorProps<VirtualizedListProps>) => {\n return defineComponent({\n name: name ?? 'ElVirtualList',\n props: virtualizedListProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose }) {\n validateProps(props)\n const instance = getCurrentInstance()!\n\n const ns = useNamespace('vl')\n\n const dynamicSizeCache = ref(initCache(props, instance))\n\n const getItemStyleCache = useCache()\n // refs\n // here windowRef and innerRef can be type of HTMLElement\n // or user defined component type, depends on the type passed\n // by user\n const windowRef = ref<HTMLElement>()\n const innerRef = ref<HTMLElement>()\n const scrollbarRef = ref()\n const states = ref({\n isScrolling: false,\n scrollDir: 'forward',\n scrollOffset: isNumber(props.initScrollOffset)\n ? props.initScrollOffset\n : 0,\n updateRequested: false,\n isScrollbarDragging: false,\n scrollbarAlwaysOn: props.scrollbarAlwaysOn,\n })\n\n // computed\n const itemsToRender = computed(() => {\n const { total, cache } = props\n const { isScrolling, scrollDir, scrollOffset } = unref(states)\n\n if (total === 0) {\n return [0, 0, 0, 0]\n }\n\n const startIndex = getStartIndexForOffset(\n props,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n const stopIndex = getStopIndexForStartIndex(\n props,\n startIndex,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n\n const cacheBackward =\n !isScrolling || scrollDir === BACKWARD ? Math.max(1, cache) : 1\n const cacheForward =\n !isScrolling || scrollDir === FORWARD ? Math.max(1, cache) : 1\n\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(total! - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex,\n ]\n })\n\n const estimatedTotalSize = computed(() =>\n getEstimatedTotalSize(props, unref(dynamicSizeCache))\n )\n\n const _isHorizontal = computed(() => isHorizontal(props.layout))\n\n const windowStyle = computed(() => [\n {\n position: 'relative',\n [`overflow-${_isHorizontal.value ? 'x' : 'y'}`]: 'scroll',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n },\n {\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width,\n },\n props.style,\n ])\n\n const innerStyle = computed(() => {\n const size = unref(estimatedTotalSize)\n const horizontal = unref(_isHorizontal)\n return {\n height: horizontal ? '100%' : `${size}px`,\n pointerEvents: unref(states).isScrolling ? 'none' : undefined,\n width: horizontal ? `${size}px` : '100%',\n }\n })\n\n const clientSize = computed(() =>\n _isHorizontal.value ? props.width : props.height\n )\n\n // methods\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => states.value.scrollOffset <= 0),\n atEndEdge: computed(\n () => states.value.scrollOffset >= estimatedTotalSize.value\n ),\n layout: computed(() => props.layout),\n },\n (offset) => {\n ;(\n scrollbarRef.value as any as {\n onMouseUp: () => void\n }\n ).onMouseUp?.()\n scrollTo(\n Math.min(\n states.value.scrollOffset + offset,\n estimatedTotalSize.value - (clientSize.value as number)\n )\n )\n }\n )\n\n useEventListener(windowRef, 'wheel', onWheel, {\n passive: false,\n })\n\n const emitEvents = () => {\n const { total } = props\n\n if (total! > 0) {\n const [cacheStart, cacheEnd, visibleStart, visibleEnd] =\n unref(itemsToRender)\n emit(ITEM_RENDER_EVT, cacheStart, cacheEnd, visibleStart, visibleEnd)\n }\n\n const { scrollDir, scrollOffset, updateRequested } = unref(states)\n emit(SCROLL_EVT, scrollDir, scrollOffset, updateRequested)\n }\n\n const scrollVertically = (e: Event) => {\n const { clientHeight, scrollHeight, scrollTop } =\n e.currentTarget as HTMLElement\n const _states = unref(states)\n if (_states.scrollOffset === scrollTop) {\n return\n }\n\n const scrollOffset = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n )\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const scrollHorizontally = (e: Event) => {\n const { clientWidth, scrollLeft, scrollWidth } =\n e.currentTarget as HTMLElement\n const _states = unref(states)\n\n if (_states.scrollOffset === scrollLeft) {\n return\n }\n\n const { direction } = props\n\n let scrollOffset = scrollLeft\n\n if (direction === RTL) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n scrollOffset = -scrollLeft\n break\n }\n case RTL_OFFSET_POS_DESC: {\n scrollOffset = scrollWidth - clientWidth - scrollLeft\n break\n }\n }\n }\n\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n )\n\n states.value = {\n ..._states,\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const onScroll = (e: Event) => {\n unref(_isHorizontal) ? scrollHorizontally(e) : scrollVertically(e)\n emitEvents()\n }\n\n const onScrollbarScroll = (distanceToGo: number, totalSteps: number) => {\n const offset =\n ((estimatedTotalSize.value - (clientSize.value as number)) /\n totalSteps) *\n distanceToGo\n scrollTo(\n Math.min(\n estimatedTotalSize.value - (clientSize.value as number),\n offset\n )\n )\n }\n\n const scrollTo = (offset: number) => {\n offset = Math.max(offset, 0)\n\n if (offset === unref(states).scrollOffset) {\n return\n }\n\n states.value = {\n ...unref(states),\n scrollOffset: offset,\n scrollDir: getScrollDir(unref(states).scrollOffset, offset),\n updateRequested: true,\n }\n\n nextTick(resetIsScrolling)\n }\n\n const scrollToItem = (\n idx: number,\n alignment: Alignment = AUTO_ALIGNMENT\n ) => {\n const { scrollOffset } = unref(states)\n\n idx = Math.max(0, Math.min(idx, props.total! - 1))\n scrollTo(\n getOffset(\n props,\n idx,\n alignment,\n scrollOffset,\n unref(dynamicSizeCache)\n )\n )\n }\n\n const getItemStyle = (idx: number) => {\n const { direction, itemSize, layout } = props\n\n const itemStyleCache = getItemStyleCache.value(\n clearCache && itemSize,\n clearCache && layout,\n clearCache && direction\n )\n\n let style: CSSProperties\n if (hasOwn(itemStyleCache, String(idx))) {\n style = itemStyleCache[idx]\n } else {\n const offset = getItemOffset(props, idx, unref(dynamicSizeCache))\n const size = getItemSize(props, idx, unref(dynamicSizeCache))\n const horizontal = unref(_isHorizontal)\n\n const isRtl = direction === RTL\n const offsetHorizontal = horizontal ? offset : 0\n itemStyleCache[idx] = style = {\n position: 'absolute',\n left: isRtl ? undefined : `${offsetHorizontal}px`,\n right: isRtl ? `${offsetHorizontal}px` : undefined,\n top: !horizontal ? `${offset}px` : 0,\n height: !horizontal ? `${size}px` : '100%',\n width: horizontal ? `${size}px` : '100%',\n }\n }\n\n return style\n }\n\n // TODO:\n // perf optimization here, reset isScrolling with debounce.\n\n const resetIsScrolling = () => {\n // timer = null\n\n states.value.isScrolling = false\n nextTick(() => {\n getItemStyleCache.value(-1, null, null)\n })\n }\n\n const resetScrollTop = () => {\n const window = windowRef.value\n if (window) {\n window.scrollTop = 0\n }\n }\n\n // life cycles\n onMounted(() => {\n if (!isClient) return\n const { initScrollOffset } = props\n const windowElement = unref(windowRef)\n if (isNumber(initScrollOffset) && windowElement) {\n if (unref(_isHorizontal)) {\n windowElement.scrollLeft = initScrollOffset\n } else {\n windowElement.scrollTop = initScrollOffset\n }\n }\n\n emitEvents()\n })\n\n onUpdated(() => {\n const { direction, layout } = props\n const { scrollOffset, updateRequested } = unref(states)\n const windowElement = unref(windowRef)\n\n if (updateRequested && windowElement) {\n if (layout === HORIZONTAL) {\n if (direction === RTL) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n windowElement.scrollLeft = -scrollOffset\n break\n }\n case RTL_OFFSET_POS_ASC: {\n windowElement.scrollLeft = scrollOffset\n break\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement\n windowElement.scrollLeft =\n scrollWidth - clientWidth - scrollOffset\n break\n }\n }\n } else {\n windowElement.scrollLeft = scrollOffset\n }\n } else {\n windowElement.scrollTop = scrollOffset\n }\n }\n })\n\n onActivated(() => {\n unref(windowRef).scrollTop = unref(states).scrollOffset\n })\n\n const api = {\n ns,\n clientSize,\n estimatedTotalSize,\n windowStyle,\n windowRef,\n innerRef,\n innerStyle,\n itemsToRender,\n scrollbarRef,\n states,\n getItemStyle,\n onScroll,\n onScrollbarScroll,\n onWheel,\n scrollTo,\n scrollToItem,\n resetScrollTop,\n }\n\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n resetScrollTop,\n states,\n })\n\n return api\n },\n\n render(ctx: any) {\n const {\n $slots,\n className,\n clientSize,\n containerElement,\n data,\n getItemStyle,\n innerElement,\n itemsToRender,\n innerStyle,\n layout,\n total,\n onScroll,\n onScrollbarScroll,\n states,\n useIsScrolling,\n windowStyle,\n ns,\n } = ctx\n\n const [start, end] = itemsToRender\n\n const Container = resolveDynamicComponent(containerElement)\n const Inner = resolveDynamicComponent(innerElement)\n\n const children = [] as VNodeChild[]\n\n if (total > 0) {\n for (let i = start; i <= end; i++) {\n children.push(\n h(\n Fragment,\n { key: i },\n ($slots.default as Slot)?.({\n data,\n index: i,\n isScrolling: useIsScrolling ? states.isScrolling : undefined,\n style: getItemStyle(i),\n })\n )\n )\n }\n }\n\n const InnerNode = [\n h(\n Inner as VNode,\n {\n style: innerStyle,\n ref: 'innerRef',\n },\n !isString(Inner)\n ? {\n default: () => children,\n }\n : children\n ),\n ]\n\n const scrollbar = h(Scrollbar, {\n ref: 'scrollbarRef',\n clientSize,\n layout,\n onScroll: onScrollbarScroll,\n ratio: (clientSize * 100) / this.estimatedTotalSize,\n scrollFrom:\n states.scrollOffset / (this.estimatedTotalSize - clientSize),\n total,\n })\n\n const listContainer = h(\n Container as VNode,\n {\n class: [ns.e('window'), className],\n style: windowStyle,\n onScroll,\n ref: 'windowRef',\n key: 0,\n },\n !isString(Container) ? { default: () => [InnerNode] } : [InnerNode]\n )\n\n return h(\n 'div',\n {\n key: 0,\n class: [ns.e('wrapper'), states.scrollbarAlwaysOn ? 'always-on' : ''],\n },\n [listContainer, scrollbar]\n )\n },\n })\n}\n\nexport default createList\n"],"names":["Scrollbar"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import '../../utils/index.mjs';
2
- import Watermark from './src/watermark.mjs';
3
- export { watermarkProps } from './src/watermark2.mjs';
2
+ import Watermark from './src/watermark2.mjs';
3
+ export { watermarkProps } from './src/watermark.mjs';
4
4
  import { withInstall } from '../../utils/vue/install.mjs';
5
5
 
6
6
  const ElWatermark = withInstall(Watermark);
@@ -1,214 +1,33 @@
1
- import { defineComponent, computed, shallowRef, ref, onMounted, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeStyle, renderSlot } from 'vue';
2
- import { useMutationObserver } from '@vueuse/core';
3
- import { watermarkProps } from './watermark2.mjs';
4
- import { getStyleStr, getPixelRatio, reRendering } from './utils.mjs';
5
- import useClips, { FontGap } from './useClips.mjs';
6
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
7
3
 
8
- const __default__ = defineComponent({
9
- name: "ElWatermark"
10
- });
11
- const _sfc_main = /* @__PURE__ */ defineComponent({
12
- ...__default__,
13
- props: watermarkProps,
14
- setup(__props) {
15
- const props = __props;
16
- const style = {
17
- position: "relative"
18
- };
19
- const color = computed(() => {
20
- var _a, _b;
21
- return (_b = (_a = props.font) == null ? void 0 : _a.color) != null ? _b : "rgba(0,0,0,.15)";
22
- });
23
- const fontSize = computed(() => {
24
- var _a, _b;
25
- return (_b = (_a = props.font) == null ? void 0 : _a.fontSize) != null ? _b : 16;
26
- });
27
- const fontWeight = computed(() => {
28
- var _a, _b;
29
- return (_b = (_a = props.font) == null ? void 0 : _a.fontWeight) != null ? _b : "normal";
30
- });
31
- const fontStyle = computed(() => {
32
- var _a, _b;
33
- return (_b = (_a = props.font) == null ? void 0 : _a.fontStyle) != null ? _b : "normal";
34
- });
35
- const fontFamily = computed(() => {
36
- var _a, _b;
37
- return (_b = (_a = props.font) == null ? void 0 : _a.fontFamily) != null ? _b : "sans-serif";
38
- });
39
- const textAlign = computed(() => {
40
- var _a, _b;
41
- return (_b = (_a = props.font) == null ? void 0 : _a.textAlign) != null ? _b : "center";
42
- });
43
- const textBaseline = computed(() => {
44
- var _a, _b;
45
- return (_b = (_a = props.font) == null ? void 0 : _a.textBaseline) != null ? _b : "hanging";
46
- });
47
- const gapX = computed(() => props.gap[0]);
48
- const gapY = computed(() => props.gap[1]);
49
- const gapXCenter = computed(() => gapX.value / 2);
50
- const gapYCenter = computed(() => gapY.value / 2);
51
- const offsetLeft = computed(() => {
52
- var _a, _b;
53
- return (_b = (_a = props.offset) == null ? void 0 : _a[0]) != null ? _b : gapXCenter.value;
54
- });
55
- const offsetTop = computed(() => {
56
- var _a, _b;
57
- return (_b = (_a = props.offset) == null ? void 0 : _a[1]) != null ? _b : gapYCenter.value;
58
- });
59
- const getMarkStyle = () => {
60
- const markStyle = {
61
- zIndex: props.zIndex,
62
- position: "absolute",
63
- left: 0,
64
- top: 0,
65
- width: "100%",
66
- height: "100%",
67
- pointerEvents: "none",
68
- backgroundRepeat: "repeat"
69
- };
70
- let positionLeft = offsetLeft.value - gapXCenter.value;
71
- let positionTop = offsetTop.value - gapYCenter.value;
72
- if (positionLeft > 0) {
73
- markStyle.left = `${positionLeft}px`;
74
- markStyle.width = `calc(100% - ${positionLeft}px)`;
75
- positionLeft = 0;
76
- }
77
- if (positionTop > 0) {
78
- markStyle.top = `${positionTop}px`;
79
- markStyle.height = `calc(100% - ${positionTop}px)`;
80
- positionTop = 0;
81
- }
82
- markStyle.backgroundPosition = `${positionLeft}px ${positionTop}px`;
83
- return markStyle;
84
- };
85
- const containerRef = shallowRef(null);
86
- const watermarkRef = shallowRef();
87
- const stopObservation = ref(false);
88
- const destroyWatermark = () => {
89
- if (watermarkRef.value) {
90
- watermarkRef.value.remove();
91
- watermarkRef.value = void 0;
92
- }
93
- };
94
- const appendWatermark = (base64Url, markWidth) => {
95
- var _a;
96
- if (containerRef.value && watermarkRef.value) {
97
- stopObservation.value = true;
98
- watermarkRef.value.setAttribute("style", getStyleStr({
99
- ...getMarkStyle(),
100
- backgroundImage: `url('${base64Url}')`,
101
- backgroundSize: `${Math.floor(markWidth)}px`
102
- }));
103
- (_a = containerRef.value) == null ? void 0 : _a.append(watermarkRef.value);
104
- setTimeout(() => {
105
- stopObservation.value = false;
106
- });
107
- }
108
- };
109
- const getMarkSize = (ctx) => {
110
- let defaultWidth = 120;
111
- let defaultHeight = 64;
112
- const image = props.image;
113
- const content = props.content;
114
- const width = props.width;
115
- const height = props.height;
116
- if (!image && ctx.measureText) {
117
- ctx.font = `${Number(fontSize.value)}px ${fontFamily.value}`;
118
- const contents = Array.isArray(content) ? content : [content];
119
- const sizes = contents.map((item) => {
120
- const metrics = ctx.measureText(item);
121
- return [
122
- metrics.width,
123
- metrics.fontBoundingBoxAscent !== void 0 ? metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent : metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent
124
- ];
125
- });
126
- defaultWidth = Math.ceil(Math.max(...sizes.map((size) => size[0])));
127
- defaultHeight = Math.ceil(Math.max(...sizes.map((size) => size[1]))) * contents.length + (contents.length - 1) * FontGap;
128
- }
129
- return [width != null ? width : defaultWidth, height != null ? height : defaultHeight];
130
- };
131
- const getClips = useClips();
132
- const renderWatermark = () => {
133
- const canvas = document.createElement("canvas");
134
- const ctx = canvas.getContext("2d");
135
- const image = props.image;
136
- const content = props.content;
137
- const rotate = props.rotate;
138
- if (ctx) {
139
- if (!watermarkRef.value) {
140
- watermarkRef.value = document.createElement("div");
141
- }
142
- const ratio = getPixelRatio();
143
- const [markWidth, markHeight] = getMarkSize(ctx);
144
- const drawCanvas = (drawContent) => {
145
- const [textClips, clipWidth] = getClips(drawContent || "", rotate, ratio, markWidth, markHeight, {
146
- color: color.value,
147
- fontSize: fontSize.value,
148
- fontStyle: fontStyle.value,
149
- fontWeight: fontWeight.value,
150
- fontFamily: fontFamily.value,
151
- textAlign: textAlign.value,
152
- textBaseline: textBaseline.value
153
- }, gapX.value, gapY.value);
154
- appendWatermark(textClips, clipWidth);
155
- };
156
- if (image) {
157
- const img = new Image();
158
- img.onload = () => {
159
- drawCanvas(img);
160
- };
161
- img.onerror = () => {
162
- drawCanvas(content);
163
- };
164
- img.crossOrigin = "anonymous";
165
- img.referrerPolicy = "no-referrer";
166
- img.src = image;
167
- } else {
168
- drawCanvas(content);
169
- }
170
- }
171
- };
172
- onMounted(() => {
173
- renderWatermark();
174
- });
175
- watch(() => props, () => {
176
- renderWatermark();
177
- }, {
178
- deep: true,
179
- flush: "post"
180
- });
181
- onBeforeUnmount(() => {
182
- destroyWatermark();
183
- });
184
- const onMutate = (mutations) => {
185
- if (stopObservation.value) {
186
- return;
187
- }
188
- mutations.forEach((mutation) => {
189
- if (reRendering(mutation, watermarkRef.value)) {
190
- destroyWatermark();
191
- renderWatermark();
192
- }
193
- });
194
- };
195
- useMutationObserver(containerRef, onMutate, {
196
- attributes: true,
197
- subtree: true,
198
- childList: true
199
- });
200
- return (_ctx, _cache) => {
201
- return openBlock(), createElementBlock("div", {
202
- ref_key: "containerRef",
203
- ref: containerRef,
204
- style: normalizeStyle([style])
205
- }, [
206
- renderSlot(_ctx.$slots, "default")
207
- ], 4);
208
- };
4
+ const watermarkProps = buildProps({
5
+ zIndex: {
6
+ type: Number,
7
+ default: 9
8
+ },
9
+ rotate: {
10
+ type: Number,
11
+ default: -22
12
+ },
13
+ width: Number,
14
+ height: Number,
15
+ image: String,
16
+ content: {
17
+ type: definePropType([String, Array]),
18
+ default: "Element Plus"
19
+ },
20
+ font: {
21
+ type: definePropType(Object)
22
+ },
23
+ gap: {
24
+ type: definePropType(Array),
25
+ default: () => [100, 100]
26
+ },
27
+ offset: {
28
+ type: definePropType(Array)
209
29
  }
210
30
  });
211
- var Watermark = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "watermark.vue"]]);
212
31
 
213
- export { Watermark as default };
32
+ export { watermarkProps };
214
33
  //# sourceMappingURL=watermark.mjs.map