@element-plus/nightly 0.0.20240424 → 0.0.20240425

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 (370) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.full.js +31 -21
  4. package/dist/index.full.min.js +12 -12
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +12 -12
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +23 -22
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hr.js +1 -1
  94. package/dist/locale/hr.min.js +1 -1
  95. package/dist/locale/hr.min.mjs +1 -1
  96. package/dist/locale/hr.mjs +1 -1
  97. package/dist/locale/hu.js +1 -1
  98. package/dist/locale/hu.min.js +1 -1
  99. package/dist/locale/hu.min.mjs +1 -1
  100. package/dist/locale/hu.mjs +1 -1
  101. package/dist/locale/hy-am.js +1 -1
  102. package/dist/locale/hy-am.min.js +1 -1
  103. package/dist/locale/hy-am.min.mjs +1 -1
  104. package/dist/locale/hy-am.mjs +1 -1
  105. package/dist/locale/id.js +1 -1
  106. package/dist/locale/id.min.js +1 -1
  107. package/dist/locale/id.min.mjs +1 -1
  108. package/dist/locale/id.mjs +1 -1
  109. package/dist/locale/it.js +1 -1
  110. package/dist/locale/it.min.js +1 -1
  111. package/dist/locale/it.min.mjs +1 -1
  112. package/dist/locale/it.mjs +1 -1
  113. package/dist/locale/ja.js +1 -1
  114. package/dist/locale/ja.min.js +1 -1
  115. package/dist/locale/ja.min.mjs +1 -1
  116. package/dist/locale/ja.mjs +1 -1
  117. package/dist/locale/kk.js +1 -1
  118. package/dist/locale/kk.min.js +1 -1
  119. package/dist/locale/kk.min.mjs +1 -1
  120. package/dist/locale/kk.mjs +1 -1
  121. package/dist/locale/km.js +1 -1
  122. package/dist/locale/km.min.js +1 -1
  123. package/dist/locale/km.min.mjs +1 -1
  124. package/dist/locale/km.mjs +1 -1
  125. package/dist/locale/ko.js +1 -1
  126. package/dist/locale/ko.min.js +1 -1
  127. package/dist/locale/ko.min.mjs +1 -1
  128. package/dist/locale/ko.mjs +1 -1
  129. package/dist/locale/ku.js +1 -1
  130. package/dist/locale/ku.min.js +1 -1
  131. package/dist/locale/ku.min.mjs +1 -1
  132. package/dist/locale/ku.mjs +1 -1
  133. package/dist/locale/ky.js +1 -1
  134. package/dist/locale/ky.min.js +1 -1
  135. package/dist/locale/ky.min.mjs +1 -1
  136. package/dist/locale/ky.mjs +1 -1
  137. package/dist/locale/lt.js +1 -1
  138. package/dist/locale/lt.min.js +1 -1
  139. package/dist/locale/lt.min.mjs +1 -1
  140. package/dist/locale/lt.mjs +1 -1
  141. package/dist/locale/lv.js +1 -1
  142. package/dist/locale/lv.min.js +1 -1
  143. package/dist/locale/lv.min.mjs +1 -1
  144. package/dist/locale/lv.mjs +1 -1
  145. package/dist/locale/mg.js +1 -1
  146. package/dist/locale/mg.min.js +1 -1
  147. package/dist/locale/mg.min.mjs +1 -1
  148. package/dist/locale/mg.mjs +1 -1
  149. package/dist/locale/mn.js +1 -1
  150. package/dist/locale/mn.min.js +1 -1
  151. package/dist/locale/mn.min.mjs +1 -1
  152. package/dist/locale/mn.mjs +1 -1
  153. package/dist/locale/nb-no.js +1 -1
  154. package/dist/locale/nb-no.min.js +1 -1
  155. package/dist/locale/nb-no.min.mjs +1 -1
  156. package/dist/locale/nb-no.mjs +1 -1
  157. package/dist/locale/nl.js +1 -1
  158. package/dist/locale/nl.min.js +1 -1
  159. package/dist/locale/nl.min.mjs +1 -1
  160. package/dist/locale/nl.mjs +1 -1
  161. package/dist/locale/pa.js +1 -1
  162. package/dist/locale/pa.min.js +1 -1
  163. package/dist/locale/pa.min.mjs +1 -1
  164. package/dist/locale/pa.mjs +1 -1
  165. package/dist/locale/pl.js +1 -1
  166. package/dist/locale/pl.min.js +1 -1
  167. package/dist/locale/pl.min.mjs +1 -1
  168. package/dist/locale/pl.mjs +1 -1
  169. package/dist/locale/pt-br.js +1 -1
  170. package/dist/locale/pt-br.min.js +1 -1
  171. package/dist/locale/pt-br.min.mjs +1 -1
  172. package/dist/locale/pt-br.mjs +1 -1
  173. package/dist/locale/pt.js +1 -1
  174. package/dist/locale/pt.min.js +1 -1
  175. package/dist/locale/pt.min.mjs +1 -1
  176. package/dist/locale/pt.mjs +1 -1
  177. package/dist/locale/ro.js +1 -1
  178. package/dist/locale/ro.min.js +1 -1
  179. package/dist/locale/ro.min.mjs +1 -1
  180. package/dist/locale/ro.mjs +1 -1
  181. package/dist/locale/ru.js +1 -1
  182. package/dist/locale/ru.min.js +1 -1
  183. package/dist/locale/ru.min.mjs +1 -1
  184. package/dist/locale/ru.mjs +1 -1
  185. package/dist/locale/sk.js +1 -1
  186. package/dist/locale/sk.min.js +1 -1
  187. package/dist/locale/sk.min.mjs +1 -1
  188. package/dist/locale/sk.mjs +1 -1
  189. package/dist/locale/sl.js +1 -1
  190. package/dist/locale/sl.min.js +1 -1
  191. package/dist/locale/sl.min.mjs +1 -1
  192. package/dist/locale/sl.mjs +1 -1
  193. package/dist/locale/sr.js +1 -1
  194. package/dist/locale/sr.min.js +1 -1
  195. package/dist/locale/sr.min.mjs +1 -1
  196. package/dist/locale/sr.mjs +1 -1
  197. package/dist/locale/sv.js +1 -1
  198. package/dist/locale/sv.min.js +1 -1
  199. package/dist/locale/sv.min.mjs +1 -1
  200. package/dist/locale/sv.mjs +1 -1
  201. package/dist/locale/sw.js +1 -1
  202. package/dist/locale/sw.min.js +1 -1
  203. package/dist/locale/sw.min.mjs +1 -1
  204. package/dist/locale/sw.mjs +1 -1
  205. package/dist/locale/ta.js +1 -1
  206. package/dist/locale/ta.min.js +1 -1
  207. package/dist/locale/ta.min.mjs +1 -1
  208. package/dist/locale/ta.mjs +1 -1
  209. package/dist/locale/th.js +1 -1
  210. package/dist/locale/th.min.js +1 -1
  211. package/dist/locale/th.min.mjs +1 -1
  212. package/dist/locale/th.mjs +1 -1
  213. package/dist/locale/tk.js +1 -1
  214. package/dist/locale/tk.min.js +1 -1
  215. package/dist/locale/tk.min.mjs +1 -1
  216. package/dist/locale/tk.mjs +1 -1
  217. package/dist/locale/tr.js +1 -1
  218. package/dist/locale/tr.min.js +1 -1
  219. package/dist/locale/tr.min.mjs +1 -1
  220. package/dist/locale/tr.mjs +1 -1
  221. package/dist/locale/ug-cn.js +1 -1
  222. package/dist/locale/ug-cn.min.js +1 -1
  223. package/dist/locale/ug-cn.min.mjs +1 -1
  224. package/dist/locale/ug-cn.mjs +1 -1
  225. package/dist/locale/uk.js +1 -1
  226. package/dist/locale/uk.min.js +1 -1
  227. package/dist/locale/uk.min.mjs +1 -1
  228. package/dist/locale/uk.mjs +1 -1
  229. package/dist/locale/uz-uz.js +1 -1
  230. package/dist/locale/uz-uz.min.js +1 -1
  231. package/dist/locale/uz-uz.min.mjs +1 -1
  232. package/dist/locale/uz-uz.mjs +1 -1
  233. package/dist/locale/vi.js +1 -1
  234. package/dist/locale/vi.min.js +1 -1
  235. package/dist/locale/vi.min.mjs +1 -1
  236. package/dist/locale/vi.mjs +1 -1
  237. package/dist/locale/zh-cn.js +1 -1
  238. package/dist/locale/zh-cn.min.js +1 -1
  239. package/dist/locale/zh-cn.min.mjs +1 -1
  240. package/dist/locale/zh-cn.mjs +1 -1
  241. package/dist/locale/zh-tw.js +1 -1
  242. package/dist/locale/zh-tw.min.js +1 -1
  243. package/dist/locale/zh-tw.min.mjs +1 -1
  244. package/dist/locale/zh-tw.mjs +1 -1
  245. package/es/components/affix/src/affix2.mjs +1 -1
  246. package/es/components/affix/src/affix2.mjs.map +1 -1
  247. package/es/components/carousel/index.mjs +2 -2
  248. package/es/components/carousel/src/carousel-item.mjs +70 -8
  249. package/es/components/carousel/src/carousel-item.mjs.map +1 -1
  250. package/es/components/carousel/src/carousel-item2.mjs +8 -70
  251. package/es/components/carousel/src/carousel-item2.mjs.map +1 -1
  252. package/es/components/descriptions/index.d.ts +1 -0
  253. package/es/components/descriptions/index.mjs +1 -0
  254. package/es/components/descriptions/index.mjs.map +1 -1
  255. package/es/components/descriptions/src/description-item.d.ts +1 -1
  256. package/es/components/descriptions/src/description-item.mjs +1 -1
  257. package/es/components/descriptions/src/description-item.mjs.map +1 -1
  258. package/es/components/divider/index.mjs +2 -2
  259. package/es/components/divider/src/divider.mjs +17 -35
  260. package/es/components/divider/src/divider.mjs.map +1 -1
  261. package/es/components/divider/src/divider2.mjs +35 -17
  262. package/es/components/divider/src/divider2.mjs.map +1 -1
  263. package/es/components/form/index.mjs +1 -1
  264. package/es/components/form/src/form.d.ts +1 -2
  265. package/es/components/form/src/form.mjs +1 -1
  266. package/es/components/form/src/form.mjs.map +1 -1
  267. package/es/components/index.mjs +8 -4
  268. package/es/components/index.mjs.map +1 -1
  269. package/es/components/rate/index.mjs +2 -2
  270. package/es/components/rate/src/rate.mjs +269 -90
  271. package/es/components/rate/src/rate.mjs.map +1 -1
  272. package/es/components/rate/src/rate2.mjs +90 -269
  273. package/es/components/rate/src/rate2.mjs.map +1 -1
  274. package/es/components/scrollbar/src/bar.mjs +64 -11
  275. package/es/components/scrollbar/src/bar.mjs.map +1 -1
  276. package/es/components/scrollbar/src/bar2.mjs +11 -64
  277. package/es/components/scrollbar/src/bar2.mjs.map +1 -1
  278. package/es/components/scrollbar/src/scrollbar2.mjs +1 -1
  279. package/es/components/select/src/option-group.mjs +17 -13
  280. package/es/components/select/src/option-group.mjs.map +1 -1
  281. package/es/components/space/index.mjs +1 -1
  282. package/es/components/space/src/item.d.ts +1 -1
  283. package/es/components/space/src/item.mjs +1 -1
  284. package/es/components/space/src/item.mjs.map +1 -1
  285. package/es/components/table/src/table/defaults.d.ts +1 -1
  286. package/es/components/table/src/table/defaults.mjs.map +1 -1
  287. package/es/components/table/src/table.vue.d.ts +8 -8
  288. package/es/components/tooltip-v2/index.mjs +1 -1
  289. package/es/components/tooltip-v2/src/arrow.mjs +37 -22
  290. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  291. package/es/components/tooltip-v2/src/arrow2.mjs +22 -37
  292. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  293. package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
  294. package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
  295. package/es/components/tour/index.d.ts +2 -0
  296. package/es/components/tour/index.mjs +2 -0
  297. package/es/components/tour/index.mjs.map +1 -1
  298. package/es/components/tour/src/content.d.ts +2 -0
  299. package/es/components/tour/src/content.mjs +1 -1
  300. package/es/components/tour/src/content.mjs.map +1 -1
  301. package/es/index.mjs +8 -4
  302. package/es/index.mjs.map +1 -1
  303. package/es/version.d.ts +1 -1
  304. package/es/version.mjs +1 -1
  305. package/es/version.mjs.map +1 -1
  306. package/lib/components/affix/src/affix2.js +1 -1
  307. package/lib/components/affix/src/affix2.js.map +1 -1
  308. package/lib/components/carousel/index.js +2 -2
  309. package/lib/components/carousel/src/carousel-item.js +70 -8
  310. package/lib/components/carousel/src/carousel-item.js.map +1 -1
  311. package/lib/components/carousel/src/carousel-item2.js +8 -70
  312. package/lib/components/carousel/src/carousel-item2.js.map +1 -1
  313. package/lib/components/descriptions/index.d.ts +1 -0
  314. package/lib/components/descriptions/index.js +1 -0
  315. package/lib/components/descriptions/index.js.map +1 -1
  316. package/lib/components/descriptions/src/description-item.d.ts +1 -1
  317. package/lib/components/descriptions/src/description-item.js +1 -0
  318. package/lib/components/descriptions/src/description-item.js.map +1 -1
  319. package/lib/components/divider/index.js +2 -2
  320. package/lib/components/divider/src/divider.js +17 -35
  321. package/lib/components/divider/src/divider.js.map +1 -1
  322. package/lib/components/divider/src/divider2.js +35 -17
  323. package/lib/components/divider/src/divider2.js.map +1 -1
  324. package/lib/components/form/index.js +1 -0
  325. package/lib/components/form/index.js.map +1 -1
  326. package/lib/components/form/src/form.d.ts +1 -2
  327. package/lib/components/form/src/form.js +1 -0
  328. package/lib/components/form/src/form.js.map +1 -1
  329. package/lib/components/index.js +18 -5
  330. package/lib/components/index.js.map +1 -1
  331. package/lib/components/rate/index.js +2 -2
  332. package/lib/components/rate/src/rate.js +268 -90
  333. package/lib/components/rate/src/rate.js.map +1 -1
  334. package/lib/components/rate/src/rate2.js +90 -268
  335. package/lib/components/rate/src/rate2.js.map +1 -1
  336. package/lib/components/scrollbar/src/bar.js +64 -11
  337. package/lib/components/scrollbar/src/bar.js.map +1 -1
  338. package/lib/components/scrollbar/src/bar2.js +11 -64
  339. package/lib/components/scrollbar/src/bar2.js.map +1 -1
  340. package/lib/components/scrollbar/src/scrollbar2.js +1 -1
  341. package/lib/components/select/src/option-group.js +17 -13
  342. package/lib/components/select/src/option-group.js.map +1 -1
  343. package/lib/components/space/index.js +2 -1
  344. package/lib/components/space/index.js.map +1 -1
  345. package/lib/components/space/src/item.d.ts +1 -1
  346. package/lib/components/space/src/item.js +1 -0
  347. package/lib/components/space/src/item.js.map +1 -1
  348. package/lib/components/table/src/table/defaults.d.ts +1 -1
  349. package/lib/components/table/src/table/defaults.js.map +1 -1
  350. package/lib/components/table/src/table.vue.d.ts +8 -8
  351. package/lib/components/tooltip-v2/index.js +1 -1
  352. package/lib/components/tooltip-v2/src/arrow.js +37 -23
  353. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  354. package/lib/components/tooltip-v2/src/arrow2.js +23 -37
  355. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  356. package/lib/components/tooltip-v2/src/tooltip.js +1 -1
  357. package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
  358. package/lib/components/tour/index.d.ts +2 -0
  359. package/lib/components/tour/index.js +11 -3
  360. package/lib/components/tour/index.js.map +1 -1
  361. package/lib/components/tour/src/content.d.ts +2 -0
  362. package/lib/components/tour/src/content.js +2 -0
  363. package/lib/components/tour/src/content.js.map +1 -1
  364. package/lib/index.js +18 -5
  365. package/lib/index.js.map +1 -1
  366. package/lib/version.d.ts +1 -1
  367. package/lib/version.js +1 -1
  368. package/lib/version.js.map +1 -1
  369. package/package.json +2 -2
  370. package/web-types.json +1 -1
@@ -57,5 +57,5 @@ const formEmits = {
57
57
  validate: (prop, isValid, message) => (isArray(prop) || isString(prop)) && isBoolean(isValid) && isString(message)
58
58
  };
59
59
 
60
- export { formEmits, formProps };
60
+ export { formEmits, formMetaProps, formProps };
61
61
  //# sourceMappingURL=form.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","sources":["../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n isArray,\n isBoolean,\n isString,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormItemProp } from './form-item'\nimport type { FormRules } from './types'\n\nconst formMetaProps = buildProps({\n /**\n * @description Control the size of components in this form.\n */\n size: {\n type: String,\n values: componentSizes,\n },\n /**\n * @description Whether to disable all components in this form. If set to `true`, it will override the `disabled` prop of the inner component.\n */\n disabled: Boolean,\n} as const)\n\nexport const formProps = buildProps({\n ...formMetaProps,\n /**\n * @description Data of form component.\n */\n model: Object,\n /**\n * @description Validation rules of form.\n */\n rules: {\n type: definePropType<FormRules>(Object),\n },\n /**\n * @description Position of label. If set to `'left'` or `'right'`, `label-width` prop is also required.\n */\n labelPosition: {\n type: String,\n values: ['left', 'right', 'top'],\n default: 'right',\n },\n /**\n * @description Position of asterisk.\n */\n requireAsteriskPosition: {\n type: String,\n values: ['left', 'right'],\n default: 'left',\n },\n /**\n * @description Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported.\n */\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description Suffix of the label.\n */\n labelSuffix: {\n type: String,\n default: '',\n },\n /**\n * @description Whether the form is inline.\n */\n inline: Boolean,\n /**\n * @description Whether to display the error message inline with the form item.\n */\n inlineMessage: Boolean,\n /**\n * @description Whether to display an icon indicating the validation result.\n */\n statusIcon: Boolean,\n /**\n * @description Whether to show the error message.\n */\n showMessage: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Whether to trigger validation when the `rules` prop is changed.\n */\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Whether to hide required fields should have a red asterisk (star) beside their labels.\n */\n hideRequiredAsterisk: Boolean,\n /**\n * @description When validation fails, scroll to the first error form entry.\n */\n scrollToError: Boolean,\n /**\n * @description When validation fails, it scrolls to the first error item based on the scrollIntoView option.\n */\n scrollIntoViewOptions: {\n type: [Object, Boolean],\n },\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\nexport type FormMetaProps = ExtractPropTypes<typeof formMetaProps>\n\nexport const formEmits = {\n validate: (prop: FormItemProp, isValid: boolean, message: string) =>\n (isArray(prop) || isString(prop)) &&\n isBoolean(isValid) &&\n isString(message),\n}\nexport type FormEmits = typeof formEmits\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,CAAC,CAAC,CAAC;AACS,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,GAAG,aAAa;AAClB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AACpC,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AAC7B,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE,OAAO;AAC/B,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,qBAAqB,EAAE;AACzB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,SAAS,GAAG;AACzB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;AACpH;;;;"}
1
+ {"version":3,"file":"form.mjs","sources":["../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n isArray,\n isBoolean,\n isString,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormItemProp } from './form-item'\nimport type { FormRules } from './types'\n\nexport const formMetaProps = buildProps({\n /**\n * @description Control the size of components in this form.\n */\n size: {\n type: String,\n values: componentSizes,\n },\n /**\n * @description Whether to disable all components in this form. If set to `true`, it will override the `disabled` prop of the inner component.\n */\n disabled: Boolean,\n} as const)\n\nexport const formProps = buildProps({\n ...formMetaProps,\n /**\n * @description Data of form component.\n */\n model: Object,\n /**\n * @description Validation rules of form.\n */\n rules: {\n type: definePropType<FormRules>(Object),\n },\n /**\n * @description Position of label. If set to `'left'` or `'right'`, `label-width` prop is also required.\n */\n labelPosition: {\n type: String,\n values: ['left', 'right', 'top'],\n default: 'right',\n },\n /**\n * @description Position of asterisk.\n */\n requireAsteriskPosition: {\n type: String,\n values: ['left', 'right'],\n default: 'left',\n },\n /**\n * @description Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported.\n */\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description Suffix of the label.\n */\n labelSuffix: {\n type: String,\n default: '',\n },\n /**\n * @description Whether the form is inline.\n */\n inline: Boolean,\n /**\n * @description Whether to display the error message inline with the form item.\n */\n inlineMessage: Boolean,\n /**\n * @description Whether to display an icon indicating the validation result.\n */\n statusIcon: Boolean,\n /**\n * @description Whether to show the error message.\n */\n showMessage: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Whether to trigger validation when the `rules` prop is changed.\n */\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Whether to hide required fields should have a red asterisk (star) beside their labels.\n */\n hideRequiredAsterisk: Boolean,\n /**\n * @description When validation fails, scroll to the first error form entry.\n */\n scrollToError: Boolean,\n /**\n * @description When validation fails, it scrolls to the first error item based on the scrollIntoView option.\n */\n scrollIntoViewOptions: {\n type: [Object, Boolean],\n },\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\nexport type FormMetaProps = ExtractPropTypes<typeof formMetaProps>\n\nexport const formEmits = {\n validate: (prop: FormItemProp, isValid: boolean, message: string) =>\n (isArray(prop) || isString(prop)) &&\n isBoolean(isValid) &&\n isString(message),\n}\nexport type FormEmits = typeof formEmits\n"],"names":[],"mappings":";;;;;;;AAQY,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,CAAC,EAAE;AACS,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,GAAG,aAAa;AAClB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AACpC,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AAC7B,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE,OAAO;AAC/B,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,qBAAqB,EAAE;AACzB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,SAAS,GAAG;AACzB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;AACpH;;;;"}
@@ -93,7 +93,7 @@ export { buttonGroupContextKey } from './button/src/constants.mjs';
93
93
  export { calendarEmits, calendarProps } from './calendar/src/calendar.mjs';
94
94
  export { cardProps } from './card/src/card.mjs';
95
95
  export { carouselEmits, carouselProps } from './carousel/src/carousel.mjs';
96
- export { carouselItemProps } from './carousel/src/carousel-item.mjs';
96
+ export { carouselItemProps } from './carousel/src/carousel-item2.mjs';
97
97
  export { carouselContextKey } from './carousel/src/constants.mjs';
98
98
  export { cascaderEmits, cascaderProps } from './cascader/src/cascader.mjs';
99
99
  export { CASCADER_PANEL_INJECTION_KEY } from './cascader-panel/src/types.mjs';
@@ -115,15 +115,16 @@ export { countdownEmits, countdownProps } from './countdown/src/countdown.mjs';
115
115
  export { ROOT_PICKER_INJECTION_KEY } from './date-picker/src/constants.mjs';
116
116
  export { datePickerProps } from './date-picker/src/props/date-picker.mjs';
117
117
  export { descriptionProps } from './descriptions/src/description.mjs';
118
+ export { descriptionItemProps } from './descriptions/src/description-item.mjs';
118
119
  export { useDialog } from './dialog/src/use-dialog.mjs';
119
120
  export { dialogEmits, dialogProps } from './dialog/src/dialog.mjs';
120
121
  export { dialogInjectionKey } from './dialog/src/constants.mjs';
121
- export { dividerProps } from './divider/src/divider2.mjs';
122
+ export { dividerProps } from './divider/src/divider.mjs';
122
123
  export { drawerEmits, drawerProps } from './drawer/src/drawer.mjs';
123
124
  export { DROPDOWN_COLLECTION_INJECTION_KEY, DROPDOWN_COLLECTION_ITEM_INJECTION_KEY, ElCollection, ElCollectionItem, FIRST_KEYS, FIRST_LAST_KEYS, LAST_KEYS, dropdownItemProps, dropdownMenuProps, dropdownProps } from './dropdown/src/dropdown.mjs';
124
125
  export { DROPDOWN_INJECTION_KEY } from './dropdown/src/tokens.mjs';
125
126
  export { emptyProps } from './empty/src/empty.mjs';
126
- export { formEmits, formProps } from './form/src/form.mjs';
127
+ export { formEmits, formMetaProps, formProps } from './form/src/form.mjs';
127
128
  export { formItemProps, formItemValidateStates } from './form/src/form-item.mjs';
128
129
  export { formContextKey, formItemContextKey } from './form/src/constants.mjs';
129
130
  export { useDisabled, useFormDisabled, useFormSize, useSize } from './form/src/hooks/use-form-common-props.mjs';
@@ -156,7 +157,7 @@ export { radioEmits, radioProps, radioPropsBase } from './radio/src/radio.mjs';
156
157
  export { radioGroupEmits, radioGroupProps } from './radio/src/radio-group.mjs';
157
158
  export { radioButtonProps } from './radio/src/radio-button.mjs';
158
159
  export { radioGroupKey } from './radio/src/constants.mjs';
159
- export { rateEmits, rateProps } from './rate/src/rate.mjs';
160
+ export { rateEmits, rateProps } from './rate/src/rate2.mjs';
160
161
  export { IconComponentMap, IconMap, resultProps } from './result/src/result.mjs';
161
162
  export { RowAlign, RowJustify, rowProps } from './row/src/row.mjs';
162
163
  export { rowContextKey } from './row/src/constants.mjs';
@@ -171,6 +172,7 @@ export { skeletonItemProps } from './skeleton/src/skeleton-item.mjs';
171
172
  export { sliderEmits, sliderProps } from './slider/src/slider.mjs';
172
173
  export { sliderContextKey } from './slider/src/constants.mjs';
173
174
  export { spaceProps } from './space/src/space.mjs';
175
+ export { spaceItemProps } from './space/src/item.mjs';
174
176
  export { useSpace } from './space/src/use-space.mjs';
175
177
  export { statisticProps } from './statistic/src/statistic.mjs';
176
178
  export { stepProps } from './steps/src/item.mjs';
@@ -212,6 +214,8 @@ export { default as DynamicSizeGrid } from './virtual-list/src/components/dynami
212
214
  export { virtualizedGridProps, virtualizedListProps, virtualizedProps, virtualizedScrollbarProps } from './virtual-list/src/props.mjs';
213
215
  export { watermarkProps } from './watermark/src/watermark.mjs';
214
216
  export { tourEmits, tourProps } from './tour/src/tour.mjs';
217
+ export { tourStepEmits, tourStepProps } from './tour/src/step.mjs';
218
+ export { tourContentEmits, tourContentProps, tourPlacements, tourStrategies } from './tour/src/content.mjs';
215
219
  export { anchorEmits, anchorProps } from './anchor/src/anchor.mjs';
216
220
  export { segmentedEmits, segmentedProps } from './segmented/src/segmented.mjs';
217
221
  export { vLoading as ElLoadingDirective, vLoading } from './loading/src/directive.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import '../../utils/index.mjs';
2
- import Rate from './src/rate2.mjs';
3
- export { rateEmits, rateProps } from './src/rate.mjs';
2
+ import Rate from './src/rate.mjs';
3
+ export { rateEmits, rateProps } from './src/rate2.mjs';
4
4
  import { withInstall } from '../../utils/vue/install.mjs';
5
5
 
6
6
  const ElRate = withInstall(Rate);
@@ -1,97 +1,276 @@
1
- import { StarFilled, Star } from '@element-plus/icons-vue';
1
+ import { defineComponent, inject, ref, computed, markRaw, watch, openBlock, createElementBlock, unref, normalizeClass, normalizeStyle, Fragment, renderList, createVNode, withCtx, withDirectives, createBlock, resolveDynamicComponent, vShow, createCommentVNode, toDisplayString } from 'vue';
2
2
  import '../../../constants/index.mjs';
3
3
  import '../../../utils/index.mjs';
4
+ import '../../form/index.mjs';
5
+ import { ElIcon } from '../../icon/index.mjs';
4
6
  import '../../../hooks/index.mjs';
5
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
6
- import { mutable } from '../../../utils/typescript.mjs';
7
- import { iconPropType } from '../../../utils/vue/icon.mjs';
8
- import { useSizeProp } from '../../../hooks/use-size/index.mjs';
9
- import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
10
- import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
11
- import { isNumber } from '../../../utils/types.mjs';
7
+ import { rateProps, rateEmits } from './rate2.mjs';
8
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
+ import { isObject, isArray, isString } from '@vue/shared';
10
+ import { formContextKey, formItemContextKey } from '../../form/src/constants.mjs';
11
+ import { useFormSize } from '../../form/src/hooks/use-form-common-props.mjs';
12
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
13
+ import { useFormItemInputId } from '../../form/src/hooks/use-form-item.mjs';
14
+ import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
15
+ import { EVENT_CODE } from '../../../constants/aria.mjs';
16
+ import { hasClass } from '../../../utils/dom/style.mjs';
17
+ import { useDeprecated } from '../../../hooks/use-deprecated/index.mjs';
12
18
 
13
- const rateProps = buildProps({
14
- modelValue: {
15
- type: Number,
16
- default: 0
17
- },
18
- id: {
19
- type: String,
20
- default: void 0
21
- },
22
- lowThreshold: {
23
- type: Number,
24
- default: 2
25
- },
26
- highThreshold: {
27
- type: Number,
28
- default: 4
29
- },
30
- max: {
31
- type: Number,
32
- default: 5
33
- },
34
- colors: {
35
- type: definePropType([Array, Object]),
36
- default: () => mutable(["", "", ""])
37
- },
38
- voidColor: {
39
- type: String,
40
- default: ""
41
- },
42
- disabledVoidColor: {
43
- type: String,
44
- default: ""
45
- },
46
- icons: {
47
- type: definePropType([Array, Object]),
48
- default: () => [StarFilled, StarFilled, StarFilled]
49
- },
50
- voidIcon: {
51
- type: iconPropType,
52
- default: () => Star
53
- },
54
- disabledVoidIcon: {
55
- type: iconPropType,
56
- default: () => StarFilled
57
- },
58
- disabled: Boolean,
59
- allowHalf: Boolean,
60
- showText: Boolean,
61
- showScore: Boolean,
62
- textColor: {
63
- type: String,
64
- default: ""
65
- },
66
- texts: {
67
- type: definePropType(Array),
68
- default: () => mutable([
69
- "Extremely bad",
70
- "Disappointed",
71
- "Fair",
72
- "Satisfied",
73
- "Surprise"
74
- ])
75
- },
76
- scoreTemplate: {
77
- type: String,
78
- default: "{value}"
79
- },
80
- size: useSizeProp,
81
- label: {
82
- type: String,
83
- default: void 0
84
- },
85
- clearable: {
86
- type: Boolean,
87
- default: false
88
- },
89
- ...useAriaProps(["ariaLabel"])
19
+ const _hoisted_1 = ["id", "aria-label", "aria-labelledby", "aria-valuenow", "aria-valuetext", "aria-valuemax"];
20
+ const _hoisted_2 = ["onMousemove", "onClick"];
21
+ const __default__ = defineComponent({
22
+ name: "ElRate"
90
23
  });
91
- const rateEmits = {
92
- [CHANGE_EVENT]: (value) => isNumber(value),
93
- [UPDATE_MODEL_EVENT]: (value) => isNumber(value)
94
- };
24
+ const _sfc_main = /* @__PURE__ */ defineComponent({
25
+ ...__default__,
26
+ props: rateProps,
27
+ emits: rateEmits,
28
+ setup(__props, { expose, emit }) {
29
+ const props = __props;
30
+ function getValueFromMap(value, map) {
31
+ const isExcludedObject = (val) => isObject(val);
32
+ const matchedKeys = Object.keys(map).map((key) => +key).filter((key) => {
33
+ const val = map[key];
34
+ const excluded = isExcludedObject(val) ? val.excluded : false;
35
+ return excluded ? value < key : value <= key;
36
+ }).sort((a, b) => a - b);
37
+ const matchedValue = map[matchedKeys[0]];
38
+ return isExcludedObject(matchedValue) && matchedValue.value || matchedValue;
39
+ }
40
+ const formContext = inject(formContextKey, void 0);
41
+ const formItemContext = inject(formItemContextKey, void 0);
42
+ const rateSize = useFormSize();
43
+ const ns = useNamespace("rate");
44
+ const { inputId, isLabeledByFormItem } = useFormItemInputId(props, {
45
+ formItemContext
46
+ });
47
+ const currentValue = ref(props.modelValue);
48
+ const hoverIndex = ref(-1);
49
+ const pointerAtLeftHalf = ref(true);
50
+ const rateClasses = computed(() => [ns.b(), ns.m(rateSize.value)]);
51
+ const rateDisabled = computed(() => props.disabled || (formContext == null ? void 0 : formContext.disabled));
52
+ const rateStyles = computed(() => {
53
+ return ns.cssVarBlock({
54
+ "void-color": props.voidColor,
55
+ "disabled-void-color": props.disabledVoidColor,
56
+ "fill-color": activeColor.value
57
+ });
58
+ });
59
+ const text = computed(() => {
60
+ let result = "";
61
+ if (props.showScore) {
62
+ result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`);
63
+ } else if (props.showText) {
64
+ result = props.texts[Math.ceil(currentValue.value) - 1];
65
+ }
66
+ return result;
67
+ });
68
+ const valueDecimal = computed(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100);
69
+ const colorMap = computed(() => isArray(props.colors) ? {
70
+ [props.lowThreshold]: props.colors[0],
71
+ [props.highThreshold]: { value: props.colors[1], excluded: true },
72
+ [props.max]: props.colors[2]
73
+ } : props.colors);
74
+ const activeColor = computed(() => {
75
+ const color = getValueFromMap(currentValue.value, colorMap.value);
76
+ return isObject(color) ? "" : color;
77
+ });
78
+ const decimalStyle = computed(() => {
79
+ let width = "";
80
+ if (rateDisabled.value) {
81
+ width = `${valueDecimal.value}%`;
82
+ } else if (props.allowHalf) {
83
+ width = "50%";
84
+ }
85
+ return {
86
+ color: activeColor.value,
87
+ width
88
+ };
89
+ });
90
+ const componentMap = computed(() => {
91
+ let icons = isArray(props.icons) ? [...props.icons] : { ...props.icons };
92
+ icons = markRaw(icons);
93
+ return isArray(icons) ? {
94
+ [props.lowThreshold]: icons[0],
95
+ [props.highThreshold]: {
96
+ value: icons[1],
97
+ excluded: true
98
+ },
99
+ [props.max]: icons[2]
100
+ } : icons;
101
+ });
102
+ const decimalIconComponent = computed(() => getValueFromMap(props.modelValue, componentMap.value));
103
+ const voidComponent = computed(() => rateDisabled.value ? isString(props.disabledVoidIcon) ? props.disabledVoidIcon : markRaw(props.disabledVoidIcon) : isString(props.voidIcon) ? props.voidIcon : markRaw(props.voidIcon));
104
+ const activeComponent = computed(() => getValueFromMap(currentValue.value, componentMap.value));
105
+ function showDecimalIcon(item) {
106
+ const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue;
107
+ const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - 0.5 <= currentValue.value && item > currentValue.value;
108
+ return showWhenDisabled || showWhenAllowHalf;
109
+ }
110
+ function emitValue(value) {
111
+ if (props.clearable && value === props.modelValue) {
112
+ value = 0;
113
+ }
114
+ emit(UPDATE_MODEL_EVENT, value);
115
+ if (props.modelValue !== value) {
116
+ emit("change", value);
117
+ }
118
+ }
119
+ function selectValue(value) {
120
+ if (rateDisabled.value) {
121
+ return;
122
+ }
123
+ if (props.allowHalf && pointerAtLeftHalf.value) {
124
+ emitValue(currentValue.value);
125
+ } else {
126
+ emitValue(value);
127
+ }
128
+ }
129
+ function handleKey(e) {
130
+ if (rateDisabled.value) {
131
+ return;
132
+ }
133
+ let _currentValue = currentValue.value;
134
+ const code = e.code;
135
+ if (code === EVENT_CODE.up || code === EVENT_CODE.right) {
136
+ if (props.allowHalf) {
137
+ _currentValue += 0.5;
138
+ } else {
139
+ _currentValue += 1;
140
+ }
141
+ e.stopPropagation();
142
+ e.preventDefault();
143
+ } else if (code === EVENT_CODE.left || code === EVENT_CODE.down) {
144
+ if (props.allowHalf) {
145
+ _currentValue -= 0.5;
146
+ } else {
147
+ _currentValue -= 1;
148
+ }
149
+ e.stopPropagation();
150
+ e.preventDefault();
151
+ }
152
+ _currentValue = _currentValue < 0 ? 0 : _currentValue;
153
+ _currentValue = _currentValue > props.max ? props.max : _currentValue;
154
+ emit(UPDATE_MODEL_EVENT, _currentValue);
155
+ emit("change", _currentValue);
156
+ return _currentValue;
157
+ }
158
+ function setCurrentValue(value, event) {
159
+ if (rateDisabled.value) {
160
+ return;
161
+ }
162
+ if (props.allowHalf && event) {
163
+ let target = event.target;
164
+ if (hasClass(target, ns.e("item"))) {
165
+ target = target.querySelector(`.${ns.e("icon")}`);
166
+ }
167
+ if (target.clientWidth === 0 || hasClass(target, ns.e("decimal"))) {
168
+ target = target.parentNode;
169
+ }
170
+ pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth;
171
+ currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value;
172
+ } else {
173
+ currentValue.value = value;
174
+ }
175
+ hoverIndex.value = value;
176
+ }
177
+ function resetCurrentValue() {
178
+ if (rateDisabled.value) {
179
+ return;
180
+ }
181
+ if (props.allowHalf) {
182
+ pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
183
+ }
184
+ currentValue.value = props.modelValue;
185
+ hoverIndex.value = -1;
186
+ }
187
+ watch(() => props.modelValue, (val) => {
188
+ currentValue.value = val;
189
+ pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
190
+ });
191
+ if (!props.modelValue) {
192
+ emit(UPDATE_MODEL_EVENT, 0);
193
+ }
194
+ useDeprecated({
195
+ from: "label",
196
+ replacement: "aria-label",
197
+ version: "2.8.0",
198
+ scope: "el-rate",
199
+ ref: "https://element-plus.org/en-US/component/rate.html"
200
+ }, computed(() => !!props.label));
201
+ expose({
202
+ setCurrentValue,
203
+ resetCurrentValue
204
+ });
205
+ return (_ctx, _cache) => {
206
+ var _a;
207
+ return openBlock(), createElementBlock("div", {
208
+ id: unref(inputId),
209
+ class: normalizeClass([unref(rateClasses), unref(ns).is("disabled", unref(rateDisabled))]),
210
+ role: "slider",
211
+ "aria-label": !unref(isLabeledByFormItem) ? _ctx.label || _ctx.ariaLabel || "rating" : void 0,
212
+ "aria-labelledby": unref(isLabeledByFormItem) ? (_a = unref(formItemContext)) == null ? void 0 : _a.labelId : void 0,
213
+ "aria-valuenow": currentValue.value,
214
+ "aria-valuetext": unref(text) || void 0,
215
+ "aria-valuemin": "0",
216
+ "aria-valuemax": _ctx.max,
217
+ tabindex: "0",
218
+ style: normalizeStyle(unref(rateStyles)),
219
+ onKeydown: handleKey
220
+ }, [
221
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.max, (item, key) => {
222
+ return openBlock(), createElementBlock("span", {
223
+ key,
224
+ class: normalizeClass(unref(ns).e("item")),
225
+ onMousemove: ($event) => setCurrentValue(item, $event),
226
+ onMouseleave: resetCurrentValue,
227
+ onClick: ($event) => selectValue(item)
228
+ }, [
229
+ createVNode(unref(ElIcon), {
230
+ class: normalizeClass([
231
+ unref(ns).e("icon"),
232
+ { hover: hoverIndex.value === item },
233
+ unref(ns).is("active", item <= currentValue.value)
234
+ ])
235
+ }, {
236
+ default: withCtx(() => [
237
+ !showDecimalIcon(item) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
238
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent(unref(activeComponent)), null, null, 512)), [
239
+ [vShow, item <= currentValue.value]
240
+ ]),
241
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent(unref(voidComponent)), null, null, 512)), [
242
+ [vShow, !(item <= currentValue.value)]
243
+ ])
244
+ ], 64)) : createCommentVNode("v-if", true),
245
+ showDecimalIcon(item) ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
246
+ (openBlock(), createBlock(resolveDynamicComponent(unref(voidComponent)), {
247
+ class: normalizeClass([unref(ns).em("decimal", "box")])
248
+ }, null, 8, ["class"])),
249
+ createVNode(unref(ElIcon), {
250
+ style: normalizeStyle(unref(decimalStyle)),
251
+ class: normalizeClass([unref(ns).e("icon"), unref(ns).e("decimal")])
252
+ }, {
253
+ default: withCtx(() => [
254
+ (openBlock(), createBlock(resolveDynamicComponent(unref(decimalIconComponent))))
255
+ ]),
256
+ _: 1
257
+ }, 8, ["style", "class"])
258
+ ], 64)) : createCommentVNode("v-if", true)
259
+ ]),
260
+ _: 2
261
+ }, 1032, ["class"])
262
+ ], 42, _hoisted_2);
263
+ }), 128)),
264
+ _ctx.showText || _ctx.showScore ? (openBlock(), createElementBlock("span", {
265
+ key: 0,
266
+ class: normalizeClass(unref(ns).e("text")),
267
+ style: normalizeStyle({ color: _ctx.textColor })
268
+ }, toDisplayString(unref(text)), 7)) : createCommentVNode("v-if", true)
269
+ ], 46, _hoisted_1);
270
+ };
271
+ }
272
+ });
273
+ var Rate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "rate.vue"]]);
95
274
 
96
- export { rateEmits, rateProps };
275
+ export { Rate as default };
97
276
  //# sourceMappingURL=rate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate.mjs","sources":["../../../../../../packages/components/rate/src/rate.ts"],"sourcesContent":["import { Star, StarFilled } from '@element-plus/icons-vue'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n iconPropType,\n isNumber,\n mutable,\n} from '@element-plus/utils'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\nimport type { Component, ExtractPropTypes } from 'vue'\nimport type Rate from './rate.vue'\n\nexport const rateProps = buildProps({\n /**\n * @description binding value\n */\n modelValue: {\n type: Number,\n default: 0,\n },\n /**\n * @description native `id` attribute\n */\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description threshold value between low and medium level. The value itself will be included in low level\n */\n lowThreshold: {\n type: Number,\n default: 2,\n },\n /**\n * @description threshold value between medium and high level. The value itself will be included in high level\n */\n highThreshold: {\n type: Number,\n default: 4,\n },\n /**\n * @description max rating score\n */\n max: {\n type: Number,\n default: 5,\n },\n /**\n * @description colors for icons. If array, it should have 3 elements, each of which corresponds with a score level, else if object, the key should be threshold value between two levels, and the value should be corresponding color\n */\n colors: {\n type: definePropType<string[] | Record<number, string>>([Array, Object]),\n default: () => mutable(['', '', ''] as const),\n },\n /**\n * @description color of unselected icons\n */\n voidColor: {\n type: String,\n default: '',\n },\n /**\n * @description color of unselected read-only icons\n */\n disabledVoidColor: {\n type: String,\n default: '',\n },\n /**\n * @description icon components. If array, it should have 3 elements, each of which corresponds with a score level, else if object, the key should be threshold value between two levels, and the value should be corresponding icon component\n */\n icons: {\n type: definePropType<\n Array<string | Component> | Record<number, string | Component>\n >([Array, Object]),\n default: () =>\n [StarFilled, StarFilled, StarFilled] as [Component, Component, Component],\n },\n /**\n * @description component of unselected icons\n */\n voidIcon: {\n type: iconPropType,\n default: () => Star as Component,\n },\n /**\n * @description component of unselected read-only icons\n */\n disabledVoidIcon: {\n type: iconPropType,\n default: () => StarFilled as Component,\n },\n /**\n * @description whether Rate is read-only\n */\n disabled: Boolean,\n /**\n * @description whether picking half start is allowed\n */\n allowHalf: Boolean,\n /**\n * @description whether to display texts\n */\n showText: Boolean,\n /**\n * @description whether to display current score. show-score and show-text cannot be true at the same time\n */\n showScore: Boolean,\n /**\n * @description color of texts\n */\n textColor: {\n type: String,\n default: '',\n },\n /**\n * @description text array\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 /**\n * @description score template\n */\n scoreTemplate: {\n type: String,\n default: '{value}',\n },\n /**\n * @description size of Rate\n */\n size: useSizeProp,\n /**\n * @deprecated same as `aria-label` in Rate\n */\n label: {\n type: String,\n default: undefined,\n },\n /**\n * @description whether value can be reset to `0`\n */\n clearable: {\n type: Boolean,\n default: false,\n },\n ...useAriaProps(['ariaLabel']),\n} as const)\n\nexport type RateProps = ExtractPropTypes<typeof rateProps>\n\nexport const rateEmits = {\n [CHANGE_EVENT]: (value: number) => isNumber(value),\n [UPDATE_MODEL_EVENT]: (value: number) => isNumber(value),\n}\nexport type RateEmits = typeof rateEmits\n\nexport type RateInstance = InstanceType<typeof Rate>\n"],"names":[],"mappings":";;;;;;;;;;;;AAUY,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,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,OAAO;AACnB,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,SAAS,EAAE,OAAO;AACpB,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,WAAW;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,GAAG,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC,EAAE;AACS,MAAC,SAAS,GAAG;AACzB,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAC5C,EAAE,CAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAClD;;;;"}
1
+ {"version":3,"file":"rate.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n :id=\"inputId\"\n :class=\"[rateClasses, ns.is('disabled', rateDisabled)]\"\n role=\"slider\"\n :aria-label=\"\n !isLabeledByFormItem ? label || ariaLabel || 'rating' : undefined\n \"\n :aria-labelledby=\"\n isLabeledByFormItem ? formItemContext?.labelId : undefined\n \"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text || undefined\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n :style=\"rateStyles\"\n @keydown=\"handleKey\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n :class=\"ns.e('item')\"\n @mousemove=\"setCurrentValue(item, $event)\"\n @mouseleave=\"resetCurrentValue\"\n @click=\"selectValue(item)\"\n >\n <el-icon\n :class=\"[\n ns.e('icon'),\n { hover: hoverIndex === item },\n ns.is('active', item <= currentValue),\n ]\"\n >\n <template v-if=\"!showDecimalIcon(item)\">\n <component :is=\"activeComponent\" v-show=\"item <= currentValue\" />\n <component :is=\"voidComponent\" v-show=\"!(item <= currentValue)\" />\n </template>\n <template v-if=\"showDecimalIcon(item)\">\n <component :is=\"voidComponent\" :class=\"[ns.em('decimal', 'box')]\" />\n <el-icon\n :style=\"decimalStyle\"\n :class=\"[ns.e('icon'), ns.e('decimal')]\"\n >\n <component :is=\"decimalIconComponent\" />\n </el-icon>\n </template>\n </el-icon>\n </span>\n <span\n v-if=\"showText || showScore\"\n :class=\"ns.e('text')\"\n :style=\"{ color: textColor }\"\n >\n {{ text }}\n </span>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, inject, markRaw, ref, watch } from 'vue'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { hasClass, isArray, isObject, isString } from '@element-plus/utils'\nimport {\n formContextKey,\n formItemContextKey,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport { rateEmits, rateProps } from './rate'\nimport type { CSSProperties, Component } from 'vue'\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: 'ElRate',\n})\n\nconst props = defineProps(rateProps)\nconst emit = defineEmits(rateEmits)\n\nconst formContext = inject(formContextKey, undefined)\nconst formItemContext = inject(formItemContextKey, undefined)\nconst rateSize = useFormSize()\nconst ns = useNamespace('rate')\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext,\n})\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 ns.cssVarBlock({\n 'void-color': props.voidColor,\n 'disabled-void-color': props.disabledVoidColor,\n 'fill-color': activeColor.value,\n }) as CSSProperties\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 let icons = isArray(props.icons) ? [...props.icons] : { ...props.icons }\n icons = markRaw(icons) as\n | Array<string | Component>\n | Record<number, string | Component>\n return isArray(icons)\n ? {\n [props.lowThreshold]: icons[0],\n [props.highThreshold]: {\n value: icons[1],\n excluded: true,\n },\n [props.max]: icons[2],\n }\n : icons\n})\nconst decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n)\nconst voidComponent = computed(() =>\n rateDisabled.value\n ? isString(props.disabledVoidIcon)\n ? props.disabledVoidIcon\n : (markRaw(props.disabledVoidIcon) as Component)\n : isString(props.voidIcon)\n ? props.voidIcon\n : (markRaw(props.voidIcon) as Component)\n)\nconst activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\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 emitValue(value: number) {\n // if allow clear, and selected value is same as modelValue, reset value to 0\n if (props.clearable && value === props.modelValue) {\n value = 0\n }\n\n emit(UPDATE_MODEL_EVENT, value)\n if (props.modelValue !== value) {\n emit('change', value)\n }\n}\n\nfunction selectValue(value: number) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && pointerAtLeftHalf.value) {\n emitValue(currentValue.value)\n } else {\n emitValue(value)\n }\n}\n\nfunction handleKey(e: KeyboardEvent) {\n if (rateDisabled.value) {\n return\n }\n let _currentValue = currentValue.value\n const code = e.code\n if (code === EVENT_CODE.up || code === EVENT_CODE.right) {\n if (props.allowHalf) {\n _currentValue += 0.5\n } else {\n _currentValue += 1\n }\n e.stopPropagation()\n e.preventDefault()\n } else if (code === EVENT_CODE.left || code === EVENT_CODE.down) {\n if (props.allowHalf) {\n _currentValue -= 0.5\n } else {\n _currentValue -= 1\n }\n e.stopPropagation()\n e.preventDefault()\n }\n _currentValue = _currentValue < 0 ? 0 : _currentValue\n _currentValue = _currentValue > props.max ? props.max : _currentValue\n emit(UPDATE_MODEL_EVENT, _currentValue)\n emit('change', _currentValue)\n return _currentValue\n}\n\nfunction setCurrentValue(value: number, event?: MouseEvent) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && event) {\n // TODO: use cache via computed https://github.com/element-plus/element-plus/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\nfunction resetCurrentValue() {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue)\n }\n currentValue.value = props.modelValue\n hoverIndex.value = -1\n}\n\nwatch(\n () => props.modelValue,\n (val) => {\n currentValue.value = val\n pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue)\n }\n)\n\nif (!props.modelValue) {\n emit(UPDATE_MODEL_EVENT, 0)\n}\n\nuseDeprecated(\n {\n from: 'label',\n replacement: 'aria-label',\n version: '2.8.0',\n scope: 'el-rate',\n ref: 'https://element-plus.org/en-US/component/rate.html',\n },\n computed(() => !!props.label)\n)\n\ndefineExpose({\n /** @description set current value */\n setCurrentValue,\n /** @description reset current value */\n resetCurrentValue,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;mCA6Fc,CAAA;AAAA,EACZ,IAAM,EAAA,QAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAtBA,IAAA,SAAA,eAAA,CACE,OACA,GACA,EAAA;AACA,MAAA,MAAM,gBAAmB,GAAA,CACvB,GACyD,KAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AAEvE,MAAA,MAAM,WAAc,GAAA,MAAA,CAAO,IAAK,CAAA,GAAG,CAChC,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,CAAC,GAAG,CACjB,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,QAAA,MAAM,MAAM,GAAI,CAAA,GAAA,CAAA,CAAA;AAChB,QAAA,MAAM,QAAW,GAAA,gBAAA,CAAiB,GAAG,CAAA,GAAI,IAAI,QAAW,GAAA,KAAA,CAAA;AACxD,QAAO,OAAA,QAAA,GAAW,KAAQ,GAAA,GAAA,GAAM,KAAS,IAAA,GAAA,CAAA;AAAA,OAC1C,CACA,CAAA,IAAA,CAAK,CAAC,CAAG,EAAA,CAAA,KAAM,IAAI,CAAC,CAAA,CAAA;AACvB,MAAM,MAAA,YAAA,GAAe,IAAI,WAAY,CAAA,CAAA,CAAA,CAAA,CAAA;AACrC,MAAA,OAAQ,gBAAiB,CAAA,YAAY,CAAK,IAAA,YAAA,CAAa,KAAU,IAAA,YAAA,CAAA;AAAA,KACnE;AASA,IAAM,MAAA,WAAA,GAAc,MAAO,CAAA,cAAA,EAAgB,KAAS,CAAA,CAAA,CAAA;AACpD,IAAM,MAAA,eAAA,GAAkB,MAAO,CAAA,kBAAA,EAAoB,KAAS,CAAA,CAAA,CAAA;AAC5D,IAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,IAAM,MAAA,EAAA,GAAK,aAAa,MAAM,CAAA,CAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,mBAAwB,EAAA,GAAA,kBAAA,CAAmB,KAAO,EAAA;AAAA,MACjE,eAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,GAAI,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AACzC,IAAM,MAAA,UAAA,GAAa,IAAI,CAAE,CAAA,CAAA,CAAA;AACzB,IAAM,MAAA,iBAAA,GAAoB,IAAI,IAAI,CAAA,CAAA;AAElC,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,MAAM,CAAC,EAAG,CAAA,CAAA,EAAK,EAAA,EAAA,CAAG,CAAE,CAAA,QAAA,CAAS,KAAK,CAAC,CAAC,CAAA,CAAA;AACjE,IAAA,MAAM,eAAe,QAAS,CAAA,MAAM,KAAM,CAAA,QAAA,oBAAiC,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAC3E,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAA,OAAO,GAAG,WAAY,CAAA;AAAA,QACpB,cAAc,KAAM,CAAA,SAAA;AAAA,QACpB,uBAAuB,KAAM,CAAA,iBAAA;AAAA,QAC7B,cAAc,WAAY,CAAA,KAAA;AAAA,OAC3B,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AACb,MAAA,IAAI,MAAM,SAAW,EAAA;AACnB,QAAS,MAAA,GAAA,KAAA,CAAM,aAAc,CAAA,OAAA,CAC3B,iBACA,EAAA,YAAA,CAAa,KAAQ,GAAA,CAAA,EAAG,KAAM,CAAA,UAAA,CAAA,CAAA,GAAe,CAAG,EAAA,YAAA,CAAa,KAC/D,CAAA,CAAA,CAAA,CAAA;AAAA,OACF,MAAA,IAAW,MAAM,QAAU,EAAA;AACzB,QAAA,MAAA,GAAS,MAAM,KAAM,CAAA,IAAA,CAAK,IAAK,CAAA,YAAA,CAAa,KAAK,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OACvD;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AACD,IAAM,MAAA,YAAA,GAAe,QACnB,CAAA,MAAM,KAAM,CAAA,UAAA,GAAa,GAAM,GAAA,IAAA,CAAK,KAAM,CAAA,KAAA,CAAM,UAAU,CAAA,GAAI,GAChE,CAAA,CAAA;AACA,IAAA,MAAM,WAAW,QAAS,CAAA,MACxB,OAAQ,CAAA,KAAA,CAAM,MAAM,CAChB,GAAA;AAAA,MACE,CAAC,KAAA,CAAM,YAAe,GAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA;AAAA,MACnC,CAAC,MAAM,aAAgB,GAAA,EAAE,OAAO,KAAM,CAAA,MAAA,CAAO,CAAI,CAAA,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,MAChE,CAAC,KAAA,CAAM,GAAM,GAAA,KAAA,CAAM,MAAO,CAAA,CAAA,CAAA;AAAA,KAC5B,GACA,MAAM,MACZ,CAAA,CAAA;AACA,IAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AACjC,MAAA,MAAM,KAAQ,GAAA,eAAA,CAAgB,YAAa,CAAA,KAAA,EAAO,SAAS,KAAK,CAAA,CAAA;AAEhE,MAAO,OAAA,QAAA,CAAS,KAAK,CAAA,GAAI,EAAK,GAAA,KAAA,CAAA;AAAA,KAC/B,CAAA,CAAA;AACD,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,IAAI,KAAQ,GAAA,EAAA,CAAA;AACZ,MAAA,IAAI,aAAa,KAAO,EAAA;AACtB,QAAA,KAAA,GAAQ,GAAG,YAAa,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OAC1B,MAAA,IAAW,MAAM,SAAW,EAAA;AAC1B,QAAQ,KAAA,GAAA,KAAA,CAAA;AAAA,OACV;AACA,MAAO,OAAA;AAAA,QACL,OAAO,WAAY,CAAA,KAAA;AAAA,QACnB,KAAA;AAAA,OACF,CAAA;AAAA,KACD,CAAA,CAAA;AACD,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAI,GAAA,CAAC,GAAG,KAAA,CAAM,KAAK,CAAA,GAAI,EAAE,GAAG,MAAM,KAAM,EAAA,CAAA;AACvE,MAAA,KAAA,GAAQ,QAAQ,KAAK,CAAA,CAAA;AAGrB,MAAO,OAAA,OAAA,CAAQ,KAAK,CAChB,GAAA;AAAA,QACE,CAAC,KAAM,CAAA,YAAA,GAAe,KAAM,CAAA,CAAA,CAAA;AAAA,QAC5B,CAAC,MAAM,aAAgB,GAAA;AAAA,UACrB,OAAO,KAAM,CAAA,CAAA,CAAA;AAAA,UACb,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,CAAC,KAAM,CAAA,GAAA,GAAM,KAAM,CAAA,CAAA,CAAA;AAAA,OAErB,GAAA,KAAA,CAAA;AAAA,KACL,CAAA,CAAA;AACD,IAAM,MAAA,oBAAA,GAAuB,SAAS,MACpC,eAAA,CAAgB,MAAM,UAAY,EAAA,YAAA,CAAa,KAAK,CACtD,CAAA,CAAA;AACA,IAAM,MAAA,aAAA,GAAgB,QAAS,CAAA,MAC7B,YAAa,CAAA,KAAA,GACT,SAAS,KAAM,CAAA,gBAAgB,CAC7B,GAAA,KAAA,CAAM,gBACL,GAAA,OAAA,CAAQ,MAAM,gBAAgB,CAAA,GACjC,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,GACvB,MAAM,QACL,GAAA,OAAA,CAAQ,KAAM,CAAA,QAAQ,CAC7B,CAAA,CAAA;AACA,IAAM,MAAA,eAAA,GAAkB,SAAS,MAC/B,eAAA,CAAgB,aAAa,KAAO,EAAA,YAAA,CAAa,KAAK,CACxD,CAAA,CAAA;AAEA,IAAA,SAAA,eAAA,CAAyB,IAAc,EAAA;AACrC,MAAM,MAAA,gBAAA,GACJ,YAAa,CAAA,KAAA,IACb,YAAa,CAAA,KAAA,GAAQ,CACrB,IAAA,IAAA,GAAO,CAAI,GAAA,KAAA,CAAM,UACjB,IAAA,IAAA,GAAO,KAAM,CAAA,UAAA,CAAA;AACf,MAAM,MAAA,iBAAA,GACJ,KAAM,CAAA,SAAA,IACN,iBAAkB,CAAA,KAAA,IAClB,OAAO,GAAO,IAAA,YAAA,CAAa,KAC3B,IAAA,IAAA,GAAO,YAAa,CAAA,KAAA,CAAA;AACtB,MAAA,OAAO,gBAAoB,IAAA,iBAAA,CAAA;AAAA,KAC7B;AAEA,IAAA,SAAA,SAAA,CAAmB,KAAe,EAAA;AAEhC,MAAA,IAAI,KAAM,CAAA,SAAA,IAAa,KAAU,KAAA,KAAA,CAAM,UAAY,EAAA;AACjD,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,OACV;AAEA,MAAA,IAAA,CAAK,oBAAoB,KAAK,CAAA,CAAA;AAC9B,MAAI,IAAA,KAAA,CAAM,eAAe,KAAO,EAAA;AAC9B,QAAA,IAAA,CAAK,UAAU,KAAK,CAAA,CAAA;AAAA,OACtB;AAAA,KACF;AAEA,IAAA,SAAA,WAAA,CAAqB,KAAe,EAAA;AAClC,MAAA,IAAI,aAAa,KAAO,EAAA;AACtB,QAAA,OAAA;AAAA,OACF;AACA,MAAI,IAAA,KAAA,CAAM,SAAa,IAAA,iBAAA,CAAkB,KAAO,EAAA;AAC9C,QAAA,SAAA,CAAU,aAAa,KAAK,CAAA,CAAA;AAAA,OACvB,MAAA;AACL,QAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,OACjB;AAAA,KACF;AAEA,IAAA,SAAA,SAAA,CAAmB,CAAkB,EAAA;AACnC,MAAA,IAAI,aAAa,KAAO,EAAA;AACtB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IAAI,gBAAgB,YAAa,CAAA,KAAA,CAAA;AACjC,MAAA,MAAM,OAAO,CAAE,CAAA,IAAA,CAAA;AACf,MAAA,IAAI,IAAS,KAAA,UAAA,CAAW,EAAM,IAAA,IAAA,KAAS,WAAW,KAAO,EAAA;AACvD,QAAA,IAAI,MAAM,SAAW,EAAA;AACnB,UAAiB,aAAA,IAAA,GAAA,CAAA;AAAA,SACZ,MAAA;AACL,UAAiB,aAAA,IAAA,CAAA,CAAA;AAAA,SACnB;AACA,QAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,iBACR,IAAS,KAAA,UAAA,CAAW,IAAQ,IAAA,IAAA,KAAS,WAAW,IAAM,EAAA;AAC/D,QAAA,IAAI,MAAM,SAAW,EAAA;AACnB,UAAiB,aAAA,IAAA,GAAA,CAAA;AAAA,SACZ,MAAA;AACL,UAAiB,aAAA,IAAA,CAAA,CAAA;AAAA,SACnB;AACA,QAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,OACnB;AACA,MAAgB,aAAA,GAAA,aAAA,GAAgB,IAAI,CAAI,GAAA,aAAA,CAAA;AACxC,MAAA,aAAA,GAAgB,aAAgB,GAAA,KAAA,CAAM,GAAM,GAAA,KAAA,CAAM,GAAM,GAAA,aAAA,CAAA;AACxD,MAAA,IAAA,CAAK,oBAAoB,aAAa,CAAA,CAAA;AACtC,MAAA,IAAA,CAAK,UAAU,aAAa,CAAA,CAAA;AAC5B,MAAO,OAAA,aAAA,CAAA;AAAA,KACT;AAEA,IAAA,SAAA,eAAA,CAAyB,OAAe,KAAoB,EAAA;AAC1D,MAAA,IAAI,aAAa,KAAO,EAAA;AACtB,QAAA,OAAA;AAAA,OACF;AACA,MAAI,IAAA,KAAA,CAAM,aAAa,KAAO,EAAA;AAE5B,QAAA,IAAI,SAAS,KAAM,CAAA,MAAA,CAAA;AACnB,QAAA,IAAI,SAAS,MAAQ,EAAA,EAAA,CAAG,CAAE,CAAA,MAAM,CAAC,CAAG,EAAA;AAClC,UAAA,MAAA,GAAS,OAAO,aAAc,CAAA,CAAA,CAAA,EAAI,EAAG,CAAA,CAAA,CAAE,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,SAClD;AACA,QAAI,IAAA,MAAA,CAAO,gBAAgB,CAAK,IAAA,QAAA,CAAS,QAAQ,EAAG,CAAA,CAAA,CAAE,SAAS,CAAC,CAAG,EAAA;AACjE,UAAA,MAAA,GAAS,MAAO,CAAA,UAAA,CAAA;AAAA,SAClB;AACA,QAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,CAAA,IAAK,MAAO,CAAA,WAAA,CAAA;AACtD,QAAA,YAAA,CAAa,KAAQ,GAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA,GAAQ,GAAM,GAAA,KAAA,CAAA;AAAA,OACxD,MAAA;AACL,QAAA,YAAA,CAAa,KAAQ,GAAA,KAAA,CAAA;AAAA,OACvB;AACA,MAAA,UAAA,CAAW,KAAQ,GAAA,KAAA,CAAA;AAAA,KACrB;AAEA,IAA6B,SAAA,iBAAA,GAAA;AAC3B,MAAA,IAAI,aAAa,KAAO,EAAA;AACtB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IAAI,MAAM,SAAW,EAAA;AACnB,QAAA,iBAAA,CAAkB,QAAQ,KAAM,CAAA,UAAA,KAAe,IAAK,CAAA,KAAA,CAAM,MAAM,UAAU,CAAA,CAAA;AAAA,OAC5E;AACA,MAAA,YAAA,CAAa,QAAQ,KAAM,CAAA,UAAA,CAAA;AAC3B,MAAA,UAAA,CAAW,KAAQ,GAAA,CAAA,CAAA,CAAA;AAAA,KACrB;AAEA,IAAA,KAAA,CACE,MAAM,KAAA,CAAM,UACZ,EAAA,CAAC,GAAQ,KAAA;AACP,MAAA,YAAA,CAAa,KAAQ,GAAA,GAAA,CAAA;AACrB,MAAA,iBAAA,CAAkB,QAAQ,KAAM,CAAA,UAAA,KAAe,IAAK,CAAA,KAAA,CAAM,MAAM,UAAU,CAAA,CAAA;AAAA,KAE9E,CAAA,CAAA;AAEA,IAAI,IAAA,CAAC,MAAM,UAAY,EAAA;AACrB,MAAA,IAAA,CAAK,oBAAoB,CAAC,CAAA,CAAA;AAAA,KAC5B;AAEA,IACE,aAAA,CAAA;AAAA,MACE,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,YAAA;AAAA,MACb,OAAS,EAAA,OAAA;AAAA,MACT,KAAO,EAAA,SAAA;AAAA,MACP,GAAK,EAAA,oDAAA;AAAA,OAEP,QAAS,CAAA,MAAM,CAAC,CAAC,KAAA,CAAM,KAAK,CAC9B,CAAA,CAAA;AAEA,IAAa,MAAA,CAAA;AAAA,MAEX,eAAA;AAAA,MAEA,iBAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}