@element-plus/nightly 0.0.20220722 → 0.0.20220723

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 (278) 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/cs.js +1 -1
  32. package/dist/locale/cs.min.js +1 -1
  33. package/dist/locale/cs.min.mjs +1 -1
  34. package/dist/locale/cs.mjs +1 -1
  35. package/dist/locale/da.js +1 -1
  36. package/dist/locale/da.min.js +1 -1
  37. package/dist/locale/da.min.mjs +1 -1
  38. package/dist/locale/da.mjs +1 -1
  39. package/dist/locale/de.js +1 -1
  40. package/dist/locale/de.min.js +1 -1
  41. package/dist/locale/de.min.mjs +1 -1
  42. package/dist/locale/de.mjs +1 -1
  43. package/dist/locale/el.js +1 -1
  44. package/dist/locale/el.min.js +1 -1
  45. package/dist/locale/el.min.mjs +1 -1
  46. package/dist/locale/el.mjs +1 -1
  47. package/dist/locale/en.js +1 -1
  48. package/dist/locale/en.min.js +1 -1
  49. package/dist/locale/en.min.mjs +1 -1
  50. package/dist/locale/en.mjs +1 -1
  51. package/dist/locale/eo.js +1 -1
  52. package/dist/locale/eo.min.js +1 -1
  53. package/dist/locale/eo.min.mjs +1 -1
  54. package/dist/locale/eo.mjs +1 -1
  55. package/dist/locale/es.js +1 -1
  56. package/dist/locale/es.min.js +1 -1
  57. package/dist/locale/es.min.mjs +1 -1
  58. package/dist/locale/es.mjs +1 -1
  59. package/dist/locale/et.js +1 -1
  60. package/dist/locale/et.min.js +1 -1
  61. package/dist/locale/et.min.mjs +1 -1
  62. package/dist/locale/et.mjs +1 -1
  63. package/dist/locale/eu.js +1 -1
  64. package/dist/locale/eu.min.js +1 -1
  65. package/dist/locale/eu.min.mjs +1 -1
  66. package/dist/locale/eu.mjs +1 -1
  67. package/dist/locale/fa.js +1 -1
  68. package/dist/locale/fa.min.js +1 -1
  69. package/dist/locale/fa.min.mjs +1 -1
  70. package/dist/locale/fa.mjs +1 -1
  71. package/dist/locale/fi.js +1 -1
  72. package/dist/locale/fi.min.js +1 -1
  73. package/dist/locale/fi.min.mjs +1 -1
  74. package/dist/locale/fi.mjs +1 -1
  75. package/dist/locale/fr.js +1 -1
  76. package/dist/locale/fr.min.js +1 -1
  77. package/dist/locale/fr.min.mjs +1 -1
  78. package/dist/locale/fr.mjs +1 -1
  79. package/dist/locale/he.js +1 -1
  80. package/dist/locale/he.min.js +1 -1
  81. package/dist/locale/he.min.mjs +1 -1
  82. package/dist/locale/he.mjs +1 -1
  83. package/dist/locale/hr.js +1 -1
  84. package/dist/locale/hr.min.js +1 -1
  85. package/dist/locale/hr.min.mjs +1 -1
  86. package/dist/locale/hr.mjs +1 -1
  87. package/dist/locale/hu.js +1 -1
  88. package/dist/locale/hu.min.js +1 -1
  89. package/dist/locale/hu.min.mjs +1 -1
  90. package/dist/locale/hu.mjs +1 -1
  91. package/dist/locale/hy-am.js +1 -1
  92. package/dist/locale/hy-am.min.js +1 -1
  93. package/dist/locale/hy-am.min.mjs +1 -1
  94. package/dist/locale/hy-am.mjs +1 -1
  95. package/dist/locale/id.js +1 -1
  96. package/dist/locale/id.min.js +1 -1
  97. package/dist/locale/id.min.mjs +1 -1
  98. package/dist/locale/id.mjs +1 -1
  99. package/dist/locale/it.js +1 -1
  100. package/dist/locale/it.min.js +1 -1
  101. package/dist/locale/it.min.mjs +1 -1
  102. package/dist/locale/it.mjs +1 -1
  103. package/dist/locale/ja.js +1 -1
  104. package/dist/locale/ja.min.js +1 -1
  105. package/dist/locale/ja.min.mjs +1 -1
  106. package/dist/locale/ja.mjs +1 -1
  107. package/dist/locale/kk.js +1 -1
  108. package/dist/locale/kk.min.js +1 -1
  109. package/dist/locale/kk.min.mjs +1 -1
  110. package/dist/locale/kk.mjs +1 -1
  111. package/dist/locale/km.js +1 -1
  112. package/dist/locale/km.min.js +1 -1
  113. package/dist/locale/km.min.mjs +1 -1
  114. package/dist/locale/km.mjs +1 -1
  115. package/dist/locale/ko.js +1 -1
  116. package/dist/locale/ko.min.js +1 -1
  117. package/dist/locale/ko.min.mjs +1 -1
  118. package/dist/locale/ko.mjs +1 -1
  119. package/dist/locale/ku.js +1 -1
  120. package/dist/locale/ku.min.js +1 -1
  121. package/dist/locale/ku.min.mjs +1 -1
  122. package/dist/locale/ku.mjs +1 -1
  123. package/dist/locale/ky.js +1 -1
  124. package/dist/locale/ky.min.js +1 -1
  125. package/dist/locale/ky.min.mjs +1 -1
  126. package/dist/locale/ky.mjs +1 -1
  127. package/dist/locale/lt.js +1 -1
  128. package/dist/locale/lt.min.js +1 -1
  129. package/dist/locale/lt.min.mjs +1 -1
  130. package/dist/locale/lt.mjs +1 -1
  131. package/dist/locale/lv.js +1 -1
  132. package/dist/locale/lv.min.js +1 -1
  133. package/dist/locale/lv.min.mjs +1 -1
  134. package/dist/locale/lv.mjs +1 -1
  135. package/dist/locale/mg.js +1 -1
  136. package/dist/locale/mg.min.js +1 -1
  137. package/dist/locale/mg.min.mjs +1 -1
  138. package/dist/locale/mg.mjs +1 -1
  139. package/dist/locale/mn.js +1 -1
  140. package/dist/locale/mn.min.js +1 -1
  141. package/dist/locale/mn.min.mjs +1 -1
  142. package/dist/locale/mn.mjs +1 -1
  143. package/dist/locale/nb-no.js +1 -1
  144. package/dist/locale/nb-no.min.js +1 -1
  145. package/dist/locale/nb-no.min.mjs +1 -1
  146. package/dist/locale/nb-no.mjs +1 -1
  147. package/dist/locale/nl.js +1 -1
  148. package/dist/locale/nl.min.js +1 -1
  149. package/dist/locale/nl.min.mjs +1 -1
  150. package/dist/locale/nl.mjs +1 -1
  151. package/dist/locale/pa.js +1 -1
  152. package/dist/locale/pa.min.js +1 -1
  153. package/dist/locale/pa.min.mjs +1 -1
  154. package/dist/locale/pa.mjs +1 -1
  155. package/dist/locale/pl.js +1 -1
  156. package/dist/locale/pl.min.js +1 -1
  157. package/dist/locale/pl.min.mjs +1 -1
  158. package/dist/locale/pl.mjs +1 -1
  159. package/dist/locale/pt-br.js +1 -1
  160. package/dist/locale/pt-br.min.js +1 -1
  161. package/dist/locale/pt-br.min.mjs +1 -1
  162. package/dist/locale/pt-br.mjs +1 -1
  163. package/dist/locale/pt.js +1 -1
  164. package/dist/locale/pt.min.js +1 -1
  165. package/dist/locale/pt.min.mjs +1 -1
  166. package/dist/locale/pt.mjs +1 -1
  167. package/dist/locale/ro.js +1 -1
  168. package/dist/locale/ro.min.js +1 -1
  169. package/dist/locale/ro.min.mjs +1 -1
  170. package/dist/locale/ro.mjs +1 -1
  171. package/dist/locale/ru.js +1 -1
  172. package/dist/locale/ru.min.js +1 -1
  173. package/dist/locale/ru.min.mjs +1 -1
  174. package/dist/locale/ru.mjs +1 -1
  175. package/dist/locale/sk.js +1 -1
  176. package/dist/locale/sk.min.js +1 -1
  177. package/dist/locale/sk.min.mjs +1 -1
  178. package/dist/locale/sk.mjs +1 -1
  179. package/dist/locale/sl.js +1 -1
  180. package/dist/locale/sl.min.js +1 -1
  181. package/dist/locale/sl.min.mjs +1 -1
  182. package/dist/locale/sl.mjs +1 -1
  183. package/dist/locale/sr.js +1 -1
  184. package/dist/locale/sr.min.js +1 -1
  185. package/dist/locale/sr.min.mjs +1 -1
  186. package/dist/locale/sr.mjs +1 -1
  187. package/dist/locale/sv.js +1 -1
  188. package/dist/locale/sv.min.js +1 -1
  189. package/dist/locale/sv.min.mjs +1 -1
  190. package/dist/locale/sv.mjs +1 -1
  191. package/dist/locale/ta.js +1 -1
  192. package/dist/locale/ta.min.js +1 -1
  193. package/dist/locale/ta.min.mjs +1 -1
  194. package/dist/locale/ta.mjs +1 -1
  195. package/dist/locale/th.js +1 -1
  196. package/dist/locale/th.min.js +1 -1
  197. package/dist/locale/th.min.mjs +1 -1
  198. package/dist/locale/th.mjs +1 -1
  199. package/dist/locale/tk.js +1 -1
  200. package/dist/locale/tk.min.js +1 -1
  201. package/dist/locale/tk.min.mjs +1 -1
  202. package/dist/locale/tk.mjs +1 -1
  203. package/dist/locale/tr.js +1 -1
  204. package/dist/locale/tr.min.js +1 -1
  205. package/dist/locale/tr.min.mjs +1 -1
  206. package/dist/locale/tr.mjs +1 -1
  207. package/dist/locale/ug-cn.js +1 -1
  208. package/dist/locale/ug-cn.min.js +1 -1
  209. package/dist/locale/ug-cn.min.mjs +1 -1
  210. package/dist/locale/ug-cn.mjs +1 -1
  211. package/dist/locale/uk.js +1 -1
  212. package/dist/locale/uk.min.js +1 -1
  213. package/dist/locale/uk.min.mjs +1 -1
  214. package/dist/locale/uk.mjs +1 -1
  215. package/dist/locale/uz-uz.js +1 -1
  216. package/dist/locale/uz-uz.min.js +1 -1
  217. package/dist/locale/uz-uz.min.mjs +1 -1
  218. package/dist/locale/uz-uz.mjs +1 -1
  219. package/dist/locale/vi.js +1 -1
  220. package/dist/locale/vi.min.js +1 -1
  221. package/dist/locale/vi.min.mjs +1 -1
  222. package/dist/locale/vi.mjs +1 -1
  223. package/dist/locale/zh-cn.js +1 -1
  224. package/dist/locale/zh-cn.min.js +1 -1
  225. package/dist/locale/zh-cn.min.mjs +1 -1
  226. package/dist/locale/zh-cn.mjs +1 -1
  227. package/dist/locale/zh-tw.js +1 -1
  228. package/dist/locale/zh-tw.min.js +1 -1
  229. package/dist/locale/zh-tw.min.mjs +1 -1
  230. package/dist/locale/zh-tw.mjs +1 -1
  231. package/es/components/calendar/index.mjs +2 -2
  232. package/es/components/calendar/src/calendar.mjs +16 -230
  233. package/es/components/calendar/src/calendar.mjs.map +1 -1
  234. package/es/components/calendar/src/calendar2.mjs +230 -16
  235. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  236. package/es/components/index.mjs +4 -4
  237. package/es/components/message/index.mjs +1 -1
  238. package/es/components/message/src/message.mjs +147 -87
  239. package/es/components/message/src/message.mjs.map +1 -1
  240. package/es/components/message/src/message2.mjs +87 -147
  241. package/es/components/message/src/message2.mjs.map +1 -1
  242. package/es/components/message/src/method.mjs +2 -2
  243. package/es/components/popper/index.mjs +2 -2
  244. package/es/components/popper/src/content.mjs +87 -207
  245. package/es/components/popper/src/content.mjs.map +1 -1
  246. package/es/components/popper/src/content2.mjs +207 -87
  247. package/es/components/popper/src/content2.mjs.map +1 -1
  248. package/es/components/tooltip/src/content.mjs +1 -1
  249. package/es/components/tooltip/src/tooltip.mjs +1 -1
  250. package/es/index.mjs +4 -4
  251. package/es/version.d.ts +1 -1
  252. package/es/version.mjs +1 -1
  253. package/es/version.mjs.map +1 -1
  254. package/lib/components/calendar/index.js +2 -2
  255. package/lib/components/calendar/src/calendar.js +16 -233
  256. package/lib/components/calendar/src/calendar.js.map +1 -1
  257. package/lib/components/calendar/src/calendar2.js +233 -16
  258. package/lib/components/calendar/src/calendar2.js.map +1 -1
  259. package/lib/components/index.js +4 -4
  260. package/lib/components/message/index.js +1 -1
  261. package/lib/components/message/src/message.js +145 -88
  262. package/lib/components/message/src/message.js.map +1 -1
  263. package/lib/components/message/src/message2.js +88 -145
  264. package/lib/components/message/src/message2.js.map +1 -1
  265. package/lib/components/message/src/method.js +2 -2
  266. package/lib/components/popper/index.js +2 -2
  267. package/lib/components/popper/src/content.js +88 -206
  268. package/lib/components/popper/src/content.js.map +1 -1
  269. package/lib/components/popper/src/content2.js +206 -88
  270. package/lib/components/popper/src/content2.js.map +1 -1
  271. package/lib/components/tooltip/src/content.js +1 -1
  272. package/lib/components/tooltip/src/tooltip.js +1 -1
  273. package/lib/index.js +4 -4
  274. package/lib/version.d.ts +1 -1
  275. package/lib/version.js +1 -1
  276. package/lib/version.js.map +1 -1
  277. package/package.json +2 -2
  278. package/web-types.json +1 -1
@@ -1,213 +1,93 @@
1
- import { defineComponent, inject, ref, provide, computed, unref, onMounted, watch, toRefs, onBeforeUnmount, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, withCtx, renderSlot } from 'vue';
2
- import { NOOP } from '@vue/shared';
3
- import { isNil } from 'lodash-unified';
4
- import { createPopper } from '@popperjs/core';
5
- import '../../focus-trap/index.mjs';
6
- import '../../../hooks/index.mjs';
7
- import '../../../tokens/index.mjs';
1
+ import { placements } from '@popperjs/core';
8
2
  import '../../../utils/index.mjs';
9
- import { usePopperContentProps, usePopperContentEmits } from './content2.mjs';
10
- import { unwrapMeasurableEl, buildPopperOptions } from './utils.mjs';
11
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
12
- import { POPPER_INJECTION_KEY, POPPER_CONTENT_INJECTION_KEY } from '../../../tokens/popper.mjs';
13
- import { formItemContextKey } from '../../../tokens/form.mjs';
14
- import { useZIndex } from '../../../hooks/use-z-index/index.mjs';
15
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
16
- import { isElement } from '../../../utils/types.mjs';
17
- import ElFocusTrap from '../../focus-trap/src/focus-trap.mjs';
3
+ import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
18
4
 
19
- const __default__ = {
20
- name: "ElPopperContent"
21
- };
22
- const _sfc_main = /* @__PURE__ */ defineComponent({
23
- ...__default__,
24
- props: usePopperContentProps,
25
- emits: usePopperContentEmits,
26
- setup(__props, { expose, emit }) {
27
- const props = __props;
28
- const { popperInstanceRef, contentRef, triggerRef, role } = inject(POPPER_INJECTION_KEY, void 0);
29
- const formItemContext = inject(formItemContextKey, void 0);
30
- const { nextZIndex } = useZIndex();
31
- const ns = useNamespace("popper");
32
- const popperContentRef = ref();
33
- const focusStartRef = ref("first");
34
- const arrowRef = ref();
35
- const arrowOffset = ref();
36
- provide(POPPER_CONTENT_INJECTION_KEY, {
37
- arrowRef,
38
- arrowOffset
39
- });
40
- if (formItemContext && (formItemContext.addInputId || formItemContext.removeInputId)) {
41
- provide(formItemContextKey, {
42
- ...formItemContext,
43
- addInputId: NOOP,
44
- removeInputId: NOOP
45
- });
46
- }
47
- const contentZIndex = ref(props.zIndex || nextZIndex());
48
- const trapped = ref(false);
49
- let triggerTargetAriaStopWatch = void 0;
50
- const computedReference = computed(() => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef));
51
- const contentStyle = computed(() => [{ zIndex: unref(contentZIndex) }, props.popperStyle]);
52
- const contentClass = computed(() => [
53
- ns.b(),
54
- ns.is("pure", props.pure),
55
- ns.is(props.effect),
56
- props.popperClass
57
- ]);
58
- const ariaModal = computed(() => {
59
- return role && role.value === "dialog" ? "false" : void 0;
60
- });
61
- const createPopperInstance = ({ referenceEl, popperContentEl, arrowEl }) => {
62
- const options = buildPopperOptions(props, {
63
- arrowEl,
64
- arrowOffset: unref(arrowOffset)
65
- });
66
- return createPopper(referenceEl, popperContentEl, options);
67
- };
68
- const updatePopper = (shouldUpdateZIndex = true) => {
69
- var _a;
70
- (_a = unref(popperInstanceRef)) == null ? void 0 : _a.update();
71
- shouldUpdateZIndex && (contentZIndex.value = props.zIndex || nextZIndex());
72
- };
73
- const togglePopperAlive = () => {
74
- var _a, _b;
75
- const monitorable = { name: "eventListeners", enabled: props.visible };
76
- (_b = (_a = unref(popperInstanceRef)) == null ? void 0 : _a.setOptions) == null ? void 0 : _b.call(_a, (options) => ({
77
- ...options,
78
- modifiers: [...options.modifiers || [], monitorable]
79
- }));
80
- updatePopper(false);
81
- if (props.visible && props.focusOnShow) {
82
- trapped.value = true;
83
- } else if (props.visible === false) {
84
- trapped.value = false;
85
- }
86
- };
87
- const onFocusAfterTrapped = () => {
88
- emit("focus");
89
- };
90
- const onFocusAfterReleased = () => {
91
- focusStartRef.value = "first";
92
- emit("blur");
93
- };
94
- const onFocusInTrap = (event) => {
95
- var _a;
96
- if (props.visible && !trapped.value) {
97
- if (event.target) {
98
- focusStartRef.value = event.target;
99
- }
100
- trapped.value = true;
101
- if (event.relatedTarget) {
102
- ;
103
- (_a = event.relatedTarget) == null ? void 0 : _a.focus();
104
- }
105
- }
106
- };
107
- const onFocusoutPrevented = () => {
108
- if (!props.trapping) {
109
- trapped.value = false;
110
- }
111
- };
112
- const onReleaseRequested = () => {
113
- trapped.value = false;
114
- emit("close");
115
- };
116
- onMounted(() => {
117
- let updateHandle;
118
- watch(computedReference, (referenceEl) => {
119
- var _a;
120
- updateHandle == null ? void 0 : updateHandle();
121
- const popperInstance = unref(popperInstanceRef);
122
- (_a = popperInstance == null ? void 0 : popperInstance.destroy) == null ? void 0 : _a.call(popperInstance);
123
- if (referenceEl) {
124
- const popperContentEl = unref(popperContentRef);
125
- contentRef.value = popperContentEl;
126
- popperInstanceRef.value = createPopperInstance({
127
- referenceEl,
128
- popperContentEl,
129
- arrowEl: unref(arrowRef)
130
- });
131
- updateHandle = watch(() => referenceEl.getBoundingClientRect(), () => updatePopper(), {
132
- immediate: true
133
- });
134
- } else {
135
- popperInstanceRef.value = void 0;
136
- }
137
- }, {
138
- immediate: true
139
- });
140
- watch(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => {
141
- triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
142
- triggerTargetAriaStopWatch = void 0;
143
- const el = unref(triggerTargetEl || popperContentRef.value);
144
- const prevEl = unref(prevTriggerTargetEl || popperContentRef.value);
145
- if (isElement(el)) {
146
- const { ariaLabel, id } = toRefs(props);
147
- triggerTargetAriaStopWatch = watch([role, ariaLabel, ariaModal, id], (watches) => {
148
- ;
149
- ["role", "aria-label", "aria-modal", "id"].forEach((key, idx) => {
150
- isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
151
- });
152
- }, { immediate: true });
153
- }
154
- if (isElement(prevEl)) {
155
- ;
156
- ["role", "aria-label", "aria-modal", "id"].forEach((key) => {
157
- prevEl.removeAttribute(key);
158
- });
159
- }
160
- }, { immediate: true });
161
- watch(() => props.visible, togglePopperAlive, { immediate: true });
162
- watch(() => buildPopperOptions(props, {
163
- arrowEl: unref(arrowRef),
164
- arrowOffset: unref(arrowOffset)
165
- }), (option) => {
166
- var _a;
167
- return (_a = popperInstanceRef.value) == null ? void 0 : _a.setOptions(option);
168
- });
169
- });
170
- onBeforeUnmount(() => {
171
- triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
172
- triggerTargetAriaStopWatch = void 0;
173
- });
174
- expose({
175
- popperContentRef,
176
- popperInstanceRef,
177
- updatePopper,
178
- contentStyle
179
- });
180
- return (_ctx, _cache) => {
181
- return openBlock(), createElementBlock("div", {
182
- ref_key: "popperContentRef",
183
- ref: popperContentRef,
184
- style: normalizeStyle(unref(contentStyle)),
185
- class: normalizeClass(unref(contentClass)),
186
- tabindex: "-1",
187
- onMouseenter: _cache[0] || (_cache[0] = (e) => _ctx.$emit("mouseenter", e)),
188
- onMouseleave: _cache[1] || (_cache[1] = (e) => _ctx.$emit("mouseleave", e))
189
- }, [
190
- createVNode(unref(ElFocusTrap), {
191
- trapped: trapped.value,
192
- "trap-on-focus-in": true,
193
- "focus-trap-el": popperContentRef.value,
194
- "focus-start-el": focusStartRef.value,
195
- onFocusAfterTrapped,
196
- onFocusAfterReleased,
197
- onFocusin: onFocusInTrap,
198
- onFocusoutPrevented,
199
- onReleaseRequested
200
- }, {
201
- default: withCtx(() => [
202
- renderSlot(_ctx.$slots, "default")
203
- ]),
204
- _: 3
205
- }, 8, ["trapped", "focus-trap-el", "focus-start-el"])
206
- ], 38);
207
- };
5
+ const POSITIONING_STRATEGIES = ["fixed", "absolute"];
6
+ const usePopperCoreConfigProps = buildProps({
7
+ boundariesPadding: {
8
+ type: Number,
9
+ default: 0
10
+ },
11
+ fallbackPlacements: {
12
+ type: definePropType(Array),
13
+ default: () => []
14
+ },
15
+ gpuAcceleration: {
16
+ type: Boolean,
17
+ default: true
18
+ },
19
+ offset: {
20
+ type: Number,
21
+ default: 12
22
+ },
23
+ placement: {
24
+ type: String,
25
+ values: placements,
26
+ default: "bottom"
27
+ },
28
+ popperOptions: {
29
+ type: definePropType(Object),
30
+ default: () => ({})
31
+ },
32
+ strategy: {
33
+ type: String,
34
+ values: POSITIONING_STRATEGIES,
35
+ default: "absolute"
208
36
  }
209
37
  });
210
- var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);
38
+ const usePopperContentProps = buildProps({
39
+ ...usePopperCoreConfigProps,
40
+ id: String,
41
+ style: { type: definePropType([String, Array, Object]) },
42
+ className: { type: definePropType([String, Array, Object]) },
43
+ effect: {
44
+ type: String,
45
+ default: "dark"
46
+ },
47
+ visible: Boolean,
48
+ enterable: {
49
+ type: Boolean,
50
+ default: true
51
+ },
52
+ pure: Boolean,
53
+ focusOnShow: {
54
+ type: Boolean,
55
+ default: false
56
+ },
57
+ trapping: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+ popperClass: {
62
+ type: definePropType([String, Array, Object])
63
+ },
64
+ popperStyle: {
65
+ type: definePropType([String, Array, Object])
66
+ },
67
+ referenceEl: {
68
+ type: definePropType(Object)
69
+ },
70
+ triggerTargetEl: {
71
+ type: definePropType(Object)
72
+ },
73
+ stopPopperMouseEvent: {
74
+ type: Boolean,
75
+ default: true
76
+ },
77
+ ariaLabel: {
78
+ type: String,
79
+ default: void 0
80
+ },
81
+ virtualTriggering: Boolean,
82
+ zIndex: Number
83
+ });
84
+ const usePopperContentEmits = [
85
+ "mouseenter",
86
+ "mouseleave",
87
+ "focus",
88
+ "blur",
89
+ "close"
90
+ ];
211
91
 
212
- export { ElPopperContent as default };
92
+ export { usePopperContentEmits, usePopperContentProps, usePopperCoreConfigProps };
213
93
  //# sourceMappingURL=content.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/popper/src/content.vue"],"sourcesContent":["<template>\n <div\n ref=\"popperContentRef\"\n :style=\"contentStyle\"\n :class=\"contentClass\"\n tabindex=\"-1\"\n @mouseenter=\"(e) => $emit('mouseenter', e)\"\n @mouseleave=\"(e) => $emit('mouseleave', e)\"\n >\n <el-focus-trap\n :trapped=\"trapped\"\n :trap-on-focus-in=\"true\"\n :focus-trap-el=\"popperContentRef\"\n :focus-start-el=\"focusStartRef\"\n @focus-after-trapped=\"onFocusAfterTrapped\"\n @focus-after-released=\"onFocusAfterReleased\"\n @focusin=\"onFocusInTrap\"\n @focusout-prevented=\"onFocusoutPrevented\"\n @release-requested=\"onReleaseRequested\"\n >\n <slot />\n </el-focus-trap>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n// @ts-nocheck\nimport {\n computed,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n toRefs,\n unref,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport { isNil } from 'lodash-unified'\nimport { createPopper } from '@popperjs/core'\nimport ElFocusTrap from '@element-plus/components/focus-trap'\nimport { useNamespace, useZIndex } from '@element-plus/hooks'\nimport {\n POPPER_CONTENT_INJECTION_KEY,\n POPPER_INJECTION_KEY,\n formItemContextKey,\n} from '@element-plus/tokens'\nimport { isElement } from '@element-plus/utils'\nimport { usePopperContentEmits, usePopperContentProps } from './content'\nimport { buildPopperOptions, unwrapMeasurableEl } from './utils'\n\nimport type { WatchStopHandle } from 'vue'\n\ndefineOptions({\n name: 'ElPopperContent',\n})\n\nconst emit = defineEmits(usePopperContentEmits)\n\nconst props = defineProps(usePopperContentProps)\n\nconst { popperInstanceRef, contentRef, triggerRef, role } = inject(\n POPPER_INJECTION_KEY,\n undefined\n)!\nconst formItemContext = inject(formItemContextKey, undefined)\nconst { nextZIndex } = useZIndex()\nconst ns = useNamespace('popper')\nconst popperContentRef = ref<HTMLElement>()\nconst focusStartRef = ref<string | HTMLElement>('first')\nconst arrowRef = ref<HTMLElement>()\nconst arrowOffset = ref<number>()\nprovide(POPPER_CONTENT_INJECTION_KEY, {\n arrowRef,\n arrowOffset,\n})\n\nif (\n formItemContext &&\n (formItemContext.addInputId || formItemContext.removeInputId)\n) {\n // disallow auto-id from inside popper content\n provide(formItemContextKey, {\n ...formItemContext,\n addInputId: NOOP,\n removeInputId: NOOP,\n })\n}\n\nconst contentZIndex = ref<number>(props.zIndex || nextZIndex())\nconst trapped = ref<boolean>(false)\n\nlet triggerTargetAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst computedReference = computed(\n () => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef)\n)\n\nconst contentStyle = computed(\n () => [{ zIndex: unref(contentZIndex) }, props.popperStyle] as any\n)\n\nconst contentClass = computed(() => [\n ns.b(),\n ns.is('pure', props.pure),\n ns.is(props.effect),\n props.popperClass,\n])\n\nconst ariaModal = computed<string | undefined>(() => {\n return role && role.value === 'dialog' ? 'false' : undefined\n})\n\nconst createPopperInstance = ({ referenceEl, popperContentEl, arrowEl }) => {\n const options = buildPopperOptions(props, {\n arrowEl,\n arrowOffset: unref(arrowOffset),\n })\n\n return createPopper(referenceEl, popperContentEl, options)\n}\n\nconst updatePopper = (shouldUpdateZIndex = true) => {\n unref(popperInstanceRef)?.update()\n shouldUpdateZIndex && (contentZIndex.value = props.zIndex || nextZIndex())\n}\n\nconst togglePopperAlive = () => {\n const monitorable = { name: 'eventListeners', enabled: props.visible }\n unref(popperInstanceRef)?.setOptions?.((options) => ({\n ...options,\n modifiers: [...(options.modifiers || []), monitorable],\n }))\n updatePopper(false)\n if (props.visible && props.focusOnShow) {\n trapped.value = true\n } else if (props.visible === false) {\n trapped.value = false\n }\n}\n\nconst onFocusAfterTrapped = () => {\n emit('focus')\n}\n\nconst onFocusAfterReleased = () => {\n focusStartRef.value = 'first'\n emit('blur')\n}\n\nconst onFocusInTrap = (event: FocusEvent) => {\n if (props.visible && !trapped.value) {\n if (event.target) {\n focusStartRef.value = event.target as typeof focusStartRef.value\n }\n trapped.value = true\n if (event.relatedTarget) {\n ;(event.relatedTarget as HTMLElement)?.focus()\n }\n }\n}\n\nconst onFocusoutPrevented = () => {\n if (!props.trapping) {\n trapped.value = false\n }\n}\n\nconst onReleaseRequested = () => {\n trapped.value = false\n emit('close')\n}\n\nonMounted(() => {\n let updateHandle: WatchStopHandle\n watch(\n computedReference,\n (referenceEl) => {\n updateHandle?.()\n const popperInstance = unref(popperInstanceRef)\n popperInstance?.destroy?.()\n if (referenceEl) {\n const popperContentEl = unref(popperContentRef)!\n contentRef.value = popperContentEl\n\n popperInstanceRef.value = createPopperInstance({\n referenceEl,\n popperContentEl,\n arrowEl: unref(arrowRef),\n })\n\n updateHandle = watch(\n () => referenceEl.getBoundingClientRect(),\n () => updatePopper(),\n {\n immediate: true,\n }\n )\n } else {\n popperInstanceRef.value = undefined\n }\n },\n {\n immediate: true,\n }\n )\n\n watch(\n () => props.triggerTargetEl,\n (triggerTargetEl, prevTriggerTargetEl) => {\n triggerTargetAriaStopWatch?.()\n triggerTargetAriaStopWatch = undefined\n\n const el = unref(triggerTargetEl || popperContentRef.value)\n const prevEl = unref(prevTriggerTargetEl || popperContentRef.value)\n\n if (isElement(el)) {\n const { ariaLabel, id } = toRefs(props)\n triggerTargetAriaStopWatch = watch(\n [role, ariaLabel, ariaModal, id],\n (watches) => {\n ;['role', 'aria-label', 'aria-modal', 'id'].forEach((key, idx) => {\n isNil(watches[idx])\n ? el.removeAttribute(key)\n : el.setAttribute(key, watches[idx])\n })\n },\n { immediate: true }\n )\n }\n if (isElement(prevEl)) {\n ;['role', 'aria-label', 'aria-modal', 'id'].forEach((key) => {\n prevEl.removeAttribute(key)\n })\n }\n },\n { immediate: true }\n )\n\n watch(() => props.visible, togglePopperAlive, { immediate: true })\n\n watch(\n () =>\n buildPopperOptions(props, {\n arrowEl: unref(arrowRef),\n arrowOffset: unref(arrowOffset),\n }),\n (option) => popperInstanceRef.value?.setOptions(option)\n )\n})\n\nonBeforeUnmount(() => {\n triggerTargetAriaStopWatch?.()\n triggerTargetAriaStopWatch = undefined\n})\n\ndefineExpose({\n /**\n * @description popper content element\n */\n popperContentRef,\n /**\n * @description popperjs instance\n */\n popperInstanceRef,\n /**\n * @description method for updating popper\n */\n updatePopper,\n\n /**\n * @description content style\n */\n contentStyle,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/popper/src/content.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { buildProps, definePropType } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, StyleValue } from 'vue'\nimport type { Options, Placement } from '@popperjs/core'\n\ntype ClassObjectType = Record<string, boolean>\ntype ClassType = string | ClassObjectType | ClassType[]\n\nconst POSITIONING_STRATEGIES = ['fixed', 'absolute'] as const\nexport const usePopperCoreConfigProps = buildProps({\n boundariesPadding: {\n type: Number,\n default: 0,\n },\n fallbackPlacements: {\n type: definePropType<Placement[]>(Array),\n default: () => [],\n },\n gpuAcceleration: {\n type: Boolean,\n default: true,\n },\n offset: {\n type: Number,\n default: 12,\n },\n placement: {\n type: String,\n values: placements,\n default: 'bottom',\n },\n popperOptions: {\n type: definePropType<Partial<Options>>(Object),\n default: () => ({}),\n },\n strategy: {\n type: String,\n values: POSITIONING_STRATEGIES,\n default: 'absolute',\n },\n} as const)\n\nexport const usePopperContentProps = buildProps({\n ...usePopperCoreConfigProps,\n id: String,\n style: { type: definePropType<StyleValue>([String, Array, Object]) },\n className: { type: definePropType<ClassType>([String, Array, Object]) },\n effect: {\n type: String,\n default: 'dark',\n },\n visible: Boolean,\n enterable: {\n type: Boolean,\n default: true,\n },\n pure: Boolean,\n focusOnShow: {\n type: Boolean,\n default: false,\n },\n trapping: {\n type: Boolean,\n default: false,\n },\n popperClass: {\n type: definePropType<ClassType>([String, Array, Object]),\n },\n popperStyle: {\n type: definePropType<StyleValue>([String, Array, Object]),\n },\n referenceEl: {\n type: definePropType<HTMLElement>(Object),\n },\n triggerTargetEl: {\n type: definePropType<HTMLElement>(Object),\n },\n stopPopperMouseEvent: {\n type: Boolean,\n default: true,\n },\n ariaLabel: {\n type: String,\n default: undefined,\n },\n virtualTriggering: Boolean,\n zIndex: Number,\n} as const)\n\nexport const usePopperContentEmits = [\n 'mouseenter',\n 'mouseleave',\n 'focus',\n 'blur',\n 'close',\n]\n\nexport type UsePopperContentProps = ExtractPropTypes<\n typeof usePopperContentProps\n>\n\nexport type UsePopperCoreConfigProps = ExtractPropTypes<\n typeof usePopperCoreConfigProps\n>\n"],"names":[],"mappings":";;;;AAEA,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACzC,MAAC,wBAAwB,GAAG,UAAU,CAAC;AACnD,EAAE,iBAAiB,EAAE;AACrB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,QAAQ;AACrB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,sBAAsB;AAClC,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,qBAAqB,GAAG,UAAU,CAAC;AAChD,EAAE,GAAG,wBAAwB;AAC7B,EAAE,EAAE,EAAE,MAAM;AACZ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1D,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AAC9D,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,WAAW,EAAE;AACf,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,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,MAAM,EAAE,MAAM;AAChB,CAAC,EAAE;AACS,MAAC,qBAAqB,GAAG;AACrC,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,OAAO;AACT;;;;"}
@@ -1,93 +1,213 @@
1
- import { placements } from '@popperjs/core';
1
+ import { defineComponent, inject, ref, provide, computed, unref, onMounted, watch, toRefs, onBeforeUnmount, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, withCtx, renderSlot } from 'vue';
2
+ import { NOOP } from '@vue/shared';
3
+ import { isNil } from 'lodash-unified';
4
+ import { createPopper } from '@popperjs/core';
5
+ import '../../focus-trap/index.mjs';
6
+ import '../../../hooks/index.mjs';
7
+ import '../../../tokens/index.mjs';
2
8
  import '../../../utils/index.mjs';
3
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
9
+ import { usePopperContentProps, usePopperContentEmits } from './content.mjs';
10
+ import { unwrapMeasurableEl, buildPopperOptions } from './utils.mjs';
11
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
12
+ import { POPPER_INJECTION_KEY, POPPER_CONTENT_INJECTION_KEY } from '../../../tokens/popper.mjs';
13
+ import { formItemContextKey } from '../../../tokens/form.mjs';
14
+ import { useZIndex } from '../../../hooks/use-z-index/index.mjs';
15
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
16
+ import { isElement } from '../../../utils/types.mjs';
17
+ import ElFocusTrap from '../../focus-trap/src/focus-trap.mjs';
4
18
 
5
- const POSITIONING_STRATEGIES = ["fixed", "absolute"];
6
- const usePopperCoreConfigProps = buildProps({
7
- boundariesPadding: {
8
- type: Number,
9
- default: 0
10
- },
11
- fallbackPlacements: {
12
- type: definePropType(Array),
13
- default: () => []
14
- },
15
- gpuAcceleration: {
16
- type: Boolean,
17
- default: true
18
- },
19
- offset: {
20
- type: Number,
21
- default: 12
22
- },
23
- placement: {
24
- type: String,
25
- values: placements,
26
- default: "bottom"
27
- },
28
- popperOptions: {
29
- type: definePropType(Object),
30
- default: () => ({})
31
- },
32
- strategy: {
33
- type: String,
34
- values: POSITIONING_STRATEGIES,
35
- default: "absolute"
19
+ const __default__ = {
20
+ name: "ElPopperContent"
21
+ };
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
23
+ ...__default__,
24
+ props: usePopperContentProps,
25
+ emits: usePopperContentEmits,
26
+ setup(__props, { expose, emit }) {
27
+ const props = __props;
28
+ const { popperInstanceRef, contentRef, triggerRef, role } = inject(POPPER_INJECTION_KEY, void 0);
29
+ const formItemContext = inject(formItemContextKey, void 0);
30
+ const { nextZIndex } = useZIndex();
31
+ const ns = useNamespace("popper");
32
+ const popperContentRef = ref();
33
+ const focusStartRef = ref("first");
34
+ const arrowRef = ref();
35
+ const arrowOffset = ref();
36
+ provide(POPPER_CONTENT_INJECTION_KEY, {
37
+ arrowRef,
38
+ arrowOffset
39
+ });
40
+ if (formItemContext && (formItemContext.addInputId || formItemContext.removeInputId)) {
41
+ provide(formItemContextKey, {
42
+ ...formItemContext,
43
+ addInputId: NOOP,
44
+ removeInputId: NOOP
45
+ });
46
+ }
47
+ const contentZIndex = ref(props.zIndex || nextZIndex());
48
+ const trapped = ref(false);
49
+ let triggerTargetAriaStopWatch = void 0;
50
+ const computedReference = computed(() => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef));
51
+ const contentStyle = computed(() => [{ zIndex: unref(contentZIndex) }, props.popperStyle]);
52
+ const contentClass = computed(() => [
53
+ ns.b(),
54
+ ns.is("pure", props.pure),
55
+ ns.is(props.effect),
56
+ props.popperClass
57
+ ]);
58
+ const ariaModal = computed(() => {
59
+ return role && role.value === "dialog" ? "false" : void 0;
60
+ });
61
+ const createPopperInstance = ({ referenceEl, popperContentEl, arrowEl }) => {
62
+ const options = buildPopperOptions(props, {
63
+ arrowEl,
64
+ arrowOffset: unref(arrowOffset)
65
+ });
66
+ return createPopper(referenceEl, popperContentEl, options);
67
+ };
68
+ const updatePopper = (shouldUpdateZIndex = true) => {
69
+ var _a;
70
+ (_a = unref(popperInstanceRef)) == null ? void 0 : _a.update();
71
+ shouldUpdateZIndex && (contentZIndex.value = props.zIndex || nextZIndex());
72
+ };
73
+ const togglePopperAlive = () => {
74
+ var _a, _b;
75
+ const monitorable = { name: "eventListeners", enabled: props.visible };
76
+ (_b = (_a = unref(popperInstanceRef)) == null ? void 0 : _a.setOptions) == null ? void 0 : _b.call(_a, (options) => ({
77
+ ...options,
78
+ modifiers: [...options.modifiers || [], monitorable]
79
+ }));
80
+ updatePopper(false);
81
+ if (props.visible && props.focusOnShow) {
82
+ trapped.value = true;
83
+ } else if (props.visible === false) {
84
+ trapped.value = false;
85
+ }
86
+ };
87
+ const onFocusAfterTrapped = () => {
88
+ emit("focus");
89
+ };
90
+ const onFocusAfterReleased = () => {
91
+ focusStartRef.value = "first";
92
+ emit("blur");
93
+ };
94
+ const onFocusInTrap = (event) => {
95
+ var _a;
96
+ if (props.visible && !trapped.value) {
97
+ if (event.target) {
98
+ focusStartRef.value = event.target;
99
+ }
100
+ trapped.value = true;
101
+ if (event.relatedTarget) {
102
+ ;
103
+ (_a = event.relatedTarget) == null ? void 0 : _a.focus();
104
+ }
105
+ }
106
+ };
107
+ const onFocusoutPrevented = () => {
108
+ if (!props.trapping) {
109
+ trapped.value = false;
110
+ }
111
+ };
112
+ const onReleaseRequested = () => {
113
+ trapped.value = false;
114
+ emit("close");
115
+ };
116
+ onMounted(() => {
117
+ let updateHandle;
118
+ watch(computedReference, (referenceEl) => {
119
+ var _a;
120
+ updateHandle == null ? void 0 : updateHandle();
121
+ const popperInstance = unref(popperInstanceRef);
122
+ (_a = popperInstance == null ? void 0 : popperInstance.destroy) == null ? void 0 : _a.call(popperInstance);
123
+ if (referenceEl) {
124
+ const popperContentEl = unref(popperContentRef);
125
+ contentRef.value = popperContentEl;
126
+ popperInstanceRef.value = createPopperInstance({
127
+ referenceEl,
128
+ popperContentEl,
129
+ arrowEl: unref(arrowRef)
130
+ });
131
+ updateHandle = watch(() => referenceEl.getBoundingClientRect(), () => updatePopper(), {
132
+ immediate: true
133
+ });
134
+ } else {
135
+ popperInstanceRef.value = void 0;
136
+ }
137
+ }, {
138
+ immediate: true
139
+ });
140
+ watch(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => {
141
+ triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
142
+ triggerTargetAriaStopWatch = void 0;
143
+ const el = unref(triggerTargetEl || popperContentRef.value);
144
+ const prevEl = unref(prevTriggerTargetEl || popperContentRef.value);
145
+ if (isElement(el)) {
146
+ const { ariaLabel, id } = toRefs(props);
147
+ triggerTargetAriaStopWatch = watch([role, ariaLabel, ariaModal, id], (watches) => {
148
+ ;
149
+ ["role", "aria-label", "aria-modal", "id"].forEach((key, idx) => {
150
+ isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
151
+ });
152
+ }, { immediate: true });
153
+ }
154
+ if (isElement(prevEl)) {
155
+ ;
156
+ ["role", "aria-label", "aria-modal", "id"].forEach((key) => {
157
+ prevEl.removeAttribute(key);
158
+ });
159
+ }
160
+ }, { immediate: true });
161
+ watch(() => props.visible, togglePopperAlive, { immediate: true });
162
+ watch(() => buildPopperOptions(props, {
163
+ arrowEl: unref(arrowRef),
164
+ arrowOffset: unref(arrowOffset)
165
+ }), (option) => {
166
+ var _a;
167
+ return (_a = popperInstanceRef.value) == null ? void 0 : _a.setOptions(option);
168
+ });
169
+ });
170
+ onBeforeUnmount(() => {
171
+ triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
172
+ triggerTargetAriaStopWatch = void 0;
173
+ });
174
+ expose({
175
+ popperContentRef,
176
+ popperInstanceRef,
177
+ updatePopper,
178
+ contentStyle
179
+ });
180
+ return (_ctx, _cache) => {
181
+ return openBlock(), createElementBlock("div", {
182
+ ref_key: "popperContentRef",
183
+ ref: popperContentRef,
184
+ style: normalizeStyle(unref(contentStyle)),
185
+ class: normalizeClass(unref(contentClass)),
186
+ tabindex: "-1",
187
+ onMouseenter: _cache[0] || (_cache[0] = (e) => _ctx.$emit("mouseenter", e)),
188
+ onMouseleave: _cache[1] || (_cache[1] = (e) => _ctx.$emit("mouseleave", e))
189
+ }, [
190
+ createVNode(unref(ElFocusTrap), {
191
+ trapped: trapped.value,
192
+ "trap-on-focus-in": true,
193
+ "focus-trap-el": popperContentRef.value,
194
+ "focus-start-el": focusStartRef.value,
195
+ onFocusAfterTrapped,
196
+ onFocusAfterReleased,
197
+ onFocusin: onFocusInTrap,
198
+ onFocusoutPrevented,
199
+ onReleaseRequested
200
+ }, {
201
+ default: withCtx(() => [
202
+ renderSlot(_ctx.$slots, "default")
203
+ ]),
204
+ _: 3
205
+ }, 8, ["trapped", "focus-trap-el", "focus-start-el"])
206
+ ], 38);
207
+ };
36
208
  }
37
209
  });
38
- const usePopperContentProps = buildProps({
39
- ...usePopperCoreConfigProps,
40
- id: String,
41
- style: { type: definePropType([String, Array, Object]) },
42
- className: { type: definePropType([String, Array, Object]) },
43
- effect: {
44
- type: String,
45
- default: "dark"
46
- },
47
- visible: Boolean,
48
- enterable: {
49
- type: Boolean,
50
- default: true
51
- },
52
- pure: Boolean,
53
- focusOnShow: {
54
- type: Boolean,
55
- default: false
56
- },
57
- trapping: {
58
- type: Boolean,
59
- default: false
60
- },
61
- popperClass: {
62
- type: definePropType([String, Array, Object])
63
- },
64
- popperStyle: {
65
- type: definePropType([String, Array, Object])
66
- },
67
- referenceEl: {
68
- type: definePropType(Object)
69
- },
70
- triggerTargetEl: {
71
- type: definePropType(Object)
72
- },
73
- stopPopperMouseEvent: {
74
- type: Boolean,
75
- default: true
76
- },
77
- ariaLabel: {
78
- type: String,
79
- default: void 0
80
- },
81
- virtualTriggering: Boolean,
82
- zIndex: Number
83
- });
84
- const usePopperContentEmits = [
85
- "mouseenter",
86
- "mouseleave",
87
- "focus",
88
- "blur",
89
- "close"
90
- ];
210
+ var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);
91
211
 
92
- export { usePopperContentEmits, usePopperContentProps, usePopperCoreConfigProps };
212
+ export { ElPopperContent as default };
93
213
  //# sourceMappingURL=content2.mjs.map