@element-plus/nightly 0.0.20231209 → 0.0.20231211

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 (274) hide show
  1. package/dist/index.full.js +2 -2
  2. package/dist/index.full.min.js +2 -2
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +2 -2
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +2 -2
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar.js +1 -1
  12. package/dist/locale/ar.min.js +1 -1
  13. package/dist/locale/ar.min.mjs +1 -1
  14. package/dist/locale/ar.mjs +1 -1
  15. package/dist/locale/az.js +1 -1
  16. package/dist/locale/az.min.js +1 -1
  17. package/dist/locale/az.min.mjs +1 -1
  18. package/dist/locale/az.mjs +1 -1
  19. package/dist/locale/bg.js +1 -1
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.mjs +1 -1
  22. package/dist/locale/bg.mjs +1 -1
  23. package/dist/locale/bn.js +1 -1
  24. package/dist/locale/bn.min.js +1 -1
  25. package/dist/locale/bn.min.mjs +1 -1
  26. package/dist/locale/bn.mjs +1 -1
  27. package/dist/locale/ca.js +1 -1
  28. package/dist/locale/ca.min.js +1 -1
  29. package/dist/locale/ca.min.mjs +1 -1
  30. package/dist/locale/ca.mjs +1 -1
  31. package/dist/locale/ckb.js +1 -1
  32. package/dist/locale/ckb.min.js +1 -1
  33. package/dist/locale/ckb.min.mjs +1 -1
  34. package/dist/locale/ckb.mjs +1 -1
  35. package/dist/locale/cs.js +1 -1
  36. package/dist/locale/cs.min.js +1 -1
  37. package/dist/locale/cs.min.mjs +1 -1
  38. package/dist/locale/cs.mjs +1 -1
  39. package/dist/locale/da.js +1 -1
  40. package/dist/locale/da.min.js +1 -1
  41. package/dist/locale/da.min.mjs +1 -1
  42. package/dist/locale/da.mjs +1 -1
  43. package/dist/locale/de.js +1 -1
  44. package/dist/locale/de.min.js +1 -1
  45. package/dist/locale/de.min.mjs +1 -1
  46. package/dist/locale/de.mjs +1 -1
  47. package/dist/locale/el.js +1 -1
  48. package/dist/locale/el.min.js +1 -1
  49. package/dist/locale/el.min.mjs +1 -1
  50. package/dist/locale/el.mjs +1 -1
  51. package/dist/locale/en.js +1 -1
  52. package/dist/locale/en.min.js +1 -1
  53. package/dist/locale/en.min.mjs +1 -1
  54. package/dist/locale/en.mjs +1 -1
  55. package/dist/locale/eo.js +1 -1
  56. package/dist/locale/eo.min.js +1 -1
  57. package/dist/locale/eo.min.mjs +1 -1
  58. package/dist/locale/eo.mjs +1 -1
  59. package/dist/locale/es.js +1 -1
  60. package/dist/locale/es.min.js +1 -1
  61. package/dist/locale/es.min.mjs +1 -1
  62. package/dist/locale/es.mjs +1 -1
  63. package/dist/locale/et.js +1 -1
  64. package/dist/locale/et.min.js +1 -1
  65. package/dist/locale/et.min.mjs +1 -1
  66. package/dist/locale/et.mjs +1 -1
  67. package/dist/locale/eu.js +1 -1
  68. package/dist/locale/eu.min.js +1 -1
  69. package/dist/locale/eu.min.mjs +1 -1
  70. package/dist/locale/eu.mjs +1 -1
  71. package/dist/locale/fa.js +1 -1
  72. package/dist/locale/fa.min.js +1 -1
  73. package/dist/locale/fa.min.mjs +1 -1
  74. package/dist/locale/fa.mjs +1 -1
  75. package/dist/locale/fi.js +1 -1
  76. package/dist/locale/fi.min.js +1 -1
  77. package/dist/locale/fi.min.mjs +1 -1
  78. package/dist/locale/fi.mjs +1 -1
  79. package/dist/locale/fr.js +1 -1
  80. package/dist/locale/fr.min.js +1 -1
  81. package/dist/locale/fr.min.mjs +1 -1
  82. package/dist/locale/fr.mjs +1 -1
  83. package/dist/locale/he.js +1 -1
  84. package/dist/locale/he.min.js +1 -1
  85. package/dist/locale/he.min.mjs +1 -1
  86. package/dist/locale/he.mjs +1 -1
  87. package/dist/locale/hr.js +1 -1
  88. package/dist/locale/hr.min.js +1 -1
  89. package/dist/locale/hr.min.mjs +1 -1
  90. package/dist/locale/hr.mjs +1 -1
  91. package/dist/locale/hu.js +1 -1
  92. package/dist/locale/hu.min.js +1 -1
  93. package/dist/locale/hu.min.mjs +1 -1
  94. package/dist/locale/hu.mjs +1 -1
  95. package/dist/locale/hy-am.js +1 -1
  96. package/dist/locale/hy-am.min.js +1 -1
  97. package/dist/locale/hy-am.min.mjs +1 -1
  98. package/dist/locale/hy-am.mjs +1 -1
  99. package/dist/locale/id.js +1 -1
  100. package/dist/locale/id.min.js +1 -1
  101. package/dist/locale/id.min.mjs +1 -1
  102. package/dist/locale/id.mjs +1 -1
  103. package/dist/locale/it.js +1 -1
  104. package/dist/locale/it.min.js +1 -1
  105. package/dist/locale/it.min.mjs +1 -1
  106. package/dist/locale/it.mjs +1 -1
  107. package/dist/locale/ja.js +1 -1
  108. package/dist/locale/ja.min.js +1 -1
  109. package/dist/locale/ja.min.mjs +1 -1
  110. package/dist/locale/ja.mjs +1 -1
  111. package/dist/locale/kk.js +1 -1
  112. package/dist/locale/kk.min.js +1 -1
  113. package/dist/locale/kk.min.mjs +1 -1
  114. package/dist/locale/kk.mjs +1 -1
  115. package/dist/locale/km.js +1 -1
  116. package/dist/locale/km.min.js +1 -1
  117. package/dist/locale/km.min.mjs +1 -1
  118. package/dist/locale/km.mjs +1 -1
  119. package/dist/locale/ko.js +1 -1
  120. package/dist/locale/ko.min.js +1 -1
  121. package/dist/locale/ko.min.mjs +1 -1
  122. package/dist/locale/ko.mjs +1 -1
  123. package/dist/locale/ku.js +1 -1
  124. package/dist/locale/ku.min.js +1 -1
  125. package/dist/locale/ku.min.mjs +1 -1
  126. package/dist/locale/ku.mjs +1 -1
  127. package/dist/locale/ky.js +1 -1
  128. package/dist/locale/ky.min.js +1 -1
  129. package/dist/locale/ky.min.mjs +1 -1
  130. package/dist/locale/ky.mjs +1 -1
  131. package/dist/locale/lt.js +1 -1
  132. package/dist/locale/lt.min.js +1 -1
  133. package/dist/locale/lt.min.mjs +1 -1
  134. package/dist/locale/lt.mjs +1 -1
  135. package/dist/locale/lv.js +1 -1
  136. package/dist/locale/lv.min.js +1 -1
  137. package/dist/locale/lv.min.mjs +1 -1
  138. package/dist/locale/lv.mjs +1 -1
  139. package/dist/locale/mg.js +1 -1
  140. package/dist/locale/mg.min.js +1 -1
  141. package/dist/locale/mg.min.mjs +1 -1
  142. package/dist/locale/mg.mjs +1 -1
  143. package/dist/locale/mn.js +1 -1
  144. package/dist/locale/mn.min.js +1 -1
  145. package/dist/locale/mn.min.mjs +1 -1
  146. package/dist/locale/mn.mjs +1 -1
  147. package/dist/locale/nb-no.js +1 -1
  148. package/dist/locale/nb-no.min.js +1 -1
  149. package/dist/locale/nb-no.min.mjs +1 -1
  150. package/dist/locale/nb-no.mjs +1 -1
  151. package/dist/locale/nl.js +1 -1
  152. package/dist/locale/nl.min.js +1 -1
  153. package/dist/locale/nl.min.mjs +1 -1
  154. package/dist/locale/nl.mjs +1 -1
  155. package/dist/locale/pa.js +1 -1
  156. package/dist/locale/pa.min.js +1 -1
  157. package/dist/locale/pa.min.mjs +1 -1
  158. package/dist/locale/pa.mjs +1 -1
  159. package/dist/locale/pl.js +1 -1
  160. package/dist/locale/pl.min.js +1 -1
  161. package/dist/locale/pl.min.mjs +1 -1
  162. package/dist/locale/pl.mjs +1 -1
  163. package/dist/locale/pt-br.js +1 -1
  164. package/dist/locale/pt-br.min.js +1 -1
  165. package/dist/locale/pt-br.min.mjs +1 -1
  166. package/dist/locale/pt-br.mjs +1 -1
  167. package/dist/locale/pt.js +1 -1
  168. package/dist/locale/pt.min.js +1 -1
  169. package/dist/locale/pt.min.mjs +1 -1
  170. package/dist/locale/pt.mjs +1 -1
  171. package/dist/locale/ro.js +1 -1
  172. package/dist/locale/ro.min.js +1 -1
  173. package/dist/locale/ro.min.mjs +1 -1
  174. package/dist/locale/ro.mjs +1 -1
  175. package/dist/locale/ru.js +1 -1
  176. package/dist/locale/ru.min.js +1 -1
  177. package/dist/locale/ru.min.mjs +1 -1
  178. package/dist/locale/ru.mjs +1 -1
  179. package/dist/locale/sk.js +1 -1
  180. package/dist/locale/sk.min.js +1 -1
  181. package/dist/locale/sk.min.mjs +1 -1
  182. package/dist/locale/sk.mjs +1 -1
  183. package/dist/locale/sl.js +1 -1
  184. package/dist/locale/sl.min.js +1 -1
  185. package/dist/locale/sl.min.mjs +1 -1
  186. package/dist/locale/sl.mjs +1 -1
  187. package/dist/locale/sr.js +1 -1
  188. package/dist/locale/sr.min.js +1 -1
  189. package/dist/locale/sr.min.mjs +1 -1
  190. package/dist/locale/sr.mjs +1 -1
  191. package/dist/locale/sv.js +1 -1
  192. package/dist/locale/sv.min.js +1 -1
  193. package/dist/locale/sv.min.mjs +1 -1
  194. package/dist/locale/sv.mjs +1 -1
  195. package/dist/locale/sw.js +1 -1
  196. package/dist/locale/sw.min.js +1 -1
  197. package/dist/locale/sw.min.mjs +1 -1
  198. package/dist/locale/sw.mjs +1 -1
  199. package/dist/locale/ta.js +1 -1
  200. package/dist/locale/ta.min.js +1 -1
  201. package/dist/locale/ta.min.mjs +1 -1
  202. package/dist/locale/ta.mjs +1 -1
  203. package/dist/locale/th.js +1 -1
  204. package/dist/locale/th.min.js +1 -1
  205. package/dist/locale/th.min.mjs +1 -1
  206. package/dist/locale/th.mjs +1 -1
  207. package/dist/locale/tk.js +1 -1
  208. package/dist/locale/tk.min.js +1 -1
  209. package/dist/locale/tk.min.mjs +1 -1
  210. package/dist/locale/tk.mjs +1 -1
  211. package/dist/locale/tr.js +1 -1
  212. package/dist/locale/tr.min.js +1 -1
  213. package/dist/locale/tr.min.mjs +1 -1
  214. package/dist/locale/tr.mjs +1 -1
  215. package/dist/locale/ug-cn.js +1 -1
  216. package/dist/locale/ug-cn.min.js +1 -1
  217. package/dist/locale/ug-cn.min.mjs +1 -1
  218. package/dist/locale/ug-cn.mjs +1 -1
  219. package/dist/locale/uk.js +1 -1
  220. package/dist/locale/uk.min.js +1 -1
  221. package/dist/locale/uk.min.mjs +1 -1
  222. package/dist/locale/uk.mjs +1 -1
  223. package/dist/locale/uz-uz.js +1 -1
  224. package/dist/locale/uz-uz.min.js +1 -1
  225. package/dist/locale/uz-uz.min.mjs +1 -1
  226. package/dist/locale/uz-uz.mjs +1 -1
  227. package/dist/locale/vi.js +1 -1
  228. package/dist/locale/vi.min.js +1 -1
  229. package/dist/locale/vi.min.mjs +1 -1
  230. package/dist/locale/vi.mjs +1 -1
  231. package/dist/locale/zh-cn.js +1 -1
  232. package/dist/locale/zh-cn.min.js +1 -1
  233. package/dist/locale/zh-cn.min.mjs +1 -1
  234. package/dist/locale/zh-cn.mjs +1 -1
  235. package/dist/locale/zh-tw.js +1 -1
  236. package/dist/locale/zh-tw.min.js +1 -1
  237. package/dist/locale/zh-tw.min.mjs +1 -1
  238. package/dist/locale/zh-tw.mjs +1 -1
  239. package/es/components/autocomplete/index.mjs +2 -2
  240. package/es/components/autocomplete/src/autocomplete.mjs +81 -361
  241. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  242. package/es/components/autocomplete/src/autocomplete2.mjs +361 -81
  243. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  244. package/es/components/index.mjs +3 -3
  245. package/es/components/popper/index.mjs +2 -2
  246. package/es/components/popper/src/arrow.mjs +8 -37
  247. package/es/components/popper/src/arrow.mjs.map +1 -1
  248. package/es/components/popper/src/arrow2.mjs +37 -8
  249. package/es/components/popper/src/arrow2.mjs.map +1 -1
  250. package/es/components/tooltip/src/tooltip.mjs +1 -1
  251. package/es/components/tooltip/src/tooltip2.mjs +1 -1
  252. package/es/index.mjs +3 -3
  253. package/es/version.d.ts +1 -1
  254. package/es/version.mjs +1 -1
  255. package/es/version.mjs.map +1 -1
  256. package/lib/components/autocomplete/index.js +2 -2
  257. package/lib/components/autocomplete/src/autocomplete.js +81 -360
  258. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  259. package/lib/components/autocomplete/src/autocomplete2.js +360 -81
  260. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  261. package/lib/components/index.js +3 -3
  262. package/lib/components/popper/index.js +2 -2
  263. package/lib/components/popper/src/arrow.js +9 -37
  264. package/lib/components/popper/src/arrow.js.map +1 -1
  265. package/lib/components/popper/src/arrow2.js +37 -9
  266. package/lib/components/popper/src/arrow2.js.map +1 -1
  267. package/lib/components/tooltip/src/tooltip.js +1 -1
  268. package/lib/components/tooltip/src/tooltip2.js +1 -1
  269. package/lib/index.js +3 -3
  270. package/lib/version.d.ts +1 -1
  271. package/lib/version.js +1 -1
  272. package/lib/version.js.map +1 -1
  273. package/package.json +2 -2
  274. package/web-types.json +1 -1
@@ -1,87 +1,367 @@
1
- import { NOOP, isString, isObject } from '@vue/shared';
1
+ import { defineComponent, useAttrs as useAttrs$1, ref, computed, onMounted, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, normalizeStyle, createVNode, createElementBlock, Fragment, renderList, renderSlot, createTextVNode, toDisplayString, mergeProps, withKeys, withModifiers, createSlots } from 'vue';
2
+ import { debounce } from 'lodash-unified';
3
+ import { onClickOutside } from '@vueuse/core';
4
+ import { Loading } from '@element-plus/icons-vue';
5
+ import '../../../hooks/index.mjs';
2
6
  import '../../../utils/index.mjs';
3
- import '../../tooltip/index.mjs';
4
7
  import '../../../constants/index.mjs';
5
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
6
- import { useTooltipContentProps } from '../../tooltip/src/content.mjs';
7
- import { UPDATE_MODEL_EVENT, INPUT_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
8
+ import { ElInput } from '../../input/index.mjs';
9
+ import { ElScrollbar } from '../../scrollbar/index.mjs';
10
+ import { ElTooltip } from '../../tooltip/index.mjs';
11
+ import { ElIcon } from '../../icon/index.mjs';
12
+ import '../../form/index.mjs';
13
+ import { autocompleteProps, autocompleteEmits } from './autocomplete.mjs';
14
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
15
+ import { useAttrs } from '../../../hooks/use-attrs/index.mjs';
16
+ import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
17
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
18
+ import { generateId } from '../../../utils/rand.mjs';
19
+ import { isArray } from '@vue/shared';
20
+ import { throwError } from '../../../utils/error.mjs';
21
+ import { INPUT_EVENT, UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
8
22
 
9
- const autocompleteProps = buildProps({
10
- valueKey: {
11
- type: String,
12
- default: "value"
13
- },
14
- modelValue: {
15
- type: [String, Number],
16
- default: ""
17
- },
18
- debounce: {
19
- type: Number,
20
- default: 300
21
- },
22
- placement: {
23
- type: definePropType(String),
24
- values: [
25
- "top",
26
- "top-start",
27
- "top-end",
28
- "bottom",
29
- "bottom-start",
30
- "bottom-end"
31
- ],
32
- default: "bottom-start"
33
- },
34
- fetchSuggestions: {
35
- type: definePropType([Function, Array]),
36
- default: NOOP
37
- },
38
- popperClass: {
39
- type: String,
40
- default: ""
41
- },
42
- triggerOnFocus: {
43
- type: Boolean,
44
- default: true
45
- },
46
- selectWhenUnmatched: {
47
- type: Boolean,
48
- default: false
49
- },
50
- hideLoading: {
51
- type: Boolean,
52
- default: false
53
- },
54
- label: {
55
- type: String
56
- },
57
- teleported: useTooltipContentProps.teleported,
58
- highlightFirstItem: {
59
- type: Boolean,
60
- default: false
61
- },
62
- fitInputWidth: {
63
- type: Boolean,
64
- default: false
65
- },
66
- clearable: {
67
- type: Boolean,
68
- default: false
69
- },
70
- disabled: {
71
- type: Boolean,
72
- default: false
73
- },
74
- name: String
23
+ const _hoisted_1 = ["aria-expanded", "aria-owns"];
24
+ const _hoisted_2 = { key: 0 };
25
+ const _hoisted_3 = ["id", "aria-selected", "onClick"];
26
+ const COMPONENT_NAME = "ElAutocomplete";
27
+ const __default__ = defineComponent({
28
+ name: COMPONENT_NAME,
29
+ inheritAttrs: false
75
30
  });
76
- const autocompleteEmits = {
77
- [UPDATE_MODEL_EVENT]: (value) => isString(value),
78
- [INPUT_EVENT]: (value) => isString(value),
79
- [CHANGE_EVENT]: (value) => isString(value),
80
- focus: (evt) => evt instanceof FocusEvent,
81
- blur: (evt) => evt instanceof FocusEvent,
82
- clear: () => true,
83
- select: (item) => isObject(item)
84
- };
31
+ const _sfc_main = /* @__PURE__ */ defineComponent({
32
+ ...__default__,
33
+ props: autocompleteProps,
34
+ emits: autocompleteEmits,
35
+ setup(__props, { expose, emit }) {
36
+ const props = __props;
37
+ const attrs = useAttrs();
38
+ const rawAttrs = useAttrs$1();
39
+ const disabled = useFormDisabled();
40
+ const ns = useNamespace("autocomplete");
41
+ const inputRef = ref();
42
+ const regionRef = ref();
43
+ const popperRef = ref();
44
+ const listboxRef = ref();
45
+ let readonly = false;
46
+ let ignoreFocusEvent = false;
47
+ const suggestions = ref([]);
48
+ const highlightedIndex = ref(-1);
49
+ const dropdownWidth = ref("");
50
+ const activated = ref(false);
51
+ const suggestionDisabled = ref(false);
52
+ const loading = ref(false);
53
+ const listboxId = computed(() => ns.b(String(generateId())));
54
+ const styles = computed(() => rawAttrs.style);
55
+ const suggestionVisible = computed(() => {
56
+ const isValidData = suggestions.value.length > 0;
57
+ return (isValidData || loading.value) && activated.value;
58
+ });
59
+ const suggestionLoading = computed(() => !props.hideLoading && loading.value);
60
+ const refInput = computed(() => {
61
+ if (inputRef.value) {
62
+ return Array.from(inputRef.value.$el.querySelectorAll("input"));
63
+ }
64
+ return [];
65
+ });
66
+ const onSuggestionShow = () => {
67
+ if (suggestionVisible.value) {
68
+ dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`;
69
+ }
70
+ };
71
+ const onHide = () => {
72
+ highlightedIndex.value = -1;
73
+ };
74
+ const getData = async (queryString) => {
75
+ if (suggestionDisabled.value)
76
+ return;
77
+ const cb = (suggestionList) => {
78
+ loading.value = false;
79
+ if (suggestionDisabled.value)
80
+ return;
81
+ if (isArray(suggestionList)) {
82
+ suggestions.value = suggestionList;
83
+ highlightedIndex.value = props.highlightFirstItem ? 0 : -1;
84
+ } else {
85
+ throwError(COMPONENT_NAME, "autocomplete suggestions must be an array");
86
+ }
87
+ };
88
+ loading.value = true;
89
+ if (isArray(props.fetchSuggestions)) {
90
+ cb(props.fetchSuggestions);
91
+ } else {
92
+ const result = await props.fetchSuggestions(queryString, cb);
93
+ if (isArray(result))
94
+ cb(result);
95
+ }
96
+ };
97
+ const debouncedGetData = debounce(getData, props.debounce);
98
+ const handleInput = (value) => {
99
+ const valuePresented = !!value;
100
+ emit(INPUT_EVENT, value);
101
+ emit(UPDATE_MODEL_EVENT, value);
102
+ suggestionDisabled.value = false;
103
+ activated.value || (activated.value = valuePresented);
104
+ if (!props.triggerOnFocus && !value) {
105
+ suggestionDisabled.value = true;
106
+ suggestions.value = [];
107
+ return;
108
+ }
109
+ debouncedGetData(value);
110
+ };
111
+ const handleMouseDown = (event) => {
112
+ var _a;
113
+ if (disabled.value)
114
+ return;
115
+ if (((_a = event.target) == null ? void 0 : _a.tagName) !== "INPUT" || refInput.value.includes(document.activeElement)) {
116
+ activated.value = true;
117
+ }
118
+ };
119
+ const handleChange = (value) => {
120
+ emit(CHANGE_EVENT, value);
121
+ };
122
+ const handleFocus = (evt) => {
123
+ if (!ignoreFocusEvent) {
124
+ activated.value = true;
125
+ emit("focus", evt);
126
+ if (props.triggerOnFocus && !readonly) {
127
+ debouncedGetData(String(props.modelValue));
128
+ }
129
+ } else {
130
+ ignoreFocusEvent = false;
131
+ }
132
+ };
133
+ const handleBlur = (evt) => {
134
+ setTimeout(() => {
135
+ var _a;
136
+ if ((_a = popperRef.value) == null ? void 0 : _a.isFocusInsideContent()) {
137
+ ignoreFocusEvent = true;
138
+ return;
139
+ }
140
+ activated.value && close();
141
+ emit("blur", evt);
142
+ });
143
+ };
144
+ const handleClear = () => {
145
+ activated.value = false;
146
+ emit(UPDATE_MODEL_EVENT, "");
147
+ emit("clear");
148
+ };
149
+ const handleKeyEnter = async () => {
150
+ if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) {
151
+ handleSelect(suggestions.value[highlightedIndex.value]);
152
+ } else if (props.selectWhenUnmatched) {
153
+ emit("select", { value: props.modelValue });
154
+ suggestions.value = [];
155
+ highlightedIndex.value = -1;
156
+ }
157
+ };
158
+ const handleKeyEscape = (evt) => {
159
+ if (suggestionVisible.value) {
160
+ evt.preventDefault();
161
+ evt.stopPropagation();
162
+ close();
163
+ }
164
+ };
165
+ const close = () => {
166
+ activated.value = false;
167
+ };
168
+ const focus = () => {
169
+ var _a;
170
+ (_a = inputRef.value) == null ? void 0 : _a.focus();
171
+ };
172
+ const blur = () => {
173
+ var _a;
174
+ (_a = inputRef.value) == null ? void 0 : _a.blur();
175
+ };
176
+ const handleSelect = async (item) => {
177
+ emit(INPUT_EVENT, item[props.valueKey]);
178
+ emit(UPDATE_MODEL_EVENT, item[props.valueKey]);
179
+ emit("select", item);
180
+ suggestions.value = [];
181
+ highlightedIndex.value = -1;
182
+ };
183
+ const highlight = (index) => {
184
+ if (!suggestionVisible.value || loading.value)
185
+ return;
186
+ if (index < 0) {
187
+ highlightedIndex.value = -1;
188
+ return;
189
+ }
190
+ if (index >= suggestions.value.length) {
191
+ index = suggestions.value.length - 1;
192
+ }
193
+ const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`);
194
+ const suggestionList = suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`);
195
+ const highlightItem = suggestionList[index];
196
+ const scrollTop = suggestion.scrollTop;
197
+ const { offsetTop, scrollHeight } = highlightItem;
198
+ if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {
199
+ suggestion.scrollTop += scrollHeight;
200
+ }
201
+ if (offsetTop < scrollTop) {
202
+ suggestion.scrollTop -= scrollHeight;
203
+ }
204
+ highlightedIndex.value = index;
205
+ inputRef.value.ref.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`);
206
+ };
207
+ onClickOutside(listboxRef, () => {
208
+ suggestionVisible.value && close();
209
+ });
210
+ onMounted(() => {
211
+ ;
212
+ inputRef.value.ref.setAttribute("role", "textbox");
213
+ inputRef.value.ref.setAttribute("aria-autocomplete", "list");
214
+ inputRef.value.ref.setAttribute("aria-controls", "id");
215
+ inputRef.value.ref.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`);
216
+ readonly = inputRef.value.ref.hasAttribute("readonly");
217
+ });
218
+ expose({
219
+ highlightedIndex,
220
+ activated,
221
+ loading,
222
+ inputRef,
223
+ popperRef,
224
+ suggestions,
225
+ handleSelect,
226
+ handleKeyEnter,
227
+ focus,
228
+ blur,
229
+ close,
230
+ highlight
231
+ });
232
+ return (_ctx, _cache) => {
233
+ return openBlock(), createBlock(unref(ElTooltip), {
234
+ ref_key: "popperRef",
235
+ ref: popperRef,
236
+ visible: unref(suggestionVisible),
237
+ placement: _ctx.placement,
238
+ "fallback-placements": ["bottom-start", "top-start"],
239
+ "popper-class": [unref(ns).e("popper"), _ctx.popperClass],
240
+ teleported: _ctx.teleported,
241
+ "gpu-acceleration": false,
242
+ pure: "",
243
+ "manual-mode": "",
244
+ effect: "light",
245
+ trigger: "click",
246
+ transition: `${unref(ns).namespace.value}-zoom-in-top`,
247
+ persistent: "",
248
+ role: "listbox",
249
+ onBeforeShow: onSuggestionShow,
250
+ onHide
251
+ }, {
252
+ content: withCtx(() => [
253
+ createElementVNode("div", {
254
+ ref_key: "regionRef",
255
+ ref: regionRef,
256
+ class: normalizeClass([unref(ns).b("suggestion"), unref(ns).is("loading", unref(suggestionLoading))]),
257
+ style: normalizeStyle({
258
+ [_ctx.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value,
259
+ outline: "none"
260
+ }),
261
+ role: "region"
262
+ }, [
263
+ createVNode(unref(ElScrollbar), {
264
+ id: unref(listboxId),
265
+ tag: "ul",
266
+ "wrap-class": unref(ns).be("suggestion", "wrap"),
267
+ "view-class": unref(ns).be("suggestion", "list"),
268
+ role: "listbox"
269
+ }, {
270
+ default: withCtx(() => [
271
+ unref(suggestionLoading) ? (openBlock(), createElementBlock("li", _hoisted_2, [
272
+ createVNode(unref(ElIcon), {
273
+ class: normalizeClass(unref(ns).is("loading"))
274
+ }, {
275
+ default: withCtx(() => [
276
+ createVNode(unref(Loading))
277
+ ]),
278
+ _: 1
279
+ }, 8, ["class"])
280
+ ])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(suggestions.value, (item, index) => {
281
+ return openBlock(), createElementBlock("li", {
282
+ id: `${unref(listboxId)}-item-${index}`,
283
+ key: index,
284
+ class: normalizeClass({ highlighted: highlightedIndex.value === index }),
285
+ role: "option",
286
+ "aria-selected": highlightedIndex.value === index,
287
+ onClick: ($event) => handleSelect(item)
288
+ }, [
289
+ renderSlot(_ctx.$slots, "default", { item }, () => [
290
+ createTextVNode(toDisplayString(item[_ctx.valueKey]), 1)
291
+ ])
292
+ ], 10, _hoisted_3);
293
+ }), 128))
294
+ ]),
295
+ _: 3
296
+ }, 8, ["id", "wrap-class", "view-class"])
297
+ ], 6)
298
+ ]),
299
+ default: withCtx(() => [
300
+ createElementVNode("div", {
301
+ ref_key: "listboxRef",
302
+ ref: listboxRef,
303
+ class: normalizeClass([unref(ns).b(), _ctx.$attrs.class]),
304
+ style: normalizeStyle(unref(styles)),
305
+ role: "combobox",
306
+ "aria-haspopup": "listbox",
307
+ "aria-expanded": unref(suggestionVisible),
308
+ "aria-owns": unref(listboxId)
309
+ }, [
310
+ createVNode(unref(ElInput), mergeProps({
311
+ ref_key: "inputRef",
312
+ ref: inputRef
313
+ }, unref(attrs), {
314
+ clearable: _ctx.clearable,
315
+ disabled: unref(disabled),
316
+ name: _ctx.name,
317
+ "model-value": _ctx.modelValue,
318
+ onInput: handleInput,
319
+ onChange: handleChange,
320
+ onFocus: handleFocus,
321
+ onBlur: handleBlur,
322
+ onClear: handleClear,
323
+ onKeydown: [
324
+ _cache[0] || (_cache[0] = withKeys(withModifiers(($event) => highlight(highlightedIndex.value - 1), ["prevent"]), ["up"])),
325
+ _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => highlight(highlightedIndex.value + 1), ["prevent"]), ["down"])),
326
+ withKeys(handleKeyEnter, ["enter"]),
327
+ withKeys(close, ["tab"]),
328
+ withKeys(handleKeyEscape, ["esc"])
329
+ ],
330
+ onMousedown: handleMouseDown
331
+ }), createSlots({ _: 2 }, [
332
+ _ctx.$slots.prepend ? {
333
+ name: "prepend",
334
+ fn: withCtx(() => [
335
+ renderSlot(_ctx.$slots, "prepend")
336
+ ])
337
+ } : void 0,
338
+ _ctx.$slots.append ? {
339
+ name: "append",
340
+ fn: withCtx(() => [
341
+ renderSlot(_ctx.$slots, "append")
342
+ ])
343
+ } : void 0,
344
+ _ctx.$slots.prefix ? {
345
+ name: "prefix",
346
+ fn: withCtx(() => [
347
+ renderSlot(_ctx.$slots, "prefix")
348
+ ])
349
+ } : void 0,
350
+ _ctx.$slots.suffix ? {
351
+ name: "suffix",
352
+ fn: withCtx(() => [
353
+ renderSlot(_ctx.$slots, "suffix")
354
+ ])
355
+ } : void 0
356
+ ]), 1040, ["clearable", "disabled", "name", "model-value", "onKeydown"])
357
+ ], 14, _hoisted_1)
358
+ ]),
359
+ _: 3
360
+ }, 8, ["visible", "placement", "popper-class", "teleported", "transition"]);
361
+ };
362
+ }
363
+ });
364
+ var Autocomplete = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/autocomplete/src/autocomplete.vue"]]);
85
365
 
86
- export { autocompleteEmits, autocompleteProps };
366
+ export { Autocomplete as default };
87
367
  //# sourceMappingURL=autocomplete2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete2.mjs","sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isObject,\n isString,\n} from '@element-plus/utils'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Autocomplete from './autocomplete.vue'\nimport type { Placement } from '@element-plus/components/popper'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type AutocompleteData = Record<string, any>[]\nexport type AutocompleteFetchSuggestionsCallback = (\n data: AutocompleteData\n) => void\nexport type AutocompleteFetchSuggestions =\n | ((\n queryString: string,\n cb: AutocompleteFetchSuggestionsCallback\n ) => Awaitable<AutocompleteData> | void)\n | AutocompleteData\n\nexport const autocompleteProps = buildProps({\n /**\n * @description key name of the input suggestion object for display\n */\n valueKey: {\n type: String,\n default: 'value',\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description debounce delay when typing, in milliseconds\n */\n debounce: {\n type: Number,\n default: 300,\n },\n /**\n * @description placement of the popup menu\n */\n placement: {\n type: definePropType<Placement>(String),\n values: [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ],\n default: 'bottom-start',\n },\n /**\n * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n */\n fetchSuggestions: {\n type: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\n default: NOOP,\n },\n /**\n * @description custom class name for autocomplete's dropdown\n */\n popperClass: {\n type: String,\n default: '',\n },\n /**\n * @description whether show suggestions when input focus\n */\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether to emit a `select` event on enter when there is no autocomplete match\n */\n selectWhenUnmatched: {\n type: Boolean,\n default: false,\n },\n /**\n * @description whether to hide the loading icon in remote search\n */\n hideLoading: {\n type: Boolean,\n default: false,\n },\n /**\n * @description label text\n */\n label: {\n type: String,\n },\n teleported: useTooltipContentProps.teleported,\n /**\n * @description whether to highlight first item in remote search suggestions by default\n */\n highlightFirstItem: {\n type: Boolean,\n default: false,\n },\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n /**\n * @description whether to show clear button\n */\n clearable: {\n type: Boolean,\n default: false,\n },\n /**\n * @description whether to disable\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * @description same as `name` in native input\n */\n name: String,\n} as const)\nexport type AutocompleteProps = ExtractPropTypes<typeof autocompleteProps>\n\nexport const autocompleteEmits = {\n [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n [INPUT_EVENT]: (value: string) => isString(value),\n [CHANGE_EVENT]: (value: string) => isString(value),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n select: (item: Record<string, any>) => isObject(item),\n}\nexport type AutocompleteEmits = typeof autocompleteEmits\n\nexport type AutocompleteInstance = InstanceType<typeof Autocomplete>\n"],"names":[],"mappings":";;;;;;;;AAaY,MAAC,iBAAiB,GAAG,UAAU,CAAC;AAC5C,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,MAAM,EAAE;AACZ,MAAM,KAAK;AACX,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,cAAc;AACpB,MAAM,YAAY;AAClB,KAAK;AACL,IAAI,OAAO,EAAE,cAAc;AAC3B,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3C,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,UAAU,EAAE,sBAAsB,CAAC,UAAU;AAC/C,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,EAAE;AACS,MAAC,iBAAiB,GAAG;AACjC,EAAE,CAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAClD,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAC3C,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAC5C,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,UAAU;AAC3C,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,UAAU;AAC1C,EAAE,KAAK,EAAE,MAAM,IAAI;AACnB,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;AAClC;;;;"}
1
+ {"version":3,"file":"autocomplete2.mjs","sources":["../../../../../../packages/components/autocomplete/src/autocomplete.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popperRef\"\n :visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"[ns.e('popper'), popperClass]\"\n :teleported=\"teleported\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n role=\"listbox\"\n @before-show=\"onSuggestionShow\"\n @hide=\"onHide\"\n >\n <div\n ref=\"listboxRef\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"styles\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"listboxId\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"attrs\"\n :clearable=\"clearable\"\n :disabled=\"disabled\"\n :name=\"name\"\n :model-value=\"modelValue\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown.up.prevent=\"highlight(highlightedIndex - 1)\"\n @keydown.down.prevent=\"highlight(highlightedIndex + 1)\"\n @keydown.enter=\"handleKeyEnter\"\n @keydown.tab=\"close\"\n @keydown.esc=\"handleKeyEscape\"\n @mousedown=\"handleMouseDown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{\n [fitInputWidth ? 'width' : 'minWidth']: dropdownWidth,\n outline: 'none',\n }\"\n role=\"region\"\n >\n <el-scrollbar\n :id=\"listboxId\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <el-icon :class=\"ns.is('loading')\">\n <Loading />\n </el-icon>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${listboxId}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"handleSelect(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref, useAttrs as useRawAttrs } from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { onClickOutside } from '@vueuse/core'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useAttrs, useNamespace } from '@element-plus/hooks'\nimport { generateId, isArray, throwError } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElInput from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { autocompleteEmits, autocompleteProps } from './autocomplete'\nimport type { AutocompleteData } from './autocomplete'\n\nimport type { StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\n\nconst COMPONENT_NAME = 'ElAutocomplete'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\n\nconst props = defineProps(autocompleteProps)\nconst emit = defineEmits(autocompleteEmits)\n\nconst attrs = useAttrs()\nconst rawAttrs = useRawAttrs()\nconst disabled = useFormDisabled()\nconst ns = useNamespace('autocomplete')\n\nconst inputRef = ref<InputInstance>()\nconst regionRef = ref<HTMLElement>()\nconst popperRef = ref<TooltipInstance>()\nconst listboxRef = ref<HTMLElement>()\n\nlet readonly = false\nlet ignoreFocusEvent = false\nconst suggestions = ref<AutocompleteData>([])\nconst highlightedIndex = ref(-1)\nconst dropdownWidth = ref('')\nconst activated = ref(false)\nconst suggestionDisabled = ref(false)\nconst loading = ref(false)\n\nconst listboxId = computed(() => ns.b(String(generateId())))\nconst styles = computed(() => rawAttrs.style as StyleValue)\n\nconst suggestionVisible = computed(() => {\n const isValidData = suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n})\n\nconst suggestionLoading = computed(() => !props.hideLoading && loading.value)\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\nconst onSuggestionShow = () => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n}\n\nconst onHide = () => {\n highlightedIndex.value = -1\n}\n\nconst getData = async (queryString: string) => {\n if (suggestionDisabled.value) return\n\n const cb = (suggestionList: AutocompleteData) => {\n loading.value = false\n if (suggestionDisabled.value) return\n\n if (isArray(suggestionList)) {\n suggestions.value = suggestionList\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(COMPONENT_NAME, 'autocomplete suggestions must be an array')\n }\n }\n\n loading.value = true\n if (isArray(props.fetchSuggestions)) {\n cb(props.fetchSuggestions)\n } else {\n const result = await props.fetchSuggestions(queryString, cb)\n if (isArray(result)) cb(result)\n }\n}\nconst debouncedGetData = debounce(getData, props.debounce)\n\nconst handleInput = (value: string) => {\n const valuePresented = !!value\n\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n\n suggestionDisabled.value = false\n activated.value ||= valuePresented\n\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n\n debouncedGetData(value)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n if (disabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n refInput.value.includes(document.activeElement as HTMLInputElement)\n ) {\n activated.value = true\n }\n}\n\nconst handleChange = (value: string) => {\n emit(CHANGE_EVENT, value)\n}\n\nconst handleFocus = (evt: FocusEvent) => {\n if (!ignoreFocusEvent) {\n activated.value = true\n emit('focus', evt)\n\n if (props.triggerOnFocus && !readonly) {\n debouncedGetData(String(props.modelValue))\n }\n } else {\n ignoreFocusEvent = false\n }\n}\n\nconst handleBlur = (evt: FocusEvent) => {\n setTimeout(() => {\n // validate current focus event is inside el-tooltip-content\n // if so, ignore the blur event and the next focus event\n if (popperRef.value?.isFocusInsideContent()) {\n ignoreFocusEvent = true\n return\n }\n activated.value && close()\n emit('blur', evt)\n })\n}\n\nconst handleClear = () => {\n activated.value = false\n emit(UPDATE_MODEL_EVENT, '')\n emit('clear')\n}\n\nconst handleKeyEnter = async () => {\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n handleSelect(suggestions.value[highlightedIndex.value])\n } else if (props.selectWhenUnmatched) {\n emit('select', { value: props.modelValue })\n suggestions.value = []\n highlightedIndex.value = -1\n }\n}\n\nconst handleKeyEscape = (evt: Event) => {\n if (suggestionVisible.value) {\n evt.preventDefault()\n evt.stopPropagation()\n close()\n }\n}\n\nconst close = () => {\n activated.value = false\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nconst handleSelect = async (item: any) => {\n emit(INPUT_EVENT, item[props.valueKey])\n emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n emit('select', item)\n suggestions.value = []\n highlightedIndex.value = -1\n}\n\nconst highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) return\n\n if (index < 0) {\n highlightedIndex.value = -1\n return\n }\n\n if (index >= suggestions.value.length) {\n index = suggestions.value.length - 1\n }\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll<HTMLElement>(\n `.${ns.be('suggestion', 'list')} li`\n )!\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop += scrollHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop -= scrollHeight\n }\n highlightedIndex.value = index\n // TODO: use Volar generate dts to fix it.\n ;(inputRef.value as any).ref!.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n}\n\nonClickOutside(listboxRef, () => {\n suggestionVisible.value && close()\n})\n\nonMounted(() => {\n // TODO: use Volar generate dts to fix it.\n ;(inputRef.value as any).ref!.setAttribute('role', 'textbox')\n ;(inputRef.value as any).ref!.setAttribute('aria-autocomplete', 'list')\n ;(inputRef.value as any).ref!.setAttribute('aria-controls', 'id')\n ;(inputRef.value as any).ref!.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n // get readonly attr\n readonly = (inputRef.value as any).ref!.hasAttribute('readonly')\n})\n\ndefineExpose({\n /** @description the index of the currently highlighted item */\n highlightedIndex,\n /** @description autocomplete whether activated */\n activated,\n /** @description remote search loading status */\n loading,\n /** @description el-input component instance */\n inputRef,\n /** @description el-tooltip component instance */\n popperRef,\n /** @description fetch suggestions result */\n suggestions,\n /** @description triggers when a suggestion is clicked */\n handleSelect,\n /** @description handle keyboard enter event */\n handleKeyEnter,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n /** @description close suggestion */\n close,\n /** @description highlight an item in a suggestion */\n highlight,\n})\n</script>\n"],"names":["useRawAttrs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;mCA+Hc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAChB;;;;;;;AAKA,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAA,MAAM,WAAWA,UAAY,EAAA,CAAA;AAC7B,IAAA,MAAM,WAAW,eAAgB,EAAA,CAAA;AACjC,IAAM,MAAA,EAAA,GAAK,aAAa,cAAc,CAAA,CAAA;AAEtC,IAAA,MAAM,WAAW,GAAmB,EAAA,CAAA;AACpC,IAAA,MAAM,YAAY,GAAiB,EAAA,CAAA;AACnC,IAAA,MAAM,YAAY,GAAqB,EAAA,CAAA;AACvC,IAAA,MAAM,aAAa,GAAiB,EAAA,CAAA;AAEpC,IAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AACf,IAAA,IAAI,gBAAmB,GAAA,KAAA,CAAA;AACvB,IAAM,MAAA,WAAA,GAAc,GAAsB,CAAA,EAAE,CAAA,CAAA;AAC5C,IAAM,MAAA,gBAAA,GAAmB,IAAI,CAAE,CAAA,CAAA,CAAA;AAC/B,IAAM,MAAA,aAAA,GAAgB,IAAI,EAAE,CAAA,CAAA;AAC5B,IAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,IAAM,MAAA,kBAAA,GAAqB,IAAI,KAAK,CAAA,CAAA;AACpC,IAAM,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA,CAAA;AAEzB,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM,EAAA,CAAG,EAAE,MAAO,CAAA,UAAA,EAAY,CAAC,CAAC,CAAA,CAAA;AAC3D,IAAA,MAAM,MAAS,GAAA,QAAA,CAAS,MAAM,QAAA,CAAS,KAAmB,CAAA,CAAA;AAE1D,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAM,MAAA,WAAA,GAAc,WAAY,CAAA,KAAA,CAAM,MAAS,GAAA,CAAA,CAAA;AAC/C,MAAQ,OAAA,CAAA,WAAA,IAAe,OAAQ,CAAA,KAAA,KAAU,SAAU,CAAA,KAAA,CAAA;AAAA,KACpD,CAAA,CAAA;AAED,IAAA,MAAM,oBAAoB,QAAS,CAAA,MAAM,CAAC,KAAM,CAAA,WAAA,IAAe,QAAQ,KAAK,CAAA,CAAA;AAE5E,IAAM,MAAA,QAAA,GAAW,SAA6B,MAAM;AAClD,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,OAAO,MAAM,IACX,CAAA,QAAA,CAAS,MAAM,GAAI,CAAA,gBAAA,CAAiB,OAAO,CAC7C,CAAA,CAAA;AAAA,OACF;AACA,MAAA,OAAO,EAAC,CAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,mBAAmB,MAAM;AAC7B,MAAA,IAAI,kBAAkB,KAAO,EAAA;AAC3B,QAAA,aAAA,CAAc,KAAQ,GAAA,CAAA,EAAG,QAAS,CAAA,KAAA,CAAO,GAAI,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OAC/C;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,gBAAA,CAAiB,KAAQ,GAAA,CAAA,CAAA,CAAA;AAAA,KAC3B,CAAA;AAEA,IAAM,MAAA,OAAA,GAAU,OAAO,WAAwB,KAAA;AAC7C,MAAA,IAAI,kBAAmB,CAAA,KAAA;AAAO,QAAA,OAAA;AAE9B,MAAM,MAAA,EAAA,GAAK,CAAC,cAAqC,KAAA;AAC/C,QAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAChB,QAAA,IAAI,kBAAmB,CAAA,KAAA;AAAO,UAAA,OAAA;AAE9B,QAAI,IAAA,OAAA,CAAQ,cAAc,CAAG,EAAA;AAC3B,UAAA,WAAA,CAAY,KAAQ,GAAA,cAAA,CAAA;AACpB,UAAiB,gBAAA,CAAA,KAAA,GAAQ,KAAM,CAAA,kBAAA,GAAqB,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,SACnD,MAAA;AACL,UAAA,UAAA,CAAW,gBAAgB,2CAA2C,CAAA,CAAA;AAAA,SACxE;AAAA,OACF,CAAA;AAEA,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAChB,MAAI,IAAA,OAAA,CAAQ,KAAM,CAAA,gBAAgB,CAAG,EAAA;AACnC,QAAA,EAAA,CAAG,MAAM,gBAAgB,CAAA,CAAA;AAAA,OACpB,MAAA;AACL,QAAA,MAAM,MAAS,GAAA,MAAM,KAAM,CAAA,gBAAA,CAAiB,aAAa,EAAE,CAAA,CAAA;AAC3D,QAAA,IAAI,QAAQ,MAAM,CAAA;AAAG,UAAA,EAAA,CAAG,MAAM,CAAA,CAAA;AAAA,OAChC;AAAA,KACF,CAAA;AACA,IAAA,MAAM,gBAAmB,GAAA,QAAA,CAAS,OAAS,EAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAEzD,IAAM,MAAA,WAAA,GAAc,CAAC,KAAkB,KAAA;AACrC,MAAM,MAAA,cAAA,GAAiB,CAAC,CAAC,KAAA,CAAA;AAEzB,MAAA,IAAA,CAAK,aAAa,KAAK,CAAA,CAAA;AACvB,MAAA,IAAA,CAAK,oBAAoB,KAAK,CAAA,CAAA;AAE9B,MAAA,kBAAA,CAAmB,KAAQ,GAAA,KAAA,CAAA;AAC3B,MAAA,SAAA,CAAU,KAAU,KAAA,SAAA,CAAA,KAAA,GAAA,cAAA,CAAA,CAAA;AAEpB,MAAA,IAAI,CAAC,KAAA,CAAM,cAAkB,IAAA,CAAC,KAAO,EAAA;AACnC,QAAA,kBAAA,CAAmB,KAAQ,GAAA,IAAA,CAAA;AAC3B,QAAA,WAAA,CAAY,QAAQ,EAAC,CAAA;AACrB,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,KAAsB,KAAA;AAC7C,MAAA,IAAI,EAAS,CAAA;AAAO,MAAA,IAAA,QAAA,CAAA,KAAA;AACpB,QACG,OAAA;AAGD,MAAA,IAAA,CAAA,CAAA,EAAA,GAAA,KAAkB,CAAA,MAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,MAAA,OAAA,IAAA,QAAA,CAAA,KAAA,CAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,EAAA;AAAA,QACpB,SAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,OACF;AAEA,KAAM,CAAA;AACJ,IAAA,MAAA,eAAmB,CAAK,KAAA,KAAA;AAAA,MAC1B,IAAA,CAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAEA,KAAM,CAAA;AACJ,IAAA,MAAI,WAAmB,GAAA,CAAA,GAAA,KAAA;AACrB,MAAA,IAAA,CAAA,gBAAkB,EAAA;AAClB,QAAA,eAAiB,GAAA,IAAA,CAAA;AAEjB,QAAI,IAAA,CAAA,OAAwB,EAAA,GAAA,CAAA,CAAA;AAC1B,QAAiB,IAAA,KAAA,CAAA,cAAA,IAAa,CAAA,QAAA,EAAA;AAAW,UAC3C,gBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,SACK;AACL,OAAmB,MAAA;AAAA,QACrB,gBAAA,GAAA,KAAA,CAAA;AAAA,OACF;AAEA,KAAM,CAAA;AACJ,IAAA,MAAA,UAAiB,GAAA,CAAA,GAAA,KAAA;AAGf,MAAI,UAAA,CAAA,MAAiB;AACnB,QAAmB,IAAA,EAAA,CAAA;AACnB,QAAA,IAAA,CAAA,EAAA,GAAA,SAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,oBAAA,EAAA,EAAA;AAAA,UACF,gBAAA,GAAA,IAAA,CAAA;AACA,UAAA,OAAA;AACA,SAAA;AAAgB,QACjB,SAAA,CAAA,KAAA,IAAA,KAAA,EAAA,CAAA;AAAA,QACH,IAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;AAEA,OAAA,CAAA,CAAA;AACE,KAAA,CAAA;AACA,IAAA,MAAA;AACA,MAAA,SAAY,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,MACd,IAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;AAEA,MAAA,IAAM;AACJ,KACE,CAAA;AAIA,IAAa,MAAA,cAAA,GAAA,YAAkB;AAAuB,MACxD,IAAA,iBAAsC,CAAA,KAAA,IAAA,gBAAA,CAAA,KAAA,IAAA,CAAA,IAAA,gBAAA,CAAA,KAAA,GAAA,WAAA,CAAA,KAAA,CAAA,MAAA,EAAA;AACpC,QAAA,YAAe,CAAA,WAAS,CAAA,KAAM,iBAAY,CAAA,KAAA,CAAA,CAAA,CAAA;AAC1C,OAAA,MAAA,IAAA,yBAAqB,EAAA;AACrB,QAAA,IAAA,CAAA,QAAA,EAAA,EAAiB,KAAQ,EAAA,KAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAA,QAC3B,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA;AAAA,QACF,gBAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA;AAEA,OAAM;AACJ,KAAA,CAAA;AACE,IAAA,MAAA,eAAmB,GAAA,CAAA,GAAA,KAAA;AACnB,MAAA,IAAA,iBAAoB,CAAA,KAAA,EAAA;AACpB,QAAM,GAAA,CAAA,cAAA,EAAA,CAAA;AAAA,QACR,GAAA,CAAA,eAAA,EAAA,CAAA;AAAA,QACF,KAAA,EAAA,CAAA;AAEA,OAAA;AACE,KAAA,CAAA;AAAkB,IACpB,MAAA,KAAA,GAAA,MAAA;AAEA,MAAA,eAAoB,GAAA,KAAA,CAAA;AAClB,KAAA,CAAA;AAAsB,IACxB,MAAA,KAAA,GAAA,MAAA;AAEA,MAAA,IAAM;AACJ,MAAA,CAAA,EAAA,GAAA,cAAqB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,KACvB,CAAA;AAEA,IAAM,MAAA,IAAA,GAAA,MAAA;AACJ,MAAK,IAAA,EAAA,CAAA;AACL,MAAK,CAAA,EAAA,GAAA,QAAA,CAAA,KAAA,KAAoB,IAAK,GAAA,KAAe,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;AAC7C,KAAA,CAAA;AACA,IAAA,MAAA,sBAAqB,IAAA,KAAA;AACrB,MAAA,IAAA,CAAA,WAAA,EAAyB,IAAA,CAAA,KAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAC3B,IAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,KAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAEA,MAAM,IAAA,CAAA,QAAA,EAAA,IAA+B,CAAA,CAAA;AACnC,MAAI,WAAmB,CAAA,KAAA,GAAA,EAAA,CAAA;AAAwB,MAAA,gBAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA;AAE/C,KAAA,CAAA;AACE,IAAA,MAAA,SAAA,GAAA,CAAA,KAAyB,KAAA;AACzB,MAAA,IAAA,CAAA,iBAAA,CAAA,KAAA,IAAA,OAAA,CAAA,KAAA;AAAA,QACF,OAAA;AAEA,MAAI,IAAA,KAAA,GAAA,CAAS,EAAY;AACvB,QAAQ,gBAAA,CAAA,SAAkB,CAAS,CAAA;AAAA,QACrC,OAAA;AACA,OAAM;AAGN,MAAM,IAAA,KAAA,IAAA,wBACJ,EAAA;AAEF,QAAA,oBAAsB,KAAe,CAAA,MAAA,GAAA,CAAA,CAAA;AACrC,OAAA;AACA,MAAM,MAAA,aAAa,SAAiB,CAAA,KAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEpC,MAAA,MAAgB,cAAA,GAAA,UAA2B,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAyB,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAClE,MAAA,MAAA,aAAwB,GAAA,cAAA,CAAA,KAAA,CAAA,CAAA;AAAA,MAC1B,MAAA,SAAA,GAAA,UAAA,CAAA,SAAA,CAAA;AACA,MAAA,iBAA2B,EAAA,YAAA,EAAA,GAAA,aAAA,CAAA;AACzB,MAAA,IAAA,SAAW,GAAa,YAAA,GAAA,SAAA,GAAA,UAAA,CAAA,YAAA,EAAA;AAAA,QAC1B,UAAA,CAAA,SAAA,IAAA,YAAA,CAAA;AACA,OAAA;AAEC,MAAC,IAAA,YAA4B,SAAA,EAAA;AAG9B,QACF,UAAA,CAAA,SAAA,IAAA,YAAA,CAAA;AAEA,OAAA;AACE,MAAA,gBAAA,CAAA,aAAiC,CAAA;AAAA,MAClC,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,YAAA,CAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,KAAA,CAAA,MAAA,EAAA,gBAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAED,KAAA,CAAA;AAEE,IAAA,cAAA,CAAA,UAAA,EAAA,MAAA;AAAC,MAAC,iBAA4B,CAAA,KAAA,IAAA,KAAa;AAC1C,KAAA,CAAC,CAAS;AACV,IAAA,SAAU,CAAA,MAAA;AACV,MAAC,CAAA;AAKF,MAAA,QAAA,CAAA,KAAqB,CAAA,GAAA,CAAA,YAAmB,CAAA,MAAA,EAAA,SAAuB,CAAA,CAAA;AAAA,MAChE,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,YAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;AAED,MAAa,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,YAAA,CAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAAA,MAEX,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,YAAA,CAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,KAAA,CAAA,MAAA,EAAA,gBAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,MAEA,QAAA,GAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,YAAA,CAAA,UAAA,CAAA,CAAA;AAAA,KAEA,CAAA,CAAA;AAAA,IAEA,MAAA,CAAA;AAAA,MAEA,gBAAA;AAAA,MAEA,SAAA;AAAA,MAEA,OAAA;AAAA,MAEA,QAAA;AAAA,MAEA,SAAA;AAAA,MAEA,WAAA;AAAA,MAEA,YAAA;AAAA,MAEA,cAAA;AAAA,MACD,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -78,7 +78,7 @@ export { ElNotification } from './notification/index.mjs';
78
78
  export { ElPopover, ElPopoverDirective } from './popover/index.mjs';
79
79
  export { affixEmits, affixProps } from './affix/src/affix.mjs';
80
80
  export { alertEffects, alertEmits, alertProps } from './alert/src/alert.mjs';
81
- export { autocompleteEmits, autocompleteProps } from './autocomplete/src/autocomplete2.mjs';
81
+ export { autocompleteEmits, autocompleteProps } from './autocomplete/src/autocomplete.mjs';
82
82
  export { avatarEmits, avatarProps } from './avatar/src/avatar.mjs';
83
83
  export { backtopEmits, backtopProps } from './backtop/src/backtop.mjs';
84
84
  export { badgeProps } from './badge/src/badge.mjs';
@@ -143,9 +143,9 @@ export { popconfirmEmits, popconfirmProps } from './popconfirm/src/popconfirm.mj
143
143
  export { Effect, popperProps, roleTypes, usePopperProps } from './popper/src/popper.mjs';
144
144
  export { popperTriggerProps, usePopperTriggerProps } from './popper/src/trigger.mjs';
145
145
  export { popperContentEmits, popperContentProps, popperCoreConfigProps, usePopperContentEmits, usePopperContentProps, usePopperCoreConfigProps } from './popper/src/content.mjs';
146
- export { popperArrowProps, usePopperArrowProps } from './popper/src/arrow2.mjs';
146
+ export { popperArrowProps, usePopperArrowProps } from './popper/src/arrow.mjs';
147
147
  export { POPPER_CONTENT_INJECTION_KEY, POPPER_INJECTION_KEY } from './popper/src/constants.mjs';
148
- export { default as ElPopperArrow } from './popper/src/arrow.mjs';
148
+ export { default as ElPopperArrow } from './popper/src/arrow2.mjs';
149
149
  export { default as ElPopperTrigger } from './popper/src/trigger2.mjs';
150
150
  export { default as ElPopperContent } from './popper/src/content2.mjs';
151
151
  export { progressProps } from './progress/src/progress.mjs';
@@ -1,12 +1,12 @@
1
1
  import '../../utils/index.mjs';
2
2
  import Popper from './src/popper2.mjs';
3
- export { default as ElPopperArrow } from './src/arrow.mjs';
3
+ export { default as ElPopperArrow } from './src/arrow2.mjs';
4
4
  export { default as ElPopperTrigger } from './src/trigger2.mjs';
5
5
  export { default as ElPopperContent } from './src/content2.mjs';
6
6
  export { Effect, popperProps, roleTypes, usePopperProps } from './src/popper.mjs';
7
7
  export { popperTriggerProps, usePopperTriggerProps } from './src/trigger.mjs';
8
8
  export { popperContentEmits, popperContentProps, popperCoreConfigProps, usePopperContentEmits, usePopperContentProps, usePopperCoreConfigProps } from './src/content.mjs';
9
- export { popperArrowProps, usePopperArrowProps } from './src/arrow2.mjs';
9
+ export { popperArrowProps, usePopperArrowProps } from './src/arrow.mjs';
10
10
  export { POPPER_CONTENT_INJECTION_KEY, POPPER_INJECTION_KEY } from './src/constants.mjs';
11
11
  import { withInstall } from '../../utils/vue/install.mjs';
12
12
 
@@ -1,42 +1,13 @@
1
- import { defineComponent, inject, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle } from 'vue';
2
- import '../../../hooks/index.mjs';
3
- import { POPPER_CONTENT_INJECTION_KEY } from './constants.mjs';
4
- import { popperArrowProps } from './arrow2.mjs';
5
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
7
3
 
8
- const __default__ = defineComponent({
9
- name: "ElPopperArrow",
10
- inheritAttrs: false
11
- });
12
- const _sfc_main = /* @__PURE__ */ defineComponent({
13
- ...__default__,
14
- props: popperArrowProps,
15
- setup(__props, { expose }) {
16
- const props = __props;
17
- const ns = useNamespace("popper");
18
- const { arrowOffset, arrowRef, arrowStyle } = inject(POPPER_CONTENT_INJECTION_KEY, void 0);
19
- watch(() => props.arrowOffset, (val) => {
20
- arrowOffset.value = val;
21
- });
22
- onBeforeUnmount(() => {
23
- arrowRef.value = void 0;
24
- });
25
- expose({
26
- arrowRef
27
- });
28
- return (_ctx, _cache) => {
29
- return openBlock(), createElementBlock("span", {
30
- ref_key: "arrowRef",
31
- ref: arrowRef,
32
- class: normalizeClass(unref(ns).e("arrow")),
33
- style: normalizeStyle(unref(arrowStyle)),
34
- "data-popper-arrow": ""
35
- }, null, 6);
36
- };
4
+ const popperArrowProps = buildProps({
5
+ arrowOffset: {
6
+ type: Number,
7
+ default: 5
37
8
  }
38
9
  });
39
- var ElPopperArrow = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);
10
+ const usePopperArrowProps = popperArrowProps;
40
11
 
41
- export { ElPopperArrow as default };
12
+ export { popperArrowProps, usePopperArrowProps };
42
13
  //# sourceMappingURL=arrow.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrow.mjs","sources":["../../../../../../packages/components/popper/src/arrow.vue"],"sourcesContent":["<template>\n <span\n ref=\"arrowRef\"\n :class=\"ns.e('arrow')\"\n :style=\"arrowStyle\"\n data-popper-arrow\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, onBeforeUnmount, watch } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { POPPER_CONTENT_INJECTION_KEY } from './constants'\nimport { popperArrowProps } from './arrow'\n\ndefineOptions({\n name: 'ElPopperArrow',\n inheritAttrs: false,\n})\n\nconst props = defineProps(popperArrowProps)\n\nconst ns = useNamespace('popper')\nconst { arrowOffset, arrowRef, arrowStyle } = inject(\n POPPER_CONTENT_INJECTION_KEY,\n undefined\n)!\n\nwatch(\n () => props.arrowOffset,\n (val) => {\n arrowOffset.value = val\n }\n)\nonBeforeUnmount(() => {\n arrowRef.value = undefined\n})\n\ndefineExpose({\n /**\n * @description Arrow element\n */\n arrowRef,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;mCAec,CAAA;AAAA,EACZ,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAChB,CAAA,CAAA,CAAA;;;;;;AAIA,IAAM,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAChC,IAAA,MAAM,EAAE,WAAa,EAAA,QAAA,EAAU,UAAe,EAAA,GAAA,MAAA,CAC5C,8BACA,KACF,CAAA,CAAA,CAAA;AAEA,IAAA,KAAA,CACE,MAAM,KAAA,CAAM,WACZ,EAAA,CAAC,GAAQ,KAAA;AACP,MAAA,WAAA,CAAY,KAAQ,GAAA,GAAA,CAAA;AAAA,KAExB,CAAA,CAAA;AACA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA,CAAA;AAAA,KAClB,CAAA,CAAA;AAED,IAAa,MAAA,CAAA;AAAA,MAIX,QAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"arrow.mjs","sources":["../../../../../../packages/components/popper/src/arrow.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Arrow from './arrow.vue'\n\nexport const popperArrowProps = buildProps({\n arrowOffset: {\n type: Number,\n default: 5,\n },\n} as const)\nexport type PopperArrowProps = ExtractPropTypes<typeof popperArrowProps>\n\nexport type PopperArrowInstance = InstanceType<typeof Arrow>\n\n/** @deprecated use `popperArrowProps` instead, and it will be deprecated in the next major version */\nexport const usePopperArrowProps = popperArrowProps\n\n/** @deprecated use `PopperArrowProps` instead, and it will be deprecated in the next major version */\nexport type UsePopperArrowProps = PopperArrowProps\n\n/** @deprecated use `PopperArrowInstance` instead, and it will be deprecated in the next major version */\nexport type ElPopperArrowInstance = PopperArrowInstance\n"],"names":[],"mappings":";;;AACY,MAAC,gBAAgB,GAAG,UAAU,CAAC;AAC3C,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC,EAAE;AACS,MAAC,mBAAmB,GAAG;;;;"}