@v-c/menu 0.0.3 → 0.0.5
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/Icon.cjs +7 -4
- package/dist/Icon.js +8 -5
- package/dist/Menu.cjs +12 -11
- package/dist/Menu.d.ts +2 -2
- package/dist/Menu.js +12 -11
- package/dist/MenuItem.cjs +1 -1
- package/dist/MenuItem.js +1 -1
- package/dist/MenuItemGroup.cjs +30 -27
- package/dist/MenuItemGroup.js +30 -27
- package/dist/SubMenu/PopupTrigger.cjs +2 -2
- package/dist/SubMenu/PopupTrigger.js +2 -2
- package/dist/SubMenu/index.cjs +16 -12
- package/dist/SubMenu/index.d.ts +1 -1
- package/dist/SubMenu/index.js +16 -12
- package/dist/context/MenuContext.cjs +2 -2
- package/dist/context/MenuContext.d.ts +2 -2
- package/dist/context/MenuContext.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/interface.d.ts +1 -1
- package/package.json +6 -5
package/dist/Icon.cjs
CHANGED
|
@@ -5,15 +5,18 @@ let __v_c_util_dist_props_util = require("@v-c/util/dist/props-util");
|
|
|
5
5
|
var Icon = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots }) => {
|
|
6
6
|
return () => {
|
|
7
7
|
const { icon, props: iconProps } = props;
|
|
8
|
+
const children = slots.default?.();
|
|
8
9
|
let iconNode;
|
|
9
10
|
if (icon === null || icon === false) return null;
|
|
10
11
|
if (typeof icon === "function") {
|
|
11
12
|
const childIcons = icon(iconProps);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (!childIcons) {
|
|
14
|
+
iconNode = null;
|
|
15
|
+
return children;
|
|
16
|
+
}
|
|
17
|
+
iconNode = (0, __v_c_util_dist_props_util.filterEmpty)(childIcons ? Array.isArray(childIcons) ? childIcons : [childIcons] : []);
|
|
15
18
|
} else if (typeof icon !== "boolean") iconNode = icon;
|
|
16
|
-
return iconNode ||
|
|
19
|
+
return iconNode || children || null;
|
|
17
20
|
};
|
|
18
21
|
}, { props: {
|
|
19
22
|
icon: {
|
package/dist/Icon.js
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent } from "vue";
|
|
2
2
|
import { filterEmpty } from "@v-c/util/dist/props-util";
|
|
3
3
|
var Icon_default = /* @__PURE__ */ defineComponent((props, { slots }) => {
|
|
4
4
|
return () => {
|
|
5
5
|
const { icon, props: iconProps } = props;
|
|
6
|
+
const children = slots.default?.();
|
|
6
7
|
let iconNode;
|
|
7
8
|
if (icon === null || icon === false) return null;
|
|
8
9
|
if (typeof icon === "function") {
|
|
9
10
|
const childIcons = icon(iconProps);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
if (!childIcons) {
|
|
12
|
+
iconNode = null;
|
|
13
|
+
return children;
|
|
14
|
+
}
|
|
15
|
+
iconNode = filterEmpty(childIcons ? Array.isArray(childIcons) ? childIcons : [childIcons] : []);
|
|
13
16
|
} else if (typeof icon !== "boolean") iconNode = icon;
|
|
14
|
-
return iconNode ||
|
|
17
|
+
return iconNode || children || null;
|
|
15
18
|
};
|
|
16
19
|
}, { props: {
|
|
17
20
|
icon: {
|
package/dist/Menu.cjs
CHANGED
|
@@ -140,11 +140,11 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
140
140
|
}
|
|
141
141
|
if (!props.multiple && mergedOpenKeys.value.length && internalMode.value !== "inline") triggerOpenKeys(EMPTY_LIST);
|
|
142
142
|
};
|
|
143
|
-
const onInternalClick =
|
|
143
|
+
const onInternalClick = (info) => {
|
|
144
144
|
props.onClick?.(require_warnUtil.warnItemProp(info));
|
|
145
145
|
triggerSelection(info);
|
|
146
|
-
}
|
|
147
|
-
const onInternalOpenChange =
|
|
146
|
+
};
|
|
147
|
+
const onInternalOpenChange = (key, open) => {
|
|
148
148
|
let newOpenKeys = mergedOpenKeys.value.filter((k) => k !== key);
|
|
149
149
|
if (open) newOpenKeys.push(key);
|
|
150
150
|
else if (internalMode.value !== "inline") {
|
|
@@ -152,7 +152,7 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
152
152
|
newOpenKeys = newOpenKeys.filter((k) => !subPathKeys.has(k));
|
|
153
153
|
}
|
|
154
154
|
if (!(0, __v_c_util_dist_isEqual.default)(mergedOpenKeys.value, newOpenKeys, true)) triggerOpenKeys(newOpenKeys, true);
|
|
155
|
-
}
|
|
155
|
+
};
|
|
156
156
|
const triggerAccessibilityOpen = (key, open) => {
|
|
157
157
|
onInternalOpenChange(key, open ?? !mergedOpenKeys.value.includes(key));
|
|
158
158
|
};
|
|
@@ -181,8 +181,8 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
181
181
|
require_MenuContext.useMenuContextProvider((0, vue.computed)(() => {
|
|
182
182
|
return {
|
|
183
183
|
prefixCls: props.prefixCls || defaults.prefixCls,
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
rootClass: props.rootClass,
|
|
185
|
+
classes: props.classes,
|
|
186
186
|
styles: props.styles,
|
|
187
187
|
mode: internalMode.value,
|
|
188
188
|
openKeys: mergedOpenKeys.value,
|
|
@@ -236,7 +236,7 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
236
236
|
const wrappedChildList = internalMode.value !== "horizontal" || props?.disabledOverflow ? childList.value : childList.value.map((child, index) => (0, vue.createVNode)(require_MenuContext.default, {
|
|
237
237
|
"key": child.key,
|
|
238
238
|
"overflowDisabled": index > lastVisibleIndex.value,
|
|
239
|
-
"
|
|
239
|
+
"classes": props.classes,
|
|
240
240
|
"styles": props.styles
|
|
241
241
|
}, _isSlot(child) ? child : { default: () => [child] }));
|
|
242
242
|
const container = (0, vue.createVNode)(__v_c_overflow.default, (0, vue.mergeProps)({
|
|
@@ -247,7 +247,7 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
247
247
|
"class": (0, __v_c_util.classNames)(props.prefixCls || defaults.prefixCls, `${props.prefixCls || defaults.prefixCls}-root`, `${props.prefixCls || defaults.prefixCls}-${internalMode.value}`, _attrs.class || "", {
|
|
248
248
|
[`${props.prefixCls || defaults.prefixCls}-inline-collapsed`]: internalInlineCollapsed.value,
|
|
249
249
|
[`${props.prefixCls || defaults.prefixCls}-rtl`]: isRtl.value
|
|
250
|
-
}, props.
|
|
250
|
+
}, props.rootClass),
|
|
251
251
|
"style": _attrs.style,
|
|
252
252
|
"data": wrappedChildList,
|
|
253
253
|
"renderRawItem": (node) => {
|
|
@@ -283,12 +283,12 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
283
283
|
required: false,
|
|
284
284
|
default: void 0
|
|
285
285
|
},
|
|
286
|
-
|
|
286
|
+
rootClass: {
|
|
287
287
|
type: String,
|
|
288
288
|
required: false,
|
|
289
289
|
default: void 0
|
|
290
290
|
},
|
|
291
|
-
|
|
291
|
+
classes: {
|
|
292
292
|
type: Object,
|
|
293
293
|
required: false,
|
|
294
294
|
default: void 0
|
|
@@ -505,7 +505,8 @@ var Menu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, expose, att
|
|
|
505
505
|
default: void 0
|
|
506
506
|
}
|
|
507
507
|
}, defaults),
|
|
508
|
-
name: "VcMenu"
|
|
508
|
+
name: "VcMenu",
|
|
509
|
+
inheritAttrs: false
|
|
509
510
|
});
|
|
510
511
|
var Menu_default = Menu;
|
|
511
512
|
exports.default = Menu_default;
|
package/dist/Menu.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import { BuiltinPlacements, Components, ItemType, MenuClickEventHandler, MenuMod
|
|
|
5
5
|
import { SemanticName } from './SubMenu';
|
|
6
6
|
export interface MenuProps {
|
|
7
7
|
prefixCls?: string;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
rootClass?: string;
|
|
9
|
+
classes?: Partial<Record<SemanticName, string>>;
|
|
10
10
|
styles?: Partial<Record<SemanticName, CSSProperties>>;
|
|
11
11
|
items?: ItemType[];
|
|
12
12
|
disabled?: boolean;
|
package/dist/Menu.js
CHANGED
|
@@ -135,11 +135,11 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
135
135
|
}
|
|
136
136
|
if (!props.multiple && mergedOpenKeys.value.length && internalMode.value !== "inline") triggerOpenKeys(EMPTY_LIST);
|
|
137
137
|
};
|
|
138
|
-
const onInternalClick =
|
|
138
|
+
const onInternalClick = (info) => {
|
|
139
139
|
props.onClick?.(warnItemProp(info));
|
|
140
140
|
triggerSelection(info);
|
|
141
|
-
}
|
|
142
|
-
const onInternalOpenChange =
|
|
141
|
+
};
|
|
142
|
+
const onInternalOpenChange = (key, open) => {
|
|
143
143
|
let newOpenKeys = mergedOpenKeys.value.filter((k) => k !== key);
|
|
144
144
|
if (open) newOpenKeys.push(key);
|
|
145
145
|
else if (internalMode.value !== "inline") {
|
|
@@ -147,7 +147,7 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
147
147
|
newOpenKeys = newOpenKeys.filter((k) => !subPathKeys.has(k));
|
|
148
148
|
}
|
|
149
149
|
if (!isEqual(mergedOpenKeys.value, newOpenKeys, true)) triggerOpenKeys(newOpenKeys, true);
|
|
150
|
-
}
|
|
150
|
+
};
|
|
151
151
|
const triggerAccessibilityOpen = (key, open) => {
|
|
152
152
|
onInternalOpenChange(key, open ?? !mergedOpenKeys.value.includes(key));
|
|
153
153
|
};
|
|
@@ -176,8 +176,8 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
176
176
|
useMenuContextProvider(computed(() => {
|
|
177
177
|
return {
|
|
178
178
|
prefixCls: props.prefixCls || defaults.prefixCls,
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
rootClass: props.rootClass,
|
|
180
|
+
classes: props.classes,
|
|
181
181
|
styles: props.styles,
|
|
182
182
|
mode: internalMode.value,
|
|
183
183
|
openKeys: mergedOpenKeys.value,
|
|
@@ -231,7 +231,7 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
231
231
|
const wrappedChildList = internalMode.value !== "horizontal" || props?.disabledOverflow ? childList.value : childList.value.map((child, index) => createVNode(MenuContext_default, {
|
|
232
232
|
"key": child.key,
|
|
233
233
|
"overflowDisabled": index > lastVisibleIndex.value,
|
|
234
|
-
"
|
|
234
|
+
"classes": props.classes,
|
|
235
235
|
"styles": props.styles
|
|
236
236
|
}, _isSlot(child) ? child : { default: () => [child] }));
|
|
237
237
|
const container = createVNode(Overflow, mergeProps({
|
|
@@ -242,7 +242,7 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
242
242
|
"class": classNames(props.prefixCls || defaults.prefixCls, `${props.prefixCls || defaults.prefixCls}-root`, `${props.prefixCls || defaults.prefixCls}-${internalMode.value}`, _attrs.class || "", {
|
|
243
243
|
[`${props.prefixCls || defaults.prefixCls}-inline-collapsed`]: internalInlineCollapsed.value,
|
|
244
244
|
[`${props.prefixCls || defaults.prefixCls}-rtl`]: isRtl.value
|
|
245
|
-
}, props.
|
|
245
|
+
}, props.rootClass),
|
|
246
246
|
"style": _attrs.style,
|
|
247
247
|
"data": wrappedChildList,
|
|
248
248
|
"renderRawItem": (node) => {
|
|
@@ -278,12 +278,12 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
278
278
|
required: false,
|
|
279
279
|
default: void 0
|
|
280
280
|
},
|
|
281
|
-
|
|
281
|
+
rootClass: {
|
|
282
282
|
type: String,
|
|
283
283
|
required: false,
|
|
284
284
|
default: void 0
|
|
285
285
|
},
|
|
286
|
-
|
|
286
|
+
classes: {
|
|
287
287
|
type: Object,
|
|
288
288
|
required: false,
|
|
289
289
|
default: void 0
|
|
@@ -500,6 +500,7 @@ var Menu_default = /* @__PURE__ */ defineComponent((props, { slots, expose, attr
|
|
|
500
500
|
default: void 0
|
|
501
501
|
}
|
|
502
502
|
}, defaults),
|
|
503
|
-
name: "VcMenu"
|
|
503
|
+
name: "VcMenu",
|
|
504
|
+
inheritAttrs: false
|
|
504
505
|
});
|
|
505
506
|
export { Menu_default as default };
|
package/dist/MenuItem.cjs
CHANGED
|
@@ -219,7 +219,7 @@ var MenuItem = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots, attrs }
|
|
|
219
219
|
onCleanup(() => {
|
|
220
220
|
measure?.unregisterPath(eventKey.value, connectedKeyPath.value);
|
|
221
221
|
});
|
|
222
|
-
});
|
|
222
|
+
}, { immediate: true });
|
|
223
223
|
return () => {
|
|
224
224
|
if (measure) return null;
|
|
225
225
|
return (0, vue.createVNode)(InternalMenuItem, {
|
package/dist/MenuItem.js
CHANGED
|
@@ -214,7 +214,7 @@ var MenuItem_default = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
214
214
|
onCleanup(() => {
|
|
215
215
|
measure?.unregisterPath(eventKey.value, connectedKeyPath.value);
|
|
216
216
|
});
|
|
217
|
-
});
|
|
217
|
+
}, { immediate: true });
|
|
218
218
|
return () => {
|
|
219
219
|
if (measure) return null;
|
|
220
220
|
return createVNode(InternalMenuItem, {
|
package/dist/MenuItemGroup.cjs
CHANGED
|
@@ -15,7 +15,7 @@ var InternalMenuItemGroup = /* @__PURE__ */ (0, vue.defineComponent)((props, { s
|
|
|
15
15
|
const context = require_MenuContext.useMenuContext();
|
|
16
16
|
return () => {
|
|
17
17
|
const { class: className, title, eventKey,...restProps } = props;
|
|
18
|
-
const { prefixCls,
|
|
18
|
+
const { prefixCls, classes: menuClassNames, styles } = context?.value ?? {};
|
|
19
19
|
const groupPrefixCls = `${prefixCls}-item-group`;
|
|
20
20
|
return (0, vue.createVNode)("li", (0, vue.mergeProps)({ "role": "presentation" }, restProps, {
|
|
21
21
|
"onClick": (e) => e.stopPropagation(),
|
|
@@ -31,33 +31,36 @@ var InternalMenuItemGroup = /* @__PURE__ */ (0, vue.defineComponent)((props, { s
|
|
|
31
31
|
"style": styles?.list
|
|
32
32
|
}, [slots?.default ? slots.default() : null])]);
|
|
33
33
|
};
|
|
34
|
-
}, {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
34
|
+
}, {
|
|
35
|
+
props: {
|
|
36
|
+
title: {
|
|
37
|
+
type: null,
|
|
38
|
+
required: false,
|
|
39
|
+
default: void 0
|
|
40
|
+
},
|
|
41
|
+
eventKey: {
|
|
42
|
+
type: String,
|
|
43
|
+
required: false,
|
|
44
|
+
default: void 0
|
|
45
|
+
},
|
|
46
|
+
warnKey: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
required: false,
|
|
49
|
+
default: void 0
|
|
50
|
+
},
|
|
51
|
+
style: {
|
|
52
|
+
type: null,
|
|
53
|
+
required: false,
|
|
54
|
+
default: void 0
|
|
55
|
+
},
|
|
56
|
+
class: {
|
|
57
|
+
type: String,
|
|
58
|
+
required: false,
|
|
59
|
+
default: void 0
|
|
60
|
+
}
|
|
54
61
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
required: false,
|
|
58
|
-
default: void 0
|
|
59
|
-
}
|
|
60
|
-
} });
|
|
62
|
+
name: "InternalMenuItemGroup"
|
|
63
|
+
});
|
|
61
64
|
var MenuItemGroup = /* @__PURE__ */ (0, vue.defineComponent)((props, ctx) => {
|
|
62
65
|
const connectedKeyPath = require_PathContext.useFullPath((0, vue.computed)(() => props.eventKey));
|
|
63
66
|
const measure = require_PathContext.useMeasure();
|
package/dist/MenuItemGroup.js
CHANGED
|
@@ -12,7 +12,7 @@ var InternalMenuItemGroup = /* @__PURE__ */ defineComponent((props, { slots }) =
|
|
|
12
12
|
const context = useMenuContext();
|
|
13
13
|
return () => {
|
|
14
14
|
const { class: className, title, eventKey,...restProps } = props;
|
|
15
|
-
const { prefixCls,
|
|
15
|
+
const { prefixCls, classes: menuClassNames, styles } = context?.value ?? {};
|
|
16
16
|
const groupPrefixCls = `${prefixCls}-item-group`;
|
|
17
17
|
return createVNode("li", mergeProps({ "role": "presentation" }, restProps, {
|
|
18
18
|
"onClick": (e) => e.stopPropagation(),
|
|
@@ -28,33 +28,36 @@ var InternalMenuItemGroup = /* @__PURE__ */ defineComponent((props, { slots }) =
|
|
|
28
28
|
"style": styles?.list
|
|
29
29
|
}, [slots?.default ? slots.default() : null])]);
|
|
30
30
|
};
|
|
31
|
-
}, {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
31
|
+
}, {
|
|
32
|
+
props: {
|
|
33
|
+
title: {
|
|
34
|
+
type: null,
|
|
35
|
+
required: false,
|
|
36
|
+
default: void 0
|
|
37
|
+
},
|
|
38
|
+
eventKey: {
|
|
39
|
+
type: String,
|
|
40
|
+
required: false,
|
|
41
|
+
default: void 0
|
|
42
|
+
},
|
|
43
|
+
warnKey: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
required: false,
|
|
46
|
+
default: void 0
|
|
47
|
+
},
|
|
48
|
+
style: {
|
|
49
|
+
type: null,
|
|
50
|
+
required: false,
|
|
51
|
+
default: void 0
|
|
52
|
+
},
|
|
53
|
+
class: {
|
|
54
|
+
type: String,
|
|
55
|
+
required: false,
|
|
56
|
+
default: void 0
|
|
57
|
+
}
|
|
51
58
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
required: false,
|
|
55
|
-
default: void 0
|
|
56
|
-
}
|
|
57
|
-
} });
|
|
59
|
+
name: "InternalMenuItemGroup"
|
|
60
|
+
});
|
|
58
61
|
var MenuItemGroup_default = /* @__PURE__ */ defineComponent((props, ctx) => {
|
|
59
62
|
const connectedKeyPath = useFullPath(computed(() => props.eventKey));
|
|
60
63
|
const measure = useMeasure();
|
|
@@ -62,10 +62,10 @@ var PopupTrigger = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots }) =
|
|
|
62
62
|
});
|
|
63
63
|
return () => {
|
|
64
64
|
const { popupClassName, popup, popupStyle, popupOffset, disabled, onVisibleChange, prefixCls } = props;
|
|
65
|
-
const { rtl,
|
|
65
|
+
const { rtl, rootClass, mode, getPopupContainer, triggerSubMenuAction, subMenuCloseDelay, subMenuOpenDelay, forceSubMenuRender } = menuContext?.value ?? {};
|
|
66
66
|
return (0, vue.createVNode)(__v_c_trigger.default, {
|
|
67
67
|
"prefixCls": prefixCls,
|
|
68
|
-
"popupClassName": (0, __v_c_util.clsx)(`${prefixCls}-popup`, { [`${prefixCls}-rtl`]: rtl }, popupClassName,
|
|
68
|
+
"popupClassName": (0, __v_c_util.clsx)(`${prefixCls}-popup`, { [`${prefixCls}-rtl`]: rtl }, popupClassName, rootClass),
|
|
69
69
|
"stretch": mode === "horizontal" ? "minWidth" : void 0,
|
|
70
70
|
"getPopupContainer": getPopupContainer,
|
|
71
71
|
"builtinPlacements": placement.value,
|
|
@@ -58,10 +58,10 @@ var PopupTrigger_default = /* @__PURE__ */ defineComponent((props, { slots }) =>
|
|
|
58
58
|
});
|
|
59
59
|
return () => {
|
|
60
60
|
const { popupClassName, popup, popupStyle, popupOffset, disabled, onVisibleChange, prefixCls } = props;
|
|
61
|
-
const { rtl,
|
|
61
|
+
const { rtl, rootClass, mode, getPopupContainer, triggerSubMenuAction, subMenuCloseDelay, subMenuOpenDelay, forceSubMenuRender } = menuContext?.value ?? {};
|
|
62
62
|
return createVNode(Trigger, {
|
|
63
63
|
"prefixCls": prefixCls,
|
|
64
|
-
"popupClassName": clsx(`${prefixCls}-popup`, { [`${prefixCls}-rtl`]: rtl }, popupClassName,
|
|
64
|
+
"popupClassName": clsx(`${prefixCls}-popup`, { [`${prefixCls}-rtl`]: rtl }, popupClassName, rootClass),
|
|
65
65
|
"stretch": mode === "horizontal" ? "minWidth" : void 0,
|
|
66
66
|
"getPopupContainer": getPopupContainer,
|
|
67
67
|
"builtinPlacements": placement.value,
|
package/dist/SubMenu/index.cjs
CHANGED
|
@@ -107,7 +107,7 @@ var InternalSubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots,
|
|
|
107
107
|
else triggerModeRef.value = mode.value;
|
|
108
108
|
}, { immediate: true });
|
|
109
109
|
return () => {
|
|
110
|
-
const { style, title, class: className, popupClassName, popupOffset, popupStyle,...restProps } = props;
|
|
110
|
+
const { style, title, class: className, popupClassName, popupOffset, popupStyle, classes, styles,...restProps } = props;
|
|
111
111
|
const children = slots.default?.();
|
|
112
112
|
const popupId = domDataId.value && `${domDataId.value}-popup`;
|
|
113
113
|
const expandIconProps = {
|
|
@@ -140,8 +140,8 @@ var InternalSubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots,
|
|
|
140
140
|
const popupContentTriggerMode = triggerModeRef.value;
|
|
141
141
|
const renderPopupContent = () => {
|
|
142
142
|
const originNode = (0, vue.createVNode)(require_MenuContext.default, {
|
|
143
|
-
"
|
|
144
|
-
"styles":
|
|
143
|
+
"classes": classes,
|
|
144
|
+
"styles": styles,
|
|
145
145
|
"mode": popupContentTriggerMode === "horizontal" ? "vertical" : popupContentTriggerMode
|
|
146
146
|
}, { default: () => [(0, vue.createVNode)(require_SubMenuList.default, { "id": popupId }, _isSlot(children) ? children : { default: () => [children] })] });
|
|
147
147
|
const mergedPopupRender = props?.popupRender || contextPopupRender.value;
|
|
@@ -194,7 +194,7 @@ var InternalSubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots,
|
|
|
194
194
|
};
|
|
195
195
|
}, {
|
|
196
196
|
props: {
|
|
197
|
-
|
|
197
|
+
classes: {
|
|
198
198
|
type: Object,
|
|
199
199
|
required: false,
|
|
200
200
|
default: void 0
|
|
@@ -239,7 +239,7 @@ var InternalSubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots,
|
|
|
239
239
|
required: false,
|
|
240
240
|
default: void 0
|
|
241
241
|
},
|
|
242
|
-
|
|
242
|
+
rootClass: {
|
|
243
243
|
type: String,
|
|
244
244
|
required: false,
|
|
245
245
|
default: void 0
|
|
@@ -330,23 +330,27 @@ var InternalSubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots,
|
|
|
330
330
|
inheritAttrs: false
|
|
331
331
|
});
|
|
332
332
|
var SubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots }) => {
|
|
333
|
-
const
|
|
333
|
+
const eventKey = (0, vue.computed)(() => props?.eventKey);
|
|
334
|
+
const connectedKeyPath = require_PathContext.useFullPath(eventKey);
|
|
334
335
|
const measure = require_PathContext.useMeasure();
|
|
335
336
|
const validKeyPath = (0, vue.computed)(() => connectedKeyPath.value.filter((k) => k !== void 0));
|
|
336
|
-
(0, vue.watch)([
|
|
337
|
-
if (measure
|
|
338
|
-
|
|
337
|
+
(0, vue.watch)([connectedKeyPath], (_n, _o, onCleanup) => {
|
|
338
|
+
if (measure) measure.registerPath(eventKey.value, connectedKeyPath.value);
|
|
339
|
+
onCleanup(() => {
|
|
340
|
+
measure?.unregisterPath(eventKey.value, connectedKeyPath.value);
|
|
341
|
+
});
|
|
342
|
+
}, { immediate: true });
|
|
339
343
|
return () => {
|
|
340
344
|
const children = slots.default?.();
|
|
341
345
|
const childList = require_commonUtil.parseChildren(children, validKeyPath.value);
|
|
342
346
|
let renderNode;
|
|
343
347
|
if (measure) renderNode = childList;
|
|
344
348
|
else renderNode = (0, vue.createVNode)(InternalSubMenu, props, _isSlot(childList) ? childList : { default: () => [childList] });
|
|
345
|
-
return (0, vue.createVNode)(require_PathContext.PathTrackerContext.Provider, { "value":
|
|
349
|
+
return (0, vue.createVNode)(require_PathContext.PathTrackerContext.Provider, { "value": connectedKeyPath.value }, _isSlot(renderNode) ? renderNode : { default: () => [renderNode] });
|
|
346
350
|
};
|
|
347
351
|
}, {
|
|
348
352
|
props: {
|
|
349
|
-
|
|
353
|
+
classes: {
|
|
350
354
|
type: Object,
|
|
351
355
|
required: false,
|
|
352
356
|
default: void 0
|
|
@@ -391,7 +395,7 @@ var SubMenu = /* @__PURE__ */ (0, vue.defineComponent)((props, { slots }) => {
|
|
|
391
395
|
required: false,
|
|
392
396
|
default: void 0
|
|
393
397
|
},
|
|
394
|
-
|
|
398
|
+
rootClass: {
|
|
395
399
|
type: String,
|
|
396
400
|
required: false,
|
|
397
401
|
default: void 0
|
package/dist/SubMenu/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { CSSProperties } from 'vue';
|
|
|
3
3
|
import { PopupRender, SubMenuType } from '../interface';
|
|
4
4
|
export type SemanticName = 'list' | 'listTitle';
|
|
5
5
|
export interface SubMenuProps extends Omit<SubMenuType, 'key' | 'children' | 'label'> {
|
|
6
|
-
|
|
6
|
+
classes?: Partial<Record<SemanticName, string>>;
|
|
7
7
|
styles?: Partial<Record<SemanticName, CSSProperties>>;
|
|
8
8
|
title?: VueNode;
|
|
9
9
|
/** @private Used for rest popup. Do not use in your prod */
|
package/dist/SubMenu/index.js
CHANGED
|
@@ -103,7 +103,7 @@ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
103
103
|
else triggerModeRef.value = mode.value;
|
|
104
104
|
}, { immediate: true });
|
|
105
105
|
return () => {
|
|
106
|
-
const { style, title, class: className, popupClassName, popupOffset, popupStyle,...restProps } = props;
|
|
106
|
+
const { style, title, class: className, popupClassName, popupOffset, popupStyle, classes, styles,...restProps } = props;
|
|
107
107
|
const children = slots.default?.();
|
|
108
108
|
const popupId = domDataId.value && `${domDataId.value}-popup`;
|
|
109
109
|
const expandIconProps = {
|
|
@@ -136,8 +136,8 @@ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
136
136
|
const popupContentTriggerMode = triggerModeRef.value;
|
|
137
137
|
const renderPopupContent = () => {
|
|
138
138
|
const originNode = createVNode(MenuContext_default, {
|
|
139
|
-
"
|
|
140
|
-
"styles":
|
|
139
|
+
"classes": classes,
|
|
140
|
+
"styles": styles,
|
|
141
141
|
"mode": popupContentTriggerMode === "horizontal" ? "vertical" : popupContentTriggerMode
|
|
142
142
|
}, { default: () => [createVNode(SubMenuList_default, { "id": popupId }, _isSlot(children) ? children : { default: () => [children] })] });
|
|
143
143
|
const mergedPopupRender = props?.popupRender || contextPopupRender.value;
|
|
@@ -190,7 +190,7 @@ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
190
190
|
};
|
|
191
191
|
}, {
|
|
192
192
|
props: {
|
|
193
|
-
|
|
193
|
+
classes: {
|
|
194
194
|
type: Object,
|
|
195
195
|
required: false,
|
|
196
196
|
default: void 0
|
|
@@ -235,7 +235,7 @@ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
235
235
|
required: false,
|
|
236
236
|
default: void 0
|
|
237
237
|
},
|
|
238
|
-
|
|
238
|
+
rootClass: {
|
|
239
239
|
type: String,
|
|
240
240
|
required: false,
|
|
241
241
|
default: void 0
|
|
@@ -326,23 +326,27 @@ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs })
|
|
|
326
326
|
inheritAttrs: false
|
|
327
327
|
});
|
|
328
328
|
var SubMenu_default = /* @__PURE__ */ defineComponent((props, { slots }) => {
|
|
329
|
-
const
|
|
329
|
+
const eventKey = computed(() => props?.eventKey);
|
|
330
|
+
const connectedKeyPath = useFullPath(eventKey);
|
|
330
331
|
const measure = useMeasure();
|
|
331
332
|
const validKeyPath = computed(() => connectedKeyPath.value.filter((k) => k !== void 0));
|
|
332
|
-
watch([
|
|
333
|
-
if (measure
|
|
334
|
-
|
|
333
|
+
watch([connectedKeyPath], (_n, _o, onCleanup) => {
|
|
334
|
+
if (measure) measure.registerPath(eventKey.value, connectedKeyPath.value);
|
|
335
|
+
onCleanup(() => {
|
|
336
|
+
measure?.unregisterPath(eventKey.value, connectedKeyPath.value);
|
|
337
|
+
});
|
|
338
|
+
}, { immediate: true });
|
|
335
339
|
return () => {
|
|
336
340
|
const children = slots.default?.();
|
|
337
341
|
const childList = parseChildren(children, validKeyPath.value);
|
|
338
342
|
let renderNode;
|
|
339
343
|
if (measure) renderNode = childList;
|
|
340
344
|
else renderNode = createVNode(InternalSubMenu, props, _isSlot(childList) ? childList : { default: () => [childList] });
|
|
341
|
-
return createVNode(PathTrackerContext.Provider, { "value":
|
|
345
|
+
return createVNode(PathTrackerContext.Provider, { "value": connectedKeyPath.value }, _isSlot(renderNode) ? renderNode : { default: () => [renderNode] });
|
|
342
346
|
};
|
|
343
347
|
}, {
|
|
344
348
|
props: {
|
|
345
|
-
|
|
349
|
+
classes: {
|
|
346
350
|
type: Object,
|
|
347
351
|
required: false,
|
|
348
352
|
default: void 0
|
|
@@ -387,7 +391,7 @@ var SubMenu_default = /* @__PURE__ */ defineComponent((props, { slots }) => {
|
|
|
387
391
|
required: false,
|
|
388
392
|
default: void 0
|
|
389
393
|
},
|
|
390
|
-
|
|
394
|
+
rootClass: {
|
|
391
395
|
type: String,
|
|
392
396
|
required: false,
|
|
393
397
|
default: void 0
|
|
@@ -38,7 +38,7 @@ var InheritableContextProvider = /* @__PURE__ */ (0, vue.defineComponent)((props
|
|
|
38
38
|
required: false,
|
|
39
39
|
default: void 0
|
|
40
40
|
},
|
|
41
|
-
|
|
41
|
+
classes: {
|
|
42
42
|
type: Object,
|
|
43
43
|
required: false,
|
|
44
44
|
default: void 0
|
|
@@ -48,7 +48,7 @@ var InheritableContextProvider = /* @__PURE__ */ (0, vue.defineComponent)((props
|
|
|
48
48
|
required: false,
|
|
49
49
|
default: void 0
|
|
50
50
|
},
|
|
51
|
-
|
|
51
|
+
rootClass: {
|
|
52
52
|
type: String,
|
|
53
53
|
required: false,
|
|
54
54
|
default: void 0
|
|
@@ -4,9 +4,9 @@ import { BuiltinPlacements, MenuClickEventHandler, MenuMode, PopupRender, Render
|
|
|
4
4
|
import { SubMenuProps } from '../SubMenu';
|
|
5
5
|
export interface MenuContextProps {
|
|
6
6
|
prefixCls: string;
|
|
7
|
-
|
|
7
|
+
classes?: SubMenuProps['classes'];
|
|
8
8
|
styles?: SubMenuProps['styles'];
|
|
9
|
-
|
|
9
|
+
rootClass?: string;
|
|
10
10
|
openKeys: string[];
|
|
11
11
|
rtl?: boolean;
|
|
12
12
|
mode: MenuMode;
|
|
@@ -35,7 +35,7 @@ var MenuContext_default = /* @__PURE__ */ defineComponent((props, { slots }) =>
|
|
|
35
35
|
required: false,
|
|
36
36
|
default: void 0
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
classes: {
|
|
39
39
|
type: Object,
|
|
40
40
|
required: false,
|
|
41
41
|
default: void 0
|
|
@@ -45,7 +45,7 @@ var MenuContext_default = /* @__PURE__ */ defineComponent((props, { slots }) =>
|
|
|
45
45
|
required: false,
|
|
46
46
|
default: void 0
|
|
47
47
|
},
|
|
48
|
-
|
|
48
|
+
rootClass: {
|
|
49
49
|
type: String,
|
|
50
50
|
required: false,
|
|
51
51
|
default: void 0
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MenuDividerType, MenuItemGroupType, MenuItemType, MenuRef, RenderIconInfo, SubMenuType } from './interface';
|
|
1
|
+
import { MenuClickEventHandler, MenuDividerType, MenuInfo, MenuItemGroupType, MenuItemType, MenuRef, RenderIconInfo, SelectEventHandler, SelectInfo, SubMenuType } from './interface';
|
|
2
2
|
import { MenuProps, default as Menu } from './Menu';
|
|
3
3
|
import { MenuItemProps, default as MenuItem } from './MenuItem';
|
|
4
4
|
import { MenuItemGroupProps, default as MenuItemGroup } from './MenuItemGroup';
|
|
@@ -8,7 +8,7 @@ import { default as Divider } from './Divider';
|
|
|
8
8
|
export { Divider, MenuItem as Item, MenuItemGroup as ItemGroup, MenuItem, MenuItemGroup, SubMenu,
|
|
9
9
|
/** @private Only used for antd internal. Do not use in your production. */
|
|
10
10
|
useFullPath, };
|
|
11
|
-
export type { MenuDividerType, MenuItemGroupProps, MenuItemGroupType, MenuItemProps, MenuItemType, MenuProps, MenuRef, RenderIconInfo, SubMenuProps, SubMenuType, };
|
|
11
|
+
export type { MenuClickEventHandler, MenuDividerType, MenuInfo, MenuItemGroupProps, MenuItemGroupType, MenuItemProps, MenuItemType, MenuProps, MenuRef, RenderIconInfo, SelectEventHandler, SelectInfo, SubMenuProps, SubMenuType, };
|
|
12
12
|
type MenuType = typeof Menu & {
|
|
13
13
|
Item: typeof MenuItem;
|
|
14
14
|
SubMenu: typeof SubMenu;
|
package/dist/interface.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface SubMenuType extends ItemSharedProps {
|
|
|
11
11
|
children: ItemType[];
|
|
12
12
|
disabled?: boolean;
|
|
13
13
|
key: string;
|
|
14
|
-
|
|
14
|
+
rootClass?: string;
|
|
15
15
|
itemIcon?: RenderIconType;
|
|
16
16
|
expandIcon?: RenderIconType;
|
|
17
17
|
onMouseEnter?: MenuHoverEventHandler;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@v-c/menu",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.5",
|
|
5
5
|
"description": "menu ui component for vue",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -9,24 +9,25 @@
|
|
|
9
9
|
"import": "./dist/index.js",
|
|
10
10
|
"require": "./dist/index.cjs"
|
|
11
11
|
},
|
|
12
|
-
"./dist
|
|
12
|
+
"./dist/*.js": "./dist/*.js",
|
|
13
|
+
"./dist/*.d.ts": "./dist/*.d.ts",
|
|
13
14
|
"./package.json": "./package.json"
|
|
14
15
|
},
|
|
15
16
|
"publishConfig": {
|
|
16
17
|
"access": "public"
|
|
17
18
|
},
|
|
19
|
+
"main": "./dist/index.js",
|
|
18
20
|
"files": [
|
|
19
21
|
"dist",
|
|
20
22
|
"package.json"
|
|
21
23
|
],
|
|
22
|
-
"main": "./dist/index.js",
|
|
23
24
|
"peerDependencies": {
|
|
24
25
|
"vue": "^3.0.0"
|
|
25
26
|
},
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"@v-c/overflow": "0.0.1",
|
|
28
28
|
"@v-c/trigger": "0.0.13",
|
|
29
|
-
"@v-c/util": "0.0.13"
|
|
29
|
+
"@v-c/util": "0.0.13",
|
|
30
|
+
"@v-c/overflow": "0.0.1"
|
|
30
31
|
},
|
|
31
32
|
"scripts": {
|
|
32
33
|
"build": "vite build",
|