@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,193 @@
1
+ import useComponentConfig from "../../use/useComponentConfig.js";
2
+ import { propColorToCssVars, propSizeToCssVars, toCssVarsStyle } from "../../util/cssVars.js";
3
+ import useFormItem from "../../use/useFormItem.js";
4
+ import { TEXTAREA_FALLBACK } from "./config.js";
5
+ import { computed, createVNode, defineComponent, mergeProps, nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";
6
+ //#region components/textarea/Textarea.tsx
7
+ function ghostText(value) {
8
+ if (!value) return "\xA0";
9
+ return value.endsWith("\n") ? `${value}\u00A0` : value;
10
+ }
11
+ var TextareaImpl = /* @__PURE__ */ defineComponent({
12
+ name: "Textarea",
13
+ inheritAttrs: false,
14
+ props: {
15
+ modelValue: {
16
+ type: String,
17
+ default: ""
18
+ },
19
+ size: {
20
+ type: Number,
21
+ default: void 0
22
+ },
23
+ color: {
24
+ type: String,
25
+ default: void 0
26
+ },
27
+ placeholder: {
28
+ type: String,
29
+ default: void 0
30
+ },
31
+ maxlength: {
32
+ type: Number,
33
+ default: void 0
34
+ },
35
+ disabled: {
36
+ type: Boolean,
37
+ default: void 0
38
+ },
39
+ readonly: {
40
+ type: Boolean,
41
+ default: void 0
42
+ },
43
+ block: {
44
+ type: Boolean,
45
+ default: void 0
46
+ },
47
+ saveDelay: {
48
+ type: Number,
49
+ default: void 0
50
+ },
51
+ validateEvent: {
52
+ type: Boolean,
53
+ default: void 0
54
+ },
55
+ cssVars: {
56
+ type: Object,
57
+ default: void 0
58
+ }
59
+ },
60
+ emits: {
61
+ "update:modelValue": (value) => typeof value === "string",
62
+ input: (value) => typeof value === "string",
63
+ change: (value) => typeof value === "string",
64
+ save: (value) => typeof value === "string"
65
+ },
66
+ setup(props, { attrs, emit, expose }) {
67
+ const cfg = useComponentConfig("Textarea", props, TEXTAREA_FALLBACK);
68
+ const { formItem, useDisabled } = useFormItem();
69
+ const disabled = useDisabled(computed(() => cfg.value.disabled));
70
+ const fieldRef = ref();
71
+ const inner = ref(props.modelValue ?? "");
72
+ const composing = ref(false);
73
+ let saveTimer;
74
+ watch(() => props.modelValue, (v) => {
75
+ const next = v ?? "";
76
+ if (next !== inner.value) inner.value = next;
77
+ });
78
+ function clearSaveTimer() {
79
+ if (saveTimer !== void 0) {
80
+ clearTimeout(saveTimer);
81
+ saveTimer = void 0;
82
+ }
83
+ }
84
+ function scheduleSave(value) {
85
+ clearSaveTimer();
86
+ const ms = Math.max(0, cfg.value.saveDelay ?? TEXTAREA_FALLBACK.saveDelay);
87
+ saveTimer = setTimeout(() => {
88
+ saveTimer = void 0;
89
+ emit("save", value);
90
+ }, ms);
91
+ }
92
+ function syncScrollTop() {
93
+ nextTick(() => {
94
+ if (fieldRef.value) fieldRef.value.scrollTop = 0;
95
+ });
96
+ }
97
+ function commit(value, opts) {
98
+ let next = value;
99
+ const max = cfg.value.maxlength;
100
+ if (max != null && next.length > max) {
101
+ next = next.slice(0, max);
102
+ if (fieldRef.value) fieldRef.value.value = next;
103
+ }
104
+ inner.value = next;
105
+ emit("update:modelValue", next);
106
+ emit("input", next);
107
+ if (opts?.save !== false) scheduleSave(next);
108
+ syncScrollTop();
109
+ }
110
+ function onInput(e) {
111
+ commit(e.target.value, { save: !composing.value });
112
+ }
113
+ function onCompositionStart() {
114
+ composing.value = true;
115
+ }
116
+ function onCompositionEnd(e) {
117
+ composing.value = false;
118
+ commit(e.target.value);
119
+ }
120
+ function onChange(e) {
121
+ const val = e.target.value;
122
+ if (cfg.value.validateEvent !== false) formItem?.validate("change");
123
+ emit("change", val);
124
+ }
125
+ function onBlur() {
126
+ if (cfg.value.validateEvent !== false) formItem?.validate("blur");
127
+ }
128
+ function onKeydownEnter() {
129
+ syncScrollTop();
130
+ }
131
+ function onWindowResize() {
132
+ syncScrollTop();
133
+ }
134
+ onMounted(() => {
135
+ window.addEventListener("resize", onWindowResize);
136
+ });
137
+ onBeforeUnmount(() => {
138
+ window.removeEventListener("resize", onWindowResize);
139
+ clearSaveTimer();
140
+ });
141
+ expose({
142
+ focus: () => fieldRef.value?.focus(),
143
+ blur: () => fieldRef.value?.blur(),
144
+ select: () => fieldRef.value?.select(),
145
+ get textarea() {
146
+ return fieldRef.value;
147
+ }
148
+ });
149
+ return () => {
150
+ const { class: klass, style: attrStyle, ...rest } = attrs;
151
+ const rootProps = mergeProps({
152
+ class: [
153
+ "w-textarea",
154
+ {
155
+ "w-textarea--block": cfg.value.block,
156
+ "w-textarea--disabled": disabled.value
157
+ },
158
+ klass
159
+ ],
160
+ style: [toCssVarsStyle({
161
+ ...propSizeToCssVars("textarea", cfg.value.size),
162
+ ...propColorToCssVars("textarea", cfg.value.color),
163
+ ...props.cssVars
164
+ }), attrStyle]
165
+ }, {});
166
+ return createVNode("div", rootProps, [createVNode("div", {
167
+ "class": "w-textarea-ghost",
168
+ "aria-hidden": "true"
169
+ }, [ghostText(inner.value)]), createVNode("textarea", mergeProps(rest, {
170
+ "ref": fieldRef,
171
+ "class": "w-textarea-field",
172
+ "value": inner.value,
173
+ "placeholder": cfg.value.placeholder,
174
+ "maxlength": cfg.value.maxlength,
175
+ "disabled": disabled.value || void 0,
176
+ "readonly": cfg.value.readonly || void 0,
177
+ "rows": 1,
178
+ "onInput": onInput,
179
+ "onChange": onChange,
180
+ "onBlur": onBlur,
181
+ "onCompositionstart": onCompositionStart,
182
+ "onCompositionend": onCompositionEnd,
183
+ "onKeydown": (e) => {
184
+ if (e.key === "Enter") onKeydownEnter();
185
+ }
186
+ }), null)]);
187
+ };
188
+ }
189
+ });
190
+ //#endregion
191
+ export { TextareaImpl as default };
192
+
193
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","names":["computed","defineComponent","mergeProps","nextTick","onBeforeUnmount","onMounted","ref","watch","createVNode","_createVNode","_mergeProps","propColorToCssVars","propSizeToCssVars","toCssVarsStyle","useComponentConfig","useFormItem","TEXTAREA_FALLBACK","ghostText","value","endsWith","TextareaImpl","name","inheritAttrs","props","modelValue","type","String","default","size","Number","undefined","color","placeholder","maxlength","disabled","Boolean","readonly","block","saveDelay","validateEvent","cssVars","Object","emits","input","change","save","setup","attrs","emit","expose","cfg","formItem","useDisabled","fieldRef","inner","composing","saveTimer","v","next","clearSaveTimer","clearTimeout","scheduleSave","ms","Math","max","setTimeout","syncScrollTop","scrollTop","commit","opts","length","slice","onInput","e","target","onCompositionStart","onCompositionEnd","onChange","val","validate","onBlur","onKeydownEnter","onWindowResize","window","addEventListener","removeEventListener","api","focus","blur","select","textarea","class","klass","style","attrStyle","rest","rootProps","key"],"sources":["../../../components/textarea/Textarea.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n mergeProps,\r\n nextTick,\r\n onBeforeUnmount,\r\n onMounted,\r\n ref,\r\n watch,\r\n type PropType,\r\n} from 'vue'\r\nimport {\r\n propColorToCssVars,\r\n propSizeToCssVars,\r\n toCssVarsStyle,\r\n type CssVars,\r\n} from '../../util'\r\nimport useComponentConfig from '../../use/useComponentConfig'\r\nimport useFormItem from '../../use/useFormItem'\r\nimport { TEXTAREA_FALLBACK } from './config'\r\n\r\nexport type { TextareaGlobalConfig } from './config'\r\nexport { TEXTAREA_FALLBACK } from './config'\r\n\r\nexport type TextareaProps = {\r\n modelValue?: string\r\n size?: number\r\n color?: string\r\n placeholder?: string\r\n maxlength?: number\r\n disabled?: boolean\r\n readonly?: boolean\r\n block?: boolean\r\n /** 停输后触发 save 的防抖毫秒;默认 3000 */\r\n saveDelay?: number\r\n validateEvent?: boolean\r\n cssVars?: CssVars\r\n}\r\n\r\nexport type TextareaJSXProps = TextareaProps &\r\n Omit<\r\n JSX.IntrinsicElements['div'],\r\n keyof TextareaProps | 'ref' | 'onInput' | 'onChange'\r\n >\r\n\r\nexport type TextareaExpose = {\r\n focus: () => void\r\n blur: () => void\r\n select: () => void\r\n textarea: HTMLTextAreaElement | undefined\r\n}\r\n\r\nexport type TextareaComponent = {\r\n new (): {\r\n $props: TextareaJSXProps\r\n $emit: {\r\n (e: 'update:modelValue', value: string): void\r\n (e: 'input', value: string): void\r\n (e: 'change', value: string): void\r\n (e: 'save', value: string): void\r\n }\r\n } & TextareaExpose\r\n}\r\n\r\nfunction ghostText(value: string): string {\r\n if (!value) return '\\u00A0'\r\n return value.endsWith('\\n') ? `${value}\\u00A0` : value\r\n}\r\n\r\nconst TextareaImpl = defineComponent({\r\n name: 'Textarea',\r\n inheritAttrs: false,\r\n props: {\r\n modelValue: { type: String, default: '' },\r\n size: { type: Number, default: undefined },\r\n color: { type: String, default: undefined },\r\n placeholder: { type: String, default: undefined },\r\n maxlength: { type: Number, default: undefined },\r\n disabled: { type: Boolean, default: undefined },\r\n readonly: { type: Boolean, default: undefined },\r\n block: { type: Boolean, default: undefined },\r\n saveDelay: { type: Number, default: undefined },\r\n validateEvent: { type: Boolean, default: undefined },\r\n cssVars: { type: Object as PropType<CssVars>, default: undefined },\r\n },\r\n emits: {\r\n 'update:modelValue': (value: string) => typeof value === 'string',\r\n input: (value: string) => typeof value === 'string',\r\n change: (value: string) => typeof value === 'string',\r\n save: (value: string) => typeof value === 'string',\r\n },\r\n setup(props, { attrs, emit, expose }) {\r\n const cfg = useComponentConfig('Textarea', props, TEXTAREA_FALLBACK)\r\n const { formItem, useDisabled } = useFormItem()\r\n const disabled = useDisabled(computed(() => cfg.value.disabled))\r\n\r\n const fieldRef = ref<HTMLTextAreaElement>()\r\n const inner = ref(props.modelValue ?? '')\r\n const composing = ref(false)\r\n let saveTimer: ReturnType<typeof setTimeout> | undefined\r\n\r\n watch(\r\n () => props.modelValue,\r\n (v) => {\r\n const next = v ?? ''\r\n if (next !== inner.value) inner.value = next\r\n },\r\n )\r\n\r\n function clearSaveTimer() {\r\n if (saveTimer !== undefined) {\r\n clearTimeout(saveTimer)\r\n saveTimer = undefined\r\n }\r\n }\r\n\r\n function scheduleSave(value: string) {\r\n clearSaveTimer()\r\n const ms = Math.max(0, cfg.value.saveDelay ?? TEXTAREA_FALLBACK.saveDelay)\r\n saveTimer = setTimeout(() => {\r\n saveTimer = undefined\r\n emit('save', value)\r\n }, ms)\r\n }\r\n\r\n function syncScrollTop() {\r\n nextTick(() => {\r\n if (fieldRef.value) fieldRef.value.scrollTop = 0\r\n })\r\n }\r\n\r\n function commit(value: string, opts?: { save?: boolean }) {\r\n let next = value\r\n const max = cfg.value.maxlength\r\n if (max != null && next.length > max) {\r\n next = next.slice(0, max)\r\n if (fieldRef.value) fieldRef.value.value = next\r\n }\r\n inner.value = next\r\n emit('update:modelValue', next)\r\n emit('input', next)\r\n if (opts?.save !== false) scheduleSave(next)\r\n syncScrollTop()\r\n }\r\n\r\n function onInput(e: Event) {\r\n // 组字过程也要同步,避免父级重渲染冲掉输入;结束前不触发 save\r\n commit((e.target as HTMLTextAreaElement).value, {\r\n save: !composing.value,\r\n })\r\n }\r\n\r\n function onCompositionStart() {\r\n composing.value = true\r\n }\r\n\r\n function onCompositionEnd(e: CompositionEvent) {\r\n composing.value = false\r\n commit((e.target as HTMLTextAreaElement).value)\r\n }\r\n\r\n function onChange(e: Event) {\r\n const val = (e.target as HTMLTextAreaElement).value\r\n if (cfg.value.validateEvent !== false) {\r\n formItem?.validate('change')\r\n }\r\n emit('change', val)\r\n }\r\n\r\n function onBlur() {\r\n if (cfg.value.validateEvent !== false) {\r\n formItem?.validate('blur')\r\n }\r\n }\r\n\r\n function onKeydownEnter() {\r\n syncScrollTop()\r\n }\r\n\r\n function onWindowResize() {\r\n syncScrollTop()\r\n }\r\n\r\n onMounted(() => {\r\n window.addEventListener('resize', onWindowResize)\r\n })\r\n\r\n onBeforeUnmount(() => {\r\n window.removeEventListener('resize', onWindowResize)\r\n clearSaveTimer()\r\n })\r\n\r\n const api: TextareaExpose = {\r\n focus: () => fieldRef.value?.focus(),\r\n blur: () => fieldRef.value?.blur(),\r\n select: () => fieldRef.value?.select(),\r\n get textarea() {\r\n return fieldRef.value\r\n },\r\n }\r\n expose(api)\r\n\r\n return () => {\r\n const { class: klass, style: attrStyle, ...rest } = attrs\r\n const rootProps = mergeProps(\r\n {\r\n class: [\r\n 'w-textarea',\r\n {\r\n 'w-textarea--block': cfg.value.block,\r\n 'w-textarea--disabled': disabled.value,\r\n },\r\n klass,\r\n ],\r\n style: [\r\n toCssVarsStyle({\r\n ...propSizeToCssVars('textarea', cfg.value.size),\r\n ...propColorToCssVars('textarea', cfg.value.color),\r\n ...props.cssVars,\r\n }),\r\n attrStyle as any,\r\n ],\r\n },\r\n {},\r\n )\r\n\r\n return (\r\n <div {...rootProps}>\r\n <div class=\"w-textarea-ghost\" aria-hidden=\"true\">\r\n {ghostText(inner.value)}\r\n </div>\r\n <textarea\r\n {...rest}\r\n ref={fieldRef}\r\n class=\"w-textarea-field\"\r\n value={inner.value}\r\n placeholder={cfg.value.placeholder}\r\n maxlength={cfg.value.maxlength}\r\n disabled={disabled.value || undefined}\r\n readonly={cfg.value.readonly || undefined}\r\n rows={1}\r\n onInput={onInput}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n onCompositionstart={onCompositionStart}\r\n onCompositionend={onCompositionEnd}\r\n onKeydown={(e: KeyboardEvent) => {\r\n if (e.key === 'Enter') onKeydownEnter()\r\n }}\r\n />\r\n </div>\r\n )\r\n }\r\n },\r\n})\r\n\r\nexport default TextareaImpl as unknown as TextareaComponent\r\n"],"mappings":";;;;;;AAgEA,SAASiB,UAAUC,OAAuB;CACxC,IAAI,CAACA,OAAO,OAAO;CACnB,OAAOA,MAAMC,SAAS,IAAI,IAAI,GAAGD,MAAK,UAAWA;AACnD;AAEA,IAAME,eAAenB,gCAAgB;CACnCoB,MAAM;CACNC,cAAc;CACdC,OAAO;EACLC,YAAY;GAAEC,MAAMC;GAAQC,SAAS;EAAG;EACxCC,MAAM;GAAEH,MAAMI;GAAQF,SAASG,KAAAA;EAAU;EACzCC,OAAO;GAAEN,MAAMC;GAAQC,SAASG,KAAAA;EAAU;EAC1CE,aAAa;GAAEP,MAAMC;GAAQC,SAASG,KAAAA;EAAU;EAChDG,WAAW;GAAER,MAAMI;GAAQF,SAASG,KAAAA;EAAU;EAC9CI,UAAU;GAAET,MAAMU;GAASR,SAASG,KAAAA;EAAU;EAC9CM,UAAU;GAAEX,MAAMU;GAASR,SAASG,KAAAA;EAAU;EAC9CO,OAAO;GAAEZ,MAAMU;GAASR,SAASG,KAAAA;EAAU;EAC3CQ,WAAW;GAAEb,MAAMI;GAAQF,SAASG,KAAAA;EAAU;EAC9CS,eAAe;GAAEd,MAAMU;GAASR,SAASG,KAAAA;EAAU;EACnDU,SAAS;GAAEf,MAAMgB;GAA6Bd,SAASG,KAAAA;EAAU;CACnE;CACAY,OAAO;EACL,sBAAsBxB,UAAkB,OAAOA,UAAU;EACzDyB,QAAQzB,UAAkB,OAAOA,UAAU;EAC3C0B,SAAS1B,UAAkB,OAAOA,UAAU;EAC5C2B,OAAO3B,UAAkB,OAAOA,UAAU;CAC5C;CACA4B,MAAMvB,OAAO,EAAEwB,OAAOC,MAAMC,UAAU;EACpC,MAAMC,MAAMpC,mBAAmB,YAAYS,OAAOP,iBAAiB;EACnE,MAAM,EAAEmC,UAAUC,gBAAgBrC,YAAY;EAC9C,MAAMmB,WAAWkB,YAAYpD,eAAekD,IAAIhC,MAAMgB,QAAQ,CAAC;EAE/D,MAAMmB,WAAW/C,IAAyB;EAC1C,MAAMgD,QAAQhD,IAAIiB,MAAMC,cAAc,EAAE;EACxC,MAAM+B,YAAYjD,IAAI,KAAK;EAC3B,IAAIkD;EAEJjD,YACQgB,MAAMC,aACXiC,MAAM;GACL,MAAMC,OAAOD,KAAK;GAClB,IAAIC,SAASJ,MAAMpC,OAAOoC,MAAMpC,QAAQwC;EAC1C,CACF;EAEA,SAASC,iBAAiB;GACxB,IAAIH,cAAc1B,KAAAA,GAAW;IAC3B8B,aAAaJ,SAAS;IACtBA,YAAY1B,KAAAA;GACd;EACF;EAEA,SAAS+B,aAAa3C,OAAe;GACnCyC,eAAe;GACf,MAAMG,KAAKC,KAAKC,IAAI,GAAGd,IAAIhC,MAAMoB,aAAatB,kBAAkBsB,SAAS;GACzEkB,YAAYS,iBAAiB;IAC3BT,YAAY1B,KAAAA;IACZkB,KAAK,QAAQ9B,KAAK;GACpB,GAAG4C,EAAE;EACP;EAEA,SAASI,gBAAgB;GACvB/D,eAAe;IACb,IAAIkD,SAASnC,OAAOmC,SAASnC,MAAMiD,YAAY;GACjD,CAAC;EACH;EAEA,SAASC,OAAOlD,OAAemD,MAA2B;GACxD,IAAIX,OAAOxC;GACX,MAAM8C,MAAMd,IAAIhC,MAAMe;GACtB,IAAI+B,OAAO,QAAQN,KAAKY,SAASN,KAAK;IACpCN,OAAOA,KAAKa,MAAM,GAAGP,GAAG;IACxB,IAAIX,SAASnC,OAAOmC,SAASnC,MAAMA,QAAQwC;GAC7C;GACAJ,MAAMpC,QAAQwC;GACdV,KAAK,qBAAqBU,IAAI;GAC9BV,KAAK,SAASU,IAAI;GAClB,IAAIW,MAAMxB,SAAS,OAAOgB,aAAaH,IAAI;GAC3CQ,cAAc;EAChB;EAEA,SAASM,QAAQC,GAAU;GAEzBL,OAAQK,EAAEC,OAA+BxD,OAAO,EAC9C2B,MAAM,CAACU,UAAUrC,MACnB,CAAC;EACH;EAEA,SAASyD,qBAAqB;GAC5BpB,UAAUrC,QAAQ;EACpB;EAEA,SAAS0D,iBAAiBH,GAAqB;GAC7ClB,UAAUrC,QAAQ;GAClBkD,OAAQK,EAAEC,OAA+BxD,KAAK;EAChD;EAEA,SAAS2D,SAASJ,GAAU;GAC1B,MAAMK,MAAOL,EAAEC,OAA+BxD;GAC9C,IAAIgC,IAAIhC,MAAMqB,kBAAkB,OAC9BY,UAAU4B,SAAS,QAAQ;GAE7B/B,KAAK,UAAU8B,GAAG;EACpB;EAEA,SAASE,SAAS;GAChB,IAAI9B,IAAIhC,MAAMqB,kBAAkB,OAC9BY,UAAU4B,SAAS,MAAM;EAE7B;EAEA,SAASE,iBAAiB;GACxBf,cAAc;EAChB;EAEA,SAASgB,iBAAiB;GACxBhB,cAAc;EAChB;EAEA7D,gBAAgB;GACd8E,OAAOC,iBAAiB,UAAUF,cAAc;EAClD,CAAC;EAED9E,sBAAsB;GACpB+E,OAAOE,oBAAoB,UAAUH,cAAc;GACnDvB,eAAe;EACjB,CAAC;EAUDV,OAAOqC;GAPLC,aAAalC,SAASnC,OAAOqE,MAAM;GACnCC,YAAYnC,SAASnC,OAAOsE,KAAK;GACjCC,cAAcpC,SAASnC,OAAOuE,OAAO;GACrC,IAAIC,WAAW;IACb,OAAOrC,SAASnC;GAClB;EAEKoE,CAAG;EAEV,aAAa;GACX,MAAM,EAAEK,OAAOC,OAAOC,OAAOC,WAAW,GAAGC,SAAShD;GACpD,MAAMiD,YAAY9F,WAChB;IACEyF,OAAO;KACL;KACA;MACE,qBAAqBzC,IAAIhC,MAAMmB;MAC/B,wBAAwBH,SAAShB;KACnC;KACA0E;IAAK;IAEPC,OAAO,CACLhF,eAAe;KACb,GAAGD,kBAAkB,YAAYsC,IAAIhC,MAAMU,IAAI;KAC/C,GAAGjB,mBAAmB,YAAYuC,IAAIhC,MAAMa,KAAK;KACjD,GAAGR,MAAMiB;IACX,CAAC,GACDsD,SAAS;GAEb,GACA,CAAC,CACH;GAEA,OAAArF,YAAA,OACWuF,WAAS,CAAAvF,YAAA,OAAA;IAAA,SAAA;IAAA,eAAA;GAAA,GAAA,CAEbQ,UAAUqC,MAAMpC,KAAK,CAAC,CAAA,GAAAT,YAAA,YAAAC,WAGnBqF,MAAI;IAAA,OACH1C;IAAQ,SAAA;IAAA,SAENC,MAAMpC;IAAK,eACLgC,IAAIhC,MAAMc;IAAW,aACvBkB,IAAIhC,MAAMe;IAAS,YACpBC,SAAShB,SAASY,KAAAA;IAAS,YAC3BoB,IAAIhC,MAAMkB,YAAYN,KAAAA;IAAS,QACnC;IAAC,WACE0C;IAAO,YACNK;IAAQ,UACVG;IAAM,sBACML;IAAkB,oBACpBC;IAAgB,cACtBH,MAAqB;KAC/B,IAAIA,EAAEwB,QAAQ,SAAShB,eAAe;IACxC;GAAC,CAAA,GAAA,IAAA,CAAA,CAAA;EAIT;CACF;AACF,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * 可通过 `app.use(UI, { components: { Textarea: {...} } })` 配置的项。
3
+ * 不宜全局配置:modelValue(受控值)、一次性回调。
4
+ */
5
+ export type TextareaGlobalConfig = Partial<{
6
+ /** 尺度核(px)→ `--w-prop-textarea-size` */
7
+ size: number;
8
+ /** 品牌主色 → `--w-prop-textarea-color`(focus 描边) */
9
+ color: string;
10
+ placeholder: string;
11
+ maxlength: number;
12
+ disabled: boolean;
13
+ readonly: boolean;
14
+ block: boolean;
15
+ /** 停输后触发 save 的防抖毫秒 */
16
+ saveDelay: number;
17
+ /** blur/change 时是否触发 FormItem 校验 */
18
+ validateEvent: boolean;
19
+ }>;
20
+ export declare const TEXTAREA_FALLBACK: {
21
+ size: number | undefined;
22
+ color: string | undefined;
23
+ placeholder: string | undefined;
24
+ maxlength: number | undefined;
25
+ disabled: boolean;
26
+ readonly: boolean;
27
+ block: boolean;
28
+ saveDelay: number;
29
+ validateEvent: boolean;
30
+ };
@@ -0,0 +1,16 @@
1
+ //#region components/textarea/config.ts
2
+ var TEXTAREA_FALLBACK = {
3
+ size: void 0,
4
+ color: void 0,
5
+ placeholder: void 0,
6
+ maxlength: void 0,
7
+ disabled: false,
8
+ readonly: false,
9
+ block: false,
10
+ saveDelay: 3e3,
11
+ validateEvent: true
12
+ };
13
+ //#endregion
14
+ export { TEXTAREA_FALLBACK };
15
+
16
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","names":[],"sources":["../../../components/textarea/config.ts"],"sourcesContent":["/**\r\n * 可通过 `app.use(UI, { components: { Textarea: {...} } })` 配置的项。\r\n * 不宜全局配置:modelValue(受控值)、一次性回调。\r\n */\r\nexport type TextareaGlobalConfig = Partial<{\r\n /** 尺度核(px)→ `--w-prop-textarea-size` */\r\n size: number\r\n /** 品牌主色 → `--w-prop-textarea-color`(focus 描边) */\r\n color: string\r\n placeholder: string\r\n maxlength: number\r\n disabled: boolean\r\n readonly: boolean\r\n block: boolean\r\n /** 停输后触发 save 的防抖毫秒 */\r\n saveDelay: number\r\n /** blur/change 时是否触发 FormItem 校验 */\r\n validateEvent: boolean\r\n}>\r\n\r\nexport const TEXTAREA_FALLBACK = {\r\n size: undefined as number | undefined,\r\n color: undefined as string | undefined,\r\n placeholder: undefined as string | undefined,\r\n maxlength: undefined as number | undefined,\r\n disabled: false,\r\n readonly: false,\r\n block: false,\r\n saveDelay: 3000,\r\n validateEvent: true,\r\n}\r\n"],"mappings":";AAoBA,IAAa,oBAAoB;CAC/B,MAAM,KAAA;CACN,OAAO,KAAA;CACP,aAAa,KAAA;CACb,WAAW,KAAA;CACX,UAAU;CACV,UAAU;CACV,OAAO;CACP,WAAW;CACX,eAAe;AACjB"}
@@ -0,0 +1,4 @@
1
+ export { default } from './Textarea';
2
+ export type * from './Textarea';
3
+ export type * from './config';
4
+ export { TEXTAREA_FALLBACK } from './config';
@@ -0,0 +1 @@
1
+ @import '../../../theme/tokens/components/textarea.css';
@@ -0,0 +1,7 @@
1
+ import Dial_vue_vue_type_script_setup_true_lang_default from "./Dial.vue_vue_type_script_setup_true_lang.js";
2
+ //#region components/time/Dial.vue
3
+ var Dial_default = Dial_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Dial_default as default };
6
+
7
+ //# sourceMappingURL=Dial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dial.js","names":[],"sources":["../../../components/time/Dial.vue"],"sourcesContent":["<template>\r\n <div class=\"w-time-dial\">\r\n <div class=\"w-time-dial-title\">\r\n <span v-if=\"has.h\">{{ t(\"time.hour\") }}</span>\r\n <span v-if=\"has.m\">{{ t(\"time.minute\") }}</span>\r\n <span v-if=\"has.s\">{{ t(\"time.second\") }}</span>\r\n </div>\r\n <div class=\"w-time-dial-btn\" ref=\"top_btn\"></div>\r\n <div class=\"w-time-dial-list\" v-if=\"isMounted\">\r\n <Toggle\r\n v-for=\"(a, i) in arr\"\r\n v-bind=\"toggleOptions\"\r\n :data=\"a\"\r\n :index=\"getIndex(i)\"\r\n @wheel=\"handleWheel(i, $event)\">\r\n <template #default=\"{ item }\">\r\n <div\r\n v-for=\"n in item\"\r\n :class=\"[\r\n 'w-dial-item-item',\r\n {\r\n 'w-dial-item-readonly':\r\n (i === 0 && !has.h) ||\r\n (i === 1 && !can.m) ||\r\n (i === 2 && !can.s),\r\n 'w-dial-item-selected':\r\n (i === 0 && h == n) ||\r\n (i === 1 && m == n) ||\r\n (i === 2 && s == n),\r\n },\r\n ]\"\r\n @click=\"handleClick(i, n)\">\r\n {{ n }}\r\n </div>\r\n </template>\r\n <template #use=\"{ prev, next }\">\r\n <teleport :to=\"top_btn\">\r\n <Icon name=\"w-icon-sort-down\" size=\"var(--__icon)\" rotate @click=\"prev\" />\r\n </teleport>\r\n <teleport :to=\"bottom_btn\">\r\n <Icon name=\"w-icon-sort-down\" size=\"var(--__icon)\" @click=\"next\" />\r\n </teleport>\r\n </template>\r\n </Toggle>\r\n </div>\r\n <div class=\"w-time-dial-btn\" ref=\"bottom_btn\"></div>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport \"./style/dial.css\"\r\nimport { ref, onMounted, computed, watchEffect } from \"vue\"\r\nimport Toggle from \"../toggle/index\"\r\nimport Icon from \"../icon/index\"\r\nimport type { TimeFormatType } from \"../../config/types\"\r\nimport { useUII18n } from \"../../use/useUII18n\"\r\n\r\nconst { t } = useUII18n()\r\nconst props = withDefaults(\r\n defineProps<{\r\n format?: TimeFormatType\r\n value?: string\r\n }>(),\r\n { format: \"HH:mm:ss\" }\r\n)\r\nconst emit = defineEmits<{ (e: \"change\", hms?: string): void }>()\r\nconst [h, m, s] = useHms(props as any)\r\nconst isMounted = ref(false)\r\nconst bottom_btn = ref<HTMLElement>()\r\nconst top_btn = ref<HTMLElement>()\r\nconst createNumberArray = (total: number, size: number = 6) =>\r\n Array.from({ length: total / size }, (el, i) =>\r\n Array.from({ length: size }, (item, index) =>\r\n (i * size + index).toString().padStart(2, \"0\")\r\n )\r\n )\r\n//展不展示时分秒\r\nconst has = computed(() => {\r\n const f = props.format\r\n const m = f.indexOf(\"mm\") > -1\r\n const h = f.indexOf(\"HH\") > -1\r\n const s = f.indexOf(\"ss\") > -1\r\n // console.log(f, h)\r\n return { m, h, s }\r\n})\r\n//能不能进行选择时分秒的操作\r\nconst can = computed(() => {\r\n const v = props.value\r\n const len = v?.length\r\n if (len) {\r\n let h = true,\r\n m = false,\r\n s = false\r\n if (len >= 2) {\r\n m = true\r\n }\r\n if (len >= 5) {\r\n s = true\r\n }\r\n return { h: h && has.value.h, m: m && has.value.m, s: s && has.value.s }\r\n }\r\n return { h: false, m: false, s: false }\r\n})\r\nconst arr = computed(() => {\r\n const a: string[][][] = []\r\n if (has.value.h) {\r\n a.push(createNumberArray(24))\r\n if (has.value.m) {\r\n a.push(createNumberArray(60))\r\n if (has.value.s) {\r\n a.push(createNumberArray(60))\r\n }\r\n }\r\n }\r\n return a\r\n})\r\nconst toggleOptions = {\r\n class: \"w-dial-item\",\r\n transform: \"translate\" as \"translate\",\r\n direction: \"y\" as \"y\",\r\n itemClass: \"w-dial-toggle-item\",\r\n}\r\n\r\n//template里可以推断出组件定义的数据类型,但这里仍然要定义一遍,有其他办法重用类型吗?\r\nfunction handleWheel(\r\n i: number,\r\n {\r\n event,\r\n prev,\r\n next,\r\n delay,\r\n }: {\r\n event: WheelEvent\r\n [k: string]: any\r\n }\r\n) {\r\n if (event.deltaY > 0) {\r\n delay(next, 100)\r\n } else {\r\n delay(prev, 100)\r\n }\r\n}\r\n\r\nfunction handleClick(i: number, v: string) {\r\n // console.log(v, 'vvv')\r\n\r\n const arr: string[] = []\r\n if (i === 0) {\r\n if (has.value.h) h.value = v\r\n } else if (i === 1) {\r\n if (can.value.m) m.value = v\r\n else {\r\n return\r\n }\r\n } else {\r\n if (can.value.s) s.value = v\r\n else {\r\n return\r\n }\r\n }\r\n if (h.value) {\r\n arr.push(h.value)\r\n }\r\n if (m.value) {\r\n arr.push(m.value)\r\n }\r\n if (s.value) {\r\n arr.push(s.value)\r\n }\r\n emit(\"change\", arr.join(\":\"))\r\n}\r\n\r\nfunction getIndex(i: number) {\r\n if (i === 0) {\r\n if (h.value === undefined) {\r\n return 0\r\n } else {\r\n const j = parseInt(\"\" + Number(h.value) / 6)\r\n return j\r\n }\r\n } else if (i === 1) {\r\n if (m.value === undefined) {\r\n return 0\r\n } else {\r\n return parseInt(\"\" + Number(m.value) / 6)\r\n }\r\n } else if (i === 2) {\r\n if (s.value === undefined) {\r\n return 0\r\n } else {\r\n return parseInt(\"\" + Number(s.value) / 6)\r\n }\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n isMounted.value = true\r\n})\r\n\r\nfunction useHms(props: Record<string, string>) {\r\n const h = ref<string>()\r\n const m = ref<string>()\r\n const s = ref<string>()\r\n watchEffect(() => {\r\n ;[h.value, m.value, s.value] = (props.value || \"\").split(\":\")\r\n\r\n // console.log(h.value, m.value, s.value)\r\n })\r\n\r\n return [h, m, s]\r\n}\r\n</script>\r\n"],"mappings":""}
@@ -0,0 +1,178 @@
1
+ import Icon_default from "../icon/Icon.js";
2
+ import { useUII18n } from "../../use/useUII18n.js";
3
+ import Toggle_default from "../toggle/Toggle.js";
4
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, onMounted, openBlock, ref, renderList, toDisplayString, unref, watchEffect, withCtx } from "vue";
5
+ import "./style/dial.css";
6
+ //#region components/time/Dial.vue?vue&type=script&setup=true&lang.ts
7
+ var _hoisted_1 = { class: "w-time-dial" };
8
+ var _hoisted_2 = { class: "w-time-dial-title" };
9
+ var _hoisted_3 = { key: 0 };
10
+ var _hoisted_4 = { key: 1 };
11
+ var _hoisted_5 = { key: 2 };
12
+ var _hoisted_6 = {
13
+ key: 0,
14
+ class: "w-time-dial-list"
15
+ };
16
+ var _hoisted_7 = ["onClick"];
17
+ var Dial_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
18
+ __name: "Dial",
19
+ props: {
20
+ format: { default: "HH:mm:ss" },
21
+ value: {}
22
+ },
23
+ emits: ["change"],
24
+ setup(__props, { emit: __emit }) {
25
+ const { t } = useUII18n();
26
+ const props = __props;
27
+ const emit = __emit;
28
+ const [h, m, s] = useHms(props);
29
+ const isMounted = ref(false);
30
+ const bottom_btn = ref();
31
+ const top_btn = ref();
32
+ const createNumberArray = (total, size = 6) => Array.from({ length: total / size }, (el, i) => Array.from({ length: size }, (item, index) => (i * size + index).toString().padStart(2, "0")));
33
+ const has = computed(() => {
34
+ const f = props.format;
35
+ return {
36
+ m: f.indexOf("mm") > -1,
37
+ h: f.indexOf("HH") > -1,
38
+ s: f.indexOf("ss") > -1
39
+ };
40
+ });
41
+ const can = computed(() => {
42
+ const len = props.value?.length;
43
+ if (len) {
44
+ let m = false, s = false;
45
+ if (len >= 2) m = true;
46
+ if (len >= 5) s = true;
47
+ return {
48
+ h: has.value.h,
49
+ m: m && has.value.m,
50
+ s: s && has.value.s
51
+ };
52
+ }
53
+ return {
54
+ h: false,
55
+ m: false,
56
+ s: false
57
+ };
58
+ });
59
+ const arr = computed(() => {
60
+ const a = [];
61
+ if (has.value.h) {
62
+ a.push(createNumberArray(24));
63
+ if (has.value.m) {
64
+ a.push(createNumberArray(60));
65
+ if (has.value.s) a.push(createNumberArray(60));
66
+ }
67
+ }
68
+ return a;
69
+ });
70
+ const toggleOptions = {
71
+ class: "w-dial-item",
72
+ transform: "translate",
73
+ direction: "y",
74
+ itemClass: "w-dial-toggle-item"
75
+ };
76
+ function handleWheel(i, { event, prev, next, delay }) {
77
+ if (event.deltaY > 0) delay(next, 100);
78
+ else delay(prev, 100);
79
+ }
80
+ function handleClick(i, v) {
81
+ const arr = [];
82
+ if (i === 0) {
83
+ if (has.value.h) h.value = v;
84
+ } else if (i === 1) {
85
+ if (can.value.m) m.value = v;
86
+ else return;
87
+ } else if (can.value.s) s.value = v;
88
+ else return;
89
+ if (h.value) arr.push(h.value);
90
+ if (m.value) arr.push(m.value);
91
+ if (s.value) arr.push(s.value);
92
+ emit("change", arr.join(":"));
93
+ }
94
+ function getIndex(i) {
95
+ if (i === 0) {
96
+ if (h.value === void 0) return 0;
97
+ else return parseInt("" + Number(h.value) / 6);
98
+ } else if (i === 1) {
99
+ if (m.value === void 0) return 0;
100
+ else return parseInt("" + Number(m.value) / 6);
101
+ } else if (i === 2) {
102
+ if (s.value === void 0) return 0;
103
+ else return parseInt("" + Number(s.value) / 6);
104
+ }
105
+ }
106
+ onMounted(() => {
107
+ isMounted.value = true;
108
+ });
109
+ function useHms(props) {
110
+ const h = ref();
111
+ const m = ref();
112
+ const s = ref();
113
+ watchEffect(() => {
114
+ [h.value, m.value, s.value] = (props.value || "").split(":");
115
+ });
116
+ return [
117
+ h,
118
+ m,
119
+ s
120
+ ];
121
+ }
122
+ return (_ctx, _cache) => {
123
+ return openBlock(), createElementBlock("div", _hoisted_1, [
124
+ createElementVNode("div", _hoisted_2, [
125
+ has.value.h ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(unref(t)("time.hour")), 1)) : createCommentVNode("", true),
126
+ has.value.m ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(unref(t)("time.minute")), 1)) : createCommentVNode("", true),
127
+ has.value.s ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(unref(t)("time.second")), 1)) : createCommentVNode("", true)
128
+ ]),
129
+ createElementVNode("div", {
130
+ class: "w-time-dial-btn",
131
+ ref_key: "top_btn",
132
+ ref: top_btn
133
+ }, null, 512),
134
+ isMounted.value ? (openBlock(), createElementBlock("div", _hoisted_6, [(openBlock(true), createElementBlock(Fragment, null, renderList(arr.value, (a, i) => {
135
+ return openBlock(), createBlock(unref(Toggle_default), mergeProps({ ref_for: true }, toggleOptions, {
136
+ data: a,
137
+ index: getIndex(i),
138
+ onWheel: ($event) => handleWheel(i, $event)
139
+ }), {
140
+ default: withCtx(({ item }) => [(openBlock(true), createElementBlock(Fragment, null, renderList(item, (n) => {
141
+ return openBlock(), createElementBlock("div", {
142
+ class: normalizeClass(["w-dial-item-item", {
143
+ "w-dial-item-readonly": i === 0 && !has.value.h || i === 1 && !can.value.m || i === 2 && !can.value.s,
144
+ "w-dial-item-selected": i === 0 && unref(h) == n || i === 1 && unref(m) == n || i === 2 && unref(s) == n
145
+ }]),
146
+ onClick: ($event) => handleClick(i, n)
147
+ }, toDisplayString(n), 11, _hoisted_7);
148
+ }), 256))]),
149
+ use: withCtx(({ prev, next }) => [(openBlock(), createBlock(Teleport, { to: top_btn.value }, [createVNode(unref(Icon_default), {
150
+ name: "w-icon-sort-down",
151
+ size: "var(--__icon)",
152
+ rotate: "",
153
+ onClick: prev
154
+ }, null, 8, ["onClick"])], 8, ["to"])), (openBlock(), createBlock(Teleport, { to: bottom_btn.value }, [createVNode(unref(Icon_default), {
155
+ name: "w-icon-sort-down",
156
+ size: "var(--__icon)",
157
+ onClick: next
158
+ }, null, 8, ["onClick"])], 8, ["to"]))]),
159
+ _: 2
160
+ }, 1040, [
161
+ "data",
162
+ "index",
163
+ "onWheel"
164
+ ]);
165
+ }), 256))])) : createCommentVNode("", true),
166
+ createElementVNode("div", {
167
+ class: "w-time-dial-btn",
168
+ ref_key: "bottom_btn",
169
+ ref: bottom_btn
170
+ }, null, 512)
171
+ ]);
172
+ };
173
+ }
174
+ });
175
+ //#endregion
176
+ export { Dial_vue_vue_type_script_setup_true_lang_default as default };
177
+
178
+ //# sourceMappingURL=Dial.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dial.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../components/time/Dial.vue"],"sourcesContent":["<template>\r\n <div class=\"w-time-dial\">\r\n <div class=\"w-time-dial-title\">\r\n <span v-if=\"has.h\">{{ t(\"time.hour\") }}</span>\r\n <span v-if=\"has.m\">{{ t(\"time.minute\") }}</span>\r\n <span v-if=\"has.s\">{{ t(\"time.second\") }}</span>\r\n </div>\r\n <div class=\"w-time-dial-btn\" ref=\"top_btn\"></div>\r\n <div class=\"w-time-dial-list\" v-if=\"isMounted\">\r\n <Toggle\r\n v-for=\"(a, i) in arr\"\r\n v-bind=\"toggleOptions\"\r\n :data=\"a\"\r\n :index=\"getIndex(i)\"\r\n @wheel=\"handleWheel(i, $event)\">\r\n <template #default=\"{ item }\">\r\n <div\r\n v-for=\"n in item\"\r\n :class=\"[\r\n 'w-dial-item-item',\r\n {\r\n 'w-dial-item-readonly':\r\n (i === 0 && !has.h) ||\r\n (i === 1 && !can.m) ||\r\n (i === 2 && !can.s),\r\n 'w-dial-item-selected':\r\n (i === 0 && h == n) ||\r\n (i === 1 && m == n) ||\r\n (i === 2 && s == n),\r\n },\r\n ]\"\r\n @click=\"handleClick(i, n)\">\r\n {{ n }}\r\n </div>\r\n </template>\r\n <template #use=\"{ prev, next }\">\r\n <teleport :to=\"top_btn\">\r\n <Icon name=\"w-icon-sort-down\" size=\"var(--__icon)\" rotate @click=\"prev\" />\r\n </teleport>\r\n <teleport :to=\"bottom_btn\">\r\n <Icon name=\"w-icon-sort-down\" size=\"var(--__icon)\" @click=\"next\" />\r\n </teleport>\r\n </template>\r\n </Toggle>\r\n </div>\r\n <div class=\"w-time-dial-btn\" ref=\"bottom_btn\"></div>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport \"./style/dial.css\"\r\nimport { ref, onMounted, computed, watchEffect } from \"vue\"\r\nimport Toggle from \"../toggle/index\"\r\nimport Icon from \"../icon/index\"\r\nimport type { TimeFormatType } from \"../../config/types\"\r\nimport { useUII18n } from \"../../use/useUII18n\"\r\n\r\nconst { t } = useUII18n()\r\nconst props = withDefaults(\r\n defineProps<{\r\n format?: TimeFormatType\r\n value?: string\r\n }>(),\r\n { format: \"HH:mm:ss\" }\r\n)\r\nconst emit = defineEmits<{ (e: \"change\", hms?: string): void }>()\r\nconst [h, m, s] = useHms(props as any)\r\nconst isMounted = ref(false)\r\nconst bottom_btn = ref<HTMLElement>()\r\nconst top_btn = ref<HTMLElement>()\r\nconst createNumberArray = (total: number, size: number = 6) =>\r\n Array.from({ length: total / size }, (el, i) =>\r\n Array.from({ length: size }, (item, index) =>\r\n (i * size + index).toString().padStart(2, \"0\")\r\n )\r\n )\r\n//展不展示时分秒\r\nconst has = computed(() => {\r\n const f = props.format\r\n const m = f.indexOf(\"mm\") > -1\r\n const h = f.indexOf(\"HH\") > -1\r\n const s = f.indexOf(\"ss\") > -1\r\n // console.log(f, h)\r\n return { m, h, s }\r\n})\r\n//能不能进行选择时分秒的操作\r\nconst can = computed(() => {\r\n const v = props.value\r\n const len = v?.length\r\n if (len) {\r\n let h = true,\r\n m = false,\r\n s = false\r\n if (len >= 2) {\r\n m = true\r\n }\r\n if (len >= 5) {\r\n s = true\r\n }\r\n return { h: h && has.value.h, m: m && has.value.m, s: s && has.value.s }\r\n }\r\n return { h: false, m: false, s: false }\r\n})\r\nconst arr = computed(() => {\r\n const a: string[][][] = []\r\n if (has.value.h) {\r\n a.push(createNumberArray(24))\r\n if (has.value.m) {\r\n a.push(createNumberArray(60))\r\n if (has.value.s) {\r\n a.push(createNumberArray(60))\r\n }\r\n }\r\n }\r\n return a\r\n})\r\nconst toggleOptions = {\r\n class: \"w-dial-item\",\r\n transform: \"translate\" as \"translate\",\r\n direction: \"y\" as \"y\",\r\n itemClass: \"w-dial-toggle-item\",\r\n}\r\n\r\n//template里可以推断出组件定义的数据类型,但这里仍然要定义一遍,有其他办法重用类型吗?\r\nfunction handleWheel(\r\n i: number,\r\n {\r\n event,\r\n prev,\r\n next,\r\n delay,\r\n }: {\r\n event: WheelEvent\r\n [k: string]: any\r\n }\r\n) {\r\n if (event.deltaY > 0) {\r\n delay(next, 100)\r\n } else {\r\n delay(prev, 100)\r\n }\r\n}\r\n\r\nfunction handleClick(i: number, v: string) {\r\n // console.log(v, 'vvv')\r\n\r\n const arr: string[] = []\r\n if (i === 0) {\r\n if (has.value.h) h.value = v\r\n } else if (i === 1) {\r\n if (can.value.m) m.value = v\r\n else {\r\n return\r\n }\r\n } else {\r\n if (can.value.s) s.value = v\r\n else {\r\n return\r\n }\r\n }\r\n if (h.value) {\r\n arr.push(h.value)\r\n }\r\n if (m.value) {\r\n arr.push(m.value)\r\n }\r\n if (s.value) {\r\n arr.push(s.value)\r\n }\r\n emit(\"change\", arr.join(\":\"))\r\n}\r\n\r\nfunction getIndex(i: number) {\r\n if (i === 0) {\r\n if (h.value === undefined) {\r\n return 0\r\n } else {\r\n const j = parseInt(\"\" + Number(h.value) / 6)\r\n return j\r\n }\r\n } else if (i === 1) {\r\n if (m.value === undefined) {\r\n return 0\r\n } else {\r\n return parseInt(\"\" + Number(m.value) / 6)\r\n }\r\n } else if (i === 2) {\r\n if (s.value === undefined) {\r\n return 0\r\n } else {\r\n return parseInt(\"\" + Number(s.value) / 6)\r\n }\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n isMounted.value = true\r\n})\r\n\r\nfunction useHms(props: Record<string, string>) {\r\n const h = ref<string>()\r\n const m = ref<string>()\r\n const s = ref<string>()\r\n watchEffect(() => {\r\n ;[h.value, m.value, s.value] = (props.value || \"\").split(\":\")\r\n\r\n // console.log(h.value, m.value, s.value)\r\n })\r\n\r\n return [h, m, s]\r\n}\r\n</script>\r\n"],"mappings":"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"}