@v-c/trigger 0.0.13 → 0.0.14

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.
package/dist/index.cjs CHANGED
@@ -1,700 +1,611 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const vue = require("vue");
4
- const Portal = require("@v-c/portal");
5
- const ResizeObserver = require("@v-c/resize-observer");
6
- const util$1 = require("@v-c/util");
7
- const findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
8
- const shadow = require("@v-c/util/dist/Dom/shadow");
9
- const propsUtil = require("@v-c/util/dist/props-util");
10
- const context = require("./context.cjs");
11
- const useAction = require("./hooks/useAction.cjs");
12
- const useAlign = require("./hooks/useAlign.cjs");
13
- const useDelay = require("./hooks/useDelay.cjs");
14
- const useWatch = require("./hooks/useWatch.cjs");
15
- const useWinClick = require("./hooks/useWinClick.cjs");
16
- const index$1 = require("./Popup/index.cjs");
17
- const util = require("./util.cjs");
18
- const index = require("./UniqueProvider/index.cjs");
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
3
+ const require_context = require("./context.cjs");
4
+ const require_useAction = require("./hooks/useAction.cjs");
5
+ const require_util = require("./util.cjs");
6
+ const require_useAlign = require("./hooks/useAlign.cjs");
7
+ const require_useDelay = require("./hooks/useDelay.cjs");
8
+ const require_useWatch = require("./hooks/useWatch.cjs");
9
+ const require_useWinClick = require("./hooks/useWinClick.cjs");
10
+ const require_index = require("./Popup/index.cjs");
11
+ const require_index$1 = require("./UniqueProvider/index.cjs");
12
+ let vue = require("vue");
13
+ let __v_c_portal = require("@v-c/portal");
14
+ __v_c_portal = require_rolldown_runtime.__toESM(__v_c_portal);
15
+ let __v_c_resize_observer = require("@v-c/resize-observer");
16
+ __v_c_resize_observer = require_rolldown_runtime.__toESM(__v_c_resize_observer);
17
+ let __v_c_util = require("@v-c/util");
18
+ let __v_c_util_dist_Dom_findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
19
+ let __v_c_util_dist_Dom_shadow = require("@v-c/util/dist/Dom/shadow");
20
+ let __v_c_util_dist_props_util = require("@v-c/util/dist/props-util");
19
21
  function _isSlot(s) {
20
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
22
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s);
21
23
  }
22
- const defaults = {
23
- prefixCls: "vc-trigger-popup",
24
- action: "hover",
25
- mouseLeaveDelay: 0.1,
26
- maskClosable: true,
27
- builtinPlacements: {},
28
- popupVisible: void 0,
29
- defaultPopupVisible: void 0
24
+ var defaults = {
25
+ prefixCls: "vc-trigger-popup",
26
+ action: "hover",
27
+ mouseLeaveDelay: .1,
28
+ maskClosable: true,
29
+ builtinPlacements: {},
30
+ popupVisible: void 0,
31
+ defaultPopupVisible: void 0
30
32
  };
31
- function generateTrigger(PortalComponent = Portal) {
32
- return /* @__PURE__ */ vue.defineComponent((props, {
33
- expose,
34
- slots,
35
- attrs
36
- }) => {
37
- const mergedAutoDestroy = vue.computed(() => props.autoDestroy ?? false);
38
- const openUncontrolled = vue.computed(() => props.popupVisible === void 0);
39
- const isMobile = vue.computed(() => !!props.mobile);
40
- const subPopupElements = vue.ref({});
41
- const parentContext = context.useTriggerContext();
42
- const context$1 = vue.computed(() => {
43
- return {
44
- registerSubPopup(id2, subPopupEle) {
45
- if (subPopupEle) {
46
- subPopupElements.value[id2] = subPopupEle;
47
- } else {
48
- delete subPopupElements.value[id2];
49
- }
50
- parentContext?.value.registerSubPopup(id2, subPopupEle);
51
- }
52
- };
53
- });
54
- const uniqueContext = context.useUniqueContext();
55
- const id = vue.useId();
56
- const popupEle = vue.shallowRef(null);
57
- const externalPopupRef = vue.shallowRef(null);
58
- const resolveToElement = (node) => {
59
- if (!node) {
60
- return null;
61
- }
62
- if (findDOMNode.isDOM(node)) {
63
- return node;
64
- }
65
- const exposed = node;
66
- if (findDOMNode.isDOM(exposed?.$el)) {
67
- return exposed.$el;
68
- }
69
- const nativeEl = exposed?.nativeElement;
70
- if (findDOMNode.isDOM(nativeEl?.value)) {
71
- return nativeEl.value;
72
- }
73
- if (findDOMNode.isDOM(nativeEl)) {
74
- return nativeEl;
75
- }
76
- if (typeof exposed?.getElement === "function") {
77
- const el = exposed.getElement();
78
- if (findDOMNode.isDOM(el)) {
79
- return el;
80
- }
81
- }
82
- return null;
83
- };
84
- const setPopupRef = (node) => {
85
- const element = resolveToElement(node);
86
- externalPopupRef.value = element;
87
- if (popupEle.value !== element) {
88
- popupEle.value = element;
89
- }
90
- parentContext?.value?.registerSubPopup(id, element ?? null);
91
- };
92
- const targetEle = vue.shallowRef(null);
93
- const externalForwardRef = vue.shallowRef(null);
94
- const setTargetRef = (node) => {
95
- const element = resolveToElement(node);
96
- if (element && targetEle.value !== element) {
97
- targetEle.value = element;
98
- externalForwardRef.value = element;
99
- } else if (!element) {
100
- targetEle.value = null;
101
- externalForwardRef.value = null;
102
- }
103
- };
104
- const originChildProps = vue.reactive({});
105
- const baseActionProps = vue.shallowRef({});
106
- const hoverActionProps = vue.shallowRef({});
107
- const cloneProps = vue.computed(() => ({
108
- ...baseActionProps.value,
109
- ...hoverActionProps.value
110
- }));
111
- const inPopupOrChild = (ele) => {
112
- const childDOM = targetEle.value;
113
- return childDOM?.contains(ele) || childDOM && shadow.getShadowRoot(childDOM)?.host === ele || ele === childDOM || popupEle.value?.contains(ele) || popupEle.value && shadow.getShadowRoot(popupEle.value)?.host === ele || ele === popupEle.value || Object.values(subPopupElements.value).some((subPopupEle) => subPopupEle?.contains(ele) || ele === subPopupEle);
114
- };
115
- const innerArrow = vue.computed(() => {
116
- return props.arrow ? {
117
- ...props?.arrow !== true ? props?.arrow : {}
118
- } : null;
119
- });
120
- const internalOpen = vue.shallowRef(props?.defaultPopupVisible ?? false);
121
- if (props.popupVisible !== void 0) {
122
- internalOpen.value = props.popupVisible;
123
- }
124
- const mergedOpen = vue.computed(() => {
125
- return props?.popupVisible ?? internalOpen.value;
126
- });
127
- const setMergedOpen = (nextOpen) => {
128
- if (openUncontrolled.value) {
129
- internalOpen.value = nextOpen;
130
- }
131
- };
132
- const isOpen = () => mergedOpen.value;
133
- vue.watch(() => props.popupVisible, async (nextVisible) => {
134
- if (nextVisible !== void 0) {
135
- await vue.nextTick();
136
- internalOpen.value = nextVisible;
137
- }
138
- });
139
- const getUniqueOptions = (delay = 0) => {
140
- return {
141
- popup: props.popup,
142
- target: targetEle.value,
143
- delay,
144
- prefixCls: props.prefixCls,
145
- popupClassName: props.popupClassName,
146
- uniqueContainerClassName: props.uniqueContainerClassName,
147
- uniqueContainerStyle: props.uniqueContainerStyle,
148
- popupStyle: props.popupStyle,
149
- popupPlacement: props.popupPlacement,
150
- builtinPlacements: props.builtinPlacements,
151
- popupAlign: props.popupAlign,
152
- zIndex: props.zIndex,
153
- mask: props.mask,
154
- maskClosable: props.maskClosable,
155
- popupMotion: props.popupMotion,
156
- maskMotion: props.maskMotion,
157
- arrow: innerArrow.value,
158
- getPopupContainer: props.getPopupContainer,
159
- getPopupClassNameFromAlign: props.getPopupClassNameFromAlign,
160
- id
161
- };
162
- };
163
- vue.watch([mergedOpen, targetEle], () => {
164
- if (uniqueContext && props.unique && targetEle.value && !openUncontrolled.value && !parentContext?.value) {
165
- if (mergedOpen.value) {
166
- const enterDelay = props.mouseEnterDelay ?? 0;
167
- uniqueContext?.show(getUniqueOptions(enterDelay), isOpen);
168
- } else {
169
- uniqueContext?.hide(props.mouseLeaveDelay || 0);
170
- }
171
- }
172
- });
173
- const openRef = vue.shallowRef(mergedOpen.value);
174
- const lastTriggerRef = vue.shallowRef([]);
175
- lastTriggerRef.value = [];
176
- vue.watchEffect(() => {
177
- openRef.value = mergedOpen.value;
178
- if (!mergedOpen.value) {
179
- lastTriggerRef.value = [];
180
- }
181
- });
182
- const internalTriggerOpen = (nextOpen) => {
183
- setMergedOpen(nextOpen);
184
- if ((lastTriggerRef.value[lastTriggerRef.value.length - 1] ?? mergedOpen.value) !== nextOpen) {
185
- lastTriggerRef.value.push(nextOpen);
186
- props?.onOpenChange?.(nextOpen);
187
- props?.onPopupVisibleChange?.(nextOpen);
188
- }
189
- };
190
- const delayInvoke = useDelay.default();
191
- const triggerOpen = (nextOpen, delay = 0) => {
192
- if (props.popupVisible !== void 0) {
193
- delayInvoke(() => {
194
- internalTriggerOpen(nextOpen);
195
- }, delay);
196
- return;
197
- }
198
- if (uniqueContext && props.unique && openUncontrolled.value && !parentContext?.value) {
199
- if (nextOpen) {
200
- uniqueContext?.show(getUniqueOptions(delay), isOpen);
201
- } else {
202
- uniqueContext.hide(delay);
203
- }
204
- return;
205
- }
206
- delayInvoke(() => {
207
- internalTriggerOpen(nextOpen);
208
- }, delay);
209
- };
210
- const inMotion = vue.shallowRef(false);
211
- vue.watch(mergedOpen, async () => {
212
- await vue.nextTick();
213
- if (mergedOpen.value) {
214
- inMotion.value = true;
215
- }
216
- });
217
- const motionPrepareResolve = vue.shallowRef();
218
- const mousePos = vue.ref(null);
219
- const setMousePosByEvent = (event) => {
220
- mousePos.value = [event.clientX, event.clientY];
221
- };
222
- const [ready, offsetX, offsetY, offsetR, offsetB, arrowX, arrowY, scaleX, scaleY, alignInfo, onAlign] = useAlign.default(mergedOpen, popupEle, vue.computed(() => props?.alignPoint && mousePos.value !== null ? mousePos.value : targetEle.value), vue.computed(() => props?.popupPlacement), vue.computed(() => props?.builtinPlacements), vue.computed(() => props?.popupAlign), props?.onPopupAlign, isMobile);
223
- const [showActions, hideActions] = useAction.default(vue.computed(() => props.action), vue.computed(() => props.showAction), vue.computed(() => props.hideAction));
224
- const clickToShow = vue.computed(() => showActions.value?.has("click"));
225
- const clickToHide = vue.computed(() => hideActions.value?.has("click") || hideActions.value?.has("contextmenu"));
226
- const triggerAlign = () => {
227
- if (!inMotion.value) {
228
- onAlign();
229
- }
230
- };
231
- const onScroll = () => {
232
- if (openRef.value && props?.alignPoint && clickToHide.value) {
233
- triggerOpen(false);
234
- }
235
- };
236
- useWatch.default(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);
237
- vue.watch([mousePos, () => props.popupPlacement], async () => {
238
- await vue.nextTick();
239
- triggerAlign();
240
- });
241
- vue.watch(() => JSON.stringify(props.popupAlign), async () => {
242
- await vue.nextTick();
243
- const {
244
- builtinPlacements,
245
- popupPlacement
246
- } = props;
247
- if (mergedOpen.value && !builtinPlacements?.[popupPlacement]) {
248
- triggerAlign();
249
- }
250
- });
251
- const alignedClassName = vue.computed(() => {
252
- const baseClassName = util.getAlignPopupClassName(props.builtinPlacements, props.prefixCls, alignInfo.value, props.alignPoint);
253
- return util$1.classNames(baseClassName, props?.getPopupClassNameFromAlign?.(alignInfo.value));
254
- });
255
- expose({
256
- nativeElement: externalForwardRef,
257
- popupElement: externalPopupRef,
258
- forceAlign: triggerAlign
259
- });
260
- const targetWidth = vue.shallowRef(0);
261
- const targetHeight = vue.shallowRef(0);
262
- const syncTargetSize = () => {
263
- if (props.stretch && targetEle.value) {
264
- const rect = targetEle.value.getBoundingClientRect();
265
- targetWidth.value = rect.width;
266
- targetHeight.value = rect.height;
267
- }
268
- };
269
- const onTargetResize = () => {
270
- syncTargetSize();
271
- triggerAlign();
272
- };
273
- const onVisibleChanged = (visible) => {
274
- inMotion.value = false;
275
- onAlign();
276
- props?.afterOpenChange?.(visible);
277
- props?.afterPopupVisibleChange?.(visible);
278
- };
279
- const onPrepare = () => {
280
- return new Promise((resolve) => {
281
- syncTargetSize();
282
- motionPrepareResolve.value = resolve;
283
- });
284
- };
285
- vue.watch([motionPrepareResolve], () => {
286
- if (motionPrepareResolve.value) {
287
- onAlign();
288
- motionPrepareResolve.value();
289
- motionPrepareResolve.value = void 0;
290
- }
291
- });
292
- function wrapperAction(target, eventName, nextOpen, delay, callback, ignoreCheck) {
293
- target[eventName] = (event, ...args) => {
294
- if (!ignoreCheck || !ignoreCheck()) {
295
- callback?.(event);
296
- triggerOpen(nextOpen, delay);
297
- }
298
- originChildProps[eventName]?.(event, ...args);
299
- };
300
- }
301
- const touchToShow = vue.computed(() => showActions.value?.has("touch"));
302
- const touchToHide = vue.computed(() => hideActions.value?.has("touch"));
303
- const touchedRef = vue.shallowRef(false);
304
- vue.watchEffect(() => {
305
- const nextCloneProps = {};
306
- if (touchToShow.value || touchToHide.value) {
307
- nextCloneProps.onTouchstart = (...args) => {
308
- touchedRef.value = true;
309
- if (openRef.value && touchToHide.value) {
310
- triggerOpen(false);
311
- } else if (!openRef.value && touchToShow.value) {
312
- triggerOpen(true);
313
- }
314
- originChildProps.onTouchstart?.(...args);
315
- };
316
- }
317
- if (clickToShow.value || clickToHide.value) {
318
- nextCloneProps.onClick = (event, ...args) => {
319
- if (openRef.value && clickToHide.value) {
320
- triggerOpen(false);
321
- } else if (!openRef.value && clickToShow.value) {
322
- setMousePosByEvent(event);
323
- triggerOpen(true);
324
- }
325
- originChildProps?.onClick?.(event, ...args);
326
- touchedRef.value = false;
327
- };
328
- }
329
- baseActionProps.value = nextCloneProps;
330
- });
331
- const onPopupPointerDown = useWinClick.default(mergedOpen, vue.computed(() => clickToHide.value || touchToHide.value), targetEle, popupEle, vue.computed(() => props.mask), vue.computed(() => props.maskClosable), inPopupOrChild, triggerOpen);
332
- const hoverToShow = vue.computed(() => showActions.value?.has("hover"));
333
- const hoverToHide = vue.computed(() => hideActions.value?.has("hover"));
334
- let onPopupMouseEnter;
335
- let onPopupMouseLeave;
336
- const ignoreMouseTrigger = () => {
337
- return touchedRef.value;
338
- };
339
- vue.watchEffect(() => {
340
- const {
341
- mouseEnterDelay,
342
- mouseLeaveDelay,
343
- alignPoint,
344
- focusDelay,
345
- blurDelay
346
- } = props;
347
- const nextHoverProps = {};
348
- if (hoverToShow.value) {
349
- const onMouseEnterCallback = (event) => {
350
- setMousePosByEvent(event);
351
- };
352
- wrapperAction(nextHoverProps, "onMouseenter", true, mouseEnterDelay, onMouseEnterCallback, ignoreMouseTrigger);
353
- wrapperAction(nextHoverProps, "onPointerenter", true, mouseEnterDelay, onMouseEnterCallback, ignoreMouseTrigger);
354
- onPopupMouseEnter = (event) => {
355
- if ((mergedOpen.value || inMotion.value) && popupEle?.value?.contains(event.target)) {
356
- triggerOpen(true, mouseEnterDelay);
357
- }
358
- };
359
- if (alignPoint) {
360
- nextHoverProps.onMouseMove = (event) => {
361
- originChildProps.onMousemove?.(event);
362
- };
363
- }
364
- } else {
365
- onPopupMouseEnter = void 0;
366
- }
367
- if (hoverToHide.value) {
368
- wrapperAction(nextHoverProps, "onMouseleave", false, mouseLeaveDelay, void 0, ignoreMouseTrigger);
369
- wrapperAction(nextHoverProps, "onPointerleave", false, mouseLeaveDelay, void 0, ignoreMouseTrigger);
370
- onPopupMouseLeave = (event) => {
371
- const {
372
- relatedTarget
373
- } = event;
374
- if (relatedTarget && inPopupOrChild(relatedTarget)) {
375
- return;
376
- }
377
- triggerOpen(false, mouseLeaveDelay);
378
- };
379
- } else {
380
- onPopupMouseLeave = void 0;
381
- }
382
- if (showActions.value.has("focus")) {
383
- wrapperAction(nextHoverProps, "onFocus", true, focusDelay);
384
- }
385
- if (hideActions.value.has("focus")) {
386
- wrapperAction(nextHoverProps, "onBlur", false, blurDelay);
387
- }
388
- if (showActions.value.has("contextmenu")) {
389
- nextHoverProps.onContextmenu = (event, ...args) => {
390
- if (openRef.value && hideActions.value.has("contextmenu")) {
391
- triggerOpen(false);
392
- } else {
393
- setMousePosByEvent(event);
394
- triggerOpen(true);
395
- }
396
- event.preventDefault();
397
- originChildProps.onContextmenu?.(event, ...args);
398
- };
399
- }
400
- hoverActionProps.value = nextHoverProps;
401
- });
402
- const rendedRef = vue.shallowRef(false);
403
- vue.watchEffect(() => {
404
- rendedRef.value ||= props.forceRender || mergedOpen.value || inMotion.value;
405
- });
406
- return () => {
407
- const child = propsUtil.filterEmpty(slots?.default?.() ?? [])?.[0];
408
- const mergedChildrenProps = {
409
- ...originChildProps,
410
- ...cloneProps.value
411
- };
412
- const passedProps = {};
413
- const passedEventList = ["onContextmenu", "onClick", "onMousedown", "onTouchstart", "onMouseenter", "onMouseleave", "onFocus", "onBlur"];
414
- passedEventList.forEach((eventName) => {
415
- if (attrs[eventName]) {
416
- passedProps[eventName] = (...args) => {
417
- mergedChildrenProps[eventName]?.(...args);
418
- attrs[eventName](...args);
419
- };
420
- }
421
- });
422
- const arrowPos = {
423
- x: arrowX.value,
424
- y: arrowY.value
425
- };
426
- const triggerNode = vue.createVNode(child, {
427
- ...mergedChildrenProps,
428
- ...passedProps,
429
- ref: setTargetRef
430
- });
431
- const {
432
- unique,
433
- prefixCls,
434
- popup,
435
- popupClassName,
436
- popupStyle,
437
- zIndex,
438
- fresh,
439
- onPopupClick,
440
- mask,
441
- popupMotion,
442
- maskMotion,
443
- forceRender,
444
- getPopupContainer,
445
- stretch,
446
- mobile
447
- } = props;
448
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(ResizeObserver, {
449
- "disabled": !mergedOpen.value,
450
- "onResize": onTargetResize
451
- }, _isSlot(triggerNode) ? triggerNode : {
452
- default: () => [triggerNode]
453
- }), rendedRef.value && targetEle.value && (!uniqueContext || !unique) && vue.createVNode(context.TriggerContextProvider, context$1.value, {
454
- default: () => [vue.createVNode(index$1.default, {
455
- "portal": PortalComponent,
456
- "ref": setPopupRef,
457
- "prefixCls": prefixCls,
458
- "popup": popup,
459
- "className": util$1.classNames(popupClassName, !isMobile.value && alignedClassName.value),
460
- "style": popupStyle,
461
- "target": targetEle.value,
462
- "onMouseEnter": onPopupMouseEnter,
463
- "onMouseLeave": onPopupMouseLeave,
464
- "onPointerEnter": onPopupMouseEnter,
465
- "zIndex": zIndex,
466
- "open": mergedOpen.value,
467
- "keepDom": inMotion.value,
468
- "fresh": fresh,
469
- "onClick": onPopupClick,
470
- "onPointerDownCapture": onPopupPointerDown,
471
- "mask": mask,
472
- "motion": popupMotion,
473
- "maskMotion": maskMotion,
474
- "onVisibleChanged": onVisibleChanged,
475
- "onPrepare": onPrepare,
476
- "forceRender": forceRender,
477
- "autoDestroy": mergedAutoDestroy.value,
478
- "getPopupContainer": getPopupContainer,
479
- "align": alignInfo.value,
480
- "arrow": innerArrow.value,
481
- "arrowPos": arrowPos,
482
- "ready": ready.value,
483
- "offsetX": offsetX.value,
484
- "offsetY": offsetY.value,
485
- "offsetR": offsetR.value,
486
- "offsetB": offsetB.value,
487
- "onAlign": triggerAlign,
488
- "stretch": stretch,
489
- "targetWidth": targetWidth.value / scaleX.value,
490
- "targetHeight": targetHeight.value / scaleY.value,
491
- "mobile": mobile
492
- }, null)]
493
- })]);
494
- };
495
- }, {
496
- props: /* @__PURE__ */ vue.mergeDefaults({
497
- action: {
498
- type: [String, Array],
499
- required: false,
500
- default: void 0
501
- },
502
- showAction: {
503
- type: Array,
504
- required: false,
505
- default: void 0
506
- },
507
- hideAction: {
508
- type: Array,
509
- required: false,
510
- default: void 0
511
- },
512
- prefixCls: {
513
- type: String,
514
- required: false,
515
- default: void 0
516
- },
517
- zIndex: {
518
- type: Number,
519
- required: false,
520
- default: void 0
521
- },
522
- onPopupAlign: {
523
- type: Function,
524
- required: false,
525
- default: void 0
526
- },
527
- stretch: {
528
- type: String,
529
- required: false,
530
- default: void 0
531
- },
532
- popupVisible: {
533
- type: Boolean,
534
- required: false,
535
- default: void 0
536
- },
537
- defaultPopupVisible: {
538
- type: Boolean,
539
- required: false,
540
- default: void 0
541
- },
542
- onOpenChange: {
543
- type: Function,
544
- required: false,
545
- default: void 0
546
- },
547
- afterOpenChange: {
548
- type: Function,
549
- required: false,
550
- default: void 0
551
- },
552
- onPopupVisibleChange: {
553
- type: Function,
554
- required: false,
555
- default: void 0
556
- },
557
- afterPopupVisibleChange: {
558
- type: Function,
559
- required: false,
560
- default: void 0
561
- },
562
- getPopupContainer: {
563
- type: Function,
564
- required: false,
565
- default: void 0
566
- },
567
- forceRender: {
568
- type: Boolean,
569
- required: false,
570
- default: void 0
571
- },
572
- autoDestroy: {
573
- type: Boolean,
574
- required: false,
575
- default: void 0
576
- },
577
- mask: {
578
- type: Boolean,
579
- required: false,
580
- default: void 0
581
- },
582
- maskClosable: {
583
- type: Boolean,
584
- required: false,
585
- default: void 0
586
- },
587
- popupMotion: {
588
- type: Object,
589
- required: false,
590
- default: void 0
591
- },
592
- maskMotion: {
593
- type: Object,
594
- required: false,
595
- default: void 0
596
- },
597
- mouseEnterDelay: {
598
- type: Number,
599
- required: false,
600
- default: void 0
601
- },
602
- mouseLeaveDelay: {
603
- type: Number,
604
- required: false,
605
- default: void 0
606
- },
607
- focusDelay: {
608
- type: Number,
609
- required: false,
610
- default: void 0
611
- },
612
- blurDelay: {
613
- type: Number,
614
- required: false,
615
- default: void 0
616
- },
617
- popup: {
618
- type: [String, Number, null, Array, Function],
619
- required: true,
620
- skipCheck: true,
621
- default: void 0
622
- },
623
- popupPlacement: {
624
- type: String,
625
- required: false,
626
- default: void 0
627
- },
628
- builtinPlacements: {
629
- type: Object,
630
- required: false,
631
- default: void 0
632
- },
633
- popupAlign: {
634
- type: Object,
635
- required: false,
636
- default: void 0
637
- },
638
- popupClassName: {
639
- type: String,
640
- required: false,
641
- default: void 0
642
- },
643
- uniqueContainerClassName: {
644
- type: String,
645
- required: false,
646
- default: void 0
647
- },
648
- uniqueContainerStyle: {
649
- type: null,
650
- required: false,
651
- default: void 0
652
- },
653
- popupStyle: {
654
- type: null,
655
- required: false,
656
- default: void 0
657
- },
658
- getPopupClassNameFromAlign: {
659
- type: Function,
660
- required: false,
661
- default: void 0
662
- },
663
- onPopupClick: {
664
- type: Function,
665
- required: false,
666
- default: void 0
667
- },
668
- alignPoint: {
669
- type: Boolean,
670
- required: false,
671
- default: void 0
672
- },
673
- fresh: {
674
- type: Boolean,
675
- required: false,
676
- default: void 0
677
- },
678
- unique: {
679
- type: Boolean,
680
- required: false,
681
- default: void 0
682
- },
683
- arrow: {
684
- type: [Boolean, Object],
685
- required: false,
686
- default: void 0
687
- },
688
- mobile: {
689
- type: Object,
690
- required: false,
691
- default: void 0
692
- }
693
- }, defaults)
694
- });
33
+ function generateTrigger(PortalComponent = __v_c_portal.default) {
34
+ return /* @__PURE__ */ (0, vue.defineComponent)((props, { expose, slots, attrs }) => {
35
+ const mergedAutoDestroy = (0, vue.computed)(() => props.autoDestroy ?? false);
36
+ const openUncontrolled = (0, vue.computed)(() => props.popupVisible === void 0);
37
+ const isMobile = (0, vue.computed)(() => !!props.mobile);
38
+ const subPopupElements = (0, vue.ref)({});
39
+ const parentContext = require_context.useTriggerContext();
40
+ const context = (0, vue.computed)(() => {
41
+ return { registerSubPopup(id$1, subPopupEle) {
42
+ if (subPopupEle) subPopupElements.value[id$1] = subPopupEle;
43
+ else delete subPopupElements.value[id$1];
44
+ parentContext?.value.registerSubPopup(id$1, subPopupEle);
45
+ } };
46
+ });
47
+ const uniqueContext = require_context.useUniqueContext();
48
+ const id = (0, vue.useId)();
49
+ const popupEle = (0, vue.shallowRef)(null);
50
+ const externalPopupRef = (0, vue.shallowRef)(null);
51
+ const resolveToElement = (node) => {
52
+ if (!node) return null;
53
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(node?.__$el)) return node.__$el;
54
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(node)) return node;
55
+ const exposed = node;
56
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(exposed?.$el)) return exposed.$el;
57
+ const nativeEl = exposed?.nativeElement;
58
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(nativeEl?.value)) return nativeEl.value;
59
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(nativeEl)) return nativeEl;
60
+ if (typeof exposed?.getElement === "function") {
61
+ const el = exposed.getElement();
62
+ if ((0, __v_c_util_dist_Dom_findDOMNode.isDOM)(el)) return el;
63
+ }
64
+ return null;
65
+ };
66
+ const setPopupRef = (node) => {
67
+ const element = resolveToElement(node);
68
+ externalPopupRef.value = element;
69
+ if (popupEle.value !== element) popupEle.value = element;
70
+ parentContext?.value?.registerSubPopup(id, element ?? null);
71
+ };
72
+ const targetEle = (0, vue.shallowRef)(null);
73
+ const externalForwardRef = (0, vue.shallowRef)(null);
74
+ const setTargetRef = (node) => {
75
+ const element = resolveToElement(node);
76
+ if (element && targetEle.value !== element) {
77
+ targetEle.value = element;
78
+ externalForwardRef.value = element;
79
+ } else if (!element) {
80
+ targetEle.value = null;
81
+ externalForwardRef.value = null;
82
+ }
83
+ };
84
+ const originChildProps = (0, vue.reactive)({});
85
+ const baseActionProps = (0, vue.shallowRef)({});
86
+ const hoverActionProps = (0, vue.shallowRef)({});
87
+ const cloneProps = (0, vue.computed)(() => ({
88
+ ...baseActionProps.value,
89
+ ...hoverActionProps.value
90
+ }));
91
+ const inPopupOrChild = (ele) => {
92
+ const childDOM = targetEle.value;
93
+ return childDOM?.contains(ele) || childDOM && (0, __v_c_util_dist_Dom_shadow.getShadowRoot)(childDOM)?.host === ele || ele === childDOM || popupEle.value?.contains(ele) || popupEle.value && (0, __v_c_util_dist_Dom_shadow.getShadowRoot)(popupEle.value)?.host === ele || ele === popupEle.value || Object.values(subPopupElements.value).some((subPopupEle) => subPopupEle?.contains(ele) || ele === subPopupEle);
94
+ };
95
+ const innerArrow = (0, vue.computed)(() => {
96
+ return props.arrow ? { ...props?.arrow !== true ? props?.arrow : {} } : null;
97
+ });
98
+ const internalOpen = (0, vue.shallowRef)(props?.defaultPopupVisible ?? false);
99
+ if (props.popupVisible !== void 0) internalOpen.value = props.popupVisible;
100
+ const mergedOpen = (0, vue.computed)(() => {
101
+ return props?.popupVisible ?? internalOpen.value;
102
+ });
103
+ const setMergedOpen = (nextOpen) => {
104
+ if (openUncontrolled.value) internalOpen.value = nextOpen;
105
+ };
106
+ const isOpen = () => mergedOpen.value;
107
+ (0, vue.watch)(() => props.popupVisible, async (nextVisible) => {
108
+ if (nextVisible !== void 0) {
109
+ await (0, vue.nextTick)();
110
+ internalOpen.value = nextVisible;
111
+ }
112
+ });
113
+ const getUniqueOptions = (delay = 0) => {
114
+ return {
115
+ popup: props.popup,
116
+ target: targetEle.value,
117
+ delay,
118
+ prefixCls: props.prefixCls,
119
+ popupClassName: props.popupClassName,
120
+ uniqueContainerClassName: props.uniqueContainerClassName,
121
+ uniqueContainerStyle: props.uniqueContainerStyle,
122
+ popupStyle: props.popupStyle,
123
+ popupPlacement: props.popupPlacement,
124
+ builtinPlacements: props.builtinPlacements,
125
+ popupAlign: props.popupAlign,
126
+ zIndex: props.zIndex,
127
+ mask: props.mask,
128
+ maskClosable: props.maskClosable,
129
+ popupMotion: props.popupMotion,
130
+ maskMotion: props.maskMotion,
131
+ arrow: innerArrow.value,
132
+ getPopupContainer: props.getPopupContainer,
133
+ getPopupClassNameFromAlign: props.getPopupClassNameFromAlign,
134
+ id
135
+ };
136
+ };
137
+ (0, vue.watch)([mergedOpen, targetEle], () => {
138
+ if (uniqueContext && props.unique && targetEle.value && !openUncontrolled.value && !parentContext?.value) if (mergedOpen.value) {
139
+ const enterDelay = props.mouseEnterDelay ?? 0;
140
+ uniqueContext?.show(getUniqueOptions(enterDelay), isOpen);
141
+ } else uniqueContext?.hide(props.mouseLeaveDelay || 0);
142
+ });
143
+ const openRef = (0, vue.shallowRef)(mergedOpen.value);
144
+ const lastTriggerRef = (0, vue.shallowRef)([]);
145
+ lastTriggerRef.value = [];
146
+ (0, vue.watchEffect)(() => {
147
+ openRef.value = mergedOpen.value;
148
+ if (!mergedOpen.value) lastTriggerRef.value = [];
149
+ });
150
+ const internalTriggerOpen = (nextOpen) => {
151
+ setMergedOpen(nextOpen);
152
+ if ((lastTriggerRef.value[lastTriggerRef.value.length - 1] ?? mergedOpen.value) !== nextOpen) {
153
+ lastTriggerRef.value.push(nextOpen);
154
+ props?.onOpenChange?.(nextOpen);
155
+ props?.onPopupVisibleChange?.(nextOpen);
156
+ }
157
+ };
158
+ const delayInvoke = require_useDelay.default();
159
+ const triggerOpen = (nextOpen, delay = 0) => {
160
+ if (props.popupVisible !== void 0) {
161
+ delayInvoke(() => {
162
+ internalTriggerOpen(nextOpen);
163
+ }, delay);
164
+ return;
165
+ }
166
+ if (uniqueContext && props.unique && openUncontrolled.value && !parentContext?.value) {
167
+ if (nextOpen) uniqueContext?.show(getUniqueOptions(delay), isOpen);
168
+ else uniqueContext.hide(delay);
169
+ return;
170
+ }
171
+ delayInvoke(() => {
172
+ internalTriggerOpen(nextOpen);
173
+ }, delay);
174
+ };
175
+ const inMotion = (0, vue.shallowRef)(false);
176
+ (0, vue.watch)(mergedOpen, async () => {
177
+ await (0, vue.nextTick)();
178
+ if (mergedOpen.value) inMotion.value = true;
179
+ });
180
+ const motionPrepareResolve = (0, vue.shallowRef)();
181
+ const mousePos = (0, vue.ref)(null);
182
+ const setMousePosByEvent = (event) => {
183
+ mousePos.value = [event.clientX, event.clientY];
184
+ };
185
+ const [ready, offsetX, offsetY, offsetR, offsetB, arrowX, arrowY, scaleX, scaleY, alignInfo, onAlign] = require_useAlign.default(mergedOpen, popupEle, (0, vue.computed)(() => props?.alignPoint && mousePos.value !== null ? mousePos.value : targetEle.value), (0, vue.computed)(() => props?.popupPlacement), (0, vue.computed)(() => props?.builtinPlacements), (0, vue.computed)(() => props?.popupAlign), props?.onPopupAlign, isMobile);
186
+ const [showActions, hideActions] = require_useAction.default((0, vue.computed)(() => props.action), (0, vue.computed)(() => props.showAction), (0, vue.computed)(() => props.hideAction));
187
+ const clickToShow = (0, vue.computed)(() => showActions.value?.has("click"));
188
+ const clickToHide = (0, vue.computed)(() => hideActions.value?.has("click") || hideActions.value?.has("contextmenu"));
189
+ const triggerAlign = () => {
190
+ if (!inMotion.value) onAlign();
191
+ };
192
+ const onScroll = () => {
193
+ if (openRef.value && props?.alignPoint && clickToHide.value) triggerOpen(false);
194
+ };
195
+ require_useWatch.default(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);
196
+ (0, vue.watch)([mousePos, () => props.popupPlacement], async () => {
197
+ await (0, vue.nextTick)();
198
+ triggerAlign();
199
+ });
200
+ (0, vue.watch)(() => JSON.stringify(props.popupAlign), async () => {
201
+ await (0, vue.nextTick)();
202
+ const { builtinPlacements, popupPlacement } = props;
203
+ if (mergedOpen.value && !builtinPlacements?.[popupPlacement]) triggerAlign();
204
+ });
205
+ const alignedClassName = (0, vue.computed)(() => {
206
+ return (0, __v_c_util.classNames)(require_util.getAlignPopupClassName(props.builtinPlacements, props.prefixCls, alignInfo.value, props.alignPoint), props?.getPopupClassNameFromAlign?.(alignInfo.value));
207
+ });
208
+ expose({
209
+ nativeElement: externalForwardRef,
210
+ popupElement: externalPopupRef,
211
+ forceAlign: triggerAlign
212
+ });
213
+ const targetWidth = (0, vue.shallowRef)(0);
214
+ const targetHeight = (0, vue.shallowRef)(0);
215
+ const syncTargetSize = () => {
216
+ if (props.stretch && targetEle.value) {
217
+ const rect = targetEle.value.getBoundingClientRect();
218
+ targetWidth.value = rect.width;
219
+ targetHeight.value = rect.height;
220
+ }
221
+ };
222
+ const onTargetResize = () => {
223
+ syncTargetSize();
224
+ triggerAlign();
225
+ };
226
+ const onVisibleChanged = (visible) => {
227
+ inMotion.value = false;
228
+ onAlign();
229
+ props?.afterOpenChange?.(visible);
230
+ props?.afterPopupVisibleChange?.(visible);
231
+ };
232
+ const onPrepare = () => {
233
+ return new Promise((resolve) => {
234
+ syncTargetSize();
235
+ motionPrepareResolve.value = resolve;
236
+ });
237
+ };
238
+ (0, vue.watch)([motionPrepareResolve], () => {
239
+ if (motionPrepareResolve.value) {
240
+ onAlign();
241
+ motionPrepareResolve.value();
242
+ motionPrepareResolve.value = void 0;
243
+ }
244
+ });
245
+ function wrapperAction(target, eventName, nextOpen, delay, callback, ignoreCheck) {
246
+ target[eventName] = (event, ...args) => {
247
+ if (!ignoreCheck || !ignoreCheck()) {
248
+ callback?.(event);
249
+ triggerOpen(nextOpen, delay);
250
+ }
251
+ originChildProps[eventName]?.(event, ...args);
252
+ };
253
+ }
254
+ const touchToShow = (0, vue.computed)(() => showActions.value?.has("touch"));
255
+ const touchToHide = (0, vue.computed)(() => hideActions.value?.has("touch"));
256
+ const touchedRef = (0, vue.shallowRef)(false);
257
+ (0, vue.watchEffect)(() => {
258
+ const nextCloneProps = {};
259
+ if (touchToShow.value || touchToHide.value) nextCloneProps.onTouchstart = (...args) => {
260
+ touchedRef.value = true;
261
+ if (openRef.value && touchToHide.value) triggerOpen(false);
262
+ else if (!openRef.value && touchToShow.value) triggerOpen(true);
263
+ originChildProps.onTouchstart?.(...args);
264
+ };
265
+ if (clickToShow.value || clickToHide.value) nextCloneProps.onClick = (event, ...args) => {
266
+ if (openRef.value && clickToHide.value) triggerOpen(false);
267
+ else if (!openRef.value && clickToShow.value) {
268
+ setMousePosByEvent(event);
269
+ triggerOpen(true);
270
+ }
271
+ originChildProps?.onClick?.(event, ...args);
272
+ touchedRef.value = false;
273
+ };
274
+ baseActionProps.value = nextCloneProps;
275
+ });
276
+ const onPopupPointerDown = require_useWinClick.default(mergedOpen, (0, vue.computed)(() => clickToHide.value || touchToHide.value), targetEle, popupEle, (0, vue.computed)(() => props.mask), (0, vue.computed)(() => props.maskClosable), inPopupOrChild, triggerOpen);
277
+ const hoverToShow = (0, vue.computed)(() => showActions.value?.has("hover"));
278
+ const hoverToHide = (0, vue.computed)(() => hideActions.value?.has("hover"));
279
+ let onPopupMouseEnter;
280
+ let onPopupMouseLeave;
281
+ const ignoreMouseTrigger = () => {
282
+ return touchedRef.value;
283
+ };
284
+ (0, vue.watchEffect)(() => {
285
+ const { mouseEnterDelay, mouseLeaveDelay, alignPoint, focusDelay, blurDelay } = props;
286
+ const nextHoverProps = {};
287
+ if (hoverToShow.value) {
288
+ const onMouseEnterCallback = (event) => {
289
+ setMousePosByEvent(event);
290
+ };
291
+ wrapperAction(nextHoverProps, "onMouseenter", true, mouseEnterDelay, onMouseEnterCallback, ignoreMouseTrigger);
292
+ wrapperAction(nextHoverProps, "onPointerenter", true, mouseEnterDelay, onMouseEnterCallback, ignoreMouseTrigger);
293
+ onPopupMouseEnter = (event) => {
294
+ if ((mergedOpen.value || inMotion.value) && popupEle?.value?.contains(event.target)) triggerOpen(true, mouseEnterDelay);
295
+ };
296
+ if (alignPoint) nextHoverProps.onMouseMove = (event) => {
297
+ originChildProps.onMousemove?.(event);
298
+ };
299
+ } else onPopupMouseEnter = void 0;
300
+ if (hoverToHide.value) {
301
+ wrapperAction(nextHoverProps, "onMouseleave", false, mouseLeaveDelay, void 0, ignoreMouseTrigger);
302
+ wrapperAction(nextHoverProps, "onPointerleave", false, mouseLeaveDelay, void 0, ignoreMouseTrigger);
303
+ onPopupMouseLeave = (event) => {
304
+ const { relatedTarget } = event;
305
+ if (relatedTarget && inPopupOrChild(relatedTarget)) return;
306
+ triggerOpen(false, mouseLeaveDelay);
307
+ };
308
+ } else onPopupMouseLeave = void 0;
309
+ if (showActions.value.has("focus")) wrapperAction(nextHoverProps, "onFocus", true, focusDelay);
310
+ if (hideActions.value.has("focus")) wrapperAction(nextHoverProps, "onBlur", false, blurDelay);
311
+ if (showActions.value.has("contextmenu")) nextHoverProps.onContextmenu = (event, ...args) => {
312
+ if (openRef.value && hideActions.value.has("contextmenu")) triggerOpen(false);
313
+ else {
314
+ setMousePosByEvent(event);
315
+ triggerOpen(true);
316
+ }
317
+ event.preventDefault();
318
+ originChildProps.onContextmenu?.(event, ...args);
319
+ };
320
+ hoverActionProps.value = nextHoverProps;
321
+ });
322
+ const rendedRef = (0, vue.shallowRef)(false);
323
+ (0, vue.watchEffect)(() => {
324
+ rendedRef.value ||= props.forceRender || mergedOpen.value || inMotion.value;
325
+ });
326
+ return () => {
327
+ const child = (0, __v_c_util_dist_props_util.filterEmpty)(slots?.default?.() ?? [])?.[0];
328
+ const mergedChildrenProps = {
329
+ ...originChildProps,
330
+ ...cloneProps.value
331
+ };
332
+ const passedProps = {};
333
+ [
334
+ "onContextmenu",
335
+ "onClick",
336
+ "onMousedown",
337
+ "onTouchstart",
338
+ "onMouseenter",
339
+ "onMouseleave",
340
+ "onFocus",
341
+ "onBlur"
342
+ ].forEach((eventName) => {
343
+ if (attrs[eventName]) passedProps[eventName] = (...args) => {
344
+ mergedChildrenProps[eventName]?.(...args);
345
+ attrs[eventName](...args);
346
+ };
347
+ });
348
+ const arrowPos = {
349
+ x: arrowX.value,
350
+ y: arrowY.value
351
+ };
352
+ const triggerNode = (0, vue.createVNode)(child, {
353
+ ...mergedChildrenProps,
354
+ ...passedProps,
355
+ ref: setTargetRef
356
+ });
357
+ const { unique, prefixCls, popup, popupClassName, popupStyle, zIndex, fresh, onPopupClick, mask, popupMotion, maskMotion, forceRender, getPopupContainer, stretch, mobile } = props;
358
+ return (0, vue.createVNode)(vue.Fragment, null, [(0, vue.createVNode)(__v_c_resize_observer.default, {
359
+ "disabled": !mergedOpen.value,
360
+ "onResize": onTargetResize
361
+ }, _isSlot(triggerNode) ? triggerNode : { default: () => [triggerNode] }), rendedRef.value && targetEle.value && (!uniqueContext || !unique) && (0, vue.createVNode)(require_context.TriggerContextProvider, context.value, { default: () => [(0, vue.createVNode)(require_index.default, {
362
+ "portal": PortalComponent,
363
+ "ref": setPopupRef,
364
+ "prefixCls": prefixCls,
365
+ "popup": popup,
366
+ "className": (0, __v_c_util.classNames)(popupClassName, !isMobile.value && alignedClassName.value),
367
+ "style": popupStyle,
368
+ "target": targetEle.value,
369
+ "onMouseEnter": onPopupMouseEnter,
370
+ "onMouseLeave": onPopupMouseLeave,
371
+ "onPointerEnter": onPopupMouseEnter,
372
+ "zIndex": zIndex,
373
+ "open": mergedOpen.value,
374
+ "keepDom": inMotion.value,
375
+ "fresh": fresh,
376
+ "onClick": onPopupClick,
377
+ "onPointerDownCapture": onPopupPointerDown,
378
+ "mask": mask,
379
+ "motion": popupMotion,
380
+ "maskMotion": maskMotion,
381
+ "onVisibleChanged": onVisibleChanged,
382
+ "onPrepare": onPrepare,
383
+ "forceRender": forceRender,
384
+ "autoDestroy": mergedAutoDestroy.value,
385
+ "getPopupContainer": getPopupContainer,
386
+ "align": alignInfo.value,
387
+ "arrow": innerArrow.value,
388
+ "arrowPos": arrowPos,
389
+ "ready": ready.value,
390
+ "offsetX": offsetX.value,
391
+ "offsetY": offsetY.value,
392
+ "offsetR": offsetR.value,
393
+ "offsetB": offsetB.value,
394
+ "onAlign": triggerAlign,
395
+ "stretch": stretch,
396
+ "targetWidth": targetWidth.value / scaleX.value,
397
+ "targetHeight": targetHeight.value / scaleY.value,
398
+ "mobile": mobile
399
+ }, null)] })]);
400
+ };
401
+ }, { props: /* @__PURE__ */ (0, vue.mergeDefaults)({
402
+ action: {
403
+ type: [String, Array],
404
+ required: false,
405
+ default: void 0
406
+ },
407
+ showAction: {
408
+ type: Array,
409
+ required: false,
410
+ default: void 0
411
+ },
412
+ hideAction: {
413
+ type: Array,
414
+ required: false,
415
+ default: void 0
416
+ },
417
+ prefixCls: {
418
+ type: String,
419
+ required: false,
420
+ default: void 0
421
+ },
422
+ zIndex: {
423
+ type: Number,
424
+ required: false,
425
+ default: void 0
426
+ },
427
+ onPopupAlign: {
428
+ type: Function,
429
+ required: false,
430
+ default: void 0
431
+ },
432
+ stretch: {
433
+ type: String,
434
+ required: false,
435
+ default: void 0
436
+ },
437
+ popupVisible: {
438
+ type: Boolean,
439
+ required: false,
440
+ default: void 0
441
+ },
442
+ defaultPopupVisible: {
443
+ type: Boolean,
444
+ required: false,
445
+ default: void 0
446
+ },
447
+ onOpenChange: {
448
+ type: Function,
449
+ required: false,
450
+ default: void 0
451
+ },
452
+ afterOpenChange: {
453
+ type: Function,
454
+ required: false,
455
+ default: void 0
456
+ },
457
+ onPopupVisibleChange: {
458
+ type: Function,
459
+ required: false,
460
+ default: void 0
461
+ },
462
+ afterPopupVisibleChange: {
463
+ type: Function,
464
+ required: false,
465
+ default: void 0
466
+ },
467
+ getPopupContainer: {
468
+ type: Function,
469
+ required: false,
470
+ default: void 0
471
+ },
472
+ forceRender: {
473
+ type: Boolean,
474
+ required: false,
475
+ default: void 0
476
+ },
477
+ autoDestroy: {
478
+ type: Boolean,
479
+ required: false,
480
+ default: void 0
481
+ },
482
+ mask: {
483
+ type: Boolean,
484
+ required: false,
485
+ default: void 0
486
+ },
487
+ maskClosable: {
488
+ type: Boolean,
489
+ required: false,
490
+ default: void 0
491
+ },
492
+ popupMotion: {
493
+ type: Object,
494
+ required: false,
495
+ default: void 0
496
+ },
497
+ maskMotion: {
498
+ type: Object,
499
+ required: false,
500
+ default: void 0
501
+ },
502
+ mouseEnterDelay: {
503
+ type: Number,
504
+ required: false,
505
+ default: void 0
506
+ },
507
+ mouseLeaveDelay: {
508
+ type: Number,
509
+ required: false,
510
+ default: void 0
511
+ },
512
+ focusDelay: {
513
+ type: Number,
514
+ required: false,
515
+ default: void 0
516
+ },
517
+ blurDelay: {
518
+ type: Number,
519
+ required: false,
520
+ default: void 0
521
+ },
522
+ popup: {
523
+ type: [
524
+ String,
525
+ Number,
526
+ null,
527
+ Array,
528
+ Function
529
+ ],
530
+ required: true,
531
+ skipCheck: true,
532
+ default: void 0
533
+ },
534
+ popupPlacement: {
535
+ type: String,
536
+ required: false,
537
+ default: void 0
538
+ },
539
+ builtinPlacements: {
540
+ type: Object,
541
+ required: false,
542
+ default: void 0
543
+ },
544
+ popupAlign: {
545
+ type: Object,
546
+ required: false,
547
+ default: void 0
548
+ },
549
+ popupClassName: {
550
+ type: String,
551
+ required: false,
552
+ default: void 0
553
+ },
554
+ uniqueContainerClassName: {
555
+ type: String,
556
+ required: false,
557
+ default: void 0
558
+ },
559
+ uniqueContainerStyle: {
560
+ type: null,
561
+ required: false,
562
+ default: void 0
563
+ },
564
+ popupStyle: {
565
+ type: null,
566
+ required: false,
567
+ default: void 0
568
+ },
569
+ getPopupClassNameFromAlign: {
570
+ type: Function,
571
+ required: false,
572
+ default: void 0
573
+ },
574
+ onPopupClick: {
575
+ type: Function,
576
+ required: false,
577
+ default: void 0
578
+ },
579
+ alignPoint: {
580
+ type: Boolean,
581
+ required: false,
582
+ default: void 0
583
+ },
584
+ fresh: {
585
+ type: Boolean,
586
+ required: false,
587
+ default: void 0
588
+ },
589
+ unique: {
590
+ type: Boolean,
591
+ required: false,
592
+ default: void 0
593
+ },
594
+ arrow: {
595
+ type: [Boolean, Object],
596
+ required: false,
597
+ default: void 0
598
+ },
599
+ mobile: {
600
+ type: Object,
601
+ required: false,
602
+ default: void 0
603
+ }
604
+ }, defaults) });
695
605
  }
696
- const Trigger = generateTrigger(Portal);
697
- exports.UniqueProvider = index.default;
606
+ var Trigger = generateTrigger(__v_c_portal.default);
607
+ var src_default = Trigger;
698
608
  exports.Trigger = Trigger;
699
- exports.default = Trigger;
609
+ exports.UniqueProvider = require_index$1.default;
610
+ exports.default = src_default;
700
611
  exports.generateTrigger = generateTrigger;