@destyler/popover 0.0.0

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.
@@ -0,0 +1,408 @@
1
+ import * as vue from 'vue';
2
+ import { Ref, VNode, ComputedRef, PropType } from 'vue';
3
+ import { MaybeArray, ExtractPublicPropTypes } from '@destyler/shared';
4
+ import { ComponentResolver } from 'unplugin-vue-components';
5
+
6
+ type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual';
7
+ type InternalRenderBody = (ref: Ref<HTMLElement | null>, onMouseenter: (e: MouseEvent) => void, onMouseleave: (e: MouseEvent) => void) => VNode;
8
+ interface PopoverInst {
9
+ syncPosition: () => void;
10
+ setShow: (value: boolean) => void;
11
+ }
12
+ type InternalPopoverInst = PopoverInst & {
13
+ getMergedShow: () => boolean;
14
+ };
15
+
16
+ interface TriggerEventHandlers {
17
+ onClick: (e: MouseEvent) => void;
18
+ onMouseenter: (e: MouseEvent) => void;
19
+ onMouseleave: (e: MouseEvent) => void;
20
+ onFocus: (e: FocusEvent) => void;
21
+ onBlur: (e: FocusEvent) => void;
22
+ }
23
+ interface PopoverInjection {
24
+ getTriggerElement: () => HTMLElement;
25
+ handleMouseEnter: (e: MouseEvent) => void;
26
+ handleMouseLeave: (e: MouseEvent) => void;
27
+ handleClickOutside: (e: MouseEvent) => void;
28
+ handleMouseMoveOutside: (e: MouseEvent) => void;
29
+ setBodyInstance: (value: BodyInstance | null) => void;
30
+ positionManually: ComputedRef<boolean>;
31
+ isMounted: Ref<boolean>;
32
+ zIndex: Ref<number | undefined>;
33
+ internalRenderBody: Ref<InternalRenderBody | undefined>;
34
+ }
35
+ declare const destylerPopoverProps: {
36
+ show: {
37
+ type: PropType<boolean | undefined>;
38
+ default: undefined;
39
+ };
40
+ defaultShow: {
41
+ type: PropType<boolean>;
42
+ };
43
+ trigger: {
44
+ type: PropType<PopoverTrigger>;
45
+ default: string;
46
+ };
47
+ delay: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ duration: {
52
+ type: NumberConstructor;
53
+ default: number;
54
+ };
55
+ x: {
56
+ type: PropType<number>;
57
+ };
58
+ y: {
59
+ type: PropType<number>;
60
+ };
61
+ disabled: {
62
+ type: PropType<boolean>;
63
+ };
64
+ getDisabled: {
65
+ type: PropType<() => boolean>;
66
+ };
67
+ displayDirective: {
68
+ type: PropType<"show" | "if">;
69
+ default: string;
70
+ };
71
+ zIndex: {
72
+ type: PropType<number>;
73
+ };
74
+ internalSyncTargetWithParent: {
75
+ type: PropType<boolean>;
76
+ };
77
+ internalInheritedEventHandlers: {
78
+ type: PropType<TriggerEventHandlers[]>;
79
+ default: () => never[];
80
+ };
81
+ internalTrapFocus: {
82
+ type: PropType<boolean>;
83
+ };
84
+ onClickoutside: {
85
+ type: PropType<(e: MouseEvent) => void>;
86
+ };
87
+ 'onUpdate:show': {
88
+ type: PropType<MaybeArray<(value: boolean) => void>>;
89
+ };
90
+ onUpdateShow: {
91
+ type: PropType<MaybeArray<(value: boolean) => void>>;
92
+ };
93
+ onShow: {
94
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
95
+ };
96
+ onHide: {
97
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
98
+ };
99
+ internalRenderBody: {
100
+ type: PropType<InternalRenderBody>;
101
+ };
102
+ };
103
+ type PopoverProps = ExtractPublicPropTypes<typeof destylerPopoverProps>;
104
+ interface BodyInstance {
105
+ syncPosition: () => void;
106
+ [key: string]: unknown;
107
+ }
108
+ declare const DestylerPopover: vue.DefineComponent<{
109
+ show: {
110
+ type: PropType<boolean | undefined>;
111
+ default: undefined;
112
+ };
113
+ defaultShow: {
114
+ type: PropType<boolean>;
115
+ };
116
+ trigger: {
117
+ type: PropType<PopoverTrigger>;
118
+ default: string;
119
+ };
120
+ delay: {
121
+ type: NumberConstructor;
122
+ default: number;
123
+ };
124
+ duration: {
125
+ type: NumberConstructor;
126
+ default: number;
127
+ };
128
+ x: {
129
+ type: PropType<number>;
130
+ };
131
+ y: {
132
+ type: PropType<number>;
133
+ };
134
+ disabled: {
135
+ type: PropType<boolean>;
136
+ };
137
+ getDisabled: {
138
+ type: PropType<() => boolean>;
139
+ };
140
+ displayDirective: {
141
+ type: PropType<"show" | "if">;
142
+ default: string;
143
+ };
144
+ zIndex: {
145
+ type: PropType<number>;
146
+ };
147
+ internalSyncTargetWithParent: {
148
+ type: PropType<boolean>;
149
+ };
150
+ internalInheritedEventHandlers: {
151
+ type: PropType<TriggerEventHandlers[]>;
152
+ default: () => never[];
153
+ };
154
+ internalTrapFocus: {
155
+ type: PropType<boolean>;
156
+ };
157
+ onClickoutside: {
158
+ type: PropType<(e: MouseEvent) => void>;
159
+ };
160
+ 'onUpdate:show': {
161
+ type: PropType<MaybeArray<(value: boolean) => void>>;
162
+ };
163
+ onUpdateShow: {
164
+ type: PropType<MaybeArray<(value: boolean) => void>>;
165
+ };
166
+ onShow: {
167
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
168
+ };
169
+ onHide: {
170
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
171
+ };
172
+ internalRenderBody: {
173
+ type: PropType<InternalRenderBody>;
174
+ };
175
+ }, {
176
+ binderInst: Ref<{
177
+ targetRef: HTMLElement | null;
178
+ } | null>;
179
+ positionManually: ComputedRef<boolean>;
180
+ mergedShowConsideringDisabledProp: ComputedRef<boolean | undefined>;
181
+ uncontrolledShow: Ref<boolean | undefined>;
182
+ setShow: (value: boolean) => void;
183
+ getMergedShow: () => boolean;
184
+ handleClick: () => void;
185
+ handleMouseEnter: () => void;
186
+ handleMouseLeave: () => void;
187
+ handleFocus: () => void;
188
+ handleBlur: () => void;
189
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
190
+ show: {
191
+ type: PropType<boolean | undefined>;
192
+ default: undefined;
193
+ };
194
+ defaultShow: {
195
+ type: PropType<boolean>;
196
+ };
197
+ trigger: {
198
+ type: PropType<PopoverTrigger>;
199
+ default: string;
200
+ };
201
+ delay: {
202
+ type: NumberConstructor;
203
+ default: number;
204
+ };
205
+ duration: {
206
+ type: NumberConstructor;
207
+ default: number;
208
+ };
209
+ x: {
210
+ type: PropType<number>;
211
+ };
212
+ y: {
213
+ type: PropType<number>;
214
+ };
215
+ disabled: {
216
+ type: PropType<boolean>;
217
+ };
218
+ getDisabled: {
219
+ type: PropType<() => boolean>;
220
+ };
221
+ displayDirective: {
222
+ type: PropType<"show" | "if">;
223
+ default: string;
224
+ };
225
+ zIndex: {
226
+ type: PropType<number>;
227
+ };
228
+ internalSyncTargetWithParent: {
229
+ type: PropType<boolean>;
230
+ };
231
+ internalInheritedEventHandlers: {
232
+ type: PropType<TriggerEventHandlers[]>;
233
+ default: () => never[];
234
+ };
235
+ internalTrapFocus: {
236
+ type: PropType<boolean>;
237
+ };
238
+ onClickoutside: {
239
+ type: PropType<(e: MouseEvent) => void>;
240
+ };
241
+ 'onUpdate:show': {
242
+ type: PropType<MaybeArray<(value: boolean) => void>>;
243
+ };
244
+ onUpdateShow: {
245
+ type: PropType<MaybeArray<(value: boolean) => void>>;
246
+ };
247
+ onShow: {
248
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
249
+ };
250
+ onHide: {
251
+ type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
252
+ };
253
+ internalRenderBody: {
254
+ type: PropType<InternalRenderBody>;
255
+ };
256
+ }>>, {
257
+ show: boolean | undefined;
258
+ trigger: PopoverTrigger;
259
+ delay: number;
260
+ duration: number;
261
+ displayDirective: "show" | "if";
262
+ internalInheritedEventHandlers: TriggerEventHandlers[];
263
+ }, {}>;
264
+
265
+ declare const popoverBodyProps: {
266
+ show: {
267
+ type: PropType<boolean>;
268
+ };
269
+ trigger: {
270
+ type: PropType<PopoverTrigger>;
271
+ };
272
+ delay: {
273
+ type: PropType<number>;
274
+ };
275
+ duration: {
276
+ type: PropType<number>;
277
+ };
278
+ displayDirective: {
279
+ type: PropType<"show" | "if">;
280
+ };
281
+ x: {
282
+ type: PropType<number>;
283
+ };
284
+ y: {
285
+ type: PropType<number>;
286
+ };
287
+ flip: {
288
+ type: PropType<boolean>;
289
+ };
290
+ internalTrapFocus: {
291
+ type: PropType<boolean>;
292
+ };
293
+ overlap: {
294
+ type: PropType<boolean>;
295
+ };
296
+ keepAliveOnHover: {
297
+ type: PropType<boolean>;
298
+ };
299
+ scrollable: {
300
+ type: PropType<boolean>;
301
+ };
302
+ internalDeactivateImmediately: {
303
+ type: PropType<boolean>;
304
+ };
305
+ onClickoutside: {
306
+ type: PropType<(e: MouseEvent) => void>;
307
+ };
308
+ };
309
+ declare const DestylerPopoverBody: vue.DefineComponent<{
310
+ show: {
311
+ type: PropType<boolean>;
312
+ };
313
+ trigger: {
314
+ type: PropType<PopoverTrigger>;
315
+ };
316
+ delay: {
317
+ type: PropType<number>;
318
+ };
319
+ duration: {
320
+ type: PropType<number>;
321
+ };
322
+ displayDirective: {
323
+ type: PropType<"show" | "if">;
324
+ };
325
+ x: {
326
+ type: PropType<number>;
327
+ };
328
+ y: {
329
+ type: PropType<number>;
330
+ };
331
+ flip: {
332
+ type: PropType<boolean>;
333
+ };
334
+ internalTrapFocus: {
335
+ type: PropType<boolean>;
336
+ };
337
+ overlap: {
338
+ type: PropType<boolean>;
339
+ };
340
+ keepAliveOnHover: {
341
+ type: PropType<boolean>;
342
+ };
343
+ scrollable: {
344
+ type: PropType<boolean>;
345
+ };
346
+ internalDeactivateImmediately: {
347
+ type: PropType<boolean>;
348
+ };
349
+ onClickoutside: {
350
+ type: PropType<(e: MouseEvent) => void>;
351
+ };
352
+ }, {
353
+ displayed: vue.Ref<boolean>;
354
+ isMounted: vue.Ref<boolean>;
355
+ zIndex: vue.Ref<number | undefined>;
356
+ follower: vue.Ref<{
357
+ syncPosition: () => void;
358
+ } | null>;
359
+ followerEnabled: vue.Ref<boolean | undefined>;
360
+ renderContentNode: () => VNode | null;
361
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
362
+ show: {
363
+ type: PropType<boolean>;
364
+ };
365
+ trigger: {
366
+ type: PropType<PopoverTrigger>;
367
+ };
368
+ delay: {
369
+ type: PropType<number>;
370
+ };
371
+ duration: {
372
+ type: PropType<number>;
373
+ };
374
+ displayDirective: {
375
+ type: PropType<"show" | "if">;
376
+ };
377
+ x: {
378
+ type: PropType<number>;
379
+ };
380
+ y: {
381
+ type: PropType<number>;
382
+ };
383
+ flip: {
384
+ type: PropType<boolean>;
385
+ };
386
+ internalTrapFocus: {
387
+ type: PropType<boolean>;
388
+ };
389
+ overlap: {
390
+ type: PropType<boolean>;
391
+ };
392
+ keepAliveOnHover: {
393
+ type: PropType<boolean>;
394
+ };
395
+ scrollable: {
396
+ type: PropType<boolean>;
397
+ };
398
+ internalDeactivateImmediately: {
399
+ type: PropType<boolean>;
400
+ };
401
+ onClickoutside: {
402
+ type: PropType<(e: MouseEvent) => void>;
403
+ };
404
+ }>>, {}, {}>;
405
+
406
+ declare function DestylerPopoverResolver(): ComponentResolver;
407
+
408
+ export { DestylerPopover, DestylerPopoverBody, DestylerPopoverResolver, type InternalPopoverInst, type InternalRenderBody, type PopoverInjection, type PopoverInst, type PopoverProps, type PopoverTrigger, type TriggerEventHandlers, destylerPopoverProps, popoverBodyProps };