@maas/vue-equipment 0.30.0 → 0.30.2
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/nuxt/module.json +1 -1
- package/dist/nuxt/module.mjs +2 -2
- package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue +13 -8
- package/dist/plugins/MagicMenu/index.mjs +4 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +69 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +21 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +61 -16
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +0 -2
- package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +2 -2
- package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +1 -5
- package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +84 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +29 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +25 -31
- package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +26 -0
- package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +2 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.d.ts +2 -1
- package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +6 -1
- package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.d.ts +15 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +70 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +21 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +212 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.mjs +2 -2
- package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +4 -4
- package/dist/plugins/MagicMenu/src/composables/private/useMenuRemote.d.ts +13 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuRemote.mjs +23 -0
- package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -3
- package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.mjs +2 -180
- package/dist/plugins/MagicMenu/src/composables/private/useMenuView.d.ts +4 -3
- package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +28 -15
- package/dist/plugins/MagicMenu/src/composables/useMagicMenu.d.ts +8 -1
- package/dist/plugins/MagicMenu/src/composables/useMagicMenu.mjs +10 -2
- package/dist/plugins/MagicMenu/src/symbols/index.d.ts +3 -1
- package/dist/plugins/MagicMenu/src/symbols/index.mjs +5 -1
- package/dist/plugins/MagicMenu/src/types/index.d.ts +9 -6
- package/dist/plugins/MagicMenu/src/utils/defaultOptions.mjs +3 -3
- package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
reactive,
|
|
3
|
+
computed,
|
|
4
|
+
toValue
|
|
5
|
+
} from "vue";
|
|
2
6
|
import { useMenuState } from "./useMenuState.mjs";
|
|
3
7
|
export function useMenuView(instanceId) {
|
|
4
8
|
const { initializeState } = useMenuState(instanceId);
|
|
@@ -9,19 +13,17 @@ export function useMenuView(instanceId) {
|
|
|
9
13
|
)
|
|
10
14
|
);
|
|
11
15
|
function createView(args) {
|
|
12
|
-
const { id, parent } = args;
|
|
16
|
+
const { id, parent, placement } = args;
|
|
13
17
|
if (parent.views.length === 0) {
|
|
14
18
|
parent.views.push(toValue(instanceId));
|
|
15
19
|
}
|
|
16
20
|
const view = {
|
|
17
21
|
id,
|
|
18
22
|
parent,
|
|
19
|
-
children: {
|
|
20
|
-
trigger: void 0,
|
|
21
|
-
content: void 0
|
|
22
|
-
},
|
|
23
23
|
active: false,
|
|
24
|
-
items: []
|
|
24
|
+
items: [],
|
|
25
|
+
channels: [],
|
|
26
|
+
placement
|
|
25
27
|
};
|
|
26
28
|
return reactive(view);
|
|
27
29
|
}
|
|
@@ -67,17 +69,23 @@ export function useMenuView(instanceId) {
|
|
|
67
69
|
const parentId = view?.parent.views[view.parent.views.length - 1];
|
|
68
70
|
return getView(parentId ?? "");
|
|
69
71
|
}
|
|
70
|
-
function
|
|
71
|
-
const
|
|
72
|
+
function getUnrelatedViews(id) {
|
|
73
|
+
const argView = getView(id);
|
|
72
74
|
return state.views?.filter(
|
|
73
|
-
(view) => !
|
|
75
|
+
(view) => !view.parent.views.includes(id) && !argView?.parent.views.includes(view.id) && view.id !== id
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
function getDescendingViews(id) {
|
|
79
|
+
const argView = getView(id);
|
|
80
|
+
return state.views?.filter(
|
|
81
|
+
(view) => view.id !== id && !argView?.parent.views.includes(view.id)
|
|
74
82
|
);
|
|
75
83
|
}
|
|
76
84
|
function selectView(id) {
|
|
77
85
|
const instance = getView(id);
|
|
78
86
|
if (instance) {
|
|
79
87
|
instance.active = true;
|
|
80
|
-
|
|
88
|
+
unselectUnrelatedViews(id);
|
|
81
89
|
}
|
|
82
90
|
}
|
|
83
91
|
function unselectView(id) {
|
|
@@ -86,9 +94,13 @@ export function useMenuView(instanceId) {
|
|
|
86
94
|
instance.active = false;
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
|
-
function
|
|
90
|
-
const
|
|
91
|
-
|
|
97
|
+
function unselectUnrelatedViews(id) {
|
|
98
|
+
const unrelatedViews = getUnrelatedViews(id);
|
|
99
|
+
unrelatedViews.forEach((view) => view.active = false);
|
|
100
|
+
}
|
|
101
|
+
function unselectDescendingViews(id) {
|
|
102
|
+
const descendingViews = getDescendingViews(id);
|
|
103
|
+
descendingViews.forEach((view) => view.active = false);
|
|
92
104
|
}
|
|
93
105
|
function unselectAllViews() {
|
|
94
106
|
state.views?.forEach((view) => {
|
|
@@ -108,7 +120,8 @@ export function useMenuView(instanceId) {
|
|
|
108
120
|
getParentView,
|
|
109
121
|
selectView,
|
|
110
122
|
unselectView,
|
|
111
|
-
|
|
123
|
+
unselectUnrelatedViews,
|
|
124
|
+
unselectDescendingViews,
|
|
112
125
|
unselectAllViews
|
|
113
126
|
};
|
|
114
127
|
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { type MaybeRef } from 'vue';
|
|
2
|
-
|
|
2
|
+
interface UseMagicMenuArgs {
|
|
3
|
+
instanceId: MaybeRef<string>;
|
|
4
|
+
viewId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function useMagicMenu(args: UseMagicMenuArgs): {
|
|
3
7
|
selectView: (id: string) => void;
|
|
4
8
|
unselectView: (id: string) => void;
|
|
9
|
+
selectChannel: (id: string) => void;
|
|
10
|
+
unselectChannel: (id: string) => void;
|
|
5
11
|
};
|
|
6
12
|
export type UseMagicMenuReturn = ReturnType<typeof useMagicMenu>;
|
|
13
|
+
export {};
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { useMenuView } from "./private/useMenuView.mjs";
|
|
2
|
-
|
|
2
|
+
import { useMenuChannel } from "./private/useMenuChannel.mjs";
|
|
3
|
+
export function useMagicMenu(args) {
|
|
4
|
+
const { instanceId, viewId } = args;
|
|
3
5
|
const { selectView, unselectView } = useMenuView(instanceId);
|
|
6
|
+
const { selectChannel, unselectChannel } = useMenuChannel({
|
|
7
|
+
instanceId,
|
|
8
|
+
viewId
|
|
9
|
+
});
|
|
4
10
|
return {
|
|
5
11
|
selectView,
|
|
6
|
-
unselectView
|
|
12
|
+
unselectView,
|
|
13
|
+
selectChannel,
|
|
14
|
+
unselectChannel
|
|
7
15
|
};
|
|
8
16
|
}
|
|
@@ -6,4 +6,6 @@ declare const MagicMenuViewActive: InjectionKey<boolean>;
|
|
|
6
6
|
declare const MagicMenuContentId: InjectionKey<string>;
|
|
7
7
|
declare const MagicMenuItemId: InjectionKey<string>;
|
|
8
8
|
declare const MagicMenuItemActive: InjectionKey<boolean>;
|
|
9
|
-
|
|
9
|
+
declare const MagicMenuChannelId: InjectionKey<string>;
|
|
10
|
+
declare const MagicMenuChannelActive: InjectionKey<boolean>;
|
|
11
|
+
export { MagicMenuInstanceId, MagicMenuParentTree, MagicMenuViewId, MagicMenuViewActive, MagicMenuContentId, MagicMenuItemId, MagicMenuItemActive, MagicMenuChannelId, MagicMenuChannelActive, };
|
|
@@ -5,6 +5,8 @@ const MagicMenuViewActive = Symbol();
|
|
|
5
5
|
const MagicMenuContentId = Symbol();
|
|
6
6
|
const MagicMenuItemId = Symbol();
|
|
7
7
|
const MagicMenuItemActive = Symbol();
|
|
8
|
+
const MagicMenuChannelId = Symbol();
|
|
9
|
+
const MagicMenuChannelActive = Symbol();
|
|
8
10
|
export {
|
|
9
11
|
MagicMenuInstanceId,
|
|
10
12
|
MagicMenuParentTree,
|
|
@@ -12,5 +14,7 @@ export {
|
|
|
12
14
|
MagicMenuViewActive,
|
|
13
15
|
MagicMenuContentId,
|
|
14
16
|
MagicMenuItemId,
|
|
15
|
-
MagicMenuItemActive
|
|
17
|
+
MagicMenuItemActive,
|
|
18
|
+
MagicMenuChannelId,
|
|
19
|
+
MagicMenuChannelActive
|
|
16
20
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { Placement } from '@floating-ui/vue';
|
|
1
2
|
import type { RequireAllNested } from '@maas/vue-equipment/utils';
|
|
2
|
-
type MenuMode = 'dropdown' | 'menubar' | 'context';
|
|
3
|
+
type MenuMode = 'dropdown' | 'menubar' | 'context' | 'navigation';
|
|
3
4
|
export interface MagicMenuOptions {
|
|
4
5
|
mode?: MenuMode;
|
|
5
6
|
transition?: {
|
|
@@ -8,7 +9,7 @@ export interface MagicMenuOptions {
|
|
|
8
9
|
nested?: string;
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
|
-
export type Interaction = 'click' | 'mouseenter' | '
|
|
12
|
+
export type Interaction = 'click' | 'mouseenter' | 'right-click';
|
|
12
13
|
export type Coordinates = {
|
|
13
14
|
x: number;
|
|
14
15
|
y: number;
|
|
@@ -18,18 +19,20 @@ export interface MenuItem {
|
|
|
18
19
|
active: boolean;
|
|
19
20
|
disabled: boolean;
|
|
20
21
|
}
|
|
22
|
+
export interface MenuChannel {
|
|
23
|
+
id: string;
|
|
24
|
+
active: boolean;
|
|
25
|
+
}
|
|
21
26
|
export interface MenuView {
|
|
22
27
|
id: string;
|
|
23
28
|
active: boolean;
|
|
24
29
|
items: MenuItem[];
|
|
30
|
+
channels: MenuChannel[];
|
|
25
31
|
parent: {
|
|
26
32
|
item: string;
|
|
27
33
|
views: string[];
|
|
28
34
|
};
|
|
29
|
-
|
|
30
|
-
trigger?: HTMLElement;
|
|
31
|
-
content?: HTMLElement;
|
|
32
|
-
};
|
|
35
|
+
placement: Placement;
|
|
33
36
|
click?: Coordinates;
|
|
34
37
|
}
|
|
35
38
|
export interface MenuState {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const defaultOptions = {
|
|
2
2
|
mode: "menubar",
|
|
3
3
|
transition: {
|
|
4
|
-
initial: "magic-menu-
|
|
5
|
-
final: "magic-menu-
|
|
6
|
-
nested: "magic-menu-
|
|
4
|
+
initial: "magic-menu-content--initial",
|
|
5
|
+
final: "magic-menu-content--final",
|
|
6
|
+
nested: "magic-menu-content--nested"
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
9
|
export { defaultOptions };
|
|
@@ -24,7 +24,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
24
24
|
loop: boolean;
|
|
25
25
|
srcType: MagicPlayerSourceType;
|
|
26
26
|
autoplay: boolean;
|
|
27
|
-
preload: "metadata" | "
|
|
27
|
+
preload: "metadata" | "none" | "auto";
|
|
28
28
|
}, {}>, {
|
|
29
29
|
default?(_: {}): any;
|
|
30
30
|
}>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maas/vue-equipment",
|
|
3
3
|
"description": "A magic collection of Vue composables, plugins, components and directives",
|
|
4
|
-
"version": "0.30.
|
|
4
|
+
"version": "0.30.2",
|
|
5
5
|
"author": "Robin Scholz <https://github.com/robinscholz>, Christoph Jeworutzki <https://github.com/ChristophJeworutzki>",
|
|
6
6
|
"devDependencies": {
|
|
7
7
|
"@antfu/ni": "^0.21.12",
|