14
14
classes,
15
15
result,
16
16
}"
17
+ v-bind =" $props"
17
18
:theme =" finalTheme"
18
19
:target-nodes =" getTargetNodes"
19
20
:popper-node =" () => ($refs as any).popperContent.$el"
20
21
:class =" [
21
22
themeClass,
22
23
]"
24
+ @show =" () => $emit('show')"
25
+ @hide =" () => $emit('hide')"
26
+ @update:shown =" (shown) => $emit('update:shown', shown)"
27
+ @apply-show =" () => $emit('apply-show')"
28
+ @apply-hide =" () => $emit('apply-hide')"
29
+ @close-group =" () => $emit('close-group')"
30
+ @close-directive =" () => $emit('close-directive')"
31
+ @auto-hide =" () => $emit('auto-hide')"
32
+ @resize =" () => $emit('resize')"
33
+ @dispose =" () => $emit('dispose')"
23
34
>
24
35
<slot
25
36
:shown =" isShown"
51
62
</template >
52
63
53
64
<script lang="ts">
54
- import { defineComponent } from ' vue'
65
+ import { defineComponent , type PropType } from ' vue'
55
66
import Popper from ' ./Popper.vue'
56
67
import PopperContent from ' ./PopperContent.vue'
57
68
import PopperMethods from ' ./PopperMethods'
58
69
import ThemeClass from ' ./ThemeClass'
59
70
71
+ export type TriggerEvent = ' hover' | ' click' | ' focus' | ' touch'
72
+
60
73
export default defineComponent ({
61
74
name: ' VPopperWrapper' ,
62
75
@@ -75,6 +88,215 @@ export default defineComponent({
75
88
type: String ,
76
89
default: null ,
77
90
},
91
+
92
+ referenceNode: {
93
+ type: Function as PropType <() => Element >,
94
+ default: null ,
95
+ },
96
+
97
+ shown: {
98
+ type: Boolean ,
99
+ default: false ,
100
+ },
101
+
102
+ showGroup: {
103
+ type: String ,
104
+ default: null ,
105
+ },
106
+
107
+ // eslint-disable-next-line vue/require-prop-types
108
+ ariaId: {
109
+ default: null ,
110
+ },
111
+
112
+ disabled: {
113
+ type: Boolean ,
114
+ default: undefined ,
115
+ },
116
+
117
+ positioningDisabled: {
118
+ type: Boolean ,
119
+ default: undefined ,
120
+ },
121
+
122
+ placement: {
123
+ type: String ,
124
+ default: undefined ,
125
+ },
126
+
127
+ delay: {
128
+ type: [String , Number , Object ] as PropType <string | number | { show: number , hide: number }>,
129
+ default: undefined ,
130
+ },
131
+
132
+ distance: {
133
+ type: [Number , String ],
134
+ default: undefined ,
135
+ },
136
+
137
+ skidding: {
138
+ type: [Number , String ],
139
+ default: undefined ,
140
+ },
141
+
142
+ triggers: {
143
+ type: Array as PropType <Array <TriggerEvent >>,
144
+ default: undefined ,
145
+ },
146
+
147
+ showTriggers: {
148
+ type: [Array , Function ] as PropType <Array <TriggerEvent > | ((triggers : Array <TriggerEvent >) => Array <TriggerEvent >)>,
149
+ default: undefined ,
150
+ },
151
+
152
+ hideTriggers: {
153
+ type: [Array , Function ] as PropType <Array <TriggerEvent > | ((triggers : Array <TriggerEvent >) => Array <TriggerEvent >)>,
154
+ default: undefined ,
155
+ },
156
+
157
+ popperTriggers: {
158
+ type: Array as PropType <Array <TriggerEvent >>,
159
+ default: undefined ,
160
+ },
161
+
162
+ popperShowTriggers: {
163
+ type: [Array , Function ] as PropType <Array <TriggerEvent > | ((triggers : Array <TriggerEvent >) => Array <TriggerEvent >)>,
164
+ default: undefined ,
165
+ },
166
+
167
+ popperHideTriggers: {
168
+ type: [Array , Function ] as PropType <Array <TriggerEvent > | ((triggers : Array <TriggerEvent >) => Array <TriggerEvent >)>,
169
+ default: undefined ,
170
+ },
171
+
172
+ container: {
173
+ type: [String , Object , Element , Boolean ],
174
+ default: undefined ,
175
+ },
176
+
177
+ boundary: {
178
+ type: [String , Element ],
179
+ default: undefined ,
180
+ },
181
+
182
+ strategy: {
183
+ type: String ,
184
+ default: undefined ,
185
+ },
186
+
187
+ autoHide: {
188
+ type: [Boolean , Function ] as PropType <boolean | ((event : Event ) => boolean )>,
189
+ default: undefined ,
190
+ },
191
+
192
+ handleResize: {
193
+ type: Boolean ,
194
+ default: undefined ,
195
+ },
196
+
197
+ instantMove: {
198
+ type: Boolean ,
199
+ default: undefined ,
200
+ },
201
+
202
+ eagerMount: {
203
+ type: Boolean ,
204
+ default: undefined ,
205
+ },
206
+
207
+ popperClass: {
208
+ type: [String , Array , Object ],
209
+ default: undefined ,
210
+ },
211
+
212
+ computeTransformOrigin: {
213
+ type: Boolean ,
214
+ default: undefined ,
215
+ },
216
+
217
+ /**
218
+ * @deprecated
219
+ */
220
+ autoMinSize: {
221
+ type: Boolean ,
222
+ default: undefined ,
223
+ },
224
+
225
+ autoSize: {
226
+ type: [Boolean , String ],
227
+ default: undefined ,
228
+ },
229
+
230
+ /**
231
+ * @deprecated
232
+ */
233
+ autoMaxSize: {
234
+ type: Boolean ,
235
+ default: undefined ,
236
+ },
237
+
238
+ autoBoundaryMaxSize: {
239
+ type: Boolean ,
240
+ default: undefined ,
241
+ },
242
+
243
+ preventOverflow: {
244
+ type: Boolean ,
245
+ default: undefined ,
246
+ },
247
+
248
+ overflowPadding: {
249
+ type: [Number , String ],
250
+ default: undefined ,
251
+ },
252
+
253
+ arrowPadding: {
254
+ type: [Number , String ],
255
+ default: undefined ,
256
+ },
257
+
258
+ arrowOverflow: {
259
+ type: Boolean ,
260
+ default: undefined ,
261
+ },
262
+
263
+ flip: {
264
+ type: Boolean ,
265
+ default: undefined ,
266
+ },
267
+
268
+ shift: {
269
+ type: Boolean ,
270
+ default: undefined ,
271
+ },
272
+
273
+ shiftCrossAxis: {
274
+ type: Boolean ,
275
+ default: undefined ,
276
+ },
277
+
278
+ noAutoFocus: {
279
+ type: Boolean ,
280
+ default: undefined ,
281
+ },
282
+
283
+ disposeTimeout: {
284
+ type: Number ,
285
+ default: undefined ,
286
+ },
287
+ },
288
+
289
+ emits: {
290
+ show : () => true ,
291
+ hide : () => true ,
292
+ ' update:shown' : (shown : boolean ) => true ,
293
+ ' apply-show' : () => true ,
294
+ ' apply-hide' : () => true ,
295
+ ' close-group' : () => true ,
296
+ ' close-directive' : () => true ,
297
+ ' auto-hide' : () => true ,
298
+ ' resize' : () => true ,
299
+ ' dispose' : () => true ,
78
300
},
79
301
80
302
computed: {
0 commit comments