@will-ui/vue 1.0.0

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 (699) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/TAILWIND.md +282 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/components/audioPlayer/AudioPlayer.d.ts +123 -0
  6. package/dist/components/audioPlayer/AudioPlayer.js +375 -0
  7. package/dist/components/audioPlayer/AudioPlayer.js.map +1 -0
  8. package/dist/components/audioPlayer/index.d.ts +2 -0
  9. package/dist/components/audioPlayer/style/index.css +1 -0
  10. package/dist/components/btn/Btn.d.ts +45 -0
  11. package/dist/components/btn/Btn.js +165 -0
  12. package/dist/components/btn/Btn.js.map +1 -0
  13. package/dist/components/btn/config.d.ts +33 -0
  14. package/dist/components/btn/config.js +20 -0
  15. package/dist/components/btn/config.js.map +1 -0
  16. package/dist/components/btn/context.d.ts +12 -0
  17. package/dist/components/btn/context.js +6 -0
  18. package/dist/components/btn/context.js.map +1 -0
  19. package/dist/components/btn/index.d.ts +5 -0
  20. package/dist/components/btn/style/index.css +1 -0
  21. package/dist/components/btnGroup/BtnGroup.d.ts +46 -0
  22. package/dist/components/btnGroup/BtnGroup.js +43 -0
  23. package/dist/components/btnGroup/BtnGroup.js.map +1 -0
  24. package/dist/components/btnGroup/config.d.ts +14 -0
  25. package/dist/components/btnGroup/config.js +11 -0
  26. package/dist/components/btnGroup/config.js.map +1 -0
  27. package/dist/components/btnGroup/index.d.ts +3 -0
  28. package/dist/components/btnGroup/style/index.css +1 -0
  29. package/dist/components/cascade/Cascade.d.ts +1957 -0
  30. package/dist/components/cascade/Cascade.js +283 -0
  31. package/dist/components/cascade/Cascade.js.map +1 -0
  32. package/dist/components/cascade/config.d.ts +30 -0
  33. package/dist/components/cascade/config.js +18 -0
  34. package/dist/components/cascade/config.js.map +1 -0
  35. package/dist/components/cascade/index.d.ts +3 -0
  36. package/dist/components/cascade/style/index.css +1 -0
  37. package/dist/components/checkbox/Checkbox.d.ts +241 -0
  38. package/dist/components/checkbox/Checkbox.js +182 -0
  39. package/dist/components/checkbox/Checkbox.js.map +1 -0
  40. package/dist/components/checkbox/config.d.ts +18 -0
  41. package/dist/components/checkbox/config.js +11 -0
  42. package/dist/components/checkbox/config.js.map +1 -0
  43. package/dist/components/checkbox/index.d.ts +3 -0
  44. package/dist/components/checkbox/style/index.css +1 -0
  45. package/dist/components/choose/Choose.d.ts +1016 -0
  46. package/dist/components/choose/Choose.js +402 -0
  47. package/dist/components/choose/Choose.js.map +1 -0
  48. package/dist/components/choose/config.d.ts +37 -0
  49. package/dist/components/choose/config.js +21 -0
  50. package/dist/components/choose/config.js.map +1 -0
  51. package/dist/components/choose/index.d.ts +3 -0
  52. package/dist/components/choose/injectionKey.d.ts +12 -0
  53. package/dist/components/choose/injectionKey.js +11 -0
  54. package/dist/components/choose/injectionKey.js.map +1 -0
  55. package/dist/components/choose/style/index.css +1 -0
  56. package/dist/components/choose2/Choose2.d.ts +1711 -0
  57. package/dist/components/choose2/Choose2.js +403 -0
  58. package/dist/components/choose2/Choose2.js.map +1 -0
  59. package/dist/components/choose2/config.d.ts +37 -0
  60. package/dist/components/choose2/config.js +20 -0
  61. package/dist/components/choose2/config.js.map +1 -0
  62. package/dist/components/choose2/index.d.ts +3 -0
  63. package/dist/components/choose2/style/index.css +1 -0
  64. package/dist/components/chooseItem/ChooseItem.d.ts +46 -0
  65. package/dist/components/chooseItem/ChooseItem.js +72 -0
  66. package/dist/components/chooseItem/ChooseItem.js.map +1 -0
  67. package/dist/components/chooseItem/config.d.ts +12 -0
  68. package/dist/components/chooseItem/config.js +9 -0
  69. package/dist/components/chooseItem/config.js.map +1 -0
  70. package/dist/components/chooseItem/index.d.ts +3 -0
  71. package/dist/components/chooseItem/style/index.css +1 -0
  72. package/dist/components/circleProgress/CircleProgress.d.ts +83 -0
  73. package/dist/components/circleProgress/CircleProgress.js +108 -0
  74. package/dist/components/circleProgress/CircleProgress.js.map +1 -0
  75. package/dist/components/circleProgress/index.d.ts +1 -0
  76. package/dist/components/circleProgress/style/index.css +1 -0
  77. package/dist/components/close/Close.d.ts +114 -0
  78. package/dist/components/close/Close.js +82 -0
  79. package/dist/components/close/Close.js.map +1 -0
  80. package/dist/components/close/index.d.ts +1 -0
  81. package/dist/components/close/style/index.css +1 -0
  82. package/dist/components/colorPicker/ColorPicker.d.ts +138 -0
  83. package/dist/components/colorPicker/ColorPicker.js +404 -0
  84. package/dist/components/colorPicker/ColorPicker.js.map +1 -0
  85. package/dist/components/colorPicker/config.d.ts +24 -0
  86. package/dist/components/colorPicker/config.js +14 -0
  87. package/dist/components/colorPicker/config.js.map +1 -0
  88. package/dist/components/colorPicker/index.d.ts +4 -0
  89. package/dist/components/colorPicker/style/index.css +1 -0
  90. package/dist/components/confirm/index.d.ts +73 -0
  91. package/dist/components/confirm/index.js +177 -0
  92. package/dist/components/confirm/index.js.map +1 -0
  93. package/dist/components/confirm/src/style/index.css +1 -0
  94. package/dist/components/copy/Copy.d.ts +28 -0
  95. package/dist/components/copy/Copy.js +110 -0
  96. package/dist/components/copy/Copy.js.map +1 -0
  97. package/dist/components/copy/config.d.ts +25 -0
  98. package/dist/components/copy/config.js +13 -0
  99. package/dist/components/copy/config.js.map +1 -0
  100. package/dist/components/copy/index.d.ts +5 -0
  101. package/dist/components/copy/spawnCopyToast.d.ts +13 -0
  102. package/dist/components/copy/spawnCopyToast.js +150 -0
  103. package/dist/components/copy/spawnCopyToast.js.map +1 -0
  104. package/dist/components/copy/style/index.css +1 -0
  105. package/dist/components/cornerEars/CornerEars.d.ts +24 -0
  106. package/dist/components/cornerEars/CornerEars.js +108 -0
  107. package/dist/components/cornerEars/CornerEars.js.map +1 -0
  108. package/dist/components/cornerEars/cornerGeometry.d.ts +8 -0
  109. package/dist/components/cornerEars/cornerGeometry.js +63 -0
  110. package/dist/components/cornerEars/cornerGeometry.js.map +1 -0
  111. package/dist/components/cornerEars/index.d.ts +2 -0
  112. package/dist/components/cornerEars/style/index.css +1 -0
  113. package/dist/components/date/DatePanel.js +398 -0
  114. package/dist/components/date/DatePanel.js.map +1 -0
  115. package/dist/components/date/DatePicker.d.ts +226 -0
  116. package/dist/components/date/DatePicker.js +349 -0
  117. package/dist/components/date/DatePicker.js.map +1 -0
  118. package/dist/components/date/Days.d.ts +44 -0
  119. package/dist/components/date/Days.js +93 -0
  120. package/dist/components/date/Days.js.map +1 -0
  121. package/dist/components/date/Months.d.ts +32 -0
  122. package/dist/components/date/Months.js +87 -0
  123. package/dist/components/date/Months.js.map +1 -0
  124. package/dist/components/date/QuickDate.d.ts +24 -0
  125. package/dist/components/date/QuickDate.js +48 -0
  126. package/dist/components/date/QuickDate.js.map +1 -0
  127. package/dist/components/date/Years.d.ts +38 -0
  128. package/dist/components/date/Years.js +85 -0
  129. package/dist/components/date/Years.js.map +1 -0
  130. package/dist/components/date/_use/quickDate.d.ts +4 -0
  131. package/dist/components/date/_use/quickDate.js +30 -0
  132. package/dist/components/date/_use/quickDate.js.map +1 -0
  133. package/dist/components/date/_use/useDateModules.d.ts +37 -0
  134. package/dist/components/date/_use/useDateModules.js +100 -0
  135. package/dist/components/date/_use/useDateModules.js.map +1 -0
  136. package/dist/components/date/config.d.ts +32 -0
  137. package/dist/components/date/config.js +18 -0
  138. package/dist/components/date/config.js.map +1 -0
  139. package/dist/components/date/index.d.ts +3 -0
  140. package/dist/components/date/style/index.css +1 -0
  141. package/dist/components/date/types.d.ts +32 -0
  142. package/dist/components/drawer/Drawer.d.ts +332 -0
  143. package/dist/components/drawer/Drawer.js +329 -0
  144. package/dist/components/drawer/Drawer.js.map +1 -0
  145. package/dist/components/drawer/config.d.ts +28 -0
  146. package/dist/components/drawer/config.js +16 -0
  147. package/dist/components/drawer/config.js.map +1 -0
  148. package/dist/components/drawer/index.d.ts +3 -0
  149. package/dist/components/drawer/src/style/drawer.css +1 -0
  150. package/dist/components/ellipsis/Ellipsis.d.ts +74 -0
  151. package/dist/components/ellipsis/Ellipsis.js +103 -0
  152. package/dist/components/ellipsis/Ellipsis.js.map +1 -0
  153. package/dist/components/ellipsis/index.d.ts +1 -0
  154. package/dist/components/ellipsis/style/index.css +1 -0
  155. package/dist/components/empty/Empty.d.ts +92 -0
  156. package/dist/components/empty/Empty.js +85 -0
  157. package/dist/components/empty/Empty.js.map +1 -0
  158. package/dist/components/empty/config.d.ts +23 -0
  159. package/dist/components/empty/config.js +14 -0
  160. package/dist/components/empty/config.js.map +1 -0
  161. package/dist/components/empty/index.d.ts +3 -0
  162. package/dist/components/empty/style/index.css +1 -0
  163. package/dist/components/empty/type.d.ts +9 -0
  164. package/dist/components/equalizer/Equalizer.d.ts +62 -0
  165. package/dist/components/equalizer/Equalizer.js +56 -0
  166. package/dist/components/equalizer/Equalizer.js.map +1 -0
  167. package/dist/components/equalizer/index.d.ts +1 -0
  168. package/dist/components/equalizer/style/index.css +1 -0
  169. package/dist/components/fallback/Fallback.d.ts +44 -0
  170. package/dist/components/fallback/Fallback.js +55 -0
  171. package/dist/components/fallback/Fallback.js.map +1 -0
  172. package/dist/components/fallback/index.d.ts +1 -0
  173. package/dist/components/fallback/style/index.css +1 -0
  174. package/dist/components/form/Form.d.ts +169 -0
  175. package/dist/components/form/Form.js +235 -0
  176. package/dist/components/form/Form.js.map +1 -0
  177. package/dist/components/form/_use/formRules.d.ts +18 -0
  178. package/dist/components/form/_use/formRules.js +80 -0
  179. package/dist/components/form/_use/formRules.js.map +1 -0
  180. package/dist/components/form/config.d.ts +35 -0
  181. package/dist/components/form/config.js +20 -0
  182. package/dist/components/form/config.js.map +1 -0
  183. package/dist/components/form/context.d.ts +34 -0
  184. package/dist/components/form/context.js +8 -0
  185. package/dist/components/form/context.js.map +1 -0
  186. package/dist/components/form/index.d.ts +3 -0
  187. package/dist/components/form/style/index.css +1 -0
  188. package/dist/components/formItem/FormItem.d.ts +144 -0
  189. package/dist/components/formItem/FormItem.js +218 -0
  190. package/dist/components/formItem/FormItem.js.map +1 -0
  191. package/dist/components/formItem/config.d.ts +21 -0
  192. package/dist/components/formItem/config.js +12 -0
  193. package/dist/components/formItem/config.js.map +1 -0
  194. package/dist/components/formItem/context.d.ts +22 -0
  195. package/dist/components/formItem/context.js +8 -0
  196. package/dist/components/formItem/context.js.map +1 -0
  197. package/dist/components/formItem/index.d.ts +3 -0
  198. package/dist/components/formItem/style/index.css +1 -0
  199. package/dist/components/icon/Icon.d.ts +117 -0
  200. package/dist/components/icon/Icon.js +116 -0
  201. package/dist/components/icon/Icon.js.map +1 -0
  202. package/dist/components/icon/config.d.ts +28 -0
  203. package/dist/components/icon/config.js +16 -0
  204. package/dist/components/icon/config.js.map +1 -0
  205. package/dist/components/icon/index.d.ts +4 -0
  206. package/dist/components/icon/style/index.css +1 -0
  207. package/dist/components/icon/type.d.ts +16 -0
  208. package/dist/components/image/Image.d.ts +21 -0
  209. package/dist/components/image/Image.js +68 -0
  210. package/dist/components/image/Image.js.map +1 -0
  211. package/dist/components/image/config.d.ts +21 -0
  212. package/dist/components/image/config.js +11 -0
  213. package/dist/components/image/config.js.map +1 -0
  214. package/dist/components/image/index.d.ts +4 -0
  215. package/dist/components/image/style/index.css +1 -0
  216. package/dist/components/index.d.ts +79 -0
  217. package/dist/components/index.js +124 -0
  218. package/dist/components/index.js.map +1 -0
  219. package/dist/components/layer/Layer.d.ts +410 -0
  220. package/dist/components/layer/Layer.js +557 -0
  221. package/dist/components/layer/Layer.js.map +1 -0
  222. package/dist/components/layer/index.d.ts +2 -0
  223. package/dist/components/layer/injectionKey.d.ts +5 -0
  224. package/dist/components/layer/injectionKey.js +6 -0
  225. package/dist/components/layer/injectionKey.js.map +1 -0
  226. package/dist/components/layer/style/index.css +1 -0
  227. package/dist/components/lcdFont/LcdFont.d.ts +126 -0
  228. package/dist/components/lcdFont/LcdFont.js +232 -0
  229. package/dist/components/lcdFont/LcdFont.js.map +1 -0
  230. package/dist/components/lcdFont/config.d.ts +43 -0
  231. package/dist/components/lcdFont/config.js +41 -0
  232. package/dist/components/lcdFont/config.js.map +1 -0
  233. package/dist/components/lcdFont/format.d.ts +8 -0
  234. package/dist/components/lcdFont/format.js +39 -0
  235. package/dist/components/lcdFont/format.js.map +1 -0
  236. package/dist/components/lcdFont/index.d.ts +5 -0
  237. package/dist/components/lcdFont/segments.d.ts +32 -0
  238. package/dist/components/lcdFont/segments.js +326 -0
  239. package/dist/components/lcdFont/segments.js.map +1 -0
  240. package/dist/components/lcdFont/style/index.css +1 -0
  241. package/dist/components/lcdFont/type.d.ts +26 -0
  242. package/dist/components/list/List.d.ts +480 -0
  243. package/dist/components/list/List.js +289 -0
  244. package/dist/components/list/List.js.map +1 -0
  245. package/dist/components/list/config.d.ts +3 -0
  246. package/dist/components/list/index.d.ts +3 -0
  247. package/dist/components/list/style/index.css +1 -0
  248. package/dist/components/loading/Loading.d.ts +97 -0
  249. package/dist/components/loading/Loading.js +124 -0
  250. package/dist/components/loading/Loading.js.map +1 -0
  251. package/dist/components/loading/config.d.ts +22 -0
  252. package/dist/components/loading/config.js +13 -0
  253. package/dist/components/loading/config.js.map +1 -0
  254. package/dist/components/loading/index.d.ts +3 -0
  255. package/dist/components/loading/style/index.css +1 -0
  256. package/dist/components/loading/type.d.ts +13 -0
  257. package/dist/components/mask/Mask.d.ts +79 -0
  258. package/dist/components/mask/Mask.js +82 -0
  259. package/dist/components/mask/Mask.js.map +1 -0
  260. package/dist/components/mask/config.d.ts +21 -0
  261. package/dist/components/mask/config.js +14 -0
  262. package/dist/components/mask/config.js.map +1 -0
  263. package/dist/components/mask/index.d.ts +3 -0
  264. package/dist/components/mask/style/mask.css +1 -0
  265. package/dist/components/match/Match copy.d.ts +1600 -0
  266. package/dist/components/match/Match.d.ts +1621 -0
  267. package/dist/components/match/Match.js +343 -0
  268. package/dist/components/match/Match.js.map +1 -0
  269. package/dist/components/match/config.d.ts +29 -0
  270. package/dist/components/match/config.js +17 -0
  271. package/dist/components/match/config.js.map +1 -0
  272. package/dist/components/match/index.d.ts +3 -0
  273. package/dist/components/match/style/index.css +1 -0
  274. package/dist/components/modal/Modal.d.ts +460 -0
  275. package/dist/components/modal/Modal.js +297 -0
  276. package/dist/components/modal/Modal.js.map +1 -0
  277. package/dist/components/modal/config.d.ts +33 -0
  278. package/dist/components/modal/config.js +19 -0
  279. package/dist/components/modal/config.js.map +1 -0
  280. package/dist/components/modal/index.d.ts +3 -0
  281. package/dist/components/modal/style/index.css +1 -0
  282. package/dist/components/notice/Notice.d.ts +137 -0
  283. package/dist/components/notice/Notice.js +192 -0
  284. package/dist/components/notice/Notice.js.map +1 -0
  285. package/dist/components/notice/index.d.ts +51 -0
  286. package/dist/components/notice/index.js +243 -0
  287. package/dist/components/notice/index.js.map +1 -0
  288. package/dist/components/notice/src/_util/index.d.ts +11 -0
  289. package/dist/components/notice/src/_util/index.js +50 -0
  290. package/dist/components/notice/src/_util/index.js.map +1 -0
  291. package/dist/components/notice/src/style/index.css +1 -0
  292. package/dist/components/notice/types.d.ts +98 -0
  293. package/dist/components/number/Number copy.d.ts +966 -0
  294. package/dist/components/number/Number.d.ts +1034 -0
  295. package/dist/components/number/Number.js +241 -0
  296. package/dist/components/number/Number.js.map +1 -0
  297. package/dist/components/number/config.d.ts +26 -0
  298. package/dist/components/number/config.js +15 -0
  299. package/dist/components/number/config.js.map +1 -0
  300. package/dist/components/number/index.d.ts +3 -0
  301. package/dist/components/number/style/index.css +1 -0
  302. package/dist/components/pagination/index.d.ts +3 -0
  303. package/dist/components/pagination/src/Pagination.d.ts +2830 -0
  304. package/dist/components/pagination/src/Pagination.js +288 -0
  305. package/dist/components/pagination/src/Pagination.js.map +1 -0
  306. package/dist/components/pagination/src/config.d.ts +25 -0
  307. package/dist/components/pagination/src/config.js +20 -0
  308. package/dist/components/pagination/src/config.js.map +1 -0
  309. package/dist/components/pagination/src/style/index.css +1 -0
  310. package/dist/components/picture/Picture.d.ts +18 -0
  311. package/dist/components/picture/Picture.js +254 -0
  312. package/dist/components/picture/Picture.js.map +1 -0
  313. package/dist/components/picture/PictureToolbar.d.ts +29 -0
  314. package/dist/components/picture/PictureToolbar.js +97 -0
  315. package/dist/components/picture/PictureToolbar.js.map +1 -0
  316. package/dist/components/picture/PictureViewport.d.ts +47 -0
  317. package/dist/components/picture/PictureViewport.js +203 -0
  318. package/dist/components/picture/PictureViewport.js.map +1 -0
  319. package/dist/components/picture/config.d.ts +16 -0
  320. package/dist/components/picture/config.js +16 -0
  321. package/dist/components/picture/config.js.map +1 -0
  322. package/dist/components/picture/index.d.ts +5 -0
  323. package/dist/components/picture/pictureFlip.d.ts +16 -0
  324. package/dist/components/picture/pictureFlip.js +103 -0
  325. package/dist/components/picture/pictureFlip.js.map +1 -0
  326. package/dist/components/picture/style/index.css +1 -0
  327. package/dist/components/progress/Progress.d.ts +94 -0
  328. package/dist/components/progress/Progress.js +112 -0
  329. package/dist/components/progress/Progress.js.map +1 -0
  330. package/dist/components/progress/index.d.ts +1 -0
  331. package/dist/components/progress/style/index.css +1 -0
  332. package/dist/components/radio/Radio.d.ts +112 -0
  333. package/dist/components/radio/Radio.js +130 -0
  334. package/dist/components/radio/Radio.js.map +1 -0
  335. package/dist/components/radio/config.d.ts +29 -0
  336. package/dist/components/radio/config.js +18 -0
  337. package/dist/components/radio/config.js.map +1 -0
  338. package/dist/components/radio/index.d.ts +3 -0
  339. package/dist/components/radio/style/index.css +1 -0
  340. package/dist/components/scrollbar/Scrollbar.d.ts +93 -0
  341. package/dist/components/scrollbar/Scrollbar.js +515 -0
  342. package/dist/components/scrollbar/Scrollbar.js.map +1 -0
  343. package/dist/components/scrollbar/index.d.ts +1 -0
  344. package/dist/components/scrollbar/style/index.css +1 -0
  345. package/dist/components/sheet/Sheet.d.ts +1448 -0
  346. package/dist/components/sheet/Sheet.js +592 -0
  347. package/dist/components/sheet/Sheet.js.map +1 -0
  348. package/dist/components/sheet/_cell.d.ts +181 -0
  349. package/dist/components/sheet/_cell.js +132 -0
  350. package/dist/components/sheet/_cell.js.map +1 -0
  351. package/dist/components/sheet/_props.d.ts +170 -0
  352. package/dist/components/sheet/_props.js +183 -0
  353. package/dist/components/sheet/_props.js.map +1 -0
  354. package/dist/components/sheet/_row.d.ts +2 -0
  355. package/dist/components/sheet/_row.js +14 -0
  356. package/dist/components/sheet/_row.js.map +1 -0
  357. package/dist/components/sheet/_tbody.d.ts +348 -0
  358. package/dist/components/sheet/_tbody.js +255 -0
  359. package/dist/components/sheet/_tbody.js.map +1 -0
  360. package/dist/components/sheet/_tfoot.d.ts +195 -0
  361. package/dist/components/sheet/_tfoot.js +78 -0
  362. package/dist/components/sheet/_tfoot.js.map +1 -0
  363. package/dist/components/sheet/_thead.d.ts +529 -0
  364. package/dist/components/sheet/_thead.js +148 -0
  365. package/dist/components/sheet/_thead.js.map +1 -0
  366. package/dist/components/sheet/_use.d.ts +38 -0
  367. package/dist/components/sheet/_use.js +493 -0
  368. package/dist/components/sheet/_use.js.map +1 -0
  369. package/dist/components/sheet/_util.d.ts +34 -0
  370. package/dist/components/sheet/_util.js +111 -0
  371. package/dist/components/sheet/_util.js.map +1 -0
  372. package/dist/components/sheet/index.d.ts +1 -0
  373. package/dist/components/sheet/style/index.css +1 -0
  374. package/dist/components/slideDown/SlideDown.d.ts +62 -0
  375. package/dist/components/slideDown/SlideDown.js +128 -0
  376. package/dist/components/slideDown/SlideDown.js.map +1 -0
  377. package/dist/components/slideDown/index.d.ts +1 -0
  378. package/dist/components/slider/Slider.d.ts +1726 -0
  379. package/dist/components/slider/Slider.js +471 -0
  380. package/dist/components/slider/Slider.js.map +1 -0
  381. package/dist/components/slider/index.d.ts +1 -0
  382. package/dist/components/slider/style/index.css +1 -0
  383. package/dist/components/svgIcon/SvgIcon.d.ts +37 -0
  384. package/dist/components/svgIcon/SvgIcon.js +78 -0
  385. package/dist/components/svgIcon/SvgIcon.js.map +1 -0
  386. package/dist/components/svgIcon/index.d.ts +3 -0
  387. package/dist/components/svgIcon/style/index.css +1 -0
  388. package/dist/components/switch/Switch.d.ts +105 -0
  389. package/dist/components/switch/Switch.js +158 -0
  390. package/dist/components/switch/Switch.js.map +1 -0
  391. package/dist/components/switch/config.d.ts +16 -0
  392. package/dist/components/switch/config.js +11 -0
  393. package/dist/components/switch/config.js.map +1 -0
  394. package/dist/components/switch/index.d.ts +1 -0
  395. package/dist/components/switch/style/index.css +1 -0
  396. package/dist/components/tab/Tab.d.ts +113 -0
  397. package/dist/components/tab/Tab.js +485 -0
  398. package/dist/components/tab/Tab.js.map +1 -0
  399. package/dist/components/tab/index.d.ts +2 -0
  400. package/dist/components/tab/style/index.css +1 -0
  401. package/dist/components/textarea/Textarea.d.ts +37 -0
  402. package/dist/components/textarea/Textarea.js +193 -0
  403. package/dist/components/textarea/Textarea.js.map +1 -0
  404. package/dist/components/textarea/config.d.ts +30 -0
  405. package/dist/components/textarea/config.js +16 -0
  406. package/dist/components/textarea/config.js.map +1 -0
  407. package/dist/components/textarea/index.d.ts +4 -0
  408. package/dist/components/textarea/style/index.css +1 -0
  409. package/dist/components/time/Dial.js +7 -0
  410. package/dist/components/time/Dial.js.map +1 -0
  411. package/dist/components/time/Dial.vue_vue_type_script_setup_true_lang.js +178 -0
  412. package/dist/components/time/Dial.vue_vue_type_script_setup_true_lang.js.map +1 -0
  413. package/dist/components/time/TimePicker.d.ts +1301 -0
  414. package/dist/components/time/TimePicker.js +162 -0
  415. package/dist/components/time/TimePicker.js.map +1 -0
  416. package/dist/components/time/_use/useTimeModules.d.ts +1 -0
  417. package/dist/components/time/index.d.ts +1 -0
  418. package/dist/components/time/style/dial.css +1 -0
  419. package/dist/components/time/style/index.css +1 -0
  420. package/dist/components/toggle/Toggle.d.ts +140 -0
  421. package/dist/components/toggle/Toggle.js +209 -0
  422. package/dist/components/toggle/Toggle.js.map +1 -0
  423. package/dist/components/toggle/index.d.ts +1 -0
  424. package/dist/components/toggle/style/index.css +1 -0
  425. package/dist/components/toggle/style/scale.css +1 -0
  426. package/dist/components/toggle/style/translate.css +1 -0
  427. package/dist/components/tooltip/Tooltip.d.ts +536 -0
  428. package/dist/components/tooltip/Tooltip.js +51 -0
  429. package/dist/components/tooltip/Tooltip.js.map +1 -0
  430. package/dist/components/tooltip/index.d.ts +1 -0
  431. package/dist/components/tooltip/style/index.css +1 -0
  432. package/dist/components/tree/Tree.d.ts +187 -0
  433. package/dist/components/tree/Tree.js +229 -0
  434. package/dist/components/tree/Tree.js.map +1 -0
  435. package/dist/components/tree/TreeItem.d.ts +86 -0
  436. package/dist/components/tree/TreeItem.js +152 -0
  437. package/dist/components/tree/TreeItem.js.map +1 -0
  438. package/dist/components/tree/TreeList.d.ts +86 -0
  439. package/dist/components/tree/TreeList.js +52 -0
  440. package/dist/components/tree/TreeList.js.map +1 -0
  441. package/dist/components/tree/_use/treeState.d.ts +45 -0
  442. package/dist/components/tree/_use/treeState.js +417 -0
  443. package/dist/components/tree/_use/treeState.js.map +1 -0
  444. package/dist/components/tree/config.d.ts +27 -0
  445. package/dist/components/tree/config.js +16 -0
  446. package/dist/components/tree/config.js.map +1 -0
  447. package/dist/components/tree/index.d.ts +4 -0
  448. package/dist/components/tree/style/index.css +1 -0
  449. package/dist/components/tree-choose/TreeChoose.d.ts +833 -0
  450. package/dist/components/tree-choose/TreeChoose.js +320 -0
  451. package/dist/components/tree-choose/TreeChoose.js.map +1 -0
  452. package/dist/components/tree-choose/config.d.ts +41 -0
  453. package/dist/components/tree-choose/config.js +19 -0
  454. package/dist/components/tree-choose/config.js.map +1 -0
  455. package/dist/components/tree-choose/index.d.ts +4 -0
  456. package/dist/components/tree-choose/style/index.css +1 -0
  457. package/dist/components/trigger/Trigger.d.ts +921 -0
  458. package/dist/components/trigger/Trigger.js +105 -0
  459. package/dist/components/trigger/Trigger.js.map +1 -0
  460. package/dist/components/trigger/index.d.ts +1 -0
  461. package/dist/components/trigger/style/index.css +2 -0
  462. package/dist/components/upload/Upload.d.ts +249 -0
  463. package/dist/components/upload/Upload.js +342 -0
  464. package/dist/components/upload/Upload.js.map +1 -0
  465. package/dist/components/upload/config.d.ts +39 -0
  466. package/dist/components/upload/config.js +21 -0
  467. package/dist/components/upload/config.js.map +1 -0
  468. package/dist/components/upload/index.d.ts +4 -0
  469. package/dist/components/upload/style/index.css +1 -0
  470. package/dist/components/upload/types.d.ts +47 -0
  471. package/dist/components/virtual/Virtual.d.ts +57 -0
  472. package/dist/components/virtual/Virtual.js +62 -0
  473. package/dist/components/virtual/Virtual.js.map +1 -0
  474. package/dist/components/virtual/Virtual/345/216/237/347/211/210.d.ts +44 -0
  475. package/dist/components/virtual/index.d.ts +4 -0
  476. package/dist/components/virtual/style/index.css +1 -0
  477. package/dist/components/virtual/useVirtualList.d.ts +50 -0
  478. package/dist/components/virtual/useVirtualList.js +376 -0
  479. package/dist/components/virtual/useVirtualList.js.map +1 -0
  480. package/dist/components/write/Write.d.ts +532 -0
  481. package/dist/components/write/Write.js +228 -0
  482. package/dist/components/write/Write.js.map +1 -0
  483. package/dist/components/write/index.d.ts +1 -0
  484. package/dist/components/write/style/index.css +1 -0
  485. package/dist/config/dictionary.d.ts +21 -0
  486. package/dist/config/dictionary.js +28 -0
  487. package/dist/config/dictionary.js.map +1 -0
  488. package/dist/config/i18n.d.ts +22 -0
  489. package/dist/config/i18n.js +53 -0
  490. package/dist/config/i18n.js.map +1 -0
  491. package/dist/config/plugin.d.ts +88 -0
  492. package/dist/config/plugin.js +13 -0
  493. package/dist/config/plugin.js.map +1 -0
  494. package/dist/config/types.d.ts +56 -0
  495. package/dist/directives/clickOutside.d.ts +10 -0
  496. package/dist/directives/clickOutside.js +69 -0
  497. package/dist/directives/clickOutside.js.map +1 -0
  498. package/dist/directives/index.d.ts +3 -0
  499. package/dist/directives/index.js +13 -0
  500. package/dist/directives/index.js.map +1 -0
  501. package/dist/directives/loading.d.ts +19 -0
  502. package/dist/directives/loading.js +64 -0
  503. package/dist/directives/loading.js.map +1 -0
  504. package/dist/index.d.ts +127 -0
  505. package/dist/index.js +91 -0
  506. package/dist/locales/de-DE/index.d.ts +144 -0
  507. package/dist/locales/de-DE/index.js +140 -0
  508. package/dist/locales/de-DE/index.js.map +1 -0
  509. package/dist/locales/en-US/index.d.ts +144 -0
  510. package/dist/locales/en-US/index.js +140 -0
  511. package/dist/locales/en-US/index.js.map +1 -0
  512. package/dist/locales/index.d.ts +3 -0
  513. package/dist/locales/zh-CN/index.d.ts +144 -0
  514. package/dist/locales/zh-CN/index.js +140 -0
  515. package/dist/locales/zh-CN/index.js.map +1 -0
  516. package/dist/plugin.d.ts +6 -0
  517. package/dist/plugin.js +38 -0
  518. package/dist/plugin.js.map +1 -0
  519. package/dist/styles/index.css +49 -0
  520. package/dist/theme/_transition.css +169 -0
  521. package/dist/theme/index.css +5 -0
  522. package/dist/theme/tokens/_base.css +7 -0
  523. package/dist/theme/tokens/_common.css +37 -0
  524. package/dist/theme/tokens/_scrollbar.css +53 -0
  525. package/dist/theme/tokens/_size.css +18 -0
  526. package/dist/theme/tokens/_text.css +16 -0
  527. package/dist/theme/tokens/_var.css +1087 -0
  528. package/dist/theme/tokens/components/audioPlayer.css +542 -0
  529. package/dist/theme/tokens/components/btn.css +253 -0
  530. package/dist/theme/tokens/components/btnGroup.css +68 -0
  531. package/dist/theme/tokens/components/cascade.css +77 -0
  532. package/dist/theme/tokens/components/checkbox.css +100 -0
  533. package/dist/theme/tokens/components/choose.css +175 -0
  534. package/dist/theme/tokens/components/choose2.css +242 -0
  535. package/dist/theme/tokens/components/chooseItem.css +54 -0
  536. package/dist/theme/tokens/components/circleProgress.css +61 -0
  537. package/dist/theme/tokens/components/close.css +12 -0
  538. package/dist/theme/tokens/components/colorPicker.css +404 -0
  539. package/dist/theme/tokens/components/confirm.css +128 -0
  540. package/dist/theme/tokens/components/copy.css +80 -0
  541. package/dist/theme/tokens/components/cornerEars.css +102 -0
  542. package/dist/theme/tokens/components/date/days.css +79 -0
  543. package/dist/theme/tokens/components/date/index.css +249 -0
  544. package/dist/theme/tokens/components/date/months.css +68 -0
  545. package/dist/theme/tokens/components/drawer.css +189 -0
  546. package/dist/theme/tokens/components/ellipsis.css +46 -0
  547. package/dist/theme/tokens/components/empty.css +24 -0
  548. package/dist/theme/tokens/components/equalizer.css +51 -0
  549. package/dist/theme/tokens/components/fallback.css +4 -0
  550. package/dist/theme/tokens/components/form.css +50 -0
  551. package/dist/theme/tokens/components/formItem.css +194 -0
  552. package/dist/theme/tokens/components/icon.css +41 -0
  553. package/dist/theme/tokens/components/image.css +70 -0
  554. package/dist/theme/tokens/components/layer.css +190 -0
  555. package/dist/theme/tokens/components/lcdFont.css +121 -0
  556. package/dist/theme/tokens/components/list.css +97 -0
  557. package/dist/theme/tokens/components/loading.css +64 -0
  558. package/dist/theme/tokens/components/mask.css +26 -0
  559. package/dist/theme/tokens/components/match.css +119 -0
  560. package/dist/theme/tokens/components/modal.css +136 -0
  561. package/dist/theme/tokens/components/notice.css +264 -0
  562. package/dist/theme/tokens/components/number.css +150 -0
  563. package/dist/theme/tokens/components/pagination.css +215 -0
  564. package/dist/theme/tokens/components/picture.css +299 -0
  565. package/dist/theme/tokens/components/progress.css +101 -0
  566. package/dist/theme/tokens/components/radio.css +183 -0
  567. package/dist/theme/tokens/components/scrollbar.css +160 -0
  568. package/dist/theme/tokens/components/sheet.css +518 -0
  569. package/dist/theme/tokens/components/slider.css +171 -0
  570. package/dist/theme/tokens/components/svgIcon.css +6 -0
  571. package/dist/theme/tokens/components/switch.css +67 -0
  572. package/dist/theme/tokens/components/tab.css +215 -0
  573. package/dist/theme/tokens/components/textarea.css +109 -0
  574. package/dist/theme/tokens/components/time/dial.css +123 -0
  575. package/dist/theme/tokens/components/time/index.css +29 -0
  576. package/dist/theme/tokens/components/toggle/index.css +14 -0
  577. package/dist/theme/tokens/components/toggle/scale.css +34 -0
  578. package/dist/theme/tokens/components/toggle/translate.css +41 -0
  579. package/dist/theme/tokens/components/tooltip.css +77 -0
  580. package/dist/theme/tokens/components/tree-choose.css +154 -0
  581. package/dist/theme/tokens/components/tree.css +172 -0
  582. package/dist/theme/tokens/components/trigger.css +90 -0
  583. package/dist/theme/tokens/components/upload.css +302 -0
  584. package/dist/theme/tokens/components/virtual.css +6 -0
  585. package/dist/theme/tokens/components/write.css +155 -0
  586. package/dist/theme/tokens/iconfont/iconfont.css +103 -0
  587. package/dist/theme/tokens/iconfont/iconfont.ttf +0 -0
  588. package/dist/theme/tokens/iconfont/iconfont.woff +0 -0
  589. package/dist/theme/tokens/iconfont/iconfont.woff2 +0 -0
  590. package/dist/theme/tokens/index.css +19 -0
  591. package/dist/use/index.d.ts +34 -0
  592. package/dist/use/toggle/types.d.ts +27 -0
  593. package/dist/use/toggle/useToggle.d.ts +22 -0
  594. package/dist/use/toggle/useToggleArray.d.ts +14 -0
  595. package/dist/use/toggle/useToggleArray.js +36 -0
  596. package/dist/use/toggle/useToggleArray.js.map +1 -0
  597. package/dist/use/toggle/useToggleCycle.d.ts +11 -0
  598. package/dist/use/toggle/useToggleCycle.js +88 -0
  599. package/dist/use/toggle/useToggleCycle.js.map +1 -0
  600. package/dist/use/toggle/useToggleMap.d.ts +10 -0
  601. package/dist/use/toggle/useToggleObject.d.ts +13 -0
  602. package/dist/use/useAudioPlayer.d.ts +160 -0
  603. package/dist/use/useAudioPlayer.js +799 -0
  604. package/dist/use/useAudioPlayer.js.map +1 -0
  605. package/dist/use/useBoundingClientRect.d.ts +14 -0
  606. package/dist/use/useBoundingClientRect.js +54 -0
  607. package/dist/use/useBoundingClientRect.js.map +1 -0
  608. package/dist/use/useChildComponentsCollector.js +30 -0
  609. package/dist/use/useChildComponentsCollector.js.map +1 -0
  610. package/dist/use/useComponentClass.d.ts +1 -0
  611. package/dist/use/useComponentClass.js +6 -0
  612. package/dist/use/useComponentClass.js.map +1 -0
  613. package/dist/use/useComponentConfig.d.ts +10 -0
  614. package/dist/use/useComponentConfig.js +31 -0
  615. package/dist/use/useComponentConfig.js.map +1 -0
  616. package/dist/use/useCount.d.ts +13 -0
  617. package/dist/use/useCount.js +36 -0
  618. package/dist/use/useCount.js.map +1 -0
  619. package/dist/use/useDate.d.ts +53 -0
  620. package/dist/use/useDate.js +280 -0
  621. package/dist/use/useDate.js.map +1 -0
  622. package/dist/use/useDelay.d.ts +5 -0
  623. package/dist/use/useDelay.js +38 -0
  624. package/dist/use/useDelay.js.map +1 -0
  625. package/dist/use/useDrag.d.ts +17 -0
  626. package/dist/use/useElement.d.ts +15 -0
  627. package/dist/use/useElement.js +41 -0
  628. package/dist/use/useElement.js.map +1 -0
  629. package/dist/use/useEscStack.d.ts +14 -0
  630. package/dist/use/useEscStack.js +62 -0
  631. package/dist/use/useEscStack.js.map +1 -0
  632. package/dist/use/useEvent.d.ts +9 -0
  633. package/dist/use/useEvent.js +43 -0
  634. package/dist/use/useEvent.js.map +1 -0
  635. package/dist/use/useFormItem.d.ts +9 -0
  636. package/dist/use/useFormItem.js +20 -0
  637. package/dist/use/useFormItem.js.map +1 -0
  638. package/dist/use/useGlobalZIndex.d.ts +6 -0
  639. package/dist/use/useGlobalZIndex.js +28 -0
  640. package/dist/use/useGlobalZIndex.js.map +1 -0
  641. package/dist/use/useMouse.d.ts +15 -0
  642. package/dist/use/useMouse.js +36 -0
  643. package/dist/use/useMouse.js.map +1 -0
  644. package/dist/use/useMousePositionInElement.d.ts +6 -0
  645. package/dist/use/useMousePositionInElement.js +27 -0
  646. package/dist/use/useMousePositionInElement.js.map +1 -0
  647. package/dist/use/useParentNode.d.ts +3 -0
  648. package/dist/use/useParentNode.js +25 -0
  649. package/dist/use/useParentNode.js.map +1 -0
  650. package/dist/use/usePercentDrag.d.ts +20 -0
  651. package/dist/use/usePercentDrag.js +59 -0
  652. package/dist/use/usePercentDrag.js.map +1 -0
  653. package/dist/use/usePictureViewport.d.ts +57 -0
  654. package/dist/use/usePictureViewport.js +229 -0
  655. package/dist/use/usePictureViewport.js.map +1 -0
  656. package/dist/use/useRequest.d.ts +7 -0
  657. package/dist/use/useRequest.js +31 -0
  658. package/dist/use/useRequest.js.map +1 -0
  659. package/dist/use/useScaleFromPoint.d.ts +57 -0
  660. package/dist/use/useScaleFromPoint.js +325 -0
  661. package/dist/use/useScaleFromPoint.js.map +1 -0
  662. package/dist/use/useScroll.d.ts +9 -0
  663. package/dist/use/useScroll.js +60 -0
  664. package/dist/use/useScroll.js.map +1 -0
  665. package/dist/use/useSearch.d.ts +11 -0
  666. package/dist/use/useSearch.js +65 -0
  667. package/dist/use/useSearch.js.map +1 -0
  668. package/dist/use/useSlot.d.ts +10 -0
  669. package/dist/use/useSlot.js +57 -0
  670. package/dist/use/useSlot.js.map +1 -0
  671. package/dist/use/useTabIndex.d.ts +1 -0
  672. package/dist/use/useTabIndex.js +18 -0
  673. package/dist/use/useTabIndex.js.map +1 -0
  674. package/dist/use/useUII18n.js +26 -0
  675. package/dist/use/useUII18n.js.map +1 -0
  676. package/dist/use/useUpload.d.ts +49 -0
  677. package/dist/use/useUpload.js +396 -0
  678. package/dist/use/useUpload.js.map +1 -0
  679. package/dist/use/useVisibleResize.d.ts +6 -0
  680. package/dist/use/useVisibleResize.js +77 -0
  681. package/dist/use/useVisibleResize.js.map +1 -0
  682. package/dist/util/calc.d.ts +40 -0
  683. package/dist/util/calc.js +239 -0
  684. package/dist/util/calc.js.map +1 -0
  685. package/dist/util/colors.d.ts +78 -0
  686. package/dist/util/colors.js +320 -0
  687. package/dist/util/colors.js.map +1 -0
  688. package/dist/util/cssVars.d.ts +62 -0
  689. package/dist/util/cssVars.js +170 -0
  690. package/dist/util/cssVars.js.map +1 -0
  691. package/dist/util/dom.d.ts +65 -0
  692. package/dist/util/dom.js +212 -0
  693. package/dist/util/dom.js.map +1 -0
  694. package/dist/util/index.d.ts +5 -0
  695. package/dist/util/tools.d.ts +54 -0
  696. package/dist/util/tools.js +90 -0
  697. package/dist/util/tools.js.map +1 -0
  698. package/dist/util/vnode.d.ts +2 -0
  699. package/package.json +88 -0
@@ -0,0 +1,28 @@
1
+ import { getCurrentInstance, onMounted, ref } from "vue";
2
+ //#region use/useGlobalZIndex.ts
3
+ /**
4
+ * 功能:全局自增(onMounted时自增)z-index,用以所有弹窗类型的东西
5
+ */
6
+ var __will_ui_global_z_index = 100;
7
+ function useGlobalZIndex() {
8
+ const zIndex = ref(__will_ui_global_z_index);
9
+ function add(delta) {
10
+ __will_ui_global_z_index += delta ?? 1;
11
+ zIndex.value = __will_ui_global_z_index;
12
+ return zIndex.value;
13
+ }
14
+ if (getCurrentInstance()) onMounted(add);
15
+ else add();
16
+ return {
17
+ zIndex,
18
+ add,
19
+ get: () => zIndex.value,
20
+ set(i) {
21
+ zIndex.value = i;
22
+ }
23
+ };
24
+ }
25
+ //#endregion
26
+ export { useGlobalZIndex as default };
27
+
28
+ //# sourceMappingURL=useGlobalZIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGlobalZIndex.js","names":[],"sources":["../../use/useGlobalZIndex.ts"],"sourcesContent":["/**\r\n * 功能:全局自增(onMounted时自增)z-index,用以所有弹窗类型的东西\r\n */\r\nimport { getCurrentInstance, onMounted, ref } from \"vue\"\r\nlet __will_ui_global_z_index = 100\r\n\r\nexport default function useGlobalZIndex() {\r\n const zIndex = ref(__will_ui_global_z_index)\r\n function add(delta?: number) {\r\n __will_ui_global_z_index += delta ?? 1\r\n zIndex.value = __will_ui_global_z_index\r\n return zIndex.value\r\n }\r\n if (getCurrentInstance()) {\r\n onMounted(add)\r\n } else {\r\n add()\r\n }\r\n return {\r\n zIndex,\r\n add,\r\n get: () => zIndex.value,\r\n set(i: number) {\r\n zIndex.value = i\r\n },\r\n }\r\n}\r\n"],"mappings":";;;;;AAIA,IAAI,2BAA2B;AAE/B,SAAwB,kBAAkB;CACxC,MAAM,SAAS,IAAI,wBAAwB;CAC3C,SAAS,IAAI,OAAgB;EAC3B,4BAA4B,SAAS;EACrC,OAAO,QAAQ;EACf,OAAO,OAAO;CAChB;CACA,IAAI,mBAAmB,GACrB,UAAU,GAAG;MAEb,IAAI;CAEN,OAAO;EACL;EACA;EACA,WAAW,OAAO;EAClB,IAAI,GAAW;GACb,OAAO,QAAQ;EACjB;CACF;AACF"}
@@ -0,0 +1,15 @@
1
+ export default function useMouse(callbackHandler?: {
2
+ mousemove?: Function;
3
+ mousedown?: Function;
4
+ mouseup?: Function;
5
+ mouseover?: Function;
6
+ }): {
7
+ client: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ page: {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ };
@@ -0,0 +1,36 @@
1
+ import useEvent from "./useEvent.js";
2
+ import { reactive } from "vue";
3
+ //#region use/useMouse.ts
4
+ function useMouse(callbackHandler) {
5
+ const doc = document;
6
+ const client = reactive({
7
+ x: 0,
8
+ y: 0
9
+ });
10
+ const page = reactive({
11
+ x: 0,
12
+ y: 0
13
+ });
14
+ function handler(e) {
15
+ ({clientX: client.x, clientY: client.y, pageX: page.x, pageY: page.y} = e);
16
+ if (callbackHandler) {
17
+ const { mousemove: mm, mousedown: md, mouseup: mu, mouseover: mo } = callbackHandler;
18
+ if (e.type === "mousemove") mm?.(e);
19
+ if (e.type === "mousedown") md?.(e);
20
+ if (e.type === "mouseover") mo?.(e);
21
+ if (e.type === "mouseup") mu?.(e);
22
+ }
23
+ }
24
+ useEvent(doc, "mousemove", handler);
25
+ useEvent(doc, "mousedown", handler);
26
+ useEvent(doc, "mouseup", handler);
27
+ useEvent(doc, "mouseover", handler);
28
+ return {
29
+ client,
30
+ page
31
+ };
32
+ }
33
+ //#endregion
34
+ export { useMouse as default };
35
+
36
+ //# sourceMappingURL=useMouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMouse.js","names":[],"sources":["../../use/useMouse.ts"],"sourcesContent":["import { reactive } from \"vue\"\r\nimport useEvent from \"./useEvent\"\r\nexport default function useMouse(callbackHandler?: {\r\n mousemove?: Function\r\n mousedown?: Function\r\n mouseup?: Function\r\n mouseover?: Function\r\n}) {\r\n const doc = document\r\n const client = reactive({ x: 0, y: 0 })\r\n const page = reactive({ x: 0, y: 0 })\r\n function handler(e: MouseEvent) {\r\n ;({\r\n clientX: client.x,\r\n clientY: client.y,\r\n pageX: page.x,\r\n pageY: page.y,\r\n } = e)\r\n\r\n if (callbackHandler) {\r\n const {\r\n mousemove: mm,\r\n mousedown: md,\r\n mouseup: mu,\r\n mouseover: mo,\r\n } = callbackHandler\r\n if (e.type === \"mousemove\") {\r\n mm?.(e)\r\n }\r\n if (e.type === \"mousedown\") {\r\n md?.(e)\r\n }\r\n if (e.type === \"mouseover\") {\r\n mo?.(e)\r\n }\r\n if (e.type === \"mouseup\") {\r\n mu?.(e)\r\n }\r\n }\r\n }\r\n useEvent(doc, \"mousemove\", handler)\r\n useEvent(doc, \"mousedown\", handler)\r\n useEvent(doc, \"mouseup\", handler)\r\n useEvent(doc, \"mouseover\", handler)\r\n return {\r\n client,\r\n page,\r\n }\r\n}\r\n"],"mappings":";;;AAEA,SAAwB,SAAS,iBAK9B;CACD,MAAM,MAAM;CACZ,MAAM,SAAS,SAAS;EAAE,GAAG;EAAG,GAAG;CAAE,CAAC;CACtC,MAAM,OAAO,SAAS;EAAE,GAAG;EAAG,GAAG;CAAE,CAAC;CACpC,SAAS,QAAQ,GAAe;EAC7B,CAAC,CACA,SAAS,OAAO,GAChB,SAAS,OAAO,GAChB,OAAO,KAAK,GACZ,OAAO,KAAK,KACV;EAEJ,IAAI,iBAAiB;GACnB,MAAM,EACJ,WAAW,IACX,WAAW,IACX,SAAS,IACT,WAAW,OACT;GACJ,IAAI,EAAE,SAAS,aACb,KAAK,CAAC;GAER,IAAI,EAAE,SAAS,aACb,KAAK,CAAC;GAER,IAAI,EAAE,SAAS,aACb,KAAK,CAAC;GAER,IAAI,EAAE,SAAS,WACb,KAAK,CAAC;EAEV;CACF;CACA,SAAS,KAAK,aAAa,OAAO;CAClC,SAAS,KAAK,aAAa,OAAO;CAClC,SAAS,KAAK,WAAW,OAAO;CAChC,SAAS,KAAK,aAAa,OAAO;CAClC,OAAO;EACL;EACA;CACF;AACF"}
@@ -0,0 +1,6 @@
1
+ type PositionType = number | "left" | "center" | "right" | "bottom" | "top";
2
+ export default function useMousePositionInElement(elem: any, triggerEvent?: keyof GlobalEventHandlersEventMap): {
3
+ x: import('vue').Ref<PositionType, PositionType>;
4
+ y: import('vue').Ref<PositionType, PositionType>;
5
+ };
6
+ export {};
@@ -0,0 +1,27 @@
1
+ import { getBoundingClientRect } from "../util/dom.js";
2
+ import useEvent from "./useEvent.js";
3
+ import { ref } from "vue";
4
+ //#region use/useMousePositionInElement.ts
5
+ function useMousePositionInElement(elem, triggerEvent = "click") {
6
+ const x = ref();
7
+ const y = ref();
8
+ function handleEvent(e) {
9
+ const elemRect = getBoundingClientRect(elem);
10
+ x.value = e.clientX - elemRect.x;
11
+ y.value = e.clientY - elemRect.y;
12
+ }
13
+ function reset() {
14
+ x.value = void 0;
15
+ y.value = void 0;
16
+ }
17
+ useEvent(elem, triggerEvent, handleEvent);
18
+ useEvent(elem, "mouseleave", reset);
19
+ return {
20
+ x,
21
+ y
22
+ };
23
+ }
24
+ //#endregion
25
+ export { useMousePositionInElement as default };
26
+
27
+ //# sourceMappingURL=useMousePositionInElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMousePositionInElement.js","names":[],"sources":["../../use/useMousePositionInElement.ts"],"sourcesContent":["import { ref } from \"vue\"\r\nimport { getBoundingClientRect } from \"../util\"\r\nimport useEvent from \"./useEvent\"\r\ntype PositionType = number | \"left\" | \"center\" | \"right\" | \"bottom\" | \"top\"\r\nexport default function useMousePositionInElement(\r\n elem: any,\r\n triggerEvent: keyof GlobalEventHandlersEventMap = \"click\"\r\n) {\r\n const x = ref<PositionType>()\r\n const y = ref<PositionType>()\r\n function handleEvent(e: MouseEvent) {\r\n const elemRect = getBoundingClientRect(elem)\r\n x.value = e.clientX - elemRect.x\r\n y.value = e.clientY - elemRect.y\r\n }\r\n function reset() {\r\n x.value = undefined\r\n y.value = undefined\r\n }\r\n useEvent(elem, triggerEvent, handleEvent)\r\n useEvent(elem, \"mouseleave\", reset)\r\n return { x, y }\r\n}\r\n"],"mappings":";;;;AAIA,SAAwB,0BACtB,MACA,eAAkD,SAClD;CACA,MAAM,IAAI,IAAkB;CAC5B,MAAM,IAAI,IAAkB;CAC5B,SAAS,YAAY,GAAe;EAClC,MAAM,WAAW,sBAAsB,IAAI;EAC3C,EAAE,QAAQ,EAAE,UAAU,SAAS;EAC/B,EAAE,QAAQ,EAAE,UAAU,SAAS;CACjC;CACA,SAAS,QAAQ;EACf,EAAE,QAAQ,KAAA;EACV,EAAE,QAAQ,KAAA;CACZ;CACA,SAAS,MAAM,cAAc,WAAW;CACxC,SAAS,MAAM,cAAc,KAAK;CAClC,OAAO;EAAE;EAAG;CAAE;AAChB"}
@@ -0,0 +1,3 @@
1
+ export default function useParentNode(elem: any): {
2
+ parentNode: import('vue').Ref<HTMLElement, HTMLElement>;
3
+ };
@@ -0,0 +1,25 @@
1
+ import { getStyle } from "../util/dom.js";
2
+ import useElement from "./useElement.js";
3
+ import { onMounted, onUpdated, ref } from "vue";
4
+ //#region use/useParentNode.ts
5
+ function useParentNode(elem) {
6
+ const parentNode = ref();
7
+ const { el } = useElement(elem);
8
+ function getPNode() {
9
+ let _node;
10
+ const _el = el.value;
11
+ if (_el === void 0) console.warn("获取的节点为undefined");
12
+ else {
13
+ _node = _el.parentNode;
14
+ if (getStyle(_node, "position") === "static") _node.style.position = "relative";
15
+ parentNode.value = _node;
16
+ }
17
+ }
18
+ onMounted(getPNode);
19
+ onUpdated(getPNode);
20
+ return { parentNode };
21
+ }
22
+ //#endregion
23
+ export { useParentNode as default };
24
+
25
+ //# sourceMappingURL=useParentNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useParentNode.js","names":[],"sources":["../../use/useParentNode.ts"],"sourcesContent":["import { onMounted, ref, onUpdated } from \"vue\"\r\nimport { getStyle } from \"../util\"\r\nimport useElement from \"./useElement\"\r\n\r\nexport default function useParentNode(elem: any) {\r\n const parentNode = ref<HTMLElement>()\r\n const { el } = useElement(elem)\r\n function getPNode() {\r\n let _node: HTMLElement\r\n const _el = el.value\r\n if (_el === undefined) {\r\n console.warn(\"获取的节点为undefined\")\r\n } else {\r\n _node = _el.parentNode\r\n const position = getStyle(_node, \"position\")\r\n if (position === \"static\") {\r\n _node.style.position = \"relative\"\r\n }\r\n parentNode.value = _node\r\n }\r\n }\r\n onMounted(getPNode)\r\n onUpdated(getPNode)\r\n return {\r\n parentNode,\r\n }\r\n}\r\n"],"mappings":";;;;AAIA,SAAwB,cAAc,MAAW;CAC/C,MAAM,aAAa,IAAiB;CACpC,MAAM,EAAE,OAAO,WAAW,IAAI;CAC9B,SAAS,WAAW;EAClB,IAAI;EACJ,MAAM,MAAM,GAAG;EACf,IAAI,QAAQ,KAAA,GACV,QAAQ,KAAK,iBAAiB;OACzB;GACL,QAAQ,IAAI;GAEZ,IADiB,SAAS,OAAO,UAC7B,MAAa,UACf,MAAM,MAAM,WAAW;GAEzB,WAAW,QAAQ;EACrB;CACF;CACA,UAAU,QAAQ;CAClB,UAAU,QAAQ;CAClB,OAAO,EACL,WACF;AACF"}
@@ -0,0 +1,20 @@
1
+ import { Ref } from 'vue';
2
+ export interface UsePercentDragOptions {
3
+ /** 取值范围元素;拖拽过程中以该元素宽度换算百分比 */
4
+ target: Ref<HTMLElement | undefined | null>;
5
+ disabled?: () => boolean;
6
+ onStart?: (percent: number) => void;
7
+ onMove?: (percent: number) => void;
8
+ onEnd?: (percent: number) => void;
9
+ }
10
+ declare function clampPercent(value: number): number;
11
+ declare function percentFromClientX(el: HTMLElement, clientX: number): number;
12
+ /**
13
+ * 在元素上按下并拖拽,按水平位置换算 0–100 百分比。
14
+ * 适用于进度条、音量条等。
15
+ */
16
+ export default function usePercentDrag(options: UsePercentDragOptions): {
17
+ dragging: Ref<boolean, boolean>;
18
+ onMouseDown: (e: MouseEvent) => void;
19
+ };
20
+ export { clampPercent, percentFromClientX };
@@ -0,0 +1,59 @@
1
+ import { onUnmounted, ref } from "vue";
2
+ //#region use/usePercentDrag.ts
3
+ function clampPercent(value) {
4
+ return Math.max(0, Math.min(100, value));
5
+ }
6
+ function percentFromClientX(el, clientX) {
7
+ const rect = el.getBoundingClientRect();
8
+ if (!rect.width) return 0;
9
+ return clampPercent((clientX - rect.left) / rect.width * 100);
10
+ }
11
+ /**
12
+ * 在元素上按下并拖拽,按水平位置换算 0–100 百分比。
13
+ * 适用于进度条、音量条等。
14
+ */
15
+ function usePercentDrag(options) {
16
+ const dragging = ref(false);
17
+ let lastPercent = 0;
18
+ function readPercent(clientX) {
19
+ const el = options.target.value;
20
+ if (!el) return lastPercent;
21
+ lastPercent = percentFromClientX(el, clientX);
22
+ return lastPercent;
23
+ }
24
+ function onWindowMove(e) {
25
+ if (!dragging.value) return;
26
+ const percent = readPercent(e.clientX);
27
+ options.onMove?.(percent);
28
+ }
29
+ function onWindowUp(e) {
30
+ if (!dragging.value) return;
31
+ const percent = readPercent(e.clientX);
32
+ dragging.value = false;
33
+ window.removeEventListener("mousemove", onWindowMove);
34
+ window.removeEventListener("mouseup", onWindowUp);
35
+ options.onEnd?.(percent);
36
+ }
37
+ function onMouseDown(e) {
38
+ if (options.disabled?.()) return;
39
+ e.preventDefault();
40
+ const percent = readPercent(e.clientX);
41
+ dragging.value = true;
42
+ options.onStart?.(percent);
43
+ options.onMove?.(percent);
44
+ window.addEventListener("mousemove", onWindowMove);
45
+ window.addEventListener("mouseup", onWindowUp);
46
+ }
47
+ onUnmounted(() => {
48
+ window.removeEventListener("mousemove", onWindowMove);
49
+ window.removeEventListener("mouseup", onWindowUp);
50
+ });
51
+ return {
52
+ dragging,
53
+ onMouseDown
54
+ };
55
+ }
56
+ //#endregion
57
+ export { clampPercent, usePercentDrag as default, percentFromClientX };
58
+
59
+ //# sourceMappingURL=usePercentDrag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePercentDrag.js","names":[],"sources":["../../use/usePercentDrag.ts"],"sourcesContent":["import type { Ref } from 'vue'\r\nimport { onUnmounted, ref } from 'vue'\r\n\r\nexport interface UsePercentDragOptions {\r\n /** 取值范围元素;拖拽过程中以该元素宽度换算百分比 */\r\n target: Ref<HTMLElement | undefined | null>\r\n disabled?: () => boolean\r\n onStart?: (percent: number) => void\r\n onMove?: (percent: number) => void\r\n onEnd?: (percent: number) => void\r\n}\r\n\r\nfunction clampPercent(value: number) {\r\n return Math.max(0, Math.min(100, value))\r\n}\r\n\r\nfunction percentFromClientX(el: HTMLElement, clientX: number) {\r\n const rect = el.getBoundingClientRect()\r\n if (!rect.width) return 0\r\n return clampPercent(((clientX - rect.left) / rect.width) * 100)\r\n}\r\n\r\n/**\r\n * 在元素上按下并拖拽,按水平位置换算 0–100 百分比。\r\n * 适用于进度条、音量条等。\r\n */\r\nexport default function usePercentDrag(options: UsePercentDragOptions) {\r\n const dragging = ref(false)\r\n let lastPercent = 0\r\n\r\n function readPercent(clientX: number) {\r\n const el = options.target.value\r\n if (!el) return lastPercent\r\n lastPercent = percentFromClientX(el, clientX)\r\n return lastPercent\r\n }\r\n\r\n function onWindowMove(e: MouseEvent) {\r\n if (!dragging.value) return\r\n const percent = readPercent(e.clientX)\r\n options.onMove?.(percent)\r\n }\r\n\r\n function onWindowUp(e: MouseEvent) {\r\n if (!dragging.value) return\r\n const percent = readPercent(e.clientX)\r\n dragging.value = false\r\n window.removeEventListener('mousemove', onWindowMove)\r\n window.removeEventListener('mouseup', onWindowUp)\r\n options.onEnd?.(percent)\r\n }\r\n\r\n function onMouseDown(e: MouseEvent) {\r\n if (options.disabled?.()) return\r\n e.preventDefault()\r\n const percent = readPercent(e.clientX)\r\n dragging.value = true\r\n options.onStart?.(percent)\r\n options.onMove?.(percent)\r\n window.addEventListener('mousemove', onWindowMove)\r\n window.addEventListener('mouseup', onWindowUp)\r\n }\r\n\r\n onUnmounted(() => {\r\n window.removeEventListener('mousemove', onWindowMove)\r\n window.removeEventListener('mouseup', onWindowUp)\r\n })\r\n\r\n return {\r\n dragging,\r\n onMouseDown,\r\n }\r\n}\r\n\r\nexport { clampPercent, percentFromClientX }\r\n"],"mappings":";;AAYA,SAAS,aAAa,OAAe;CACnC,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;AACzC;AAEA,SAAS,mBAAmB,IAAiB,SAAiB;CAC5D,MAAM,OAAO,GAAG,sBAAsB;CACtC,IAAI,CAAC,KAAK,OAAO,OAAO;CACxB,OAAO,cAAe,UAAU,KAAK,QAAQ,KAAK,QAAS,GAAG;AAChE;;;;;AAMA,SAAwB,eAAe,SAAgC;CACrE,MAAM,WAAW,IAAI,KAAK;CAC1B,IAAI,cAAc;CAElB,SAAS,YAAY,SAAiB;EACpC,MAAM,KAAK,QAAQ,OAAO;EAC1B,IAAI,CAAC,IAAI,OAAO;EAChB,cAAc,mBAAmB,IAAI,OAAO;EAC5C,OAAO;CACT;CAEA,SAAS,aAAa,GAAe;EACnC,IAAI,CAAC,SAAS,OAAO;EACrB,MAAM,UAAU,YAAY,EAAE,OAAO;EACrC,QAAQ,SAAS,OAAO;CAC1B;CAEA,SAAS,WAAW,GAAe;EACjC,IAAI,CAAC,SAAS,OAAO;EACrB,MAAM,UAAU,YAAY,EAAE,OAAO;EACrC,SAAS,QAAQ;EACjB,OAAO,oBAAoB,aAAa,YAAY;EACpD,OAAO,oBAAoB,WAAW,UAAU;EAChD,QAAQ,QAAQ,OAAO;CACzB;CAEA,SAAS,YAAY,GAAe;EAClC,IAAI,QAAQ,WAAW,GAAG;EAC1B,EAAE,eAAe;EACjB,MAAM,UAAU,YAAY,EAAE,OAAO;EACrC,SAAS,QAAQ;EACjB,QAAQ,UAAU,OAAO;EACzB,QAAQ,SAAS,OAAO;EACxB,OAAO,iBAAiB,aAAa,YAAY;EACjD,OAAO,iBAAiB,WAAW,UAAU;CAC/C;CAEA,kBAAkB;EAChB,OAAO,oBAAoB,aAAa,YAAY;EACpD,OAAO,oBAAoB,WAAW,UAAU;CAClD,CAAC;CAED,OAAO;EACL;EACA;CACF;AACF"}
@@ -0,0 +1,57 @@
1
+ /** Picture 全屏预览视口变换(适应 / 1:1 / 指针缩放 / 平移 / 旋转 / 翻转) */
2
+ export type PictureViewportMode = 'fit' | 'one' | 'free';
3
+ export type PictureViewportSnapshot = {
4
+ /** 相对自然像素的绝对缩放 */
5
+ scale: number;
6
+ tx: number;
7
+ ty: number;
8
+ /** 0 | 90 | 180 | 270 */
9
+ rotate: number;
10
+ flipX: boolean;
11
+ flipY: boolean;
12
+ mode: PictureViewportMode;
13
+ };
14
+ export type PictureViewportOptions = {
15
+ zoomMin?: number;
16
+ zoomMax?: number;
17
+ zoomStep?: number;
18
+ };
19
+ export declare function normalizeRotate(deg: number): number;
20
+ /** 旋转后包围盒相对视口的适应缩放 */
21
+ export declare function computeFitScale(naturalW: number, naturalH: number, viewportW: number, viewportH: number, rotate: number): number;
22
+ export declare function clampScale(scale: number, min: number, max: number): number;
23
+ /** 指针缩放:保持指针下图像点不动(视口中心为原点) */
24
+ export declare function zoomAtPoint(tx: number, ty: number, scale: number, nextScale: number, pointerXFromCenter: number, pointerYFromCenter: number): {
25
+ tx: number;
26
+ ty: number;
27
+ scale: number;
28
+ };
29
+ export declare function toTransformCss(s: PictureViewportSnapshot): string;
30
+ export type UsePictureViewport = {
31
+ getSnapshot: () => PictureViewportSnapshot;
32
+ /** 供渲染:当前变换 CSS */
33
+ getTransform: () => string;
34
+ setNaturalSize: (w: number, h: number) => void;
35
+ setViewportSize: (w: number, h: number) => void;
36
+ fit: (withTransition?: boolean) => void;
37
+ oneToOne: (withTransition?: boolean) => void;
38
+ zoomAt: (clientX: number, clientY: number, factor: number) => void;
39
+ zoomBy: (factor: number) => void;
40
+ panBy: (dx: number, dy: number) => void;
41
+ rotateBy: (delta: number) => void;
42
+ flip: (axis: 'x' | 'y') => void;
43
+ reset: () => void;
44
+ /** 是否已放大到可拖拽(相对 fit) */
45
+ canPan: () => boolean;
46
+ subscribe: (listener: () => void) => () => void;
47
+ /** 最近一次按钮操作是否应带 transition(拖拽/滚轮后清 false) */
48
+ consumeTransition: () => boolean;
49
+ /**
50
+ * 切图前调用:记下相对「适应」的缩放比,清空平移;
51
+ * 随后 setNaturalSize 会按该比例落到新图(fit/one 模式仍各自重算)。
52
+ */
53
+ prepareImageChange: () => void;
54
+ };
55
+ export declare function createPictureViewport(options?: PictureViewportOptions): UsePictureViewport;
56
+ export declare const PICTURE_VIEWPORT_ZOOM_STEP = 1.15;
57
+ export default createPictureViewport;
@@ -0,0 +1,229 @@
1
+ //#region use/usePictureViewport.ts
2
+ var DEFAULT_ZOOM_MIN = .1;
3
+ var DEFAULT_ZOOM_MAX = 8;
4
+ var DEFAULT_ZOOM_STEP = 1.15;
5
+ function normalizeRotate(deg) {
6
+ return (Math.round(deg / 90) * 90 % 360 + 360) % 360;
7
+ }
8
+ /** 旋转后包围盒相对视口的适应缩放 */
9
+ function computeFitScale(naturalW, naturalH, viewportW, viewportH, rotate) {
10
+ if (naturalW <= 0 || naturalH <= 0 || viewportW <= 0 || viewportH <= 0) return 1;
11
+ const swapped = normalizeRotate(rotate) % 180 === 90;
12
+ const iw = swapped ? naturalH : naturalW;
13
+ const ih = swapped ? naturalW : naturalH;
14
+ return Math.min(viewportW / iw, viewportH / ih);
15
+ }
16
+ function clampScale(scale, min, max) {
17
+ return Math.min(max, Math.max(min, scale));
18
+ }
19
+ /** 指针缩放:保持指针下图像点不动(视口中心为原点) */
20
+ function zoomAtPoint(tx, ty, scale, nextScale, pointerXFromCenter, pointerYFromCenter) {
21
+ if (scale <= 0 || nextScale <= 0 || scale === nextScale) return {
22
+ tx,
23
+ ty,
24
+ scale: nextScale
25
+ };
26
+ const ratio = nextScale / scale;
27
+ return {
28
+ scale: nextScale,
29
+ tx: pointerXFromCenter - (pointerXFromCenter - tx) * ratio,
30
+ ty: pointerYFromCenter - (pointerYFromCenter - ty) * ratio
31
+ };
32
+ }
33
+ function toTransformCss(s) {
34
+ const sx = s.scale * (s.flipX ? -1 : 1);
35
+ const sy = s.scale * (s.flipY ? -1 : 1);
36
+ return `translate(${s.tx}px, ${s.ty}px) rotate(${s.rotate}deg) scale(${sx}, ${sy})`;
37
+ }
38
+ function createPictureViewport(options = {}) {
39
+ const zoomMin = options.zoomMin ?? DEFAULT_ZOOM_MIN;
40
+ const zoomMax = options.zoomMax ?? DEFAULT_ZOOM_MAX;
41
+ let naturalW = 0;
42
+ let naturalH = 0;
43
+ let viewportW = 0;
44
+ let viewportH = 0;
45
+ let withTransition = false;
46
+ /** 切图时携带的相对适应缩放比;null 表示不按比例携带 */
47
+ let pendingZoomRatio = null;
48
+ let state = {
49
+ scale: 1,
50
+ tx: 0,
51
+ ty: 0,
52
+ rotate: 0,
53
+ flipX: false,
54
+ flipY: false,
55
+ mode: "fit"
56
+ };
57
+ const listeners = /* @__PURE__ */ new Set();
58
+ function notify() {
59
+ listeners.forEach((l) => l());
60
+ }
61
+ function setState(next, transition) {
62
+ state = next;
63
+ withTransition = transition;
64
+ notify();
65
+ }
66
+ function fitScaleOf(rotate) {
67
+ return computeFitScale(naturalW, naturalH, viewportW, viewportH, rotate);
68
+ }
69
+ function fit(withTrans = true) {
70
+ const scale = clampScale(fitScaleOf(state.rotate), zoomMin, zoomMax);
71
+ setState({
72
+ ...state,
73
+ scale,
74
+ tx: 0,
75
+ ty: 0,
76
+ mode: "fit"
77
+ }, withTrans);
78
+ }
79
+ function oneToOne(withTrans = true) {
80
+ const scale = clampScale(1, zoomMin, zoomMax);
81
+ setState({
82
+ ...state,
83
+ scale,
84
+ tx: 0,
85
+ ty: 0,
86
+ mode: "one"
87
+ }, withTrans);
88
+ }
89
+ function reset() {
90
+ setState({
91
+ scale: clampScale(fitScaleOf(0), zoomMin, zoomMax),
92
+ tx: 0,
93
+ ty: 0,
94
+ rotate: 0,
95
+ flipX: false,
96
+ flipY: false,
97
+ mode: "fit"
98
+ }, true);
99
+ }
100
+ function zoomAt(clientX, clientY, factor) {
101
+ const next = clampScale(state.scale * factor, zoomMin, zoomMax);
102
+ const moved = zoomAtPoint(state.tx, state.ty, state.scale, next, clientX, clientY);
103
+ setState({
104
+ ...state,
105
+ ...moved,
106
+ mode: "free"
107
+ }, false);
108
+ }
109
+ function zoomBy(factor) {
110
+ const next = clampScale(state.scale * factor, zoomMin, zoomMax);
111
+ setState({
112
+ ...state,
113
+ scale: next,
114
+ mode: "free"
115
+ }, true);
116
+ }
117
+ function panBy(dx, dy) {
118
+ if (!canPan()) return;
119
+ setState({
120
+ ...state,
121
+ tx: state.tx + dx,
122
+ ty: state.ty + dy,
123
+ mode: "free"
124
+ }, false);
125
+ }
126
+ function rotateBy(delta) {
127
+ const rotate = normalizeRotate(state.rotate + delta);
128
+ const scale = state.mode === "one" ? clampScale(1, zoomMin, zoomMax) : clampScale(fitScaleOf(rotate), zoomMin, zoomMax);
129
+ setState({
130
+ ...state,
131
+ rotate,
132
+ scale,
133
+ tx: 0,
134
+ ty: 0,
135
+ mode: state.mode === "one" ? "one" : "fit"
136
+ }, true);
137
+ }
138
+ function flip(axis) {
139
+ setState({
140
+ ...state,
141
+ flipX: axis === "x" ? !state.flipX : state.flipX,
142
+ flipY: axis === "y" ? !state.flipY : state.flipY
143
+ }, true);
144
+ }
145
+ function canPan() {
146
+ const fit = fitScaleOf(state.rotate);
147
+ return state.scale > fit * 1.001;
148
+ }
149
+ function prepareImageChange() {
150
+ if (state.mode === "free") {
151
+ const fit = fitScaleOf(state.rotate);
152
+ pendingZoomRatio = fit > 0 ? state.scale / fit : 1;
153
+ } else pendingZoomRatio = null;
154
+ setState({
155
+ ...state,
156
+ tx: 0,
157
+ ty: 0
158
+ }, false);
159
+ }
160
+ return {
161
+ getSnapshot: () => state,
162
+ getTransform: () => toTransformCss(state),
163
+ setNaturalSize: (w, h) => {
164
+ naturalW = w;
165
+ naturalH = h;
166
+ if (state.mode === "fit") {
167
+ pendingZoomRatio = null;
168
+ fit(false);
169
+ return;
170
+ }
171
+ if (state.mode === "one") {
172
+ pendingZoomRatio = null;
173
+ oneToOne(false);
174
+ return;
175
+ }
176
+ if (pendingZoomRatio != null) {
177
+ const next = clampScale(fitScaleOf(state.rotate) * pendingZoomRatio, zoomMin, zoomMax);
178
+ pendingZoomRatio = null;
179
+ setState({
180
+ ...state,
181
+ scale: next,
182
+ tx: 0,
183
+ ty: 0,
184
+ mode: "free"
185
+ }, false);
186
+ return;
187
+ }
188
+ setState({
189
+ ...state,
190
+ scale: clampScale(state.scale, zoomMin, zoomMax),
191
+ tx: 0,
192
+ ty: 0
193
+ }, false);
194
+ },
195
+ setViewportSize: (w, h) => {
196
+ if (w === viewportW && h === viewportH) return;
197
+ viewportW = w;
198
+ viewportH = h;
199
+ if (state.mode === "fit") fit(false);
200
+ else if (state.mode === "one") oneToOne(false);
201
+ },
202
+ fit,
203
+ oneToOne,
204
+ zoomAt,
205
+ zoomBy,
206
+ panBy,
207
+ rotateBy,
208
+ flip,
209
+ reset,
210
+ canPan,
211
+ subscribe: (listener) => {
212
+ listeners.add(listener);
213
+ return () => {
214
+ listeners.delete(listener);
215
+ };
216
+ },
217
+ consumeTransition: () => {
218
+ const v = withTransition;
219
+ withTransition = false;
220
+ return v;
221
+ },
222
+ prepareImageChange
223
+ };
224
+ }
225
+ var PICTURE_VIEWPORT_ZOOM_STEP = DEFAULT_ZOOM_STEP;
226
+ //#endregion
227
+ export { PICTURE_VIEWPORT_ZOOM_STEP, clampScale, computeFitScale, createPictureViewport, createPictureViewport as default, normalizeRotate, toTransformCss, zoomAtPoint };
228
+
229
+ //# sourceMappingURL=usePictureViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePictureViewport.js","names":[],"sources":["../../use/usePictureViewport.ts"],"sourcesContent":["/** Picture 全屏预览视口变换(适应 / 1:1 / 指针缩放 / 平移 / 旋转 / 翻转) */\r\n\r\nexport type PictureViewportMode = 'fit' | 'one' | 'free'\r\n\r\nexport type PictureViewportSnapshot = {\r\n /** 相对自然像素的绝对缩放 */\r\n scale: number\r\n tx: number\r\n ty: number\r\n /** 0 | 90 | 180 | 270 */\r\n rotate: number\r\n flipX: boolean\r\n flipY: boolean\r\n mode: PictureViewportMode\r\n}\r\n\r\nexport type PictureViewportOptions = {\r\n zoomMin?: number\r\n zoomMax?: number\r\n zoomStep?: number\r\n}\r\n\r\nconst DEFAULT_ZOOM_MIN = 0.1\r\nconst DEFAULT_ZOOM_MAX = 8\r\nconst DEFAULT_ZOOM_STEP = 1.15\r\n\r\nexport function normalizeRotate(deg: number): number {\r\n const n = ((Math.round(deg / 90) * 90) % 360 + 360) % 360\r\n return n\r\n}\r\n\r\n/** 旋转后包围盒相对视口的适应缩放 */\r\nexport function computeFitScale(\r\n naturalW: number,\r\n naturalH: number,\r\n viewportW: number,\r\n viewportH: number,\r\n rotate: number,\r\n): number {\r\n if (naturalW <= 0 || naturalH <= 0 || viewportW <= 0 || viewportH <= 0) {\r\n return 1\r\n }\r\n const swapped = normalizeRotate(rotate) % 180 === 90\r\n const iw = swapped ? naturalH : naturalW\r\n const ih = swapped ? naturalW : naturalH\r\n return Math.min(viewportW / iw, viewportH / ih)\r\n}\r\n\r\nexport function clampScale(\r\n scale: number,\r\n min: number,\r\n max: number,\r\n): number {\r\n return Math.min(max, Math.max(min, scale))\r\n}\r\n\r\n/** 指针缩放:保持指针下图像点不动(视口中心为原点) */\r\nexport function zoomAtPoint(\r\n tx: number,\r\n ty: number,\r\n scale: number,\r\n nextScale: number,\r\n pointerXFromCenter: number,\r\n pointerYFromCenter: number,\r\n): { tx: number; ty: number; scale: number } {\r\n if (scale <= 0 || nextScale <= 0 || scale === nextScale) {\r\n return { tx, ty, scale: nextScale }\r\n }\r\n const ratio = nextScale / scale\r\n return {\r\n scale: nextScale,\r\n tx: pointerXFromCenter - (pointerXFromCenter - tx) * ratio,\r\n ty: pointerYFromCenter - (pointerYFromCenter - ty) * ratio,\r\n }\r\n}\r\n\r\nexport function toTransformCss(s: PictureViewportSnapshot): string {\r\n const sx = s.scale * (s.flipX ? -1 : 1)\r\n const sy = s.scale * (s.flipY ? -1 : 1)\r\n return `translate(${s.tx}px, ${s.ty}px) rotate(${s.rotate}deg) scale(${sx}, ${sy})`\r\n}\r\n\r\nexport type UsePictureViewport = {\r\n getSnapshot: () => PictureViewportSnapshot\r\n /** 供渲染:当前变换 CSS */\r\n getTransform: () => string\r\n setNaturalSize: (w: number, h: number) => void\r\n setViewportSize: (w: number, h: number) => void\r\n fit: (withTransition?: boolean) => void\r\n oneToOne: (withTransition?: boolean) => void\r\n zoomAt: (clientX: number, clientY: number, factor: number) => void\r\n zoomBy: (factor: number) => void\r\n panBy: (dx: number, dy: number) => void\r\n rotateBy: (delta: number) => void\r\n flip: (axis: 'x' | 'y') => void\r\n reset: () => void\r\n /** 是否已放大到可拖拽(相对 fit) */\r\n canPan: () => boolean\r\n subscribe: (listener: () => void) => () => void\r\n /** 最近一次按钮操作是否应带 transition(拖拽/滚轮后清 false) */\r\n consumeTransition: () => boolean\r\n /**\r\n * 切图前调用:记下相对「适应」的缩放比,清空平移;\r\n * 随后 setNaturalSize 会按该比例落到新图(fit/one 模式仍各自重算)。\r\n */\r\n prepareImageChange: () => void\r\n}\r\n\r\nexport function createPictureViewport(\r\n options: PictureViewportOptions = {},\r\n): UsePictureViewport {\r\n const zoomMin = options.zoomMin ?? DEFAULT_ZOOM_MIN\r\n const zoomMax = options.zoomMax ?? DEFAULT_ZOOM_MAX\r\n\r\n let naturalW = 0\r\n let naturalH = 0\r\n let viewportW = 0\r\n let viewportH = 0\r\n let withTransition = false\r\n /** 切图时携带的相对适应缩放比;null 表示不按比例携带 */\r\n let pendingZoomRatio: number | null = null\r\n\r\n let state: PictureViewportSnapshot = {\r\n scale: 1,\r\n tx: 0,\r\n ty: 0,\r\n rotate: 0,\r\n flipX: false,\r\n flipY: false,\r\n mode: 'fit',\r\n }\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n function notify() {\r\n listeners.forEach((l) => l())\r\n }\r\n\r\n function setState(next: PictureViewportSnapshot, transition: boolean) {\r\n state = next\r\n withTransition = transition\r\n notify()\r\n }\r\n\r\n function fitScaleOf(rotate: number) {\r\n return computeFitScale(naturalW, naturalH, viewportW, viewportH, rotate)\r\n }\r\n\r\n function fit(withTrans = true) {\r\n const scale = clampScale(fitScaleOf(state.rotate), zoomMin, zoomMax)\r\n setState(\r\n {\r\n ...state,\r\n scale,\r\n tx: 0,\r\n ty: 0,\r\n mode: 'fit',\r\n },\r\n withTrans,\r\n )\r\n }\r\n\r\n function oneToOne(withTrans = true) {\r\n const scale = clampScale(1, zoomMin, zoomMax)\r\n setState(\r\n {\r\n ...state,\r\n scale,\r\n tx: 0,\r\n ty: 0,\r\n mode: 'one',\r\n },\r\n withTrans,\r\n )\r\n }\r\n\r\n function reset() {\r\n setState(\r\n {\r\n scale: clampScale(fitScaleOf(0), zoomMin, zoomMax),\r\n tx: 0,\r\n ty: 0,\r\n rotate: 0,\r\n flipX: false,\r\n flipY: false,\r\n mode: 'fit',\r\n },\r\n true,\r\n )\r\n }\r\n\r\n function zoomAt(clientX: number, clientY: number, factor: number) {\r\n // 调用方传入相对视口中心的坐标更稳;此处约定 client 为视口本地:中心原点\r\n const next = clampScale(state.scale * factor, zoomMin, zoomMax)\r\n const moved = zoomAtPoint(\r\n state.tx,\r\n state.ty,\r\n state.scale,\r\n next,\r\n clientX,\r\n clientY,\r\n )\r\n setState(\r\n {\r\n ...state,\r\n ...moved,\r\n mode: 'free',\r\n },\r\n false,\r\n )\r\n }\r\n\r\n function zoomBy(factor: number) {\r\n const next = clampScale(state.scale * factor, zoomMin, zoomMax)\r\n setState(\r\n {\r\n ...state,\r\n scale: next,\r\n mode: 'free',\r\n },\r\n true,\r\n )\r\n }\r\n\r\n function panBy(dx: number, dy: number) {\r\n if (!canPan()) return\r\n setState(\r\n {\r\n ...state,\r\n tx: state.tx + dx,\r\n ty: state.ty + dy,\r\n mode: 'free',\r\n },\r\n false,\r\n )\r\n }\r\n\r\n function rotateBy(delta: number) {\r\n const rotate = normalizeRotate(state.rotate + delta)\r\n const scale =\r\n state.mode === 'one'\r\n ? clampScale(1, zoomMin, zoomMax)\r\n : clampScale(fitScaleOf(rotate), zoomMin, zoomMax)\r\n setState(\r\n {\r\n ...state,\r\n rotate,\r\n scale,\r\n tx: 0,\r\n ty: 0,\r\n mode: state.mode === 'one' ? 'one' : 'fit',\r\n },\r\n true,\r\n )\r\n }\r\n\r\n function flip(axis: 'x' | 'y') {\r\n setState(\r\n {\r\n ...state,\r\n flipX: axis === 'x' ? !state.flipX : state.flipX,\r\n flipY: axis === 'y' ? !state.flipY : state.flipY,\r\n },\r\n true,\r\n )\r\n }\r\n\r\n function canPan() {\r\n const fit = fitScaleOf(state.rotate)\r\n return state.scale > fit * 1.001\r\n }\r\n\r\n function prepareImageChange() {\r\n if (state.mode === 'free') {\r\n const fit = fitScaleOf(state.rotate)\r\n pendingZoomRatio = fit > 0 ? state.scale / fit : 1\r\n } else {\r\n pendingZoomRatio = null\r\n }\r\n setState(\r\n {\r\n ...state,\r\n tx: 0,\r\n ty: 0,\r\n },\r\n false,\r\n )\r\n }\r\n\r\n return {\r\n getSnapshot: () => state,\r\n getTransform: () => toTransformCss(state),\r\n setNaturalSize: (w, h) => {\r\n naturalW = w\r\n naturalH = h\r\n if (state.mode === 'fit') {\r\n pendingZoomRatio = null\r\n fit(false)\r\n return\r\n }\r\n if (state.mode === 'one') {\r\n pendingZoomRatio = null\r\n oneToOne(false)\r\n return\r\n }\r\n // free:按切图前相对适应比例落到新图;无 pending 则保留绝对 scale\r\n if (pendingZoomRatio != null) {\r\n const next = clampScale(\r\n fitScaleOf(state.rotate) * pendingZoomRatio,\r\n zoomMin,\r\n zoomMax,\r\n )\r\n pendingZoomRatio = null\r\n setState(\r\n {\r\n ...state,\r\n scale: next,\r\n tx: 0,\r\n ty: 0,\r\n mode: 'free',\r\n },\r\n false,\r\n )\r\n return\r\n }\r\n setState(\r\n {\r\n ...state,\r\n scale: clampScale(state.scale, zoomMin, zoomMax),\r\n tx: 0,\r\n ty: 0,\r\n },\r\n false,\r\n )\r\n },\r\n setViewportSize: (w, h) => {\r\n if (w === viewportW && h === viewportH) return\r\n viewportW = w\r\n viewportH = h\r\n if (state.mode === 'fit') fit(false)\r\n else if (state.mode === 'one') oneToOne(false)\r\n },\r\n fit,\r\n oneToOne,\r\n zoomAt,\r\n zoomBy,\r\n panBy,\r\n rotateBy,\r\n flip,\r\n reset,\r\n canPan,\r\n subscribe: (listener) => {\r\n listeners.add(listener)\r\n return () => {\r\n listeners.delete(listener)\r\n }\r\n },\r\n consumeTransition: () => {\r\n const v = withTransition\r\n withTransition = false\r\n return v\r\n },\r\n prepareImageChange,\r\n }\r\n}\r\n\r\nexport const PICTURE_VIEWPORT_ZOOM_STEP = DEFAULT_ZOOM_STEP\r\n\r\nexport default createPictureViewport\r\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Ref } from 'vue';
2
+ export default function useRequest<T>(requestFn: undefined | ((para?: Ref<any>) => Promise<T>), para?: Ref<any>, manual?: boolean): {
3
+ loading: Ref<boolean, boolean>;
4
+ empty: Ref<boolean, boolean>;
5
+ data: Ref<T | T[], T | T[]>;
6
+ get: () => Promise<void>;
7
+ };
@@ -0,0 +1,31 @@
1
+ import { isArray } from "../util/tools.js";
2
+ import { ref } from "vue";
3
+ //#region use/useRequest.ts
4
+ function useRequest(requestFn, para, manual = false) {
5
+ const loading = ref(false);
6
+ const empty = ref(false);
7
+ const data = ref();
8
+ async function get() {
9
+ try {
10
+ if (loading.value) return;
11
+ loading.value = true;
12
+ data.value = await requestFn?.(para?.value);
13
+ if (isArray(data.value)) empty.value = data.value.length === 0;
14
+ else empty.value = !data.value;
15
+ loading.value = false;
16
+ } catch (err) {
17
+ loading.value = false;
18
+ }
19
+ }
20
+ !manual && get();
21
+ return {
22
+ loading,
23
+ empty,
24
+ data,
25
+ get
26
+ };
27
+ }
28
+ //#endregion
29
+ export { useRequest as default };
30
+
31
+ //# sourceMappingURL=useRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRequest.js","names":[],"sources":["../../use/useRequest.ts"],"sourcesContent":["import type { Ref } from \"vue\"\r\nimport { ref } from \"vue\"\r\nimport { isArray } from \"../util\"\r\nexport default function useRequest<T>(\r\n requestFn: undefined | ((para?: Ref<any>) => Promise<T>),\r\n para?: Ref<any>,\r\n manual = false\r\n) {\r\n const loading = ref(false)\r\n const empty = ref(false)\r\n const data: Ref<T | T[] | undefined | null> = ref()\r\n\r\n async function get() {\r\n try {\r\n if (loading.value) {\r\n return\r\n }\r\n loading.value = true\r\n data.value = await requestFn?.(para?.value)\r\n if (isArray(data.value)) {\r\n empty.value = data.value.length === 0\r\n } else {\r\n empty.value = !data.value\r\n }\r\n loading.value = false\r\n } catch (err) {\r\n loading.value = false\r\n } finally {\r\n }\r\n }\r\n\r\n !manual && get()\r\n\r\n return {\r\n loading,\r\n empty,\r\n data,\r\n get,\r\n }\r\n}\r\n"],"mappings":";;;AAGA,SAAwB,WACtB,WACA,MACA,SAAS,OACT;CACA,MAAM,UAAU,IAAI,KAAK;CACzB,MAAM,QAAQ,IAAI,KAAK;CACvB,MAAM,OAAwC,IAAI;CAElD,eAAe,MAAM;EACnB,IAAI;GACF,IAAI,QAAQ,OACV;GAEF,QAAQ,QAAQ;GAChB,KAAK,QAAQ,MAAM,YAAY,MAAM,KAAK;GAC1C,IAAI,QAAQ,KAAK,KAAK,GACpB,MAAM,QAAQ,KAAK,MAAM,WAAW;QAEpC,MAAM,QAAQ,CAAC,KAAK;GAEtB,QAAQ,QAAQ;EAClB,SAAS,KAAK;GACZ,QAAQ,QAAQ;EAClB;CAEF;CAEA,CAAC,UAAU,IAAI;CAEf,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}