yc-design-vue 2.3.3 → 2.3.4
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.umd.js +1 -1
- package/es/AutoComplete/index.d.ts +6 -6
- package/es/AutoComplete/index.vue.d.ts +12 -12
- package/es/Breadcrumb/BreadcrumbSeparator.vue.js +1 -1
- package/es/Dropdown/Dsubmenu.vue.d.ts +12 -12
- package/es/Dropdown/index.d.ts +6 -6
- package/es/Mention/index.d.ts +6 -6
- package/es/Mention/index.vue.d.ts +12 -12
- package/es/Popconfirm/index.d.ts +6 -6
- package/es/Popconfirm/index.vue.d.ts +12 -12
- package/es/Select/Select.vue.d.ts +12 -12
- package/es/Select/index.d.ts +6 -6
- package/es/Trigger/hooks/useContext.d.ts +1 -1
- package/es/Trigger/hooks/useContext.js +6 -1
- package/es/Trigger/hooks/useTriggerPosition.js +20 -8
- package/es/Trigger/hooks/useTriggerVisible.d.ts +2 -2
- package/es/Trigger/hooks/useTriggerVisible.js +11 -6
- package/es/Trigger/index.d.ts +6 -6
- package/es/Trigger/index.vue.d.ts +2 -2
- package/es/Trigger/type.d.ts +3 -2
- package/es/_shared/components/Icon/index.vue3.js +2 -2
- package/es/_shared/icons/IconSeparator.vue.js +24 -1
- package/es/_shared/icons/IconSeparator.vue2.js +1 -24
- package/es/_shared/utils/dom.d.ts +1 -1
- package/es/_shared/utils/dom.js +17 -17
- package/es/index.d.ts +6 -6
- package/lib/AutoComplete/index.d.ts +6 -6
- package/lib/AutoComplete/index.vue.d.ts +12 -12
- package/lib/Breadcrumb/BreadcrumbSeparator.vue.js +1 -1
- package/lib/Dropdown/Dsubmenu.vue.d.ts +12 -12
- package/lib/Dropdown/index.d.ts +6 -6
- package/lib/Mention/index.d.ts +6 -6
- package/lib/Mention/index.vue.d.ts +12 -12
- package/lib/Popconfirm/index.d.ts +6 -6
- package/lib/Popconfirm/index.vue.d.ts +12 -12
- package/lib/Select/Select.vue.d.ts +12 -12
- package/lib/Select/index.d.ts +6 -6
- package/lib/Trigger/hooks/useContext.d.ts +1 -1
- package/lib/Trigger/hooks/useContext.js +1 -1
- package/lib/Trigger/hooks/useTriggerPosition.js +1 -1
- package/lib/Trigger/hooks/useTriggerVisible.d.ts +2 -2
- package/lib/Trigger/hooks/useTriggerVisible.js +1 -1
- package/lib/Trigger/index.d.ts +6 -6
- package/lib/Trigger/index.vue.d.ts +2 -2
- package/lib/Trigger/type.d.ts +3 -2
- package/lib/_shared/components/Icon/index.vue3.js +1 -1
- package/lib/_shared/icons/IconSeparator.vue.js +1 -1
- package/lib/_shared/icons/IconSeparator.vue2.js +1 -1
- package/lib/_shared/utils/dom.d.ts +1 -1
- package/lib/index.d.ts +6 -6
- package/package.json +1 -1
|
@@ -11,11 +11,11 @@ declare function __VLS_template(): {
|
|
|
11
11
|
$props: {
|
|
12
12
|
readonly popupVisible?: boolean | undefined;
|
|
13
13
|
readonly defaultPopupVisible?: boolean | undefined;
|
|
14
|
-
readonly trigger?: import('../Trigger').TriggerType | undefined;
|
|
14
|
+
readonly trigger?: (import('../Trigger').TriggerType | import('../Trigger').TriggerType[]) | undefined;
|
|
15
15
|
readonly position?: import('..').PopupPosition | undefined;
|
|
16
16
|
readonly disabled?: boolean | undefined;
|
|
17
17
|
readonly popupOffset?: number | undefined;
|
|
18
|
-
readonly popupTranslate?:
|
|
18
|
+
readonly popupTranslate?: import('../Trigger').popupTranslate | undefined;
|
|
19
19
|
readonly showArrow?: boolean | undefined;
|
|
20
20
|
readonly popuphoverStay?: boolean | undefined;
|
|
21
21
|
readonly blurToClose?: boolean | undefined;
|
|
@@ -144,7 +144,7 @@ declare function __VLS_template(): {
|
|
|
144
144
|
show: () => any;
|
|
145
145
|
hide: () => any;
|
|
146
146
|
}, string, {
|
|
147
|
-
trigger: import('../Trigger').TriggerType;
|
|
147
|
+
trigger: import('../Trigger').TriggerType | import('../Trigger').TriggerType[];
|
|
148
148
|
mouseEnterDelay: number;
|
|
149
149
|
popupVisible: boolean;
|
|
150
150
|
defaultPopupVisible: boolean;
|
|
@@ -160,7 +160,7 @@ declare function __VLS_template(): {
|
|
|
160
160
|
alignPoint: boolean;
|
|
161
161
|
position: import('..').PopupPosition;
|
|
162
162
|
popupOffset: number;
|
|
163
|
-
popupTranslate:
|
|
163
|
+
popupTranslate: import('../Trigger').popupTranslate;
|
|
164
164
|
showArrow: boolean;
|
|
165
165
|
unmountOnClose: boolean;
|
|
166
166
|
contentClass: import('..').ClassName;
|
|
@@ -198,7 +198,7 @@ declare function __VLS_template(): {
|
|
|
198
198
|
$nextTick: typeof import('vue').nextTick;
|
|
199
199
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
200
200
|
} & Readonly<{
|
|
201
|
-
trigger: import('../Trigger').TriggerType;
|
|
201
|
+
trigger: import('../Trigger').TriggerType | import('../Trigger').TriggerType[];
|
|
202
202
|
mouseEnterDelay: number;
|
|
203
203
|
popupVisible: boolean;
|
|
204
204
|
defaultPopupVisible: boolean;
|
|
@@ -214,7 +214,7 @@ declare function __VLS_template(): {
|
|
|
214
214
|
alignPoint: boolean;
|
|
215
215
|
position: import('..').PopupPosition;
|
|
216
216
|
popupOffset: number;
|
|
217
|
-
popupTranslate:
|
|
217
|
+
popupTranslate: import('../Trigger').popupTranslate;
|
|
218
218
|
showArrow: boolean;
|
|
219
219
|
unmountOnClose: boolean;
|
|
220
220
|
contentClass: import('..').ClassName;
|
|
@@ -469,11 +469,11 @@ declare const __VLS_component: import('vue').DefineComponent<SelectProps, {
|
|
|
469
469
|
$props: {
|
|
470
470
|
readonly popupVisible?: boolean | undefined;
|
|
471
471
|
readonly defaultPopupVisible?: boolean | undefined;
|
|
472
|
-
readonly trigger?: import('../Trigger').TriggerType | undefined;
|
|
472
|
+
readonly trigger?: (import('../Trigger').TriggerType | import('../Trigger').TriggerType[]) | undefined;
|
|
473
473
|
readonly position?: import('..').PopupPosition | undefined;
|
|
474
474
|
readonly disabled?: boolean | undefined;
|
|
475
475
|
readonly popupOffset?: number | undefined;
|
|
476
|
-
readonly popupTranslate?:
|
|
476
|
+
readonly popupTranslate?: import('../Trigger').popupTranslate | undefined;
|
|
477
477
|
readonly showArrow?: boolean | undefined;
|
|
478
478
|
readonly popuphoverStay?: boolean | undefined;
|
|
479
479
|
readonly blurToClose?: boolean | undefined;
|
|
@@ -602,7 +602,7 @@ declare const __VLS_component: import('vue').DefineComponent<SelectProps, {
|
|
|
602
602
|
show: () => any;
|
|
603
603
|
hide: () => any;
|
|
604
604
|
}, string, {
|
|
605
|
-
trigger: import('../Trigger').TriggerType;
|
|
605
|
+
trigger: import('../Trigger').TriggerType | import('../Trigger').TriggerType[];
|
|
606
606
|
mouseEnterDelay: number;
|
|
607
607
|
popupVisible: boolean;
|
|
608
608
|
defaultPopupVisible: boolean;
|
|
@@ -618,7 +618,7 @@ declare const __VLS_component: import('vue').DefineComponent<SelectProps, {
|
|
|
618
618
|
alignPoint: boolean;
|
|
619
619
|
position: import('..').PopupPosition;
|
|
620
620
|
popupOffset: number;
|
|
621
|
-
popupTranslate:
|
|
621
|
+
popupTranslate: import('../Trigger').popupTranslate;
|
|
622
622
|
showArrow: boolean;
|
|
623
623
|
unmountOnClose: boolean;
|
|
624
624
|
contentClass: import('..').ClassName;
|
|
@@ -656,7 +656,7 @@ declare const __VLS_component: import('vue').DefineComponent<SelectProps, {
|
|
|
656
656
|
$nextTick: typeof import('vue').nextTick;
|
|
657
657
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
658
658
|
} & Readonly<{
|
|
659
|
-
trigger: import('../Trigger').TriggerType;
|
|
659
|
+
trigger: import('../Trigger').TriggerType | import('../Trigger').TriggerType[];
|
|
660
660
|
mouseEnterDelay: number;
|
|
661
661
|
popupVisible: boolean;
|
|
662
662
|
defaultPopupVisible: boolean;
|
|
@@ -672,7 +672,7 @@ declare const __VLS_component: import('vue').DefineComponent<SelectProps, {
|
|
|
672
672
|
alignPoint: boolean;
|
|
673
673
|
position: import('..').PopupPosition;
|
|
674
674
|
popupOffset: number;
|
|
675
|
-
popupTranslate:
|
|
675
|
+
popupTranslate: import('../Trigger').popupTranslate;
|
|
676
676
|
showArrow: boolean;
|
|
677
677
|
unmountOnClose: boolean;
|
|
678
678
|
contentClass: import('..').ClassName;
|
package/es/Select/index.d.ts
CHANGED
|
@@ -79,11 +79,11 @@ declare const Select: {
|
|
|
79
79
|
$props: {
|
|
80
80
|
readonly popupVisible?: boolean | undefined;
|
|
81
81
|
readonly defaultPopupVisible?: boolean | undefined;
|
|
82
|
-
readonly trigger?: import('..').TriggerType | undefined;
|
|
82
|
+
readonly trigger?: (import('..').TriggerType | import('..').TriggerType[]) | undefined;
|
|
83
83
|
readonly position?: import('..').PopupPosition | undefined;
|
|
84
84
|
readonly disabled?: boolean | undefined;
|
|
85
85
|
readonly popupOffset?: number | undefined;
|
|
86
|
-
readonly popupTranslate?:
|
|
86
|
+
readonly popupTranslate?: import('..').popupTranslate | undefined;
|
|
87
87
|
readonly showArrow?: boolean | undefined;
|
|
88
88
|
readonly popuphoverStay?: boolean | undefined;
|
|
89
89
|
readonly blurToClose?: boolean | undefined;
|
|
@@ -212,7 +212,7 @@ declare const Select: {
|
|
|
212
212
|
show: () => any;
|
|
213
213
|
hide: () => any;
|
|
214
214
|
}, string, {
|
|
215
|
-
trigger: import('..').TriggerType;
|
|
215
|
+
trigger: import('..').TriggerType | import('..').TriggerType[];
|
|
216
216
|
mouseEnterDelay: number;
|
|
217
217
|
popupVisible: boolean;
|
|
218
218
|
defaultPopupVisible: boolean;
|
|
@@ -228,7 +228,7 @@ declare const Select: {
|
|
|
228
228
|
alignPoint: boolean;
|
|
229
229
|
position: import('..').PopupPosition;
|
|
230
230
|
popupOffset: number;
|
|
231
|
-
popupTranslate:
|
|
231
|
+
popupTranslate: import('..').popupTranslate;
|
|
232
232
|
showArrow: boolean;
|
|
233
233
|
unmountOnClose: boolean;
|
|
234
234
|
contentClass: import('..').ClassName;
|
|
@@ -266,7 +266,7 @@ declare const Select: {
|
|
|
266
266
|
$nextTick: typeof import('vue').nextTick;
|
|
267
267
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
268
268
|
} & Readonly<{
|
|
269
|
-
trigger: import('..').TriggerType;
|
|
269
|
+
trigger: import('..').TriggerType | import('..').TriggerType[];
|
|
270
270
|
mouseEnterDelay: number;
|
|
271
271
|
popupVisible: boolean;
|
|
272
272
|
defaultPopupVisible: boolean;
|
|
@@ -282,7 +282,7 @@ declare const Select: {
|
|
|
282
282
|
alignPoint: boolean;
|
|
283
283
|
position: import('..').PopupPosition;
|
|
284
284
|
popupOffset: number;
|
|
285
|
-
popupTranslate:
|
|
285
|
+
popupTranslate: import('..').popupTranslate;
|
|
286
286
|
showArrow: boolean;
|
|
287
287
|
unmountOnClose: boolean;
|
|
288
288
|
contentClass: import('..').ClassName;
|
|
@@ -9,7 +9,7 @@ export type TriggerProps = Required<_TriggerProps>;
|
|
|
9
9
|
* groupId 组件标识,用于标识元素是否处于一个嵌套中
|
|
10
10
|
*/
|
|
11
11
|
export default function useTriggerContext(params: {
|
|
12
|
-
trigger: TriggerType;
|
|
12
|
+
trigger: TriggerType | TriggerType[];
|
|
13
13
|
mouseEnterDelay: Ref<number>;
|
|
14
14
|
computedVisible: Ref<boolean>;
|
|
15
15
|
popupRef: Ref<HTMLDivElement | undefined>;
|
|
@@ -5,6 +5,7 @@ import "../../node_modules/b-tween/dist/b-tween.es.js";
|
|
|
5
5
|
import "../../node_modules/dayjs/dayjs.min.js";
|
|
6
6
|
import "../../node_modules/tinycolor2/esm/tinycolor.js";
|
|
7
7
|
import { sleep } from "../../_shared/utils/dom.js";
|
|
8
|
+
import { isString } from "../../_shared/utils/is.js";
|
|
8
9
|
import "../../_shared/utils/locale.js";
|
|
9
10
|
import "../../_shared/utils/time.js";
|
|
10
11
|
const TRIGGER_CONTEXT_KEY = "trigger-context";
|
|
@@ -33,6 +34,10 @@ function useTriggerContext(params) {
|
|
|
33
34
|
hoverTimeout,
|
|
34
35
|
timeout
|
|
35
36
|
});
|
|
37
|
+
const isValidTrigger = (value) => {
|
|
38
|
+
const triggerArray = isString(trigger) ? [trigger] : trigger;
|
|
39
|
+
return triggerArray.includes(value);
|
|
40
|
+
};
|
|
36
41
|
const isSameGroup = (el) => {
|
|
37
42
|
const dataId = el.getAttribute("data-group-id");
|
|
38
43
|
const dataDepth = el.getAttribute("data-group-depth");
|
|
@@ -80,7 +85,7 @@ function useTriggerContext(params) {
|
|
|
80
85
|
watch(
|
|
81
86
|
() => curDepth.value,
|
|
82
87
|
(v) => {
|
|
83
|
-
if (depth <= v ||
|
|
88
|
+
if (depth <= v || !isValidTrigger("hover")) {
|
|
84
89
|
return;
|
|
85
90
|
}
|
|
86
91
|
computedVisible.value = false;
|
|
@@ -4,6 +4,7 @@ import "../../node_modules/b-tween/dist/b-tween.es.js";
|
|
|
4
4
|
import "../../node_modules/dayjs/dayjs.min.js";
|
|
5
5
|
import "../../node_modules/tinycolor2/esm/tinycolor.js";
|
|
6
6
|
import { valueToPx, sleep } from "../../_shared/utils/dom.js";
|
|
7
|
+
import { isArray, isString } from "../../_shared/utils/is.js";
|
|
7
8
|
import "../../_shared/utils/locale.js";
|
|
8
9
|
import "../../_shared/utils/time.js";
|
|
9
10
|
const useTriggerPosition = (params) => {
|
|
@@ -56,9 +57,13 @@ const useTriggerPosition = (params) => {
|
|
|
56
57
|
windowScroll: updateAtScroll.value,
|
|
57
58
|
updateTiming: "next-frame"
|
|
58
59
|
});
|
|
60
|
+
const isValidTrigger = (value) => {
|
|
61
|
+
const triggerArray = isString(trigger.value) ? [trigger.value] : trigger.value;
|
|
62
|
+
return triggerArray.includes(value);
|
|
63
|
+
};
|
|
59
64
|
const popupStyle = computed(() => {
|
|
60
65
|
const [offsetX, offsetY] = calcPopupOffset();
|
|
61
|
-
const isMousePosition = alignPoint.value &&
|
|
66
|
+
const isMousePosition = alignPoint.value && !isValidTrigger("click") && !isValidTrigger("contextMenu");
|
|
62
67
|
if (autoSetPosition.value || isMousePosition) {
|
|
63
68
|
return {
|
|
64
69
|
top: valueToPx(mouseY.value + offsetY),
|
|
@@ -135,17 +140,24 @@ const useTriggerPosition = (params) => {
|
|
|
135
140
|
};
|
|
136
141
|
});
|
|
137
142
|
const calcPopupOffset = () => {
|
|
138
|
-
|
|
139
|
-
let offsetX =
|
|
140
|
-
let offsetY =
|
|
143
|
+
var _a, _b, _c, _d;
|
|
144
|
+
let offsetX = 0;
|
|
145
|
+
let offsetY = 0;
|
|
146
|
+
if (isArray(popupTranslate.value)) {
|
|
147
|
+
offsetX = ((_a = popupTranslate.value) == null ? void 0 : _a[0]) || 0;
|
|
148
|
+
offsetY = ((_b = popupTranslate.value) == null ? void 0 : _b[1]) || 0;
|
|
149
|
+
} else {
|
|
150
|
+
offsetX = ((_c = popupTranslate.value[position.value]) == null ? void 0 : _c[0]) || 0;
|
|
151
|
+
offsetY = ((_d = popupTranslate.value[position.value]) == null ? void 0 : _d[1]) || 0;
|
|
152
|
+
}
|
|
141
153
|
if (position.value.startsWith("t")) {
|
|
142
|
-
offsetY
|
|
154
|
+
offsetY += -popupOffset.value;
|
|
143
155
|
} else if (position.value.startsWith("b")) {
|
|
144
|
-
offsetY
|
|
156
|
+
offsetY += popupOffset.value;
|
|
145
157
|
} else if (position.value.startsWith("l")) {
|
|
146
|
-
offsetX
|
|
158
|
+
offsetX += -popupOffset.value;
|
|
147
159
|
} else if (position.value.startsWith("r")) {
|
|
148
|
-
offsetX
|
|
160
|
+
offsetX += popupOffset.value;
|
|
149
161
|
}
|
|
150
162
|
return [offsetX, offsetY];
|
|
151
163
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
|
-
import { TriggerEmits } from '../type';
|
|
2
|
+
import { TriggerEmits, TriggerType } from '../type';
|
|
3
3
|
import { RecordType } from '../../_shared/type';
|
|
4
4
|
declare const _default: (params: {
|
|
5
5
|
props: RecordType;
|
|
@@ -10,7 +10,7 @@ declare const _default: (params: {
|
|
|
10
10
|
mouseX: Ref<number, number>;
|
|
11
11
|
mouseY: Ref<number, number>;
|
|
12
12
|
computedVisible: import('vue').WritableComputedRef<boolean, boolean>;
|
|
13
|
-
handleClickEvent: (e: MouseEvent, type:
|
|
13
|
+
handleClickEvent: (e: MouseEvent, type: TriggerType) => void;
|
|
14
14
|
handleMouseenter: () => void;
|
|
15
15
|
handleMouseleave: (e: MouseEvent) => void;
|
|
16
16
|
handleFocus: () => void;
|
|
@@ -5,6 +5,7 @@ import "../../node_modules/b-tween/dist/b-tween.es.js";
|
|
|
5
5
|
import "../../node_modules/dayjs/dayjs.min.js";
|
|
6
6
|
import "../../node_modules/tinycolor2/esm/tinycolor.js";
|
|
7
7
|
import { findFirstScrollableParent } from "../../_shared/utils/dom.js";
|
|
8
|
+
import { isString } from "../../_shared/utils/is.js";
|
|
8
9
|
import { useControlValue } from "../../_shared/utils/hooks.js";
|
|
9
10
|
import "../../_shared/utils/locale.js";
|
|
10
11
|
import "../../_shared/utils/time.js";
|
|
@@ -55,8 +56,12 @@ const useTriggerVisible = (params) => {
|
|
|
55
56
|
const scrollContainer = computed(() => {
|
|
56
57
|
return triggerRef.value ? findFirstScrollableParent(unrefElement(triggerRef.value)) : null;
|
|
57
58
|
});
|
|
59
|
+
const isValidTrigger = (value) => {
|
|
60
|
+
const triggerArray = isString(trigger.value) ? [trigger.value] : trigger.value;
|
|
61
|
+
return triggerArray.includes(value);
|
|
62
|
+
};
|
|
58
63
|
const handleClickEvent = (e, type) => {
|
|
59
|
-
if (
|
|
64
|
+
if (!isValidTrigger(type) || disabled.value) {
|
|
60
65
|
return;
|
|
61
66
|
}
|
|
62
67
|
if (timeout.value) {
|
|
@@ -71,7 +76,7 @@ const useTriggerVisible = (params) => {
|
|
|
71
76
|
onTriggerMouseclick == null ? void 0 : onTriggerMouseclick();
|
|
72
77
|
};
|
|
73
78
|
const handleMouseenter = () => {
|
|
74
|
-
if (
|
|
79
|
+
if (!isValidTrigger("hover") || disabled.value) {
|
|
75
80
|
return;
|
|
76
81
|
}
|
|
77
82
|
mouseEnterHandler();
|
|
@@ -87,7 +92,7 @@ const useTriggerVisible = (params) => {
|
|
|
87
92
|
}, mouseEnterDelay.value);
|
|
88
93
|
};
|
|
89
94
|
const handleMouseleave = (e) => {
|
|
90
|
-
if (
|
|
95
|
+
if (!isValidTrigger("hover") || disabled.value) {
|
|
91
96
|
return;
|
|
92
97
|
}
|
|
93
98
|
if (timeout.value) {
|
|
@@ -106,7 +111,7 @@ const useTriggerVisible = (params) => {
|
|
|
106
111
|
}, mouseLeaveDelay.value);
|
|
107
112
|
};
|
|
108
113
|
const handleFocus = () => {
|
|
109
|
-
if (
|
|
114
|
+
if (!isValidTrigger("focus") || disabled.value) {
|
|
110
115
|
return;
|
|
111
116
|
}
|
|
112
117
|
if (timeout.value) {
|
|
@@ -121,7 +126,7 @@ const useTriggerVisible = (params) => {
|
|
|
121
126
|
}, focusDelay.value);
|
|
122
127
|
};
|
|
123
128
|
const handleBlur = () => {
|
|
124
|
-
if (
|
|
129
|
+
if (!isValidTrigger("focus") || !blurToClose.value || disabled.value) {
|
|
125
130
|
return;
|
|
126
131
|
}
|
|
127
132
|
if (timeout.value) {
|
|
@@ -134,7 +139,7 @@ const useTriggerVisible = (params) => {
|
|
|
134
139
|
onTriggerBlur == null ? void 0 : onTriggerBlur();
|
|
135
140
|
};
|
|
136
141
|
const handleClickOutsideClose = () => {
|
|
137
|
-
if (!clickOutsideToClose.value || !
|
|
142
|
+
if (!clickOutsideToClose.value || !isValidTrigger("click") && !isValidTrigger("contextMenu")) {
|
|
138
143
|
return;
|
|
139
144
|
}
|
|
140
145
|
onClickOutside(
|
package/es/Trigger/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ declare const Trigger: {
|
|
|
18
18
|
show: () => any;
|
|
19
19
|
hide: () => any;
|
|
20
20
|
}, import('vue').PublicProps, {
|
|
21
|
-
trigger: import('./type').TriggerType;
|
|
21
|
+
trigger: import('./type').TriggerType | import('./type').TriggerType[];
|
|
22
22
|
mouseEnterDelay: number;
|
|
23
23
|
popupVisible: boolean;
|
|
24
24
|
defaultPopupVisible: boolean;
|
|
@@ -34,7 +34,7 @@ declare const Trigger: {
|
|
|
34
34
|
alignPoint: boolean;
|
|
35
35
|
position: import('..').PopupPosition;
|
|
36
36
|
popupOffset: number;
|
|
37
|
-
popupTranslate:
|
|
37
|
+
popupTranslate: import('./type').popupTranslate;
|
|
38
38
|
showArrow: boolean;
|
|
39
39
|
unmountOnClose: boolean;
|
|
40
40
|
contentClass: import('..').ClassName;
|
|
@@ -129,7 +129,7 @@ declare const Trigger: {
|
|
|
129
129
|
show(): void;
|
|
130
130
|
updatePosition(x: number, y: number): void;
|
|
131
131
|
}, {}, {}, {}, {
|
|
132
|
-
trigger: import('./type').TriggerType;
|
|
132
|
+
trigger: import('./type').TriggerType | import('./type').TriggerType[];
|
|
133
133
|
mouseEnterDelay: number;
|
|
134
134
|
popupVisible: boolean;
|
|
135
135
|
defaultPopupVisible: boolean;
|
|
@@ -145,7 +145,7 @@ declare const Trigger: {
|
|
|
145
145
|
alignPoint: boolean;
|
|
146
146
|
position: import('..').PopupPosition;
|
|
147
147
|
popupOffset: number;
|
|
148
|
-
popupTranslate:
|
|
148
|
+
popupTranslate: import('./type').popupTranslate;
|
|
149
149
|
showArrow: boolean;
|
|
150
150
|
unmountOnClose: boolean;
|
|
151
151
|
contentClass: import('..').ClassName;
|
|
@@ -181,7 +181,7 @@ declare const Trigger: {
|
|
|
181
181
|
show: () => any;
|
|
182
182
|
hide: () => any;
|
|
183
183
|
}, string, {
|
|
184
|
-
trigger: import('./type').TriggerType;
|
|
184
|
+
trigger: import('./type').TriggerType | import('./type').TriggerType[];
|
|
185
185
|
mouseEnterDelay: number;
|
|
186
186
|
popupVisible: boolean;
|
|
187
187
|
defaultPopupVisible: boolean;
|
|
@@ -197,7 +197,7 @@ declare const Trigger: {
|
|
|
197
197
|
alignPoint: boolean;
|
|
198
198
|
position: import('..').PopupPosition;
|
|
199
199
|
popupOffset: number;
|
|
200
|
-
popupTranslate:
|
|
200
|
+
popupTranslate: import('./type').popupTranslate;
|
|
201
201
|
showArrow: boolean;
|
|
202
202
|
unmountOnClose: boolean;
|
|
203
203
|
contentClass: import('..').ClassName;
|
|
@@ -82,7 +82,7 @@ declare const __VLS_component: import('vue').DefineComponent<TriggerProps, {
|
|
|
82
82
|
onShow?: (() => any) | undefined;
|
|
83
83
|
onHide?: (() => any) | undefined;
|
|
84
84
|
}>, {
|
|
85
|
-
trigger: import('./type').TriggerType;
|
|
85
|
+
trigger: import('./type').TriggerType | import('./type').TriggerType[];
|
|
86
86
|
mouseEnterDelay: number;
|
|
87
87
|
popupVisible: boolean;
|
|
88
88
|
defaultPopupVisible: boolean;
|
|
@@ -98,7 +98,7 @@ declare const __VLS_component: import('vue').DefineComponent<TriggerProps, {
|
|
|
98
98
|
alignPoint: boolean;
|
|
99
99
|
position: import('..').PopupPosition;
|
|
100
100
|
popupOffset: number;
|
|
101
|
-
popupTranslate:
|
|
101
|
+
popupTranslate: import('./type').popupTranslate;
|
|
102
102
|
showArrow: boolean;
|
|
103
103
|
unmountOnClose: boolean;
|
|
104
104
|
contentClass: import('..').ClassName;
|
package/es/Trigger/type.d.ts
CHANGED
|
@@ -3,11 +3,11 @@ import { ClassName, EventTrigger, PopupContainer, PopupPosition } from '../_shar
|
|
|
3
3
|
export interface TriggerProps {
|
|
4
4
|
popupVisible?: boolean;
|
|
5
5
|
defaultPopupVisible?: boolean;
|
|
6
|
-
trigger?: TriggerType;
|
|
6
|
+
trigger?: TriggerType | TriggerType[];
|
|
7
7
|
position?: PopupPosition;
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
popupOffset?: number;
|
|
10
|
-
popupTranslate?:
|
|
10
|
+
popupTranslate?: popupTranslate;
|
|
11
11
|
showArrow?: boolean;
|
|
12
12
|
popuphoverStay?: boolean;
|
|
13
13
|
blurToClose?: boolean;
|
|
@@ -58,3 +58,4 @@ export interface TriggerExpose {
|
|
|
58
58
|
updatePosition(x: number, y: number): void;
|
|
59
59
|
}
|
|
60
60
|
export type TriggerType = EventTrigger | 'focus' | 'contextMenu';
|
|
61
|
+
export type popupTranslate = number[] | Record<PopupPosition, number[]>;
|
|
@@ -45,7 +45,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
45
45
|
transform: rotate ? `rotate(${rotate.value}deg)` : "unset"
|
|
46
46
|
};
|
|
47
47
|
});
|
|
48
|
-
|
|
48
|
+
computed(() => {
|
|
49
49
|
return {
|
|
50
50
|
style: style.value,
|
|
51
51
|
"stroke-width": strokeWidth.value,
|
|
@@ -68,7 +68,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
68
68
|
"yc-icon-spin": unref(spin)
|
|
69
69
|
}
|
|
70
70
|
]
|
|
71
|
-
}, attrs
|
|
71
|
+
}, unref($attrs)), [
|
|
72
72
|
renderSlot(_ctx.$slots, "default")
|
|
73
73
|
], 16);
|
|
74
74
|
};
|
|
@@ -1,4 +1,27 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
|
|
2
|
+
import "../../node_modules/b-tween/dist/b-tween.es.js";
|
|
3
|
+
import "../../node_modules/dayjs/dayjs.min.js";
|
|
4
|
+
import "../../node_modules/tinycolor2/esm/tinycolor.js";
|
|
5
|
+
import "../utils/dom.js";
|
|
6
|
+
import "../utils/locale.js";
|
|
7
|
+
import "../utils/time.js";
|
|
8
|
+
/* empty css */
|
|
9
|
+
/* empty css */
|
|
10
|
+
import _sfc_main$1 from "../components/Icon/index.vue3.js";
|
|
11
|
+
/* empty css */
|
|
12
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
13
|
+
__name: "IconSeparator",
|
|
14
|
+
setup(__props) {
|
|
15
|
+
return (_ctx, _cache) => {
|
|
16
|
+
return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
|
|
17
|
+
default: withCtx(() => [..._cache[0] || (_cache[0] = [
|
|
18
|
+
createElementVNode("path", { d: "M29.506 6.502 18.493 41.498" }, null, -1)
|
|
19
|
+
])]),
|
|
20
|
+
_: 1
|
|
21
|
+
}, 16);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
});
|
|
2
25
|
export {
|
|
3
26
|
_sfc_main as default
|
|
4
27
|
};
|
|
@@ -1,27 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../../node_modules/b-tween/dist/b-tween.es.js";
|
|
3
|
-
import "../../node_modules/dayjs/dayjs.min.js";
|
|
4
|
-
import "../../node_modules/tinycolor2/esm/tinycolor.js";
|
|
5
|
-
import "../utils/dom.js";
|
|
6
|
-
import "../utils/locale.js";
|
|
7
|
-
import "../utils/time.js";
|
|
8
|
-
/* empty css */
|
|
9
|
-
/* empty css */
|
|
10
|
-
import _sfc_main$1 from "../components/Icon/index.vue3.js";
|
|
11
|
-
/* empty css */
|
|
12
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
13
|
-
__name: "IconSeparator",
|
|
14
|
-
setup(__props) {
|
|
15
|
-
return (_ctx, _cache) => {
|
|
16
|
-
return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
|
|
17
|
-
default: withCtx(() => [..._cache[0] || (_cache[0] = [
|
|
18
|
-
createElementVNode("path", { d: "M29.506 6.502 18.493 41.498" }, null, -1)
|
|
19
|
-
])]),
|
|
20
|
-
_: 1
|
|
21
|
-
}, 16);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
});
|
|
1
|
+
import _sfc_main from "./IconSeparator.vue.js";
|
|
25
2
|
export {
|
|
26
3
|
_sfc_main as default
|
|
27
4
|
};
|
|
@@ -6,7 +6,6 @@ export declare const getElement: (target: string | HTMLElement | undefined, cont
|
|
|
6
6
|
export declare const innerText: (dom: Ref<HTMLElement | undefined>) => string;
|
|
7
7
|
export declare const getBreakpointValue: (breakpoint: BreakpointName, value: string | number | ResponsiveValue, defaultValue?: number | string) => number | string | undefined;
|
|
8
8
|
export declare const mediaQueryHandler: (onBreakpoint: (breakpoint: BreakpointName, order: Record<string, number>, index: number) => void, queries?: Record<string, string>) => void;
|
|
9
|
-
export declare const findFirstScrollableParent: (element?: HTMLElement | null) => HTMLElement | undefined;
|
|
10
9
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
11
10
|
export declare const throttleByRaf: (cb: (...args: any[]) => void) => {
|
|
12
11
|
(...args: any[]): void;
|
|
@@ -15,5 +14,6 @@ export declare const throttleByRaf: (cb: (...args: any[]) => void) => {
|
|
|
15
14
|
export declare const debounce: (func: (...args: any) => void, delay: number, immediate?: boolean) => (this: any, ...args: any) => void;
|
|
16
15
|
export declare const throttle: (fn: (...args: any) => void, delay: number) => (this: any, ...args: any) => void;
|
|
17
16
|
export declare const valueToPx: (value: string | number | undefined) => string;
|
|
17
|
+
export declare const findFirstScrollableParent: (element?: HTMLElement | null) => HTMLElement | undefined;
|
|
18
18
|
export declare function isHorizontallyScrollable(element: HTMLElement): boolean;
|
|
19
19
|
export declare function isVerticallyScrollable(element: HTMLElement): boolean;
|
package/es/_shared/utils/dom.js
CHANGED
|
@@ -67,23 +67,6 @@ const mediaQueryHandler = (onBreakpoint, queries = MEDICA_QUERY_QUERUES) => {
|
|
|
67
67
|
}
|
|
68
68
|
);
|
|
69
69
|
};
|
|
70
|
-
const findFirstScrollableParent = (element) => {
|
|
71
|
-
if (!element) {
|
|
72
|
-
return void 0;
|
|
73
|
-
}
|
|
74
|
-
let currentElement = element.parentElement;
|
|
75
|
-
while (currentElement) {
|
|
76
|
-
const style = getComputedStyle(currentElement);
|
|
77
|
-
const overflow = style.overflowY || style.overflow;
|
|
78
|
-
const isScrollable = ["auto", "scroll"].includes(overflow);
|
|
79
|
-
const canScroll = currentElement.scrollHeight > currentElement.clientHeight;
|
|
80
|
-
if (isScrollable && canScroll) {
|
|
81
|
-
return currentElement;
|
|
82
|
-
}
|
|
83
|
-
currentElement = currentElement.parentElement;
|
|
84
|
-
}
|
|
85
|
-
return void 0;
|
|
86
|
-
};
|
|
87
70
|
const sleep = (ms) => {
|
|
88
71
|
return new Promise((resolve) => {
|
|
89
72
|
setTimeout(() => {
|
|
@@ -155,6 +138,23 @@ const valueToPx = (value) => {
|
|
|
155
138
|
}
|
|
156
139
|
return value;
|
|
157
140
|
};
|
|
141
|
+
const findFirstScrollableParent = (element) => {
|
|
142
|
+
if (!element) {
|
|
143
|
+
return void 0;
|
|
144
|
+
}
|
|
145
|
+
let currentElement = element.parentElement;
|
|
146
|
+
while (currentElement) {
|
|
147
|
+
const style = getComputedStyle(currentElement);
|
|
148
|
+
const overflow = style.overflowY || style.overflow;
|
|
149
|
+
const isScrollable = ["auto", "scroll"].includes(overflow);
|
|
150
|
+
const canScroll = currentElement.scrollHeight > currentElement.clientHeight;
|
|
151
|
+
if (isScrollable && canScroll) {
|
|
152
|
+
return currentElement;
|
|
153
|
+
}
|
|
154
|
+
currentElement = currentElement.parentElement;
|
|
155
|
+
}
|
|
156
|
+
return void 0;
|
|
157
|
+
};
|
|
158
158
|
function isHorizontallyScrollable(element) {
|
|
159
159
|
const style = getComputedStyle(element);
|
|
160
160
|
const isScrollableOverflow = style.overflowX === "scroll" || style.overflowX === "auto";
|
package/es/index.d.ts
CHANGED
|
@@ -938,11 +938,11 @@ declare const YcDesignVue: {
|
|
|
938
938
|
$props: {
|
|
939
939
|
readonly popupVisible?: boolean | undefined;
|
|
940
940
|
readonly defaultPopupVisible?: boolean | undefined;
|
|
941
|
-
readonly trigger?: import('./Trigger').TriggerType | undefined;
|
|
941
|
+
readonly trigger?: (import('./Trigger').TriggerType | import('./Trigger').TriggerType[]) | undefined;
|
|
942
942
|
readonly position?: import('./_shared/type').PopupPosition | undefined;
|
|
943
943
|
readonly disabled?: boolean | undefined;
|
|
944
944
|
readonly popupOffset?: number | undefined;
|
|
945
|
-
readonly popupTranslate?:
|
|
945
|
+
readonly popupTranslate?: import('./Trigger').popupTranslate | undefined;
|
|
946
946
|
readonly showArrow?: boolean | undefined;
|
|
947
947
|
readonly popuphoverStay?: boolean | undefined;
|
|
948
948
|
readonly blurToClose?: boolean | undefined;
|
|
@@ -1071,7 +1071,7 @@ declare const YcDesignVue: {
|
|
|
1071
1071
|
show: () => any;
|
|
1072
1072
|
hide: () => any;
|
|
1073
1073
|
}, string, {
|
|
1074
|
-
trigger: import('./Trigger').TriggerType;
|
|
1074
|
+
trigger: import('./Trigger').TriggerType | import('./Trigger').TriggerType[];
|
|
1075
1075
|
mouseEnterDelay: number;
|
|
1076
1076
|
popupVisible: boolean;
|
|
1077
1077
|
defaultPopupVisible: boolean;
|
|
@@ -1087,7 +1087,7 @@ declare const YcDesignVue: {
|
|
|
1087
1087
|
alignPoint: boolean;
|
|
1088
1088
|
position: import('./_shared/type').PopupPosition;
|
|
1089
1089
|
popupOffset: number;
|
|
1090
|
-
popupTranslate:
|
|
1090
|
+
popupTranslate: import('./Trigger').popupTranslate;
|
|
1091
1091
|
showArrow: boolean;
|
|
1092
1092
|
unmountOnClose: boolean;
|
|
1093
1093
|
contentClass: import('./_shared/type').ClassName;
|
|
@@ -1125,7 +1125,7 @@ declare const YcDesignVue: {
|
|
|
1125
1125
|
$nextTick: typeof import('vue').nextTick;
|
|
1126
1126
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
1127
1127
|
} & Readonly<{
|
|
1128
|
-
trigger: import('./Trigger').TriggerType;
|
|
1128
|
+
trigger: import('./Trigger').TriggerType | import('./Trigger').TriggerType[];
|
|
1129
1129
|
mouseEnterDelay: number;
|
|
1130
1130
|
popupVisible: boolean;
|
|
1131
1131
|
defaultPopupVisible: boolean;
|
|
@@ -1141,7 +1141,7 @@ declare const YcDesignVue: {
|
|
|
1141
1141
|
alignPoint: boolean;
|
|
1142
1142
|
position: import('./_shared/type').PopupPosition;
|
|
1143
1143
|
popupOffset: number;
|
|
1144
|
-
popupTranslate:
|
|
1144
|
+
popupTranslate: import('./Trigger').popupTranslate;
|
|
1145
1145
|
showArrow: boolean;
|
|
1146
1146
|
unmountOnClose: boolean;
|
|
1147
1147
|
contentClass: import('./_shared/type').ClassName;
|