@element-plus/nightly 0.0.20221017 → 0.0.20221018

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 (304) hide show
  1. package/dist/index.full.js +26 -7
  2. package/dist/index.full.min.js +11 -11
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +11 -11
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +26 -7
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar.js +1 -1
  12. package/dist/locale/ar.min.js +1 -1
  13. package/dist/locale/ar.min.mjs +1 -1
  14. package/dist/locale/ar.mjs +1 -1
  15. package/dist/locale/az.js +1 -1
  16. package/dist/locale/az.min.js +1 -1
  17. package/dist/locale/az.min.mjs +1 -1
  18. package/dist/locale/az.mjs +1 -1
  19. package/dist/locale/bg.js +1 -1
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.mjs +1 -1
  22. package/dist/locale/bg.mjs +1 -1
  23. package/dist/locale/bn.js +1 -1
  24. package/dist/locale/bn.min.js +1 -1
  25. package/dist/locale/bn.min.mjs +1 -1
  26. package/dist/locale/bn.mjs +1 -1
  27. package/dist/locale/ca.js +1 -1
  28. package/dist/locale/ca.min.js +1 -1
  29. package/dist/locale/ca.min.mjs +1 -1
  30. package/dist/locale/ca.mjs +1 -1
  31. package/dist/locale/cs.js +1 -1
  32. package/dist/locale/cs.min.js +1 -1
  33. package/dist/locale/cs.min.mjs +1 -1
  34. package/dist/locale/cs.mjs +1 -1
  35. package/dist/locale/da.js +1 -1
  36. package/dist/locale/da.min.js +1 -1
  37. package/dist/locale/da.min.mjs +1 -1
  38. package/dist/locale/da.mjs +1 -1
  39. package/dist/locale/de.js +1 -1
  40. package/dist/locale/de.min.js +1 -1
  41. package/dist/locale/de.min.mjs +1 -1
  42. package/dist/locale/de.mjs +1 -1
  43. package/dist/locale/el.js +1 -1
  44. package/dist/locale/el.min.js +1 -1
  45. package/dist/locale/el.min.mjs +1 -1
  46. package/dist/locale/el.mjs +1 -1
  47. package/dist/locale/en.js +1 -1
  48. package/dist/locale/en.min.js +1 -1
  49. package/dist/locale/en.min.mjs +1 -1
  50. package/dist/locale/en.mjs +1 -1
  51. package/dist/locale/eo.js +1 -1
  52. package/dist/locale/eo.min.js +1 -1
  53. package/dist/locale/eo.min.mjs +1 -1
  54. package/dist/locale/eo.mjs +1 -1
  55. package/dist/locale/es.js +1 -1
  56. package/dist/locale/es.min.js +1 -1
  57. package/dist/locale/es.min.mjs +1 -1
  58. package/dist/locale/es.mjs +1 -1
  59. package/dist/locale/et.js +1 -1
  60. package/dist/locale/et.min.js +1 -1
  61. package/dist/locale/et.min.mjs +1 -1
  62. package/dist/locale/et.mjs +1 -1
  63. package/dist/locale/eu.js +1 -1
  64. package/dist/locale/eu.min.js +1 -1
  65. package/dist/locale/eu.min.mjs +1 -1
  66. package/dist/locale/eu.mjs +1 -1
  67. package/dist/locale/fa.js +1 -1
  68. package/dist/locale/fa.min.js +1 -1
  69. package/dist/locale/fa.min.mjs +1 -1
  70. package/dist/locale/fa.mjs +1 -1
  71. package/dist/locale/fi.js +1 -1
  72. package/dist/locale/fi.min.js +1 -1
  73. package/dist/locale/fi.min.mjs +1 -1
  74. package/dist/locale/fi.mjs +1 -1
  75. package/dist/locale/fr.js +1 -1
  76. package/dist/locale/fr.min.js +1 -1
  77. package/dist/locale/fr.min.mjs +1 -1
  78. package/dist/locale/fr.mjs +1 -1
  79. package/dist/locale/he.js +1 -1
  80. package/dist/locale/he.min.js +1 -1
  81. package/dist/locale/he.min.mjs +1 -1
  82. package/dist/locale/he.mjs +1 -1
  83. package/dist/locale/hr.js +1 -1
  84. package/dist/locale/hr.min.js +1 -1
  85. package/dist/locale/hr.min.mjs +1 -1
  86. package/dist/locale/hr.mjs +1 -1
  87. package/dist/locale/hu.js +1 -1
  88. package/dist/locale/hu.min.js +1 -1
  89. package/dist/locale/hu.min.mjs +1 -1
  90. package/dist/locale/hu.mjs +1 -1
  91. package/dist/locale/hy-am.js +1 -1
  92. package/dist/locale/hy-am.min.js +1 -1
  93. package/dist/locale/hy-am.min.mjs +1 -1
  94. package/dist/locale/hy-am.mjs +1 -1
  95. package/dist/locale/id.js +1 -1
  96. package/dist/locale/id.min.js +1 -1
  97. package/dist/locale/id.min.mjs +1 -1
  98. package/dist/locale/id.mjs +1 -1
  99. package/dist/locale/it.js +1 -1
  100. package/dist/locale/it.min.js +1 -1
  101. package/dist/locale/it.min.mjs +1 -1
  102. package/dist/locale/it.mjs +1 -1
  103. package/dist/locale/ja.js +1 -1
  104. package/dist/locale/ja.min.js +1 -1
  105. package/dist/locale/ja.min.mjs +1 -1
  106. package/dist/locale/ja.mjs +1 -1
  107. package/dist/locale/kk.js +1 -1
  108. package/dist/locale/kk.min.js +1 -1
  109. package/dist/locale/kk.min.mjs +1 -1
  110. package/dist/locale/kk.mjs +1 -1
  111. package/dist/locale/km.js +1 -1
  112. package/dist/locale/km.min.js +1 -1
  113. package/dist/locale/km.min.mjs +1 -1
  114. package/dist/locale/km.mjs +1 -1
  115. package/dist/locale/ko.js +1 -1
  116. package/dist/locale/ko.min.js +1 -1
  117. package/dist/locale/ko.min.mjs +1 -1
  118. package/dist/locale/ko.mjs +1 -1
  119. package/dist/locale/ku.js +1 -1
  120. package/dist/locale/ku.min.js +1 -1
  121. package/dist/locale/ku.min.mjs +1 -1
  122. package/dist/locale/ku.mjs +1 -1
  123. package/dist/locale/ky.js +1 -1
  124. package/dist/locale/ky.min.js +1 -1
  125. package/dist/locale/ky.min.mjs +1 -1
  126. package/dist/locale/ky.mjs +1 -1
  127. package/dist/locale/lt.js +1 -1
  128. package/dist/locale/lt.min.js +1 -1
  129. package/dist/locale/lt.min.mjs +1 -1
  130. package/dist/locale/lt.mjs +1 -1
  131. package/dist/locale/lv.js +1 -1
  132. package/dist/locale/lv.min.js +1 -1
  133. package/dist/locale/lv.min.mjs +1 -1
  134. package/dist/locale/lv.mjs +1 -1
  135. package/dist/locale/mg.js +1 -1
  136. package/dist/locale/mg.min.js +1 -1
  137. package/dist/locale/mg.min.mjs +1 -1
  138. package/dist/locale/mg.mjs +1 -1
  139. package/dist/locale/mn.js +1 -1
  140. package/dist/locale/mn.min.js +1 -1
  141. package/dist/locale/mn.min.mjs +1 -1
  142. package/dist/locale/mn.mjs +1 -1
  143. package/dist/locale/nb-no.js +1 -1
  144. package/dist/locale/nb-no.min.js +1 -1
  145. package/dist/locale/nb-no.min.mjs +1 -1
  146. package/dist/locale/nb-no.mjs +1 -1
  147. package/dist/locale/nl.js +1 -1
  148. package/dist/locale/nl.min.js +1 -1
  149. package/dist/locale/nl.min.mjs +1 -1
  150. package/dist/locale/nl.mjs +1 -1
  151. package/dist/locale/pa.js +1 -1
  152. package/dist/locale/pa.min.js +1 -1
  153. package/dist/locale/pa.min.mjs +1 -1
  154. package/dist/locale/pa.mjs +1 -1
  155. package/dist/locale/pl.js +1 -1
  156. package/dist/locale/pl.min.js +1 -1
  157. package/dist/locale/pl.min.mjs +1 -1
  158. package/dist/locale/pl.mjs +1 -1
  159. package/dist/locale/pt-br.js +1 -1
  160. package/dist/locale/pt-br.min.js +1 -1
  161. package/dist/locale/pt-br.min.mjs +1 -1
  162. package/dist/locale/pt-br.mjs +1 -1
  163. package/dist/locale/pt.js +1 -1
  164. package/dist/locale/pt.min.js +1 -1
  165. package/dist/locale/pt.min.mjs +1 -1
  166. package/dist/locale/pt.mjs +1 -1
  167. package/dist/locale/ro.js +1 -1
  168. package/dist/locale/ro.min.js +1 -1
  169. package/dist/locale/ro.min.mjs +1 -1
  170. package/dist/locale/ro.mjs +1 -1
  171. package/dist/locale/ru.js +1 -1
  172. package/dist/locale/ru.min.js +1 -1
  173. package/dist/locale/ru.min.mjs +1 -1
  174. package/dist/locale/ru.mjs +1 -1
  175. package/dist/locale/sk.js +1 -1
  176. package/dist/locale/sk.min.js +1 -1
  177. package/dist/locale/sk.min.mjs +1 -1
  178. package/dist/locale/sk.mjs +1 -1
  179. package/dist/locale/sl.js +1 -1
  180. package/dist/locale/sl.min.js +1 -1
  181. package/dist/locale/sl.min.mjs +1 -1
  182. package/dist/locale/sl.mjs +1 -1
  183. package/dist/locale/sr.js +1 -1
  184. package/dist/locale/sr.min.js +1 -1
  185. package/dist/locale/sr.min.mjs +1 -1
  186. package/dist/locale/sr.mjs +1 -1
  187. package/dist/locale/sv.js +1 -1
  188. package/dist/locale/sv.min.js +1 -1
  189. package/dist/locale/sv.min.mjs +1 -1
  190. package/dist/locale/sv.mjs +1 -1
  191. package/dist/locale/ta.js +1 -1
  192. package/dist/locale/ta.min.js +1 -1
  193. package/dist/locale/ta.min.mjs +1 -1
  194. package/dist/locale/ta.mjs +1 -1
  195. package/dist/locale/th.js +1 -1
  196. package/dist/locale/th.min.js +1 -1
  197. package/dist/locale/th.min.mjs +1 -1
  198. package/dist/locale/th.mjs +1 -1
  199. package/dist/locale/tk.js +1 -1
  200. package/dist/locale/tk.min.js +1 -1
  201. package/dist/locale/tk.min.mjs +1 -1
  202. package/dist/locale/tk.mjs +1 -1
  203. package/dist/locale/tr.js +1 -1
  204. package/dist/locale/tr.min.js +1 -1
  205. package/dist/locale/tr.min.mjs +1 -1
  206. package/dist/locale/tr.mjs +1 -1
  207. package/dist/locale/ug-cn.js +1 -1
  208. package/dist/locale/ug-cn.min.js +1 -1
  209. package/dist/locale/ug-cn.min.mjs +1 -1
  210. package/dist/locale/ug-cn.mjs +1 -1
  211. package/dist/locale/uk.js +1 -1
  212. package/dist/locale/uk.min.js +1 -1
  213. package/dist/locale/uk.min.mjs +1 -1
  214. package/dist/locale/uk.mjs +1 -1
  215. package/dist/locale/uz-uz.js +1 -1
  216. package/dist/locale/uz-uz.min.js +1 -1
  217. package/dist/locale/uz-uz.min.mjs +1 -1
  218. package/dist/locale/uz-uz.mjs +1 -1
  219. package/dist/locale/vi.js +1 -1
  220. package/dist/locale/vi.min.js +1 -1
  221. package/dist/locale/vi.min.mjs +1 -1
  222. package/dist/locale/vi.mjs +1 -1
  223. package/dist/locale/zh-cn.js +1 -1
  224. package/dist/locale/zh-cn.min.js +1 -1
  225. package/dist/locale/zh-cn.min.mjs +1 -1
  226. package/dist/locale/zh-cn.mjs +1 -1
  227. package/dist/locale/zh-tw.js +1 -1
  228. package/dist/locale/zh-tw.min.js +1 -1
  229. package/dist/locale/zh-tw.min.mjs +1 -1
  230. package/dist/locale/zh-tw.mjs +1 -1
  231. package/es/components/autocomplete/index.d.ts +4 -12
  232. package/es/components/autocomplete/src/autocomplete.d.ts +1 -3
  233. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  234. package/es/components/autocomplete/src/autocomplete.vue.d.ts +4 -12
  235. package/es/components/index.mjs +3 -3
  236. package/es/components/message-box/src/message-box.type.d.ts +2 -0
  237. package/es/components/message-box/src/messageBox.mjs +20 -3
  238. package/es/components/message-box/src/messageBox.mjs.map +1 -1
  239. package/es/components/radio/index.mjs +4 -4
  240. package/es/components/radio/src/radio-button.mjs +1 -1
  241. package/es/components/radio/src/radio-group.mjs +68 -36
  242. package/es/components/radio/src/radio-group.mjs.map +1 -1
  243. package/es/components/radio/src/radio-group2.mjs +36 -68
  244. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  245. package/es/components/radio/src/radio.mjs +71 -30
  246. package/es/components/radio/src/radio.mjs.map +1 -1
  247. package/es/components/radio/src/radio2.mjs +30 -71
  248. package/es/components/radio/src/radio2.mjs.map +1 -1
  249. package/es/components/rate/index.mjs +2 -2
  250. package/es/components/rate/src/rate.mjs +256 -98
  251. package/es/components/rate/src/rate.mjs.map +1 -1
  252. package/es/components/rate/src/rate2.mjs +98 -256
  253. package/es/components/rate/src/rate2.mjs.map +1 -1
  254. package/es/components/table/src/table/style-helper.mjs +1 -1
  255. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  256. package/es/components/table-v2/src/composables/use-styles.d.ts +1 -0
  257. package/es/components/table-v2/src/composables/use-styles.mjs +2 -1
  258. package/es/components/table-v2/src/composables/use-styles.mjs.map +1 -1
  259. package/es/components/table-v2/src/use-table.mjs +3 -2
  260. package/es/components/table-v2/src/use-table.mjs.map +1 -1
  261. package/es/components/time-picker/src/common/picker.mjs +2 -0
  262. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  263. package/es/index.mjs +3 -3
  264. package/es/version.d.ts +1 -1
  265. package/es/version.mjs +1 -1
  266. package/es/version.mjs.map +1 -1
  267. package/lib/components/autocomplete/index.d.ts +4 -12
  268. package/lib/components/autocomplete/src/autocomplete.d.ts +1 -3
  269. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  270. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +4 -12
  271. package/lib/components/index.js +3 -3
  272. package/lib/components/message-box/src/message-box.type.d.ts +2 -0
  273. package/lib/components/message-box/src/messageBox.js +18 -1
  274. package/lib/components/message-box/src/messageBox.js.map +1 -1
  275. package/lib/components/radio/index.js +4 -4
  276. package/lib/components/radio/src/radio-button.js +1 -1
  277. package/lib/components/radio/src/radio-group.js +68 -37
  278. package/lib/components/radio/src/radio-group.js.map +1 -1
  279. package/lib/components/radio/src/radio-group2.js +37 -68
  280. package/lib/components/radio/src/radio-group2.js.map +1 -1
  281. package/lib/components/radio/src/radio.js +71 -32
  282. package/lib/components/radio/src/radio.js.map +1 -1
  283. package/lib/components/radio/src/radio2.js +32 -71
  284. package/lib/components/radio/src/radio2.js.map +1 -1
  285. package/lib/components/rate/index.js +2 -2
  286. package/lib/components/rate/src/rate.js +255 -98
  287. package/lib/components/rate/src/rate.js.map +1 -1
  288. package/lib/components/rate/src/rate2.js +98 -255
  289. package/lib/components/rate/src/rate2.js.map +1 -1
  290. package/lib/components/table/src/table/style-helper.js +1 -1
  291. package/lib/components/table/src/table/style-helper.js.map +1 -1
  292. package/lib/components/table-v2/src/composables/use-styles.d.ts +1 -0
  293. package/lib/components/table-v2/src/composables/use-styles.js +2 -1
  294. package/lib/components/table-v2/src/composables/use-styles.js.map +1 -1
  295. package/lib/components/table-v2/src/use-table.js +3 -2
  296. package/lib/components/table-v2/src/use-table.js.map +1 -1
  297. package/lib/components/time-picker/src/common/picker.js +2 -0
  298. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  299. package/lib/index.js +3 -3
  300. package/lib/version.d.ts +1 -1
  301. package/lib/version.js +1 -1
  302. package/lib/version.js.map +1 -1
  303. package/package.json +2 -2
  304. package/web-types.json +1 -1
@@ -1,36 +1,77 @@
1
- import '../../../utils/index.mjs';
2
- import '../../../constants/index.mjs';
1
+ import { defineComponent, nextTick, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withDirectives, isRef, vModelRadio, withModifiers, renderSlot, createTextVNode, toDisplayString } from 'vue';
3
2
  import '../../../hooks/index.mjs';
4
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
5
- import { useSizeProp } from '../../../hooks/use-common-props/index.mjs';
6
- import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
7
- import { isString } from '@vue/shared';
8
- import { isNumber, isBoolean } from '@vueuse/core';
3
+ import { radioProps, radioEmits } from './radio2.mjs';
4
+ import { useRadio } from './use-radio.mjs';
5
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
7
 
10
- const radioPropsBase = buildProps({
11
- size: useSizeProp,
12
- disabled: Boolean,
13
- label: {
14
- type: [String, Number, Boolean],
15
- default: ""
16
- }
8
+ const _hoisted_1 = ["value", "name", "disabled"];
9
+ const __default__ = defineComponent({
10
+ name: "ElRadio"
17
11
  });
18
- const radioProps = buildProps({
19
- ...radioPropsBase,
20
- modelValue: {
21
- type: [String, Number, Boolean],
22
- default: ""
23
- },
24
- name: {
25
- type: String,
26
- default: ""
27
- },
28
- border: Boolean
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ ...__default__,
14
+ props: radioProps,
15
+ emits: radioEmits,
16
+ setup(__props, { emit }) {
17
+ const props = __props;
18
+ const ns = useNamespace("radio");
19
+ const { radioRef, radioGroup, focus, size, disabled, modelValue } = useRadio(props, emit);
20
+ function handleChange() {
21
+ nextTick(() => emit("change", modelValue.value));
22
+ }
23
+ return (_ctx, _cache) => {
24
+ var _a;
25
+ return openBlock(), createElementBlock("label", {
26
+ class: normalizeClass([
27
+ unref(ns).b(),
28
+ unref(ns).is("disabled", unref(disabled)),
29
+ unref(ns).is("focus", unref(focus)),
30
+ unref(ns).is("bordered", _ctx.border),
31
+ unref(ns).is("checked", unref(modelValue) === _ctx.label),
32
+ unref(ns).m(unref(size))
33
+ ])
34
+ }, [
35
+ createElementVNode("span", {
36
+ class: normalizeClass([
37
+ unref(ns).e("input"),
38
+ unref(ns).is("disabled", unref(disabled)),
39
+ unref(ns).is("checked", unref(modelValue) === _ctx.label)
40
+ ])
41
+ }, [
42
+ withDirectives(createElementVNode("input", {
43
+ ref_key: "radioRef",
44
+ ref: radioRef,
45
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),
46
+ class: normalizeClass(unref(ns).e("original")),
47
+ value: _ctx.label,
48
+ name: _ctx.name || ((_a = unref(radioGroup)) == null ? void 0 : _a.name),
49
+ disabled: unref(disabled),
50
+ type: "radio",
51
+ onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true),
52
+ onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false),
53
+ onChange: handleChange
54
+ }, null, 42, _hoisted_1), [
55
+ [vModelRadio, unref(modelValue)]
56
+ ]),
57
+ createElementVNode("span", {
58
+ class: normalizeClass(unref(ns).e("inner"))
59
+ }, null, 2)
60
+ ], 2),
61
+ createElementVNode("span", {
62
+ class: normalizeClass(unref(ns).e("label")),
63
+ onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
64
+ }, ["stop"]))
65
+ }, [
66
+ renderSlot(_ctx.$slots, "default", {}, () => [
67
+ createTextVNode(toDisplayString(_ctx.label), 1)
68
+ ])
69
+ ], 34)
70
+ ], 2);
71
+ };
72
+ }
29
73
  });
30
- const radioEmits = {
31
- [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val),
32
- [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val)
33
- };
74
+ var Radio = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);
34
75
 
35
- export { radioEmits, radioProps, radioPropsBase };
76
+ export { Radio as default };
36
77
  //# sourceMappingURL=radio.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.mjs","sources":["../../../../../../packages/components/radio/src/radio.ts"],"sourcesContent":["import { buildProps, isBoolean, isNumber, isString } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useSizeProp } from '@element-plus/hooks'\nimport type { ExtractPropTypes } from 'vue'\nimport type Radio from './radio.vue'\n\nexport const radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: '',\n },\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)\n\nexport const radioEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n [CHANGE_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n}\n\nexport type RadioProps = ExtractPropTypes<typeof radioProps>\nexport type RadioEmits = typeof radioEmits\nexport type RadioInstance = InstanceType<typeof Radio>\n"],"names":[],"mappings":";;;;;;;;;AAGY,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,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AAC3E;;;;"}
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 >\n <span\n :class=\"[\n ns.e('input'),\n ns.is('disabled', disabled),\n ns.is('checked', modelValue === label),\n ]\"\n >\n <input\n ref=\"radioRef\"\n v-model=\"modelValue\"\n :class=\"ns.e('original')\"\n :value=\"label\"\n :name=\"name || radioGroup?.name\"\n :disabled=\"disabled\"\n type=\"radio\"\n @focus=\"focus = true\"\n @blur=\"focus = false\"\n @change=\"handleChange\"\n />\n <span :class=\"ns.e('inner')\" />\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\" setup>\nimport { nextTick } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { radioEmits, radioProps } from './radio'\nimport { useRadio } from './use-radio'\n\ndefineOptions({\n name: 'ElRadio',\n})\n\nconst props = defineProps(radioProps)\nconst emit = defineEmits(radioEmits)\n\nconst ns = useNamespace('radio')\nconst { radioRef, radioGroup, focus, size, disabled, modelValue } = useRadio(\n props,\n emit\n)\n\nfunction handleChange() {\n nextTick(() => emit('change', modelValue.value))\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;mCA8Cc,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAC/B,IAAM,MAAA,EAAE,UAAU,UAAY,EAAA,KAAA,EAAO,MAAM,QAAU,EAAA,UAAA,EAAA,GAAe,QAClE,CAAA,KAAA,EACA,IACF,CAAA,CAAA;AAEA,IAAwB,SAAA,YAAA,GAAA;AACtB,MAAA,QAAA,CAAS,MAAM,IAAA,CAAK,QAAU,EAAA,UAAA,CAAW,KAAK,CAAC,CAAA,CAAA;AAAA,KACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,77 +1,36 @@
1
- import { defineComponent, nextTick, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withDirectives, isRef, vModelRadio, withModifiers, renderSlot, createTextVNode, toDisplayString } from 'vue';
1
+ import '../../../utils/index.mjs';
2
+ import '../../../constants/index.mjs';
2
3
  import '../../../hooks/index.mjs';
3
- import { radioProps, radioEmits } from './radio.mjs';
4
- import { useRadio } from './use-radio.mjs';
5
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
4
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
5
+ import { useSizeProp } from '../../../hooks/use-common-props/index.mjs';
6
+ import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
7
+ import { isString } from '@vue/shared';
8
+ import { isNumber, isBoolean } from '@vueuse/core';
7
9
 
8
- const _hoisted_1 = ["value", "name", "disabled"];
9
- const __default__ = defineComponent({
10
- name: "ElRadio"
11
- });
12
- const _sfc_main = /* @__PURE__ */ defineComponent({
13
- ...__default__,
14
- props: radioProps,
15
- emits: radioEmits,
16
- setup(__props, { emit }) {
17
- const props = __props;
18
- const ns = useNamespace("radio");
19
- const { radioRef, radioGroup, focus, size, disabled, modelValue } = useRadio(props, emit);
20
- function handleChange() {
21
- nextTick(() => emit("change", modelValue.value));
22
- }
23
- return (_ctx, _cache) => {
24
- var _a;
25
- return openBlock(), createElementBlock("label", {
26
- class: normalizeClass([
27
- unref(ns).b(),
28
- unref(ns).is("disabled", unref(disabled)),
29
- unref(ns).is("focus", unref(focus)),
30
- unref(ns).is("bordered", _ctx.border),
31
- unref(ns).is("checked", unref(modelValue) === _ctx.label),
32
- unref(ns).m(unref(size))
33
- ])
34
- }, [
35
- createElementVNode("span", {
36
- class: normalizeClass([
37
- unref(ns).e("input"),
38
- unref(ns).is("disabled", unref(disabled)),
39
- unref(ns).is("checked", unref(modelValue) === _ctx.label)
40
- ])
41
- }, [
42
- withDirectives(createElementVNode("input", {
43
- ref_key: "radioRef",
44
- ref: radioRef,
45
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),
46
- class: normalizeClass(unref(ns).e("original")),
47
- value: _ctx.label,
48
- name: _ctx.name || ((_a = unref(radioGroup)) == null ? void 0 : _a.name),
49
- disabled: unref(disabled),
50
- type: "radio",
51
- onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true),
52
- onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false),
53
- onChange: handleChange
54
- }, null, 42, _hoisted_1), [
55
- [vModelRadio, unref(modelValue)]
56
- ]),
57
- createElementVNode("span", {
58
- class: normalizeClass(unref(ns).e("inner"))
59
- }, null, 2)
60
- ], 2),
61
- createElementVNode("span", {
62
- class: normalizeClass(unref(ns).e("label")),
63
- onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
64
- }, ["stop"]))
65
- }, [
66
- renderSlot(_ctx.$slots, "default", {}, () => [
67
- createTextVNode(toDisplayString(_ctx.label), 1)
68
- ])
69
- ], 34)
70
- ], 2);
71
- };
10
+ const radioPropsBase = buildProps({
11
+ size: useSizeProp,
12
+ disabled: Boolean,
13
+ label: {
14
+ type: [String, Number, Boolean],
15
+ default: ""
72
16
  }
73
17
  });
74
- var Radio = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);
18
+ const radioProps = buildProps({
19
+ ...radioPropsBase,
20
+ modelValue: {
21
+ type: [String, Number, Boolean],
22
+ default: ""
23
+ },
24
+ name: {
25
+ type: String,
26
+ default: ""
27
+ },
28
+ border: Boolean
29
+ });
30
+ const radioEmits = {
31
+ [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val),
32
+ [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val)
33
+ };
75
34
 
76
- export { Radio as default };
35
+ export { radioEmits, radioProps, radioPropsBase };
77
36
  //# 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 >\n <span\n :class=\"[\n ns.e('input'),\n ns.is('disabled', disabled),\n ns.is('checked', modelValue === label),\n ]\"\n >\n <input\n ref=\"radioRef\"\n v-model=\"modelValue\"\n :class=\"ns.e('original')\"\n :value=\"label\"\n :name=\"name || radioGroup?.name\"\n :disabled=\"disabled\"\n type=\"radio\"\n @focus=\"focus = true\"\n @blur=\"focus = false\"\n @change=\"handleChange\"\n />\n <span :class=\"ns.e('inner')\" />\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\" setup>\nimport { nextTick } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { radioEmits, radioProps } from './radio'\nimport { useRadio } from './use-radio'\n\ndefineOptions({\n name: 'ElRadio',\n})\n\nconst props = defineProps(radioProps)\nconst emit = defineEmits(radioEmits)\n\nconst ns = useNamespace('radio')\nconst { radioRef, radioGroup, focus, size, disabled, modelValue } = useRadio(\n props,\n emit\n)\n\nfunction handleChange() {\n nextTick(() => emit('change', modelValue.value))\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;mCA8Cc,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAC/B,IAAM,MAAA,EAAE,UAAU,UAAY,EAAA,KAAA,EAAO,MAAM,QAAU,EAAA,UAAA,EAAA,GAAe,QAClE,CAAA,KAAA,EACA,IACF,CAAA,CAAA;AAEA,IAAwB,SAAA,YAAA,GAAA;AACtB,MAAA,QAAA,CAAS,MAAM,IAAA,CAAK,QAAU,EAAA,UAAA,CAAW,KAAK,CAAC,CAAA,CAAA;AAAA,KACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"radio2.mjs","sources":["../../../../../../packages/components/radio/src/radio.ts"],"sourcesContent":["import { buildProps, isBoolean, isNumber, isString } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useSizeProp } from '@element-plus/hooks'\nimport type { ExtractPropTypes } from 'vue'\nimport type Radio from './radio.vue'\n\nexport const radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: '',\n },\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)\n\nexport const radioEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n [CHANGE_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n}\n\nexport type RadioProps = ExtractPropTypes<typeof radioProps>\nexport type RadioEmits = typeof radioEmits\nexport type RadioInstance = InstanceType<typeof Radio>\n"],"names":[],"mappings":";;;;;;;;;AAGY,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,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AAC3E;;;;"}
@@ -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,105 +1,263 @@
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 { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
5
- import { mutable } from '../../../utils/typescript.mjs';
6
- import { iconPropType } from '../../../utils/vue/icon.mjs';
7
- import { isValidComponentSize } from '../../../utils/vue/validator.mjs';
8
- import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
9
- import { isNumber } from '@vueuse/core';
4
+ import '../../../tokens/index.mjs';
5
+ import { ElIcon } from '../../icon/index.mjs';
6
+ import '../../../hooks/index.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 '../../../tokens/form.mjs';
11
+ import { useSize } from '../../../hooks/use-common-props/index.mjs';
12
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
13
+ import { useFormItemInputId } from '../../../hooks/use-form-item/index.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';
10
17
 
11
- const rateProps = buildProps({
12
- modelValue: {
13
- type: Number,
14
- default: 0
15
- },
16
- id: {
17
- type: String,
18
- default: void 0
19
- },
20
- lowThreshold: {
21
- type: Number,
22
- default: 2
23
- },
24
- highThreshold: {
25
- type: Number,
26
- default: 4
27
- },
28
- max: {
29
- type: Number,
30
- default: 5
31
- },
32
- colors: {
33
- type: definePropType([Array, Object]),
34
- default: () => mutable(["", "", ""])
35
- },
36
- voidColor: {
37
- type: String,
38
- default: ""
39
- },
40
- disabledVoidColor: {
41
- type: String,
42
- default: ""
43
- },
44
- icons: {
45
- type: definePropType([Array, Object]),
46
- default: () => [StarFilled, StarFilled, StarFilled]
47
- },
48
- voidIcon: {
49
- type: iconPropType,
50
- default: () => Star
51
- },
52
- disabledVoidIcon: {
53
- type: iconPropType,
54
- default: () => StarFilled
55
- },
56
- disabled: {
57
- type: Boolean
58
- },
59
- allowHalf: {
60
- type: Boolean
61
- },
62
- showText: {
63
- type: Boolean
64
- },
65
- showScore: {
66
- type: Boolean
67
- },
68
- textColor: {
69
- type: String,
70
- default: ""
71
- },
72
- texts: {
73
- type: definePropType(Array),
74
- default: () => mutable([
75
- "Extremely bad",
76
- "Disappointed",
77
- "Fair",
78
- "Satisfied",
79
- "Surprise"
80
- ])
81
- },
82
- scoreTemplate: {
83
- type: String,
84
- default: "{value}"
85
- },
86
- size: {
87
- type: String,
88
- validator: isValidComponentSize
89
- },
90
- label: {
91
- type: String,
92
- default: void 0
93
- },
94
- clearable: {
95
- type: Boolean,
96
- default: false
18
+ const _hoisted_1 = ["id", "aria-label", "aria-labelledby", "aria-valuenow", "aria-valuetext", "aria-valuemax"];
19
+ const _hoisted_2 = ["onMousemove", "onClick"];
20
+ const __default__ = defineComponent({
21
+ name: "ElRate"
22
+ });
23
+ const _sfc_main = /* @__PURE__ */ defineComponent({
24
+ ...__default__,
25
+ props: rateProps,
26
+ emits: rateEmits,
27
+ setup(__props, { expose, emit }) {
28
+ const props = __props;
29
+ function getValueFromMap(value, map) {
30
+ const isExcludedObject = (val) => isObject(val);
31
+ const matchedKeys = Object.keys(map).map((key) => +key).filter((key) => {
32
+ const val = map[key];
33
+ const excluded = isExcludedObject(val) ? val.excluded : false;
34
+ return excluded ? value < key : value <= key;
35
+ }).sort((a, b) => a - b);
36
+ const matchedValue = map[matchedKeys[0]];
37
+ return isExcludedObject(matchedValue) && matchedValue.value || matchedValue;
38
+ }
39
+ const formContext = inject(formContextKey, void 0);
40
+ const formItemContext = inject(formItemContextKey, void 0);
41
+ const rateSize = useSize();
42
+ const ns = useNamespace("rate");
43
+ const { inputId, isLabeledByFormItem } = useFormItemInputId(props, {
44
+ formItemContext
45
+ });
46
+ const currentValue = ref(props.modelValue);
47
+ const hoverIndex = ref(-1);
48
+ const pointerAtLeftHalf = ref(true);
49
+ const rateClasses = computed(() => [ns.b(), ns.m(rateSize.value)]);
50
+ const rateDisabled = computed(() => props.disabled || (formContext == null ? void 0 : formContext.disabled));
51
+ const rateStyles = computed(() => {
52
+ return ns.cssVarBlock({
53
+ "void-color": props.voidColor,
54
+ "disabled-void-color": props.disabledVoidColor,
55
+ "fill-color": activeColor.value
56
+ });
57
+ });
58
+ const text = computed(() => {
59
+ let result = "";
60
+ if (props.showScore) {
61
+ result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`);
62
+ } else if (props.showText) {
63
+ result = props.texts[Math.ceil(currentValue.value) - 1];
64
+ }
65
+ return result;
66
+ });
67
+ const valueDecimal = computed(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100);
68
+ const colorMap = computed(() => isArray(props.colors) ? {
69
+ [props.lowThreshold]: props.colors[0],
70
+ [props.highThreshold]: { value: props.colors[1], excluded: true },
71
+ [props.max]: props.colors[2]
72
+ } : props.colors);
73
+ const activeColor = computed(() => {
74
+ const color = getValueFromMap(currentValue.value, colorMap.value);
75
+ return isObject(color) ? "" : color;
76
+ });
77
+ const decimalStyle = computed(() => {
78
+ let width = "";
79
+ if (rateDisabled.value) {
80
+ width = `${valueDecimal.value}%`;
81
+ } else if (props.allowHalf) {
82
+ width = "50%";
83
+ }
84
+ return {
85
+ color: activeColor.value,
86
+ width
87
+ };
88
+ });
89
+ const componentMap = computed(() => {
90
+ let icons = isArray(props.icons) ? [...props.icons] : { ...props.icons };
91
+ icons = markRaw(icons);
92
+ return isArray(icons) ? {
93
+ [props.lowThreshold]: icons[0],
94
+ [props.highThreshold]: {
95
+ value: icons[1],
96
+ excluded: true
97
+ },
98
+ [props.max]: icons[2]
99
+ } : icons;
100
+ });
101
+ const decimalIconComponent = computed(() => getValueFromMap(props.modelValue, componentMap.value));
102
+ const voidComponent = computed(() => rateDisabled.value ? isString(props.disabledVoidIcon) ? props.disabledVoidIcon : markRaw(props.disabledVoidIcon) : isString(props.voidIcon) ? props.voidIcon : markRaw(props.voidIcon));
103
+ const activeComponent = computed(() => getValueFromMap(currentValue.value, componentMap.value));
104
+ function showDecimalIcon(item) {
105
+ const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue;
106
+ const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - 0.5 <= currentValue.value && item > currentValue.value;
107
+ return showWhenDisabled || showWhenAllowHalf;
108
+ }
109
+ function emitValue(value) {
110
+ if (props.clearable && value === props.modelValue) {
111
+ value = 0;
112
+ }
113
+ emit(UPDATE_MODEL_EVENT, value);
114
+ if (props.modelValue !== value) {
115
+ emit("change", value);
116
+ }
117
+ }
118
+ function selectValue(value) {
119
+ if (rateDisabled.value) {
120
+ return;
121
+ }
122
+ if (props.allowHalf && pointerAtLeftHalf.value) {
123
+ emitValue(currentValue.value);
124
+ } else {
125
+ emitValue(value);
126
+ }
127
+ }
128
+ function handleKey(e) {
129
+ if (rateDisabled.value) {
130
+ return;
131
+ }
132
+ let _currentValue = currentValue.value;
133
+ const code = e.code;
134
+ if (code === EVENT_CODE.up || code === EVENT_CODE.right) {
135
+ if (props.allowHalf) {
136
+ _currentValue += 0.5;
137
+ } else {
138
+ _currentValue += 1;
139
+ }
140
+ e.stopPropagation();
141
+ e.preventDefault();
142
+ } else if (code === EVENT_CODE.left || code === EVENT_CODE.down) {
143
+ if (props.allowHalf) {
144
+ _currentValue -= 0.5;
145
+ } else {
146
+ _currentValue -= 1;
147
+ }
148
+ e.stopPropagation();
149
+ e.preventDefault();
150
+ }
151
+ _currentValue = _currentValue < 0 ? 0 : _currentValue;
152
+ _currentValue = _currentValue > props.max ? props.max : _currentValue;
153
+ emit(UPDATE_MODEL_EVENT, _currentValue);
154
+ emit("change", _currentValue);
155
+ return _currentValue;
156
+ }
157
+ function setCurrentValue(value, event) {
158
+ if (rateDisabled.value) {
159
+ return;
160
+ }
161
+ if (props.allowHalf) {
162
+ let target = event.target;
163
+ if (hasClass(target, ns.e("item"))) {
164
+ target = target.querySelector(`.${ns.e("icon")}`);
165
+ }
166
+ if (target.clientWidth === 0 || hasClass(target, ns.e("decimal"))) {
167
+ target = target.parentNode;
168
+ }
169
+ pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth;
170
+ currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value;
171
+ } else {
172
+ currentValue.value = value;
173
+ }
174
+ hoverIndex.value = value;
175
+ }
176
+ function resetCurrentValue() {
177
+ if (rateDisabled.value) {
178
+ return;
179
+ }
180
+ if (props.allowHalf) {
181
+ pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
182
+ }
183
+ currentValue.value = props.modelValue;
184
+ hoverIndex.value = -1;
185
+ }
186
+ watch(() => props.modelValue, (val) => {
187
+ currentValue.value = val;
188
+ pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
189
+ });
190
+ if (!props.modelValue) {
191
+ emit(UPDATE_MODEL_EVENT, 0);
192
+ }
193
+ expose({
194
+ setCurrentValue,
195
+ resetCurrentValue
196
+ });
197
+ return (_ctx, _cache) => {
198
+ var _a;
199
+ return openBlock(), createElementBlock("div", {
200
+ id: unref(inputId),
201
+ class: normalizeClass([unref(rateClasses), unref(ns).is("disabled", unref(rateDisabled))]),
202
+ role: "slider",
203
+ "aria-label": !unref(isLabeledByFormItem) ? _ctx.label || "rating" : void 0,
204
+ "aria-labelledby": unref(isLabeledByFormItem) ? (_a = unref(formItemContext)) == null ? void 0 : _a.labelId : void 0,
205
+ "aria-valuenow": currentValue.value,
206
+ "aria-valuetext": unref(text) || void 0,
207
+ "aria-valuemin": "0",
208
+ "aria-valuemax": _ctx.max,
209
+ tabindex: "0",
210
+ style: normalizeStyle(unref(rateStyles)),
211
+ onKeydown: handleKey
212
+ }, [
213
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.max, (item, key) => {
214
+ return openBlock(), createElementBlock("span", {
215
+ key,
216
+ class: normalizeClass(unref(ns).e("item")),
217
+ onMousemove: ($event) => setCurrentValue(item, $event),
218
+ onMouseleave: resetCurrentValue,
219
+ onClick: ($event) => selectValue(item)
220
+ }, [
221
+ createVNode(unref(ElIcon), {
222
+ class: normalizeClass([
223
+ unref(ns).e("icon"),
224
+ { hover: hoverIndex.value === item },
225
+ unref(ns).is("active", item <= currentValue.value)
226
+ ])
227
+ }, {
228
+ default: withCtx(() => [
229
+ !showDecimalIcon(item) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
230
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent(unref(activeComponent)), null, null, 512)), [
231
+ [vShow, item <= currentValue.value]
232
+ ]),
233
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent(unref(voidComponent)), null, null, 512)), [
234
+ [vShow, !(item <= currentValue.value)]
235
+ ])
236
+ ], 64)) : createCommentVNode("v-if", true),
237
+ showDecimalIcon(item) ? (openBlock(), createBlock(unref(ElIcon), {
238
+ key: 1,
239
+ style: normalizeStyle(unref(decimalStyle)),
240
+ class: normalizeClass([unref(ns).e("icon"), unref(ns).e("decimal")])
241
+ }, {
242
+ default: withCtx(() => [
243
+ (openBlock(), createBlock(resolveDynamicComponent(unref(decimalIconComponent))))
244
+ ]),
245
+ _: 1
246
+ }, 8, ["style", "class"])) : createCommentVNode("v-if", true)
247
+ ]),
248
+ _: 2
249
+ }, 1032, ["class"])
250
+ ], 42, _hoisted_2);
251
+ }), 128)),
252
+ _ctx.showText || _ctx.showScore ? (openBlock(), createElementBlock("span", {
253
+ key: 0,
254
+ class: normalizeClass(unref(ns).e("text"))
255
+ }, toDisplayString(unref(text)), 3)) : createCommentVNode("v-if", true)
256
+ ], 46, _hoisted_1);
257
+ };
97
258
  }
98
259
  });
99
- const rateEmits = {
100
- [CHANGE_EVENT]: (value) => isNumber(value),
101
- [UPDATE_MODEL_EVENT]: (value) => isNumber(value)
102
- };
260
+ var Rate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/rate/src/rate.vue"]]);
103
261
 
104
- export { rateEmits, rateProps };
262
+ export { Rate as default };
105
263
  //# sourceMappingURL=rate.mjs.map