@touchvue/ui 1.0.0-beta.54 → 1.0.0-beta.55

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 (683) hide show
  1. package/README.md +70 -70
  2. package/es/components/box/index.d.ts +1 -1
  3. package/es/components/breadcrumb/index.d.ts +1 -1
  4. package/es/components/button/index.d.ts +1 -1
  5. package/es/components/button/src/button.d.ts +1 -1
  6. package/es/components/calendar/index.d.ts +1 -1
  7. package/es/components/cascader/index.d.ts +1 -1
  8. package/es/components/center-scroll/index.d.ts +1 -1
  9. package/es/components/checkbox/index.d.ts +1 -1
  10. package/es/components/checkboxes/index.d.ts +1 -1
  11. package/es/components/collapse/index.d.ts +1 -1
  12. package/es/components/datepicker/index.d.ts +1 -1
  13. package/es/components/daterange/index.d.ts +1 -1
  14. package/es/components/dialog/index.d.ts +1 -1
  15. package/es/components/divider/index.d.ts +1 -1
  16. package/es/components/ellipsis/index.d.ts +1 -1
  17. package/es/components/export/index.d.ts +1 -1
  18. package/es/components/export/src/export.vue.d.ts +1 -1
  19. package/es/components/fix/index.d.ts +1 -1
  20. package/es/components/float/index.d.ts +1 -1
  21. package/es/components/form/index.d.ts +1 -1
  22. package/es/components/gap/index.d.ts +1 -1
  23. package/es/components/grid/index.d.ts +1 -1
  24. package/es/components/guider/index.d.ts +1 -1
  25. package/es/components/header/index.d.ts +1 -1
  26. package/es/components/icon/index.d.ts +1 -1
  27. package/es/components/import/index.d.ts +1 -1
  28. package/es/components/index.d.ts +1 -1
  29. package/es/components/input/index.d.ts +1 -1
  30. package/es/components/input/src/input.vue.d.ts +2 -2
  31. package/es/components/msg/index.d.ts +1 -1
  32. package/es/components/padding/index.d.ts +1 -1
  33. package/es/components/page/index.d.ts +1 -1
  34. package/es/components/param/index.d.ts +7 -7
  35. package/es/components/param/src/Param.vue.d.ts +3 -3
  36. package/es/components/pic/index.d.ts +1 -1
  37. package/es/components/progress/index.d.ts +1 -1
  38. package/es/components/range/index.d.ts +1 -1
  39. package/es/components/rate/index.d.ts +1 -1
  40. package/es/components/rate/src/rate.vue.d.ts +46 -10
  41. package/es/components/scroll/index.d.ts +2 -2
  42. package/es/components/segment/index.d.ts +1 -1
  43. package/es/components/select/index.d.ts +1 -1
  44. package/es/components/select/src/select.d.ts +18 -0
  45. package/es/components/select/src/select.vue.d.ts +18 -0
  46. package/es/components/slide/index.d.ts +1 -1
  47. package/es/components/step/index.d.ts +1 -1
  48. package/es/components/switch/index.d.ts +1 -1
  49. package/es/components/tab/index.d.ts +1 -1
  50. package/es/components/table/index.d.ts +1 -1
  51. package/es/components/tag/index.d.ts +1 -1
  52. package/es/components/text/index.d.ts +1 -1
  53. package/es/components/timeline/src/timeline.vue.d.ts +4 -4
  54. package/es/components/tip/index.d.ts +1 -1
  55. package/es/components/tip/src/tip.vue.d.ts +2 -2
  56. package/es/components/tooltip/index.d.ts +1 -1
  57. package/es/components/transfer/index.d.ts +1 -1
  58. package/es/components/tree/index.d.ts +1 -1
  59. package/es/components/upload/index.d.ts +1 -1
  60. package/es/index.d.mjs.map +1 -1
  61. package/es/index.mjs +2 -1
  62. package/es/index.mjs.map +1 -1
  63. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs +2425 -0
  64. package/es/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  65. package/es/packages/components/box/index.mjs.map +1 -1
  66. package/es/packages/components/box/src/box.mjs.map +1 -1
  67. package/es/packages/components/box/src/box.vue2.mjs +1 -1
  68. package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
  69. package/es/packages/components/breadcrumb/index.mjs.map +1 -1
  70. package/es/packages/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
  71. package/es/packages/components/breadcrumb/src/breadcrumb-item.vue.mjs.map +1 -1
  72. package/es/packages/components/breadcrumb/src/breadcrumb-item.vue2.mjs.map +1 -1
  73. package/es/packages/components/breadcrumb/src/breadcrumb.mjs.map +1 -1
  74. package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
  75. package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
  76. package/es/packages/components/button/index.d.mjs.map +1 -1
  77. package/es/packages/components/button/index.mjs.map +1 -1
  78. package/es/packages/components/button/src/button.mjs.map +1 -1
  79. package/es/packages/components/button/src/button.vue2.mjs +9 -9
  80. package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
  81. package/es/packages/components/calendar/index.mjs.map +1 -1
  82. package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
  83. package/es/packages/components/calendar/src/calendar.vue2.mjs +1 -1
  84. package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
  85. package/es/packages/components/cascader/index.mjs.map +1 -1
  86. package/es/packages/components/cascader/src/cascader-item.vue2.mjs +1 -1
  87. package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
  88. package/es/packages/components/cascader/src/cascader.vue2.mjs +3 -3
  89. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  90. package/es/packages/components/center-scroll/index.d.mjs.map +1 -1
  91. package/es/packages/components/center-scroll/index.mjs.map +1 -1
  92. package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
  93. package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
  94. package/es/packages/components/checkbox/index.mjs.map +1 -1
  95. package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +2 -2
  96. package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
  97. package/es/packages/components/checkboxes/index.mjs.map +1 -1
  98. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +2 -2
  99. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
  100. package/es/packages/components/collapse/index.mjs.map +1 -1
  101. package/es/packages/components/collapse/src/collapse-item.vue2.mjs +3 -3
  102. package/es/packages/components/collapse/src/collapse-item.vue2.mjs.map +1 -1
  103. package/es/packages/components/collapse/src/collapse.vue2.mjs +1 -1
  104. package/es/packages/components/collapse/src/collapse.vue2.mjs.map +1 -1
  105. package/es/packages/components/datepicker/index.mjs.map +1 -1
  106. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
  107. package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
  108. package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
  109. package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
  110. package/es/packages/components/daterange/index.mjs.map +1 -1
  111. package/es/packages/components/daterange/src/date-range.vue2.mjs +12 -12
  112. package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
  113. package/es/packages/components/dialog/index.d.mjs.map +1 -1
  114. package/es/packages/components/dialog/index.mjs.map +1 -1
  115. package/es/packages/components/dialog/src/Dialog.vue2.mjs.map +1 -1
  116. package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
  117. package/es/packages/components/divider/index.mjs.map +1 -1
  118. package/es/packages/components/divider/src/divider.vue2.mjs +1 -1
  119. package/es/packages/components/divider/src/divider.vue2.mjs.map +1 -1
  120. package/es/packages/components/ellipsis/index.d.mjs.map +1 -1
  121. package/es/packages/components/ellipsis/index.mjs.map +1 -1
  122. package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs.map +1 -1
  123. package/es/packages/components/ellipsis/src/ellipsis.mjs.map +1 -1
  124. package/es/packages/components/export/index.mjs.map +1 -1
  125. package/es/packages/components/export/src/export.vue2.mjs +1 -1
  126. package/es/packages/components/export/src/export.vue2.mjs.map +1 -1
  127. package/es/packages/components/fix/index.d.mjs.map +1 -1
  128. package/es/packages/components/fix/index.mjs.map +1 -1
  129. package/es/packages/components/fix/src/Fix.vue2.mjs.map +1 -1
  130. package/es/packages/components/fix/src/fix.mjs.map +1 -1
  131. package/es/packages/components/float/index.d.mjs.map +1 -1
  132. package/es/packages/components/float/index.mjs.map +1 -1
  133. package/es/packages/components/float/src/Float.vue2.mjs +4 -4
  134. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  135. package/es/packages/components/float/src/float.mjs.map +1 -1
  136. package/es/packages/components/form/index.mjs.map +1 -1
  137. package/es/packages/components/form/src/form-item.vue2.mjs.map +1 -1
  138. package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
  139. package/es/packages/components/gap/index.mjs.map +1 -1
  140. package/es/packages/components/gap/src/gap.vue2.mjs.map +1 -1
  141. package/es/packages/components/grid/index.d.mjs.map +1 -1
  142. package/es/packages/components/grid/index.mjs.map +1 -1
  143. package/es/packages/components/grid/src/grid-item.vue2.mjs +1 -1
  144. package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
  145. package/es/packages/components/grid/src/grid.vue2.mjs +1 -1
  146. package/es/packages/components/grid/src/grid.vue2.mjs.map +1 -1
  147. package/es/packages/components/guider/index.d.mjs.map +1 -1
  148. package/es/packages/components/guider/index.mjs.map +1 -1
  149. package/es/packages/components/guider/src/guider.vue2.mjs +1 -1
  150. package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
  151. package/es/packages/components/header/index.mjs.map +1 -1
  152. package/es/packages/components/header/src/header.vue2.mjs +4 -4
  153. package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
  154. package/es/packages/components/icon/index.d.mjs.map +1 -1
  155. package/es/packages/components/icon/index.mjs.map +1 -1
  156. package/es/packages/components/icon/src/icon.vue2.mjs +1 -1
  157. package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
  158. package/es/packages/components/import/index.mjs.map +1 -1
  159. package/es/packages/components/import/src/import.vue2.mjs +2 -2
  160. package/es/packages/components/import/src/import.vue2.mjs.map +1 -1
  161. package/es/packages/components/input/index.mjs.map +1 -1
  162. package/es/packages/components/input/src/input.vue2.mjs +2 -2
  163. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  164. package/es/packages/components/msg/index.d.mjs.map +1 -1
  165. package/es/packages/components/msg/index.mjs.map +1 -1
  166. package/es/packages/components/msg/src/msg.vue2.mjs +15 -15
  167. package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
  168. package/es/packages/components/padding/index.mjs.map +1 -1
  169. package/es/packages/components/padding/src/padding.vue2.mjs +1 -1
  170. package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
  171. package/es/packages/components/page/index.mjs.map +1 -1
  172. package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
  173. package/es/packages/components/param/index.d.mjs.map +1 -1
  174. package/es/packages/components/param/index.mjs.map +1 -1
  175. package/es/packages/components/param/src/Param.vue2.mjs.map +1 -1
  176. package/es/packages/components/param/src/ParamItem.vue.mjs.map +1 -1
  177. package/es/packages/components/param/src/param-item.mjs.map +1 -1
  178. package/es/packages/components/param/src/param.mjs.map +1 -1
  179. package/es/packages/components/pic/index.d.mjs.map +1 -1
  180. package/es/packages/components/pic/index.mjs.map +1 -1
  181. package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
  182. package/es/packages/components/pic/src/PicViewer.vue2.mjs +1 -1
  183. package/es/packages/components/pic/src/PicViewer.vue2.mjs.map +1 -1
  184. package/es/packages/components/pic/src/pic.mjs.map +1 -1
  185. package/es/packages/components/progress/index.d.mjs.map +1 -1
  186. package/es/packages/components/progress/index.mjs.map +1 -1
  187. package/es/packages/components/progress/src/Progress.vue.mjs.map +1 -1
  188. package/es/packages/components/progress/src/Progress.vue2.mjs.map +1 -1
  189. package/es/packages/components/progress/src/progress.mjs.map +1 -1
  190. package/es/packages/components/range/index.mjs.map +1 -1
  191. package/es/packages/components/range/src/range.vue2.mjs +4 -4
  192. package/es/packages/components/range/src/range.vue2.mjs.map +1 -1
  193. package/es/packages/components/rate/index.mjs.map +1 -1
  194. package/es/packages/components/rate/src/rate.vue2.mjs +153 -85
  195. package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
  196. package/es/packages/components/scroll/index.d.mjs.map +1 -1
  197. package/es/packages/components/scroll/index.mjs.map +1 -1
  198. package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
  199. package/es/packages/components/scroll/src/ScrollPoint.vue2.mjs.map +1 -1
  200. package/es/packages/components/scroll/src/scroll-point.mjs.map +1 -1
  201. package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
  202. package/es/packages/components/segment/index.mjs.map +1 -1
  203. package/es/packages/components/segment/src/segment.vue.mjs +2 -2
  204. package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
  205. package/es/packages/components/select/index.mjs.map +1 -1
  206. package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
  207. package/es/packages/components/select/src/hooks/use-select-option-data.mjs.map +1 -1
  208. package/es/packages/components/select/src/select.mjs +18 -0
  209. package/es/packages/components/select/src/select.mjs.map +1 -1
  210. package/es/packages/components/select/src/select.vue2.mjs +262 -87
  211. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  212. package/es/packages/components/slide/index.mjs.map +1 -1
  213. package/es/packages/components/slide/src/slide.vue2.mjs +1 -1
  214. package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
  215. package/es/packages/components/step/index.mjs.map +1 -1
  216. package/es/packages/components/step/src/step.vue2.mjs.map +1 -1
  217. package/es/packages/components/switch/index.mjs.map +1 -1
  218. package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
  219. package/es/packages/components/tab/index.mjs.map +1 -1
  220. package/es/packages/components/tab/src/tab-item.vue2.mjs +1 -1
  221. package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
  222. package/es/packages/components/tab/src/tab.vue2.mjs +7 -7
  223. package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
  224. package/es/packages/components/table/index.mjs.map +1 -1
  225. package/es/packages/components/table/src/table-body.vue2.mjs.map +1 -1
  226. package/es/packages/components/table/src/table-config.vue2.mjs.map +1 -1
  227. package/es/packages/components/table/src/table-head.vue2.mjs +1 -1
  228. package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
  229. package/es/packages/components/table/src/table.vue2.mjs +80 -22
  230. package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
  231. package/es/packages/components/tag/index.d.mjs.map +1 -1
  232. package/es/packages/components/tag/index.mjs.map +1 -1
  233. package/es/packages/components/tag/src/tag.vue2.mjs +4 -4
  234. package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
  235. package/es/packages/components/text/index.mjs.map +1 -1
  236. package/es/packages/components/text/src/text.vue2.mjs +4 -4
  237. package/es/packages/components/text/src/text.vue2.mjs.map +1 -1
  238. package/es/packages/components/timeline/index.d.mjs.map +1 -1
  239. package/es/packages/components/timeline/index.mjs.map +1 -1
  240. package/es/packages/components/timeline/src/timeline.vue.mjs.map +1 -1
  241. package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
  242. package/es/packages/components/tip/index.d.mjs.map +1 -1
  243. package/es/packages/components/tip/index.mjs.map +1 -1
  244. package/es/packages/components/tip/src/tip.mjs.map +1 -1
  245. package/es/packages/components/tip/src/tip.vue2.mjs.map +1 -1
  246. package/es/packages/components/tooltip/index.mjs.map +1 -1
  247. package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
  248. package/es/packages/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
  249. package/es/packages/components/transfer/index.mjs.map +1 -1
  250. package/es/packages/components/transfer/src/transfer.vue2.mjs +9 -9
  251. package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
  252. package/es/packages/components/tree/index.mjs.map +1 -1
  253. package/es/packages/components/tree/src/tree-item.vue2.mjs +27 -27
  254. package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
  255. package/es/packages/components/tree/src/tree.vue2.mjs +4 -4
  256. package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
  257. package/es/packages/components/upload/index.mjs.map +1 -1
  258. package/es/packages/components/upload/src/upload.vue2.mjs +12 -12
  259. package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
  260. package/es/packages/directives/align/index.d.mjs.map +1 -1
  261. package/es/packages/directives/align/index.mjs.map +1 -1
  262. package/es/packages/directives/align/src/align.d.mjs.map +1 -1
  263. package/es/packages/directives/align/src/align.mjs.map +1 -1
  264. package/es/packages/directives/color/index.d.mjs.map +1 -1
  265. package/es/packages/directives/color/index.mjs.map +1 -1
  266. package/es/packages/directives/color/src/color.d.mjs.map +1 -1
  267. package/es/packages/directives/color/src/color.mjs.map +1 -1
  268. package/es/packages/directives/dis/index.d.mjs.map +1 -1
  269. package/es/packages/directives/dis/index.mjs.map +1 -1
  270. package/es/packages/directives/dis/src/dis.d.mjs.map +1 -1
  271. package/es/packages/directives/dis/src/dis.mjs.map +1 -1
  272. package/es/packages/directives/hide/src/hide.mjs.map +1 -1
  273. package/es/packages/directives/index.d.mjs.map +1 -1
  274. package/es/packages/directives/index.mjs.map +1 -1
  275. package/es/packages/directives/loading/index.d.mjs.map +1 -1
  276. package/es/packages/directives/loading/index.mjs.map +1 -1
  277. package/es/packages/directives/loading/src/loading.d.mjs.map +1 -1
  278. package/es/packages/directives/loading/src/loading.mjs.map +1 -1
  279. package/es/packages/directives/press/src/press.mjs.map +1 -1
  280. package/es/packages/directives/size/index.d.mjs.map +1 -1
  281. package/es/packages/directives/size/index.mjs.map +1 -1
  282. package/es/packages/directives/size/src/size.d.mjs.map +1 -1
  283. package/es/packages/directives/size/src/size.mjs.map +1 -1
  284. package/es/packages/directives/tip/index.d.mjs.map +1 -1
  285. package/es/packages/directives/tip/index.mjs.map +1 -1
  286. package/es/packages/directives/tip/src/tip.d.mjs.map +1 -1
  287. package/es/packages/directives/tip/src/tip.mjs +42 -27
  288. package/es/packages/directives/tip/src/tip.mjs.map +1 -1
  289. package/es/packages/hooks/useDevice.mjs.map +1 -1
  290. package/es/packages/hooks/useFormItem.mjs.map +1 -1
  291. package/es/packages/hooks/useSetClass.mjs.map +1 -1
  292. package/es/packages/hooks/useWidthStyle.mjs.map +1 -1
  293. package/es/packages/locale/format.mjs +1 -1
  294. package/es/packages/locale/format.mjs.map +1 -1
  295. package/es/packages/locale/index.d.mjs.map +1 -1
  296. package/es/packages/locale/index.mjs.map +1 -1
  297. package/es/packages/locale/lang/en-US.mjs.map +1 -1
  298. package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
  299. package/es/packages/resolver/resolver.mjs.map +1 -1
  300. package/es/packages/utils/ajax.mjs.map +1 -1
  301. package/es/packages/utils/beforeChange.mjs.map +1 -1
  302. package/es/packages/utils/compare.d.mjs.map +1 -1
  303. package/es/packages/utils/compare.mjs.map +1 -1
  304. package/es/packages/utils/config.mjs.map +1 -1
  305. package/es/packages/utils/date.mjs.map +1 -1
  306. package/es/packages/utils/disabledArea.d.mjs.map +1 -1
  307. package/es/packages/utils/disabledArea.mjs.map +1 -1
  308. package/es/packages/utils/dom.mjs.map +1 -1
  309. package/es/packages/utils/fileAjax.mjs.map +1 -1
  310. package/es/packages/utils/isModified.d.mjs.map +1 -1
  311. package/es/packages/utils/isModified.mjs.map +1 -1
  312. package/es/packages/utils/jsencrypt/JSEncrypt.mjs.map +1 -1
  313. package/es/packages/utils/jsencrypt/JSEncryptRSAKey.mjs.map +1 -1
  314. package/es/packages/utils/jsencrypt/jselib/asn1js/asn1.mjs.map +1 -1
  315. package/es/packages/utils/jsencrypt/jselib/asn1js/base64.mjs.map +1 -1
  316. package/es/packages/utils/jsencrypt/jselib/asn1js/hex.mjs.map +1 -1
  317. package/es/packages/utils/jsencrypt/jselib/asn1js/int10.mjs.map +1 -1
  318. package/es/packages/utils/jsencrypt/jselib/asn1js/oids.mjs.map +1 -1
  319. package/es/packages/utils/jsencrypt/jselib/jsbn/base64.mjs.map +1 -1
  320. package/es/packages/utils/jsencrypt/jselib/jsbn/jsbn.mjs.map +1 -1
  321. package/es/packages/utils/jsencrypt/jselib/jsbn/prng4.mjs.map +1 -1
  322. package/es/packages/utils/jsencrypt/jselib/jsbn/rng.mjs.map +1 -1
  323. package/es/packages/utils/jsencrypt/jselib/jsbn/rsa.mjs.map +1 -1
  324. package/es/packages/utils/jsencrypt/jselib/jsbn/util.mjs.map +1 -1
  325. package/es/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.mjs.map +1 -1
  326. package/es/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.mjs.map +1 -1
  327. package/es/packages/utils/jsencrypt/util.mjs.map +1 -1
  328. package/es/packages/utils/md5.mjs.map +1 -1
  329. package/es/packages/utils/print.mjs +1 -1
  330. package/es/packages/utils/print.mjs.map +1 -1
  331. package/es/packages/utils/ratio.mjs.map +1 -1
  332. package/es/packages/utils/sign.mjs.map +1 -1
  333. package/es/packages/utils/theme.mjs.map +1 -1
  334. package/es/packages/utils/types.mjs.map +1 -1
  335. package/es/packages/utils/util.mjs.map +1 -1
  336. package/es/packages/utils/uuid.mjs.map +1 -1
  337. package/es/packages/utils/validate.mjs.map +1 -1
  338. package/es/ui/index.d.ts +11 -5
  339. package/lib/components/box/index.d.ts +1 -1
  340. package/lib/components/breadcrumb/index.d.ts +1 -1
  341. package/lib/components/button/index.d.ts +1 -1
  342. package/lib/components/button/src/button.d.ts +1 -1
  343. package/lib/components/calendar/index.d.ts +1 -1
  344. package/lib/components/cascader/index.d.ts +1 -1
  345. package/lib/components/center-scroll/index.d.ts +1 -1
  346. package/lib/components/checkbox/index.d.ts +1 -1
  347. package/lib/components/checkboxes/index.d.ts +1 -1
  348. package/lib/components/collapse/index.d.ts +1 -1
  349. package/lib/components/datepicker/index.d.ts +1 -1
  350. package/lib/components/daterange/index.d.ts +1 -1
  351. package/lib/components/dialog/index.d.ts +1 -1
  352. package/lib/components/divider/index.d.ts +1 -1
  353. package/lib/components/ellipsis/index.d.ts +1 -1
  354. package/lib/components/export/index.d.ts +1 -1
  355. package/lib/components/export/src/export.vue.d.ts +1 -1
  356. package/lib/components/fix/index.d.ts +1 -1
  357. package/lib/components/float/index.d.ts +1 -1
  358. package/lib/components/form/index.d.ts +1 -1
  359. package/lib/components/gap/index.d.ts +1 -1
  360. package/lib/components/grid/index.d.ts +1 -1
  361. package/lib/components/guider/index.d.ts +1 -1
  362. package/lib/components/header/index.d.ts +1 -1
  363. package/lib/components/icon/index.d.ts +1 -1
  364. package/lib/components/import/index.d.ts +1 -1
  365. package/lib/components/index.d.ts +1 -1
  366. package/lib/components/input/index.d.ts +1 -1
  367. package/lib/components/input/src/input.vue.d.ts +2 -2
  368. package/lib/components/msg/index.d.ts +1 -1
  369. package/lib/components/padding/index.d.ts +1 -1
  370. package/lib/components/page/index.d.ts +1 -1
  371. package/lib/components/param/index.d.ts +7 -7
  372. package/lib/components/param/src/Param.vue.d.ts +3 -3
  373. package/lib/components/pic/index.d.ts +1 -1
  374. package/lib/components/progress/index.d.ts +1 -1
  375. package/lib/components/range/index.d.ts +1 -1
  376. package/lib/components/rate/index.d.ts +1 -1
  377. package/lib/components/rate/src/rate.vue.d.ts +46 -10
  378. package/lib/components/scroll/index.d.ts +2 -2
  379. package/lib/components/segment/index.d.ts +1 -1
  380. package/lib/components/select/index.d.ts +1 -1
  381. package/lib/components/select/src/select.d.ts +18 -0
  382. package/lib/components/select/src/select.vue.d.ts +18 -0
  383. package/lib/components/slide/index.d.ts +1 -1
  384. package/lib/components/step/index.d.ts +1 -1
  385. package/lib/components/switch/index.d.ts +1 -1
  386. package/lib/components/tab/index.d.ts +1 -1
  387. package/lib/components/table/index.d.ts +1 -1
  388. package/lib/components/tag/index.d.ts +1 -1
  389. package/lib/components/text/index.d.ts +1 -1
  390. package/lib/components/timeline/src/timeline.vue.d.ts +4 -4
  391. package/lib/components/tip/index.d.ts +1 -1
  392. package/lib/components/tip/src/tip.vue.d.ts +2 -2
  393. package/lib/components/tooltip/index.d.ts +1 -1
  394. package/lib/components/transfer/index.d.ts +1 -1
  395. package/lib/components/tree/index.d.ts +1 -1
  396. package/lib/components/upload/index.d.ts +1 -1
  397. package/lib/index.d.js.map +1 -1
  398. package/lib/index.js +2 -1
  399. package/lib/index.js.map +1 -1
  400. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js +2429 -0
  401. package/lib/node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.js.map +1 -0
  402. package/lib/packages/components/box/index.js.map +1 -1
  403. package/lib/packages/components/box/src/box.js.map +1 -1
  404. package/lib/packages/components/box/src/box.vue2.js +1 -1
  405. package/lib/packages/components/box/src/box.vue2.js.map +1 -1
  406. package/lib/packages/components/breadcrumb/index.js.map +1 -1
  407. package/lib/packages/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
  408. package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue.js.map +1 -1
  409. package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue2.js.map +1 -1
  410. package/lib/packages/components/breadcrumb/src/breadcrumb.js.map +1 -1
  411. package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
  412. package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
  413. package/lib/packages/components/button/index.d.js.map +1 -1
  414. package/lib/packages/components/button/index.js.map +1 -1
  415. package/lib/packages/components/button/src/button.js.map +1 -1
  416. package/lib/packages/components/button/src/button.vue2.js +9 -9
  417. package/lib/packages/components/button/src/button.vue2.js.map +1 -1
  418. package/lib/packages/components/calendar/index.js.map +1 -1
  419. package/lib/packages/components/calendar/src/calendar.js.map +1 -1
  420. package/lib/packages/components/calendar/src/calendar.vue2.js +1 -1
  421. package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
  422. package/lib/packages/components/cascader/index.js.map +1 -1
  423. package/lib/packages/components/cascader/src/cascader-item.vue2.js +1 -1
  424. package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
  425. package/lib/packages/components/cascader/src/cascader.vue2.js +3 -3
  426. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  427. package/lib/packages/components/center-scroll/index.d.js.map +1 -1
  428. package/lib/packages/components/center-scroll/index.js.map +1 -1
  429. package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
  430. package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
  431. package/lib/packages/components/checkbox/index.js.map +1 -1
  432. package/lib/packages/components/checkbox/src/Checkbox.vue2.js +2 -2
  433. package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
  434. package/lib/packages/components/checkboxes/index.js.map +1 -1
  435. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +2 -2
  436. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
  437. package/lib/packages/components/collapse/index.js.map +1 -1
  438. package/lib/packages/components/collapse/src/collapse-item.vue2.js +3 -3
  439. package/lib/packages/components/collapse/src/collapse-item.vue2.js.map +1 -1
  440. package/lib/packages/components/collapse/src/collapse.vue2.js +1 -1
  441. package/lib/packages/components/collapse/src/collapse.vue2.js.map +1 -1
  442. package/lib/packages/components/datepicker/index.js.map +1 -1
  443. package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
  444. package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
  445. package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
  446. package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
  447. package/lib/packages/components/daterange/index.js.map +1 -1
  448. package/lib/packages/components/daterange/src/date-range.vue2.js +12 -12
  449. package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
  450. package/lib/packages/components/dialog/index.d.js.map +1 -1
  451. package/lib/packages/components/dialog/index.js.map +1 -1
  452. package/lib/packages/components/dialog/src/Dialog.vue2.js.map +1 -1
  453. package/lib/packages/components/dialog/src/dialog.js.map +1 -1
  454. package/lib/packages/components/divider/index.js.map +1 -1
  455. package/lib/packages/components/divider/src/divider.vue2.js +1 -1
  456. package/lib/packages/components/divider/src/divider.vue2.js.map +1 -1
  457. package/lib/packages/components/ellipsis/index.d.js.map +1 -1
  458. package/lib/packages/components/ellipsis/index.js.map +1 -1
  459. package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js.map +1 -1
  460. package/lib/packages/components/ellipsis/src/ellipsis.js.map +1 -1
  461. package/lib/packages/components/export/index.js.map +1 -1
  462. package/lib/packages/components/export/src/export.vue2.js +1 -1
  463. package/lib/packages/components/export/src/export.vue2.js.map +1 -1
  464. package/lib/packages/components/fix/index.d.js.map +1 -1
  465. package/lib/packages/components/fix/index.js.map +1 -1
  466. package/lib/packages/components/fix/src/Fix.vue2.js.map +1 -1
  467. package/lib/packages/components/fix/src/fix.js.map +1 -1
  468. package/lib/packages/components/float/index.d.js.map +1 -1
  469. package/lib/packages/components/float/index.js.map +1 -1
  470. package/lib/packages/components/float/src/Float.vue2.js +4 -4
  471. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  472. package/lib/packages/components/float/src/float.js.map +1 -1
  473. package/lib/packages/components/form/index.js.map +1 -1
  474. package/lib/packages/components/form/src/form-item.vue2.js.map +1 -1
  475. package/lib/packages/components/form/src/form.vue2.js.map +1 -1
  476. package/lib/packages/components/gap/index.js.map +1 -1
  477. package/lib/packages/components/gap/src/gap.vue2.js.map +1 -1
  478. package/lib/packages/components/grid/index.d.js.map +1 -1
  479. package/lib/packages/components/grid/index.js.map +1 -1
  480. package/lib/packages/components/grid/src/grid-item.vue2.js +1 -1
  481. package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
  482. package/lib/packages/components/grid/src/grid.vue2.js +1 -1
  483. package/lib/packages/components/grid/src/grid.vue2.js.map +1 -1
  484. package/lib/packages/components/guider/index.d.js.map +1 -1
  485. package/lib/packages/components/guider/index.js.map +1 -1
  486. package/lib/packages/components/guider/src/guider.vue2.js +1 -1
  487. package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
  488. package/lib/packages/components/header/index.js.map +1 -1
  489. package/lib/packages/components/header/src/header.vue2.js +4 -4
  490. package/lib/packages/components/header/src/header.vue2.js.map +1 -1
  491. package/lib/packages/components/icon/index.d.js.map +1 -1
  492. package/lib/packages/components/icon/index.js.map +1 -1
  493. package/lib/packages/components/icon/src/icon.vue2.js +1 -1
  494. package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
  495. package/lib/packages/components/import/index.js.map +1 -1
  496. package/lib/packages/components/import/src/import.vue2.js +2 -2
  497. package/lib/packages/components/import/src/import.vue2.js.map +1 -1
  498. package/lib/packages/components/input/index.js.map +1 -1
  499. package/lib/packages/components/input/src/input.vue2.js +2 -2
  500. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  501. package/lib/packages/components/msg/index.d.js.map +1 -1
  502. package/lib/packages/components/msg/index.js.map +1 -1
  503. package/lib/packages/components/msg/src/msg.vue2.js +15 -15
  504. package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
  505. package/lib/packages/components/padding/index.js.map +1 -1
  506. package/lib/packages/components/padding/src/padding.vue2.js +1 -1
  507. package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
  508. package/lib/packages/components/page/index.js.map +1 -1
  509. package/lib/packages/components/page/src/page.vue2.js.map +1 -1
  510. package/lib/packages/components/param/index.d.js.map +1 -1
  511. package/lib/packages/components/param/index.js.map +1 -1
  512. package/lib/packages/components/param/src/Param.vue2.js.map +1 -1
  513. package/lib/packages/components/param/src/ParamItem.vue.js.map +1 -1
  514. package/lib/packages/components/param/src/param-item.js.map +1 -1
  515. package/lib/packages/components/param/src/param.js.map +1 -1
  516. package/lib/packages/components/pic/index.d.js.map +1 -1
  517. package/lib/packages/components/pic/index.js.map +1 -1
  518. package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
  519. package/lib/packages/components/pic/src/PicViewer.vue2.js +1 -1
  520. package/lib/packages/components/pic/src/PicViewer.vue2.js.map +1 -1
  521. package/lib/packages/components/pic/src/pic.js.map +1 -1
  522. package/lib/packages/components/progress/index.d.js.map +1 -1
  523. package/lib/packages/components/progress/index.js.map +1 -1
  524. package/lib/packages/components/progress/src/Progress.vue.js.map +1 -1
  525. package/lib/packages/components/progress/src/Progress.vue2.js.map +1 -1
  526. package/lib/packages/components/progress/src/progress.js.map +1 -1
  527. package/lib/packages/components/range/index.js.map +1 -1
  528. package/lib/packages/components/range/src/range.vue2.js +4 -4
  529. package/lib/packages/components/range/src/range.vue2.js.map +1 -1
  530. package/lib/packages/components/rate/index.js.map +1 -1
  531. package/lib/packages/components/rate/src/rate.vue2.js +152 -84
  532. package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
  533. package/lib/packages/components/scroll/index.d.js.map +1 -1
  534. package/lib/packages/components/scroll/index.js.map +1 -1
  535. package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
  536. package/lib/packages/components/scroll/src/ScrollPoint.vue2.js.map +1 -1
  537. package/lib/packages/components/scroll/src/scroll-point.js.map +1 -1
  538. package/lib/packages/components/scroll/src/scroll.js.map +1 -1
  539. package/lib/packages/components/segment/index.js.map +1 -1
  540. package/lib/packages/components/segment/src/segment.vue.js +2 -2
  541. package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
  542. package/lib/packages/components/select/index.js.map +1 -1
  543. package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
  544. package/lib/packages/components/select/src/hooks/use-select-option-data.js.map +1 -1
  545. package/lib/packages/components/select/src/select.js +18 -0
  546. package/lib/packages/components/select/src/select.js.map +1 -1
  547. package/lib/packages/components/select/src/select.vue2.js +261 -86
  548. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  549. package/lib/packages/components/slide/index.js.map +1 -1
  550. package/lib/packages/components/slide/src/slide.vue2.js +1 -1
  551. package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
  552. package/lib/packages/components/step/index.js.map +1 -1
  553. package/lib/packages/components/step/src/step.vue2.js.map +1 -1
  554. package/lib/packages/components/switch/index.js.map +1 -1
  555. package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
  556. package/lib/packages/components/tab/index.js.map +1 -1
  557. package/lib/packages/components/tab/src/tab-item.vue2.js +1 -1
  558. package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
  559. package/lib/packages/components/tab/src/tab.vue2.js +7 -7
  560. package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
  561. package/lib/packages/components/table/index.js.map +1 -1
  562. package/lib/packages/components/table/src/table-body.vue2.js.map +1 -1
  563. package/lib/packages/components/table/src/table-config.vue2.js.map +1 -1
  564. package/lib/packages/components/table/src/table-head.vue2.js +1 -1
  565. package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
  566. package/lib/packages/components/table/src/table.vue2.js +79 -21
  567. package/lib/packages/components/table/src/table.vue2.js.map +1 -1
  568. package/lib/packages/components/tag/index.d.js.map +1 -1
  569. package/lib/packages/components/tag/index.js.map +1 -1
  570. package/lib/packages/components/tag/src/tag.vue2.js +4 -4
  571. package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
  572. package/lib/packages/components/text/index.js.map +1 -1
  573. package/lib/packages/components/text/src/text.vue2.js +4 -4
  574. package/lib/packages/components/text/src/text.vue2.js.map +1 -1
  575. package/lib/packages/components/timeline/index.d.js.map +1 -1
  576. package/lib/packages/components/timeline/index.js.map +1 -1
  577. package/lib/packages/components/timeline/src/timeline.vue.js.map +1 -1
  578. package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
  579. package/lib/packages/components/tip/index.d.js.map +1 -1
  580. package/lib/packages/components/tip/index.js.map +1 -1
  581. package/lib/packages/components/tip/src/tip.js.map +1 -1
  582. package/lib/packages/components/tip/src/tip.vue2.js.map +1 -1
  583. package/lib/packages/components/tooltip/index.js.map +1 -1
  584. package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
  585. package/lib/packages/components/tooltip/src/tooltip.vue2.js.map +1 -1
  586. package/lib/packages/components/transfer/index.js.map +1 -1
  587. package/lib/packages/components/transfer/src/transfer.vue2.js +9 -9
  588. package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
  589. package/lib/packages/components/tree/index.js.map +1 -1
  590. package/lib/packages/components/tree/src/tree-item.vue2.js +27 -27
  591. package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
  592. package/lib/packages/components/tree/src/tree.vue2.js +4 -4
  593. package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
  594. package/lib/packages/components/upload/index.js.map +1 -1
  595. package/lib/packages/components/upload/src/upload.vue2.js +12 -12
  596. package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
  597. package/lib/packages/directives/align/index.d.js.map +1 -1
  598. package/lib/packages/directives/align/index.js.map +1 -1
  599. package/lib/packages/directives/align/src/align.d.js.map +1 -1
  600. package/lib/packages/directives/align/src/align.js.map +1 -1
  601. package/lib/packages/directives/color/index.d.js.map +1 -1
  602. package/lib/packages/directives/color/index.js.map +1 -1
  603. package/lib/packages/directives/color/src/color.d.js.map +1 -1
  604. package/lib/packages/directives/color/src/color.js.map +1 -1
  605. package/lib/packages/directives/dis/index.d.js.map +1 -1
  606. package/lib/packages/directives/dis/index.js.map +1 -1
  607. package/lib/packages/directives/dis/src/dis.d.js.map +1 -1
  608. package/lib/packages/directives/dis/src/dis.js.map +1 -1
  609. package/lib/packages/directives/hide/src/hide.js.map +1 -1
  610. package/lib/packages/directives/index.d.js.map +1 -1
  611. package/lib/packages/directives/index.js.map +1 -1
  612. package/lib/packages/directives/loading/index.d.js.map +1 -1
  613. package/lib/packages/directives/loading/index.js.map +1 -1
  614. package/lib/packages/directives/loading/src/loading.d.js.map +1 -1
  615. package/lib/packages/directives/loading/src/loading.js.map +1 -1
  616. package/lib/packages/directives/press/src/press.js.map +1 -1
  617. package/lib/packages/directives/size/index.d.js.map +1 -1
  618. package/lib/packages/directives/size/index.js.map +1 -1
  619. package/lib/packages/directives/size/src/size.d.js.map +1 -1
  620. package/lib/packages/directives/size/src/size.js.map +1 -1
  621. package/lib/packages/directives/tip/index.d.js.map +1 -1
  622. package/lib/packages/directives/tip/index.js.map +1 -1
  623. package/lib/packages/directives/tip/src/tip.d.js.map +1 -1
  624. package/lib/packages/directives/tip/src/tip.js +41 -26
  625. package/lib/packages/directives/tip/src/tip.js.map +1 -1
  626. package/lib/packages/hooks/useDevice.js.map +1 -1
  627. package/lib/packages/hooks/useFormItem.js.map +1 -1
  628. package/lib/packages/hooks/useSetClass.js.map +1 -1
  629. package/lib/packages/hooks/useWidthStyle.js.map +1 -1
  630. package/lib/packages/locale/format.js +1 -1
  631. package/lib/packages/locale/format.js.map +1 -1
  632. package/lib/packages/locale/index.d.js.map +1 -1
  633. package/lib/packages/locale/index.js.map +1 -1
  634. package/lib/packages/locale/lang/en-US.js.map +1 -1
  635. package/lib/packages/locale/lang/zh-CN.js.map +1 -1
  636. package/lib/packages/resolver/resolver.js.map +1 -1
  637. package/lib/packages/utils/ajax.js.map +1 -1
  638. package/lib/packages/utils/beforeChange.js.map +1 -1
  639. package/lib/packages/utils/compare.d.js.map +1 -1
  640. package/lib/packages/utils/compare.js.map +1 -1
  641. package/lib/packages/utils/config.js.map +1 -1
  642. package/lib/packages/utils/date.js.map +1 -1
  643. package/lib/packages/utils/disabledArea.d.js.map +1 -1
  644. package/lib/packages/utils/disabledArea.js.map +1 -1
  645. package/lib/packages/utils/dom.js.map +1 -1
  646. package/lib/packages/utils/fileAjax.js.map +1 -1
  647. package/lib/packages/utils/isModified.d.js.map +1 -1
  648. package/lib/packages/utils/isModified.js.map +1 -1
  649. package/lib/packages/utils/jsencrypt/JSEncrypt.js.map +1 -1
  650. package/lib/packages/utils/jsencrypt/JSEncryptRSAKey.js.map +1 -1
  651. package/lib/packages/utils/jsencrypt/jselib/asn1js/asn1.js.map +1 -1
  652. package/lib/packages/utils/jsencrypt/jselib/asn1js/base64.js.map +1 -1
  653. package/lib/packages/utils/jsencrypt/jselib/asn1js/hex.js.map +1 -1
  654. package/lib/packages/utils/jsencrypt/jselib/asn1js/int10.js.map +1 -1
  655. package/lib/packages/utils/jsencrypt/jselib/asn1js/oids.js.map +1 -1
  656. package/lib/packages/utils/jsencrypt/jselib/jsbn/base64.js.map +1 -1
  657. package/lib/packages/utils/jsencrypt/jselib/jsbn/jsbn.js.map +1 -1
  658. package/lib/packages/utils/jsencrypt/jselib/jsbn/prng4.js.map +1 -1
  659. package/lib/packages/utils/jsencrypt/jselib/jsbn/rng.js.map +1 -1
  660. package/lib/packages/utils/jsencrypt/jselib/jsbn/rsa.js.map +1 -1
  661. package/lib/packages/utils/jsencrypt/jselib/jsbn/util.js.map +1 -1
  662. package/lib/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.js.map +1 -1
  663. package/lib/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.js.map +1 -1
  664. package/lib/packages/utils/jsencrypt/util.js.map +1 -1
  665. package/lib/packages/utils/md5.js.map +1 -1
  666. package/lib/packages/utils/print.js +1 -1
  667. package/lib/packages/utils/print.js.map +1 -1
  668. package/lib/packages/utils/ratio.js.map +1 -1
  669. package/lib/packages/utils/sign.js.map +1 -1
  670. package/lib/packages/utils/theme.js.map +1 -1
  671. package/lib/packages/utils/types.js.map +1 -1
  672. package/lib/packages/utils/util.js.map +1 -1
  673. package/lib/packages/utils/uuid.js.map +1 -1
  674. package/lib/packages/utils/validate.js.map +1 -1
  675. package/lib/ui/index.d.ts +11 -5
  676. package/package.json +84 -84
  677. package/theme/components/index.css +230 -155
  678. package/theme/index.css +230 -155
  679. package/theme/skin/default.css +230 -155
  680. package/es/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.mjs +0 -1346
  681. package/es/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
  682. package/lib/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.js +0 -1350
  683. package/lib/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.js.map +0 -1
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
+ var index = require('../../icon/index.js');
6
7
 
7
8
  const __default__ = vue.defineComponent({
8
9
  name: "ToRate"
@@ -18,14 +19,22 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
19
  type: Number,
19
20
  default: 5
20
21
  },
22
+ count: {
23
+ type: Number,
24
+ default: 5
25
+ },
21
26
  size: {
22
27
  type: Number,
23
28
  default: 2
24
29
  },
25
- readonly: Boolean,
26
- allowHalf: {
27
- type: Boolean,
28
- default: false
30
+ disabled: Boolean,
31
+ step: {
32
+ type: [Number, String],
33
+ default: 1
34
+ },
35
+ dot: {
36
+ type: [Number, String],
37
+ default: "auto"
29
38
  },
30
39
  color: {
31
40
  type: String,
@@ -38,117 +47,176 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
47
  clearable: {
39
48
  type: Boolean,
40
49
  default: false
50
+ },
51
+ icon: {
52
+ type: String,
53
+ default: "star"
54
+ },
55
+ mode: {
56
+ type: String,
57
+ default: ""
41
58
  }
42
59
  },
43
60
  emits: ["update:modelValue", "change"],
44
61
  setup(__props, { emit: __emit }) {
45
62
  const props = __props;
46
63
  const emit = __emit;
47
- const ivalue = vue.ref(props.modelValue);
48
- const hoverIndex = vue.ref(0);
49
- const hoverHalf = vue.ref(false);
50
- const isReadonly = vue.computed(() => props.readonly);
51
- const disabled = vue.computed(() => props.readonly);
52
- const displayValue = vue.computed(() => {
53
- if (!isReadonly.value && hoverIndex.value > 0) {
54
- return hoverHalf.value ? hoverIndex.value - 0.5 : hoverIndex.value;
64
+ const ivalue = vue.ref(0);
65
+ const hoverValue = vue.ref(0);
66
+ const normalizedCount = vue.computed(() => Math.max(1, Math.floor(Number(props.count) || 1)));
67
+ const normalizedMax = vue.computed(() => Math.max(0, Number(props.max) || 0));
68
+ const scoreUnit = vue.computed(() => normalizedMax.value / normalizedCount.value);
69
+ const normalizedStep = vue.computed(() => Number(props.step) === 0.5 ? 0.5 : 1);
70
+ const isHalf = vue.computed(() => normalizedStep.value === 0.5);
71
+ const normalizedDot = vue.computed(() => {
72
+ if (props.dot === "auto")
73
+ return isHalf.value ? 1 : 0;
74
+ const dot = Number(props.dot);
75
+ if (!Number.isFinite(dot))
76
+ return 0;
77
+ return Math.max(0, Math.floor(dot));
78
+ });
79
+ const activeValue = vue.computed(() => {
80
+ if (!props.disabled && hoverValue.value > 0) {
81
+ return hoverValue.value;
55
82
  }
56
83
  return ivalue.value;
57
84
  });
58
- const setStyle = vue.computed(() => {
59
- const obj = {};
60
- if (props.size) {
61
- obj["--size"] = props.size + "em";
62
- }
63
- return obj;
85
+ const activeRateValue = vue.computed(() => {
86
+ if (!scoreUnit.value)
87
+ return 0;
88
+ const rateValue = activeValue.value / scoreUnit.value;
89
+ return Math.round(rateValue / normalizedStep.value) * normalizedStep.value;
64
90
  });
91
+ const displayValue = vue.computed(() => activeValue.value.toFixed(normalizedDot.value));
65
92
  vue.watch(
66
- () => props.modelValue,
67
- (val) => {
68
- ivalue.value = val;
93
+ () => [props.modelValue, props.max, props.count, props.step, props.dot],
94
+ () => {
95
+ ivalue.value = normalizeModelValue(props.modelValue);
69
96
  },
70
97
  { immediate: true }
71
98
  );
99
+ function normalizeModelValue(value) {
100
+ const num = Number(value);
101
+ if (!Number.isFinite(num))
102
+ return 0;
103
+ return formatValue(Math.min(Math.max(num, 0), normalizedMax.value));
104
+ }
105
+ function normalizeStepValue(value) {
106
+ const limited = normalizeModelValue(value);
107
+ if (!scoreUnit.value)
108
+ return 0;
109
+ const rateValue = limited / scoreUnit.value;
110
+ const steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value;
111
+ return formatValue(steppedValue * scoreUnit.value);
112
+ }
113
+ function formatValue(value) {
114
+ return Number(value.toFixed(normalizedDot.value));
115
+ }
116
+ function getItemClass(i) {
117
+ const value = activeRateValue.value;
118
+ return {
119
+ "is-on": i <= value,
120
+ "is-half-on": isHalf.value && Math.abs(i - 0.5 - value) < 1e-7,
121
+ "is-hover": !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)
122
+ };
123
+ }
124
+ function getValueByEvent(i, event) {
125
+ if (!isHalf.value)
126
+ return i * scoreUnit.value;
127
+ const rect = event.currentTarget.getBoundingClientRect();
128
+ const x = event.clientX - rect.left;
129
+ return (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value;
130
+ }
131
+ function updateValue(value) {
132
+ const normalizedValue = normalizeStepValue(value);
133
+ ivalue.value = normalizedValue;
134
+ emit("update:modelValue", normalizedValue);
135
+ emit("change", normalizedValue);
136
+ }
72
137
  function handleClick(i, event) {
73
- if (isReadonly.value)
138
+ if (props.disabled)
74
139
  return;
75
- let value = i;
76
- if (props.allowHalf) {
77
- const rect = event.currentTarget.getBoundingClientRect();
78
- const x = event.clientX - rect.left;
79
- value = x < rect.width / 2 ? i - 0.5 : i;
80
- }
140
+ let value = getValueByEvent(i, event);
81
141
  if (props.clearable && ivalue.value === value) {
82
142
  value = 0;
83
143
  }
84
- ivalue.value = value;
85
- emit("update:modelValue", value);
86
- emit("change", value);
144
+ updateValue(value);
87
145
  }
88
- function handleHalfMove(i, event) {
89
- const rect = event.currentTarget.getBoundingClientRect();
90
- const x = event.clientX - rect.left;
91
- hoverIndex.value = i;
92
- hoverHalf.value = x < rect.width / 2;
146
+ function handleMouseMove(i, event) {
147
+ if (props.disabled)
148
+ return;
149
+ hoverValue.value = getValueByEvent(i, event);
150
+ }
151
+ function handleMouseEnter(i) {
152
+ if (props.disabled || isHalf.value)
153
+ return;
154
+ hoverValue.value = i * scoreUnit.value;
93
155
  }
94
156
  function handleMouseLeave() {
95
- if (!isReadonly.value) {
96
- hoverIndex.value = 0;
97
- hoverHalf.value = false;
157
+ if (!props.disabled) {
158
+ hoverValue.value = 0;
98
159
  }
99
160
  }
100
161
  return (_ctx, _cache) => {
101
- const _directive_dis = vue.resolveDirective("dis");
102
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock(
162
+ return vue.openBlock(), vue.createElementBlock(
103
163
  "div",
104
164
  {
105
- class: vue.normalizeClass(["to-rate", [`color-${__props.color}`, { "is-half": __props.allowHalf, "is-readonly": isReadonly.value }]]),
106
- style: vue.normalizeStyle(setStyle.value),
165
+ class: vue.normalizeClass(["to-rate", [
166
+ `color-${__props.color}`,
167
+ `mode-${__props.mode}`,
168
+ {
169
+ "is-half": isHalf.value,
170
+ "is-disabled": __props.disabled
171
+ }
172
+ ]]),
107
173
  onMouseleave: handleMouseLeave
108
174
  },
109
175
  [
110
- (vue.openBlock(true), vue.createElementBlock(
111
- vue.Fragment,
112
- null,
113
- vue.renderList(__props.max, (i) => {
114
- return vue.openBlock(), vue.createElementBlock("div", {
115
- key: i,
116
- class: vue.normalizeClass(["to-rate-item", {
117
- "is-on": i <= ivalue.value,
118
- "is-half-on": __props.allowHalf && i - 0.5 <= ivalue.value && i > ivalue.value,
119
- "is-hover": !isReadonly.value && i <= hoverIndex.value && !hoverHalf.value
120
- }]),
121
- onClick: ($event) => handleClick(i, $event),
122
- onMousemove: ($event) => __props.allowHalf && !isReadonly.value ? handleHalfMove(i, $event) : void 0,
123
- onMouseenter: ($event) => !isReadonly.value ? hoverIndex.value = i : void 0
124
- }, [
125
- vue.createElementVNode("span", { class: "to-rate-item-star" })
126
- ], 42, ["onClick", "onMousemove", "onMouseenter"]);
127
- }),
128
- 128
129
- /* KEYED_FRAGMENT */
130
- )),
131
- __props.showScore ? (vue.openBlock(), vue.createElementBlock(
132
- "div",
133
- {
134
- key: 0,
135
- class: "to-rate-score"
136
- },
137
- vue.toDisplayString(displayValue.value),
138
- 1
139
- /* TEXT */
140
- )) : vue.createCommentVNode("v-if", true)
176
+ vue.createElementVNode("div", { class: "to-rate-group" }, [
177
+ (vue.openBlock(true), vue.createElementBlock(
178
+ vue.Fragment,
179
+ null,
180
+ vue.renderList(normalizedCount.value, (i) => {
181
+ return vue.openBlock(), vue.createElementBlock("div", {
182
+ key: i,
183
+ class: vue.normalizeClass(["to-rate-item", getItemClass(i)]),
184
+ onClick: ($event) => handleClick(i, $event),
185
+ onMousemove: ($event) => handleMouseMove(i, $event),
186
+ onMouseenter: ($event) => handleMouseEnter(i)
187
+ }, [
188
+ vue.createVNode(vue.unref(index.ToIcon), {
189
+ class: "to-rate-icon is-off",
190
+ type: "fill",
191
+ value: __props.icon
192
+ }, null, 8, ["value"]),
193
+ vue.createVNode(vue.unref(index.ToIcon), {
194
+ class: "to-rate-icon is-on",
195
+ type: "fill",
196
+ value: __props.icon
197
+ }, null, 8, ["value"])
198
+ ], 42, ["onClick", "onMousemove", "onMouseenter"]);
199
+ }),
200
+ 128
201
+ /* KEYED_FRAGMENT */
202
+ ))
203
+ ]),
204
+ __props.showScore ? (vue.openBlock(), vue.createElementBlock("div", {
205
+ key: 0,
206
+ class: "to-rate-score"
207
+ }, [
208
+ vue.createElementVNode(
209
+ "span",
210
+ { class: "to-rate-score-text" },
211
+ vue.toDisplayString(displayValue.value),
212
+ 1
213
+ /* TEXT */
214
+ )
215
+ ])) : vue.createCommentVNode("v-if", true)
141
216
  ],
142
- 38
143
- /* CLASS, STYLE, NEED_HYDRATION */
144
- )), [
145
- [
146
- _directive_dis,
147
- disabled.value,
148
- void 0,
149
- { opacity: true }
150
- ]
151
- ]);
217
+ 34
218
+ /* CLASS, NEED_HYDRATION */
219
+ );
152
220
  };
153
221
  }
154
222
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rate.vue2.js","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRate'\n});\n</script>\n<template>\n\t<div v-dis.opacity=\"disabled\" class=\"to-rate\" :class=\"[`color-${color}`, { 'is-half': allowHalf, 'is-readonly': isReadonly }]\" :style=\"setStyle\" @mouseleave=\"handleMouseLeave\">\n\t\t<div\n\t\t\tv-for=\"i in max\"\n\t\t\t:key=\"i\"\n\t\t\tclass=\"to-rate-item\"\n\t\t\t:class=\"{\n\t\t\t\t'is-on': i <= ivalue,\n\t\t\t\t'is-half-on': allowHalf && i - 0.5 <= ivalue && i > ivalue,\n\t\t\t\t'is-hover': !isReadonly && i <= hoverIndex && !hoverHalf\n\t\t\t}\"\n\t\t\t@click=\"handleClick(i, $event)\"\n\t\t\t@mousemove=\"allowHalf && !isReadonly ? handleHalfMove(i, $event) : undefined\"\n\t\t\t@mouseenter=\"!isReadonly ? (hoverIndex = i) : undefined\"\n\t\t>\n\t\t\t<span class=\"to-rate-item-star\"></span>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">{{ displayValue }}</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, ref, watch } from 'vue'\n\n\n\nconst props = defineProps({\n\tmodelValue: {\n\t\ttype: Number,\n\t\tdefault: 0\n\t},\n\tmax: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\treadonly: Boolean,\n\tallowHalf: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'primary'\n\t},\n\tshowScore: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(props.modelValue)\nconst hoverIndex = ref(0)\nconst hoverHalf = ref(false)\n\nconst isReadonly = computed(() => props.readonly)\nconst disabled = computed(() => props.readonly)\n\nconst displayValue = computed(() => {\n\tif (!isReadonly.value && hoverIndex.value > 0) {\n\t\treturn hoverHalf.value ? hoverIndex.value - 0.5 : hoverIndex.value\n\t}\n\treturn ivalue.value\n})\n\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\tif (props.size) {\n\t\tobj['--size'] = props.size + 'em'\n\t}\n\treturn obj\n})\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tivalue.value = val\n\t},\n\t{ immediate: true }\n)\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (isReadonly.value) return\n\tlet value: number = i\n\tif (props.allowHalf) {\n\t\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\t\tconst x = event.clientX - rect.left\n\t\tvalue = x < rect.width / 2 ? i - 0.5 : i\n\t}\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tivalue.value = value\n\temit('update:modelValue', value)\n\temit('change', value)\n}\n\nfunction handleHalfMove(i: number, event: MouseEvent) {\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\thoverIndex.value = i\n\thoverHalf.value = x < rect.width / 2\n}\n\nfunction handleMouseLeave() {\n\tif (!isReadonly.value) {\n\t\thoverIndex.value = 0\n\t\thoverHalf.value = false\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","ref","computed","watch","_createElementBlock","_Fragment","_renderList","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"rate.vue2.js","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToRate'\r\n});\n</script>\n<template>\r\n\t<div\r\n\t\tclass=\"to-rate\"\r\n\t\t:class=\"[\r\n\t\t\t`color-${color}`,\r\n\t\t\t`mode-${mode}`,\r\n\t\t\t{\r\n\t\t\t\t'is-half': isHalf,\r\n\t\t\t\t'is-disabled': disabled\r\n\t\t\t}\r\n\t\t]\"\r\n\t\t@mouseleave=\"handleMouseLeave\"\r\n\t>\r\n\t\t<div class=\"to-rate-group\">\r\n\t\t\t<div v-for=\"i in normalizedCount\" :key=\"i\" class=\"to-rate-item\" :class=\"getItemClass(i)\" @click=\"handleClick(i, $event)\" @mousemove=\"handleMouseMove(i, $event)\" @mouseenter=\"handleMouseEnter(i)\">\r\n\t\t\t\t<to-icon class=\"to-rate-icon is-off\" type=\"fill\" :value=\"icon\" />\r\n\t\t\t\t<to-icon class=\"to-rate-icon is-on\" type=\"fill\" :value=\"icon\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">\r\n\t\t\t<span class=\"to-rate-score-text\">{{ displayValue }}</span>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch } from 'vue'\r\nimport { ToIcon } from '../../icon'\r\n\r\n\r\n\r\nconst props = defineProps({\r\n\tmodelValue: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\tmax: {\r\n\t\ttype: Number,\r\n\t\tdefault: 5\r\n\t},\r\n\tcount: {\r\n\t\ttype: Number,\r\n\t\tdefault: 5\r\n\t},\r\n\tsize: {\r\n\t\ttype: Number,\r\n\t\tdefault: 2\r\n\t},\r\n\tdisabled: Boolean,\r\n\tstep: {\r\n\t\ttype: [Number, String],\r\n\t\tdefault: 1\r\n\t},\r\n\tdot: {\r\n\t\ttype: [Number, String],\r\n\t\tdefault: 'auto'\r\n\t},\r\n\tcolor: {\r\n\t\ttype: String,\r\n\t\tdefault: 'primary'\r\n\t},\r\n\tshowScore: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\tclearable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\ticon: {\r\n\t\ttype: String,\r\n\t\tdefault: 'star'\r\n\t},\r\n\tmode: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t}\r\n})\r\n\r\nconst emit = defineEmits(['update:modelValue', 'change'])\r\n\r\nconst ivalue = ref(0)\r\nconst hoverValue = ref(0)\r\n\r\nconst normalizedCount = computed(() => Math.max(1, Math.floor(Number(props.count) || 1)))\r\nconst normalizedMax = computed(() => Math.max(0, Number(props.max) || 0))\r\nconst scoreUnit = computed(() => normalizedMax.value / normalizedCount.value)\r\nconst normalizedStep = computed(() => (Number(props.step) === 0.5 ? 0.5 : 1))\r\nconst isHalf = computed(() => normalizedStep.value === 0.5)\r\nconst normalizedDot = computed(() => {\r\n\tif (props.dot === 'auto') return isHalf.value ? 1 : 0\r\n\tconst dot = Number(props.dot)\r\n\tif (!Number.isFinite(dot)) return 0\r\n\treturn Math.max(0, Math.floor(dot))\r\n})\r\n\r\nconst activeValue = computed(() => {\r\n\tif (!props.disabled && hoverValue.value > 0) {\r\n\t\treturn hoverValue.value\r\n\t}\r\n\treturn ivalue.value\r\n})\r\n\r\nconst activeRateValue = computed(() => {\r\n\tif (!scoreUnit.value) return 0\r\n\tconst rateValue = activeValue.value / scoreUnit.value\r\n\treturn Math.round(rateValue / normalizedStep.value) * normalizedStep.value\r\n})\r\n\r\nconst displayValue = computed(() => activeValue.value.toFixed(normalizedDot.value))\r\n\r\nwatch(\r\n\t() => [props.modelValue, props.max, props.count, props.step, props.dot] as const,\r\n\t() => {\r\n\t\tivalue.value = normalizeModelValue(props.modelValue)\r\n\t},\r\n\t{ immediate: true }\r\n)\r\n\r\nfunction normalizeModelValue(value: number) {\r\n\tconst num = Number(value)\r\n\tif (!Number.isFinite(num)) return 0\r\n\treturn formatValue(Math.min(Math.max(num, 0), normalizedMax.value))\r\n}\r\n\r\nfunction normalizeStepValue(value: number) {\r\n\tconst limited = normalizeModelValue(value)\r\n\tif (!scoreUnit.value) return 0\r\n\tconst rateValue = limited / scoreUnit.value\r\n\tconst steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value\r\n\treturn formatValue(steppedValue * scoreUnit.value)\r\n}\r\n\r\nfunction formatValue(value: number) {\r\n\treturn Number(value.toFixed(normalizedDot.value))\r\n}\r\n\r\nfunction getItemClass(i: number) {\r\n\tconst value = activeRateValue.value\r\n\treturn {\r\n\t\t'is-on': i <= value,\r\n\t\t'is-half-on': isHalf.value && Math.abs(i - 0.5 - value) < 0.0000001,\r\n\t\t'is-hover': !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)\r\n\t}\r\n}\r\n\r\nfunction getValueByEvent(i: number, event: MouseEvent) {\r\n\tif (!isHalf.value) return i * scoreUnit.value\r\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\r\n\tconst x = event.clientX - rect.left\r\n\treturn (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value\r\n}\r\n\r\nfunction updateValue(value: number) {\r\n\tconst normalizedValue = normalizeStepValue(value)\r\n\tivalue.value = normalizedValue\r\n\temit('update:modelValue', normalizedValue)\r\n\temit('change', normalizedValue)\r\n}\r\n\r\nfunction handleClick(i: number, event: MouseEvent) {\r\n\tif (props.disabled) return\r\n\tlet value = getValueByEvent(i, event)\r\n\tif (props.clearable && ivalue.value === value) {\r\n\t\tvalue = 0\r\n\t}\r\n\tupdateValue(value)\r\n}\r\n\r\nfunction handleMouseMove(i: number, event: MouseEvent) {\r\n\tif (props.disabled) return\r\n\thoverValue.value = getValueByEvent(i, event)\r\n}\r\n\r\nfunction handleMouseEnter(i: number) {\r\n\tif (props.disabled || isHalf.value) return\r\n\thoverValue.value = i * scoreUnit.value\r\n}\r\n\r\nfunction handleMouseLeave() {\r\n\tif (!props.disabled) {\r\n\t\thoverValue.value = 0\r\n\t}\r\n}\r\n</script>\r\n"],"names":["DO_defineComponent","ref","computed","watch","_createElementBlock","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createVNode","_unref","ToIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","sources":["../../../../../packages/components/scroll/index.d.ts"],"sourcesContent":["export declare const ToScroll: any;\nexport declare const ToScrollPoint: any;\nexport default ToScroll;\nexport * from './src/scroll';\n"],"names":[],"mappings":";;;;;;AAEA,iBAAe,QAAA;;;;;"}
1
+ {"version":3,"file":"index.d.js","sources":["../../../../../packages/components/scroll/index.d.ts"],"sourcesContent":["export declare const ToScroll: any;\r\nexport declare const ToScrollPoint: any;\r\nexport default ToScroll;\r\nexport * from './src/scroll';\r\n"],"names":[],"mappings":";;;;;;AAEA,iBAAe,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/scroll/index.ts"],"sourcesContent":["import { withInstall } from '@touchvue/utils'\nimport Scroll from './src/Scroll.vue'\nimport ScrollPoint from './src/ScrollPoint.vue'\n\nexport const ToScroll = withInstall(Scroll)\nexport const ToScrollPoint = withInstall(ScrollPoint)\nexport default ToScroll\n\nexport * from './src/scroll'\n"],"names":["withInstall","Scroll","ScrollPoint"],"mappings":";;;;;;;;;AAIa,MAAA,QAAA,GAAWA,kBAAYC,cAAM,EAAA;AAC7B,MAAA,aAAA,GAAgBD,kBAAYE,mBAAW;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/scroll/index.ts"],"sourcesContent":["import { withInstall } from '@touchvue/utils'\r\nimport Scroll from './src/Scroll.vue'\r\nimport ScrollPoint from './src/ScrollPoint.vue'\r\n\r\nexport const ToScroll = withInstall(Scroll)\r\nexport const ToScrollPoint = withInstall(ScrollPoint)\r\nexport default ToScroll\r\n\r\nexport * from './src/scroll'\r\n"],"names":["withInstall","Scroll","ScrollPoint"],"mappings":";;;;;;;;;AAIa,MAAA,QAAA,GAAWA,kBAAYC,cAAM,EAAA;AAC7B,MAAA,aAAA,GAAgBD,kBAAYE,mBAAW;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Scroll.vue2.js","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 自定义滚动条 -->\n\t\t<div v-if=\"props.virtual\" class=\"to-scroll-bar\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"barThumb\" class=\"to-scroll-thumb\" :style=\"thumbStyle\" @mousedown=\"onThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 横向滚动条 -->\n\t\t<div v-if=\"props.virtual && hasHorizontalScroll\" class=\"to-scroll-bar horizontal\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"horizontalBarThumb\" class=\"to-scroll-thumb\" :style=\"horizontalThumbStyle\" @mousedown=\"onHorizontalThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" :class=\"{ 'virtual-scroll': props.virtual }\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst barThumb = ref<HTMLElement | null>(null)\nconst horizontalBarThumb = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\nconst isHovering = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 添加自动滚动的节流控制\nlet autoScrollThrottleTimer: ReturnType<typeof setTimeout> | null = null\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\nlet isDragging = ref(false)\nlet isHorizontalDragging = ref(false)\nlet startY = 0\nlet startX = 0\nlet startScrollTop = 0\nlet startScrollLeft = 0\nconst hasHorizontalScroll = ref(false)\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 计算属性\nconst barVisibleClass = computed(() => {\n\treturn `bar-${String(props.barDisplay)}`\n})\n\n// 检查是否需要横向滚动条\nconst checkHorizontalScroll = () => {\n\tif (scrollRef.value) {\n\t\tconst { scrollWidth, clientWidth } = scrollRef.value\n\t\thasHorizontalScroll.value = scrollWidth > clientWidth\n\t}\n}\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n})\n\nonUnmounted(() => {\n\tif (props.virtual) {\n\t\twindow.removeEventListener('mousemove', onMousemove)\n\t\twindow.removeEventListener('mouseup', onMouseup)\n\t\twindow.removeEventListener('mouseleave', onMouseup)\n\n\t\t// 移除鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.removeEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.removeEventListener('mouseleave', onMouseleave)\n\t\t}\n\t}\n\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n\n\tif (autoScrollThrottleTimer) {\n\t\tclearTimeout(autoScrollThrottleTimer)\n\t\tautoScrollThrottleTimer = null\n\t}\n})\n\n// 鼠标进入滚动区域\nconst onMouseenter = () => {\n\tisHovering.value = true\n}\n\n// 鼠标离开滚动区域\nconst onMouseleave = () => {\n\tif (!isDragging.value && !isHorizontalDragging.value) {\n\t\tisHovering.value = false\n\t}\n}\n\n// 虚拟滚动条垂直拖动\nconst onThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar')\n\t}\n\n\tstartY = e.clientY\n\tstartScrollTop = scrollRef.value.scrollTop\n\tisDragging.value = true\n}\n\n// 虚拟滚动条水平拖动\nconst onHorizontalThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar-horizontal')\n\t}\n\n\tstartX = e.clientX\n\tstartScrollLeft = scrollRef.value.scrollLeft\n\tisHorizontalDragging.value = true\n}\n\nconst onMousemove = (e: MouseEvent) => {\n\t// 处理垂直拖动\n\tif (isDragging.value && scrollRef.value && barThumb.value) {\n\t\tconst deltaY = e.clientY - startY\n\t\tconst contentHeight = scrollRef.value.scrollHeight\n\t\tconst containerHeight = scrollRef.value.clientHeight\n\t\tconst ratio = containerHeight / contentHeight\n\n\t\tscrollRef.value.scrollTop = startScrollTop + deltaY / ratio\n\t}\n\n\t// 处理水平拖动\n\tif (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {\n\t\tconst deltaX = e.clientX - startX\n\t\tconst contentWidth = scrollRef.value.scrollWidth\n\t\tconst containerWidth = scrollRef.value.clientWidth\n\t\tconst ratio = containerWidth / contentWidth\n\n\t\tscrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio\n\t}\n}\n\nconst onMouseup = () => {\n\tisDragging.value = false\n\tisHorizontalDragging.value = false\n\n\t// 拖动结束后,如果鼠标不在滚动区域内,则隐藏滚动条\n\tif (!isHovering.value) {\n\t\tsetTimeout(() => {\n\t\t\tisHovering.value = false\n\t\t}, 300)\n\t}\n\n\t// 移除拖动状态的类\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.remove('dragging-scrollbar')\n\t\tscrollRef.value.classList.remove('dragging-scrollbar-horizontal')\n\t}\n}\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (autoScrollThrottleTimer) {\n\t\t\tclearTimeout(autoScrollThrottleTimer)\n\t\t\tautoScrollThrottleTimer = null\n\t\t}\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\n\t\t\t\t// 如果使用了虚拟滚动条,确保它的位置也正确更新\n\t\t\t\tif (props.virtual && barThumb.value) {\n\t\t\t\t\tupdateVirtualScrollbar()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 更新虚拟滚动条位置(如果使用)\nconst updateVirtualScrollbar = () => {\n\tif (!scrollRef.value || !props.virtual) return\n\n\t// 强制更新滚动条位置\n\tnextTick(() => {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = scrollRef.value\n\t\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\t\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\t\tif (barThumb.value) {\n\t\t\tbarThumb.value.style.transform = `translateY(${thumbTop}px)`\n\t\t}\n\t})\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\n// 垂直滚动条样式计算\nconst thumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientHeight, scrollHeight, scrollTop } = scrollRef.value\n\n\t// 计算滚动条高度比例\n\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\n\t// 计算滚动条位置比例\n\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\treturn {\n\t\theight: `${thumbHeight}px`,\n\t\ttransform: `translateY(${thumbTop}px)`,\n\t\twidth: '6px'\n\t}\n})\n\n// 水平滚动条样式计算\nconst horizontalThumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientWidth, scrollWidth, scrollLeft } = scrollRef.value\n\n\t// 计算滚动条宽度比例\n\tconst thumbWidth = Math.max(30, (clientWidth / scrollWidth) * clientWidth)\n\n\t// 计算滚动条位置比例\n\tconst thumbLeft = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - thumbWidth)\n\n\treturn {\n\t\twidth: `${thumbWidth}px`,\n\t\ttransform: `translateX(${thumbLeft}px)`,\n\t\theight: '6px'\n\t}\n})\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.virtual) {\n\t\tarr.push('hide-scrollbar')\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tif (props.virtual) {\n\t\tobj.overflow = 'auto'\n\t\tobj.position = 'relative'\n\t\tobj.width = '100%'\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tcheckHorizontalScroll,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","ref","computed","provide","nextTick","watch","onMounted","onUnmounted","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"Scroll.vue2.js","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToScroll'\r\n});\n</script>\n<template>\r\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\r\n\t\t<!-- 自定义滚动条 -->\r\n\t\t<div v-if=\"props.virtual\" class=\"to-scroll-bar\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\r\n\t\t\t<div ref=\"barThumb\" class=\"to-scroll-thumb\" :style=\"thumbStyle\" @mousedown=\"onThumbMousedown\"></div>\r\n\t\t</div>\r\n\r\n\t\t<!-- 横向滚动条 -->\r\n\t\t<div v-if=\"props.virtual && hasHorizontalScroll\" class=\"to-scroll-bar horizontal\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\r\n\t\t\t<div ref=\"horizontalBarThumb\" class=\"to-scroll-thumb\" :style=\"horizontalThumbStyle\" @mousedown=\"onHorizontalThumbMousedown\"></div>\r\n\t\t</div>\r\n\r\n\t\t<!-- 滚动内容区域 -->\r\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" :class=\"{ 'virtual-scroll': props.virtual }\" @scroll=\"handleScroll\">\r\n\t\t\t<!-- 默认内容插槽 -->\r\n\t\t\t<slot />\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\r\nimport { scrollProps, ScrollContext } from './scroll'\r\n\r\n\r\n\r\nconst props = defineProps(scrollProps)\r\nconst emit = defineEmits<{\r\n\t(e: 'scroll', event: Event): void\r\n\t(e: 'scrollEnd'): void\r\n\t(e: 'change', position: number): void\r\n\t(e: 'update:value', position: number | string): void\r\n\t(e: 'update:modelValue', position: number | string): void\r\n\t(e: 'bottom'): void\r\n\t(e: 'top'): void\r\n}>()\r\n\r\nconst scrollRef = ref<HTMLElement | null>(null)\r\nconst barThumb = ref<HTMLElement | null>(null)\r\nconst horizontalBarThumb = ref<HTMLElement | null>(null)\r\nconst isScrolling = ref(false)\r\nconst isHovering = ref(false)\r\n// 添加一个标志来标识是否由tab点击导致的滚动\r\nlet isTabTriggeredScroll = false\r\n// 添加自动滚动的节流控制\r\nlet autoScrollThrottleTimer: ReturnType<typeof setTimeout> | null = null\r\n// 滚动防抖定时器\r\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\r\nlet isDragging = ref(false)\r\nlet isHorizontalDragging = ref(false)\r\nlet startY = 0\r\nlet startX = 0\r\nlet startScrollTop = 0\r\nlet startScrollLeft = 0\r\nconst hasHorizontalScroll = ref(false)\r\n// 存储滚动点信息\r\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\r\n// 获取当前绑定值(优先使用modelValue,兼容value)\r\nconst bindValue = computed(() => props.modelValue || props.value)\r\n// 当前选中的滚动点值\r\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\r\n\r\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\r\n// 提供给子组件的上下文\r\nprovide<ScrollContext>('ToScroll', {\r\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\r\n\t\t// 在下一个渲染周期更新滚动点\r\n\t\tnextTick(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\t}\r\n})\r\n\r\n// 提供当前值给子组件\r\nprovide('scrollValue', currentPointValue)\r\n\r\n// 计算属性\r\nconst barVisibleClass = computed(() => {\r\n\treturn `bar-${String(props.barDisplay)}`\r\n})\r\n\r\n// 检查是否需要横向滚动条\r\nconst checkHorizontalScroll = () => {\r\n\tif (scrollRef.value) {\r\n\t\tconst { scrollWidth, clientWidth } = scrollRef.value\r\n\t\thasHorizontalScroll.value = scrollWidth > clientWidth\r\n\t}\r\n}\r\n\r\n// 设置滚动点\r\nconst setScrollPoints = () => {\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 先清空现有的滚动点\r\n\tscrollPoints.value = []\r\n\r\n\t// 查找所有滚动点元素\r\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\r\n\tif (!nodes || nodes.length === 0) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// 收集滚动点信息\r\n\tnodes.forEach(item => {\r\n\t\tconst itemEl = item as HTMLElement\r\n\t\t// 获取滚动点的值\r\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\r\n\r\n\t\t// 获取元素相对于滚动容器的精确位置\r\n\t\tconst offsetTop = itemEl.offsetTop\r\n\t\tconst height = itemEl.offsetHeight\r\n\r\n\t\t// 记录滚动点信息\r\n\t\tscrollPoints.value.push({\r\n\t\t\tvalue: pointValue,\r\n\t\t\tstart: offsetTop,\r\n\t\t\tend: offsetTop + height\r\n\t\t})\r\n\t})\r\n\r\n\t// 初始滚动到指定位置\r\n\tif (props.value && scrollRef.value) {\r\n\t\tscrollToValue(props.value, 'auto')\r\n\t}\r\n}\r\n\r\n// 滚动到指定值对应的位置\r\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\r\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\r\n\r\n\t// 查找匹配值的滚动点\r\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\r\n\tif (targetPoint) {\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: targetPoint.start,\r\n\t\t\tbehavior: behavior\r\n\t\t})\r\n\r\n\t\t// 主动触发滚动点高亮状态更新\r\n\t\tnotifyScrollPointsActive(value)\r\n\t\treturn true\r\n\t}\r\n\r\n\treturn false\r\n}\r\n\r\n// 主动通知滚动点更新高亮状态\r\nconst notifyScrollPointsActive = (activeValue: string | number) => {\r\n\t// 使用事件通知,避免直接操作DOM\r\n\tif (scrollRef.value) {\r\n\t\tconst event = new CustomEvent('scroll-point-active', {\r\n\t\t\tdetail: { value: activeValue },\r\n\t\t\tbubbles: true\r\n\t\t})\r\n\t\tscrollRef.value.dispatchEvent(event)\r\n\r\n\t\t// 确保更新内部状态\r\n\t\tcurrentPointValue.value = activeValue\r\n\t}\r\n}\r\n\r\n// 根据当前滚动位置查找对应的滚动点值\r\nconst findScrollPoint = (scrollTop: number): string | number | null => {\r\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\r\n\r\n\tconst clientHeight = scrollRef.value.clientHeight\r\n\tconst scrollBottom = scrollTop + clientHeight\r\n\r\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\r\n\tfor (const point of scrollPoints.value) {\r\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\r\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\r\n\t\t\treturn point.value\r\n\t\t}\r\n\t}\r\n\r\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\r\n\tfor (const point of scrollPoints.value) {\r\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\r\n\t\t\treturn point.value\r\n\t\t}\r\n\t}\r\n\r\n\t// 3. 查找当前在视口中显示最多的点\r\n\tlet bestPoint = null\r\n\tlet maxVisibleHeight = 0\r\n\r\n\tfor (const point of scrollPoints.value) {\r\n\t\t// 计算可见部分\r\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\r\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\r\n\t\tconst visibleHeight = visibleBottom - visibleTop\r\n\r\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\r\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\r\n\t\t\tmaxVisibleHeight = visibleHeight\r\n\t\t\tbestPoint = point\r\n\t\t}\r\n\t}\r\n\r\n\t// 4. 特殊情况处理:滚动到顶部或底部\r\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\r\n\t\treturn scrollPoints.value[0].value // 顶部\r\n\t}\r\n\r\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\r\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\r\n\t}\r\n\r\n\t// 5. 如果找到了最佳点,返回它的值\r\n\tif (bestPoint) {\r\n\t\treturn bestPoint.value\r\n\t}\r\n\r\n\t// 6. 后备方案:返回最接近当前滚动位置的点\r\n\tlet closestPoint = null\r\n\tlet minDistance = Infinity\r\n\r\n\tfor (const point of scrollPoints.value) {\r\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\r\n\r\n\t\tif (distance < minDistance) {\r\n\t\t\tminDistance = distance\r\n\t\t\tclosestPoint = point\r\n\t\t}\r\n\t}\r\n\r\n\treturn closestPoint ? closestPoint.value : null\r\n}\r\n\r\n// 监听value/modelValue变化\r\nwatch(\r\n\t() => bindValue.value,\r\n\t(newVal, oldVal) => {\r\n\t\t// 避免重复处理相同的值\r\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\r\n\r\n\t\t// 更新内部记录的值\r\n\t\tcurrentPointValue.value = newVal\r\n\r\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\r\n\t\tif (!isScrolling.value) {\r\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\r\n\t\t\tisTabTriggeredScroll = true\r\n\r\n\t\t\tnextTick(() => {\r\n\t\t\t\t// 尝试滚动到对应位置\r\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\r\n\r\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\r\n\t\t\t\tif (!scrollSuccess) {\r\n\t\t\t\t\tsetScrollPoints()\r\n\t\t\t\t\tscrollToValue(newVal)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 滚动动作完成后重置标记\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tisTabTriggeredScroll = false\r\n\t\t\t\t}, 500) // 等待滚动动画完成\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\t{ immediate: true }\r\n)\r\n\r\nonMounted(() => {\r\n\t// 组件挂载后,设置滚动点\r\n\tnextTick(() => {\r\n\t\t// 收集滚动点\r\n\t\tsetScrollPoints()\r\n\r\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\r\n\t\tconst observer = new MutationObserver(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\r\n\t\tif (scrollRef.value) {\r\n\t\t\tobserver.observe(scrollRef.value, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true,\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['data-point-value']\r\n\t\t\t})\r\n\r\n\t\t\t// 如果有初始值,滚动到对应位置\r\n\t\t\tif (props.value) {\r\n\t\t\t\t// 延迟执行,确保DOM完全渲染\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\r\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\r\n\tif (props.virtual) {\r\n\t\twindow.addEventListener('mousemove', onMousemove)\r\n\t\twindow.addEventListener('mouseup', onMouseup)\r\n\t\twindow.addEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 添加鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\r\n\t\t// 检查是否需要横向滚动条\r\n\t\tnextTick(() => {\r\n\t\t\tcheckHorizontalScroll()\r\n\t\t})\r\n\t}\r\n})\r\n\r\nonUnmounted(() => {\r\n\tif (props.virtual) {\r\n\t\twindow.removeEventListener('mousemove', onMousemove)\r\n\t\twindow.removeEventListener('mouseup', onMouseup)\r\n\t\twindow.removeEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 移除鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.removeEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.removeEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\t}\r\n\r\n\t// 清除所有定时器\r\n\tif (scrollUpdateTimer) {\r\n\t\tclearTimeout(scrollUpdateTimer)\r\n\t\tscrollUpdateTimer = null\r\n\t}\r\n\r\n\tif (autoScrollThrottleTimer) {\r\n\t\tclearTimeout(autoScrollThrottleTimer)\r\n\t\tautoScrollThrottleTimer = null\r\n\t}\r\n})\r\n\r\n// 鼠标进入滚动区域\r\nconst onMouseenter = () => {\r\n\tisHovering.value = true\r\n}\r\n\r\n// 鼠标离开滚动区域\r\nconst onMouseleave = () => {\r\n\tif (!isDragging.value && !isHorizontalDragging.value) {\r\n\t\tisHovering.value = false\r\n\t}\r\n}\r\n\r\n// 虚拟滚动条垂直拖动\r\nconst onThumbMousedown = (e: MouseEvent) => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\te.preventDefault()\r\n\te.stopPropagation()\r\n\r\n\t// 添加拖动状态的类,用于CSS样式调整\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.add('dragging-scrollbar')\r\n\t}\r\n\r\n\tstartY = e.clientY\r\n\tstartScrollTop = scrollRef.value.scrollTop\r\n\tisDragging.value = true\r\n}\r\n\r\n// 虚拟滚动条水平拖动\r\nconst onHorizontalThumbMousedown = (e: MouseEvent) => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\te.preventDefault()\r\n\te.stopPropagation()\r\n\r\n\t// 添加拖动状态的类,用于CSS样式调整\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.add('dragging-scrollbar-horizontal')\r\n\t}\r\n\r\n\tstartX = e.clientX\r\n\tstartScrollLeft = scrollRef.value.scrollLeft\r\n\tisHorizontalDragging.value = true\r\n}\r\n\r\nconst onMousemove = (e: MouseEvent) => {\r\n\t// 处理垂直拖动\r\n\tif (isDragging.value && scrollRef.value && barThumb.value) {\r\n\t\tconst deltaY = e.clientY - startY\r\n\t\tconst contentHeight = scrollRef.value.scrollHeight\r\n\t\tconst containerHeight = scrollRef.value.clientHeight\r\n\t\tconst ratio = containerHeight / contentHeight\r\n\r\n\t\tscrollRef.value.scrollTop = startScrollTop + deltaY / ratio\r\n\t}\r\n\r\n\t// 处理水平拖动\r\n\tif (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {\r\n\t\tconst deltaX = e.clientX - startX\r\n\t\tconst contentWidth = scrollRef.value.scrollWidth\r\n\t\tconst containerWidth = scrollRef.value.clientWidth\r\n\t\tconst ratio = containerWidth / contentWidth\r\n\r\n\t\tscrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio\r\n\t}\r\n}\r\n\r\nconst onMouseup = () => {\r\n\tisDragging.value = false\r\n\tisHorizontalDragging.value = false\r\n\r\n\t// 拖动结束后,如果鼠标不在滚动区域内,则隐藏滚动条\r\n\tif (!isHovering.value) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tisHovering.value = false\r\n\t\t}, 300)\r\n\t}\r\n\r\n\t// 移除拖动状态的类\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.remove('dragging-scrollbar')\r\n\t\tscrollRef.value.classList.remove('dragging-scrollbar-horizontal')\r\n\t}\r\n}\r\n\r\n// 处理滚动事件\r\nconst handleScroll = (event: Event) => {\r\n\t// 触发原始滚动事件\r\n\temit('scroll', event)\r\n\r\n\t// 如果是由Tab触发的滚动,不处理滚动检测\r\n\tif (isTabTriggeredScroll) {\r\n\t\treturn\r\n\t}\r\n\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 获取当前滚动位置\r\n\tconst scrollTop = scrollRef.value.scrollTop\r\n\r\n\t// 触发滚动位置变化事件\r\n\temit('change', scrollTop)\r\n\r\n\tif (scrollEventDebounceTimer) {\r\n\t\tclearTimeout(scrollEventDebounceTimer)\r\n\t}\r\n\r\n\t// 检测是否滚动到底部\r\n\tscrollEventDebounceTimer = setTimeout(() => {\r\n\t\t// 检测是否滚动到底部\r\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\r\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\r\n\t\t\temit('bottom')\r\n\t\t}\r\n\r\n\t\tif (scrollTop <= 5) {\r\n\t\t\temit('top')\r\n\t\t}\r\n\t}, 100) // 防抖时间设置为 100ms\r\n\r\n\t// 如果有滚动点,立即检测当前位置对应哪个点\r\n\tif (scrollPoints.value.length > 0) {\r\n\t\t// 先清除之前的定时器\r\n\t\tif (autoScrollThrottleTimer) {\r\n\t\t\tclearTimeout(autoScrollThrottleTimer)\r\n\t\t\tautoScrollThrottleTimer = null\r\n\t\t}\r\n\t\tif (scrollUpdateTimer) {\r\n\t\t\tclearTimeout(scrollUpdateTimer)\r\n\t\t\tscrollUpdateTimer = null\r\n\t\t}\r\n\r\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\t// 重新查找当前滚动位置对应的点\r\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\r\n\r\n\t\t\t// 如果找到点且与当前值不同,立即更新值\r\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\r\n\t\t\t\t// 更新内部记录的值\r\n\t\t\t\tcurrentPointValue.value = pointValue\r\n\r\n\t\t\t\t// 同时发送两种事件,确保兼容性\r\n\t\t\t\temit('update:modelValue', pointValue)\r\n\t\t\t\temit('update:value', pointValue)\r\n\r\n\t\t\t\t// 通知滚动点更新高亮状态\r\n\t\t\t\tnotifyScrollPointsActive(pointValue)\r\n\r\n\t\t\t\t// 如果使用了虚拟滚动条,确保它的位置也正确更新\r\n\t\t\t\tif (props.virtual && barThumb.value) {\r\n\t\t\t\t\tupdateVirtualScrollbar()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// 标记为正在滚动\r\n\tisScrolling.value = true\r\n\r\n\t// 滚动结束后重置状态\r\n\tclearTimeout(scrollUpdateTimer)\r\n\tscrollUpdateTimer = setTimeout(() => {\r\n\t\tisScrolling.value = false\r\n\t\temit('scrollEnd')\r\n\t}, 100)\r\n}\r\n\r\n// 更新虚拟滚动条位置(如果使用)\r\nconst updateVirtualScrollbar = () => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\r\n\t// 强制更新滚动条位置\r\n\tnextTick(() => {\r\n\t\tconst { scrollTop, scrollHeight, clientHeight } = scrollRef.value\r\n\t\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\r\n\t\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\r\n\r\n\t\tif (barThumb.value) {\r\n\t\t\tbarThumb.value.style.transform = `translateY(${thumbTop}px)`\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 统一的滚动方法,支持多种参数类型\r\nconst to = (target: HTMLElement | string | number | any) => {\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 滚动到底部\r\n\tif (target === '$bottom') {\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定元素\r\n\tif (target instanceof HTMLElement) {\r\n\t\tconst elementTop = target.getBoundingClientRect().top\r\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\r\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\r\n\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: relativeTop,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定位置(数字或数字字符串)\r\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\r\n\t\tconst position = typeof target === 'string' ? Number(target) : target\r\n\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: position,\r\n\t\t\tleft: 0,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定选项配置\r\n\tif (typeof target === 'object' && target !== null) {\r\n\t\tscrollRef.value.scrollTo(target)\r\n\t\treturn\r\n\t}\r\n}\r\n\r\n// 垂直滚动条样式计算\r\nconst thumbStyle = computed(() => {\r\n\tif (!scrollRef.value || !props.virtual) return {}\r\n\r\n\tconst { clientHeight, scrollHeight, scrollTop } = scrollRef.value\r\n\r\n\t// 计算滚动条高度比例\r\n\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\r\n\r\n\t// 计算滚动条位置比例\r\n\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\r\n\r\n\treturn {\r\n\t\theight: `${thumbHeight}px`,\r\n\t\ttransform: `translateY(${thumbTop}px)`,\r\n\t\twidth: '6px'\r\n\t}\r\n})\r\n\r\n// 水平滚动条样式计算\r\nconst horizontalThumbStyle = computed(() => {\r\n\tif (!scrollRef.value || !props.virtual) return {}\r\n\r\n\tconst { clientWidth, scrollWidth, scrollLeft } = scrollRef.value\r\n\r\n\t// 计算滚动条宽度比例\r\n\tconst thumbWidth = Math.max(30, (clientWidth / scrollWidth) * clientWidth)\r\n\r\n\t// 计算滚动条位置比例\r\n\tconst thumbLeft = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - thumbWidth)\r\n\r\n\treturn {\r\n\t\twidth: `${thumbWidth}px`,\r\n\t\ttransform: `translateX(${thumbLeft}px)`,\r\n\t\theight: '6px'\r\n\t}\r\n})\r\n\r\nconst setStyle = computed(() => {\r\n\tconst obj: {\r\n\t\theight?: string\r\n\t} = {}\r\n\r\n\tif (props.height) {\r\n\t\tif (!isNaN(Number(props.height))) {\r\n\t\t\tobj.height = props.height + 'em'\r\n\t\t} else {\r\n\t\t\tobj.height = String(props.height)\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n})\r\n\r\nconst setClass = computed(() => {\r\n\tlet arr: string[] = []\r\n\r\n\tif (props.virtual) {\r\n\t\tarr.push('hide-scrollbar')\r\n\t}\r\n\r\n\tif (props.mode) {\r\n\t\tarr.push(`mode-${props.mode}`)\r\n\t}\r\n\r\n\tif (props.type) {\r\n\t\tarr.push(`type-${props.type}`)\r\n\t}\r\n\r\n\treturn arr\r\n})\r\n\r\nconst setContentStyle = computed(() => {\r\n\tconst obj: {\r\n\t\theight?: string\r\n\t\tpadding?: string | number\r\n\t\tpaddingTop?: string\r\n\t\tpaddingRight?: string\r\n\t\tpaddingBottom?: string\r\n\t\tpaddingLeft?: string\r\n\t\tmaxHeight?: string\r\n\t\toverflow?: string\r\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\r\n\t\twidth?: string\r\n\t\tdisplay?: string\r\n\t} = {}\r\n\r\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\r\n\tif (String(props.padding).trim()) {\r\n\t\t// 分割成各个值\r\n\t\tconst padded = String(props.padding)\r\n\t\t\t.trim()\r\n\t\t\t.split(/\\s+/)\r\n\t\t\t.map(val => {\r\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\r\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\r\n\t\t\t})\r\n\t\t\t.join(' ')\r\n\r\n\t\tobj.padding = padded\r\n\t}\r\n\r\n\tif (props.paddingPosition) {\r\n\t\t// 根据paddingPosition设置padding位置\r\n\t\tconst padding = String(props.padding || '0')\r\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\r\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\r\n\r\n\t\tswitch (props.paddingPosition) {\r\n\t\t\tcase 'top':\r\n\t\t\t\tobj.paddingTop = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'right':\r\n\t\t\t\tobj.paddingRight = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'bottom':\r\n\t\t\t\tobj.paddingBottom = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'left':\r\n\t\t\t\tobj.paddingLeft = paddingValue\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\tif (props.virtual) {\r\n\t\tobj.overflow = 'auto'\r\n\t\tobj.position = 'relative'\r\n\t\tobj.width = '100%'\r\n\t}\r\n\r\n\treturn obj\r\n})\r\n\r\nfunction adjust() {\r\n\t// 组件挂载后,设置滚动点\r\n\tnextTick(() => {\r\n\t\t// 收集滚动点\r\n\t\tsetScrollPoints()\r\n\r\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\r\n\t\tconst observer = new MutationObserver(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\r\n\t\tif (scrollRef.value) {\r\n\t\t\tobserver.observe(scrollRef.value, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true,\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['data-point-value']\r\n\t\t\t})\r\n\r\n\t\t\t// 如果有初始值,滚动到对应位置\r\n\t\t\tif (props.value) {\r\n\t\t\t\t// 延迟执行,确保DOM完全渲染\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\r\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\r\n\tif (props.virtual) {\r\n\t\twindow.addEventListener('mousemove', onMousemove)\r\n\t\twindow.addEventListener('mouseup', onMouseup)\r\n\t\twindow.addEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 添加鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\r\n\t\t// 检查是否需要横向滚动条\r\n\t\tnextTick(() => {\r\n\t\t\tcheckHorizontalScroll()\r\n\t\t})\r\n\t}\r\n}\r\n\r\n// 导出方法供父组件调用\r\ndefineExpose({\r\n\tto,\r\n\tscrollRef,\r\n\tisScrolling,\r\n\tsetScrollPoints,\r\n\tfindScrollPoint,\r\n\tcheckHorizontalScroll,\r\n\tadjust\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","ref","computed","provide","nextTick","watch","onMounted","onUnmounted","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollPoint.vue2.js","sources":["../../../../../../packages/components/scroll/src/ScrollPoint.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScrollPoint'\n});\n</script>\n<template>\n\t<div :id=\"'scroll-point-' + String(props.value).replace(/\\s+/g, '-')\" ref=\"pointRef\" class=\"to-scroll-point\" :class=\"{ active: isActive }\" :data-point-value=\"props.value\" :data-point-active=\"isActive ? 'true' : 'false'\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, inject, watch, nextTick, computed, onBeforeUnmount } from 'vue'\nimport { scrollPointProps } from './scroll-point'\nimport { ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollPointProps)\n\nconst pointRef = ref<HTMLElement | null>(null)\nconst parentValue = inject<any>('scrollValue', ref(null))\nconst isActive = computed(() => parentValue?.value === props.value)\n\n// 处理滚动点激活事件\nconst handleScrollPointActive = (event: CustomEvent) => {\n\tif (event.detail && event.detail.value === props.value) {\n\t\t// 当激活状态改变时触发\n\t}\n}\n\n// 注入父滚动组件提供的上下文\nconst parentScroll = inject<ScrollContext | null>('ToScroll', null)\n\n// 注册滚动点到父组件\nconst registerToParent = () => {\n\tif (parentScroll && pointRef.value) {\n\t\tparentScroll.registerScrollPoint(pointRef.value, props.value)\n\t} else {\n\t\t// 无法注册到父组件\n\t}\n}\n\n// 在挂载后注册自身到父组件\nonMounted(() => {\n\t// 等待 DOM 更新完成后注册\n\tnextTick(() => {\n\t\tregisterToParent()\n\n\t\t// 添加自定义事件监听\n\t\tif (pointRef.value) {\n\t\t\tpointRef.value.addEventListener('scroll-point-active', handleScrollPointActive as EventListener)\n\t\t}\n\t})\n})\n\n// 组件销毁前移除事件监听\nonBeforeUnmount(() => {\n\tif (pointRef.value) {\n\t\tpointRef.value.removeEventListener('scroll-point-active', handleScrollPointActive as EventListener)\n\t}\n})\n\n// 监听值变化,更新数据属性\nwatch(\n\t() => props.value,\n\t() => {\n\t\tnextTick(() => {\n\t\t\tregisterToParent()\n\t\t})\n\t}\n)\n\n// 监听父组件的值变化\nwatch(\n\t() => parentValue?.value,\n\t() => {\n\t\t// 当父值变化时,会自动通过computed属性更新isActive状态\n\t}\n)\n\n// 导出方法供父组件调用\ndefineExpose({\n\tpointRef,\n\tgetValue: () => props.value\n})\n</script>\n"],"names":["DO_defineComponent","ref","inject","computed","onMounted","nextTick","onBeforeUnmount","watch","_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,eAAA;AACP,CAAC,CAAA,CAAA;;;;;AAeD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,QAAA,GAAWC,QAAwB,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,WAAc,GAAAC,UAAA,CAAY,aAAe,EAAAD,OAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,WAAWE,YAAS,CAAA,MAAA,CAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA,MAAU,MAAM,KAAK,CAAA,CAAA;AAGlE,IAAM,MAAA,uBAAA,GAA0B,CAAC,KAAuB,KAAA;AACvD,MAAA,IAAI,MAAM,MAAU,IAAA,KAAA,CAAM,MAAO,CAAA,KAAA,KAAU,MAAM,KAAO,EAAA,CAExD;AAAA,KACD,CAAA;AAGA,IAAM,MAAA,YAAA,GAAeD,UAA6B,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAGlE,IAAA,MAAM,mBAAmB,MAAM;AAC9B,MAAI,IAAA,YAAA,IAAgB,SAAS,KAAO,EAAA;AACnC,QAAA,YAAA,CAAa,mBAAoB,CAAA,QAAA,CAAS,KAAO,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OAG7D;AAAA,KACD,CAAA;AAGA,IAAAE,aAAA,CAAU,MAAM;AAEf,MAAAC,YAAA,CAAS,MAAM;AACd,QAAiB,gBAAA,EAAA,CAAA;AAGjB,QAAA,IAAI,SAAS,KAAO,EAAA;AACnB,UAAS,QAAA,CAAA,KAAA,CAAM,gBAAiB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,SAChG;AAAA,OACA,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAGD,IAAAC,mBAAA,CAAgB,MAAM;AACrB,MAAA,IAAI,SAAS,KAAO,EAAA;AACnB,QAAS,QAAA,CAAA,KAAA,CAAM,mBAAoB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,OACnG;AAAA,KACA,CAAA,CAAA;AAGD,IAAAC,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,MAAM;AACL,QAAAF,YAAA,CAAS,MAAM;AACd,UAAiB,gBAAA,EAAA,CAAA;AAAA,SACjB,CAAA,CAAA;AAAA,OACF;AAAA,KACD,CAAA;AAGA,IAAAE,SAAA;AAAA,MACC,MAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA;AAAA,MACnB,MAAM;AAAA,OAEN;AAAA,KACD,CAAA;AAGA,IAAa,QAAA,CAAA;AAAA,MACZ,QAAA;AAAA,MACA,QAAA,EAAU,MAAM,KAAM,CAAA,KAAA;AAAA,KACtB,CAAA,CAAA;;4BA/EA,EAAAC,sBAAA,CAEM,KAAA,EAAA;AAAA,QAFA,EAAA,oBAAsB,MAAO,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,OAAA,CAAO,QAAA,GAAA,CAAA;AAAA,eAAmB,EAAA,UAAA;AAAA,QAAJ,GAAI,EAAA,QAAA;AAAA,QAAW,KAAA,EAAKC,mBAAA,CAAC,iBAAA,EAAiB,EAAA,MAAmB,EAAA,QAAA,CAAQ,KAAA,EAAA,CAAA,CAAA;AAAA,QAAK,oBAAkB,KAAM,CAAA,KAAA;AAAA,QAAQ,mBAAA,EAAmB,QAAQ,CAAA,KAAA,GAAA,MAAA,GAAA,OAAA;AAAA;QACtMC,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"ScrollPoint.vue2.js","sources":["../../../../../../packages/components/scroll/src/ScrollPoint.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToScrollPoint'\r\n});\n</script>\n<template>\r\n\t<div :id=\"'scroll-point-' + String(props.value).replace(/\\s+/g, '-')\" ref=\"pointRef\" class=\"to-scroll-point\" :class=\"{ active: isActive }\" :data-point-value=\"props.value\" :data-point-active=\"isActive ? 'true' : 'false'\">\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, onMounted, inject, watch, nextTick, computed, onBeforeUnmount } from 'vue'\r\nimport { scrollPointProps } from './scroll-point'\r\nimport { ScrollContext } from './scroll'\r\n\r\n\r\n\r\nconst props = defineProps(scrollPointProps)\r\n\r\nconst pointRef = ref<HTMLElement | null>(null)\r\nconst parentValue = inject<any>('scrollValue', ref(null))\r\nconst isActive = computed(() => parentValue?.value === props.value)\r\n\r\n// 处理滚动点激活事件\r\nconst handleScrollPointActive = (event: CustomEvent) => {\r\n\tif (event.detail && event.detail.value === props.value) {\r\n\t\t// 当激活状态改变时触发\r\n\t}\r\n}\r\n\r\n// 注入父滚动组件提供的上下文\r\nconst parentScroll = inject<ScrollContext | null>('ToScroll', null)\r\n\r\n// 注册滚动点到父组件\r\nconst registerToParent = () => {\r\n\tif (parentScroll && pointRef.value) {\r\n\t\tparentScroll.registerScrollPoint(pointRef.value, props.value)\r\n\t} else {\r\n\t\t// 无法注册到父组件\r\n\t}\r\n}\r\n\r\n// 在挂载后注册自身到父组件\r\nonMounted(() => {\r\n\t// 等待 DOM 更新完成后注册\r\n\tnextTick(() => {\r\n\t\tregisterToParent()\r\n\r\n\t\t// 添加自定义事件监听\r\n\t\tif (pointRef.value) {\r\n\t\t\tpointRef.value.addEventListener('scroll-point-active', handleScrollPointActive as EventListener)\r\n\t\t}\r\n\t})\r\n})\r\n\r\n// 组件销毁前移除事件监听\r\nonBeforeUnmount(() => {\r\n\tif (pointRef.value) {\r\n\t\tpointRef.value.removeEventListener('scroll-point-active', handleScrollPointActive as EventListener)\r\n\t}\r\n})\r\n\r\n// 监听值变化,更新数据属性\r\nwatch(\r\n\t() => props.value,\r\n\t() => {\r\n\t\tnextTick(() => {\r\n\t\t\tregisterToParent()\r\n\t\t})\r\n\t}\r\n)\r\n\r\n// 监听父组件的值变化\r\nwatch(\r\n\t() => parentValue?.value,\r\n\t() => {\r\n\t\t// 当父值变化时,会自动通过computed属性更新isActive状态\r\n\t}\r\n)\r\n\r\n// 导出方法供父组件调用\r\ndefineExpose({\r\n\tpointRef,\r\n\tgetValue: () => props.value\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","ref","inject","computed","onMounted","nextTick","onBeforeUnmount","watch","_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;AAEA,MAAA,cAA6BA,mBAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,eAAA;AACP,CAAC,CAAA,CAAA;;;;;AAeD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,QAAA,GAAWC,QAAwB,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,WAAc,GAAAC,UAAA,CAAY,aAAe,EAAAD,OAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,WAAWE,YAAS,CAAA,MAAA,CAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA,MAAU,MAAM,KAAK,CAAA,CAAA;AAGlE,IAAM,MAAA,uBAAA,GAA0B,CAAC,KAAuB,KAAA;AACvD,MAAA,IAAI,MAAM,MAAU,IAAA,KAAA,CAAM,MAAO,CAAA,KAAA,KAAU,MAAM,KAAO,EAAA,CAExD;AAAA,KACD,CAAA;AAGA,IAAM,MAAA,YAAA,GAAeD,UAA6B,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAGlE,IAAA,MAAM,mBAAmB,MAAM;AAC9B,MAAI,IAAA,YAAA,IAAgB,SAAS,KAAO,EAAA;AACnC,QAAA,YAAA,CAAa,mBAAoB,CAAA,QAAA,CAAS,KAAO,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OAG7D;AAAA,KACD,CAAA;AAGA,IAAAE,aAAA,CAAU,MAAM;AAEf,MAAAC,YAAA,CAAS,MAAM;AACd,QAAiB,gBAAA,EAAA,CAAA;AAGjB,QAAA,IAAI,SAAS,KAAO,EAAA;AACnB,UAAS,QAAA,CAAA,KAAA,CAAM,gBAAiB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,SAChG;AAAA,OACA,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAGD,IAAAC,mBAAA,CAAgB,MAAM;AACrB,MAAA,IAAI,SAAS,KAAO,EAAA;AACnB,QAAS,QAAA,CAAA,KAAA,CAAM,mBAAoB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,OACnG;AAAA,KACA,CAAA,CAAA;AAGD,IAAAC,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,MAAM;AACL,QAAAF,YAAA,CAAS,MAAM;AACd,UAAiB,gBAAA,EAAA,CAAA;AAAA,SACjB,CAAA,CAAA;AAAA,OACF;AAAA,KACD,CAAA;AAGA,IAAAE,SAAA;AAAA,MACC,MAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA;AAAA,MACnB,MAAM;AAAA,OAEN;AAAA,KACD,CAAA;AAGA,IAAa,QAAA,CAAA;AAAA,MACZ,QAAA;AAAA,MACA,QAAA,EAAU,MAAM,KAAM,CAAA,KAAA;AAAA,KACtB,CAAA,CAAA;;4BA/EA,EAAAC,sBAAA,CAEM,KAAA,EAAA;AAAA,QAFA,EAAA,oBAAsB,MAAO,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,OAAA,CAAO,QAAA,GAAA,CAAA;AAAA,eAAmB,EAAA,UAAA;AAAA,QAAJ,GAAI,EAAA,QAAA;AAAA,QAAW,KAAA,EAAKC,mBAAA,CAAC,iBAAA,EAAiB,EAAA,MAAmB,EAAA,QAAA,CAAQ,KAAA,EAAA,CAAA,CAAA;AAAA,QAAK,oBAAkB,KAAM,CAAA,KAAA;AAAA,QAAQ,mBAAA,EAAmB,QAAQ,CAAA,KAAA,GAAA,MAAA,GAAA,OAAA;AAAA;QACtMC,cAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-point.js","sources":["../../../../../../packages/components/scroll/src/scroll-point.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollPointProps = {\n\t/**\n\t * 滚动点的标识值\n\t */\n\tvalue: {\n\t\ttype: [String, Number],\n\t\tdefault: '',\n\t},\n}\n\nexport type ScrollPointProps = ExtractPropTypes<typeof scrollPointProps>\n\nexport interface ScrollPointInstance {\n\t/**\n\t * 滚动点的DOM引用\n\t */\n\tpointRef: HTMLElement | null\n\t/**\n\t * 获取滚动点的标识值\n\t */\n\tgetValue: () => string | number\n}\n"],"names":[],"mappings":";;AAEO,MAAM,gBAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI/B,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AACD;;;;"}
1
+ {"version":3,"file":"scroll-point.js","sources":["../../../../../../packages/components/scroll/src/scroll-point.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\r\n\r\nexport const scrollPointProps = {\r\n\t/**\r\n\t * 滚动点的标识值\r\n\t */\r\n\tvalue: {\r\n\t\ttype: [String, Number],\r\n\t\tdefault: '',\r\n\t},\r\n}\r\n\r\nexport type ScrollPointProps = ExtractPropTypes<typeof scrollPointProps>\r\n\r\nexport interface ScrollPointInstance {\r\n\t/**\r\n\t * 滚动点的DOM引用\r\n\t */\r\n\tpointRef: HTMLElement | null\r\n\t/**\r\n\t * 获取滚动点的标识值\r\n\t */\r\n\tgetValue: () => string | number\r\n}\r\n"],"names":[],"mappings":";;AAEO,MAAM,gBAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI/B,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AACD;;;;"}