@v-c/menu 0.0.1 → 0.0.3

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.
Files changed (58) hide show
  1. package/dist/Divider.cjs +33 -36
  2. package/dist/Divider.js +28 -34
  3. package/dist/Icon.cjs +39 -38
  4. package/dist/Icon.js +36 -38
  5. package/dist/Menu.cjs +506 -575
  6. package/dist/Menu.d.ts +2 -0
  7. package/dist/Menu.js +495 -570
  8. package/dist/MenuItem.cjs +314 -344
  9. package/dist/MenuItem.js +303 -339
  10. package/dist/MenuItemGroup.cjs +98 -116
  11. package/dist/MenuItemGroup.js +91 -113
  12. package/dist/SubMenu/InlineSubMenuList.cjs +58 -82
  13. package/dist/SubMenu/InlineSubMenuList.js +54 -81
  14. package/dist/SubMenu/PopupTrigger.cjs +133 -167
  15. package/dist/SubMenu/PopupTrigger.d.ts +2 -2
  16. package/dist/SubMenu/PopupTrigger.js +126 -165
  17. package/dist/SubMenu/SubMenuList.cjs +18 -26
  18. package/dist/SubMenu/SubMenuList.js +14 -25
  19. package/dist/SubMenu/index.cjs +479 -526
  20. package/dist/SubMenu/index.js +469 -521
  21. package/dist/_virtual/rolldown_runtime.cjs +21 -0
  22. package/dist/context/IdContext.cjs +15 -23
  23. package/dist/context/IdContext.js +15 -27
  24. package/dist/context/MenuContext.cjs +183 -174
  25. package/dist/context/MenuContext.js +180 -177
  26. package/dist/context/PathContext.cjs +54 -79
  27. package/dist/context/PathContext.js +54 -90
  28. package/dist/context/PrivateContext.cjs +11 -17
  29. package/dist/context/PrivateContext.js +11 -20
  30. package/dist/hooks/useAccessibility.cjs +171 -191
  31. package/dist/hooks/useAccessibility.js +168 -193
  32. package/dist/hooks/useActive.cjs +25 -28
  33. package/dist/hooks/useActive.js +23 -28
  34. package/dist/hooks/useDirectionStyle.cjs +11 -17
  35. package/dist/hooks/useDirectionStyle.js +9 -17
  36. package/dist/hooks/useKeyRecords.cjs +70 -88
  37. package/dist/hooks/useKeyRecords.js +68 -89
  38. package/dist/hooks/useMemoCallback.cjs +9 -9
  39. package/dist/hooks/useMemoCallback.js +7 -9
  40. package/dist/index.cjs +21 -21
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +12 -20
  43. package/dist/interface.cjs +0 -1
  44. package/dist/interface.js +0 -1
  45. package/dist/placements.cjs +70 -70
  46. package/dist/placements.js +69 -72
  47. package/dist/utils/commonUtil.cjs +24 -26
  48. package/dist/utils/commonUtil.js +23 -26
  49. package/dist/utils/motionUtil.cjs +2 -9
  50. package/dist/utils/motionUtil.js +3 -10
  51. package/dist/utils/nodeUtil.cjs +49 -77
  52. package/dist/utils/nodeUtil.d.ts +4 -1
  53. package/dist/utils/nodeUtil.js +48 -77
  54. package/dist/utils/timeUtil.cjs +2 -3
  55. package/dist/utils/timeUtil.js +3 -4
  56. package/dist/utils/warnUtil.cjs +8 -14
  57. package/dist/utils/warnUtil.js +7 -14
  58. package/package.json +2 -2
@@ -1,532 +1,480 @@
1
- import { defineComponent, computed, watch, createVNode, ref, mergeProps, isVNode } from "vue";
2
- import Overflow from "@v-c/overflow";
3
- import { classNames } from "@v-c/util";
4
- import warning from "@v-c/util/dist/warning";
1
+ import MenuContext_default, { useMenuContext } from "../context/MenuContext.js";
2
+ import { PathTrackerContext, useFullPath, useMeasure, usePathUserContext } from "../context/PathContext.js";
3
+ import Icon_default from "../Icon.js";
5
4
  import { useMenuId } from "../context/IdContext.js";
6
- import InheritableContextProvider, { useMenuContext } from "../context/MenuContext.js";
7
- import { useFullPath, useMeasure, PathTrackerContext, usePathUserContext } from "../context/PathContext.js";
8
5
  import { usePrivateContext } from "../context/PrivateContext.js";
9
6
  import useActive from "../hooks/useActive.js";
10
7
  import useDirectionStyle from "../hooks/useDirectionStyle.js";
11
- import Icon from "../Icon.js";
12
8
  import { parseChildren } from "../utils/commonUtil.js";
13
- import InlineSubMenuList from "./InlineSubMenuList.js";
14
- import PopupTrigger from "./PopupTrigger.js";
15
- import InternalSubMenuList from "./SubMenuList.js";
9
+ import SubMenuList_default from "./SubMenuList.js";
10
+ import InlineSubMenuList_default from "./InlineSubMenuList.js";
11
+ import PopupTrigger_default from "./PopupTrigger.js";
12
+ import { computed, createVNode, defineComponent, isVNode, mergeProps, ref, watch } from "vue";
13
+ import { classNames } from "@v-c/util";
14
+ import Overflow from "@v-c/overflow";
15
+ import warning$1 from "@v-c/util/dist/warning";
16
16
  function _isSlot(s) {
17
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
17
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
18
18
  }
19
- const InternalSubMenu = /* @__PURE__ */ defineComponent((props, {
20
- slots,
21
- attrs
22
- }) => {
23
- const eventKeyRef = computed(() => props?.eventKey || "");
24
- const domDataId = useMenuId(eventKeyRef);
25
- const menuContext = useMenuContext();
26
- const {
27
- _internalRenderSubMenuItem
28
- } = usePrivateContext();
29
- const pathUserContext = usePathUserContext();
30
- const connectedPath = useFullPath();
31
- const validConnectedPath = computed(() => connectedPath.value.filter((k) => k !== void 0));
32
- const prefixCls = computed(() => menuContext?.value?.prefixCls || "vc-menu");
33
- const mode = computed(() => menuContext?.value?.mode || "vertical");
34
- const openKeys = computed(() => menuContext?.value?.openKeys || []);
35
- const contextDisabled = computed(() => menuContext?.value?.disabled);
36
- const overflowDisabled = computed(() => menuContext?.value?.overflowDisabled);
37
- const activeKey = computed(() => menuContext?.value?.activeKey);
38
- const selectedKeys = computed(() => menuContext?.value?.selectedKeys || []);
39
- const contextExpandIcon = computed(() => menuContext?.value?.expandIcon);
40
- const contextPopupRender = computed(() => menuContext?.value?.popupRender);
41
- const onOpenChange = (key, open2) => {
42
- menuContext?.value?.onOpenChange?.(key, open2);
43
- };
44
- const onActive = (key) => {
45
- menuContext?.value?.onActive?.(key);
46
- };
47
- const subMenuPrefixCls = computed(() => `${prefixCls.value}-submenu`);
48
- const mergedDisabled = computed(() => !!(contextDisabled.value || props?.disabled));
49
- if (process.env.NODE_ENV !== "production" && props?.warnKey) {
50
- warning(false, "SubMenu should not leave undefined `key`.");
51
- }
52
- const mergedExpandIcon = computed(() => props?.expandIcon ?? contextExpandIcon.value);
53
- const originOpen = computed(() => {
54
- const key = props?.eventKey;
55
- return key ? openKeys.value.includes(key) : false;
56
- });
57
- const open = computed(() => !overflowDisabled.value && originOpen.value);
58
- const childrenSelected = computed(() => {
59
- const key = props?.eventKey;
60
- return key ? pathUserContext.isSubPathKey(selectedKeys.value, key) : false;
61
- });
62
- const eventKeyForActive = computed(() => props?.eventKey || "");
63
- const {
64
- active,
65
- ...activeProps
66
- } = useActive(eventKeyForActive, mergedDisabled, (e) => props?.onTitleMouseEnter?.(e), (e) => props?.onTitleMouseLeave?.(e));
67
- const childrenActive = ref(false);
68
- const triggerChildrenActive = (newActive) => {
69
- if (!mergedDisabled.value) {
70
- childrenActive.value = newActive;
71
- }
72
- };
73
- const onInternalMouseEnter = (domEvent) => {
74
- triggerChildrenActive(true);
75
- props?.onMouseEnter?.({
76
- key: props.eventKey,
77
- domEvent
78
- });
79
- };
80
- const onInternalMouseLeave = (domEvent) => {
81
- triggerChildrenActive(false);
82
- props?.onMouseLeave?.({
83
- key: props.eventKey,
84
- domEvent
85
- });
86
- };
87
- const mergedActive = computed(() => {
88
- if (active.value) {
89
- return active.value;
90
- }
91
- if (mode.value !== "inline") {
92
- const key = props?.eventKey;
93
- const currentActiveKey = activeKey.value;
94
- return childrenActive.value || (key && currentActiveKey ? pathUserContext.isSubPathKey([currentActiveKey], key) : false);
95
- }
96
- return false;
97
- });
98
- const pathLength = computed(() => connectedPath.value.length);
99
- const directionStyle = useDirectionStyle(pathLength);
100
- const onInternalTitleClick = (e) => {
101
- if (mergedDisabled.value) {
102
- return;
103
- }
104
- const key = props?.eventKey;
105
- props?.onTitleClick?.({
106
- key,
107
- domEvent: e
108
- });
109
- if (mode.value === "inline" && key) {
110
- onOpenChange(key, !originOpen.value);
111
- }
112
- };
113
- const onPopupVisibleChange = (newVisible) => {
114
- const key = props?.eventKey;
115
- if (mode.value !== "inline" && key) {
116
- onOpenChange(key, newVisible);
117
- }
118
- };
119
- const onInternalFocus = () => {
120
- const key = props?.eventKey;
121
- if (key) {
122
- onActive(key);
123
- }
124
- };
125
- const triggerModeRef = ref(mode.value);
126
- watch(mode, () => {
127
- if (mode.value !== "inline" && validConnectedPath.value.length > 1) {
128
- triggerModeRef.value = "vertical";
129
- } else {
130
- triggerModeRef.value = mode.value;
131
- }
132
- }, {
133
- immediate: true
134
- });
135
- return () => {
136
- const {
137
- style,
138
- title,
139
- class: className,
140
- popupClassName,
141
- popupOffset,
142
- popupStyle,
143
- ...restProps
144
- } = props;
145
- const children = slots.default?.();
146
- const popupId = domDataId.value && `${domDataId.value}-popup`;
147
- const expandIconProps = {
148
- isOpen: open.value,
149
- isSelected: childrenSelected.value,
150
- isSubMenu: true,
151
- disabled: mergedDisabled.value
152
- };
153
- const expandIconNode = createVNode(Icon, {
154
- "icon": mode.value !== "horizontal" ? mergedExpandIcon.value : void 0,
155
- "props": {
156
- ...props,
157
- ...expandIconProps
158
- }
159
- }, {
160
- default: () => [createVNode("i", {
161
- "class": `${subMenuPrefixCls.value}-arrow`
162
- }, null)]
163
- });
164
- let titleNode = createVNode("div", mergeProps({
165
- "role": "menuitem",
166
- "style": directionStyle.value,
167
- "class": `${subMenuPrefixCls.value}-title`,
168
- "tabindex": mergedDisabled.value ? void 0 : -1,
169
- "title": typeof title === "string" ? title : void 0,
170
- "data-menu-id": overflowDisabled.value && domDataId.value ? void 0 : domDataId.value,
171
- "aria-expanded": open.value,
172
- "aria-haspopup": true,
173
- "aria-controls": popupId,
174
- "aria-disabled": mergedDisabled.value,
175
- "onClick": onInternalTitleClick,
176
- "onFocus": onInternalFocus
177
- }, activeProps), [title, expandIconNode]);
178
- const popupContentTriggerMode = triggerModeRef.value;
179
- const renderPopupContent = () => {
180
- const originNode = createVNode(InheritableContextProvider, {
181
- "classNames": props.classNames,
182
- "styles": props.styles,
183
- "mode": popupContentTriggerMode === "horizontal" ? "vertical" : popupContentTriggerMode
184
- }, {
185
- default: () => [createVNode(InternalSubMenuList, {
186
- "id": popupId
187
- }, _isSlot(children) ? children : {
188
- default: () => [children]
189
- })]
190
- });
191
- const mergedPopupRender = props?.popupRender || contextPopupRender.value;
192
- if (mergedPopupRender) {
193
- return mergedPopupRender(originNode, {
194
- item: props,
195
- keys: validConnectedPath.value
196
- });
197
- }
198
- return originNode;
199
- };
200
- if (!overflowDisabled.value) {
201
- const triggerMode = triggerModeRef.value;
202
- const _titleNode = /* @__PURE__ */ (function() {
203
- return titleNode;
204
- })();
205
- titleNode = createVNode(PopupTrigger, {
206
- "mode": triggerMode,
207
- "prefixCls": subMenuPrefixCls.value,
208
- "visible": !props?.internalPopupClose && open.value && mode.value !== "inline",
209
- "popupClassName": popupClassName,
210
- "popupOffset": popupOffset,
211
- "popupStyle": popupStyle,
212
- "popup": renderPopupContent(),
213
- "disabled": mergedDisabled.value,
214
- "onVisibleChange": onPopupVisibleChange
215
- }, _isSlot(titleNode) ? titleNode : {
216
- default: () => [_titleNode]
217
- });
218
- }
219
- let listNode = createVNode(Overflow.Item, mergeProps({
220
- "role": "none"
221
- }, attrs, restProps, {
222
- "component": "li",
223
- "style": style,
224
- "class": classNames(subMenuPrefixCls.value, `${subMenuPrefixCls.value}-${mode.value}`, className, {
225
- [`${subMenuPrefixCls.value}-open`]: open.value,
226
- [`${subMenuPrefixCls.value}-active`]: mergedActive.value,
227
- [`${subMenuPrefixCls.value}-selected`]: childrenSelected.value,
228
- [`${subMenuPrefixCls.value}-disabled`]: mergedDisabled.value
229
- }),
230
- "onMouseenter": onInternalMouseEnter,
231
- "onMouseleave": onInternalMouseLeave
232
- }), {
233
- default: () => [titleNode, !overflowDisabled.value && createVNode(InlineSubMenuList, {
234
- "id": popupId,
235
- "open": open.value,
236
- "keyPath": validConnectedPath.value
237
- }, _isSlot(children) ? children : {
238
- default: () => [children]
239
- })]
240
- });
241
- if (_internalRenderSubMenuItem) {
242
- listNode = _internalRenderSubMenuItem(listNode, props, {
243
- selected: childrenSelected.value,
244
- active: mergedActive.value,
245
- open: open.value,
246
- disabled: mergedDisabled.value
247
- });
248
- }
249
- return listNode;
250
- };
19
+ var InternalSubMenu = /* @__PURE__ */ defineComponent((props, { slots, attrs }) => {
20
+ const domDataId = useMenuId(computed(() => props?.eventKey || ""));
21
+ const menuContext = useMenuContext();
22
+ const { _internalRenderSubMenuItem } = usePrivateContext();
23
+ const pathUserContext = usePathUserContext();
24
+ const connectedPath = useFullPath();
25
+ const validConnectedPath = computed(() => connectedPath.value.filter((k) => k !== void 0));
26
+ const prefixCls = computed(() => menuContext?.value?.prefixCls || "vc-menu");
27
+ const mode = computed(() => menuContext?.value?.mode || "vertical");
28
+ const openKeys = computed(() => menuContext?.value?.openKeys || []);
29
+ const contextDisabled = computed(() => menuContext?.value?.disabled);
30
+ const overflowDisabled = computed(() => menuContext?.value?.overflowDisabled);
31
+ const activeKey = computed(() => menuContext?.value?.activeKey);
32
+ const selectedKeys = computed(() => menuContext?.value?.selectedKeys || []);
33
+ const contextExpandIcon = computed(() => menuContext?.value?.expandIcon);
34
+ const contextPopupRender = computed(() => menuContext?.value?.popupRender);
35
+ const onOpenChange = (key, open$1) => {
36
+ menuContext?.value?.onOpenChange?.(key, open$1);
37
+ };
38
+ const onActive = (key) => {
39
+ menuContext?.value?.onActive?.(key);
40
+ };
41
+ const subMenuPrefixCls = computed(() => `${prefixCls.value}-submenu`);
42
+ const mergedDisabled = computed(() => !!(contextDisabled.value || props?.disabled));
43
+ if (process.env.NODE_ENV !== "production" && props?.warnKey) warning$1(false, "SubMenu should not leave undefined `key`.");
44
+ const mergedExpandIcon = computed(() => props?.expandIcon ?? contextExpandIcon.value);
45
+ const originOpen = computed(() => {
46
+ const key = props?.eventKey;
47
+ return key ? openKeys.value.includes(key) : false;
48
+ });
49
+ const open = computed(() => !overflowDisabled.value && originOpen.value);
50
+ const childrenSelected = computed(() => {
51
+ const key = props?.eventKey;
52
+ return key ? pathUserContext.isSubPathKey(selectedKeys.value, key) : false;
53
+ });
54
+ const { active,...activeProps } = useActive(computed(() => props?.eventKey || ""), mergedDisabled, (e) => props?.onTitleMouseEnter?.(e), (e) => props?.onTitleMouseLeave?.(e));
55
+ const childrenActive = ref(false);
56
+ const triggerChildrenActive = (newActive) => {
57
+ if (!mergedDisabled.value) childrenActive.value = newActive;
58
+ };
59
+ const onInternalMouseEnter = (domEvent) => {
60
+ triggerChildrenActive(true);
61
+ props?.onMouseEnter?.({
62
+ key: props.eventKey,
63
+ domEvent
64
+ });
65
+ };
66
+ const onInternalMouseLeave = (domEvent) => {
67
+ triggerChildrenActive(false);
68
+ props?.onMouseLeave?.({
69
+ key: props.eventKey,
70
+ domEvent
71
+ });
72
+ };
73
+ const mergedActive = computed(() => {
74
+ if (active.value) return active.value;
75
+ if (mode.value !== "inline") {
76
+ const key = props?.eventKey;
77
+ const currentActiveKey = activeKey.value;
78
+ return childrenActive.value || (key && currentActiveKey ? pathUserContext.isSubPathKey([currentActiveKey], key) : false);
79
+ }
80
+ return false;
81
+ });
82
+ const directionStyle = useDirectionStyle(computed(() => connectedPath.value.length));
83
+ const onInternalTitleClick = (e) => {
84
+ if (mergedDisabled.value) return;
85
+ const key = props?.eventKey;
86
+ props?.onTitleClick?.({
87
+ key,
88
+ domEvent: e
89
+ });
90
+ if (mode.value === "inline" && key) onOpenChange(key, !originOpen.value);
91
+ };
92
+ const onPopupVisibleChange = (newVisible) => {
93
+ const key = props?.eventKey;
94
+ if (mode.value !== "inline" && key) onOpenChange(key, newVisible);
95
+ };
96
+ const onInternalFocus = () => {
97
+ const key = props?.eventKey;
98
+ if (key) onActive(key);
99
+ };
100
+ const triggerModeRef = ref(mode.value);
101
+ watch(mode, () => {
102
+ if (mode.value !== "inline" && validConnectedPath.value.length > 1) triggerModeRef.value = "vertical";
103
+ else triggerModeRef.value = mode.value;
104
+ }, { immediate: true });
105
+ return () => {
106
+ const { style, title, class: className, popupClassName, popupOffset, popupStyle,...restProps } = props;
107
+ const children = slots.default?.();
108
+ const popupId = domDataId.value && `${domDataId.value}-popup`;
109
+ const expandIconProps = {
110
+ isOpen: open.value,
111
+ isSelected: childrenSelected.value,
112
+ isSubMenu: true,
113
+ disabled: mergedDisabled.value
114
+ };
115
+ const expandIconNode = createVNode(Icon_default, {
116
+ "icon": mode.value !== "horizontal" ? mergedExpandIcon.value : void 0,
117
+ "props": {
118
+ ...props,
119
+ ...expandIconProps
120
+ }
121
+ }, { default: () => [createVNode("i", { "class": `${subMenuPrefixCls.value}-arrow` }, null)] });
122
+ let titleNode = createVNode("div", mergeProps({
123
+ "role": "menuitem",
124
+ "style": directionStyle.value,
125
+ "class": `${subMenuPrefixCls.value}-title`,
126
+ "tabindex": mergedDisabled.value ? void 0 : -1,
127
+ "title": typeof title === "string" ? title : void 0,
128
+ "data-menu-id": overflowDisabled.value && domDataId.value ? void 0 : domDataId.value,
129
+ "aria-expanded": open.value,
130
+ "aria-haspopup": true,
131
+ "aria-controls": popupId,
132
+ "aria-disabled": mergedDisabled.value,
133
+ "onClick": onInternalTitleClick,
134
+ "onFocus": onInternalFocus
135
+ }, activeProps), [title, expandIconNode]);
136
+ const popupContentTriggerMode = triggerModeRef.value;
137
+ const renderPopupContent = () => {
138
+ const originNode = createVNode(MenuContext_default, {
139
+ "classNames": props.classNames,
140
+ "styles": props.styles,
141
+ "mode": popupContentTriggerMode === "horizontal" ? "vertical" : popupContentTriggerMode
142
+ }, { default: () => [createVNode(SubMenuList_default, { "id": popupId }, _isSlot(children) ? children : { default: () => [children] })] });
143
+ const mergedPopupRender = props?.popupRender || contextPopupRender.value;
144
+ if (mergedPopupRender) return mergedPopupRender(originNode, {
145
+ item: props,
146
+ keys: validConnectedPath.value
147
+ });
148
+ return originNode;
149
+ };
150
+ if (!overflowDisabled.value) {
151
+ const triggerMode = triggerModeRef.value;
152
+ const _titleNode = function() {
153
+ return titleNode;
154
+ }();
155
+ titleNode = createVNode(PopupTrigger_default, {
156
+ "mode": triggerMode,
157
+ "prefixCls": subMenuPrefixCls.value,
158
+ "visible": !props?.internalPopupClose && open.value && mode.value !== "inline",
159
+ "popupClassName": popupClassName,
160
+ "popupOffset": popupOffset,
161
+ "popupStyle": popupStyle,
162
+ "popup": renderPopupContent(),
163
+ "disabled": mergedDisabled.value,
164
+ "onVisibleChange": onPopupVisibleChange
165
+ }, _isSlot(titleNode) ? titleNode : { default: () => [_titleNode] });
166
+ }
167
+ let listNode = createVNode(Overflow.Item, mergeProps({ "role": "none" }, attrs, restProps, {
168
+ "component": "li",
169
+ "style": style,
170
+ "class": classNames(subMenuPrefixCls.value, `${subMenuPrefixCls.value}-${mode.value}`, className, {
171
+ [`${subMenuPrefixCls.value}-open`]: open.value,
172
+ [`${subMenuPrefixCls.value}-active`]: mergedActive.value,
173
+ [`${subMenuPrefixCls.value}-selected`]: childrenSelected.value,
174
+ [`${subMenuPrefixCls.value}-disabled`]: mergedDisabled.value
175
+ }),
176
+ "onMouseenter": onInternalMouseEnter,
177
+ "onMouseleave": onInternalMouseLeave
178
+ }), { default: () => [titleNode, !overflowDisabled.value && createVNode(InlineSubMenuList_default, {
179
+ "id": popupId,
180
+ "open": open.value,
181
+ "keyPath": validConnectedPath.value
182
+ }, _isSlot(children) ? children : { default: () => [children] })] });
183
+ if (_internalRenderSubMenuItem) listNode = _internalRenderSubMenuItem(listNode, props, {
184
+ selected: childrenSelected.value,
185
+ active: mergedActive.value,
186
+ open: open.value,
187
+ disabled: mergedDisabled.value
188
+ });
189
+ return listNode;
190
+ };
251
191
  }, {
252
- props: {
253
- classNames: {
254
- type: Object,
255
- required: false,
256
- default: void 0
257
- },
258
- styles: {
259
- type: Object,
260
- required: false,
261
- default: void 0
262
- },
263
- title: {
264
- type: null,
265
- required: false,
266
- default: void 0
267
- },
268
- internalPopupClose: {
269
- type: Boolean,
270
- required: false,
271
- default: void 0
272
- },
273
- eventKey: {
274
- type: String,
275
- required: false,
276
- default: void 0
277
- },
278
- warnKey: {
279
- type: Boolean,
280
- required: false,
281
- default: void 0
282
- },
283
- popupRender: {
284
- type: Function,
285
- required: false,
286
- default: void 0
287
- },
288
- type: {
289
- type: String,
290
- required: false,
291
- default: void 0
292
- },
293
- disabled: {
294
- type: Boolean,
295
- required: false,
296
- default: void 0
297
- },
298
- rootClassName: {
299
- type: String,
300
- required: false,
301
- default: void 0
302
- },
303
- itemIcon: {
304
- type: [String, Number, null, Array, Function, Boolean],
305
- required: false,
306
- skipCheck: true,
307
- default: void 0
308
- },
309
- expandIcon: {
310
- type: [String, Number, null, Array, Function, Boolean],
311
- required: false,
312
- skipCheck: true,
313
- default: void 0
314
- },
315
- onMouseEnter: {
316
- type: Function,
317
- required: false,
318
- default: void 0
319
- },
320
- onMouseLeave: {
321
- type: Function,
322
- required: false,
323
- default: void 0
324
- },
325
- popupClassName: {
326
- type: String,
327
- required: false,
328
- default: void 0
329
- },
330
- popupOffset: {
331
- type: Array,
332
- required: false,
333
- default: void 0
334
- },
335
- popupStyle: {
336
- type: null,
337
- required: false,
338
- default: void 0
339
- },
340
- onClick: {
341
- type: Function,
342
- required: false,
343
- default: void 0
344
- },
345
- onTitleClick: {
346
- type: Function,
347
- required: false,
348
- default: void 0
349
- },
350
- onTitleMouseEnter: {
351
- type: Function,
352
- required: false,
353
- default: void 0
354
- },
355
- onTitleMouseLeave: {
356
- type: Function,
357
- required: false,
358
- default: void 0
359
- },
360
- style: {
361
- type: null,
362
- required: false,
363
- default: void 0
364
- },
365
- class: {
366
- type: String,
367
- required: false,
368
- default: void 0
369
- }
370
- },
371
- name: "InternalSubMenu",
372
- inheritAttrs: false
192
+ props: {
193
+ classNames: {
194
+ type: Object,
195
+ required: false,
196
+ default: void 0
197
+ },
198
+ styles: {
199
+ type: Object,
200
+ required: false,
201
+ default: void 0
202
+ },
203
+ title: {
204
+ type: null,
205
+ required: false,
206
+ default: void 0
207
+ },
208
+ internalPopupClose: {
209
+ type: Boolean,
210
+ required: false,
211
+ default: void 0
212
+ },
213
+ eventKey: {
214
+ type: String,
215
+ required: false,
216
+ default: void 0
217
+ },
218
+ warnKey: {
219
+ type: Boolean,
220
+ required: false,
221
+ default: void 0
222
+ },
223
+ popupRender: {
224
+ type: Function,
225
+ required: false,
226
+ default: void 0
227
+ },
228
+ type: {
229
+ type: String,
230
+ required: false,
231
+ default: void 0
232
+ },
233
+ disabled: {
234
+ type: Boolean,
235
+ required: false,
236
+ default: void 0
237
+ },
238
+ rootClassName: {
239
+ type: String,
240
+ required: false,
241
+ default: void 0
242
+ },
243
+ itemIcon: {
244
+ type: [
245
+ String,
246
+ Number,
247
+ null,
248
+ Array,
249
+ Function,
250
+ Boolean
251
+ ],
252
+ required: false,
253
+ skipCheck: true,
254
+ default: void 0
255
+ },
256
+ expandIcon: {
257
+ type: [
258
+ String,
259
+ Number,
260
+ null,
261
+ Array,
262
+ Function,
263
+ Boolean
264
+ ],
265
+ required: false,
266
+ skipCheck: true,
267
+ default: void 0
268
+ },
269
+ onMouseEnter: {
270
+ type: Function,
271
+ required: false,
272
+ default: void 0
273
+ },
274
+ onMouseLeave: {
275
+ type: Function,
276
+ required: false,
277
+ default: void 0
278
+ },
279
+ popupClassName: {
280
+ type: String,
281
+ required: false,
282
+ default: void 0
283
+ },
284
+ popupOffset: {
285
+ type: Array,
286
+ required: false,
287
+ default: void 0
288
+ },
289
+ popupStyle: {
290
+ type: null,
291
+ required: false,
292
+ default: void 0
293
+ },
294
+ onClick: {
295
+ type: Function,
296
+ required: false,
297
+ default: void 0
298
+ },
299
+ onTitleClick: {
300
+ type: Function,
301
+ required: false,
302
+ default: void 0
303
+ },
304
+ onTitleMouseEnter: {
305
+ type: Function,
306
+ required: false,
307
+ default: void 0
308
+ },
309
+ onTitleMouseLeave: {
310
+ type: Function,
311
+ required: false,
312
+ default: void 0
313
+ },
314
+ style: {
315
+ type: null,
316
+ required: false,
317
+ default: void 0
318
+ },
319
+ class: {
320
+ type: String,
321
+ required: false,
322
+ default: void 0
323
+ }
324
+ },
325
+ name: "InternalSubMenu",
326
+ inheritAttrs: false
373
327
  });
374
- const SubMenu = /* @__PURE__ */ defineComponent((props, {
375
- slots
376
- }) => {
377
- const eventKeyRef = computed(() => props?.eventKey);
378
- const connectedKeyPath = useFullPath(eventKeyRef);
379
- const measure = useMeasure();
380
- const validKeyPath = computed(() => connectedKeyPath.value.filter((k) => k !== void 0));
381
- watch(
382
- [validKeyPath, () => props.eventKey],
383
- () => {
384
- if (measure && props.eventKey) {
385
- measure.registerPath(props.eventKey, validKeyPath.value);
386
- }
387
- }
388
- // { immediate: true, flush: 'post' },
389
- );
390
- return () => {
391
- const children = slots.default?.();
392
- const childList = parseChildren(children, validKeyPath.value);
393
- let renderNode;
394
- if (measure) {
395
- renderNode = childList;
396
- } else {
397
- renderNode = createVNode(InternalSubMenu, props, _isSlot(childList) ? childList : {
398
- default: () => [childList]
399
- });
400
- }
401
- return createVNode(PathTrackerContext.Provider, {
402
- "value": validKeyPath.value
403
- }, _isSlot(renderNode) ? renderNode : {
404
- default: () => [renderNode]
405
- });
406
- };
328
+ var SubMenu_default = /* @__PURE__ */ defineComponent((props, { slots }) => {
329
+ const connectedKeyPath = useFullPath(computed(() => props?.eventKey));
330
+ const measure = useMeasure();
331
+ const validKeyPath = computed(() => connectedKeyPath.value.filter((k) => k !== void 0));
332
+ watch([validKeyPath, () => props.eventKey], () => {
333
+ if (measure && props.eventKey) measure.registerPath(props.eventKey, validKeyPath.value);
334
+ });
335
+ return () => {
336
+ const children = slots.default?.();
337
+ const childList = parseChildren(children, validKeyPath.value);
338
+ let renderNode;
339
+ if (measure) renderNode = childList;
340
+ else renderNode = createVNode(InternalSubMenu, props, _isSlot(childList) ? childList : { default: () => [childList] });
341
+ return createVNode(PathTrackerContext.Provider, { "value": validKeyPath.value }, _isSlot(renderNode) ? renderNode : { default: () => [renderNode] });
342
+ };
407
343
  }, {
408
- props: {
409
- classNames: {
410
- type: Object,
411
- required: false,
412
- default: void 0
413
- },
414
- styles: {
415
- type: Object,
416
- required: false,
417
- default: void 0
418
- },
419
- title: {
420
- type: null,
421
- required: false,
422
- default: void 0
423
- },
424
- internalPopupClose: {
425
- type: Boolean,
426
- required: false,
427
- default: void 0
428
- },
429
- eventKey: {
430
- type: String,
431
- required: false,
432
- default: void 0
433
- },
434
- warnKey: {
435
- type: Boolean,
436
- required: false,
437
- default: void 0
438
- },
439
- popupRender: {
440
- type: Function,
441
- required: false,
442
- default: void 0
443
- },
444
- type: {
445
- type: String,
446
- required: false,
447
- default: void 0
448
- },
449
- disabled: {
450
- type: Boolean,
451
- required: false,
452
- default: void 0
453
- },
454
- rootClassName: {
455
- type: String,
456
- required: false,
457
- default: void 0
458
- },
459
- itemIcon: {
460
- type: [String, Number, null, Array, Function, Boolean],
461
- required: false,
462
- skipCheck: true,
463
- default: void 0
464
- },
465
- expandIcon: {
466
- type: [String, Number, null, Array, Function, Boolean],
467
- required: false,
468
- skipCheck: true,
469
- default: void 0
470
- },
471
- onMouseEnter: {
472
- type: Function,
473
- required: false,
474
- default: void 0
475
- },
476
- onMouseLeave: {
477
- type: Function,
478
- required: false,
479
- default: void 0
480
- },
481
- popupClassName: {
482
- type: String,
483
- required: false,
484
- default: void 0
485
- },
486
- popupOffset: {
487
- type: Array,
488
- required: false,
489
- default: void 0
490
- },
491
- popupStyle: {
492
- type: null,
493
- required: false,
494
- default: void 0
495
- },
496
- onClick: {
497
- type: Function,
498
- required: false,
499
- default: void 0
500
- },
501
- onTitleClick: {
502
- type: Function,
503
- required: false,
504
- default: void 0
505
- },
506
- onTitleMouseEnter: {
507
- type: Function,
508
- required: false,
509
- default: void 0
510
- },
511
- onTitleMouseLeave: {
512
- type: Function,
513
- required: false,
514
- default: void 0
515
- },
516
- style: {
517
- type: null,
518
- required: false,
519
- default: void 0
520
- },
521
- class: {
522
- type: String,
523
- required: false,
524
- default: void 0
525
- }
526
- },
527
- name: "SubMenu",
528
- inheritAttrs: false
344
+ props: {
345
+ classNames: {
346
+ type: Object,
347
+ required: false,
348
+ default: void 0
349
+ },
350
+ styles: {
351
+ type: Object,
352
+ required: false,
353
+ default: void 0
354
+ },
355
+ title: {
356
+ type: null,
357
+ required: false,
358
+ default: void 0
359
+ },
360
+ internalPopupClose: {
361
+ type: Boolean,
362
+ required: false,
363
+ default: void 0
364
+ },
365
+ eventKey: {
366
+ type: String,
367
+ required: false,
368
+ default: void 0
369
+ },
370
+ warnKey: {
371
+ type: Boolean,
372
+ required: false,
373
+ default: void 0
374
+ },
375
+ popupRender: {
376
+ type: Function,
377
+ required: false,
378
+ default: void 0
379
+ },
380
+ type: {
381
+ type: String,
382
+ required: false,
383
+ default: void 0
384
+ },
385
+ disabled: {
386
+ type: Boolean,
387
+ required: false,
388
+ default: void 0
389
+ },
390
+ rootClassName: {
391
+ type: String,
392
+ required: false,
393
+ default: void 0
394
+ },
395
+ itemIcon: {
396
+ type: [
397
+ String,
398
+ Number,
399
+ null,
400
+ Array,
401
+ Function,
402
+ Boolean
403
+ ],
404
+ required: false,
405
+ skipCheck: true,
406
+ default: void 0
407
+ },
408
+ expandIcon: {
409
+ type: [
410
+ String,
411
+ Number,
412
+ null,
413
+ Array,
414
+ Function,
415
+ Boolean
416
+ ],
417
+ required: false,
418
+ skipCheck: true,
419
+ default: void 0
420
+ },
421
+ onMouseEnter: {
422
+ type: Function,
423
+ required: false,
424
+ default: void 0
425
+ },
426
+ onMouseLeave: {
427
+ type: Function,
428
+ required: false,
429
+ default: void 0
430
+ },
431
+ popupClassName: {
432
+ type: String,
433
+ required: false,
434
+ default: void 0
435
+ },
436
+ popupOffset: {
437
+ type: Array,
438
+ required: false,
439
+ default: void 0
440
+ },
441
+ popupStyle: {
442
+ type: null,
443
+ required: false,
444
+ default: void 0
445
+ },
446
+ onClick: {
447
+ type: Function,
448
+ required: false,
449
+ default: void 0
450
+ },
451
+ onTitleClick: {
452
+ type: Function,
453
+ required: false,
454
+ default: void 0
455
+ },
456
+ onTitleMouseEnter: {
457
+ type: Function,
458
+ required: false,
459
+ default: void 0
460
+ },
461
+ onTitleMouseLeave: {
462
+ type: Function,
463
+ required: false,
464
+ default: void 0
465
+ },
466
+ style: {
467
+ type: null,
468
+ required: false,
469
+ default: void 0
470
+ },
471
+ class: {
472
+ type: String,
473
+ required: false,
474
+ default: void 0
475
+ }
476
+ },
477
+ name: "SubMenu",
478
+ inheritAttrs: false
529
479
  });
530
- export {
531
- SubMenu as default
532
- };
480
+ export { SubMenu_default as default };