@element-plus/nightly 0.0.20240527 → 0.0.20240528

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 (327) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +85 -54
  3. package/dist/index.full.min.js +9 -9
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +9 -9
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +85 -54
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hr.js +1 -1
  93. package/dist/locale/hr.min.js +1 -1
  94. package/dist/locale/hr.min.mjs +1 -1
  95. package/dist/locale/hr.mjs +1 -1
  96. package/dist/locale/hu.js +1 -1
  97. package/dist/locale/hu.min.js +1 -1
  98. package/dist/locale/hu.min.mjs +1 -1
  99. package/dist/locale/hu.mjs +1 -1
  100. package/dist/locale/hy-am.js +1 -1
  101. package/dist/locale/hy-am.min.js +1 -1
  102. package/dist/locale/hy-am.min.mjs +1 -1
  103. package/dist/locale/hy-am.mjs +1 -1
  104. package/dist/locale/id.js +1 -1
  105. package/dist/locale/id.min.js +1 -1
  106. package/dist/locale/id.min.mjs +1 -1
  107. package/dist/locale/id.mjs +1 -1
  108. package/dist/locale/it.js +1 -1
  109. package/dist/locale/it.min.js +1 -1
  110. package/dist/locale/it.min.mjs +1 -1
  111. package/dist/locale/it.mjs +1 -1
  112. package/dist/locale/ja.js +1 -1
  113. package/dist/locale/ja.min.js +1 -1
  114. package/dist/locale/ja.min.mjs +1 -1
  115. package/dist/locale/ja.mjs +1 -1
  116. package/dist/locale/kk.js +1 -1
  117. package/dist/locale/kk.min.js +1 -1
  118. package/dist/locale/kk.min.mjs +1 -1
  119. package/dist/locale/kk.mjs +1 -1
  120. package/dist/locale/km.js +1 -1
  121. package/dist/locale/km.min.js +1 -1
  122. package/dist/locale/km.min.mjs +1 -1
  123. package/dist/locale/km.mjs +1 -1
  124. package/dist/locale/ko.js +1 -1
  125. package/dist/locale/ko.min.js +1 -1
  126. package/dist/locale/ko.min.mjs +1 -1
  127. package/dist/locale/ko.mjs +1 -1
  128. package/dist/locale/ku.js +1 -1
  129. package/dist/locale/ku.min.js +1 -1
  130. package/dist/locale/ku.min.mjs +1 -1
  131. package/dist/locale/ku.mjs +1 -1
  132. package/dist/locale/ky.js +1 -1
  133. package/dist/locale/ky.min.js +1 -1
  134. package/dist/locale/ky.min.mjs +1 -1
  135. package/dist/locale/ky.mjs +1 -1
  136. package/dist/locale/lt.js +1 -1
  137. package/dist/locale/lt.min.js +1 -1
  138. package/dist/locale/lt.min.mjs +1 -1
  139. package/dist/locale/lt.mjs +1 -1
  140. package/dist/locale/lv.js +1 -1
  141. package/dist/locale/lv.min.js +1 -1
  142. package/dist/locale/lv.min.mjs +1 -1
  143. package/dist/locale/lv.mjs +1 -1
  144. package/dist/locale/mg.js +1 -1
  145. package/dist/locale/mg.min.js +1 -1
  146. package/dist/locale/mg.min.mjs +1 -1
  147. package/dist/locale/mg.mjs +1 -1
  148. package/dist/locale/mn.js +1 -1
  149. package/dist/locale/mn.min.js +1 -1
  150. package/dist/locale/mn.min.mjs +1 -1
  151. package/dist/locale/mn.mjs +1 -1
  152. package/dist/locale/nb-no.js +1 -1
  153. package/dist/locale/nb-no.min.js +1 -1
  154. package/dist/locale/nb-no.min.mjs +1 -1
  155. package/dist/locale/nb-no.mjs +1 -1
  156. package/dist/locale/nl.js +1 -1
  157. package/dist/locale/nl.min.js +1 -1
  158. package/dist/locale/nl.min.mjs +1 -1
  159. package/dist/locale/nl.mjs +1 -1
  160. package/dist/locale/pa.js +1 -1
  161. package/dist/locale/pa.min.js +1 -1
  162. package/dist/locale/pa.min.mjs +1 -1
  163. package/dist/locale/pa.mjs +1 -1
  164. package/dist/locale/pl.js +1 -1
  165. package/dist/locale/pl.min.js +1 -1
  166. package/dist/locale/pl.min.mjs +1 -1
  167. package/dist/locale/pl.mjs +1 -1
  168. package/dist/locale/pt-br.js +1 -1
  169. package/dist/locale/pt-br.min.js +1 -1
  170. package/dist/locale/pt-br.min.mjs +1 -1
  171. package/dist/locale/pt-br.mjs +1 -1
  172. package/dist/locale/pt.js +1 -1
  173. package/dist/locale/pt.min.js +1 -1
  174. package/dist/locale/pt.min.mjs +1 -1
  175. package/dist/locale/pt.mjs +1 -1
  176. package/dist/locale/ro.js +1 -1
  177. package/dist/locale/ro.min.js +1 -1
  178. package/dist/locale/ro.min.mjs +1 -1
  179. package/dist/locale/ro.mjs +1 -1
  180. package/dist/locale/ru.js +1 -1
  181. package/dist/locale/ru.min.js +1 -1
  182. package/dist/locale/ru.min.mjs +1 -1
  183. package/dist/locale/ru.mjs +1 -1
  184. package/dist/locale/sk.js +1 -1
  185. package/dist/locale/sk.min.js +1 -1
  186. package/dist/locale/sk.min.mjs +1 -1
  187. package/dist/locale/sk.mjs +1 -1
  188. package/dist/locale/sl.js +1 -1
  189. package/dist/locale/sl.min.js +1 -1
  190. package/dist/locale/sl.min.mjs +1 -1
  191. package/dist/locale/sl.mjs +1 -1
  192. package/dist/locale/sr.js +1 -1
  193. package/dist/locale/sr.min.js +1 -1
  194. package/dist/locale/sr.min.mjs +1 -1
  195. package/dist/locale/sr.mjs +1 -1
  196. package/dist/locale/sv.js +1 -1
  197. package/dist/locale/sv.min.js +1 -1
  198. package/dist/locale/sv.min.mjs +1 -1
  199. package/dist/locale/sv.mjs +1 -1
  200. package/dist/locale/sw.js +1 -1
  201. package/dist/locale/sw.min.js +1 -1
  202. package/dist/locale/sw.min.mjs +1 -1
  203. package/dist/locale/sw.mjs +1 -1
  204. package/dist/locale/ta.js +1 -1
  205. package/dist/locale/ta.min.js +1 -1
  206. package/dist/locale/ta.min.mjs +1 -1
  207. package/dist/locale/ta.mjs +1 -1
  208. package/dist/locale/th.js +1 -1
  209. package/dist/locale/th.min.js +1 -1
  210. package/dist/locale/th.min.mjs +1 -1
  211. package/dist/locale/th.mjs +1 -1
  212. package/dist/locale/tk.js +1 -1
  213. package/dist/locale/tk.min.js +1 -1
  214. package/dist/locale/tk.min.mjs +1 -1
  215. package/dist/locale/tk.mjs +1 -1
  216. package/dist/locale/tr.js +1 -1
  217. package/dist/locale/tr.min.js +1 -1
  218. package/dist/locale/tr.min.mjs +1 -1
  219. package/dist/locale/tr.mjs +1 -1
  220. package/dist/locale/ug-cn.js +1 -1
  221. package/dist/locale/ug-cn.min.js +1 -1
  222. package/dist/locale/ug-cn.min.mjs +1 -1
  223. package/dist/locale/ug-cn.mjs +1 -1
  224. package/dist/locale/uk.js +1 -1
  225. package/dist/locale/uk.min.js +1 -1
  226. package/dist/locale/uk.min.mjs +1 -1
  227. package/dist/locale/uk.mjs +1 -1
  228. package/dist/locale/uz-uz.js +1 -1
  229. package/dist/locale/uz-uz.min.js +1 -1
  230. package/dist/locale/uz-uz.min.mjs +1 -1
  231. package/dist/locale/uz-uz.mjs +1 -1
  232. package/dist/locale/vi.js +1 -1
  233. package/dist/locale/vi.min.js +1 -1
  234. package/dist/locale/vi.min.mjs +1 -1
  235. package/dist/locale/vi.mjs +1 -1
  236. package/dist/locale/zh-cn.js +1 -1
  237. package/dist/locale/zh-cn.min.js +1 -1
  238. package/dist/locale/zh-cn.min.mjs +1 -1
  239. package/dist/locale/zh-cn.mjs +1 -1
  240. package/dist/locale/zh-tw.js +1 -1
  241. package/dist/locale/zh-tw.min.js +1 -1
  242. package/dist/locale/zh-tw.min.mjs +1 -1
  243. package/dist/locale/zh-tw.mjs +1 -1
  244. package/es/components/cascader/index.mjs +2 -2
  245. package/es/components/cascader/src/cascader.mjs +68 -634
  246. package/es/components/cascader/src/cascader.mjs.map +1 -1
  247. package/es/components/cascader/src/cascader2.mjs +634 -68
  248. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  249. package/es/components/index.mjs +5 -5
  250. package/es/components/rate/index.mjs +2 -2
  251. package/es/components/rate/src/rate.mjs +90 -269
  252. package/es/components/rate/src/rate.mjs.map +1 -1
  253. package/es/components/rate/src/rate2.mjs +269 -90
  254. package/es/components/rate/src/rate2.mjs.map +1 -1
  255. package/es/components/select/src/select2.mjs +26 -5
  256. package/es/components/select/src/select2.mjs.map +1 -1
  257. package/es/components/select-v2/src/group-item.mjs +3 -13
  258. package/es/components/select-v2/src/group-item.mjs.map +1 -1
  259. package/es/components/select-v2/src/select.mjs +26 -5
  260. package/es/components/select-v2/src/select.mjs.map +1 -1
  261. package/es/components/select-v2/src/useSelect.mjs +1 -2
  262. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  263. package/es/components/switch/index.mjs +2 -2
  264. package/es/components/switch/src/switch.mjs +242 -85
  265. package/es/components/switch/src/switch.mjs.map +1 -1
  266. package/es/components/switch/src/switch2.mjs +85 -242
  267. package/es/components/switch/src/switch2.mjs.map +1 -1
  268. package/es/components/text/index.mjs +2 -2
  269. package/es/components/text/src/text.mjs +24 -38
  270. package/es/components/text/src/text.mjs.map +1 -1
  271. package/es/components/text/src/text2.mjs +38 -24
  272. package/es/components/text/src/text2.mjs.map +1 -1
  273. package/es/components/tour/index.mjs +2 -2
  274. package/es/components/tour/src/step.mjs +44 -169
  275. package/es/components/tour/src/step.mjs.map +1 -1
  276. package/es/components/tour/src/step2.mjs +169 -44
  277. package/es/components/tour/src/step2.mjs.map +1 -1
  278. package/es/index.mjs +5 -5
  279. package/es/version.d.ts +1 -1
  280. package/es/version.mjs +1 -1
  281. package/es/version.mjs.map +1 -1
  282. package/lib/components/cascader/index.js +2 -2
  283. package/lib/components/cascader/src/cascader.js +69 -634
  284. package/lib/components/cascader/src/cascader.js.map +1 -1
  285. package/lib/components/cascader/src/cascader2.js +634 -69
  286. package/lib/components/cascader/src/cascader2.js.map +1 -1
  287. package/lib/components/index.js +5 -5
  288. package/lib/components/rate/index.js +2 -2
  289. package/lib/components/rate/src/rate.js +90 -268
  290. package/lib/components/rate/src/rate.js.map +1 -1
  291. package/lib/components/rate/src/rate2.js +268 -90
  292. package/lib/components/rate/src/rate2.js.map +1 -1
  293. package/lib/components/select/src/select2.js +25 -4
  294. package/lib/components/select/src/select2.js.map +1 -1
  295. package/lib/components/select-v2/src/group-item.js +2 -12
  296. package/lib/components/select-v2/src/group-item.js.map +1 -1
  297. package/lib/components/select-v2/src/select.js +25 -4
  298. package/lib/components/select-v2/src/select.js.map +1 -1
  299. package/lib/components/select-v2/src/useSelect.js +1 -2
  300. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  301. package/lib/components/switch/index.js +2 -2
  302. package/lib/components/switch/src/switch.js +241 -85
  303. package/lib/components/switch/src/switch.js.map +1 -1
  304. package/lib/components/switch/src/switch2.js +85 -241
  305. package/lib/components/switch/src/switch2.js.map +1 -1
  306. package/lib/components/text/index.js +2 -2
  307. package/lib/components/text/src/text.js +24 -38
  308. package/lib/components/text/src/text.js.map +1 -1
  309. package/lib/components/text/src/text2.js +38 -24
  310. package/lib/components/text/src/text2.js.map +1 -1
  311. package/lib/components/tour/index.js +2 -2
  312. package/lib/components/tour/src/step.js +44 -168
  313. package/lib/components/tour/src/step.js.map +1 -1
  314. package/lib/components/tour/src/step2.js +168 -44
  315. package/lib/components/tour/src/step2.js.map +1 -1
  316. package/lib/index.js +5 -5
  317. package/lib/version.d.ts +1 -1
  318. package/lib/version.js +1 -1
  319. package/lib/version.js.map +1 -1
  320. package/package.json +2 -2
  321. package/theme-chalk/el-option-group.css +1 -1
  322. package/theme-chalk/el-select-v2.css +1 -1
  323. package/theme-chalk/el-select.css +1 -1
  324. package/theme-chalk/index.css +1 -1
  325. package/theme-chalk/src/common/var.scss +1 -1
  326. package/theme-chalk/src/option-group.scss +0 -25
  327. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cascader2.js","sources":["../../../../../../packages/components/cascader/src/cascader.ts"],"sourcesContent":["import { CommonProps } from '@element-plus/components/cascader-panel'\nimport { buildProps, definePropType, isBoolean } from '@element-plus/utils'\nimport { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { tagProps } from '@element-plus/components/tag'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type {\n CascaderNode,\n CascaderValue,\n} from '@element-plus/components/cascader-panel'\n\nexport const cascaderProps = buildProps({\n ...CommonProps,\n /**\n * @description size of input\n */\n size: useSizeProp,\n /**\n * @description placeholder of input\n */\n placeholder: String,\n /**\n * @description whether Cascader is disabled\n */\n disabled: Boolean,\n /**\n * @description whether selected value can be cleared\n */\n clearable: Boolean,\n /**\n * @description whether the options can be searched\n */\n filterable: Boolean,\n /**\n * @description customize search logic, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits.\n */\n filterMethod: {\n type: definePropType<(node: CascaderNode, keyword: string) => boolean>(\n Function\n ),\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n /**\n * @description option label separator\n */\n separator: {\n type: String,\n default: ' / ',\n },\n /**\n * @description whether to display all levels of the selected value in the input\n */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether to collapse tags in multiple selection mode\n */\n collapseTags: Boolean,\n /**\n * @description The max tags number to be shown. To use this, collapse-tags must be true\n */\n maxCollapseTags: {\n type: Number,\n default: 1,\n },\n /**\n * @description native input id\n */\n collapseTagsTooltip: {\n type: Boolean,\n default: false,\n },\n /**\n * @description debounce delay when typing filter keyword, in milliseconds\n */\n debounce: {\n type: Number,\n default: 300,\n },\n /**\n * @description hook function before filtering with the value to be filtered as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, filtering will be aborted\n */\n beforeFilter: {\n type: definePropType<(value: string) => boolean | Promise<any>>(Function),\n default: () => true,\n },\n /**\n * @description custom class name for Cascader's dropdown\n */\n popperClass: {\n type: String,\n default: '',\n },\n /**\n * @description whether cascader popup is teleported\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description tag type\n */\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n ...useEmptyValuesProps,\n})\n\nexport const cascaderEmits = {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [UPDATE_MODEL_EVENT]: (_: CascaderValue) => true,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [CHANGE_EVENT]: (_: CascaderValue) => true,\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n visibleChange: (val: boolean) => isBoolean(val),\n expandChange: (val: CascaderValue) => !!val,\n removeTag: (val: CascaderNode['valueByOption']) => !!val,\n}\n\n// Type name is taken(cascader-panel/src/node), needs discussion\n// export type CascaderProps = ExtractPropTypes<typeof cascaderProps>\n\nexport type CascaderEmits = typeof cascaderEmits\n"],"names":["buildProps","CommonProps","useSizeProp","definePropType","useTooltipContentProps","tagProps","useEmptyValuesProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","isBoolean"],"mappings":";;;;;;;;;;;;;;;;;;;AAMY,MAAC,aAAa,GAAGA,kBAAU,CAAC;AACxC,EAAE,GAAGC,kBAAW;AAChB,EAAE,IAAI,EAAEC,iBAAW;AACnB,EAAE,WAAW,EAAE,MAAM;AACrB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEC,sBAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3D,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,YAAY,EAAE,OAAO;AACvB,EAAE,eAAe,EAAE;AACnB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,MAAM,IAAI;AACvB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,UAAU,EAAEC,8BAAsB,CAAC,UAAU;AAC/C,EAAE,OAAO,EAAE,EAAE,GAAGC,YAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AAChD,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,GAAGC,2BAAmB;AACxB,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,wBAAkB,GAAG,CAAC,CAAC,KAAK,IAAI;AACnC,EAAE,CAACC,kBAAY,GAAG,CAAC,CAAC,KAAK,IAAI;AAC7B,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,UAAU;AAC3C,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,UAAU;AAC1C,EAAE,aAAa,EAAE,CAAC,GAAG,KAAKC,eAAS,CAAC,GAAG,CAAC;AACxC,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AAC9B,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AAC3B;;;;;"}
1
+ {"version":3,"file":"cascader2.js","sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass]\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"[\n 'bottom-start',\n 'bottom',\n 'top-start',\n 'top',\n 'right',\n 'left',\n ]\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n placement=\"bottom-start\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n effect=\"light\"\n pure\n persistent\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[contentRef]=\"() => togglePopperVisible(false)\"\n :class=\"cascaderKls\"\n :style=\"cascaderStyle\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model=\"inputValue\"\n :placeholder=\"currentPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"inputClass\"\n :tabindex=\"multiple && filterable && !isDisabled ? -1 : undefined\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"cascaderIconKls\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div\n v-if=\"multiple\"\n ref=\"tagWrapper\"\n :class=\"[\n nsCascader.e('tags'),\n nsCascader.is('validate', Boolean(validateState)),\n ]\"\n >\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <template v-if=\"tag.isCollapseTag === false\">\n <span>{{ tag.text }}</span>\n </template>\n <template v-else>\n <el-tooltip\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n effect=\"light\"\n >\n <template #default>\n <span>{{ tag.text }}</span>\n </template>\n <template #content>\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag2, idx) in allPresentTags.slice(\n maxCollapseTags\n )\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag2.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag2.hitState\"\n :closable=\"tag2.closable\"\n disable-transitions\n @close=\"deleteTag(tag2)\"\n >\n <span>{{ tag2.text }}</span>\n </el-tag>\n </div>\n </div>\n </template>\n </el-tooltip>\n </template>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e as KeyboardEvent)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"cascaderPanelRef\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props.props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, ref, useAttrs, watch } from 'vue'\nimport { isPromise } from '@vue/shared'\nimport { cloneDeep, debounce } from 'lodash-unified'\nimport { useCssVar, useResizeObserver } from '@vueuse/core'\nimport ElCascaderPanel from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormItem, useFormSize } from '@element-plus/components/form'\nimport { ClickOutside as vClickoutside } from '@element-plus/directives'\nimport { useEmptyValues, useLocale, useNamespace } from '@element-plus/hooks'\nimport {\n debugWarn,\n focusNode,\n getSibling,\n isClient,\n isKorean,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\nimport { cascaderEmits, cascaderProps } from './cascader'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type {\n CascaderNode,\n CascaderPanelInstance,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\nconst COMPONENT_NAME = 'ElCascader'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(cascaderProps)\nconst emit = defineEmits(cascaderEmits)\nconst attrs = useAttrs()\n\nlet inputInitialHeight = 0\nlet pressDeleteCount = 0\n\nconst nsCascader = useNamespace('cascader')\nconst nsInput = useNamespace('input')\n\nconst { t } = useLocale()\nconst { form, formItem } = useFormItem()\nconst { valueOnClear } = useEmptyValues(props)\n\nconst tooltipRef: Ref<TooltipInstance | null> = ref(null)\nconst input: Ref<InputInstance | null> = ref(null)\nconst tagWrapper = ref(null)\nconst cascaderPanelRef: Ref<CascaderPanelInstance | null> = ref(null)\nconst suggestionPanel: Ref<ScrollbarInstance | null> = ref(null)\nconst popperVisible = ref(false)\nconst inputHover = ref(false)\nconst filtering = ref(false)\nconst filterFocus = ref(false)\nconst inputValue = ref('')\nconst searchInputValue = ref('')\nconst presentTags: Ref<Tag[]> = ref([])\nconst allPresentTags: Ref<Tag[]> = ref([])\nconst suggestions: Ref<CascaderNode[]> = ref([])\nconst isOnComposition = ref(false)\n\nconst cascaderStyle = computed<StyleValue>(() => {\n return attrs.style as StyleValue\n})\n\nconst isDisabled = computed(() => props.disabled || form?.disabled)\nconst inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n)\nconst currentPlaceholder = computed(() =>\n searchInputValue.value ||\n presentTags.value.length > 0 ||\n isOnComposition.value\n ? ''\n : inputPlaceholder.value\n)\nconst realSize = useFormSize()\nconst tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n)\nconst multiple = computed(() => !!props.props.multiple)\nconst readonly = computed(() => !props.filterable || multiple.value)\nconst searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n)\nconst checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => cascaderPanelRef.value?.checkedNodes || []\n)\nconst clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n})\nconst presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ''\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n})\n\nconst validateState = computed(() => formItem?.validateState || '')\n\nconst checkedValue = computed<CascaderValue>({\n get() {\n return cloneDeep(props.modelValue) as CascaderValue\n },\n set(val) {\n const value = val || valueOnClear.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n})\n\nconst cascaderKls = computed(() => {\n return [\n nsCascader.b(),\n nsCascader.m(realSize.value),\n nsCascader.is('disabled', isDisabled.value),\n attrs.class,\n ]\n})\n\nconst cascaderIconKls = computed(() => {\n return [\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible.value),\n ]\n})\n\nconst inputClass = computed(() => {\n return nsCascader.is('focus', popperVisible.value || filterFocus.value)\n})\n\nconst contentRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n})\n\nconst togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(cascaderPanelRef.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visibleChange', visible)\n }\n}\n\nconst updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n}\n\nconst hideSuggestionPanel = () => {\n filtering.value = false\n}\n\nconst genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n isCollapseTag: false,\n }\n}\n\nconst deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n cascaderPanelRef.value?.calculateCheckedValue()\n emit('removeTag', node.valueByOption)\n}\n\nconst calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n allPresentTags.value = allTags\n\n if (nodes.length) {\n nodes\n .slice(0, props.maxCollapseTags)\n .forEach((node) => tags.push(genTag(node)))\n const rest = nodes.slice(props.maxCollapseTags)\n const restCount = rest.length\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n isCollapseTag: true,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n}\n\nconst calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = cascaderPanelRef.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n allPresentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n}\n\nconst focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n `.${nsCascader.e('suggestion-item')}`\n )\n } else {\n firstNode = cascaderPanelRef.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n}\n\nconst updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n `.${nsCascader.e('suggestion-list')}`\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n}\n\nconst getCheckedNodes = (leafOnly: boolean) => {\n return cascaderPanelRef.value?.getCheckedNodes(leafOnly)\n}\n\nconst handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expandChange', value)\n}\n\nconst handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n}\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n}\n\nconst handleClear = () => {\n cascaderPanelRef.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n}\n\nconst syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n}\n\nconst handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n cascaderPanelRef.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n}\n\nconst handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n ) as HTMLElement\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n }\n}\n\nconst handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount || (props.collapseTags && tags.length > 1))\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n}\n\nconst handleFocus = (e: FocusEvent) => {\n const el = e.target as HTMLInputElement\n const name = nsCascader.e('search-input')\n if (el.className === name) {\n filterFocus.value = true\n }\n emit('focus', e)\n}\n\nconst handleBlur = (e: FocusEvent) => {\n filterFocus.value = false\n emit('blur', e)\n}\n\nconst handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n}, props.debounce)\n\nconst handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n}\n\nconst getInputInnerHeight = (inputInner: HTMLElement): number =>\n Number.parseFloat(\n useCssVar(nsInput.cssVarName('input-height'), inputInner).value\n ) - 2\n\nwatch(filtering, updatePopperPosition)\n\nwatch([checkedNodes, isDisabled], calculatePresentTags)\n\nwatch(presentTags, () => {\n nextTick(() => updateStyle())\n})\n\nwatch(realSize, async () => {\n await nextTick()\n const inputInner = input.value!.input!\n inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight\n updateStyle()\n})\n\nwatch(presentText, syncPresentTextValue, { immediate: true })\n\nonMounted(() => {\n const inputInner = input.value!.input!\n\n const inputInnerHeight = getInputInnerHeight(inputInner)\n\n inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n useResizeObserver(inputInner, updateStyle)\n})\n\ndefineExpose({\n /**\n * @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`\n */\n getCheckedNodes,\n /**\n * @description cascader panel ref\n */\n cascaderPanelRef,\n /**\n * @description toggle the visible of popper\n */\n togglePopperVisible,\n /**\n * @description cascader content ref\n */\n contentRef,\n})\n</script>\n"],"names":["useAttrs","useNamespace","useLocale","useFormItem","useEmptyValues","ref","computed","useFormSize","cloneDeep","UPDATE_MODEL_EVENT","CHANGE_EVENT","debugWarn","nextTick","isClient","isKorean","EVENT_CODE","focusNode","getSibling","debounce","isPromise","useCssVar","watch"],"mappings":"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"}
@@ -99,7 +99,7 @@ var card = require('./card/src/card.js');
99
99
  var carousel = require('./carousel/src/carousel.js');
100
100
  var carouselItem = require('./carousel/src/carousel-item.js');
101
101
  var constants$2 = require('./carousel/src/constants.js');
102
- var cascader = require('./cascader/src/cascader2.js');
102
+ var cascader = require('./cascader/src/cascader.js');
103
103
  var types = require('./cascader-panel/src/types.js');
104
104
  var config = require('./cascader-panel/src/config.js');
105
105
  var checkTag = require('./check-tag/src/check-tag.js');
@@ -161,7 +161,7 @@ var radio = require('./radio/src/radio.js');
161
161
  var radioGroup = require('./radio/src/radio-group.js');
162
162
  var radioButton = require('./radio/src/radio-button.js');
163
163
  var constants$b = require('./radio/src/constants.js');
164
- var rate = require('./rate/src/rate2.js');
164
+ var rate = require('./rate/src/rate.js');
165
165
  var result = require('./result/src/result.js');
166
166
  var row = require('./row/src/row.js');
167
167
  var constants$c = require('./row/src/constants.js');
@@ -181,7 +181,7 @@ var useSpace = require('./space/src/use-space.js');
181
181
  var statistic = require('./statistic/src/statistic.js');
182
182
  var item$1 = require('./steps/src/item.js');
183
183
  var steps = require('./steps/src/steps.js');
184
- var _switch = require('./switch/src/switch.js');
184
+ var _switch = require('./switch/src/switch2.js');
185
185
  var constants$f = require('./table-v2/src/constants.js');
186
186
  var tableV2 = require('./table-v2/src/table-v2.js');
187
187
  var _private = require('./table-v2/src/private.js');
@@ -194,7 +194,7 @@ var tabNav = require('./tabs/src/tab-nav.js');
194
194
  var tabPane = require('./tabs/src/tab-pane.js');
195
195
  var constants$g = require('./tabs/src/constants.js');
196
196
  var tag = require('./tag/src/tag.js');
197
- var text = require('./text/src/text2.js');
197
+ var text = require('./text/src/text.js');
198
198
  var utils = require('./time-picker/src/utils.js');
199
199
  var constants$h = require('./time-picker/src/constants.js');
200
200
  var props = require('./time-picker/src/common/props.js');
@@ -218,7 +218,7 @@ var dynamicSizeGrid = require('./virtual-list/src/components/dynamic-size-grid.j
218
218
  var props$1 = require('./virtual-list/src/props.js');
219
219
  var watermark = require('./watermark/src/watermark.js');
220
220
  var tour = require('./tour/src/tour.js');
221
- var step = require('./tour/src/step2.js');
221
+ var step = require('./tour/src/step.js');
222
222
  var content$3 = require('./tour/src/content.js');
223
223
  var anchor = require('./anchor/src/anchor.js');
224
224
  var segmented = require('./segmented/src/segmented.js');
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var rate$1 = require('./src/rate.js');
7
- var rate = require('./src/rate2.js');
6
+ var rate$1 = require('./src/rate2.js');
7
+ var rate = require('./src/rate.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const ElRate = install.withInstall(rate$1["default"]);
@@ -2,279 +2,101 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
5
+ var iconsVue = require('@element-plus/icons-vue');
6
6
  require('../../../constants/index.js');
7
7
  require('../../../utils/index.js');
8
- require('../../form/index.js');
9
- var index$2 = require('../../icon/index.js');
10
8
  require('../../../hooks/index.js');
11
- var rate = require('./rate2.js');
12
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
13
- var shared = require('@vue/shared');
14
- var constants = require('../../form/src/constants.js');
15
- var useFormCommonProps = require('../../form/src/hooks/use-form-common-props.js');
16
- var index = require('../../../hooks/use-namespace/index.js');
17
- var useFormItem = require('../../form/src/hooks/use-form-item.js');
9
+ var runtime = require('../../../utils/vue/props/runtime.js');
10
+ var typescript = require('../../../utils/typescript.js');
11
+ var icon = require('../../../utils/vue/icon.js');
12
+ var index = require('../../../hooks/use-size/index.js');
13
+ var index$1 = require('../../../hooks/use-aria/index.js');
18
14
  var event = require('../../../constants/event.js');
19
- var aria = require('../../../constants/aria.js');
20
- var style = require('../../../utils/dom/style.js');
21
- var index$1 = require('../../../hooks/use-deprecated/index.js');
15
+ var types = require('../../../utils/types.js');
22
16
 
23
- const _hoisted_1 = ["id", "aria-label", "aria-labelledby", "aria-valuenow", "aria-valuetext", "aria-valuemax"];
24
- const _hoisted_2 = ["onMousemove", "onClick"];
25
- const __default__ = vue.defineComponent({
26
- name: "ElRate"
17
+ const rateProps = runtime.buildProps({
18
+ modelValue: {
19
+ type: Number,
20
+ default: 0
21
+ },
22
+ id: {
23
+ type: String,
24
+ default: void 0
25
+ },
26
+ lowThreshold: {
27
+ type: Number,
28
+ default: 2
29
+ },
30
+ highThreshold: {
31
+ type: Number,
32
+ default: 4
33
+ },
34
+ max: {
35
+ type: Number,
36
+ default: 5
37
+ },
38
+ colors: {
39
+ type: runtime.definePropType([Array, Object]),
40
+ default: () => typescript.mutable(["", "", ""])
41
+ },
42
+ voidColor: {
43
+ type: String,
44
+ default: ""
45
+ },
46
+ disabledVoidColor: {
47
+ type: String,
48
+ default: ""
49
+ },
50
+ icons: {
51
+ type: runtime.definePropType([Array, Object]),
52
+ default: () => [iconsVue.StarFilled, iconsVue.StarFilled, iconsVue.StarFilled]
53
+ },
54
+ voidIcon: {
55
+ type: icon.iconPropType,
56
+ default: () => iconsVue.Star
57
+ },
58
+ disabledVoidIcon: {
59
+ type: icon.iconPropType,
60
+ default: () => iconsVue.StarFilled
61
+ },
62
+ disabled: Boolean,
63
+ allowHalf: Boolean,
64
+ showText: Boolean,
65
+ showScore: Boolean,
66
+ textColor: {
67
+ type: String,
68
+ default: ""
69
+ },
70
+ texts: {
71
+ type: runtime.definePropType(Array),
72
+ default: () => typescript.mutable([
73
+ "Extremely bad",
74
+ "Disappointed",
75
+ "Fair",
76
+ "Satisfied",
77
+ "Surprise"
78
+ ])
79
+ },
80
+ scoreTemplate: {
81
+ type: String,
82
+ default: "{value}"
83
+ },
84
+ size: index.useSizeProp,
85
+ label: {
86
+ type: String,
87
+ default: void 0
88
+ },
89
+ clearable: {
90
+ type: Boolean,
91
+ default: false
92
+ },
93
+ ...index$1.useAriaProps(["ariaLabel"])
27
94
  });
28
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
29
- ...__default__,
30
- props: rate.rateProps,
31
- emits: rate.rateEmits,
32
- setup(__props, { expose, emit }) {
33
- const props = __props;
34
- function getValueFromMap(value, map) {
35
- const isExcludedObject = (val) => shared.isObject(val);
36
- const matchedKeys = Object.keys(map).map((key) => +key).filter((key) => {
37
- const val = map[key];
38
- const excluded = isExcludedObject(val) ? val.excluded : false;
39
- return excluded ? value < key : value <= key;
40
- }).sort((a, b) => a - b);
41
- const matchedValue = map[matchedKeys[0]];
42
- return isExcludedObject(matchedValue) && matchedValue.value || matchedValue;
43
- }
44
- const formContext = vue.inject(constants.formContextKey, void 0);
45
- const formItemContext = vue.inject(constants.formItemContextKey, void 0);
46
- const rateSize = useFormCommonProps.useFormSize();
47
- const ns = index.useNamespace("rate");
48
- const { inputId, isLabeledByFormItem } = useFormItem.useFormItemInputId(props, {
49
- formItemContext
50
- });
51
- const currentValue = vue.ref(props.modelValue);
52
- const hoverIndex = vue.ref(-1);
53
- const pointerAtLeftHalf = vue.ref(true);
54
- const rateClasses = vue.computed(() => [ns.b(), ns.m(rateSize.value)]);
55
- const rateDisabled = vue.computed(() => props.disabled || (formContext == null ? void 0 : formContext.disabled));
56
- const rateStyles = vue.computed(() => {
57
- return ns.cssVarBlock({
58
- "void-color": props.voidColor,
59
- "disabled-void-color": props.disabledVoidColor,
60
- "fill-color": activeColor.value
61
- });
62
- });
63
- const text = vue.computed(() => {
64
- let result = "";
65
- if (props.showScore) {
66
- result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`);
67
- } else if (props.showText) {
68
- result = props.texts[Math.ceil(currentValue.value) - 1];
69
- }
70
- return result;
71
- });
72
- const valueDecimal = vue.computed(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100);
73
- const colorMap = vue.computed(() => shared.isArray(props.colors) ? {
74
- [props.lowThreshold]: props.colors[0],
75
- [props.highThreshold]: { value: props.colors[1], excluded: true },
76
- [props.max]: props.colors[2]
77
- } : props.colors);
78
- const activeColor = vue.computed(() => {
79
- const color = getValueFromMap(currentValue.value, colorMap.value);
80
- return shared.isObject(color) ? "" : color;
81
- });
82
- const decimalStyle = vue.computed(() => {
83
- let width = "";
84
- if (rateDisabled.value) {
85
- width = `${valueDecimal.value}%`;
86
- } else if (props.allowHalf) {
87
- width = "50%";
88
- }
89
- return {
90
- color: activeColor.value,
91
- width
92
- };
93
- });
94
- const componentMap = vue.computed(() => {
95
- let icons = shared.isArray(props.icons) ? [...props.icons] : { ...props.icons };
96
- icons = vue.markRaw(icons);
97
- return shared.isArray(icons) ? {
98
- [props.lowThreshold]: icons[0],
99
- [props.highThreshold]: {
100
- value: icons[1],
101
- excluded: true
102
- },
103
- [props.max]: icons[2]
104
- } : icons;
105
- });
106
- const decimalIconComponent = vue.computed(() => getValueFromMap(props.modelValue, componentMap.value));
107
- const voidComponent = vue.computed(() => rateDisabled.value ? shared.isString(props.disabledVoidIcon) ? props.disabledVoidIcon : vue.markRaw(props.disabledVoidIcon) : shared.isString(props.voidIcon) ? props.voidIcon : vue.markRaw(props.voidIcon));
108
- const activeComponent = vue.computed(() => getValueFromMap(currentValue.value, componentMap.value));
109
- function showDecimalIcon(item) {
110
- const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue;
111
- const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - 0.5 <= currentValue.value && item > currentValue.value;
112
- return showWhenDisabled || showWhenAllowHalf;
113
- }
114
- function emitValue(value) {
115
- if (props.clearable && value === props.modelValue) {
116
- value = 0;
117
- }
118
- emit(event.UPDATE_MODEL_EVENT, value);
119
- if (props.modelValue !== value) {
120
- emit("change", value);
121
- }
122
- }
123
- function selectValue(value) {
124
- if (rateDisabled.value) {
125
- return;
126
- }
127
- if (props.allowHalf && pointerAtLeftHalf.value) {
128
- emitValue(currentValue.value);
129
- } else {
130
- emitValue(value);
131
- }
132
- }
133
- function handleKey(e) {
134
- if (rateDisabled.value) {
135
- return;
136
- }
137
- let _currentValue = currentValue.value;
138
- const code = e.code;
139
- if (code === aria.EVENT_CODE.up || code === aria.EVENT_CODE.right) {
140
- if (props.allowHalf) {
141
- _currentValue += 0.5;
142
- } else {
143
- _currentValue += 1;
144
- }
145
- e.stopPropagation();
146
- e.preventDefault();
147
- } else if (code === aria.EVENT_CODE.left || code === aria.EVENT_CODE.down) {
148
- if (props.allowHalf) {
149
- _currentValue -= 0.5;
150
- } else {
151
- _currentValue -= 1;
152
- }
153
- e.stopPropagation();
154
- e.preventDefault();
155
- }
156
- _currentValue = _currentValue < 0 ? 0 : _currentValue;
157
- _currentValue = _currentValue > props.max ? props.max : _currentValue;
158
- emit(event.UPDATE_MODEL_EVENT, _currentValue);
159
- emit("change", _currentValue);
160
- return _currentValue;
161
- }
162
- function setCurrentValue(value, event) {
163
- if (rateDisabled.value) {
164
- return;
165
- }
166
- if (props.allowHalf && event) {
167
- let target = event.target;
168
- if (style.hasClass(target, ns.e("item"))) {
169
- target = target.querySelector(`.${ns.e("icon")}`);
170
- }
171
- if (target.clientWidth === 0 || style.hasClass(target, ns.e("decimal"))) {
172
- target = target.parentNode;
173
- }
174
- pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth;
175
- currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value;
176
- } else {
177
- currentValue.value = value;
178
- }
179
- hoverIndex.value = value;
180
- }
181
- function resetCurrentValue() {
182
- if (rateDisabled.value) {
183
- return;
184
- }
185
- if (props.allowHalf) {
186
- pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
187
- }
188
- currentValue.value = props.modelValue;
189
- hoverIndex.value = -1;
190
- }
191
- vue.watch(() => props.modelValue, (val) => {
192
- currentValue.value = val;
193
- pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue);
194
- });
195
- if (!props.modelValue) {
196
- emit(event.UPDATE_MODEL_EVENT, 0);
197
- }
198
- index$1.useDeprecated({
199
- from: "label",
200
- replacement: "aria-label",
201
- version: "2.8.0",
202
- scope: "el-rate",
203
- ref: "https://element-plus.org/en-US/component/rate.html"
204
- }, vue.computed(() => !!props.label));
205
- expose({
206
- setCurrentValue,
207
- resetCurrentValue
208
- });
209
- return (_ctx, _cache) => {
210
- var _a;
211
- return vue.openBlock(), vue.createElementBlock("div", {
212
- id: vue.unref(inputId),
213
- class: vue.normalizeClass([vue.unref(rateClasses), vue.unref(ns).is("disabled", vue.unref(rateDisabled))]),
214
- role: "slider",
215
- "aria-label": !vue.unref(isLabeledByFormItem) ? _ctx.label || _ctx.ariaLabel || "rating" : void 0,
216
- "aria-labelledby": vue.unref(isLabeledByFormItem) ? (_a = vue.unref(formItemContext)) == null ? void 0 : _a.labelId : void 0,
217
- "aria-valuenow": currentValue.value,
218
- "aria-valuetext": vue.unref(text) || void 0,
219
- "aria-valuemin": "0",
220
- "aria-valuemax": _ctx.max,
221
- tabindex: "0",
222
- style: vue.normalizeStyle(vue.unref(rateStyles)),
223
- onKeydown: handleKey
224
- }, [
225
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.max, (item, key) => {
226
- return vue.openBlock(), vue.createElementBlock("span", {
227
- key,
228
- class: vue.normalizeClass(vue.unref(ns).e("item")),
229
- onMousemove: ($event) => setCurrentValue(item, $event),
230
- onMouseleave: resetCurrentValue,
231
- onClick: ($event) => selectValue(item)
232
- }, [
233
- vue.createVNode(vue.unref(index$2.ElIcon), {
234
- class: vue.normalizeClass([
235
- vue.unref(ns).e("icon"),
236
- { hover: hoverIndex.value === item },
237
- vue.unref(ns).is("active", item <= currentValue.value)
238
- ])
239
- }, {
240
- default: vue.withCtx(() => [
241
- !showDecimalIcon(item) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
242
- vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(activeComponent)), null, null, 512)), [
243
- [vue.vShow, item <= currentValue.value]
244
- ]),
245
- vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(voidComponent)), null, null, 512)), [
246
- [vue.vShow, !(item <= currentValue.value)]
247
- ])
248
- ], 64)) : vue.createCommentVNode("v-if", true),
249
- showDecimalIcon(item) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
250
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(voidComponent)), {
251
- class: vue.normalizeClass([vue.unref(ns).em("decimal", "box")])
252
- }, null, 8, ["class"])),
253
- vue.createVNode(vue.unref(index$2.ElIcon), {
254
- style: vue.normalizeStyle(vue.unref(decimalStyle)),
255
- class: vue.normalizeClass([vue.unref(ns).e("icon"), vue.unref(ns).e("decimal")])
256
- }, {
257
- default: vue.withCtx(() => [
258
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(decimalIconComponent))))
259
- ]),
260
- _: 1
261
- }, 8, ["style", "class"])
262
- ], 64)) : vue.createCommentVNode("v-if", true)
263
- ]),
264
- _: 2
265
- }, 1032, ["class"])
266
- ], 42, _hoisted_2);
267
- }), 128)),
268
- _ctx.showText || _ctx.showScore ? (vue.openBlock(), vue.createElementBlock("span", {
269
- key: 0,
270
- class: vue.normalizeClass(vue.unref(ns).e("text")),
271
- style: vue.normalizeStyle({ color: _ctx.textColor })
272
- }, vue.toDisplayString(vue.unref(text)), 7)) : vue.createCommentVNode("v-if", true)
273
- ], 46, _hoisted_1);
274
- };
275
- }
276
- });
277
- var Rate = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "rate.vue"]]);
95
+ const rateEmits = {
96
+ [event.CHANGE_EVENT]: (value) => types.isNumber(value),
97
+ [event.UPDATE_MODEL_EVENT]: (value) => types.isNumber(value)
98
+ };
278
99
 
279
- exports["default"] = Rate;
100
+ exports.rateEmits = rateEmits;
101
+ exports.rateProps = rateProps;
280
102
  //# sourceMappingURL=rate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate.js","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":["isObject","inject","formContextKey","formItemContextKey","useFormSize","useNamespace","useFormItemInputId","ref","computed","isArray","markRaw","isString","UPDATE_MODEL_EVENT","EVENT_CODE","hasClass","watch","useDeprecated"],"mappings":"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"}
1
+ {"version":3,"file":"rate.js","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":["buildProps","definePropType","mutable","StarFilled","iconPropType","Star","useSizeProp","useAriaProps","CHANGE_EVENT","isNumber","UPDATE_MODEL_EVENT"],"mappings":"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"}