element-ps 2.0.32 → 2.0.35

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 (326) hide show
  1. package/dist/index.full.js +74 -406
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +5 -5
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +74 -406
  7. package/es/components/alert/index.mjs +2 -2
  8. package/es/components/alert/src/alert.mjs +33 -83
  9. package/es/components/alert/src/alert.mjs.map +1 -1
  10. package/es/components/alert/src/alert2.mjs +83 -33
  11. package/es/components/alert/src/alert2.mjs.map +1 -1
  12. package/es/components/backtop/index.mjs +2 -2
  13. package/es/components/backtop/src/backtop.mjs +59 -18
  14. package/es/components/backtop/src/backtop.mjs.map +1 -1
  15. package/es/components/backtop/src/backtop2.mjs +18 -59
  16. package/es/components/backtop/src/backtop2.mjs.map +1 -1
  17. package/es/components/breadcrumb/index.mjs +2 -2
  18. package/es/components/breadcrumb/src/breadcrumb-item.mjs +46 -11
  19. package/es/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
  20. package/es/components/breadcrumb/src/breadcrumb-item2.mjs +11 -46
  21. package/es/components/breadcrumb/src/breadcrumb-item2.mjs.map +1 -1
  22. package/es/components/button/index.mjs +3 -3
  23. package/es/components/button/src/button-group.mjs +30 -5
  24. package/es/components/button/src/button-group.mjs.map +1 -1
  25. package/es/components/button/src/button-group2.mjs +5 -30
  26. package/es/components/button/src/button-group2.mjs.map +1 -1
  27. package/es/components/button/src/button.mjs +96 -48
  28. package/es/components/button/src/button.mjs.map +1 -1
  29. package/es/components/button/src/button2.mjs +48 -96
  30. package/es/components/button/src/button2.mjs.map +1 -1
  31. package/es/components/calendar/index.mjs +2 -2
  32. package/es/components/calendar/src/calendar.mjs +9 -188
  33. package/es/components/calendar/src/calendar.mjs.map +1 -1
  34. package/es/components/calendar/src/calendar2.mjs +188 -9
  35. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  36. package/es/components/cascader/src/index.mjs +1 -1
  37. package/es/components/empty/index.mjs +2 -2
  38. package/es/components/empty/src/empty.mjs +11 -56
  39. package/es/components/empty/src/empty.mjs.map +1 -1
  40. package/es/components/empty/src/empty2.mjs +56 -11
  41. package/es/components/empty/src/empty2.mjs.map +1 -1
  42. package/es/components/form/src/form-item2.mjs +2 -8
  43. package/es/components/form/src/form-item2.mjs.map +1 -1
  44. package/es/components/image/index.mjs +2 -2
  45. package/es/components/image/src/image.mjs +50 -127
  46. package/es/components/image/src/image.mjs.map +1 -1
  47. package/es/components/image/src/image2.mjs +127 -50
  48. package/es/components/image/src/image2.mjs.map +1 -1
  49. package/es/components/image-viewer/index.mjs +2 -2
  50. package/es/components/image-viewer/src/image-viewer.mjs +210 -31
  51. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  52. package/es/components/image-viewer/src/image-viewer2.mjs +31 -210
  53. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  54. package/es/components/index.mjs +24 -24
  55. package/es/components/input/index.mjs +2 -2
  56. package/es/components/input/src/input.mjs +295 -85
  57. package/es/components/input/src/input.mjs.map +1 -1
  58. package/es/components/input/src/input2.mjs +85 -295
  59. package/es/components/input/src/input2.mjs.map +1 -1
  60. package/es/components/link/index.mjs +2 -2
  61. package/es/components/link/src/link.mjs +19 -43
  62. package/es/components/link/src/link.mjs.map +1 -1
  63. package/es/components/link/src/link2.mjs +43 -19
  64. package/es/components/link/src/link2.mjs.map +1 -1
  65. package/es/components/menu/index.d.ts +6 -16
  66. package/es/components/menu/src/menu-item.mjs +8 -35
  67. package/es/components/menu/src/menu-item.mjs.map +1 -1
  68. package/es/components/menu/src/menu-item.vue.d.ts +10 -15
  69. package/es/components/menu/src/menu.mjs +2 -1
  70. package/es/components/menu/src/menu.mjs.map +1 -1
  71. package/es/components/popconfirm/index.mjs +2 -2
  72. package/es/components/popconfirm/src/popconfirm.mjs +20 -53
  73. package/es/components/popconfirm/src/popconfirm.mjs.map +1 -1
  74. package/es/components/popconfirm/src/popconfirm2.mjs +53 -20
  75. package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
  76. package/es/components/popper/index.mjs +2 -2
  77. package/es/components/popper/src/arrow.mjs +31 -7
  78. package/es/components/popper/src/arrow.mjs.map +1 -1
  79. package/es/components/popper/src/arrow2.mjs +7 -31
  80. package/es/components/popper/src/arrow2.mjs.map +1 -1
  81. package/es/components/radio/index.mjs +6 -6
  82. package/es/components/radio/src/radio-button.mjs +9 -80
  83. package/es/components/radio/src/radio-button.mjs.map +1 -1
  84. package/es/components/radio/src/radio-button2.mjs +80 -9
  85. package/es/components/radio/src/radio-button2.mjs.map +1 -1
  86. package/es/components/radio/src/radio-group.mjs +37 -18
  87. package/es/components/radio/src/radio-group.mjs.map +1 -1
  88. package/es/components/radio/src/radio-group2.mjs +18 -37
  89. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  90. package/es/components/radio/src/radio.mjs +74 -62
  91. package/es/components/radio/src/radio.mjs.map +1 -1
  92. package/es/components/radio/src/radio2.mjs +62 -74
  93. package/es/components/radio/src/radio2.mjs.map +1 -1
  94. package/es/components/rate/index.mjs +2 -2
  95. package/es/components/rate/src/rate.mjs +84 -169
  96. package/es/components/rate/src/rate.mjs.map +1 -1
  97. package/es/components/rate/src/rate2.mjs +169 -84
  98. package/es/components/rate/src/rate2.mjs.map +1 -1
  99. package/es/components/result/index.mjs +2 -2
  100. package/es/components/result/src/result.mjs +73 -28
  101. package/es/components/result/src/result.mjs.map +1 -1
  102. package/es/components/result/src/result2.mjs +28 -73
  103. package/es/components/result/src/result2.mjs.map +1 -1
  104. package/es/components/roving-focus-group/index.mjs +3 -3
  105. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs +1 -1
  106. package/es/components/roving-focus-group/src/roving-focus-group.mjs +27 -29
  107. package/es/components/roving-focus-group/src/roving-focus-group.mjs.map +1 -1
  108. package/es/components/roving-focus-group/src/roving-focus-group2.mjs +29 -27
  109. package/es/components/roving-focus-group/src/roving-focus-group2.mjs.map +1 -1
  110. package/es/components/roving-focus-group/src/roving-focus-item.mjs +1 -1
  111. package/es/components/scrollbar/index.mjs +2 -2
  112. package/es/components/scrollbar/src/bar.mjs +22 -35
  113. package/es/components/scrollbar/src/bar.mjs.map +1 -1
  114. package/es/components/scrollbar/src/bar2.mjs +35 -22
  115. package/es/components/scrollbar/src/bar2.mjs.map +1 -1
  116. package/es/components/scrollbar/src/scrollbar.mjs +112 -42
  117. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  118. package/es/components/scrollbar/src/scrollbar2.mjs +42 -112
  119. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  120. package/es/components/select/src/select.mjs +1 -1
  121. package/es/components/skeleton/index.mjs +2 -2
  122. package/es/components/skeleton/src/skeleton.mjs +49 -22
  123. package/es/components/skeleton/src/skeleton.mjs.map +1 -1
  124. package/es/components/skeleton/src/skeleton2.mjs +22 -49
  125. package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
  126. package/es/components/switch/index.mjs +2 -2
  127. package/es/components/switch/src/switch.mjs +81 -176
  128. package/es/components/switch/src/switch.mjs.map +1 -1
  129. package/es/components/switch/src/switch2.mjs +176 -81
  130. package/es/components/switch/src/switch2.mjs.map +1 -1
  131. package/es/components/tabs/index.mjs +2 -2
  132. package/es/components/tabs/src/tab-pane.mjs +61 -15
  133. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  134. package/es/components/tabs/src/tab-pane2.mjs +15 -61
  135. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  136. package/es/components/tag/index.mjs +2 -2
  137. package/es/components/tag/src/tag.mjs +33 -81
  138. package/es/components/tag/src/tag.mjs.map +1 -1
  139. package/es/components/tag/src/tag2.mjs +81 -33
  140. package/es/components/tag/src/tag2.mjs.map +1 -1
  141. package/es/components/tooltip/src/tooltip2.mjs +1 -1
  142. package/es/components/tooltip-v2/index.mjs +5 -5
  143. package/es/components/tooltip-v2/src/content.mjs +113 -50
  144. package/es/components/tooltip-v2/src/content.mjs.map +1 -1
  145. package/es/components/tooltip-v2/src/content2.mjs +50 -113
  146. package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
  147. package/es/components/tooltip-v2/src/root.mjs +17 -81
  148. package/es/components/tooltip-v2/src/root.mjs.map +1 -1
  149. package/es/components/tooltip-v2/src/root2.mjs +81 -17
  150. package/es/components/tooltip-v2/src/root2.mjs.map +1 -1
  151. package/es/components/tooltip-v2/src/tooltip.mjs +21 -74
  152. package/es/components/tooltip-v2/src/tooltip.mjs.map +1 -1
  153. package/es/components/tooltip-v2/src/tooltip2.mjs +74 -21
  154. package/es/components/tooltip-v2/src/tooltip2.mjs.map +1 -1
  155. package/es/components/tooltip-v2/src/trigger.mjs +11 -89
  156. package/es/components/tooltip-v2/src/trigger.mjs.map +1 -1
  157. package/es/components/tooltip-v2/src/trigger2.mjs +89 -11
  158. package/es/components/tooltip-v2/src/trigger2.mjs.map +1 -1
  159. package/es/components/upload/index.mjs +1 -1
  160. package/es/components/upload/src/upload-list.mjs +155 -26
  161. package/es/components/upload/src/upload-list.mjs.map +1 -1
  162. package/es/components/upload/src/upload-list2.mjs +26 -155
  163. package/es/components/upload/src/upload-list2.mjs.map +1 -1
  164. package/es/components/upload/src/upload2.mjs +1 -1
  165. package/es/index.mjs +24 -24
  166. package/lib/components/alert/index.js +2 -2
  167. package/lib/components/alert/src/alert.js +33 -82
  168. package/lib/components/alert/src/alert.js.map +1 -1
  169. package/lib/components/alert/src/alert2.js +82 -33
  170. package/lib/components/alert/src/alert2.js.map +1 -1
  171. package/lib/components/backtop/index.js +2 -2
  172. package/lib/components/backtop/src/backtop.js +59 -18
  173. package/lib/components/backtop/src/backtop.js.map +1 -1
  174. package/lib/components/backtop/src/backtop2.js +18 -59
  175. package/lib/components/backtop/src/backtop2.js.map +1 -1
  176. package/lib/components/breadcrumb/index.js +2 -2
  177. package/lib/components/breadcrumb/src/breadcrumb-item.js +46 -11
  178. package/lib/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
  179. package/lib/components/breadcrumb/src/breadcrumb-item2.js +11 -46
  180. package/lib/components/breadcrumb/src/breadcrumb-item2.js.map +1 -1
  181. package/lib/components/button/index.js +3 -3
  182. package/lib/components/button/src/button-group.js +30 -5
  183. package/lib/components/button/src/button-group.js.map +1 -1
  184. package/lib/components/button/src/button-group2.js +5 -30
  185. package/lib/components/button/src/button-group2.js.map +1 -1
  186. package/lib/components/button/src/button.js +96 -50
  187. package/lib/components/button/src/button.js.map +1 -1
  188. package/lib/components/button/src/button2.js +50 -96
  189. package/lib/components/button/src/button2.js.map +1 -1
  190. package/lib/components/calendar/index.js +2 -2
  191. package/lib/components/calendar/src/calendar.js +9 -192
  192. package/lib/components/calendar/src/calendar.js.map +1 -1
  193. package/lib/components/calendar/src/calendar2.js +192 -9
  194. package/lib/components/calendar/src/calendar2.js.map +1 -1
  195. package/lib/components/cascader/src/index.js +1 -1
  196. package/lib/components/empty/index.js +2 -2
  197. package/lib/components/empty/src/empty.js +11 -56
  198. package/lib/components/empty/src/empty.js.map +1 -1
  199. package/lib/components/empty/src/empty2.js +56 -11
  200. package/lib/components/empty/src/empty2.js.map +1 -1
  201. package/lib/components/form/src/form-item2.js +1 -7
  202. package/lib/components/form/src/form-item2.js.map +1 -1
  203. package/lib/components/image/index.js +2 -2
  204. package/lib/components/image/src/image.js +50 -127
  205. package/lib/components/image/src/image.js.map +1 -1
  206. package/lib/components/image/src/image2.js +127 -50
  207. package/lib/components/image/src/image2.js.map +1 -1
  208. package/lib/components/image-viewer/index.js +2 -2
  209. package/lib/components/image-viewer/src/image-viewer.js +210 -31
  210. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  211. package/lib/components/image-viewer/src/image-viewer2.js +31 -210
  212. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  213. package/lib/components/index.js +24 -24
  214. package/lib/components/input/index.js +2 -2
  215. package/lib/components/input/src/input.js +294 -84
  216. package/lib/components/input/src/input.js.map +1 -1
  217. package/lib/components/input/src/input2.js +84 -294
  218. package/lib/components/input/src/input2.js.map +1 -1
  219. package/lib/components/link/index.js +2 -2
  220. package/lib/components/link/src/link.js +19 -43
  221. package/lib/components/link/src/link.js.map +1 -1
  222. package/lib/components/link/src/link2.js +43 -19
  223. package/lib/components/link/src/link2.js.map +1 -1
  224. package/lib/components/menu/index.d.ts +6 -16
  225. package/lib/components/menu/src/menu-item.js +6 -33
  226. package/lib/components/menu/src/menu-item.js.map +1 -1
  227. package/lib/components/menu/src/menu-item.vue.d.ts +10 -15
  228. package/lib/components/menu/src/menu.js +2 -1
  229. package/lib/components/menu/src/menu.js.map +1 -1
  230. package/lib/components/popconfirm/index.js +2 -2
  231. package/lib/components/popconfirm/src/popconfirm.js +20 -53
  232. package/lib/components/popconfirm/src/popconfirm.js.map +1 -1
  233. package/lib/components/popconfirm/src/popconfirm2.js +53 -20
  234. package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
  235. package/lib/components/popper/index.js +2 -2
  236. package/lib/components/popper/src/arrow.js +31 -7
  237. package/lib/components/popper/src/arrow.js.map +1 -1
  238. package/lib/components/popper/src/arrow2.js +7 -31
  239. package/lib/components/popper/src/arrow2.js.map +1 -1
  240. package/lib/components/radio/index.js +6 -6
  241. package/lib/components/radio/src/radio-button.js +9 -80
  242. package/lib/components/radio/src/radio-button.js.map +1 -1
  243. package/lib/components/radio/src/radio-button2.js +80 -9
  244. package/lib/components/radio/src/radio-button2.js.map +1 -1
  245. package/lib/components/radio/src/radio-group.js +37 -18
  246. package/lib/components/radio/src/radio-group.js.map +1 -1
  247. package/lib/components/radio/src/radio-group2.js +18 -37
  248. package/lib/components/radio/src/radio-group2.js.map +1 -1
  249. package/lib/components/radio/src/radio.js +73 -64
  250. package/lib/components/radio/src/radio.js.map +1 -1
  251. package/lib/components/radio/src/radio2.js +64 -73
  252. package/lib/components/radio/src/radio2.js.map +1 -1
  253. package/lib/components/rate/index.js +2 -2
  254. package/lib/components/rate/src/rate.js +84 -169
  255. package/lib/components/rate/src/rate.js.map +1 -1
  256. package/lib/components/rate/src/rate2.js +169 -84
  257. package/lib/components/rate/src/rate2.js.map +1 -1
  258. package/lib/components/result/index.js +2 -2
  259. package/lib/components/result/src/result.js +73 -30
  260. package/lib/components/result/src/result.js.map +1 -1
  261. package/lib/components/result/src/result2.js +30 -73
  262. package/lib/components/result/src/result2.js.map +1 -1
  263. package/lib/components/roving-focus-group/index.js +2 -2
  264. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js +1 -1
  265. package/lib/components/roving-focus-group/src/roving-focus-group.js +27 -33
  266. package/lib/components/roving-focus-group/src/roving-focus-group.js.map +1 -1
  267. package/lib/components/roving-focus-group/src/roving-focus-group2.js +33 -27
  268. package/lib/components/roving-focus-group/src/roving-focus-group2.js.map +1 -1
  269. package/lib/components/roving-focus-group/src/roving-focus-item.js +1 -1
  270. package/lib/components/scrollbar/index.js +2 -2
  271. package/lib/components/scrollbar/src/bar.js +22 -35
  272. package/lib/components/scrollbar/src/bar.js.map +1 -1
  273. package/lib/components/scrollbar/src/bar2.js +35 -22
  274. package/lib/components/scrollbar/src/bar2.js.map +1 -1
  275. package/lib/components/scrollbar/src/scrollbar.js +112 -42
  276. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  277. package/lib/components/scrollbar/src/scrollbar2.js +42 -112
  278. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  279. package/lib/components/select/src/select.js +1 -1
  280. package/lib/components/skeleton/index.js +2 -2
  281. package/lib/components/skeleton/src/skeleton.js +49 -22
  282. package/lib/components/skeleton/src/skeleton.js.map +1 -1
  283. package/lib/components/skeleton/src/skeleton2.js +22 -49
  284. package/lib/components/skeleton/src/skeleton2.js.map +1 -1
  285. package/lib/components/switch/index.js +2 -2
  286. package/lib/components/switch/src/switch.js +81 -176
  287. package/lib/components/switch/src/switch.js.map +1 -1
  288. package/lib/components/switch/src/switch2.js +176 -81
  289. package/lib/components/switch/src/switch2.js.map +1 -1
  290. package/lib/components/tabs/index.js +2 -2
  291. package/lib/components/tabs/src/tab-pane.js +61 -15
  292. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  293. package/lib/components/tabs/src/tab-pane2.js +15 -61
  294. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  295. package/lib/components/tag/index.js +2 -2
  296. package/lib/components/tag/src/tag.js +34 -81
  297. package/lib/components/tag/src/tag.js.map +1 -1
  298. package/lib/components/tag/src/tag2.js +81 -34
  299. package/lib/components/tag/src/tag2.js.map +1 -1
  300. package/lib/components/tooltip/src/tooltip2.js +1 -1
  301. package/lib/components/tooltip-v2/index.js +5 -5
  302. package/lib/components/tooltip-v2/src/content.js +113 -50
  303. package/lib/components/tooltip-v2/src/content.js.map +1 -1
  304. package/lib/components/tooltip-v2/src/content2.js +50 -113
  305. package/lib/components/tooltip-v2/src/content2.js.map +1 -1
  306. package/lib/components/tooltip-v2/src/root.js +17 -81
  307. package/lib/components/tooltip-v2/src/root.js.map +1 -1
  308. package/lib/components/tooltip-v2/src/root2.js +81 -17
  309. package/lib/components/tooltip-v2/src/root2.js.map +1 -1
  310. package/lib/components/tooltip-v2/src/tooltip.js +21 -74
  311. package/lib/components/tooltip-v2/src/tooltip.js.map +1 -1
  312. package/lib/components/tooltip-v2/src/tooltip2.js +74 -21
  313. package/lib/components/tooltip-v2/src/tooltip2.js.map +1 -1
  314. package/lib/components/tooltip-v2/src/trigger.js +11 -89
  315. package/lib/components/tooltip-v2/src/trigger.js.map +1 -1
  316. package/lib/components/tooltip-v2/src/trigger2.js +89 -11
  317. package/lib/components/tooltip-v2/src/trigger2.js.map +1 -1
  318. package/lib/components/upload/index.js +1 -1
  319. package/lib/components/upload/src/upload-list.js +155 -27
  320. package/lib/components/upload/src/upload-list.js.map +1 -1
  321. package/lib/components/upload/src/upload-list2.js +27 -155
  322. package/lib/components/upload/src/upload-list2.js.map +1 -1
  323. package/lib/components/upload/src/upload2.js +1 -1
  324. package/lib/index.js +24 -24
  325. package/package.json +1 -1
  326. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"radio.mjs","sources":["../../../../../../packages/components/radio/src/radio.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue'\nimport { buildProps, isBoolean, isNumber, isString } from '@element-ps/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/constants'\nimport { radioGroupKey } from '@element-ps/tokens'\nimport { useDisabled, useSize, useSizeProp } from '@element-ps/hooks'\nimport type { ExtractPropTypes, SetupContext } from 'vue'\n\nexport const radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: '',\n },\n})\nexport const radioProps = buildProps({\n ...radioPropsBase,\n modelValue: {\n type: [String, Number, Boolean],\n default: '',\n },\n name: {\n type: String,\n default: '',\n },\n border: Boolean,\n} as const)\nexport type RadioProps = ExtractPropTypes<typeof radioProps>\n\nexport const radioEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n change: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n}\nexport type RadioEmits = typeof radioEmits\n\nexport const useRadio = (\n props: { label: RadioProps['label']; modelValue?: RadioProps['modelValue'] },\n emit: SetupContext<RadioEmits>['emit']\n) => {\n const radioRef = ref<HTMLInputElement>()\n const radioGroup = inject(radioGroupKey, undefined)\n const isGroup = computed(() => !!radioGroup)\n const modelValue = computed<RadioProps['modelValue']>({\n get() {\n return isGroup.value ? radioGroup!.modelValue : props.modelValue!\n },\n set(val) {\n radioRef.value!.checked = props.modelValue === props.label\n },\n })\n\n const size = useSize(computed(() => radioGroup?.size))\n const disabled = useDisabled(computed(() => radioGroup?.disabled))\n const focus = ref(false)\n const tabIndex = computed(() => {\n return disabled.value || (isGroup.value && modelValue.value !== props.label)\n ? -1\n : 0\n })\n\n return {\n radioRef,\n isGroup,\n radioGroup,\n focus,\n size,\n disabled,\n tabIndex,\n modelValue,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAKY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,GAAG,cAAc;AACnB,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACjF,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACnE,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AACzC,EAAE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;AACzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/C,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC9B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACtE,KAAK;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,CAAC;AAChE,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClG,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,OAAO,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"radio.mjs","sources":["../../../../../../packages/components/radio/src/radio.vue"],"sourcesContent":["<template>\n <label\n :class=\"[\n ns.b(),\n ns.is('disabled', disabled),\n ns.is('focus', focus),\n ns.is('bordered', border),\n ns.is('checked', modelValue === label),\n ns.m(size),\n ]\"\n role=\"radio\"\n :aria-checked=\"modelValue === label\"\n :aria-disabled=\"disabled\"\n :tabindex=\"tabIndex\"\n >\n <span\n :class=\"[\n ns.e('input'),\n ns.is('disabled', disabled),\n ns.is('checked', modelValue === label),\n ]\"\n >\n <span :class=\"ns.e('inner')\" />\n <input\n ref=\"radioRef\"\n v-model=\"modelValue\"\n :class=\"ns.e('original')\"\n :value=\"label\"\n type=\"radio\"\n aria-hidden=\"true\"\n :name=\"name\"\n :disabled=\"disabled\"\n tabindex=\"-1\"\n />\n </span>\n <span :class=\"ns.e('label')\" @keydown.stop>\n <slot>\n {{ label }}\n </slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { useNamespace } from '@element-ps/hooks'\nimport { radioProps, useRadio } from './radio'\n\nexport default defineComponent({\n name: 'PsRadio',\n props: radioProps,\n\n setup(props, { emit }) {\n const ns = useNamespace('radio')\n const { radioRef, isGroup, focus, size, disabled, tabIndex, modelValue } =\n useRadio(props, emit)\n\n return {\n ns,\n focus,\n isGroup,\n modelValue,\n tabIndex,\n size,\n disabled,\n radioRef,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_withModifiers","_renderSlot","_createTextVNode","_toDisplayString"],"mappings":"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"}
@@ -1,80 +1,68 @@
1
- import { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withDirectives, vModelRadio, withModifiers, renderSlot, createTextVNode, toDisplayString } from 'vue';
1
+ import { ref, inject, computed } from 'vue';
2
+ import '../../../utils/index.mjs';
3
+ import '../../../constants/index.mjs';
4
+ import '../../../tokens/index.mjs';
2
5
  import '../../../hooks/index.mjs';
3
- import { radioProps, useRadio } from './radio.mjs';
4
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
5
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
6
+ import { buildProps } from '../../../utils/vue/props.mjs';
7
+ import { useSizeProp, useSize, useDisabled } from '../../../hooks/use-common-props/index.mjs';
8
+ import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
9
+ import { isString } from '@vue/shared';
10
+ import { isNumber, isBoolean } from '@vueuse/core';
11
+ import { radioGroupKey } from '../../../tokens/radio.mjs';
6
12
 
7
- const _sfc_main = defineComponent({
8
- name: "PsRadio",
9
- props: radioProps,
10
- setup(props, { emit }) {
11
- const ns = useNamespace("radio");
12
- const { radioRef, isGroup, focus, size, disabled, tabIndex, modelValue } = useRadio(props, emit);
13
- return {
14
- ns,
15
- focus,
16
- isGroup,
17
- modelValue,
18
- tabIndex,
19
- size,
20
- disabled,
21
- radioRef
22
- };
13
+ const radioPropsBase = buildProps({
14
+ size: useSizeProp,
15
+ disabled: Boolean,
16
+ label: {
17
+ type: [String, Number, Boolean],
18
+ default: ""
23
19
  }
24
20
  });
25
- const _hoisted_1 = ["aria-checked", "aria-disabled", "tabindex"];
26
- const _hoisted_2 = ["value", "name", "disabled"];
27
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
28
- return openBlock(), createElementBlock("label", {
29
- class: normalizeClass([
30
- _ctx.ns.b(),
31
- _ctx.ns.is("disabled", _ctx.disabled),
32
- _ctx.ns.is("focus", _ctx.focus),
33
- _ctx.ns.is("bordered", _ctx.border),
34
- _ctx.ns.is("checked", _ctx.modelValue === _ctx.label),
35
- _ctx.ns.m(_ctx.size)
36
- ]),
37
- role: "radio",
38
- "aria-checked": _ctx.modelValue === _ctx.label,
39
- "aria-disabled": _ctx.disabled,
40
- tabindex: _ctx.tabIndex
41
- }, [
42
- createElementVNode("span", {
43
- class: normalizeClass([
44
- _ctx.ns.e("input"),
45
- _ctx.ns.is("disabled", _ctx.disabled),
46
- _ctx.ns.is("checked", _ctx.modelValue === _ctx.label)
47
- ])
48
- }, [
49
- createElementVNode("span", {
50
- class: normalizeClass(_ctx.ns.e("inner"))
51
- }, null, 2),
52
- withDirectives(createElementVNode("input", {
53
- ref: "radioRef",
54
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.modelValue = $event),
55
- class: normalizeClass(_ctx.ns.e("original")),
56
- value: _ctx.label,
57
- type: "radio",
58
- "aria-hidden": "true",
59
- name: _ctx.name,
60
- disabled: _ctx.disabled,
61
- tabindex: "-1"
62
- }, null, 10, _hoisted_2), [
63
- [vModelRadio, _ctx.modelValue]
64
- ])
65
- ], 2),
66
- createElementVNode("span", {
67
- class: normalizeClass(_ctx.ns.e("label")),
68
- onKeydown: _cache[1] || (_cache[1] = withModifiers(() => {
69
- }, ["stop"]))
70
- }, [
71
- renderSlot(_ctx.$slots, "default", {}, () => [
72
- createTextVNode(toDisplayString(_ctx.label), 1)
73
- ])
74
- ], 34)
75
- ], 10, _hoisted_1);
76
- }
77
- var Radio = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/Users/meng/workspace/element-ps/packages/components/radio/src/radio.vue"]]);
21
+ const radioProps = buildProps({
22
+ ...radioPropsBase,
23
+ modelValue: {
24
+ type: [String, Number, Boolean],
25
+ default: ""
26
+ },
27
+ name: {
28
+ type: String,
29
+ default: ""
30
+ },
31
+ border: Boolean
32
+ });
33
+ const radioEmits = {
34
+ [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val),
35
+ change: (val) => isString(val) || isNumber(val) || isBoolean(val)
36
+ };
37
+ const useRadio = (props, emit) => {
38
+ const radioRef = ref();
39
+ const radioGroup = inject(radioGroupKey, void 0);
40
+ const isGroup = computed(() => !!radioGroup);
41
+ const modelValue = computed({
42
+ get() {
43
+ return isGroup.value ? radioGroup.modelValue : props.modelValue;
44
+ },
45
+ set(val) {
46
+ radioRef.value.checked = props.modelValue === props.label;
47
+ }
48
+ });
49
+ const size = useSize(computed(() => radioGroup == null ? void 0 : radioGroup.size));
50
+ const disabled = useDisabled(computed(() => radioGroup == null ? void 0 : radioGroup.disabled));
51
+ const focus = ref(false);
52
+ const tabIndex = computed(() => {
53
+ return disabled.value || isGroup.value && modelValue.value !== props.label ? -1 : 0;
54
+ });
55
+ return {
56
+ radioRef,
57
+ isGroup,
58
+ radioGroup,
59
+ focus,
60
+ size,
61
+ disabled,
62
+ tabIndex,
63
+ modelValue
64
+ };
65
+ };
78
66
 
79
- export { Radio as default };
67
+ export { radioEmits, radioProps, radioPropsBase, useRadio };
80
68
  //# sourceMappingURL=radio2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio2.mjs","sources":["../../../../../../packages/components/radio/src/radio.vue"],"sourcesContent":["<template>\n <label\n :class=\"[\n ns.b(),\n ns.is('disabled', disabled),\n ns.is('focus', focus),\n ns.is('bordered', border),\n ns.is('checked', modelValue === label),\n ns.m(size),\n ]\"\n role=\"radio\"\n :aria-checked=\"modelValue === label\"\n :aria-disabled=\"disabled\"\n :tabindex=\"tabIndex\"\n >\n <span\n :class=\"[\n ns.e('input'),\n ns.is('disabled', disabled),\n ns.is('checked', modelValue === label),\n ]\"\n >\n <span :class=\"ns.e('inner')\" />\n <input\n ref=\"radioRef\"\n v-model=\"modelValue\"\n :class=\"ns.e('original')\"\n :value=\"label\"\n type=\"radio\"\n aria-hidden=\"true\"\n :name=\"name\"\n :disabled=\"disabled\"\n tabindex=\"-1\"\n />\n </span>\n <span :class=\"ns.e('label')\" @keydown.stop>\n <slot>\n {{ label }}\n </slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { useNamespace } from '@element-ps/hooks'\nimport { radioProps, useRadio } from './radio'\n\nexport default defineComponent({\n name: 'PsRadio',\n props: radioProps,\n\n setup(props, { emit }) {\n const ns = useNamespace('radio')\n const { radioRef, isGroup, focus, size, disabled, tabIndex, modelValue } =\n useRadio(props, emit)\n\n return {\n ns,\n focus,\n isGroup,\n modelValue,\n tabIndex,\n size,\n disabled,\n radioRef,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_withModifiers","_renderSlot","_createTextVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"radio2.mjs","sources":["../../../../../../packages/components/radio/src/radio.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue'\nimport { buildProps, isBoolean, isNumber, isString } from '@element-ps/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/constants'\nimport { radioGroupKey } from '@element-ps/tokens'\nimport { useDisabled, useSize, useSizeProp } from '@element-ps/hooks'\nimport type { ExtractPropTypes, SetupContext } from 'vue'\n\nexport const radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: '',\n },\n})\nexport const radioProps = buildProps({\n ...radioPropsBase,\n modelValue: {\n type: [String, Number, Boolean],\n default: '',\n },\n name: {\n type: String,\n default: '',\n },\n border: Boolean,\n} as const)\nexport type RadioProps = ExtractPropTypes<typeof radioProps>\n\nexport const radioEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n change: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n}\nexport type RadioEmits = typeof radioEmits\n\nexport const useRadio = (\n props: { label: RadioProps['label']; modelValue?: RadioProps['modelValue'] },\n emit: SetupContext<RadioEmits>['emit']\n) => {\n const radioRef = ref<HTMLInputElement>()\n const radioGroup = inject(radioGroupKey, undefined)\n const isGroup = computed(() => !!radioGroup)\n const modelValue = computed<RadioProps['modelValue']>({\n get() {\n return isGroup.value ? radioGroup!.modelValue : props.modelValue!\n },\n set(val) {\n radioRef.value!.checked = props.modelValue === props.label\n },\n })\n\n const size = useSize(computed(() => radioGroup?.size))\n const disabled = useDisabled(computed(() => radioGroup?.disabled))\n const focus = ref(false)\n const tabIndex = computed(() => {\n return disabled.value || (isGroup.value && modelValue.value !== props.label)\n ? -1\n : 0\n })\n\n return {\n radioRef,\n isGroup,\n radioGroup,\n focus,\n size,\n disabled,\n tabIndex,\n modelValue,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAKY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,GAAG,cAAc;AACnB,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACjF,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACnE,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AACzC,EAAE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;AACzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/C,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC9B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACtE,KAAK;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,CAAC;AAChE,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClG,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,OAAO,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import '../../utils/index.mjs';
2
- import Rate from './src/rate.mjs';
3
- export { rateProps } from './src/rate2.mjs';
2
+ import Rate from './src/rate2.mjs';
3
+ export { rateProps } from './src/rate.mjs';
4
4
  import { withInstall } from '../../utils/vue/install.mjs';
5
5
 
6
6
  const PsRate = withInstall(Rate);
@@ -1,175 +1,90 @@
1
- import { defineComponent, inject, ref, computed, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, Fragment, renderList, createVNode, withCtx, createBlock, resolveDynamicComponent, createCommentVNode, toDisplayString } from 'vue';
1
+ import { StarFilled, Star } from '@element-plus/icons-vue';
2
2
  import '../../../utils/index.mjs';
3
- import '../../../tokens/index.mjs';
4
- import { PsIcon } from '../../icon/index.mjs';
5
- import '../../../hooks/index.mjs';
6
- import { rateProps } from './rate2.mjs';
7
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
8
- import { isObject, isArray } from '@vue/shared';
9
- import { formContextKey } from '../../../tokens/form.mjs';
10
- import { useSize } from '../../../hooks/use-common-props/index.mjs';
11
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
12
- import { hasClass } from '../../../utils/dom/style.mjs';
3
+ import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
4
+ import { mutable } from '../../../utils/typescript.mjs';
5
+ import { iconPropType } from '../../../utils/vue/icon.mjs';
6
+ import { isValidComponentSize } from '../../../utils/vue/validator.mjs';
13
7
 
14
- const _hoisted_1 = ["aria-valuenow", "aria-valuetext", "aria-valuemax"];
15
- const __default__ = {
16
- name: "PsRate"
17
- };
18
- const _sfc_main = /* @__PURE__ */ defineComponent({
19
- ...__default__,
20
- props: rateProps,
21
- setup(__props, { expose }) {
22
- const props = __props;
23
- function getValueFromMap(value, map) {
24
- const isExcludedObject = (val) => isObject(val);
25
- const matchedKeys = Object.keys(map).map((key) => +key).filter((key) => {
26
- const val = map[key];
27
- const excluded = isExcludedObject(val) ? val.excluded : false;
28
- return excluded ? value < key : value <= key;
29
- }).sort((a, b) => a - b);
30
- const matchedValue = map[matchedKeys[0]];
31
- return isExcludedObject(matchedValue) && matchedValue.value || matchedValue;
32
- }
33
- const formContext = inject(formContextKey, void 0);
34
- const rateSize = useSize();
35
- const ns = useNamespace("rate");
36
- const currentValue = ref(props.modelValue);
37
- const hoverIndex = ref(-1);
38
- const pointerAtLeftHalf = ref(true);
39
- const rateClasses = computed(() => [ns.b(), ns.m(rateSize.value)]);
40
- const rateDisabled = computed(() => props.disabled || (formContext == null ? void 0 : formContext.disabled));
41
- const rateStyles = computed(() => {
42
- return {
43
- "--el-rate-void-color": props.voidColor,
44
- "--el-rate-disabled-void-color": props.disabledVoidColor,
45
- "--el-rate-fill-color": activeColor.value
46
- };
47
- });
48
- const text = computed(() => {
49
- let result = "";
50
- if (props.showScore) {
51
- result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`);
52
- } else if (props.showText) {
53
- result = props.texts[Math.ceil(currentValue.value) - 1];
54
- }
55
- return result;
56
- });
57
- const valueDecimal = computed(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100);
58
- const colorMap = computed(() => isArray(props.colors) ? {
59
- [props.lowThreshold]: props.colors[0],
60
- [props.highThreshold]: { value: props.colors[1], excluded: true },
61
- [props.max]: props.colors[2]
62
- } : props.colors);
63
- const activeColor = computed(() => {
64
- const color = getValueFromMap(currentValue.value, colorMap.value);
65
- return isObject(color) ? "" : color;
66
- });
67
- const decimalStyle = computed(() => {
68
- let width = "";
69
- if (rateDisabled.value) {
70
- width = `${valueDecimal.value}%`;
71
- } else if (props.allowHalf) {
72
- width = "50%";
73
- }
74
- return {
75
- color: activeColor.value,
76
- width
77
- };
78
- });
79
- const componentMap = computed(() => isArray(props.icons) ? {
80
- [props.lowThreshold]: props.icons[0],
81
- [props.highThreshold]: {
82
- value: props.icons[1],
83
- excluded: true
84
- },
85
- [props.max]: props.icons[2]
86
- } : props.icons);
87
- const decimalIconComponent = computed(() => getValueFromMap(props.modelValue, componentMap.value));
88
- const voidComponent = computed(() => rateDisabled.value ? props.disabledVoidIcon : props.voidIcon);
89
- const activeComponent = computed(() => getValueFromMap(currentValue.value, componentMap.value));
90
- const iconComponents = computed(() => {
91
- const result = Array.from({ length: props.max });
92
- const threshold = currentValue.value;
93
- result.fill(activeComponent.value, 0, threshold);
94
- result.fill(voidComponent.value, threshold, props.max);
95
- return result;
96
- });
97
- function showDecimalIcon(item) {
98
- const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue;
99
- const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - 0.5 <= currentValue.value && item > currentValue.value;
100
- return showWhenDisabled || showWhenAllowHalf;
101
- }
102
- function setCurrentValue(value, event) {
103
- if (rateDisabled.value) {
104
- return;
105
- }
106
- if (props.allowHalf) {
107
- let target = event.target;
108
- if (hasClass(target, ns.e("item"))) {
109
- target = target.querySelector(`.${ns.e("icon")}`);
110
- }
111
- if (target.clientWidth === 0 || hasClass(target, ns.e("decimal"))) {
112
- target = target.parentNode;
113
- }
114
- pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth;
115
- currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value;
116
- } else {
117
- currentValue.value = value;
118
- }
119
- hoverIndex.value = value;
120
- }
121
- expose({
122
- setCurrentValue
123
- });
124
- return (_ctx, _cache) => {
125
- return openBlock(), createElementBlock("div", {
126
- class: normalizeClass([unref(rateClasses), unref(ns).is("disabled", unref(rateDisabled))]),
127
- role: "slider",
128
- "aria-valuenow": currentValue.value,
129
- "aria-valuetext": unref(text),
130
- "aria-valuemin": "0",
131
- "aria-valuemax": _ctx.max,
132
- tabindex: "0",
133
- style: normalizeStyle(unref(rateStyles))
134
- }, [
135
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.max, (item, key) => {
136
- return openBlock(), createElementBlock("span", {
137
- key,
138
- class: normalizeClass(unref(ns).e("item"))
139
- }, [
140
- createVNode(unref(PsIcon), {
141
- class: normalizeClass([
142
- unref(ns).e("icon"),
143
- { hover: hoverIndex.value === item },
144
- unref(ns).is("active", item <= currentValue.value)
145
- ])
146
- }, {
147
- default: withCtx(() => [
148
- !showDecimalIcon(item) ? (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponents)[item - 1]), { key: 0 })) : createCommentVNode("v-if", true),
149
- showDecimalIcon(item) ? (openBlock(), createBlock(unref(PsIcon), {
150
- key: 1,
151
- style: normalizeStyle(unref(decimalStyle)),
152
- class: normalizeClass([unref(ns).e("icon"), unref(ns).e("decimal")])
153
- }, {
154
- default: withCtx(() => [
155
- (openBlock(), createBlock(resolveDynamicComponent(unref(decimalIconComponent))))
156
- ]),
157
- _: 1
158
- }, 8, ["style", "class"])) : createCommentVNode("v-if", true)
159
- ]),
160
- _: 2
161
- }, 1032, ["class"])
162
- ], 2);
163
- }), 128)),
164
- _ctx.showText || _ctx.showScore ? (openBlock(), createElementBlock("span", {
165
- key: 0,
166
- class: normalizeClass(unref(ns).e("text"))
167
- }, toDisplayString(unref(text)), 3)) : createCommentVNode("v-if", true)
168
- ], 14, _hoisted_1);
169
- };
8
+ const rateProps = buildProps({
9
+ modelValue: {
10
+ type: Number,
11
+ default: 0
12
+ },
13
+ lowThreshold: {
14
+ type: Number,
15
+ default: 2
16
+ },
17
+ highThreshold: {
18
+ type: Number,
19
+ default: 4
20
+ },
21
+ max: {
22
+ type: Number,
23
+ default: 5
24
+ },
25
+ colors: {
26
+ type: definePropType([Array, Object]),
27
+ default: () => mutable(["", "", ""])
28
+ },
29
+ voidColor: {
30
+ type: String,
31
+ default: ""
32
+ },
33
+ disabledVoidColor: {
34
+ type: String,
35
+ default: ""
36
+ },
37
+ icons: {
38
+ type: definePropType([Array, Object]),
39
+ default: () => [StarFilled, StarFilled, StarFilled]
40
+ },
41
+ voidIcon: {
42
+ type: iconPropType,
43
+ default: () => Star
44
+ },
45
+ disabledVoidIcon: {
46
+ type: iconPropType,
47
+ default: () => StarFilled
48
+ },
49
+ disabled: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ allowHalf: {
54
+ type: Boolean,
55
+ default: false
56
+ },
57
+ showText: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+ showScore: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ textColor: {
66
+ type: String,
67
+ default: ""
68
+ },
69
+ texts: {
70
+ type: definePropType(Array),
71
+ default: () => mutable([
72
+ "Extremely bad",
73
+ "Disappointed",
74
+ "Fair",
75
+ "Satisfied",
76
+ "Surprise"
77
+ ])
78
+ },
79
+ scoreTemplate: {
80
+ type: String,
81
+ default: "{value}"
82
+ },
83
+ size: {
84
+ type: String,
85
+ validator: isValidComponentSize
170
86
  }
171
87
  });
172
- var Rate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-ps/packages/components/rate/src/rate.vue"]]);
173
88
 
174
- export { Rate as default };
89
+ export { rateProps };
175
90
  //# sourceMappingURL=rate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n :class=\"[rateClasses, ns.is('disabled', rateDisabled)]\"\n role=\"slider\"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n :style=\"rateStyles\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n :class=\"ns.e('item')\"\n >\n <ps-icon\n :class=\"[\n ns.e('icon'),\n { hover: hoverIndex === item },\n ns.is('active', item <= currentValue),\n ]\"\n >\n <component\n :is=\"iconComponents[item - 1]\"\n v-if=\"!showDecimalIcon(item)\"\n />\n <ps-icon\n v-if=\"showDecimalIcon(item)\"\n :style=\"decimalStyle\"\n :class=\"[ns.e('icon'), ns.e('decimal')]\"\n >\n <component :is=\"decimalIconComponent\" />\n </ps-icon>\n </ps-icon>\n </span>\n <span v-if=\"showText || showScore\" :class=\"ns.e('text')\">\n {{ text }}\n </span>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, inject, ref } from 'vue'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-ps/constants'\nimport { hasClass, isArray, isObject } from '@element-ps/utils'\nimport { formContextKey } from '@element-ps/tokens'\nimport { PsIcon } from '@element-ps/components/icon'\nimport { useNamespace, useSize } from '@element-ps/hooks'\nimport { rateProps } from './rate'\n\nfunction getValueFromMap<T>(\n value: number,\n map: Record<string, T | { excluded?: boolean; value: T }>\n) {\n const isExcludedObject = (\n val: unknown\n ): val is { excluded?: boolean } & Record<any, unknown> => isObject(val)\n\n const matchedKeys = Object.keys(map)\n .map((key) => +key)\n .filter((key) => {\n const val = map[key]\n const excluded = isExcludedObject(val) ? val.excluded : false\n return excluded ? value < key : value <= key\n })\n .sort((a, b) => a - b)\n const matchedValue = map[matchedKeys[0]]\n return (isExcludedObject(matchedValue) && matchedValue.value) || matchedValue\n}\n\ndefineOptions({\n name: 'PsRate',\n})\n\nconst props = defineProps(rateProps)\n\nconst formContext = inject(formContextKey, undefined)\nconst rateSize = useSize()\nconst ns = useNamespace('rate')\n\nconst currentValue = ref(props.modelValue)\nconst hoverIndex = ref(-1)\nconst pointerAtLeftHalf = ref(true)\n\nconst rateClasses = computed(() => [ns.b(), ns.m(rateSize.value)])\nconst rateDisabled = computed(() => props.disabled || formContext?.disabled)\nconst rateStyles = computed(() => {\n return {\n '--el-rate-void-color': props.voidColor,\n '--el-rate-disabled-void-color': props.disabledVoidColor,\n '--el-rate-fill-color': activeColor.value,\n }\n})\n\nconst text = computed(() => {\n let result = ''\n if (props.showScore) {\n result = props.scoreTemplate.replace(\n /\\{\\s*value\\s*\\}/,\n rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`\n )\n } else if (props.showText) {\n result = props.texts[Math.ceil(currentValue.value) - 1]\n }\n return result\n})\nconst valueDecimal = computed(\n () => props.modelValue * 100 - Math.floor(props.modelValue) * 100\n)\nconst colorMap = computed(() =>\n isArray(props.colors)\n ? {\n [props.lowThreshold]: props.colors[0],\n [props.highThreshold]: { value: props.colors[1], excluded: true },\n [props.max]: props.colors[2],\n }\n : props.colors\n)\nconst activeColor = computed(() => {\n const color = getValueFromMap(currentValue.value, colorMap.value)\n // {value: '', excluded: true} returned\n return isObject(color) ? '' : color\n})\nconst decimalStyle = computed(() => {\n let width = ''\n if (rateDisabled.value) {\n width = `${valueDecimal.value}%`\n } else if (props.allowHalf) {\n width = '50%'\n }\n return {\n color: activeColor.value,\n width,\n }\n})\nconst componentMap = computed(() =>\n isArray(props.icons)\n ? {\n [props.lowThreshold]: props.icons[0],\n [props.highThreshold]: {\n value: props.icons[1],\n excluded: true,\n },\n [props.max]: props.icons[2],\n }\n : props.icons\n)\nconst decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n)\nconst voidComponent = computed(() =>\n rateDisabled.value ? props.disabledVoidIcon : props.voidIcon\n)\nconst activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\n)\nconst iconComponents = computed(() => {\n const result = Array.from({ length: props.max })\n const threshold = currentValue.value\n result.fill(activeComponent.value, 0, threshold)\n result.fill(voidComponent.value, threshold, props.max)\n return result\n})\n\nfunction showDecimalIcon(item: number) {\n const showWhenDisabled =\n rateDisabled.value &&\n valueDecimal.value > 0 &&\n item - 1 < props.modelValue &&\n item > props.modelValue\n const showWhenAllowHalf =\n props.allowHalf &&\n pointerAtLeftHalf.value &&\n item - 0.5 <= currentValue.value &&\n item > currentValue.value\n return showWhenDisabled || showWhenAllowHalf\n}\n\nfunction setCurrentValue(value: number, event: MouseEvent) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n // TODO: use cache via computed https://github.com/element-ps/element-ps/pull/5456#discussion_r786472092\n let target = event.target as HTMLElement\n if (hasClass(target, ns.e('item'))) {\n target = target.querySelector(`.${ns.e('icon')}`)!\n }\n if (target.clientWidth === 0 || hasClass(target, ns.e('decimal'))) {\n target = target.parentNode as HTMLElement\n }\n pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth\n currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value\n } else {\n currentValue.value = value\n }\n hoverIndex.value = value\n}\n\ndefineExpose({\n /** @description set current value */\n setCurrentValue,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate.mjs","sources":["../../../../../../packages/components/rate/src/rate.ts"],"sourcesContent":["import { Star, StarFilled } from '@element-plus/icons-vue'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/constants'\nimport {\n buildProps,\n definePropType,\n iconPropType,\n isValidComponentSize,\n mutable,\n} from '@element-ps/utils'\nimport type { ComponentSize } from '@element-ps/constants'\nimport type { Component, ExtractPropTypes, PropType } from 'vue'\nimport type Rate from './rate.vue'\n\nexport const rateProps = buildProps({\n modelValue: {\n type: Number,\n default: 0,\n },\n lowThreshold: {\n type: Number,\n default: 2,\n },\n highThreshold: {\n type: Number,\n default: 4,\n },\n max: {\n type: Number,\n default: 5,\n },\n colors: {\n type: definePropType<string[] | Record<number, string>>([Array, Object]),\n default: () => mutable(['', '', ''] as const),\n },\n voidColor: {\n type: String,\n default: '',\n },\n disabledVoidColor: {\n type: String,\n default: '',\n },\n icons: {\n type: definePropType<\n Array<string | Component> | Record<number, string | Component>\n >([Array, Object]),\n default: () => [StarFilled, StarFilled, StarFilled],\n },\n voidIcon: {\n type: iconPropType,\n default: () => Star,\n },\n disabledVoidIcon: {\n type: iconPropType,\n default: () => StarFilled,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n allowHalf: {\n type: Boolean,\n default: false,\n },\n showText: {\n type: Boolean,\n default: false,\n },\n showScore: {\n type: Boolean,\n default: false,\n },\n textColor: {\n type: String,\n default: '',\n },\n texts: {\n type: definePropType<string[]>(Array),\n default: () =>\n mutable([\n 'Extremely bad',\n 'Disappointed',\n 'Fair',\n 'Satisfied',\n 'Surprise',\n ] as const),\n },\n scoreTemplate: {\n type: String,\n default: '{value}',\n },\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n} as const)\n\nexport type RateProps = ExtractPropTypes<typeof rateProps>\n\nexport type RateInstance = InstanceType<typeof Rate>\n"],"names":[],"mappings":";;;;;;;AAQY,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzC,IAAI,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzC,IAAI,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;AACvD,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,OAAO,EAAE,MAAM,IAAI;AACvB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,OAAO,EAAE,MAAM,UAAU;AAC7B,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3B,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,MAAM;AACZ,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,KAAK,CAAC;AACN,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,SAAS,EAAE,oBAAoB;AACnC,GAAG;AACH,CAAC;;;;"}