@element-plus/nightly 0.0.20240911 → 0.0.20240913

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 (319) hide show
  1. package/README.md +1 -1
  2. package/attributes.json +1 -1
  3. package/dist/index.full.js +64 -22
  4. package/dist/index.full.min.js +11 -11
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +11 -11
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +64 -22
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hr.js +1 -1
  94. package/dist/locale/hr.min.js +1 -1
  95. package/dist/locale/hr.min.mjs +1 -1
  96. package/dist/locale/hr.mjs +1 -1
  97. package/dist/locale/hu.js +1 -1
  98. package/dist/locale/hu.min.js +1 -1
  99. package/dist/locale/hu.min.mjs +1 -1
  100. package/dist/locale/hu.mjs +1 -1
  101. package/dist/locale/hy-am.js +1 -1
  102. package/dist/locale/hy-am.min.js +1 -1
  103. package/dist/locale/hy-am.min.mjs +1 -1
  104. package/dist/locale/hy-am.mjs +1 -1
  105. package/dist/locale/id.js +1 -1
  106. package/dist/locale/id.min.js +1 -1
  107. package/dist/locale/id.min.mjs +1 -1
  108. package/dist/locale/id.mjs +1 -1
  109. package/dist/locale/it.js +1 -1
  110. package/dist/locale/it.min.js +1 -1
  111. package/dist/locale/it.min.mjs +1 -1
  112. package/dist/locale/it.mjs +1 -1
  113. package/dist/locale/ja.js +1 -1
  114. package/dist/locale/ja.min.js +1 -1
  115. package/dist/locale/ja.min.mjs +1 -1
  116. package/dist/locale/ja.mjs +1 -1
  117. package/dist/locale/kk.js +1 -1
  118. package/dist/locale/kk.min.js +1 -1
  119. package/dist/locale/kk.min.mjs +1 -1
  120. package/dist/locale/kk.mjs +1 -1
  121. package/dist/locale/km.js +1 -1
  122. package/dist/locale/km.min.js +1 -1
  123. package/dist/locale/km.min.mjs +1 -1
  124. package/dist/locale/km.mjs +1 -1
  125. package/dist/locale/ko.js +1 -1
  126. package/dist/locale/ko.min.js +1 -1
  127. package/dist/locale/ko.min.mjs +1 -1
  128. package/dist/locale/ko.mjs +1 -1
  129. package/dist/locale/ku.js +1 -1
  130. package/dist/locale/ku.min.js +1 -1
  131. package/dist/locale/ku.min.mjs +1 -1
  132. package/dist/locale/ku.mjs +1 -1
  133. package/dist/locale/ky.js +1 -1
  134. package/dist/locale/ky.min.js +1 -1
  135. package/dist/locale/ky.min.mjs +1 -1
  136. package/dist/locale/ky.mjs +1 -1
  137. package/dist/locale/lt.js +1 -1
  138. package/dist/locale/lt.min.js +1 -1
  139. package/dist/locale/lt.min.mjs +1 -1
  140. package/dist/locale/lt.mjs +1 -1
  141. package/dist/locale/lv.js +1 -1
  142. package/dist/locale/lv.min.js +1 -1
  143. package/dist/locale/lv.min.mjs +1 -1
  144. package/dist/locale/lv.mjs +1 -1
  145. package/dist/locale/mg.js +1 -1
  146. package/dist/locale/mg.min.js +1 -1
  147. package/dist/locale/mg.min.mjs +1 -1
  148. package/dist/locale/mg.mjs +1 -1
  149. package/dist/locale/mn.js +1 -1
  150. package/dist/locale/mn.min.js +1 -1
  151. package/dist/locale/mn.min.mjs +1 -1
  152. package/dist/locale/mn.mjs +1 -1
  153. package/dist/locale/my.js +1 -1
  154. package/dist/locale/my.min.js +1 -1
  155. package/dist/locale/my.min.mjs +1 -1
  156. package/dist/locale/my.mjs +1 -1
  157. package/dist/locale/nb-no.js +1 -1
  158. package/dist/locale/nb-no.min.js +1 -1
  159. package/dist/locale/nb-no.min.mjs +1 -1
  160. package/dist/locale/nb-no.mjs +1 -1
  161. package/dist/locale/nl.js +1 -1
  162. package/dist/locale/nl.min.js +1 -1
  163. package/dist/locale/nl.min.mjs +1 -1
  164. package/dist/locale/nl.mjs +1 -1
  165. package/dist/locale/pa.js +1 -1
  166. package/dist/locale/pa.min.js +1 -1
  167. package/dist/locale/pa.min.mjs +1 -1
  168. package/dist/locale/pa.mjs +1 -1
  169. package/dist/locale/pl.js +1 -1
  170. package/dist/locale/pl.min.js +1 -1
  171. package/dist/locale/pl.min.mjs +1 -1
  172. package/dist/locale/pl.mjs +1 -1
  173. package/dist/locale/pt-br.js +1 -1
  174. package/dist/locale/pt-br.min.js +1 -1
  175. package/dist/locale/pt-br.min.mjs +1 -1
  176. package/dist/locale/pt-br.mjs +1 -1
  177. package/dist/locale/pt.js +1 -1
  178. package/dist/locale/pt.min.js +1 -1
  179. package/dist/locale/pt.min.mjs +1 -1
  180. package/dist/locale/pt.mjs +1 -1
  181. package/dist/locale/ro.js +1 -1
  182. package/dist/locale/ro.min.js +1 -1
  183. package/dist/locale/ro.min.mjs +1 -1
  184. package/dist/locale/ro.mjs +1 -1
  185. package/dist/locale/ru.js +1 -1
  186. package/dist/locale/ru.min.js +1 -1
  187. package/dist/locale/ru.min.mjs +1 -1
  188. package/dist/locale/ru.mjs +1 -1
  189. package/dist/locale/sk.js +1 -1
  190. package/dist/locale/sk.min.js +1 -1
  191. package/dist/locale/sk.min.mjs +1 -1
  192. package/dist/locale/sk.mjs +1 -1
  193. package/dist/locale/sl.js +1 -1
  194. package/dist/locale/sl.min.js +1 -1
  195. package/dist/locale/sl.min.mjs +1 -1
  196. package/dist/locale/sl.mjs +1 -1
  197. package/dist/locale/sr.js +1 -1
  198. package/dist/locale/sr.min.js +1 -1
  199. package/dist/locale/sr.min.mjs +1 -1
  200. package/dist/locale/sr.mjs +1 -1
  201. package/dist/locale/sv.js +1 -1
  202. package/dist/locale/sv.min.js +1 -1
  203. package/dist/locale/sv.min.mjs +1 -1
  204. package/dist/locale/sv.mjs +1 -1
  205. package/dist/locale/sw.js +1 -1
  206. package/dist/locale/sw.min.js +1 -1
  207. package/dist/locale/sw.min.mjs +1 -1
  208. package/dist/locale/sw.mjs +1 -1
  209. package/dist/locale/ta.js +1 -1
  210. package/dist/locale/ta.min.js +1 -1
  211. package/dist/locale/ta.min.mjs +1 -1
  212. package/dist/locale/ta.mjs +1 -1
  213. package/dist/locale/th.js +1 -1
  214. package/dist/locale/th.min.js +1 -1
  215. package/dist/locale/th.min.mjs +1 -1
  216. package/dist/locale/th.mjs +1 -1
  217. package/dist/locale/tk.js +1 -1
  218. package/dist/locale/tk.min.js +1 -1
  219. package/dist/locale/tk.min.mjs +1 -1
  220. package/dist/locale/tk.mjs +1 -1
  221. package/dist/locale/tr.js +1 -1
  222. package/dist/locale/tr.min.js +1 -1
  223. package/dist/locale/tr.min.mjs +1 -1
  224. package/dist/locale/tr.mjs +1 -1
  225. package/dist/locale/ug-cn.js +1 -1
  226. package/dist/locale/ug-cn.min.js +1 -1
  227. package/dist/locale/ug-cn.min.mjs +1 -1
  228. package/dist/locale/ug-cn.mjs +1 -1
  229. package/dist/locale/uk.js +1 -1
  230. package/dist/locale/uk.min.js +1 -1
  231. package/dist/locale/uk.min.mjs +1 -1
  232. package/dist/locale/uk.mjs +1 -1
  233. package/dist/locale/uz-uz.js +1 -1
  234. package/dist/locale/uz-uz.min.js +1 -1
  235. package/dist/locale/uz-uz.min.mjs +1 -1
  236. package/dist/locale/uz-uz.mjs +1 -1
  237. package/dist/locale/vi.js +1 -1
  238. package/dist/locale/vi.min.js +1 -1
  239. package/dist/locale/vi.min.mjs +1 -1
  240. package/dist/locale/vi.mjs +1 -1
  241. package/dist/locale/zh-cn.js +1 -1
  242. package/dist/locale/zh-cn.min.js +1 -1
  243. package/dist/locale/zh-cn.min.mjs +1 -1
  244. package/dist/locale/zh-cn.mjs +1 -1
  245. package/dist/locale/zh-tw.js +1 -1
  246. package/dist/locale/zh-tw.min.js +1 -1
  247. package/dist/locale/zh-tw.min.mjs +1 -1
  248. package/dist/locale/zh-tw.mjs +1 -1
  249. package/es/components/cascader/src/cascader2.mjs +7 -2
  250. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  251. package/es/components/cascader-panel/src/index.mjs +7 -2
  252. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  253. package/es/components/cascader-panel/src/menu.mjs +7 -3
  254. package/es/components/cascader-panel/src/menu.mjs.map +1 -1
  255. package/es/components/collapse/src/collapse-item.d.ts +6 -0
  256. package/es/components/collapse/src/collapse-item.mjs +6 -0
  257. package/es/components/collapse/src/collapse-item.mjs.map +1 -1
  258. package/es/components/collapse/src/collapse-item.vue.d.ts +15 -0
  259. package/es/components/collapse/src/collapse-item2.mjs +11 -10
  260. package/es/components/collapse/src/collapse-item2.mjs.map +1 -1
  261. package/es/components/color-picker/src/color-picker2.mjs +7 -0
  262. package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
  263. package/es/components/segmented/src/segmented2.mjs.map +1 -1
  264. package/es/components/segmented/src/types.d.ts +1 -1
  265. package/es/components/table/src/store/watcher.mjs +21 -5
  266. package/es/components/table/src/store/watcher.mjs.map +1 -1
  267. package/es/components/table/src/table/utils-helper.d.ts +1 -1
  268. package/es/components/table/src/table/utils-helper.mjs +2 -2
  269. package/es/components/table/src/table/utils-helper.mjs.map +1 -1
  270. package/es/components/table/src/table.vue.d.ts +1 -1
  271. package/es/components/time-picker/src/common/picker.mjs +1 -1
  272. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  273. package/es/components/tooltip-v2/index.mjs +1 -1
  274. package/es/components/tooltip-v2/src/content.mjs +49 -111
  275. package/es/components/tooltip-v2/src/content.mjs.map +1 -1
  276. package/es/components/tooltip-v2/src/content2.mjs +111 -49
  277. package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
  278. package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
  279. package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
  280. package/es/version.d.ts +1 -1
  281. package/es/version.mjs +1 -1
  282. package/es/version.mjs.map +1 -1
  283. package/lib/components/cascader/src/cascader2.js +6 -1
  284. package/lib/components/cascader/src/cascader2.js.map +1 -1
  285. package/lib/components/cascader-panel/src/index.js +6 -1
  286. package/lib/components/cascader-panel/src/index.js.map +1 -1
  287. package/lib/components/cascader-panel/src/menu.js +6 -2
  288. package/lib/components/cascader-panel/src/menu.js.map +1 -1
  289. package/lib/components/collapse/src/collapse-item.d.ts +6 -0
  290. package/lib/components/collapse/src/collapse-item.js +6 -0
  291. package/lib/components/collapse/src/collapse-item.js.map +1 -1
  292. package/lib/components/collapse/src/collapse-item.vue.d.ts +15 -0
  293. package/lib/components/collapse/src/collapse-item2.js +10 -9
  294. package/lib/components/collapse/src/collapse-item2.js.map +1 -1
  295. package/lib/components/color-picker/src/color-picker2.js +7 -0
  296. package/lib/components/color-picker/src/color-picker2.js.map +1 -1
  297. package/lib/components/segmented/src/segmented2.js.map +1 -1
  298. package/lib/components/segmented/src/types.d.ts +1 -1
  299. package/lib/components/table/src/store/watcher.js +21 -5
  300. package/lib/components/table/src/store/watcher.js.map +1 -1
  301. package/lib/components/table/src/table/utils-helper.d.ts +1 -1
  302. package/lib/components/table/src/table/utils-helper.js +2 -2
  303. package/lib/components/table/src/table/utils-helper.js.map +1 -1
  304. package/lib/components/table/src/table.vue.d.ts +1 -1
  305. package/lib/components/time-picker/src/common/picker.js +1 -1
  306. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  307. package/lib/components/tooltip-v2/index.js +1 -1
  308. package/lib/components/tooltip-v2/src/content.js +49 -111
  309. package/lib/components/tooltip-v2/src/content.js.map +1 -1
  310. package/lib/components/tooltip-v2/src/content2.js +111 -49
  311. package/lib/components/tooltip-v2/src/content2.js.map +1 -1
  312. package/lib/components/tooltip-v2/src/tooltip.js +1 -1
  313. package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
  314. package/lib/version.d.ts +1 -1
  315. package/lib/version.js +1 -1
  316. package/lib/version.js.map +1 -1
  317. package/package.json +2 -2
  318. package/tags.json +1 -1
  319. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/cascader-panel/src/index.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('panel'), ns.is('bordered', border)]\"\n @keydown=\"handleKeyDown\"\n >\n <el-cascader-menu\n v-for=\"(menu, index) in menus\"\n :key=\"index\"\n :ref=\"(item) => (menuList[index] = item)\"\n :index=\"index\"\n :nodes=\"[...menu]\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n computed,\n defineComponent,\n nextTick,\n onBeforeUpdate,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { cloneDeep, flattenDeep, isEqual } from 'lodash-unified'\nimport {\n castArray,\n focusNode,\n getSibling,\n isClient,\n isEmpty,\n scrollIntoView,\n unique,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport ElCascaderMenu from './menu.vue'\nimport Store from './store'\nimport Node from './node'\nimport { CommonProps, useCascaderConfig } from './config'\nimport { checkNode, getMenuIndex, sortByOriginalOrder } from './utils'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\n\nimport type { PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type {\n default as CascaderNode,\n CascaderNodeValue,\n CascaderOption,\n CascaderValue,\n RenderLabel,\n} from './node'\n\nimport type { ElCascaderPanelContext } from './types'\n\nexport default defineComponent({\n name: 'ElCascaderPanel',\n\n components: {\n ElCascaderMenu,\n },\n\n props: {\n ...CommonProps,\n border: {\n type: Boolean,\n default: true,\n },\n renderLabel: Function as PropType<RenderLabel>,\n },\n\n emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, 'close', 'expand-change'],\n\n setup(props, { emit, slots }) {\n // for interrupt sync check status in lazy mode\n let manualChecked = false\n\n const ns = useNamespace('cascader')\n const config = useCascaderConfig(props)\n\n let store: Nullable<Store> = null\n const initialLoaded = ref(true)\n const menuList = ref<any[]>([])\n const checkedValue = ref<Nullable<CascaderValue>>(null)\n const menus = ref<CascaderNode[][]>([])\n const expandingNode = ref<Nullable<CascaderNode>>(null)\n const checkedNodes = ref<CascaderNode[]>([])\n\n const isHoverMenu = computed(() => config.value.expandTrigger === 'hover')\n const renderLabelFn = computed(() => props.renderLabel || slots.default)\n\n const initStore = () => {\n const { options } = props\n const cfg = config.value\n\n manualChecked = false\n store = new Store(options, cfg)\n menus.value = [store.getNodes()]\n\n if (cfg.lazy && isEmpty(props.options)) {\n initialLoaded.value = false\n lazyLoad(undefined, (list) => {\n if (list) {\n store = new Store(list, cfg)\n menus.value = [store.getNodes()]\n }\n initialLoaded.value = true\n syncCheckedValue(false, true)\n })\n } else {\n syncCheckedValue(false, true)\n }\n }\n\n const lazyLoad: ElCascaderPanelContext['lazyLoad'] = (node, cb) => {\n const cfg = config.value\n node! = node || new Node({}, cfg, undefined, true)\n node.loading = true\n\n const resolve = (dataList: CascaderOption[]) => {\n const _node = node as Node\n const parent = _node.root ? null : _node\n dataList && store?.appendNodes(dataList, parent as any)\n _node.loading = false\n _node.loaded = true\n _node.childrenData = _node.childrenData || []\n cb && cb(dataList)\n }\n\n cfg.lazyLoad(node, resolve as any)\n }\n\n const expandNode: ElCascaderPanelContext['expandNode'] = (node, silent) => {\n const { level } = node\n const newMenus = menus.value.slice(0, level)\n let newExpandingNode: Nullable<CascaderNode>\n\n if (node.isLeaf) {\n newExpandingNode = node.pathNodes[level - 2]\n } else {\n newExpandingNode = node\n newMenus.push(node.children)\n }\n\n if (expandingNode.value?.uid !== newExpandingNode?.uid) {\n expandingNode.value = node\n menus.value = newMenus\n !silent && emit('expand-change', node?.pathValues || [])\n }\n }\n\n const handleCheckChange: ElCascaderPanelContext['handleCheckChange'] = (\n node,\n checked,\n emitClose = true\n ) => {\n const { checkStrictly, multiple } = config.value\n const oldNode = checkedNodes.value[0]\n manualChecked = true\n\n !multiple && oldNode?.doCheck(false)\n node.doCheck(checked)\n calculateCheckedValue()\n emitClose && !multiple && !checkStrictly && emit('close')\n !emitClose && !multiple && !checkStrictly && expandParentNode(node)\n }\n\n const expandParentNode = (node) => {\n if (!node) return\n node = node.parent\n expandParentNode(node)\n node && expandNode(node)\n }\n\n const getFlattedNodes = (leafOnly: boolean) => {\n return store?.getFlattedNodes(leafOnly)\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return getFlattedNodes(leafOnly)?.filter((node) => node.checked !== false)\n }\n\n const clearCheckedNodes = () => {\n checkedNodes.value.forEach((node) => node.doCheck(false))\n calculateCheckedValue()\n menus.value = menus.value.slice(0, 1)\n expandingNode.value = null\n emit('expand-change', [])\n }\n\n const calculateCheckedValue = () => {\n const { checkStrictly, multiple } = config.value\n const oldNodes = checkedNodes.value\n const newNodes = getCheckedNodes(!checkStrictly)!\n // ensure the original order\n const nodes = sortByOriginalOrder(oldNodes, newNodes)\n const values = nodes.map((node) => node.valueByOption)\n checkedNodes.value = nodes\n checkedValue.value = multiple ? values : values[0] ?? null\n }\n\n const syncCheckedValue = (loaded = false, forced = false) => {\n const { modelValue } = props\n const { lazy, multiple, checkStrictly } = config.value\n const leafOnly = !checkStrictly\n\n if (\n !initialLoaded.value ||\n manualChecked ||\n (!forced && isEqual(modelValue, checkedValue.value))\n )\n return\n\n if (lazy && !loaded) {\n const values: CascaderNodeValue[] = unique(\n flattenDeep(castArray(modelValue))\n )\n const nodes = values\n .map((val) => store?.getNodeByValue(val))\n .filter((node) => !!node && !node.loaded && !node.loading) as Node[]\n\n if (nodes.length) {\n nodes.forEach((node) => {\n lazyLoad(node, () => syncCheckedValue(false, forced))\n })\n } else {\n syncCheckedValue(true, forced)\n }\n } else {\n const values = multiple ? castArray(modelValue) : [modelValue]\n const nodes = unique(\n values.map((val) => store?.getNodeByValue(val, leafOnly))\n ) as Node[]\n syncMenuState(nodes, forced)\n checkedValue.value = cloneDeep(modelValue)\n }\n }\n\n const syncMenuState = (\n newCheckedNodes: CascaderNode[],\n reserveExpandingState = true\n ) => {\n const { checkStrictly } = config.value\n const oldNodes = checkedNodes.value\n const newNodes = newCheckedNodes.filter(\n (node) => !!node && (checkStrictly || node.isLeaf)\n )\n const oldExpandingNode = store?.getSameNode(expandingNode.value!)\n const newExpandingNode =\n (reserveExpandingState && oldExpandingNode) || newNodes[0]\n\n if (newExpandingNode) {\n newExpandingNode.pathNodes.forEach((node) => expandNode(node, true))\n } else {\n expandingNode.value = null\n }\n\n oldNodes.forEach((node) => node.doCheck(false))\n reactive(newNodes).forEach((node) => node.doCheck(true))\n checkedNodes.value = newNodes\n nextTick(scrollToExpandingNode)\n }\n\n const scrollToExpandingNode = () => {\n if (!isClient) return\n\n menuList.value.forEach((menu) => {\n const menuElement = menu?.$el\n if (menuElement) {\n const container = menuElement.querySelector(\n `.${ns.namespace.value}-scrollbar__wrap`\n )\n const activeNode =\n menuElement.querySelector(`.${ns.b('node')}.${ns.is('active')}`) ||\n menuElement.querySelector(`.${ns.b('node')}.in-active-path`)\n scrollIntoView(container, activeNode)\n }\n })\n }\n\n const handleKeyDown = (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 e.preventDefault()\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(target, distance, `.${ns.b('node')}[tabindex=\"-1\"]`)\n )\n break\n }\n case EVENT_CODE.left: {\n e.preventDefault()\n const preMenu = menuList.value[getMenuIndex(target) - 1]\n const expandedNode = preMenu?.$el.querySelector(\n `.${ns.b('node')}[aria-expanded=\"true\"]`\n )\n focusNode(expandedNode)\n break\n }\n case EVENT_CODE.right: {\n e.preventDefault()\n const nextMenu = menuList.value[getMenuIndex(target) + 1]\n const firstNode = nextMenu?.$el.querySelector(\n `.${ns.b('node')}[tabindex=\"-1\"]`\n )\n focusNode(firstNode)\n break\n }\n case EVENT_CODE.enter:\n checkNode(target)\n break\n }\n }\n\n provide(\n CASCADER_PANEL_INJECTION_KEY,\n reactive({\n config,\n expandingNode,\n checkedNodes,\n isHoverMenu,\n initialLoaded,\n renderLabelFn,\n lazyLoad,\n expandNode,\n handleCheckChange,\n })\n )\n\n watch([config, () => props.options], initStore, {\n deep: true,\n immediate: true,\n })\n\n watch(\n () => props.modelValue,\n () => {\n manualChecked = false\n syncCheckedValue()\n },\n {\n deep: true,\n }\n )\n\n watch(\n () => checkedValue.value,\n (val) => {\n if (!isEqual(val, props.modelValue)) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n }\n }\n )\n\n onBeforeUpdate(() => (menuList.value = []))\n\n onMounted(() => !isEmpty(props.modelValue) && syncCheckedValue())\n\n return {\n ns,\n menuList,\n menus,\n checkedNodes,\n handleKeyDown,\n handleCheckChange,\n getFlattedNodes,\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 clear checked nodes\n */\n clearCheckedNodes,\n calculateCheckedValue,\n scrollToExpandingNode,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_Fragment","_renderList","_createBlock"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/cascader-panel/src/index.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('panel'), ns.is('bordered', border)]\"\n @keydown=\"handleKeyDown\"\n >\n <el-cascader-menu\n v-for=\"(menu, index) in menus\"\n :key=\"index\"\n :ref=\"(item) => (menuList[index] = item)\"\n :index=\"index\"\n :nodes=\"[...menu]\"\n >\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </el-cascader-menu>\n </div>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n computed,\n defineComponent,\n nextTick,\n onBeforeUpdate,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { cloneDeep, flattenDeep, isEqual } from 'lodash-unified'\nimport {\n castArray,\n focusNode,\n getSibling,\n isClient,\n isEmpty,\n scrollIntoView,\n unique,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport ElCascaderMenu from './menu.vue'\nimport Store from './store'\nimport Node from './node'\nimport { CommonProps, useCascaderConfig } from './config'\nimport { checkNode, getMenuIndex, sortByOriginalOrder } from './utils'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\n\nimport type { PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type {\n default as CascaderNode,\n CascaderNodeValue,\n CascaderOption,\n CascaderValue,\n RenderLabel,\n} from './node'\n\nimport type { ElCascaderPanelContext } from './types'\n\nexport default defineComponent({\n name: 'ElCascaderPanel',\n\n components: {\n ElCascaderMenu,\n },\n\n props: {\n ...CommonProps,\n border: {\n type: Boolean,\n default: true,\n },\n renderLabel: Function as PropType<RenderLabel>,\n },\n\n emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, 'close', 'expand-change'],\n\n setup(props, { emit, slots }) {\n // for interrupt sync check status in lazy mode\n let manualChecked = false\n\n const ns = useNamespace('cascader')\n const config = useCascaderConfig(props)\n\n let store: Nullable<Store> = null\n const initialLoaded = ref(true)\n const menuList = ref<any[]>([])\n const checkedValue = ref<Nullable<CascaderValue>>(null)\n const menus = ref<CascaderNode[][]>([])\n const expandingNode = ref<Nullable<CascaderNode>>(null)\n const checkedNodes = ref<CascaderNode[]>([])\n\n const isHoverMenu = computed(() => config.value.expandTrigger === 'hover')\n const renderLabelFn = computed(() => props.renderLabel || slots.default)\n\n const initStore = () => {\n const { options } = props\n const cfg = config.value\n\n manualChecked = false\n store = new Store(options, cfg)\n menus.value = [store.getNodes()]\n\n if (cfg.lazy && isEmpty(props.options)) {\n initialLoaded.value = false\n lazyLoad(undefined, (list) => {\n if (list) {\n store = new Store(list, cfg)\n menus.value = [store.getNodes()]\n }\n initialLoaded.value = true\n syncCheckedValue(false, true)\n })\n } else {\n syncCheckedValue(false, true)\n }\n }\n\n const lazyLoad: ElCascaderPanelContext['lazyLoad'] = (node, cb) => {\n const cfg = config.value\n node! = node || new Node({}, cfg, undefined, true)\n node.loading = true\n\n const resolve = (dataList: CascaderOption[]) => {\n const _node = node as Node\n const parent = _node.root ? null : _node\n dataList && store?.appendNodes(dataList, parent as any)\n _node.loading = false\n _node.loaded = true\n _node.childrenData = _node.childrenData || []\n cb && cb(dataList)\n }\n\n cfg.lazyLoad(node, resolve as any)\n }\n\n const expandNode: ElCascaderPanelContext['expandNode'] = (node, silent) => {\n const { level } = node\n const newMenus = menus.value.slice(0, level)\n let newExpandingNode: Nullable<CascaderNode>\n\n if (node.isLeaf) {\n newExpandingNode = node.pathNodes[level - 2]\n } else {\n newExpandingNode = node\n newMenus.push(node.children)\n }\n\n if (expandingNode.value?.uid !== newExpandingNode?.uid) {\n expandingNode.value = node\n menus.value = newMenus\n !silent && emit('expand-change', node?.pathValues || [])\n }\n }\n\n const handleCheckChange: ElCascaderPanelContext['handleCheckChange'] = (\n node,\n checked,\n emitClose = true\n ) => {\n const { checkStrictly, multiple } = config.value\n const oldNode = checkedNodes.value[0]\n manualChecked = true\n\n !multiple && oldNode?.doCheck(false)\n node.doCheck(checked)\n calculateCheckedValue()\n emitClose && !multiple && !checkStrictly && emit('close')\n !emitClose && !multiple && !checkStrictly && expandParentNode(node)\n }\n\n const expandParentNode = (node) => {\n if (!node) return\n node = node.parent\n expandParentNode(node)\n node && expandNode(node)\n }\n\n const getFlattedNodes = (leafOnly: boolean) => {\n return store?.getFlattedNodes(leafOnly)\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return getFlattedNodes(leafOnly)?.filter((node) => node.checked !== false)\n }\n\n const clearCheckedNodes = () => {\n checkedNodes.value.forEach((node) => node.doCheck(false))\n calculateCheckedValue()\n menus.value = menus.value.slice(0, 1)\n expandingNode.value = null\n emit('expand-change', [])\n }\n\n const calculateCheckedValue = () => {\n const { checkStrictly, multiple } = config.value\n const oldNodes = checkedNodes.value\n const newNodes = getCheckedNodes(!checkStrictly)!\n // ensure the original order\n const nodes = sortByOriginalOrder(oldNodes, newNodes)\n const values = nodes.map((node) => node.valueByOption)\n checkedNodes.value = nodes\n checkedValue.value = multiple ? values : values[0] ?? null\n }\n\n const syncCheckedValue = (loaded = false, forced = false) => {\n const { modelValue } = props\n const { lazy, multiple, checkStrictly } = config.value\n const leafOnly = !checkStrictly\n\n if (\n !initialLoaded.value ||\n manualChecked ||\n (!forced && isEqual(modelValue, checkedValue.value))\n )\n return\n\n if (lazy && !loaded) {\n const values: CascaderNodeValue[] = unique(\n flattenDeep(castArray(modelValue))\n )\n const nodes = values\n .map((val) => store?.getNodeByValue(val))\n .filter((node) => !!node && !node.loaded && !node.loading) as Node[]\n\n if (nodes.length) {\n nodes.forEach((node) => {\n lazyLoad(node, () => syncCheckedValue(false, forced))\n })\n } else {\n syncCheckedValue(true, forced)\n }\n } else {\n const values = multiple ? castArray(modelValue) : [modelValue]\n const nodes = unique(\n values.map((val) => store?.getNodeByValue(val, leafOnly))\n ) as Node[]\n syncMenuState(nodes, forced)\n checkedValue.value = cloneDeep(modelValue)\n }\n }\n\n const syncMenuState = (\n newCheckedNodes: CascaderNode[],\n reserveExpandingState = true\n ) => {\n const { checkStrictly } = config.value\n const oldNodes = checkedNodes.value\n const newNodes = newCheckedNodes.filter(\n (node) => !!node && (checkStrictly || node.isLeaf)\n )\n const oldExpandingNode = store?.getSameNode(expandingNode.value!)\n const newExpandingNode =\n (reserveExpandingState && oldExpandingNode) || newNodes[0]\n\n if (newExpandingNode) {\n newExpandingNode.pathNodes.forEach((node) => expandNode(node, true))\n } else {\n expandingNode.value = null\n }\n\n oldNodes.forEach((node) => node.doCheck(false))\n reactive(newNodes).forEach((node) => node.doCheck(true))\n checkedNodes.value = newNodes\n nextTick(scrollToExpandingNode)\n }\n\n const scrollToExpandingNode = () => {\n if (!isClient) return\n\n menuList.value.forEach((menu) => {\n const menuElement = menu?.$el\n if (menuElement) {\n const container = menuElement.querySelector(\n `.${ns.namespace.value}-scrollbar__wrap`\n )\n const activeNode =\n menuElement.querySelector(`.${ns.b('node')}.${ns.is('active')}`) ||\n menuElement.querySelector(`.${ns.b('node')}.in-active-path`)\n scrollIntoView(container, activeNode)\n }\n })\n }\n\n const handleKeyDown = (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 e.preventDefault()\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(target, distance, `.${ns.b('node')}[tabindex=\"-1\"]`)\n )\n break\n }\n case EVENT_CODE.left: {\n e.preventDefault()\n const preMenu = menuList.value[getMenuIndex(target) - 1]\n const expandedNode = preMenu?.$el.querySelector(\n `.${ns.b('node')}[aria-expanded=\"true\"]`\n )\n focusNode(expandedNode)\n break\n }\n case EVENT_CODE.right: {\n e.preventDefault()\n const nextMenu = menuList.value[getMenuIndex(target) + 1]\n const firstNode = nextMenu?.$el.querySelector(\n `.${ns.b('node')}[tabindex=\"-1\"]`\n )\n focusNode(firstNode)\n break\n }\n case EVENT_CODE.enter:\n checkNode(target)\n break\n }\n }\n\n provide(\n CASCADER_PANEL_INJECTION_KEY,\n reactive({\n config,\n expandingNode,\n checkedNodes,\n isHoverMenu,\n initialLoaded,\n renderLabelFn,\n lazyLoad,\n expandNode,\n handleCheckChange,\n })\n )\n\n watch([config, () => props.options], initStore, {\n deep: true,\n immediate: true,\n })\n\n watch(\n () => props.modelValue,\n () => {\n manualChecked = false\n syncCheckedValue()\n },\n {\n deep: true,\n }\n )\n\n watch(\n () => checkedValue.value,\n (val) => {\n if (!isEqual(val, props.modelValue)) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n }\n }\n )\n\n onBeforeUpdate(() => (menuList.value = []))\n\n onMounted(() => !isEmpty(props.modelValue) && syncCheckedValue())\n\n return {\n ns,\n menuList,\n menus,\n checkedNodes,\n handleKeyDown,\n handleCheckChange,\n getFlattedNodes,\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 clear checked nodes\n */\n clearCheckedNodes,\n calculateCheckedValue,\n scrollToExpandingNode,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_Fragment","_renderList","_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoEA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,iBAAA;AAAA,EAEN,UAAY,EAAA;AAAA,IACV,cAAA;AAAA,GACF;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,GAAG,WAAA;AAAA,IACH,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,IAAA;AAAA,KACX;AAAA,IACA,WAAa,EAAA,QAAA;AAAA,GACf;AAAA,EAEA,KAAO,EAAA,CAAC,kBAAoB,EAAA,YAAA,EAAc,SAAS,eAAe,CAAA;AAAA,EAElE,KAAM,CAAA,KAAA,EAAO,EAAE,IAAA,EAAM,KAAS,EAAA,EAAA;AAE5B,IAAA,IAAI,aAAgB,GAAA,KAAA,CAAA;AAEpB,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAClC,IAAM,MAAA,MAAA,GAAS,kBAAkB,KAAK,CAAA,CAAA;AAEtC,IAAA,IAAI,KAAyB,GAAA,IAAA,CAAA;AAC7B,IAAM,MAAA,aAAA,GAAgB,IAAI,IAAI,CAAA,CAAA;AAC9B,IAAM,MAAA,QAAA,GAAW,GAAW,CAAA,EAAE,CAAA,CAAA;AAC9B,IAAM,MAAA,YAAA,GAAe,IAA6B,IAAI,CAAA,CAAA;AACtD,IAAM,MAAA,KAAA,GAAQ,GAAsB,CAAA,EAAE,CAAA,CAAA;AACtC,IAAM,MAAA,aAAA,GAAgB,IAA4B,IAAI,CAAA,CAAA;AACtD,IAAM,MAAA,YAAA,GAAe,GAAoB,CAAA,EAAE,CAAA,CAAA;AAE3C,IAAA,MAAM,cAAc,QAAS,CAAA,MAAM,MAAO,CAAA,KAAA,CAAM,kBAAkB,OAAO,CAAA,CAAA;AACzE,IAAA,MAAM,gBAAgB,QAAS,CAAA,MAAM,KAAM,CAAA,WAAA,IAAe,MAAM,OAAO,CAAA,CAAA;AAEvE,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,MAAM,EAAE,OAAY,EAAA,GAAA,KAAA,CAAA;AACpB,MAAA,MAAM,MAAM,MAAO,CAAA,KAAA,CAAA;AAEnB,MAAgB,aAAA,GAAA,KAAA,CAAA;AAChB,MAAQ,KAAA,GAAA,IAAI,KAAM,CAAA,OAAA,EAAS,GAAG,CAAA,CAAA;AAC9B,MAAA,KAAA,CAAM,KAAQ,GAAA,CAAC,KAAM,CAAA,QAAA,EAAU,CAAA,CAAA;AAE/B,MAAA,IAAI,GAAI,CAAA,IAAA,IAAQ,OAAQ,CAAA,KAAA,CAAM,OAAO,CAAG,EAAA;AACtC,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,QAAS,QAAA,CAAA,KAAA,CAAA,EAAW,CAAC,IAAS,KAAA;AAC5B,UAAA,IAAI,IAAM,EAAA;AACR,YAAQ,KAAA,GAAA,IAAI,KAAM,CAAA,IAAA,EAAM,GAAG,CAAA,CAAA;AAC3B,YAAA,KAAA,CAAM,KAAQ,GAAA,CAAC,KAAM,CAAA,QAAA,EAAU,CAAA,CAAA;AAAA,WACjC;AACA,UAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AACtB,UAAA,gBAAA,CAAiB,OAAO,IAAI,CAAA,CAAA;AAAA,SAC7B,CAAA,CAAA;AAAA,OACI,MAAA;AACL,QAAA,gBAAA,CAAiB,OAAO,IAAI,CAAA,CAAA;AAAA,OAC9B;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,QAAA,GAA+C,CAAC,IAAA,EAAM,EAAO,KAAA;AACjE,MAAA,MAAM,MAAM,MAAO,CAAA,KAAA,CAAA;AACnB,MAAA,IAAA,GAAQ,QAAQ,IAAI,IAAA,CAAK,EAAI,EAAA,GAAA,EAAK,QAAW,IAAI,CAAA,CAAA;AACjD,MAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AAEf,MAAM,MAAA,OAAA,GAAU,CAAC,QAA+B,KAAA;AAC9C,QAAA,MAAM,KAAQ,GAAA,IAAA,CAAA;AACd,QAAM,MAAA,MAAA,GAAS,KAAM,CAAA,IAAA,GAAO,IAAO,GAAA,KAAA,CAAA;AACnC,QAAY,QAAA,KAAA,KAAA,IAAmB,IAAA,GAAA,KAAA,CAAA,GAAA,KAAuB,CAAA,WAAA,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA,CAAA;AACtD,QAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA;AAChB,QAAA,KAAA,CAAM,MAAS,GAAA,IAAA,CAAA;AACf,QAAM,KAAA,CAAA,YAAA,GAAe,KAAM,CAAA,YAAA,IAAgB,EAAC,CAAA;AAC5C,QAAA,EAAA,IAAM,GAAG,QAAQ,CAAA,CAAA;AAAA,OACnB,CAAA;AAEA,MAAI,GAAA,CAAA,QAAA,CAAS,MAAM,OAAc,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAM,MAAA,UAAA,GAAmD,CAAC,IAAA,EAAM,MAAW,KAAA;AACzE,MAAA,IAAA,EAAM;AACN,MAAA,MAAM,EAAW,KAAA,EAAA,GAAA,IAAA,CAAM;AACvB,MAAI,MAAA,QAAA,GAAA,KAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAEJ,MAAA,IAAI,gBAAa,CAAA;AACf,MAAmB,IAAA,IAAA,CAAA,MAAA,EAAA;AAAuB,QACrC,gBAAA,GAAA,IAAA,CAAA,SAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA;AACL,OAAmB,MAAA;AACnB,QAAS,mBAAU,IAAQ,CAAA;AAAA,QAC7B,QAAA,CAAA,IAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAEA,OAAA;AACE,MAAA,IAAA,CAAA,CAAA,EAAA,GAAA,aAAsB,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,GAAA,CAAA,EAAA;AACtB,QAAA,aAAc,CAAA,KAAA,GAAA,IAAA,CAAA;AACd,QAAA,WAAW,GAAK,QAAA,CAAA;AAAuC,QACzD,CAAA,MAAA,IAAA,IAAA,CAAA,eAAA,EAAA,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,UAAA,KAAA,EAAA,CAAA,CAAA;AAAA,OACF;AAEA,KAAA,CAAA;AAKE,IAAM,MAAA,iBAAiB,GAAA,CAAA,IAAA,EAAA,OAAoB,EAAA,SAAA,GAAA,IAAA,KAAA;AAC3C,MAAM,MAAA,EAAA,uBAA6B,EAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AACnC,MAAgB,MAAA,OAAA,GAAA,YAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAEhB,MAAC,aAAY,GAAS,IAAA,CAAA;AACtB,MAAA,CAAA,aAAoB,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACpB,MAAsB,IAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AACtB,MAAA,qBAAc,EAAA,CAAA;AACd,MAAA,cAAc,QAAC,IAAA,CAAY,aAAC,IAAA;AAAsC,MACpE,CAAA,SAAA,IAAA,CAAA,QAAA,IAAA,CAAA,aAAA,IAAA,gBAAA,CAAA,IAAA,CAAA,CAAA;AAEA,KAAM,CAAA;AACJ,IAAA,MAAI,gBAAC,GAAA,CAAA,IAAA,KAAA;AAAM,MAAA,IAAA,CAAA,IAAA;AACX,QAAA,OAAY;AACZ,MAAA,IAAA,GAAA,IAAA,CAAA,MAAqB,CAAA;AACrB,MAAA,qBAAuB,CAAA,CAAA;AAAA,MACzB,IAAA,IAAA,UAAA,CAAA,IAAA,CAAA,CAAA;AAEA,KAAM,CAAA;AACJ,IAAO,MAAA,2BAA+B,KAAA;AAAA,MACxC,OAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,eAAA,CAAA,QAAA,CAAA,CAAA;AAEA,KAAM,CAAA;AACJ,IAAO,MAAA,eAAA,GAAA,CAAgB,QAAQ,KAAG;AAAuC,MAC3E,IAAA,EAAA,CAAA;AAEA,MAAA,4BAAgC,CAAA,QAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,OAAA,KAAA,KAAA,CAAA,CAAA;AAC9B,KAAA,CAAA;AACA,IAAsB,MAAA,iBAAA,GAAA,MAAA;AACtB,MAAA,YAAc,CAAA,KAAA,CAAA,OAAY,CAAA,CAAA,IAAM,KAAI,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACpC,MAAA,qBAAsB,EAAA,CAAA;AACtB,MAAK,KAAA,CAAA,KAAA,GAAA,KAAA,CAAA,KAAmB,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,MAC1B,aAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAEA,MAAA,IAAM;AACJ,KAAM,CAAA;AACN,IAAA,MAAA,qBAA8B,GAAA,MAAA;AAC9B,MAAM,IAAA,EAAA,CAAA;AAEN,MAAM,MAAA,EAAA,aAA4B,EAAA,QAAA,EAAA,GAAA,MAAA,CAAA,KAAkB,CAAA;AACpD,MAAA,MAAM,WAAe,YAAK,CAAA,KAAS;AACnC,MAAA,MAAA,QAAqB,GAAA,eAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACrB,MAAA,MAAA,KAAA,GAAqB,mBAAoB,CAAA,QAAA,EAAA,QAAa,CAAA,CAAA;AAAA,MACxD,MAAA,MAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAEA,MAAA,YAAyB,CAAA,KAAA,GAAA,KAAU,CAAA;AACjC,MAAA,YAAuB,CAAA,KAAA,GAAA,QAAA,GAAA,MAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAA,IAAA,CAAA;AACvB,KAAA,CAAA;AACA,IAAA,MAAA,gBAAkB,GAAA,CAAA,MAAA,GAAA,KAAA,EAAA,MAAA,GAAA,KAAA,KAAA;AAElB,MACE,oBACA,GAAA,KAAA,CAAA;AAGA,MAAA,MAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AAEF,MAAI,MAAA,QAAiB,GAAA,CAAA,aAAA,CAAA;AACnB,MAAA,IAAA,CAAA,aACE,CAAA,KAAA,IAAA,aAAsB,IAAA,CAAA,MAAA,IAAU,OAClC,CAAA,UAAA,EAAA,YAAA,CAAA,KAAA,CAAA;AACA,QAAM,OAAA;AAIN,MAAA,IAAA,QAAU,CAAQ,MAAA,EAAA;AAChB,QAAM,MAAA,MAAA,GAAA,MAAkB,CAAA,WAAA,CAAA,SAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AACtB,QAAA,MAAA,KAAA,GAAe,MAAA,CAAA,GAAA,CAAM,CAAiB,GAAA,KAAA,KAAA,IAAA,IAAA,QAAa,CAAC,GAAA,KAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,IAAA,KAAA,CAAA,CAAA,IAAA,IAAA,CAAA,IAAA,CAAA,MAAA,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA;AAAA,QAAA,IACrD,KAAA,CAAA,MAAA,EAAA;AAAA,UACI,KAAA,CAAA,OAAA,CAAA,CAAA,IAAA,KAAA;AACL,YAAA,QAAA,CAAA,IAAA,EAAiB,MAAM,gBAAM,CAAA,KAAA,EAAA,MAAA,CAAA,CAAA,CAAA;AAAA,WAC/B,CAAA,CAAA;AAAA,SACK,MAAA;AACL,UAAA,gBAA0B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAC1B,SAAM;AAGN,OAAA,MAAA;AACA,QAAa,MAAA,MAAA,GAAA,oBAA4B,CAAA,UAAA,CAAA,GAAA,CAAA,UAAA,CAAA,CAAA;AAAA,QAC3C,MAAA,KAAA,GAAA,MAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,cAAA,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAAA,QACF,aAAA,CAAA,KAAA,EAAA,MAAA,CAAA,CAAA;AAEA,QAAA,YAAsB,CAAA,KAAA,GAEpB,SAAA,CAAA,UAAA,CAAA,CAAA;AAEA,OAAM;AACN,KAAA,CAAA;AACA,IAAM,MAAA,aAAW,GAAgB,CAAA,eAAA,EAAA,qBACnB,GAA0B,IAAA,KAAA;AAExC,MAAA,MAAM,EAAmB,aAAA,EAAA,GAAA,MAAO,CAAY,KAAA,CAAA;AAC5C,MAAM,MAAA,QAAA,GAAA,YACsB,CAAA,KAAA,CAAA;AAE5B,MAAA,MAAsB,QAAA,GAAA,eAAA,CAAA,MAAA,CAAA,CAAA,IAAA,KAAA,CAAA,CAAA,IAAA,KAAA,aAAA,IAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AACpB,MAAA,MAAA,wBAAmC,IAAA,IAAC,SAAS,GAAW,KAAA,CAAA,YAAU,aAAC,CAAA,KAAA,CAAA,CAAA;AAAA,MACrE,MAAO,gBAAA,GAAA,qBAAA,IAAA,gBAAA,IAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AACL,MAAA,IAAA,gBAAsB,EAAA;AAAA,QACxB,gBAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA,IAAA,KAAA,UAAA,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAEA,OAAA,MAAA;AACA,QAAS,aAAA,CAAA,KAAkB,GAAA,IAAC;AAC5B,OAAA;AACA,MAAA,QAAA,CAAS,OAAqB,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,MAChC,QAAA,CAAA,QAAA,CAAA,CAAA,OAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAEA,MAAA,6BAAoC,CAAA;AAClC,MAAA,QAAK,CAAA,qBAAA,CAAA,CAAA;AAAU,KAAA,CAAA;AAEf,IAAS,MAAA,qBAAwB,GAAA,MAAA;AAC/B,MAAA,IAAA,CAAA;AACA,QAAA,OAAiB;AACf,MAAA,QAAA,CAAA,aAAkB,CAAY,CAAA,IAAA,KAAA;AAG9B,QAAA,MAAA,kBACc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAqB,CAAA;AAEnC,QAAA,IAAA,WAAA,EAAe;AAAqB,UACtC,MAAA,SAAA,GAAA,WAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,SAAA,CAAA,KAAA,CAAA,gBAAA,CAAA,CAAA,CAAA;AAAA,UACD,MAAA,UAAA,GAAA,WAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAA,WAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA;AAAA,UACH,cAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAEA,SAAM;AACJ,OAAA,CAAA,CAAA;AACA,KAAA,CAAA;AAEA,IAAQ,MAAA,aAAA,GAAA,CAAA,CAAA,KAAA;AAAA,MAAA,MAAA,MACU,GAAA,CAAA,CAAA,MAAA,CAAA;AAAA,MAAA,MAAA,YACA,CAAM;AACpB,MAAA,QAAiB,IAAA;AACjB,QAAA,KAAA,UAAiB,CAAA,EAAA,CAAA;AACjB,QACE,KAAA,UAAA,CAAA,IAAA,EAAA;AAEF,UAAA,CAAA,CAAA,cAAA,EAAA,CAAA;AAAA,UACF,MAAA,QAAA,GAAA,IAAA,KAAA,UAAA,CAAA,EAAA,GAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,UAAA,oBACsB,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;AACpB,UAAA,MAAiB;AACjB,SAAA;AACA,QAAM,KAAA,UAAA,CAAA,IAAA,EAAA;AAGN,UAAA,CAAA,CAAA,cAAsB,EAAA,CAAA;AACtB,UAAA,MAAA,OAAA,GAAA,QAAA,CAAA,KAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,UACF,MAAA,YAAA,GAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,CAAA;AAAA,UAAA,sBACuB,CAAA,CAAA;AACrB,UAAA,MAAiB;AACjB,SAAA;AACA,QAAM,KAAA,UAAA,CAAA;AAGN,UAAA,CAAA,CAAA,cAAmB,EAAA,CAAA;AACnB,UAAA,MAAA,QAAA,GAAA,QAAA,CAAA,KAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,UACF,MAAA,SAAA,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA;AAAA,UAAA,SACgB,CAAA,SAAA,CAAA,CAAA;AACd,UAAA,MAAA;AACA,SAAA;AAAA,QAAA,KAAA,UAAA,CAAA,KAAA;AAAA,UAEN,SAAA,CAAA,MAAA,CAAA,CAAA;AAEA,UAAA;AAEW,OACP;AAAA,KACA,CAAA;AAAA,IACA,OAAA,CAAA,4BAAA,EAAA,QAAA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MAEJ,QAAA;AAEA,MAAA,UAAe;AAAiC,MAC9C,iBAAM;AAAA,KAAA,CACN,CAAW,CAAA;AAAA,IACb,KAAC,CAAA,CAAA,MAAA,EAAA,MAAA,KAAA,CAAA,OAAA,CAAA,EAAA,SAAA,EAAA;AAED,MACE,IAAA,EAAA,IAAM;AAEJ,MAAgB,SAAA,EAAA,IAAA;AAChB,KAAiB,CAAA,CAAA;AAAA,IACnB,KACA,CAAA,MAAA,KAAA,CAAA,UAAA,EAAA,MAAA;AAAA,MACE,aAAM,GAAA,KAAA,CAAA;AAAA,MAEV,gBAAA,EAAA,CAAA;AAEA,KAAA,EAAA;AAGI,MAAA,IAAI,EAAC,IAAA;AACH,KAAA,CAAA,CAAA;AACA,IAAA,KAAA,CAAA,kBAAsB,CAAA,KAAA,EAAA,CAAA,GAAA,KAAA;AAAA,MACxB,IAAA,CAAA,OAAA,CAAA,GAAA,EAAA,KAAA,CAAA,UAAA,CAAA,EAAA;AAAA,QAEJ,IAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,CAAA;AAEA,QAAA,IAAA,CAAA,YAAsB,EAAA,GAAA,CAAA,CAAA;AAEtB,OAAA;AAEA,KAAO,CAAA,CAAA;AAAA,IACL,cAAA,CAAA,MAAA,QAAA,CAAA,KAAA,GAAA,EAAA,CAAA,CAAA;AAAA,IACA,SAAA,CAAA,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,UAAA,CAAA,IAAA,gBAAA,EAAA,CAAA,CAAA;AAAA,IACA,OAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MAIA,aAAA;AAAA,MAIA,iBAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACF,iBAAA;AAAA,MACF,qBAAA;AACF,MAAC,qBAAA;;;;AA5XO,SAdH,wBAAW,EAAA,cAAe,EAAA,KAAA,EAAA;AAAqB,EAAA,MACtC,2BAAA,GAAAA,gBAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,EAAA,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AAEV,IAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,OAC0B,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,MAAA,CAAA,CAAK,CAArB;iCASS;AAAA,GAAA,EAAA;AARX,KAAAF,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAAAE,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,IAAA,CAAA,KAAA,EAAA,CAAA,IAAA,EAAA,KAAA,KAAA;aACFJ,SAAa,EAAA,EAAAK,WAAkB,CAAA,2BAAA,EAAA;AAAA,QAClC,GAAA,EAAA,KAAA;AAAA,QACA,OAAK,MAAU;AAAA,QAAA,GAAA,EAAA,CAAA,IAAA,KAAA,IAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,IAAA;AAEL,QAAA,KAAA;AACY,QAAA,KAAA,EAAA,CAAA,GAAA,IAAA,CAAA;AAAA,OAAA,EAAA;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, getCurrentInstance, inject, ref, computed, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createElementBlock, Fragment, renderList, createVNode, createTextVNode, toDisplayString, createCommentVNode } from 'vue';
1
+ import { defineComponent, getCurrentInstance, inject, ref, computed, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createElementBlock, Fragment, renderList, createVNode, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from 'vue';
2
2
  import { ElScrollbar } from '../../scrollbar/index.mjs';
3
3
  import '../../../hooks/index.mjs';
4
4
  import { Loading } from '@element-plus/icons-vue';
@@ -131,14 +131,18 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
131
131
  ], 2)) : _ctx.isEmpty ? (openBlock(), createElementBlock("div", {
132
132
  key: 1,
133
133
  class: normalizeClass(_ctx.ns.e("empty-text"))
134
- }, toDisplayString(_ctx.t("el.cascader.noData")), 3)) : ((_a = _ctx.panel) == null ? void 0 : _a.isHoverMenu) ? (openBlock(), createElementBlock("svg", {
134
+ }, [
135
+ renderSlot(_ctx.$slots, "empty", {}, () => [
136
+ createTextVNode(toDisplayString(_ctx.t("el.cascader.noData")), 1)
137
+ ])
138
+ ], 2)) : ((_a = _ctx.panel) == null ? void 0 : _a.isHoverMenu) ? (openBlock(), createElementBlock("svg", {
135
139
  key: 2,
136
140
  ref: "hoverZone",
137
141
  class: normalizeClass(_ctx.ns.e("hover-zone"))
138
142
  }, null, 2)) : createCommentVNode("v-if", true)
139
143
  ];
140
144
  }),
141
- _: 1
145
+ _: 3
142
146
  }, 8, ["class", "wrap-class", "view-class", "onMousemove", "onMouseleave"]);
143
147
  }
144
148
  var ElCascaderMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "menu.vue"]]);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.mjs","sources":["../../../../../../packages/components/cascader-panel/src/menu.vue"],"sourcesContent":["<template>\n <el-scrollbar\n :key=\"menuId\"\n tag=\"ul\"\n role=\"menu\"\n :class=\"ns.b()\"\n :wrap-class=\"ns.e('wrap')\"\n :view-class=\"[ns.e('list'), ns.is('empty', isEmpty)]\"\n @mousemove=\"handleMouseMove\"\n @mouseleave=\"clearHoverZone\"\n >\n <el-cascader-node\n v-for=\"node in nodes\"\n :key=\"node.uid\"\n :node=\"node\"\n :menu-id=\"menuId\"\n @expand=\"handleExpand\"\n />\n <div v-if=\"isLoading\" :class=\"ns.e('empty-text')\">\n <el-icon size=\"14\" :class=\"ns.is('loading')\">\n <loading />\n </el-icon>\n {{ t('el.cascader.loading') }}\n </div>\n <div v-else-if=\"isEmpty\" :class=\"ns.e('empty-text')\">\n {{ t('el.cascader.noData') }}\n </div>\n <svg\n v-else-if=\"panel?.isHoverMenu\"\n ref=\"hoverZone\"\n :class=\"ns.e('hover-zone')\"\n />\n </el-scrollbar>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, getCurrentInstance, inject, ref } from 'vue'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { useId, useLocale, useNamespace } from '@element-plus/hooks'\nimport { Loading } from '@element-plus/icons-vue'\nimport ElIcon from '@element-plus/components/icon'\nimport ElCascaderNode from './node.vue'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\n\nimport type { default as CascaderNode } from './node'\nimport type { PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\n\nexport default defineComponent({\n name: 'ElCascaderMenu',\n\n components: {\n Loading,\n ElIcon,\n ElScrollbar,\n ElCascaderNode,\n },\n\n props: {\n nodes: {\n type: Array as PropType<CascaderNode[]>,\n required: true,\n },\n index: {\n type: Number,\n required: true,\n },\n },\n\n setup(props) {\n const instance = getCurrentInstance()!\n const ns = useNamespace('cascader-menu')\n\n const { t } = useLocale()\n const id = useId()\n let activeNode: Nullable<HTMLElement> = null\n let hoverTimer: Nullable<number> = null\n\n const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n const hoverZone = ref<null | SVGSVGElement>(null)\n\n const isEmpty = computed(() => !props.nodes.length)\n const isLoading = computed(() => !panel.initialLoaded)\n const menuId = computed(() => `${id.value}-${props.index}`)\n\n const handleExpand = (e: MouseEvent) => {\n activeNode = e.target as HTMLElement\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!panel.isHoverMenu || !activeNode || !hoverZone.value) return\n\n if (activeNode.contains(e.target as HTMLElement)) {\n clearHoverTimer()\n\n const el = instance.vnode.el as HTMLElement\n const { left } = el.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = el\n const startX = e.clientX - left\n const top = activeNode.offsetTop\n const bottom = top + activeNode.offsetHeight\n\n hoverZone.value.innerHTML = `\n <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${top} L${offsetWidth} 0 V${top} Z\" />\n <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${bottom} L${offsetWidth} ${offsetHeight} V${bottom} Z\" />\n `\n } else if (!hoverTimer) {\n hoverTimer = window.setTimeout(\n clearHoverZone,\n panel.config.hoverThreshold\n )\n }\n }\n\n const clearHoverTimer = () => {\n if (!hoverTimer) return\n clearTimeout(hoverTimer)\n hoverTimer = null\n }\n\n const clearHoverZone = () => {\n if (!hoverZone.value) return\n hoverZone.value.innerHTML = ''\n clearHoverTimer()\n }\n return {\n ns,\n panel,\n hoverZone,\n isEmpty,\n isLoading,\n menuId,\n t,\n handleExpand,\n handleMouseMove,\n clearHoverZone,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","_createVNode","_withCtx","_createTextVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"menu.mjs","sources":["../../../../../../packages/components/cascader-panel/src/menu.vue"],"sourcesContent":["<template>\n <el-scrollbar\n :key=\"menuId\"\n tag=\"ul\"\n role=\"menu\"\n :class=\"ns.b()\"\n :wrap-class=\"ns.e('wrap')\"\n :view-class=\"[ns.e('list'), ns.is('empty', isEmpty)]\"\n @mousemove=\"handleMouseMove\"\n @mouseleave=\"clearHoverZone\"\n >\n <el-cascader-node\n v-for=\"node in nodes\"\n :key=\"node.uid\"\n :node=\"node\"\n :menu-id=\"menuId\"\n @expand=\"handleExpand\"\n />\n <div v-if=\"isLoading\" :class=\"ns.e('empty-text')\">\n <el-icon size=\"14\" :class=\"ns.is('loading')\">\n <loading />\n </el-icon>\n {{ t('el.cascader.loading') }}\n </div>\n <div v-else-if=\"isEmpty\" :class=\"ns.e('empty-text')\">\n <slot name=\"empty\">{{ t('el.cascader.noData') }}</slot>\n </div>\n <svg\n v-else-if=\"panel?.isHoverMenu\"\n ref=\"hoverZone\"\n :class=\"ns.e('hover-zone')\"\n />\n </el-scrollbar>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, getCurrentInstance, inject, ref } from 'vue'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { useId, useLocale, useNamespace } from '@element-plus/hooks'\nimport { Loading } from '@element-plus/icons-vue'\nimport ElIcon from '@element-plus/components/icon'\nimport ElCascaderNode from './node.vue'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\n\nimport type { default as CascaderNode } from './node'\nimport type { PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\n\nexport default defineComponent({\n name: 'ElCascaderMenu',\n\n components: {\n Loading,\n ElIcon,\n ElScrollbar,\n ElCascaderNode,\n },\n\n props: {\n nodes: {\n type: Array as PropType<CascaderNode[]>,\n required: true,\n },\n index: {\n type: Number,\n required: true,\n },\n },\n\n setup(props) {\n const instance = getCurrentInstance()!\n const ns = useNamespace('cascader-menu')\n\n const { t } = useLocale()\n const id = useId()\n let activeNode: Nullable<HTMLElement> = null\n let hoverTimer: Nullable<number> = null\n\n const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n const hoverZone = ref<null | SVGSVGElement>(null)\n\n const isEmpty = computed(() => !props.nodes.length)\n const isLoading = computed(() => !panel.initialLoaded)\n const menuId = computed(() => `${id.value}-${props.index}`)\n\n const handleExpand = (e: MouseEvent) => {\n activeNode = e.target as HTMLElement\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!panel.isHoverMenu || !activeNode || !hoverZone.value) return\n\n if (activeNode.contains(e.target as HTMLElement)) {\n clearHoverTimer()\n\n const el = instance.vnode.el as HTMLElement\n const { left } = el.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = el\n const startX = e.clientX - left\n const top = activeNode.offsetTop\n const bottom = top + activeNode.offsetHeight\n\n hoverZone.value.innerHTML = `\n <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${top} L${offsetWidth} 0 V${top} Z\" />\n <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${bottom} L${offsetWidth} ${offsetHeight} V${bottom} Z\" />\n `\n } else if (!hoverTimer) {\n hoverTimer = window.setTimeout(\n clearHoverZone,\n panel.config.hoverThreshold\n )\n }\n }\n\n const clearHoverTimer = () => {\n if (!hoverTimer) return\n clearTimeout(hoverTimer)\n hoverTimer = null\n }\n\n const clearHoverZone = () => {\n if (!hoverZone.value) return\n hoverZone.value.innerHTML = ''\n clearHoverTimer()\n }\n return {\n ns,\n panel,\n hoverZone,\n isEmpty,\n isLoading,\n menuId,\n t,\n handleExpand,\n handleMouseMove,\n clearHoverZone,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","_createVNode","_withCtx","_createTextVNode","_toDisplayString","_renderSlot"],"mappings":"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"}
@@ -3,6 +3,12 @@ import type { CollapseActiveName } from './collapse';
3
3
  export declare const collapseItemProps: {
4
4
  readonly title: import("@element-plus/nightly/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
5
5
  readonly name: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => CollapseActiveName & {}) | (() => CollapseActiveName) | ((new (...args: any[]) => CollapseActiveName & {}) | (() => CollapseActiveName))[], unknown, unknown, undefined, boolean>;
6
+ readonly icon: {
7
+ readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown>>;
8
+ readonly required: false;
9
+ readonly validator: ((val: unknown) => boolean) | undefined;
10
+ __epPropKey: true;
11
+ };
6
12
  readonly disabled: BooleanConstructor;
7
13
  };
8
14
  export declare type CollapseItemProps = ExtractPropTypes<typeof collapseItemProps>;
@@ -1,5 +1,7 @@
1
1
  import '../../../utils/index.mjs';
2
+ import { ArrowRight } from '@element-plus/icons-vue';
2
3
  import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
4
+ import { iconPropType } from '../../../utils/vue/icon.mjs';
3
5
 
4
6
  const collapseItemProps = buildProps({
5
7
  title: {
@@ -10,6 +12,10 @@ const collapseItemProps = buildProps({
10
12
  type: definePropType([String, Number]),
11
13
  default: void 0
12
14
  },
15
+ icon: {
16
+ type: iconPropType,
17
+ default: ArrowRight
18
+ },
13
19
  disabled: Boolean
14
20
  });
15
21
 
@@ -1 +1 @@
1
- {"version":3,"file":"collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type { CollapseActiveName } from './collapse'\n\nexport const collapseItemProps = buildProps({\n /**\n * @description title of the panel\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description unique identification of the panel\n */\n name: {\n type: definePropType<CollapseActiveName>([String, Number]),\n default: undefined,\n },\n /**\n * @description disable the collapse item\n */\n disabled: Boolean,\n} as const)\nexport type CollapseItemProps = ExtractPropTypes<typeof collapseItemProps>\n"],"names":[],"mappings":";;;AACY,MAAC,iBAAiB,GAAG,UAAU,CAAC;AAC5C,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,CAAC;;;;"}
1
+ {"version":3,"file":"collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.ts"],"sourcesContent":["import { buildProps, definePropType, iconPropType } from '@element-plus/utils'\nimport { ArrowRight } from '@element-plus/icons-vue'\nimport type { ExtractPropTypes } from 'vue'\nimport type { CollapseActiveName } from './collapse'\n\nexport const collapseItemProps = buildProps({\n /**\n * @description title of the panel\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description unique identification of the panel\n */\n name: {\n type: definePropType<CollapseActiveName>([String, Number]),\n default: undefined,\n },\n /**\n * @description icon of the collapse item\n */\n icon: {\n type: iconPropType,\n default: ArrowRight,\n },\n /**\n * @description disable the collapse item\n */\n disabled: Boolean,\n} as const)\nexport type CollapseItemProps = ExtractPropTypes<typeof collapseItemProps>\n"],"names":[],"mappings":";;;;;AAEY,MAAC,iBAAiB,GAAG,UAAU,CAAC;AAC5C,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,CAAC;;;;"}
@@ -1,6 +1,12 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  readonly title: import("../../../utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
3
3
  readonly name: import("../../../utils").EpPropFinalized<(new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName) | ((new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName))[], unknown, unknown, undefined, boolean>;
4
+ readonly icon: {
5
+ readonly type: import("vue").PropType<import("../../../utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown>>;
6
+ readonly required: false;
7
+ readonly validator: ((val: unknown) => boolean) | undefined;
8
+ __epPropKey: true;
9
+ };
4
10
  readonly disabled: BooleanConstructor;
5
11
  }, {
6
12
  /** @description current collapse-item whether active */
@@ -8,6 +14,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
8
14
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
9
15
  readonly title: import("../../../utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
10
16
  readonly name: import("../../../utils").EpPropFinalized<(new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName) | ((new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName))[], unknown, unknown, undefined, boolean>;
17
+ readonly icon: {
18
+ readonly type: import("vue").PropType<import("../../../utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown>>;
19
+ readonly required: false;
20
+ readonly validator: ((val: unknown) => boolean) | undefined;
21
+ __epPropKey: true;
22
+ };
11
23
  readonly disabled: BooleanConstructor;
12
24
  }>>, {
13
25
  readonly title: string;
@@ -15,6 +27,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
15
27
  readonly name: import("../../../utils").EpPropMergeType<(new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName) | ((new (...args: any[]) => import("./collapse").CollapseActiveName & {}) | (() => import("./collapse").CollapseActiveName))[], unknown, unknown>;
16
28
  }>, {
17
29
  title?(_: {}): any;
30
+ icon?(_: {
31
+ isActive: boolean | undefined;
32
+ }): any;
18
33
  default?(_: {}): any;
19
34
  }>;
20
35
  export default _default;
@@ -1,7 +1,6 @@
1
- import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withKeys, withModifiers, renderSlot, createTextVNode, toDisplayString, createVNode, withCtx, withDirectives, vShow } from 'vue';
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withKeys, withModifiers, renderSlot, createTextVNode, toDisplayString, createVNode, withCtx, createBlock, resolveDynamicComponent, withDirectives, vShow } from 'vue';
2
2
  import { ElCollapseTransition } from '../../collapse-transition/index.mjs';
3
3
  import { ElIcon } from '../../icon/index.mjs';
4
- import { ArrowRight } from '@element-plus/icons-vue';
5
4
  import { collapseItemProps } from './collapse-item.mjs';
6
5
  import { useCollapseItem, useCollapseItemDOM } from './use-collapse-item.mjs';
7
6
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
@@ -54,14 +53,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
53
  renderSlot(_ctx.$slots, "title", {}, () => [
55
54
  createTextVNode(toDisplayString(_ctx.title), 1)
56
55
  ]),
57
- createVNode(unref(ElIcon), {
58
- class: normalizeClass(unref(arrowKls))
59
- }, {
60
- default: withCtx(() => [
61
- createVNode(unref(ArrowRight))
62
- ]),
63
- _: 1
64
- }, 8, ["class"])
56
+ renderSlot(_ctx.$slots, "icon", { isActive: unref(isActive) }, () => [
57
+ createVNode(unref(ElIcon), {
58
+ class: normalizeClass(unref(arrowKls))
59
+ }, {
60
+ default: withCtx(() => [
61
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))
62
+ ]),
63
+ _: 1
64
+ }, 8, ["class"])
65
+ ])
65
66
  ], 42, ["id", "aria-expanded", "aria-controls", "aria-describedby", "tabindex", "onClick", "onKeydown", "onFocus", "onBlur"]),
66
67
  createVNode(unref(ElCollapseTransition), null, {
67
68
  default: withCtx(() => [
@@ -1 +1 @@
1
- {"version":3,"file":"collapse-item2.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <button\n :id=\"scopedHeadId\"\n :class=\"headKls\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"scopedContentId\"\n :aria-describedby=\"scopedContentId\"\n :tabindex=\"disabled ? -1 : 0\"\n type=\"button\"\n @click=\"handleHeaderClick\"\n @keydown.space.enter.stop.prevent=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <slot name=\"title\">{{ title }}</slot>\n <el-icon :class=\"arrowKls\">\n <arrow-right />\n </el-icon>\n </button>\n\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"scopedContentId\"\n role=\"region\"\n :class=\"itemWrapperKls\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"scopedHeadId\"\n >\n <div :class=\"itemContentKls\">\n <slot />\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowRight } from '@element-plus/icons-vue'\nimport { collapseItemProps } from './collapse-item'\nimport { useCollapseItem, useCollapseItemDOM } from './use-collapse-item'\n\ndefineOptions({\n name: 'ElCollapseItem',\n})\n\nconst props = defineProps(collapseItemProps)\nconst {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n} = useCollapseItem(props)\n\nconst {\n arrowKls,\n headKls,\n rootKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n} = useCollapseItemDOM(props, { focusing, isActive, id })\n\ndefineExpose({\n /** @description current collapse-item whether active */\n isActive,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;mCA6Cc,CAAA;AAAA,EACZ,IAAM,EAAA,gBAAA;AACR,CAAA,CAAA,CAAA;;;;;;AAGA,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,gBAAA;AAAA,KAAA,GACE,gBAAgB,KAAK,CAAA,CAAA;AAEzB,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,KAAA,GACE,mBAAmB,KAAO,EAAA,EAAE,QAAU,EAAA,QAAA,EAAU,IAAI,CAAA,CAAA;AAExD,IAAa,MAAA,CAAA;AAAA,MAEX,QAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"collapse-item2.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"rootKls\">\n <button\n :id=\"scopedHeadId\"\n :class=\"headKls\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"scopedContentId\"\n :aria-describedby=\"scopedContentId\"\n :tabindex=\"disabled ? -1 : 0\"\n type=\"button\"\n @click=\"handleHeaderClick\"\n @keydown.space.enter.stop.prevent=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <slot name=\"title\">{{ title }}</slot>\n <slot name=\"icon\" :is-active=\"isActive\">\n <el-icon :class=\"arrowKls\">\n <component :is=\"icon\" />\n </el-icon>\n </slot>\n </button>\n\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"scopedContentId\"\n role=\"region\"\n :class=\"itemWrapperKls\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"scopedHeadId\"\n >\n <div :class=\"itemContentKls\">\n <slot />\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { collapseItemProps } from './collapse-item'\nimport { useCollapseItem, useCollapseItemDOM } from './use-collapse-item'\n\ndefineOptions({\n name: 'ElCollapseItem',\n})\n\nconst props = defineProps(collapseItemProps)\nconst {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n} = useCollapseItem(props)\n\nconst {\n arrowKls,\n headKls,\n rootKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n} = useCollapseItemDOM(props, { focusing, isActive, id })\n\ndefineExpose({\n /** @description current collapse-item whether active */\n isActive,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;mCA8Cc,CAAA;AAAA,EACZ,IAAM,EAAA,gBAAA;AACR,CAAA,CAAA,CAAA;;;;;;AAGA,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,gBAAA;AAAA,KAAA,GACE,gBAAgB,KAAK,CAAA,CAAA;AAEzB,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,KAAA,GACE,mBAAmB,KAAO,EAAA,EAAE,QAAU,EAAA,QAAA,EAAU,IAAI,CAAA,CAAA;AAExD,IAAa,MAAA,CAAA;AAAA,MAEX,QAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -208,6 +208,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
208
208
  color.fromString(newVal);
209
209
  }
210
210
  });
211
+ watch(() => props.colorFormat, () => {
212
+ if (props.colorFormat) {
213
+ color.format = props.colorFormat;
214
+ color.doOnChange();
215
+ emit(UPDATE_MODEL_EVENT, color.value);
216
+ }
217
+ });
211
218
  watch(() => currentColor.value, (val) => {
212
219
  customInput.value = val;
213
220
  shouldActiveChange && emit("activeChange", val);
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker2.mjs","sources":["../../../../../../packages/components/color-picker/src/color-picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n :visible=\"showPicker\"\n :show-arrow=\"false\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :offset=\"0\"\n :gpu-acceleration=\"false\"\n :popper-class=\"[ns.be('picker', 'panel'), ns.b('dropdown'), popperClass]\"\n :stop-popper-mouse-event=\"false\"\n effect=\"light\"\n trigger=\"click\"\n :teleported=\"teleported\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n @hide=\"setShowPicker(false)\"\n >\n <template #content>\n <div v-click-outside=\"handleClickOutside\" @keydown.esc=\"handleEsc\">\n <div :class=\"ns.be('dropdown', 'main-wrapper')\">\n <hue-slider ref=\"hue\" class=\"hue-slider\" :color=\"color\" vertical />\n <sv-panel ref=\"sv\" :color=\"color\" />\n </div>\n <alpha-slider v-if=\"showAlpha\" ref=\"alpha\" :color=\"color\" />\n <predefine\n v-if=\"predefine\"\n ref=\"predefine\"\n :enable-alpha=\"showAlpha\"\n :color=\"color\"\n :colors=\"predefine\"\n />\n <div :class=\"ns.be('dropdown', 'btns')\">\n <span :class=\"ns.be('dropdown', 'value')\">\n <el-input\n ref=\"inputRef\"\n v-model=\"customInput\"\n :validate-event=\"false\"\n size=\"small\"\n @keyup.enter=\"handleConfirm\"\n @blur=\"handleConfirm\"\n />\n </span>\n <el-button\n :class=\"ns.be('dropdown', 'link-btn')\"\n text\n size=\"small\"\n @click=\"clear\"\n >\n {{ t('el.colorpicker.clear') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n :class=\"ns.be('dropdown', 'btn')\"\n @click=\"confirmValue\"\n >\n {{ t('el.colorpicker.confirm') }}\n </el-button>\n </div>\n </div>\n </template>\n <template #default>\n <div\n :id=\"buttonId\"\n ref=\"triggerRef\"\n v-bind=\"$attrs\"\n :class=\"btnKls\"\n role=\"button\"\n :aria-label=\"buttonAriaLabel\"\n :aria-labelledby=\"buttonAriaLabelledby\"\n :aria-description=\"\n t('el.colorpicker.description', { color: modelValue || '' })\n \"\n :aria-disabled=\"colorDisabled\"\n :tabindex=\"colorDisabled ? -1 : tabindex\"\n @keydown=\"handleKeyDown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n >\n <div v-if=\"colorDisabled\" :class=\"ns.be('picker', 'mask')\" />\n <div :class=\"ns.be('picker', 'trigger')\" @click=\"handleTrigger\">\n <span :class=\"[ns.be('picker', 'color'), ns.is('alpha', showAlpha)]\">\n <span\n :class=\"ns.be('picker', 'color-inner')\"\n :style=\"{\n backgroundColor: displayedColor,\n }\"\n >\n <el-icon\n v-show=\"modelValue || showPanelColor\"\n :class=\"[ns.be('picker', 'icon'), ns.is('icon-arrow-down')]\"\n >\n <arrow-down />\n </el-icon>\n <el-icon\n v-show=\"!modelValue && !showPanelColor\"\n :class=\"[ns.be('picker', 'empty'), ns.is('icon-close')]\"\n >\n <close />\n </el-icon>\n </span>\n </span>\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { ElTooltip } from '@element-plus/components/tooltip'\nimport { ElInput } from '@element-plus/components/input'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n useFocusController,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { debugWarn } from '@element-plus/utils'\nimport { ArrowDown, Close } from '@element-plus/icons-vue'\nimport AlphaSlider from './components/alpha-slider.vue'\nimport HueSlider from './components/hue-slider.vue'\nimport Predefine from './components/predefine.vue'\nimport SvPanel from './components/sv-panel.vue'\nimport Color from './utils/color'\nimport {\n colorPickerContextKey,\n colorPickerEmits,\n colorPickerProps,\n} from './color-picker'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'ElColorPicker',\n})\nconst props = defineProps(colorPickerProps)\nconst emit = defineEmits(colorPickerEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('color')\nconst { formItem } = useFormItem()\nconst colorSize = useFormSize()\nconst colorDisabled = useFormDisabled()\n\nconst { inputId: buttonId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst hue = ref<InstanceType<typeof HueSlider>>()\nconst sv = ref<InstanceType<typeof SvPanel>>()\nconst alpha = ref<InstanceType<typeof AlphaSlider>>()\nconst popper = ref<TooltipInstance>()\nconst triggerRef = ref()\nconst inputRef = ref()\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(triggerRef, {\n beforeFocus() {\n return colorDisabled.value\n },\n beforeBlur(event) {\n return popper.value?.isFocusInsideContent(event)\n },\n afterBlur() {\n setShowPicker(false)\n resetColor()\n },\n})\n\n// active-change is used to prevent modelValue changes from triggering.\nlet shouldActiveChange = true\n\nconst color = reactive(\n new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat || '',\n value: props.modelValue,\n })\n) as Color\n\nconst showPicker = ref(false)\nconst showPanelColor = ref(false)\nconst customInput = ref('')\n\nconst displayedColor = computed(() => {\n if (!props.modelValue && !showPanelColor.value) {\n return 'transparent'\n }\n return displayedRgb(color, props.showAlpha)\n})\n\nconst currentColor = computed(() => {\n return !props.modelValue && !showPanelColor.value ? '' : color.value\n})\n\nconst buttonAriaLabel = computed<string | undefined>(() => {\n return !isLabeledByFormItem.value\n ? props.ariaLabel || t('el.colorpicker.defaultLabel')\n : undefined\n})\n\nconst buttonAriaLabelledby = computed<string | undefined>(() => {\n return isLabeledByFormItem.value ? formItem?.labelId : undefined\n})\n\nconst btnKls = computed(() => {\n return [\n ns.b('picker'),\n ns.is('disabled', colorDisabled.value),\n ns.bm('picker', colorSize.value),\n ns.is('focused', isFocused.value),\n ]\n})\n\nfunction displayedRgb(color: Color, showAlpha: boolean) {\n if (!(color instanceof Color)) {\n throw new TypeError('color should be instance of _color Class')\n }\n\n const { r, g, b } = color.toRgb()\n return showAlpha\n ? `rgba(${r}, ${g}, ${b}, ${color.get('alpha') / 100})`\n : `rgb(${r}, ${g}, ${b})`\n}\n\nfunction setShowPicker(value: boolean) {\n showPicker.value = value\n}\n\nconst debounceSetShowPicker = debounce(setShowPicker, 100, { leading: true })\n\nfunction show() {\n if (colorDisabled.value) return\n setShowPicker(true)\n}\n\nfunction hide() {\n debounceSetShowPicker(false)\n resetColor()\n}\n\nfunction resetColor() {\n nextTick(() => {\n if (props.modelValue) {\n color.fromString(props.modelValue)\n } else {\n color.value = ''\n nextTick(() => {\n showPanelColor.value = false\n })\n }\n })\n}\n\nfunction handleTrigger() {\n if (colorDisabled.value) return\n debounceSetShowPicker(!showPicker.value)\n}\n\nfunction handleConfirm() {\n color.fromString(customInput.value)\n}\n\nfunction confirmValue() {\n const value = color.value\n emit(UPDATE_MODEL_EVENT, value)\n emit('change', value)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n debounceSetShowPicker(false)\n // check if modelValue change, if not change, then reset color.\n nextTick(() => {\n const newColor = new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat || '',\n value: props.modelValue,\n })\n if (!color.compare(newColor)) {\n resetColor()\n }\n })\n}\n\nfunction clear() {\n debounceSetShowPicker(false)\n emit(UPDATE_MODEL_EVENT, null)\n emit('change', null)\n if (props.modelValue !== null && props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n resetColor()\n}\n\nfunction handleClickOutside() {\n if (!showPicker.value) return\n hide()\n isFocused.value && focus()\n}\n\nfunction handleEsc(event: KeyboardEvent) {\n event.preventDefault()\n event.stopPropagation()\n setShowPicker(false)\n resetColor()\n}\n\nfunction handleKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case EVENT_CODE.enter:\n case EVENT_CODE.space:\n event.preventDefault()\n event.stopPropagation()\n show()\n inputRef.value.focus()\n break\n case EVENT_CODE.esc:\n handleEsc(event)\n break\n }\n}\n\nfunction focus() {\n triggerRef.value.focus()\n}\n\nfunction blur() {\n triggerRef.value.blur()\n}\n\nonMounted(() => {\n if (props.modelValue) {\n customInput.value = currentColor.value\n }\n})\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n showPanelColor.value = false\n } else if (newVal && newVal !== color.value) {\n shouldActiveChange = false\n color.fromString(newVal)\n }\n }\n)\n\nwatch(\n () => currentColor.value,\n (val) => {\n customInput.value = val\n shouldActiveChange && emit('activeChange', val)\n shouldActiveChange = true\n }\n)\n\nwatch(\n () => color.value,\n () => {\n if (!props.modelValue && !showPanelColor.value) {\n showPanelColor.value = true\n }\n }\n)\n\nwatch(\n () => showPicker.value,\n () => {\n nextTick(() => {\n hue.value?.update()\n sv.value?.update()\n alpha.value?.update()\n })\n }\n)\n\nprovide(colorPickerContextKey, {\n currentColor,\n})\n\ndefineExpose({\n /**\n * @description current color object\n */\n color,\n /**\n * @description manually show ColorPicker\n */\n show,\n /**\n * @description manually hide ColorPicker\n */\n hide,\n /**\n * @description focus the input element\n */\n focus,\n /**\n * @description blur the input element\n */\n blur,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-picker2.mjs","sources":["../../../../../../packages/components/color-picker/src/color-picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n :visible=\"showPicker\"\n :show-arrow=\"false\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :offset=\"0\"\n :gpu-acceleration=\"false\"\n :popper-class=\"[ns.be('picker', 'panel'), ns.b('dropdown'), popperClass]\"\n :stop-popper-mouse-event=\"false\"\n effect=\"light\"\n trigger=\"click\"\n :teleported=\"teleported\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n @hide=\"setShowPicker(false)\"\n >\n <template #content>\n <div v-click-outside=\"handleClickOutside\" @keydown.esc=\"handleEsc\">\n <div :class=\"ns.be('dropdown', 'main-wrapper')\">\n <hue-slider ref=\"hue\" class=\"hue-slider\" :color=\"color\" vertical />\n <sv-panel ref=\"sv\" :color=\"color\" />\n </div>\n <alpha-slider v-if=\"showAlpha\" ref=\"alpha\" :color=\"color\" />\n <predefine\n v-if=\"predefine\"\n ref=\"predefine\"\n :enable-alpha=\"showAlpha\"\n :color=\"color\"\n :colors=\"predefine\"\n />\n <div :class=\"ns.be('dropdown', 'btns')\">\n <span :class=\"ns.be('dropdown', 'value')\">\n <el-input\n ref=\"inputRef\"\n v-model=\"customInput\"\n :validate-event=\"false\"\n size=\"small\"\n @keyup.enter=\"handleConfirm\"\n @blur=\"handleConfirm\"\n />\n </span>\n <el-button\n :class=\"ns.be('dropdown', 'link-btn')\"\n text\n size=\"small\"\n @click=\"clear\"\n >\n {{ t('el.colorpicker.clear') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n :class=\"ns.be('dropdown', 'btn')\"\n @click=\"confirmValue\"\n >\n {{ t('el.colorpicker.confirm') }}\n </el-button>\n </div>\n </div>\n </template>\n <template #default>\n <div\n :id=\"buttonId\"\n ref=\"triggerRef\"\n v-bind=\"$attrs\"\n :class=\"btnKls\"\n role=\"button\"\n :aria-label=\"buttonAriaLabel\"\n :aria-labelledby=\"buttonAriaLabelledby\"\n :aria-description=\"\n t('el.colorpicker.description', { color: modelValue || '' })\n \"\n :aria-disabled=\"colorDisabled\"\n :tabindex=\"colorDisabled ? -1 : tabindex\"\n @keydown=\"handleKeyDown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n >\n <div v-if=\"colorDisabled\" :class=\"ns.be('picker', 'mask')\" />\n <div :class=\"ns.be('picker', 'trigger')\" @click=\"handleTrigger\">\n <span :class=\"[ns.be('picker', 'color'), ns.is('alpha', showAlpha)]\">\n <span\n :class=\"ns.be('picker', 'color-inner')\"\n :style=\"{\n backgroundColor: displayedColor,\n }\"\n >\n <el-icon\n v-show=\"modelValue || showPanelColor\"\n :class=\"[ns.be('picker', 'icon'), ns.is('icon-arrow-down')]\"\n >\n <arrow-down />\n </el-icon>\n <el-icon\n v-show=\"!modelValue && !showPanelColor\"\n :class=\"[ns.be('picker', 'empty'), ns.is('icon-close')]\"\n >\n <close />\n </el-icon>\n </span>\n </span>\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { ElTooltip } from '@element-plus/components/tooltip'\nimport { ElInput } from '@element-plus/components/input'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n useFocusController,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { debugWarn } from '@element-plus/utils'\nimport { ArrowDown, Close } from '@element-plus/icons-vue'\nimport AlphaSlider from './components/alpha-slider.vue'\nimport HueSlider from './components/hue-slider.vue'\nimport Predefine from './components/predefine.vue'\nimport SvPanel from './components/sv-panel.vue'\nimport Color from './utils/color'\nimport {\n colorPickerContextKey,\n colorPickerEmits,\n colorPickerProps,\n} from './color-picker'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'ElColorPicker',\n})\nconst props = defineProps(colorPickerProps)\nconst emit = defineEmits(colorPickerEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('color')\nconst { formItem } = useFormItem()\nconst colorSize = useFormSize()\nconst colorDisabled = useFormDisabled()\n\nconst { inputId: buttonId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst hue = ref<InstanceType<typeof HueSlider>>()\nconst sv = ref<InstanceType<typeof SvPanel>>()\nconst alpha = ref<InstanceType<typeof AlphaSlider>>()\nconst popper = ref<TooltipInstance>()\nconst triggerRef = ref()\nconst inputRef = ref()\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(triggerRef, {\n beforeFocus() {\n return colorDisabled.value\n },\n beforeBlur(event) {\n return popper.value?.isFocusInsideContent(event)\n },\n afterBlur() {\n setShowPicker(false)\n resetColor()\n },\n})\n\n// active-change is used to prevent modelValue changes from triggering.\nlet shouldActiveChange = true\n\nconst color = reactive(\n new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat || '',\n value: props.modelValue,\n })\n) as Color\n\nconst showPicker = ref(false)\nconst showPanelColor = ref(false)\nconst customInput = ref('')\n\nconst displayedColor = computed(() => {\n if (!props.modelValue && !showPanelColor.value) {\n return 'transparent'\n }\n return displayedRgb(color, props.showAlpha)\n})\n\nconst currentColor = computed(() => {\n return !props.modelValue && !showPanelColor.value ? '' : color.value\n})\n\nconst buttonAriaLabel = computed<string | undefined>(() => {\n return !isLabeledByFormItem.value\n ? props.ariaLabel || t('el.colorpicker.defaultLabel')\n : undefined\n})\n\nconst buttonAriaLabelledby = computed<string | undefined>(() => {\n return isLabeledByFormItem.value ? formItem?.labelId : undefined\n})\n\nconst btnKls = computed(() => {\n return [\n ns.b('picker'),\n ns.is('disabled', colorDisabled.value),\n ns.bm('picker', colorSize.value),\n ns.is('focused', isFocused.value),\n ]\n})\n\nfunction displayedRgb(color: Color, showAlpha: boolean) {\n if (!(color instanceof Color)) {\n throw new TypeError('color should be instance of _color Class')\n }\n\n const { r, g, b } = color.toRgb()\n return showAlpha\n ? `rgba(${r}, ${g}, ${b}, ${color.get('alpha') / 100})`\n : `rgb(${r}, ${g}, ${b})`\n}\n\nfunction setShowPicker(value: boolean) {\n showPicker.value = value\n}\n\nconst debounceSetShowPicker = debounce(setShowPicker, 100, { leading: true })\n\nfunction show() {\n if (colorDisabled.value) return\n setShowPicker(true)\n}\n\nfunction hide() {\n debounceSetShowPicker(false)\n resetColor()\n}\n\nfunction resetColor() {\n nextTick(() => {\n if (props.modelValue) {\n color.fromString(props.modelValue)\n } else {\n color.value = ''\n nextTick(() => {\n showPanelColor.value = false\n })\n }\n })\n}\n\nfunction handleTrigger() {\n if (colorDisabled.value) return\n debounceSetShowPicker(!showPicker.value)\n}\n\nfunction handleConfirm() {\n color.fromString(customInput.value)\n}\n\nfunction confirmValue() {\n const value = color.value\n emit(UPDATE_MODEL_EVENT, value)\n emit('change', value)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n debounceSetShowPicker(false)\n // check if modelValue change, if not change, then reset color.\n nextTick(() => {\n const newColor = new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat || '',\n value: props.modelValue,\n })\n if (!color.compare(newColor)) {\n resetColor()\n }\n })\n}\n\nfunction clear() {\n debounceSetShowPicker(false)\n emit(UPDATE_MODEL_EVENT, null)\n emit('change', null)\n if (props.modelValue !== null && props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n resetColor()\n}\n\nfunction handleClickOutside() {\n if (!showPicker.value) return\n hide()\n isFocused.value && focus()\n}\n\nfunction handleEsc(event: KeyboardEvent) {\n event.preventDefault()\n event.stopPropagation()\n setShowPicker(false)\n resetColor()\n}\n\nfunction handleKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case EVENT_CODE.enter:\n case EVENT_CODE.space:\n event.preventDefault()\n event.stopPropagation()\n show()\n inputRef.value.focus()\n break\n case EVENT_CODE.esc:\n handleEsc(event)\n break\n }\n}\n\nfunction focus() {\n triggerRef.value.focus()\n}\n\nfunction blur() {\n triggerRef.value.blur()\n}\n\nonMounted(() => {\n if (props.modelValue) {\n customInput.value = currentColor.value\n }\n})\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n showPanelColor.value = false\n } else if (newVal && newVal !== color.value) {\n shouldActiveChange = false\n color.fromString(newVal)\n }\n }\n)\n\nwatch(\n () => props.colorFormat,\n () => {\n if (props.colorFormat) {\n color.format = props.colorFormat\n color.doOnChange()\n emit(UPDATE_MODEL_EVENT, color.value)\n }\n }\n)\n\nwatch(\n () => currentColor.value,\n (val) => {\n customInput.value = val\n shouldActiveChange && emit('activeChange', val)\n shouldActiveChange = true\n }\n)\n\nwatch(\n () => color.value,\n () => {\n if (!props.modelValue && !showPanelColor.value) {\n showPanelColor.value = true\n }\n }\n)\n\nwatch(\n () => showPicker.value,\n () => {\n nextTick(() => {\n hue.value?.update()\n sv.value?.update()\n alpha.value?.update()\n })\n }\n)\n\nprovide(colorPickerContextKey, {\n currentColor,\n})\n\ndefineExpose({\n /**\n * @description current color object\n */\n color,\n /**\n * @description manually show ColorPicker\n */\n show,\n /**\n * @description manually hide ColorPicker\n */\n hide,\n /**\n * @description focus the input element\n */\n focus,\n /**\n * @description blur the input element\n */\n blur,\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmented2.mjs","sources":["../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<template>\n <div\n :id=\"inputId\"\n ref=\"segmentedRef\"\n :class=\"segmentedCls\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'segmented' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <div :class=\"ns.e('group')\">\n <div :style=\"selectedStyle\" :class=\"selectedCls\" />\n <label\n v-for=\"(item, index) in options\"\n :key=\"index\"\n :class=\"getItemCls(item)\"\n >\n <input\n :class=\"ns.e('item-input')\"\n type=\"radio\"\n :name=\"name\"\n :disabled=\"getDisabled(item)\"\n :checked=\"getSelected(item)\"\n @change=\"handleChange(item)\"\n />\n <div :class=\"ns.e('item-label')\">\n <slot :item=\"item\">{{ getLabel(item) }}</slot>\n </div>\n </label>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useActiveElement, useResizeObserver } from '@vueuse/core'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { debugWarn, isObject } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { segmentedEmits, segmentedProps } from './segmented'\nimport type { Option } from './types'\n\ndefineOptions({\n name: 'ElSegmented',\n})\n\nconst props = defineProps(segmentedProps)\nconst emit = defineEmits(segmentedEmits)\n\nconst ns = useNamespace('segmented')\nconst segmentedId = useId()\nconst segmentedSize = useFormSize()\nconst _disabled = useFormDisabled()\nconst { formItem } = useFormItem()\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst segmentedRef = ref<HTMLElement | null>(null)\nconst activeElement = useActiveElement()\n\nconst state = reactive({\n isInit: false,\n width: 0,\n translateX: 0,\n focusVisible: false,\n})\n\nconst handleChange = (item: Option) => {\n const value = getValue(item)\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n}\n\nconst getValue = (item: Option) => {\n return isObject(item) ? item.value : item\n}\n\nconst getLabel = (item: Option) => {\n return isObject(item) ? item.label : item\n}\n\nconst getDisabled = (item: Option) => {\n return !!(_disabled.value || (isObject(item) ? item.disabled : false))\n}\n\nconst getSelected = (item: Option) => {\n return props.modelValue === getValue(item)\n}\n\nconst getOption = (value: any) => {\n return props.options.find((item) => getValue(item) === value)\n}\n\nconst getItemCls = (item: Option) => {\n return [\n ns.e('item'),\n ns.is('selected', getSelected(item)),\n ns.is('disabled', getDisabled(item)),\n ]\n}\n\nconst updateSelect = () => {\n if (!segmentedRef.value) return\n const selectedItem = segmentedRef.value.querySelector(\n '.is-selected'\n ) as HTMLElement\n const selectedItemInput = segmentedRef.value.querySelector(\n '.is-selected input'\n ) as HTMLElement\n if (!selectedItem || !selectedItemInput) {\n state.width = 0\n state.translateX = 0\n state.focusVisible = false\n return\n }\n const rect = selectedItem.getBoundingClientRect()\n state.isInit = true\n state.width = rect.width\n state.translateX = selectedItem.offsetLeft\n try {\n // This will failed in test\n state.focusVisible = selectedItemInput.matches(':focus-visible')\n } catch {}\n}\n\nconst segmentedCls = computed(() => [\n ns.b(),\n ns.m(segmentedSize.value),\n ns.is('block', props.block),\n])\n\nconst selectedStyle = computed(() => ({\n width: `${state.width}px`,\n transform: `translateX(${state.translateX}px)`,\n display: state.isInit ? 'block' : 'none',\n}))\n\nconst selectedCls = computed(() => [\n ns.e('item-selected'),\n ns.is('disabled', getDisabled(getOption(props.modelValue))),\n ns.is('focus-visible', state.focusVisible),\n])\n\nconst name = computed(() => {\n return props.name || segmentedId.value\n})\n\nuseResizeObserver(segmentedRef, updateSelect)\n\nwatch(activeElement, updateSelect)\n\nwatch(\n () => props.modelValue,\n () => {\n updateSelect()\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n }\n)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;mCA+Cc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA,EAAA,GAAK,aAAa,WAAW,CAAA,CAAA;AACnC,IAAA,MAAM,cAAc,KAAM,EAAA,CAAA;AAC1B,IAAA,MAAM,gBAAgB,WAAY,EAAA,CAAA;AAClC,IAAA,MAAM,YAAY,eAAgB,EAAA,CAAA;AAClC,IAAM,MAAA,EAAE,aAAa,WAAY,EAAA,CAAA;AACjC,IAAA,MAAM,EAAE,OAAA,EAAS,mBAAwB,EAAA,GAAA,kBAAA,CAAmB,KAAO,EAAA;AAAA,MACjE,eAAiB,EAAA,QAAA;AAAA,KAClB,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,IAAwB,IAAI,CAAA,CAAA;AACjD,IAAA,MAAM,gBAAgB,gBAAiB,EAAA,CAAA;AAEvC,IAAA,MAAM,QAAQ,QAAS,CAAA;AAAA,MACrB,MAAQ,EAAA,KAAA;AAAA,MACR,KAAO,EAAA,CAAA;AAAA,MACP,UAAY,EAAA,CAAA;AAAA,MACZ,YAAc,EAAA,KAAA;AAAA,KACf,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,CAAC,IAAiB,KAAA;AACrC,MAAM,MAAA,KAAA,GAAQ,SAAS,IAAI,CAAA,CAAA;AAC3B,MAAA,IAAA,CAAK,oBAAoB,KAAK,CAAA,CAAA;AAC9B,MAAA,IAAA,CAAK,cAAc,KAAK,CAAA,CAAA;AAAA,KAC1B,CAAA;AAEA,IAAM,MAAA,QAAA,GAAW,CAAC,IAAiB,KAAA;AACjC,MAAA,OAAO,QAAS,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACvC,CAAA;AAEA,IAAM,MAAA,QAAA,GAAW,CAAC,IAAiB,KAAA;AACjC,MAAA,OAAO,QAAS,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACvC,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,IAAiB,KAAA;AACpC,MAAO,OAAA,CAAC,EAAY,SAAA,CAAA,KAAA,cAAmB,IAAI,CAAA,GAAI,KAAK,QAAW,GAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACjE,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,IAAiB,KAAA;AACpC,MAAO,OAAA,KAAA,CAAM,UAAe,KAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAAA,KAC3C,CAAA;AAEA,IAAM,MAAA,SAAA,GAAY,CAAC,KAAe,KAAA;AAChC,MAAO,OAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,CAAC,SAAS,QAAS,CAAA,IAAI,MAAM,KAAK,CAAA,CAAA;AAAA,KAC9D,CAAA;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,IAAiB,KAAA;AACnC,MAAO,OAAA;AAAA,QACL,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,QACX,EAAG,CAAA,EAAA,CAAG,UAAY,EAAA,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,QACnC,EAAG,CAAA,EAAA,CAAG,UAAY,EAAA,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,OACrC,CAAA;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,CAAC,YAAa,CAAA,KAAA;AAAO,QAAA,OAAA;AACzB,MAAA,MAAM,YAAe,GAAA,YAAA,CAAa,KAAM,CAAA,aAAA,CACtC,cACF,CAAA,CAAA;AACA,MAAA,MAAM,iBAAoB,GAAA,YAAA,CAAa,KAAM,CAAA,aAAA,CAC3C,oBACF,CAAA,CAAA;AACA,MAAI,IAAA,CAAC,YAAgB,IAAA,CAAC,iBAAmB,EAAA;AACvC,QAAA,KAAA,CAAM,KAAQ,GAAA,CAAA,CAAA;AACd,QAAA,KAAA,CAAM,UAAa,GAAA,CAAA,CAAA;AACnB,QAAA,KAAA,CAAM,YAAe,GAAA,KAAA,CAAA;AACrB,QAAA,OAAA;AAAA,OACF;AACA,MAAM,MAAA,IAAA,GAAO,aAAa,qBAAsB,EAAA,CAAA;AAChD,MAAA,KAAA,CAAM,MAAS,GAAA,IAAA,CAAA;AACf,MAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA,CAAA;AACnB,MAAA,KAAA,CAAM,aAAa,YAAa,CAAA,UAAA,CAAA;AAChC,MAAI,IAAA;AAEF,QAAM,KAAA,CAAA,YAAA,GAAe,iBAAkB,CAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAA;AAAA,OAC/D,CAAA,OAAA,CAAA,EAAA;AAAA,OAAO;AAAA,KACX,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAAA,MAClC,GAAG,CAAE,EAAA;AAAA,MACL,EAAA,CAAG,CAAE,CAAA,aAAA,CAAc,KAAK,CAAA;AAAA,MACxB,EAAG,CAAA,EAAA,CAAG,OAAS,EAAA,KAAA,CAAM,KAAK,CAAA;AAAA,KAC3B,CAAA,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,SAAS,OAAO;AAAA,MACpC,KAAA,EAAO,GAAG,KAAM,CAAA,KAAA,CAAA,EAAA,CAAA;AAAA,MAChB,SAAA,EAAW,cAAc,KAAM,CAAA,UAAA,CAAA,GAAA,CAAA;AAAA,MAC/B,OAAA,EAAS,KAAM,CAAA,MAAA,GAAS,OAAU,GAAA,MAAA;AAAA,KAClC,CAAA,CAAA,CAAA;AAEF,IAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AAAA,MACjC,EAAA,CAAG,EAAE,eAAe,CAAA;AAAA,MACpB,EAAA,CAAG,GAAG,UAAY,EAAA,WAAA,CAAY,UAAU,KAAM,CAAA,UAAU,CAAC,CAAC,CAAA;AAAA,MAC1D,EAAG,CAAA,EAAA,CAAG,eAAiB,EAAA,KAAA,CAAM,YAAY,CAAA;AAAA,KAC1C,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAO,OAAA,KAAA,CAAM,QAAQ,WAAY,CAAA,KAAA,CAAA;AAAA,KAClC,CAAA,CAAA;AAED,IAAA,iBAAA,CAAkB,cAAc,YAAY,CAAA,CAAA;AAE5C,IAAA,KAAA,CAAM,eAAe,YAAY,CAAA,CAAA;AAEjC,IACE,KAAA,CAAA,MAAM,KAAM,CAAA,UAAA,EACZ,MAAM;AACJ,MAAa,IAAA,EAAA,CAAA;AACb,MAAA,YAAyB,EAAA,CAAA;AACvB,MAAU,IAAA,KAAA,CAAA,aAAW;AAAuC,QAC9D,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,EAAA,QAAA,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,KAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,OAEF;AAAA,KAAA,EACS;AAAA,MAEX,KAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"segmented2.mjs","sources":["../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<template>\n <div\n :id=\"inputId\"\n ref=\"segmentedRef\"\n :class=\"segmentedCls\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'segmented' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <div :class=\"ns.e('group')\">\n <div :style=\"selectedStyle\" :class=\"selectedCls\" />\n <label\n v-for=\"(item, index) in options\"\n :key=\"index\"\n :class=\"getItemCls(item)\"\n >\n <input\n :class=\"ns.e('item-input')\"\n type=\"radio\"\n :name=\"name\"\n :disabled=\"getDisabled(item)\"\n :checked=\"getSelected(item)\"\n @change=\"handleChange(item)\"\n />\n <div :class=\"ns.e('item-label')\">\n <slot :item=\"item\">{{ getLabel(item) }}</slot>\n </div>\n </label>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useActiveElement, useResizeObserver } from '@vueuse/core'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { debugWarn, isObject } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { segmentedEmits, segmentedProps } from './segmented'\nimport type { Option } from './types'\n\ndefineOptions({\n name: 'ElSegmented',\n})\n\nconst props = defineProps(segmentedProps)\nconst emit = defineEmits(segmentedEmits)\n\nconst ns = useNamespace('segmented')\nconst segmentedId = useId()\nconst segmentedSize = useFormSize()\nconst _disabled = useFormDisabled()\nconst { formItem } = useFormItem()\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst segmentedRef = ref<HTMLElement | null>(null)\nconst activeElement = useActiveElement()\n\nconst state = reactive({\n isInit: false,\n width: 0,\n translateX: 0,\n focusVisible: false,\n})\n\nconst handleChange = (item: Option) => {\n const value = getValue(item)\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n}\n\nconst getValue = (item: Option) => {\n return isObject(item) ? item.value : item\n}\n\nconst getLabel = (item: Option) => {\n return isObject(item) ? item.label : item\n}\n\nconst getDisabled = (item: Option | undefined) => {\n return !!(_disabled.value || (isObject(item) ? item.disabled : false))\n}\n\nconst getSelected = (item: Option) => {\n return props.modelValue === getValue(item)\n}\n\nconst getOption = (value: any) => {\n return props.options.find((item) => getValue(item) === value)\n}\n\nconst getItemCls = (item: Option) => {\n return [\n ns.e('item'),\n ns.is('selected', getSelected(item)),\n ns.is('disabled', getDisabled(item)),\n ]\n}\n\nconst updateSelect = () => {\n if (!segmentedRef.value) return\n const selectedItem = segmentedRef.value.querySelector(\n '.is-selected'\n ) as HTMLElement\n const selectedItemInput = segmentedRef.value.querySelector(\n '.is-selected input'\n ) as HTMLElement\n if (!selectedItem || !selectedItemInput) {\n state.width = 0\n state.translateX = 0\n state.focusVisible = false\n return\n }\n const rect = selectedItem.getBoundingClientRect()\n state.isInit = true\n state.width = rect.width\n state.translateX = selectedItem.offsetLeft\n try {\n // This will failed in test\n state.focusVisible = selectedItemInput.matches(':focus-visible')\n } catch {}\n}\n\nconst segmentedCls = computed(() => [\n ns.b(),\n ns.m(segmentedSize.value),\n ns.is('block', props.block),\n])\n\nconst selectedStyle = computed(() => ({\n width: `${state.width}px`,\n transform: `translateX(${state.translateX}px)`,\n display: state.isInit ? 'block' : 'none',\n}))\n\nconst selectedCls = computed(() => [\n ns.e('item-selected'),\n ns.is('disabled', getDisabled(getOption(props.modelValue))),\n ns.is('focus-visible', state.focusVisible),\n])\n\nconst name = computed(() => {\n return props.name || segmentedId.value\n})\n\nuseResizeObserver(segmentedRef, updateSelect)\n\nwatch(activeElement, updateSelect)\n\nwatch(\n () => props.modelValue,\n () => {\n updateSelect()\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@ export declare type Option = {
3
3
  value: string | number | boolean;
4
4
  disabled?: boolean;
5
5
  [key: string]: any;
6
- } | string | number | boolean | undefined;
6
+ } | string | number | boolean;
@@ -5,6 +5,7 @@ import { orderBy, getKeysMap, toggleRowStatus, getRowIdentity, getColumnById, ge
5
5
  import useExpand from './expand.mjs';
6
6
  import useCurrent from './current.mjs';
7
7
  import useTree from './tree.mjs';
8
+ import { isUndefined } from '../../../../utils/types.mjs';
8
9
  import { hasOwn } from '@vue/shared';
9
10
 
10
11
  const sortData = (data, states) => {
@@ -70,15 +71,30 @@ function useWatcher() {
70
71
  updateChildFixed(childColumn);
71
72
  });
72
73
  };
74
+ let selectionInitialFixed = void 0;
73
75
  const updateColumns = () => {
74
76
  _columns.value.forEach((column) => {
75
77
  updateChildFixed(column);
76
78
  });
77
79
  fixedColumns.value = _columns.value.filter((column) => column.fixed === true || column.fixed === "left");
78
80
  rightFixedColumns.value = _columns.value.filter((column) => column.fixed === "right");
79
- if (fixedColumns.value.length > 0 && _columns.value[0] && _columns.value[0].type === "selection" && !_columns.value[0].fixed) {
80
- _columns.value[0].fixed = true;
81
- fixedColumns.value.unshift(_columns.value[0]);
81
+ if (isUndefined(selectionInitialFixed) && _columns.value[0] && _columns.value[0].type === "selection") {
82
+ selectionInitialFixed = Boolean(_columns.value[0].fixed);
83
+ }
84
+ if (fixedColumns.value.length > 0 && _columns.value[0] && _columns.value[0].type === "selection") {
85
+ if (!_columns.value[0].fixed) {
86
+ _columns.value[0].fixed = true;
87
+ fixedColumns.value.unshift(_columns.value[0]);
88
+ } else {
89
+ const hasNotSelectionColumns = fixedColumns.value.some((column) => column.type !== "selection");
90
+ if (!hasNotSelectionColumns) {
91
+ _columns.value[0].fixed = selectionInitialFixed;
92
+ if (!selectionInitialFixed)
93
+ fixedColumns.value.shift();
94
+ } else {
95
+ selectionInitialFixed = void 0;
96
+ }
97
+ }
82
98
  }
83
99
  const notFixedColumns = _columns.value.filter((column) => !column.fixed);
84
100
  originColumns.value = [].concat(fixedColumns.value).concat(notFixedColumns).concat(rightFixedColumns.value);
@@ -135,13 +151,13 @@ function useWatcher() {
135
151
  const getSelectionRows = () => {
136
152
  return (selection.value || []).slice();
137
153
  };
138
- const toggleRowSelection = (row, selected, emitChange = true) => {
154
+ const toggleRowSelection = (row, selected, emitChange = true, ignoreSelectable = false) => {
139
155
  var _a2, _b, _c, _d;
140
156
  const treeProps = {
141
157
  children: (_b = (_a2 = instance == null ? void 0 : instance.store) == null ? void 0 : _a2.states) == null ? void 0 : _b.childrenColumnName.value,
142
158
  checkStrictly: (_d = (_c = instance == null ? void 0 : instance.store) == null ? void 0 : _c.states) == null ? void 0 : _d.checkStrictly.value
143
159
  };
144
- const changed = toggleRowStatus(selection.value, row, selected, treeProps);
160
+ const changed = toggleRowStatus(selection.value, row, selected, treeProps, ignoreSelectable ? void 0 : selectable.value);
145
161
  if (changed) {
146
162
  const newSelection = (selection.value || []).slice();
147
163
  if (emitChange) {