@vc-shell/framework 1.1.0-alpha.7 → 1.1.0-alpha.9

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 (27) hide show
  1. package/core/services/menu-service.ts +60 -284
  2. package/core/types/index.ts +11 -5
  3. package/dist/core/services/menu-service.d.ts +3 -36
  4. package/dist/core/services/menu-service.d.ts.map +1 -1
  5. package/dist/core/types/index.d.ts +9 -3
  6. package/dist/core/types/index.d.ts.map +1 -1
  7. package/dist/framework.js +1 -1
  8. package/dist/{index-QiYxGOfR.js → index-0w9zBoWq.js} +1 -1
  9. package/dist/{index-DyDl-e3b.js → index-BBlIMdBJ.js} +1 -1
  10. package/dist/{index-tHx2asQS.js → index-BTJzbPbh.js} +1 -1
  11. package/dist/{index-B1NfXGpu.js → index-Box9LvQb.js} +1 -1
  12. package/dist/{index-B42ra4oQ.js → index-C7K2NPkM.js} +20153 -20213
  13. package/dist/{index-Bixm_Atu.js → index-CU_xM02H.js} +1 -1
  14. package/dist/{index-4fNoXD3u.js → index-DCEgSQGq.js} +1 -1
  15. package/dist/{index-DHUS6fMi.js → index-DL0yYr6i.js} +1 -1
  16. package/dist/{index-IdAZC2W6.js → index-DLSrNER4.js} +1 -1
  17. package/dist/{index-C9NLyptv.js → index-DONWtLck.js} +1 -1
  18. package/dist/{index-7YHBATKO.js → index-DRQTVkJw.js} +1 -1
  19. package/dist/{index-DKMXMXmO.js → index-DUfNgNp3.js} +1 -1
  20. package/dist/{index-DxhPupsj.js → index-DamkPpiV.js} +1 -1
  21. package/dist/{index-7gQRbSrG.js → index-Ddo2E7x3.js} +1 -1
  22. package/dist/{index-CPjPhNQr.js → index-DhmwfxeF.js} +1 -1
  23. package/dist/{index-CR62_U0-.js → index-DxoeM4zp.js} +1 -1
  24. package/dist/{index-qjW_Kc_I.js → index-dJf1vUOL.js} +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +4 -4
  27. package/shared/components/sidebar/sidebar.vue +4 -1
@@ -1,85 +1,23 @@
1
- import { computed, ComputedRef, ref, type Ref, type Component } from "vue";
1
+ import { Component, computed, ComputedRef, ref, watch, type Ref } from "vue";
2
2
  import * as _ from "lodash-es";
3
3
  import { i18n } from "./../plugins/i18n";
4
- import type { MenuItem, MenuItemConfig } from "../types";
4
+ import type { MenuItem } from "../types";
5
5
  import { createUnrefFn, useArrayFind } from "@vueuse/core";
6
- import { usePermissions } from "../composables";
7
6
 
8
7
  // Global state for pre-registering menu items
9
8
  const preregisteredMenuItems: Ref<MenuItem[]> = ref([]);
10
9
 
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
-
53
10
  /**
54
11
  * Registers a menu item before the service is initialized
55
12
  */
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
- }
13
+ export function addMenuItem(item: MenuItem): void {
14
+ preregisteredMenuItems.value.push(item);
65
15
  }
66
16
 
67
17
  export interface MenuService {
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;
18
+ addMenuItem: (item: MenuItem) => void;
75
19
  menuItems: Ref<MenuItem[]>;
76
20
  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>;
83
21
  }
84
22
 
85
23
  // Default priority values
@@ -96,44 +34,13 @@ const rawMenu: Ref<MenuItem[]> = ref([]);
96
34
  */
97
35
  export function createMenuService(): MenuService {
98
36
  const { t } = i18n.global;
99
- const { hasAccess } = usePermissions();
100
37
 
101
38
  /**
102
39
  * Add a new menu item to the raw menu and rebuild the menu structure
103
- * @param item - The menu item to add, or a menu item with group configuration
40
+ * @param item - The menu item to add
104
41
  */
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
-
42
+ function addMenuItem(item: MenuItem): void {
43
+ rawMenu.value.push(item);
137
44
  constructMenu();
138
45
  }
139
46
 
@@ -142,112 +49,10 @@ export function createMenuService(): MenuService {
142
49
  * @param item - The menu item to remove
143
50
  */
144
51
  function removeMenuItem(item: MenuItem): void {
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);
52
+ const index = menuItems.value.indexOf(item);
163
53
  if (index !== -1) {
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
- }
54
+ menuItems.value.splice(index, 1);
187
55
  }
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 };
251
56
  }
252
57
 
253
58
  /**
@@ -273,11 +78,11 @@ export function createMenuService(): MenuService {
273
78
  }
274
79
 
275
80
  /**
276
- * Sorts items within a group by their inGroupPriority
81
+ * Sorts items within a group by their inGroupPriority / priority
277
82
  */
278
83
  function sortByGroupPriority(a: MenuItem, b: MenuItem): number {
279
84
  const getGroupPriority = (item: MenuItem): number =>
280
- item.inGroupPriority ?? item.groupConfig?.priority ?? DEFAULT_GROUP_PRIORITY;
85
+ item.inGroupPriority ?? item.priority ?? DEFAULT_GROUP_PRIORITY;
281
86
  return getGroupPriority(a) - getGroupPriority(b);
282
87
  }
283
88
 
@@ -296,84 +101,70 @@ export function createMenuService(): MenuService {
296
101
  return computed(() => t(title));
297
102
  }
298
103
 
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
-
314
104
  /**
315
105
  * Processes a menu item that belongs to a group
316
106
  */
317
107
  function processGroupItem(item: MenuItem, constructedMenu: Ref<MenuItem[]>): void {
318
- // Skip items the user doesn't have permission to see
319
- if (!hasPermissionForItem(item)) return;
108
+ // Skip if no group information provided
109
+ if (!item.group && !item.groupConfig) return;
320
110
 
321
- // Handle both legacy (group by name) and new (group by id) approaches
322
111
  let groupId: string;
323
112
  let groupTitle: string;
324
- let groupIcon: string | Component = "";
325
- let groupPriority: number = DEFAULT_PRIORITY;
113
+ let groupIcon: string | Component | undefined;
114
+ let groupPriority: number | undefined;
326
115
  let groupPermissions: string | string[] | undefined;
327
116
 
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;
117
+ // Prefer groupConfig over legacy group properties
118
+ if (item.groupConfig) {
119
+ // Use the explicit group ID from groupConfig
120
+ groupId = item.groupConfig.id;
121
+ groupTitle = item.groupConfig.title || groupId;
122
+ groupIcon = item.groupConfig.icon;
123
+ groupPriority = item.groupConfig.priority;
124
+ groupPermissions = item.groupConfig.permissions;
125
+ } else {
126
+ // Fallback to legacy group properties
127
+ groupId = "group_" + createItemId(item.group as string);
128
+ groupTitle = item.group as string;
129
+ groupIcon = item.groupIcon;
130
+ groupPriority = item.priority; // Use item priority as group priority for legacy
349
131
  }
350
132
 
351
133
  const existingGroup = useArrayFind(constructedMenu, (m) => m.groupId === groupId);
352
134
 
353
135
  // Create the item to be added to the group
354
136
  const groupItem = {
355
- ..._.omit(item, ["group", "groupIcon", "priority", "groupId"]),
137
+ ..._.omit(item, ["group", "groupIcon", "groupPriority", "groupConfig"]),
356
138
  title: createLocalizedTitle(item.title as string),
357
- // Ensure inGroupPriority is preserved and used
358
- inGroupPriority: item.inGroupPriority || item.priority || DEFAULT_GROUP_PRIORITY,
359
139
  } as MenuItem;
360
140
 
361
141
  if (existingGroup.value && existingGroup.value.children) {
362
142
  // Add to existing group
363
143
  upsert(existingGroup.value.children, groupItem);
364
- } else {
365
- // Skip creating group if user doesn't have permission for the group
366
- if (groupPermissions && !hasAccess(groupPermissions)) {
367
- return;
368
- }
369
144
 
145
+ // Update existing group properties if using groupConfig
146
+ if (item.groupConfig) {
147
+ if (item.groupConfig.title) {
148
+ existingGroup.value.title = createLocalizedTitle(item.groupConfig.title);
149
+ }
150
+ if (item.groupConfig.icon !== undefined) {
151
+ existingGroup.value.groupIcon = item.groupConfig.icon;
152
+ }
153
+ if (item.groupConfig.priority !== undefined) {
154
+ existingGroup.value.priority = item.groupConfig.priority;
155
+ }
156
+ if (item.groupConfig.permissions !== undefined) {
157
+ existingGroup.value.permissions = item.groupConfig.permissions;
158
+ }
159
+ }
160
+ } else {
370
161
  // Create a new group with this item
371
162
  const group = {
372
163
  groupId,
373
- groupIcon,
164
+ groupIcon: groupIcon ?? "",
374
165
  title: createLocalizedTitle(groupTitle),
375
166
  children: [groupItem],
376
- priority: groupPriority,
167
+ priority: groupPriority ?? item.priority ?? DEFAULT_PRIORITY,
377
168
  permissions: groupPermissions,
378
169
  } as MenuItem;
379
170
  upsert(constructedMenu.value, group);
@@ -384,9 +175,6 @@ export function createMenuService(): MenuService {
384
175
  * Processes a standalone menu item (not in a group)
385
176
  */
386
177
  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
-
390
178
  if (item.title) {
391
179
  const standaloneItem = {
392
180
  ...item,
@@ -398,23 +186,18 @@ export function createMenuService(): MenuService {
398
186
 
399
187
  /**
400
188
  * Finalizes menu items by adding IDs and sorting children
401
- * Also filters out groups with no visible children
402
189
  */
403
190
  function finalizeMenuItems(items: MenuItem[]): MenuItem[] {
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
- );
191
+ return items
192
+ .map(
193
+ (item): MenuItem => ({
194
+ ...item,
195
+ title: createLocalizedTitle(item.title as string),
196
+ id: item.id || createItemId(item.title as ComputedRef<string>),
197
+ children: item.children?.sort(sortByGroupPriority),
198
+ }),
199
+ )
200
+ .sort(sortByPriority);
418
201
  }
419
202
 
420
203
  /**
@@ -425,7 +208,7 @@ export function createMenuService(): MenuService {
425
208
 
426
209
  // Process each raw menu item
427
210
  rawMenu.value.forEach((item) => {
428
- if (item.group || item.groupId) {
211
+ if (item.group || item.groupConfig) {
429
212
  processGroupItem(item, constructedMenu);
430
213
  } else {
431
214
  processStandaloneItem(item, constructedMenu);
@@ -436,7 +219,6 @@ export function createMenuService(): MenuService {
436
219
  menuItems.value = finalizeMenuItems(constructedMenu.value);
437
220
  }
438
221
 
439
- // Process any pre-registered menu items, including those with group configurations
440
222
  preregisteredMenuItems.value.forEach((item) => {
441
223
  try {
442
224
  addMenuItem(item);
@@ -449,11 +231,5 @@ export function createMenuService(): MenuService {
449
231
  addMenuItem,
450
232
  menuItems,
451
233
  removeMenuItem,
452
- updateMenuItem,
453
- getMenuItem,
454
- createMenuItemConfig,
455
- updateMenuItemConfig,
456
- removeMenuItemConfig,
457
- getMenuItemConfigs,
458
234
  };
459
235
  }
@@ -1,5 +1,5 @@
1
- import { Component, ComputedRef, Ref, ShallowRef } from "vue";
2
- import { BladeInstanceConstructor, CoreBladeExposed, ExtractedBladeOptions } from "../../shared";
1
+ import { Component, ComputedRef, Ref } from "vue";
2
+ import { CoreBladeExposed } from "../../shared";
3
3
  import { ComponentPublicInstanceConstructor } from "../../shared/utilities/vueUtils";
4
4
 
5
5
  // Type instead of interface here is workaround for:
@@ -176,7 +176,7 @@ export interface MenuItem extends Omit<MenuItemConfig, "title" | "id"> {
176
176
  routeId?: string;
177
177
  title: ComputedRef<string> | string;
178
178
  url?: string;
179
- groupIcon?: string;
179
+ groupIcon?: string | Component;
180
180
  groupId?: string;
181
181
  children?: MenuItem[];
182
182
  permissions?: string | string[];
@@ -198,7 +198,7 @@ export interface MenuItemConfig {
198
198
  *
199
199
  * @deprecated Use groupConfig.icon instead for better robustness
200
200
  */
201
- groupIcon?: string;
201
+ groupIcon?: string | Component;
202
202
  /**
203
203
  * Menu item group. Is used to group menu items with it's provided name.
204
204
  *
@@ -212,7 +212,13 @@ export interface MenuItemConfig {
212
212
  * This allows creating a group and adding an item to it in one step.
213
213
  * If a group with the specified ID already exists, it will be updated with the provided properties.
214
214
  */
215
- groupConfig?: Omit<MenuItemConfig, "group" | "groupId" | "groupIcon" | "groupConfig" | "inGroupPriority">;
215
+ groupConfig?: {
216
+ id: string;
217
+ title?: string;
218
+ icon?: string | Component | undefined;
219
+ priority?: number;
220
+ permissions?: string | string[];
221
+ };
216
222
  /**
217
223
  * Position priority.
218
224
  */
@@ -1,46 +1,13 @@
1
1
  import { type Ref } from "vue";
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;
2
+ import type { MenuItem } from "../types";
24
3
  /**
25
4
  * Registers a menu item before the service is initialized
26
5
  */
27
- export declare function addMenuItem(item: MenuItem | MenuItemWithGroupConfig): void;
6
+ export declare function addMenuItem(item: MenuItem): void;
28
7
  export interface MenuService {
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;
8
+ addMenuItem: (item: MenuItem) => void;
36
9
  menuItems: Ref<MenuItem[]>;
37
10
  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>;
44
11
  }
45
12
  /**
46
13
  * Menu service implementation
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"menu-service.d.ts","sourceRoot":"","sources":["../../../core/services/menu-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMzC;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAEhD;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC1C;AAUD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAwM/C"}
@@ -149,7 +149,7 @@ export interface MenuItem extends Omit<MenuItemConfig, "title" | "id"> {
149
149
  routeId?: string;
150
150
  title: ComputedRef<string> | string;
151
151
  url?: string;
152
- groupIcon?: string;
152
+ groupIcon?: string | Component;
153
153
  groupId?: string;
154
154
  children?: MenuItem[];
155
155
  permissions?: string | string[];
@@ -170,7 +170,7 @@ export interface MenuItemConfig {
170
170
  *
171
171
  * @deprecated Use groupConfig.icon instead for better robustness
172
172
  */
173
- groupIcon?: string;
173
+ groupIcon?: string | Component;
174
174
  /**
175
175
  * Menu item group. Is used to group menu items with it's provided name.
176
176
  *
@@ -184,7 +184,13 @@ export interface MenuItemConfig {
184
184
  * This allows creating a group and adding an item to it in one step.
185
185
  * If a group with the specified ID already exists, it will be updated with the provided properties.
186
186
  */
187
- groupConfig?: Omit<MenuItemConfig, "group" | "groupId" | "groupIcon" | "groupConfig" | "inGroupPriority">;
187
+ groupConfig?: {
188
+ id: string;
189
+ title?: string;
190
+ icon?: string | Component | undefined;
191
+ priority?: number;
192
+ permissions?: string | string[];
193
+ };
188
194
  /**
189
195
  * Position priority.
190
196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"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"}
package/dist/framework.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue-router";
2
- import { d2 as o, aL as n, bK as c, Q as r, bL as d, bM as l, by as u, R as p, S as b, dc as g, db as y, de as m, dd as S, bw as V, bz as I, z as h, T as C, B as D, cV as P, bA as A, bN as L, bO as R, dD as f, dS as M, bP as B, bQ as v, bR as T, bS as w, U as E, X as N, Y as O, Z as U, $ as K, bT as x, bU as F, bV as k, a0 as W, D as q, dO as z, bB as j, bW as H, a1 as J, a2 as G, dN as _, dk as Q, dj as X, A as Y, bX as Z, cW as $, bC as aa, bY as sa, bZ as ea, b_ as ta, b$ as ia, c0 as oa, c1 as na, c2 as ca, cY as ra, c3 as da, c4 as la, c5 as ua, cX as pa, c6 as ba, dx as ga, dK as ya, bx as ma, c7 as Sa, d8 as Va, a3 as Ia, dM as ha, G as Ca, a4 as Da, c8 as Pa, c9 as Aa, dP as La, ca as Ra, bD as fa, cb as Ma, cZ as Ba, cc as va, cd as Ta, dE as wa, ce as Ea, cf as Na, cg as Oa, ch as Ua, bE as Ka, ci as xa, dQ as Fa, cj as ka, ck as Wa, a5 as qa, a6 as za, M as ja, a7 as Ha, cl as Ja, cm as Ga, cn as _a, co as Qa, bF as Xa, dt as Ya, dG as Za, dH as $a, y as as, cp as ss, cq as es, bG as ts, cr as is, c_ as os, a8 as ns, cs, ct as rs, cu as ds, c$ as ls, a9 as us, aa as ps, cv as bs, cw as gs, ab as ys, ac as ms, ad as Ss, cx as Vs, cy as Is, d0 as hs, cz as Cs, bH as Ds, cA as Ps, cB as As, dR as Ls, cC as Rs, cD as fs, cE as Ms, cF as Bs, ae as vs, bI as Ts, cG as ws, cH as Es, bJ as Ns, cI as Os, af as Us, dL as Ks, da as xs, ag as Fs, dI as ks, cJ as Ws, cK as qs, cL as zs, d1 as js, cM as Hs, cN as Js, dJ as Gs, cO as _s, cP as Qs, dF as Xs, cQ as Ys, cR as Zs, cS as $s, cT as ae, aK as se, dm as ee, dl as te, F as ie, aM as oe, dr as ne, dq as ce, au as re, H as de, V as le, aJ as ue, J as pe, K as be, aN as ge, av as ye, aH as me, ax as Se, aw as Ve, aO as Ie, O as he, P as Ce, ai as De, ay as Pe, az as Ae, aj as Le, ak as Re, al as fe, aP as Me, aG as Be, aA as ve, aB as Te, aQ as we, dA as Ee, dz as Ne, am as Oe, aI as Ue, aC as Ke, an as xe, aD as Fe, _ as ke, aE as We, ao as qe, ap as ze, aq as je, aR as He, aF as Je, at as Ge, ar as _e, as as Qe, cU as Xe, ah as Ye, W as Ze, b2 as $e, bl as at, be as st, bk as et, bm as tt, dp as it, d3 as ot, d6 as nt, bo as ct, df as rt, br as dt, bn as lt, w as ut, bq as pt, bj as bt, d7 as gt, dC as yt, bh as mt, d4 as St, d5 as Vt, d9 as It, bf as ht, bi as Ct, bg as Dt, x as Pt, dw as At, bv as Lt, dy as Rt, bb as ft, b0 as Mt, b8 as Bt, bd as vt, bs as Tt, ba as wt, bu as Et, bt as Nt, aY as Ot, b6 as Ut, dn as Kt, a$ as xt, aX as Ft, b3 as kt, ds as Wt, b5 as qt, du as zt, bc as jt, dh as Ht, bp as Jt, dg as Gt, a_ as _t, aS as Qt, dv as Xt, b4 as Yt, di as Zt, aZ as $t, b1 as ai, aU as si, aW as ei, dB as ti, aV as ii, b7 as oi, aT as ni, b9 as ci } from "./index-B42ra4oQ.js";
2
+ import { d2 as o, aL as n, bK as c, Q as r, bL as d, bM as l, by as u, R as p, S as b, dc as g, db as y, de as m, dd as S, bw as V, bz as I, z as h, T as C, B as D, cV as P, bA as A, bN as L, bO as R, dD as f, dS as M, bP as B, bQ as v, bR as T, bS as w, U as E, X as N, Y as O, Z as U, $ as K, bT as x, bU as F, bV as k, a0 as W, D as q, dO as z, bB as j, bW as H, a1 as J, a2 as G, dN as _, dk as Q, dj as X, A as Y, bX as Z, cW as $, bC as aa, bY as sa, bZ as ea, b_ as ta, b$ as ia, c0 as oa, c1 as na, c2 as ca, cY as ra, c3 as da, c4 as la, c5 as ua, cX as pa, c6 as ba, dx as ga, dK as ya, bx as ma, c7 as Sa, d8 as Va, a3 as Ia, dM as ha, G as Ca, a4 as Da, c8 as Pa, c9 as Aa, dP as La, ca as Ra, bD as fa, cb as Ma, cZ as Ba, cc as va, cd as Ta, dE as wa, ce as Ea, cf as Na, cg as Oa, ch as Ua, bE as Ka, ci as xa, dQ as Fa, cj as ka, ck as Wa, a5 as qa, a6 as za, M as ja, a7 as Ha, cl as Ja, cm as Ga, cn as _a, co as Qa, bF as Xa, dt as Ya, dG as Za, dH as $a, y as as, cp as ss, cq as es, bG as ts, cr as is, c_ as os, a8 as ns, cs, ct as rs, cu as ds, c$ as ls, a9 as us, aa as ps, cv as bs, cw as gs, ab as ys, ac as ms, ad as Ss, cx as Vs, cy as Is, d0 as hs, cz as Cs, bH as Ds, cA as Ps, cB as As, dR as Ls, cC as Rs, cD as fs, cE as Ms, cF as Bs, ae as vs, bI as Ts, cG as ws, cH as Es, bJ as Ns, cI as Os, af as Us, dL as Ks, da as xs, ag as Fs, dI as ks, cJ as Ws, cK as qs, cL as zs, d1 as js, cM as Hs, cN as Js, dJ as Gs, cO as _s, cP as Qs, dF as Xs, cQ as Ys, cR as Zs, cS as $s, cT as ae, aK as se, dm as ee, dl as te, F as ie, aM as oe, dr as ne, dq as ce, au as re, H as de, V as le, aJ as ue, J as pe, K as be, aN as ge, av as ye, aH as me, ax as Se, aw as Ve, aO as Ie, O as he, P as Ce, ai as De, ay as Pe, az as Ae, aj as Le, ak as Re, al as fe, aP as Me, aG as Be, aA as ve, aB as Te, aQ as we, dA as Ee, dz as Ne, am as Oe, aI as Ue, aC as Ke, an as xe, aD as Fe, _ as ke, aE as We, ao as qe, ap as ze, aq as je, aR as He, aF as Je, at as Ge, ar as _e, as as Qe, cU as Xe, ah as Ye, W as Ze, b2 as $e, bl as at, be as st, bk as et, bm as tt, dp as it, d3 as ot, d6 as nt, bo as ct, df as rt, br as dt, bn as lt, w as ut, bq as pt, bj as bt, d7 as gt, dC as yt, bh as mt, d4 as St, d5 as Vt, d9 as It, bf as ht, bi as Ct, bg as Dt, x as Pt, dw as At, bv as Lt, dy as Rt, bb as ft, b0 as Mt, b8 as Bt, bd as vt, bs as Tt, ba as wt, bu as Et, bt as Nt, aY as Ot, b6 as Ut, dn as Kt, a$ as xt, aX as Ft, b3 as kt, ds as Wt, b5 as qt, du as zt, bc as jt, dh as Ht, bp as Jt, dg as Gt, a_ as _t, aS as Qt, dv as Xt, b4 as Yt, di as Zt, aZ as $t, b1 as ai, aU as si, aW as ei, dB as ti, aV as ii, b7 as oi, aT as ni, b9 as ci } from "./index-C7K2NPkM.js";
3
3
  import "vue";
4
4
  import "vee-validate";
5
5
  export {
@@ -1,4 +1,4 @@
1
- import { L as te, a as ae, b as re, i as ne, f as ie, s as se, c as oe, t as i, E as le, d as ce, e as de, g as me } from "./index-B42ra4oQ.js";
1
+ import { L as te, a as ae, b as re, i as ne, f as ie, s as se, c as oe, t as i, E as le, d as ce, e as de, g as me } from "./index-C7K2NPkM.js";
2
2
  const ue = 36, X = 1, fe = 2, b = 3, C = 4, pe = 5, ge = 6, he = 7, _e = 8, be = 9, ve = 10, ye = 11, ke = 12, xe = 13, Oe = 14, we = 15, Qe = 16, Ce = 17, I = 18, Se = 19, A = 20, E = 21, R = 22, Pe = 23, qe = 24;
3
3
  function P(t) {
4
4
  return t >= 65 && t <= 90 || t >= 97 && t <= 122 || t >= 48 && t <= 57;
@@ -1,4 +1,4 @@
1
- import { a as s, s as n, t as r, L as o, b as P, i as Q, f as i, c as a, k as c } from "./index-B42ra4oQ.js";
1
+ import { a as s, s as n, t as r, L as o, b as P, i as Q, f as i, c as a, k as c } from "./index-C7K2NPkM.js";
2
2
  const g = n({
3
3
  String: r.string,
4
4
  Number: r.number,
@@ -1,4 +1,4 @@
1
- import { a as o, E as a, s as Z, t as Q, L as _, b as q, i as l, f as w, c as r, k as V } from "./index-B42ra4oQ.js";
1
+ import { a as o, E as a, s as Z, t as Q, L as _, b as q, i as l, f as w, c as r, k as V } from "./index-C7K2NPkM.js";
2
2
  const R = 1, g = 2, b = 3, y = 4, T = 5, s = 98, c = 101, v = 102, t = 114, p = 69, X = 48, W = 46, d = 43, f = 45, Y = 35, z = 34, x = 124, U = 60, h = 62;
3
3
  function n(O) {
4
4
  return O >= 48 && O <= 57;