@vc-shell/framework 1.1.0-alpha.6 → 1.1.0-alpha.7
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/core/composables/useGlobalSearch/index.ts +4 -4
- package/core/constants/index.ts +2 -0
- package/core/plugins/modularity/index.ts +1 -1
- package/core/services/menu-service.ts +292 -28
- package/core/types/index.ts +13 -0
- package/dist/core/composables/useGlobalSearch/index.d.ts +2 -2
- package/dist/core/constants/index.d.ts +1 -0
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/services/menu-service.d.ts +36 -3
- package/dist/core/services/menu-service.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +13 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/framework.js +198 -197
- package/dist/{index-LjqdX6jw.js → index-4fNoXD3u.js} +1 -1
- package/dist/{index-CyuFXG83.js → index-7YHBATKO.js} +1 -1
- package/dist/{index-D1rpRTKf.js → index-7gQRbSrG.js} +1 -1
- package/dist/{index-B-nvqNbp.js → index-B1NfXGpu.js} +1 -1
- package/dist/{index-DZAq0B3U.js → index-B42ra4oQ.js} +21078 -21001
- package/dist/{index-EDF1MDtU.js → index-Bixm_Atu.js} +1 -1
- package/dist/{index-DvGVm1rK.js → index-C9NLyptv.js} +1 -1
- package/dist/{index-C7P-aBjd.js → index-CPjPhNQr.js} +1 -1
- package/dist/{index-CfyFpaKq.js → index-CR62_U0-.js} +1 -1
- package/dist/{index-DLxTAT7x.js → index-DHUS6fMi.js} +1 -1
- package/dist/{index-BXlxP2d2.js → index-DKMXMXmO.js} +1 -1
- package/dist/{index-Ci23AX3j.js → index-DxhPupsj.js} +1 -1
- package/dist/{index-DtkJ7xTB.js → index-DyDl-e3b.js} +1 -1
- package/dist/{index-DOVhosAY.js → index-IdAZC2W6.js} +1 -1
- package/dist/{index-BQF2-UMe.js → index-QiYxGOfR.js} +1 -1
- package/dist/{index-CO_2IshF.js → index-qjW_Kc_I.js} +1 -1
- package/dist/{index-3ySdd-mG.js → index-tHx2asQS.js} +1 -1
- package/dist/index.css +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -1
- package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarOverlay.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
- package/dist/ui/composables/useVisibleElements.d.ts.map +1 -1
- package/package.json +4 -4
- package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +2 -2
- package/shared/components/blade-navigation/types/index.ts +117 -117
- package/shared/components/draggable-dashboard/DraggableDashboard.vue +2 -5
- package/shared/components/draggable-dashboard/_internal/DashboardWidget.vue +16 -32
- package/shared/components/notification-dropdown/notification-dropdown.vue +11 -1
- package/shared/components/sidebar/sidebar.vue +36 -34
- package/shared/pages/LoginPage/components/login/Login.vue +0 -2
- package/ui/components/atoms/vc-badge/vc-badge.vue +26 -10
- package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +2 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue +31 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarOverlay.vue +15 -13
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +26 -15
- package/ui/components/organisms/vc-app/vc-app.vue +14 -2
- package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +4 -5
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue +2 -2
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/mobile/vc-blade-toolbar-mobile.vue +1 -1
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +0 -3
- package/ui/components/organisms/vc-blade/vc-blade.vue +7 -2
- package/ui/components/organisms/vc-login-form/vc-login-form.vue +99 -99
- package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +5 -5
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue +1 -0
- package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +40 -28
- package/ui/components/organisms/vc-table/_internal/vc-table-header/vc-table-header.vue +1 -1
- package/ui/components/organisms/vc-table/vc-table.vue +5 -4
- package/ui/composables/useVisibleElements.ts +2 -0
|
@@ -4,19 +4,19 @@ import { GlobalSearchKey } from "../../../injection-keys";
|
|
|
4
4
|
export interface GlobalSearchState {
|
|
5
5
|
isSearchVisible: Ref<Record<string, boolean>>;
|
|
6
6
|
searchQuery: Ref<Record<string, string>>;
|
|
7
|
-
toggleSearch: (bladeId:
|
|
8
|
-
setSearchQuery: (bladeId:
|
|
7
|
+
toggleSearch: (bladeId: string) => void;
|
|
8
|
+
setSearchQuery: (bladeId: string, query: string) => void;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function createGlobalSearch() {
|
|
12
12
|
const isSearchVisible = ref<Record<string, boolean>>({});
|
|
13
13
|
const searchQuery = ref<Record<string, string>>({});
|
|
14
14
|
|
|
15
|
-
const toggleSearch = (bladeId:
|
|
15
|
+
const toggleSearch = (bladeId: string) => {
|
|
16
16
|
isSearchVisible.value[bladeId] = !isSearchVisible.value[bladeId];
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
const setSearchQuery = (bladeId:
|
|
19
|
+
const setSearchQuery = (bladeId: string, query: string) => {
|
|
20
20
|
searchQuery.value[bladeId] = query;
|
|
21
21
|
};
|
|
22
22
|
|
package/core/constants/index.ts
CHANGED
|
@@ -205,7 +205,7 @@ export function createAppModule(
|
|
|
205
205
|
icon: resolveComponent(page.menuItem.icon as string),
|
|
206
206
|
url: page.url,
|
|
207
207
|
routeId: routeName,
|
|
208
|
-
permissions: page.permissions,
|
|
208
|
+
permissions: page.permissions || page.menuItem.permissions,
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
}
|
|
@@ -1,23 +1,85 @@
|
|
|
1
|
-
import { computed, ComputedRef, ref,
|
|
1
|
+
import { computed, ComputedRef, ref, type Ref, type Component } from "vue";
|
|
2
2
|
import * as _ from "lodash-es";
|
|
3
3
|
import { i18n } from "./../plugins/i18n";
|
|
4
|
-
import type { MenuItem } from "../types";
|
|
4
|
+
import type { MenuItem, MenuItemConfig } from "../types";
|
|
5
5
|
import { createUnrefFn, useArrayFind } from "@vueuse/core";
|
|
6
|
+
import { usePermissions } from "../composables";
|
|
6
7
|
|
|
7
8
|
// Global state for pre-registering menu items
|
|
8
9
|
const preregisteredMenuItems: Ref<MenuItem[]> = ref([]);
|
|
9
10
|
|
|
11
|
+
// Separate interface for creating a group where id can be optional
|
|
12
|
+
export interface MenuItemConfigCreateOptions extends Omit<MenuItemConfig, "id"> {
|
|
13
|
+
id?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for creating a group together with a menu item
|
|
18
|
+
*/
|
|
19
|
+
export interface MenuItemWithGroupConfig extends Omit<MenuItemConfig, "group" | "groupId" | "groupIcon"> {
|
|
20
|
+
/**
|
|
21
|
+
* Required group configuration for automatically creating a group.
|
|
22
|
+
* The item will be added to this group.
|
|
23
|
+
*/
|
|
24
|
+
groupConfig: MenuItemConfigCreateOptions;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Global state for menu groups
|
|
28
|
+
const MenuItemConfigs: Ref<Record<string, MenuItemConfig>> = ref({});
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Helper function to create a menu item with group in one step
|
|
32
|
+
* @param item - The menu item properties
|
|
33
|
+
* @param group - The group properties
|
|
34
|
+
* @param inGroupPriority - Optional priority within the group, defaults to item.priority
|
|
35
|
+
* @returns A menu item configuration with embedded group
|
|
36
|
+
*/
|
|
37
|
+
export function createMenuItemWithGroup(
|
|
38
|
+
item: Omit<MenuItemConfig, "group" | "groupId">,
|
|
39
|
+
group: MenuItemConfigCreateOptions,
|
|
40
|
+
inGroupPriority?: number,
|
|
41
|
+
): MenuItemWithGroupConfig {
|
|
42
|
+
return {
|
|
43
|
+
...item,
|
|
44
|
+
// Use explicitly passed inGroupPriority or item.priority as a fallback
|
|
45
|
+
inGroupPriority: inGroupPriority ?? item.priority,
|
|
46
|
+
groupConfig: {
|
|
47
|
+
id: group.id || _.uniqueId("group_"),
|
|
48
|
+
...group,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
10
53
|
/**
|
|
11
54
|
* Registers a menu item before the service is initialized
|
|
12
55
|
*/
|
|
13
|
-
export function addMenuItem(item: MenuItem): void {
|
|
14
|
-
|
|
56
|
+
export function addMenuItem(item: MenuItem | MenuItemWithGroupConfig): void {
|
|
57
|
+
// We need to convert the type because the external function can accept MenuItemWithGroupConfig,
|
|
58
|
+
// but preregisteredMenuItems expects MenuItem
|
|
59
|
+
if ("groupConfig" in item) {
|
|
60
|
+
// Conversion will be performed in the addMenuItem function inside createMenuService
|
|
61
|
+
preregisteredMenuItems.value.push(item as unknown as MenuItem);
|
|
62
|
+
} else {
|
|
63
|
+
preregisteredMenuItems.value.push(item);
|
|
64
|
+
}
|
|
15
65
|
}
|
|
16
66
|
|
|
17
67
|
export interface MenuService {
|
|
18
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Adds a menu item to the menu.
|
|
70
|
+
* If the item contains a `groupConfig` property, the group will be created automatically
|
|
71
|
+
* if it doesn't exist yet.
|
|
72
|
+
* @param item - The menu item to add or a config with both item and group
|
|
73
|
+
*/
|
|
74
|
+
addMenuItem: (item: MenuItem | MenuItemWithGroupConfig) => void;
|
|
19
75
|
menuItems: Ref<MenuItem[]>;
|
|
20
76
|
removeMenuItem: (item: MenuItem) => void;
|
|
77
|
+
updateMenuItem: (id: string, updatedItem: Partial<MenuItem>) => boolean;
|
|
78
|
+
getMenuItem: (id: string) => MenuItem | undefined;
|
|
79
|
+
createMenuItemConfig: (group: MenuItemConfigCreateOptions) => string;
|
|
80
|
+
updateMenuItemConfig: (id: string, group: Partial<MenuItemConfig>) => boolean;
|
|
81
|
+
removeMenuItemConfig: (id: string) => boolean;
|
|
82
|
+
getMenuItemConfigs: () => Record<string, MenuItemConfig>;
|
|
21
83
|
}
|
|
22
84
|
|
|
23
85
|
// Default priority values
|
|
@@ -34,13 +96,44 @@ const rawMenu: Ref<MenuItem[]> = ref([]);
|
|
|
34
96
|
*/
|
|
35
97
|
export function createMenuService(): MenuService {
|
|
36
98
|
const { t } = i18n.global;
|
|
99
|
+
const { hasAccess } = usePermissions();
|
|
37
100
|
|
|
38
101
|
/**
|
|
39
102
|
* Add a new menu item to the raw menu and rebuild the menu structure
|
|
40
|
-
* @param item - The menu item to add
|
|
103
|
+
* @param item - The menu item to add, or a menu item with group configuration
|
|
41
104
|
*/
|
|
42
|
-
function addMenuItem(item: MenuItem): void {
|
|
43
|
-
|
|
105
|
+
function addMenuItem(item: MenuItem | MenuItemWithGroupConfig): void {
|
|
106
|
+
// Check if item contains group configuration
|
|
107
|
+
if ("groupConfig" in item && item.groupConfig) {
|
|
108
|
+
// Either use existing group or create a new one
|
|
109
|
+
let groupId: string;
|
|
110
|
+
const groupConfig = item.groupConfig;
|
|
111
|
+
|
|
112
|
+
// If the group already exists with the same id, use that
|
|
113
|
+
if (groupConfig.id && MenuItemConfigs.value[groupConfig.id]) {
|
|
114
|
+
groupId = groupConfig.id;
|
|
115
|
+
// Optionally update the group with any new properties
|
|
116
|
+
updateMenuItemConfig(groupId, groupConfig);
|
|
117
|
+
} else {
|
|
118
|
+
// Create a new group
|
|
119
|
+
groupId = createMenuItemConfig(groupConfig);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Create the menu item with the group ID
|
|
123
|
+
const menuItem: MenuItem = {
|
|
124
|
+
..._.omit(item, ["groupConfig"]),
|
|
125
|
+
groupId,
|
|
126
|
+
// Если не указан inGroupPriority, используем priority для совместимости
|
|
127
|
+
inGroupPriority: item.inGroupPriority ?? item.priority,
|
|
128
|
+
} as MenuItem;
|
|
129
|
+
|
|
130
|
+
// Add it to the raw menu
|
|
131
|
+
rawMenu.value.push(menuItem);
|
|
132
|
+
} else {
|
|
133
|
+
// Regular menu item, just add it
|
|
134
|
+
rawMenu.value.push(item as MenuItem);
|
|
135
|
+
}
|
|
136
|
+
|
|
44
137
|
constructMenu();
|
|
45
138
|
}
|
|
46
139
|
|
|
@@ -49,10 +142,112 @@ export function createMenuService(): MenuService {
|
|
|
49
142
|
* @param item - The menu item to remove
|
|
50
143
|
*/
|
|
51
144
|
function removeMenuItem(item: MenuItem): void {
|
|
52
|
-
const index =
|
|
145
|
+
const index = rawMenu.value.findIndex(
|
|
146
|
+
(menuItem) => menuItem.id === item.id || (menuItem.title === item.title && menuItem.group === item.group),
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
if (index !== -1) {
|
|
150
|
+
rawMenu.value.splice(index, 1);
|
|
151
|
+
constructMenu();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Updates an existing menu item by id
|
|
157
|
+
* @param id - The id of the menu item to update
|
|
158
|
+
* @param updatedItem - The updated properties
|
|
159
|
+
* @returns true if the item was found and updated, false otherwise
|
|
160
|
+
*/
|
|
161
|
+
function updateMenuItem(id: string, updatedItem: Partial<MenuItem>): boolean {
|
|
162
|
+
const index = rawMenu.value.findIndex((item) => item.id === id);
|
|
53
163
|
if (index !== -1) {
|
|
54
|
-
|
|
164
|
+
rawMenu.value[index] = { ...rawMenu.value[index], ...updatedItem };
|
|
165
|
+
constructMenu();
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Get a menu item by id
|
|
173
|
+
* @param id - The id of the menu item
|
|
174
|
+
* @returns The menu item or undefined if not found
|
|
175
|
+
*/
|
|
176
|
+
function getMenuItem(id: string): MenuItem | undefined {
|
|
177
|
+
// First try to find in top level menu items
|
|
178
|
+
const topLevelItem = menuItems.value.find((item) => item.id === id);
|
|
179
|
+
if (topLevelItem) return topLevelItem;
|
|
180
|
+
|
|
181
|
+
// Then look in children
|
|
182
|
+
for (const item of menuItems.value) {
|
|
183
|
+
if (item.children) {
|
|
184
|
+
const childItem = item.children.find((child) => child.id === id);
|
|
185
|
+
if (childItem) return childItem;
|
|
186
|
+
}
|
|
55
187
|
}
|
|
188
|
+
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Creates a new menu group
|
|
194
|
+
* @param group - The group to create
|
|
195
|
+
* @returns The id of the created group
|
|
196
|
+
*/
|
|
197
|
+
function createMenuItemConfig(group: MenuItemConfigCreateOptions): string {
|
|
198
|
+
// Use provided id or generate a new one
|
|
199
|
+
const groupId = group.id || _.uniqueId("group_");
|
|
200
|
+
|
|
201
|
+
MenuItemConfigs.value[groupId] = {
|
|
202
|
+
...group,
|
|
203
|
+
id: groupId,
|
|
204
|
+
} as MenuItemConfig;
|
|
205
|
+
|
|
206
|
+
// Rebuild menu to incorporate the new group
|
|
207
|
+
constructMenu();
|
|
208
|
+
|
|
209
|
+
return groupId;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Updates an existing menu group
|
|
214
|
+
* @param id - The id of the group to update
|
|
215
|
+
* @param group - The updated properties
|
|
216
|
+
* @returns true if the group was found and updated, false otherwise
|
|
217
|
+
*/
|
|
218
|
+
function updateMenuItemConfig(id: string, group: Partial<MenuItemConfig>): boolean {
|
|
219
|
+
if (MenuItemConfigs.value[id]) {
|
|
220
|
+
MenuItemConfigs.value[id] = { ...MenuItemConfigs.value[id], ...group };
|
|
221
|
+
constructMenu();
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Removes a menu group
|
|
229
|
+
* @param id - The id of the group to remove
|
|
230
|
+
* @returns true if the group was found and removed, false otherwise
|
|
231
|
+
*/
|
|
232
|
+
function removeMenuItemConfig(id: string): boolean {
|
|
233
|
+
if (MenuItemConfigs.value[id]) {
|
|
234
|
+
delete MenuItemConfigs.value[id];
|
|
235
|
+
|
|
236
|
+
// Update menu items that belonged to this group
|
|
237
|
+
rawMenu.value = rawMenu.value.filter((item) => item.groupId !== id);
|
|
238
|
+
|
|
239
|
+
constructMenu();
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Gets all menu groups
|
|
247
|
+
* @returns All menu groups
|
|
248
|
+
*/
|
|
249
|
+
function getMenuItemConfigs(): Record<string, MenuItemConfig> {
|
|
250
|
+
return { ...MenuItemConfigs.value };
|
|
56
251
|
}
|
|
57
252
|
|
|
58
253
|
/**
|
|
@@ -81,7 +276,8 @@ export function createMenuService(): MenuService {
|
|
|
81
276
|
* Sorts items within a group by their inGroupPriority
|
|
82
277
|
*/
|
|
83
278
|
function sortByGroupPriority(a: MenuItem, b: MenuItem): number {
|
|
84
|
-
const getGroupPriority = (item: MenuItem): number =>
|
|
279
|
+
const getGroupPriority = (item: MenuItem): number =>
|
|
280
|
+
item.inGroupPriority ?? item.groupConfig?.priority ?? DEFAULT_GROUP_PRIORITY;
|
|
85
281
|
return getGroupPriority(a) - getGroupPriority(b);
|
|
86
282
|
}
|
|
87
283
|
|
|
@@ -100,32 +296,85 @@ export function createMenuService(): MenuService {
|
|
|
100
296
|
return computed(() => t(title));
|
|
101
297
|
}
|
|
102
298
|
|
|
299
|
+
/**
|
|
300
|
+
* Checks if the current user has permission to see the menu item
|
|
301
|
+
* @param item - The menu item to check
|
|
302
|
+
* @returns true if the user has permission, false otherwise
|
|
303
|
+
*/
|
|
304
|
+
function hasPermissionForItem(item: MenuItem): boolean {
|
|
305
|
+
// If no permissions are specified, the item is visible to everyone
|
|
306
|
+
if (!item.permissions || (Array.isArray(item.permissions) && item.permissions.length === 0)) {
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Check if user has any of the required permissions
|
|
311
|
+
return hasAccess(item.permissions);
|
|
312
|
+
}
|
|
313
|
+
|
|
103
314
|
/**
|
|
104
315
|
* Processes a menu item that belongs to a group
|
|
105
316
|
*/
|
|
106
317
|
function processGroupItem(item: MenuItem, constructedMenu: Ref<MenuItem[]>): void {
|
|
107
|
-
|
|
318
|
+
// Skip items the user doesn't have permission to see
|
|
319
|
+
if (!hasPermissionForItem(item)) return;
|
|
320
|
+
|
|
321
|
+
// Handle both legacy (group by name) and new (group by id) approaches
|
|
322
|
+
let groupId: string;
|
|
323
|
+
let groupTitle: string;
|
|
324
|
+
let groupIcon: string | Component = "";
|
|
325
|
+
let groupPriority: number = DEFAULT_PRIORITY;
|
|
326
|
+
let groupPermissions: string | string[] | undefined;
|
|
327
|
+
|
|
328
|
+
// If using groupId (new way)
|
|
329
|
+
if (item.groupId && MenuItemConfigs.value[item.groupId]) {
|
|
330
|
+
const group = MenuItemConfigs.value[item.groupId];
|
|
331
|
+
groupId = "group_" + group.id;
|
|
332
|
+
groupTitle = group.title;
|
|
333
|
+
groupIcon = group.icon || "";
|
|
334
|
+
groupPriority = group.priority || DEFAULT_PRIORITY;
|
|
335
|
+
groupPermissions = group.permissions;
|
|
336
|
+
}
|
|
337
|
+
// If using group string (legacy way)
|
|
338
|
+
else if (item.group) {
|
|
339
|
+
console.warn("Using item.group is deprecated, please use item.groupId instead");
|
|
340
|
+
groupId = "group_" + createItemId(item.group);
|
|
341
|
+
groupTitle = item.group;
|
|
342
|
+
groupIcon = item.groupIcon || "";
|
|
343
|
+
groupPriority = item.priority || DEFAULT_PRIORITY;
|
|
344
|
+
groupPermissions = item.permissions;
|
|
345
|
+
}
|
|
346
|
+
// Skip if no valid group reference found
|
|
347
|
+
else {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
108
350
|
|
|
109
|
-
const groupId = "group_" + createItemId(item.group);
|
|
110
351
|
const existingGroup = useArrayFind(constructedMenu, (m) => m.groupId === groupId);
|
|
111
352
|
|
|
112
353
|
// Create the item to be added to the group
|
|
113
354
|
const groupItem = {
|
|
114
|
-
..._.omit(item, ["group", "groupIcon", "
|
|
355
|
+
..._.omit(item, ["group", "groupIcon", "priority", "groupId"]),
|
|
115
356
|
title: createLocalizedTitle(item.title as string),
|
|
357
|
+
// Ensure inGroupPriority is preserved and used
|
|
358
|
+
inGroupPriority: item.inGroupPriority || item.priority || DEFAULT_GROUP_PRIORITY,
|
|
116
359
|
} as MenuItem;
|
|
117
360
|
|
|
118
361
|
if (existingGroup.value && existingGroup.value.children) {
|
|
119
362
|
// Add to existing group
|
|
120
363
|
upsert(existingGroup.value.children, groupItem);
|
|
121
364
|
} else {
|
|
365
|
+
// Skip creating group if user doesn't have permission for the group
|
|
366
|
+
if (groupPermissions && !hasAccess(groupPermissions)) {
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
|
|
122
370
|
// Create a new group with this item
|
|
123
371
|
const group = {
|
|
124
372
|
groupId,
|
|
125
|
-
groupIcon
|
|
126
|
-
title: createLocalizedTitle(
|
|
373
|
+
groupIcon,
|
|
374
|
+
title: createLocalizedTitle(groupTitle),
|
|
127
375
|
children: [groupItem],
|
|
128
|
-
priority:
|
|
376
|
+
priority: groupPriority,
|
|
377
|
+
permissions: groupPermissions,
|
|
129
378
|
} as MenuItem;
|
|
130
379
|
upsert(constructedMenu.value, group);
|
|
131
380
|
}
|
|
@@ -135,6 +384,9 @@ export function createMenuService(): MenuService {
|
|
|
135
384
|
* Processes a standalone menu item (not in a group)
|
|
136
385
|
*/
|
|
137
386
|
function processStandaloneItem(item: MenuItem, constructedMenu: Ref<MenuItem[]>): void {
|
|
387
|
+
// Skip items the user doesn't have permission to see
|
|
388
|
+
if (!hasPermissionForItem(item)) return;
|
|
389
|
+
|
|
138
390
|
if (item.title) {
|
|
139
391
|
const standaloneItem = {
|
|
140
392
|
...item,
|
|
@@ -146,18 +398,23 @@ export function createMenuService(): MenuService {
|
|
|
146
398
|
|
|
147
399
|
/**
|
|
148
400
|
* Finalizes menu items by adding IDs and sorting children
|
|
401
|
+
* Also filters out groups with no visible children
|
|
149
402
|
*/
|
|
150
403
|
function finalizeMenuItems(items: MenuItem[]): MenuItem[] {
|
|
151
|
-
return
|
|
152
|
-
|
|
153
|
-
(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
404
|
+
return (
|
|
405
|
+
items
|
|
406
|
+
.map(
|
|
407
|
+
(item): MenuItem => ({
|
|
408
|
+
...item,
|
|
409
|
+
title: createLocalizedTitle(item.title as string),
|
|
410
|
+
id: item.id || createItemId(item.title as ComputedRef<string>),
|
|
411
|
+
children: item.children?.filter((child) => hasPermissionForItem(child)).sort(sortByGroupPriority),
|
|
412
|
+
}),
|
|
413
|
+
)
|
|
414
|
+
// Filter out groups with no visible children
|
|
415
|
+
.filter((item) => !item.children || item.children.length > 0)
|
|
416
|
+
.sort(sortByPriority)
|
|
417
|
+
);
|
|
161
418
|
}
|
|
162
419
|
|
|
163
420
|
/**
|
|
@@ -168,7 +425,7 @@ export function createMenuService(): MenuService {
|
|
|
168
425
|
|
|
169
426
|
// Process each raw menu item
|
|
170
427
|
rawMenu.value.forEach((item) => {
|
|
171
|
-
if (item.group) {
|
|
428
|
+
if (item.group || item.groupId) {
|
|
172
429
|
processGroupItem(item, constructedMenu);
|
|
173
430
|
} else {
|
|
174
431
|
processStandaloneItem(item, constructedMenu);
|
|
@@ -179,6 +436,7 @@ export function createMenuService(): MenuService {
|
|
|
179
436
|
menuItems.value = finalizeMenuItems(constructedMenu.value);
|
|
180
437
|
}
|
|
181
438
|
|
|
439
|
+
// Process any pre-registered menu items, including those with group configurations
|
|
182
440
|
preregisteredMenuItems.value.forEach((item) => {
|
|
183
441
|
try {
|
|
184
442
|
addMenuItem(item);
|
|
@@ -191,5 +449,11 @@ export function createMenuService(): MenuService {
|
|
|
191
449
|
addMenuItem,
|
|
192
450
|
menuItems,
|
|
193
451
|
removeMenuItem,
|
|
452
|
+
updateMenuItem,
|
|
453
|
+
getMenuItem,
|
|
454
|
+
createMenuItemConfig,
|
|
455
|
+
updateMenuItemConfig,
|
|
456
|
+
removeMenuItemConfig,
|
|
457
|
+
getMenuItemConfigs,
|
|
194
458
|
};
|
|
195
459
|
}
|
package/core/types/index.ts
CHANGED
|
@@ -195,20 +195,33 @@ export interface MenuItemConfig {
|
|
|
195
195
|
icon: string | Component;
|
|
196
196
|
/**
|
|
197
197
|
* Menu group icon.
|
|
198
|
+
*
|
|
199
|
+
* @deprecated Use groupConfig.icon instead for better robustness
|
|
198
200
|
*/
|
|
199
201
|
groupIcon?: string;
|
|
200
202
|
/**
|
|
201
203
|
* Menu item group. Is used to group menu items with it's provided name.
|
|
202
204
|
*
|
|
203
205
|
* If the path is not specified, the menu item is added to the root of the menu.
|
|
206
|
+
*
|
|
207
|
+
* @deprecated Use groupConfig instead for better robustness
|
|
204
208
|
*/
|
|
205
209
|
group?: string;
|
|
210
|
+
/**
|
|
211
|
+
* Group configuration for creating or updating a group when adding this menu item.
|
|
212
|
+
* This allows creating a group and adding an item to it in one step.
|
|
213
|
+
* If a group with the specified ID already exists, it will be updated with the provided properties.
|
|
214
|
+
*/
|
|
215
|
+
groupConfig?: Omit<MenuItemConfig, "group" | "groupId" | "groupIcon" | "groupConfig" | "inGroupPriority">;
|
|
206
216
|
/**
|
|
207
217
|
* Position priority.
|
|
208
218
|
*/
|
|
209
219
|
priority: number;
|
|
210
220
|
/**
|
|
211
221
|
* Position priority in group
|
|
222
|
+
*
|
|
223
|
+
* @deprecated Use groupConfig.priority instead for better robustness
|
|
212
224
|
*/
|
|
213
225
|
inGroupPriority?: number;
|
|
226
|
+
permissions?: string | string[];
|
|
214
227
|
}
|
|
@@ -2,8 +2,8 @@ import { Ref } from "vue";
|
|
|
2
2
|
export interface GlobalSearchState {
|
|
3
3
|
isSearchVisible: Ref<Record<string, boolean>>;
|
|
4
4
|
searchQuery: Ref<Record<string, string>>;
|
|
5
|
-
toggleSearch: (bladeId:
|
|
6
|
-
setSearchQuery: (bladeId:
|
|
5
|
+
toggleSearch: (bladeId: string) => void;
|
|
6
|
+
setSearchQuery: (bladeId: string, query: string) => void;
|
|
7
7
|
}
|
|
8
8
|
export declare function createGlobalSearch(): GlobalSearchState;
|
|
9
9
|
export declare function useGlobalSearch(): GlobalSearchState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,cAAc,UAAU,CAAC"}
|
|
@@ -1,13 +1,46 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import type { MenuItem } from "../types";
|
|
2
|
+
import type { MenuItem, MenuItemConfig } from "../types";
|
|
3
|
+
export interface MenuItemConfigCreateOptions extends Omit<MenuItemConfig, "id"> {
|
|
4
|
+
id?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for creating a group together with a menu item
|
|
8
|
+
*/
|
|
9
|
+
export interface MenuItemWithGroupConfig extends Omit<MenuItemConfig, "group" | "groupId" | "groupIcon"> {
|
|
10
|
+
/**
|
|
11
|
+
* Required group configuration for automatically creating a group.
|
|
12
|
+
* The item will be added to this group.
|
|
13
|
+
*/
|
|
14
|
+
groupConfig: MenuItemConfigCreateOptions;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Helper function to create a menu item with group in one step
|
|
18
|
+
* @param item - The menu item properties
|
|
19
|
+
* @param group - The group properties
|
|
20
|
+
* @param inGroupPriority - Optional priority within the group, defaults to item.priority
|
|
21
|
+
* @returns A menu item configuration with embedded group
|
|
22
|
+
*/
|
|
23
|
+
export declare function createMenuItemWithGroup(item: Omit<MenuItemConfig, "group" | "groupId">, group: MenuItemConfigCreateOptions, inGroupPriority?: number): MenuItemWithGroupConfig;
|
|
3
24
|
/**
|
|
4
25
|
* Registers a menu item before the service is initialized
|
|
5
26
|
*/
|
|
6
|
-
export declare function addMenuItem(item: MenuItem): void;
|
|
27
|
+
export declare function addMenuItem(item: MenuItem | MenuItemWithGroupConfig): void;
|
|
7
28
|
export interface MenuService {
|
|
8
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Adds a menu item to the menu.
|
|
31
|
+
* If the item contains a `groupConfig` property, the group will be created automatically
|
|
32
|
+
* if it doesn't exist yet.
|
|
33
|
+
* @param item - The menu item to add or a config with both item and group
|
|
34
|
+
*/
|
|
35
|
+
addMenuItem: (item: MenuItem | MenuItemWithGroupConfig) => void;
|
|
9
36
|
menuItems: Ref<MenuItem[]>;
|
|
10
37
|
removeMenuItem: (item: MenuItem) => void;
|
|
38
|
+
updateMenuItem: (id: string, updatedItem: Partial<MenuItem>) => boolean;
|
|
39
|
+
getMenuItem: (id: string) => MenuItem | undefined;
|
|
40
|
+
createMenuItemConfig: (group: MenuItemConfigCreateOptions) => string;
|
|
41
|
+
updateMenuItemConfig: (id: string, group: Partial<MenuItemConfig>) => boolean;
|
|
42
|
+
removeMenuItemConfig: (id: string) => boolean;
|
|
43
|
+
getMenuItemConfigs: () => Record<string, MenuItemConfig>;
|
|
11
44
|
}
|
|
12
45
|
/**
|
|
13
46
|
* Menu service implementation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-service.d.ts","sourceRoot":"","sources":["../../../core/services/menu-service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"menu-service.d.ts","sourceRoot":"","sources":["../../../core/services/menu-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,GAAG,EAAkB,MAAM,KAAK,CAAC;AAG3E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQzD,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;IACtG;;;OAGG;IACH,WAAW,EAAE,2BAA2B,CAAC;CAC1C;AAKD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,EAC/C,KAAK,EAAE,2BAA2B,EAClC,eAAe,CAAC,EAAE,MAAM,GACvB,uBAAuB,CAUzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,uBAAuB,GAAG,IAAI,CAS1E;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,uBAAuB,KAAK,IAAI,CAAC;IAChE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC;IACxE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;IAClD,oBAAoB,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,MAAM,CAAC;IACrE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;IAC9E,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,kBAAkB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1D;AAUD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CA0W/C"}
|
|
@@ -167,22 +167,35 @@ export interface MenuItemConfig {
|
|
|
167
167
|
icon: string | Component;
|
|
168
168
|
/**
|
|
169
169
|
* Menu group icon.
|
|
170
|
+
*
|
|
171
|
+
* @deprecated Use groupConfig.icon instead for better robustness
|
|
170
172
|
*/
|
|
171
173
|
groupIcon?: string;
|
|
172
174
|
/**
|
|
173
175
|
* Menu item group. Is used to group menu items with it's provided name.
|
|
174
176
|
*
|
|
175
177
|
* If the path is not specified, the menu item is added to the root of the menu.
|
|
178
|
+
*
|
|
179
|
+
* @deprecated Use groupConfig instead for better robustness
|
|
176
180
|
*/
|
|
177
181
|
group?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Group configuration for creating or updating a group when adding this menu item.
|
|
184
|
+
* This allows creating a group and adding an item to it in one step.
|
|
185
|
+
* If a group with the specified ID already exists, it will be updated with the provided properties.
|
|
186
|
+
*/
|
|
187
|
+
groupConfig?: Omit<MenuItemConfig, "group" | "groupId" | "groupIcon" | "groupConfig" | "inGroupPriority">;
|
|
178
188
|
/**
|
|
179
189
|
* Position priority.
|
|
180
190
|
*/
|
|
181
191
|
priority: number;
|
|
182
192
|
/**
|
|
183
193
|
* Position priority in group
|
|
194
|
+
*
|
|
195
|
+
* @deprecated Use groupConfig.priority instead for better robustness
|
|
184
196
|
*/
|
|
185
197
|
inGroupPriority?: number;
|
|
198
|
+
permissions?: string | string[];
|
|
186
199
|
}
|
|
187
200
|
export {};
|
|
188
201
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAc,MAAM,KAAK,CAAC;AAC9D,OAAO,EAA4B,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAOrF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,SAAS,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,IAAI,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxD,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,YAAY,CAAC,IAAI,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAElF,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,kCAAkC,CAAC;CAChE,GACG;IACE,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CACrC,GAAG,aAAa,GACjB,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,kCAAkC,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,+BAA+B,GAAG,kCAAkC,GAAG;IACjF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY;IACnD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAE3B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EACD,OAAO,GACP,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,MAAM,GACN,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB,cAAc,CAAC,EAAE;QACf,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,CAAC,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;AAExH,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"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"}
|