@vc-shell/framework 1.0.132 → 1.0.133

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 (29) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/core/composables/useMenuService/index.ts +9 -10
  3. package/core/composables/useUser/index.ts +2 -2
  4. package/core/plugins/modularity/index.ts +2 -6
  5. package/core/types/index.ts +29 -6
  6. package/dist/core/composables/useMenuService/index.d.ts +2 -7
  7. package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
  8. package/dist/core/plugins/modularity/index.d.ts.map +1 -1
  9. package/dist/core/types/index.d.ts +27 -6
  10. package/dist/core/types/index.d.ts.map +1 -1
  11. package/dist/framework.js +649 -640
  12. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  13. package/dist/shared/components/blade-navigation/types/index.d.ts +1 -21
  14. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  15. package/dist/shared/components/user-dropdown-button/index.d.ts +8 -8
  16. package/dist/shared/modules/dynamic/types/index.d.ts +1 -2
  17. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  18. package/dist/tsconfig.tsbuildinfo +1 -1
  19. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
  20. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
  21. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +16 -16
  22. package/package.json +4 -4
  23. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +3 -0
  24. package/shared/components/blade-navigation/types/index.ts +1 -22
  25. package/shared/modules/dynamic/types/index.ts +1 -2
  26. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +3 -2
  27. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +2 -0
  28. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +1 -1
  29. package/ui/components/organisms/vc-app/vc-app.vue +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vc-app-menu-link.vue.d.ts","sourceRoot":"","sources":["../../../../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAIjE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3C;;;;;;;;;;;;AAiOD,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"vc-app-menu-link.vue.d.ts","sourceRoot":"","sources":["../../../../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAIjE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3C;;;;;;;;;;;;AAoOD,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vc-app-menu-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,WAAW,KAAK;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzC;;;;;;;;;;;;;;;;;AAqHD,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"vc-app-menu-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,WAAW,KAAK;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzC;;;;;;;;;;;;;;;;;AA2HD,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -16,30 +16,30 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
16
16
  name: {
17
17
  type: import("vue").PropType<string>;
18
18
  };
19
- menuItems: {
20
- type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
21
- default: () => never[];
22
- };
23
19
  avatarUrl: {
24
20
  type: import("vue").PropType<string>;
25
21
  };
26
22
  role: {
27
23
  type: import("vue").PropType<string>;
28
24
  };
29
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
- name: {
31
- type: import("vue").PropType<string>;
32
- };
33
25
  menuItems: {
34
26
  type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
35
27
  default: () => never[];
36
28
  };
29
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
+ name: {
31
+ type: import("vue").PropType<string>;
32
+ };
37
33
  avatarUrl: {
38
34
  type: import("vue").PropType<string>;
39
35
  };
40
36
  role: {
41
37
  type: import("vue").PropType<string>;
42
38
  };
39
+ menuItems: {
40
+ type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
41
+ default: () => never[];
42
+ };
43
43
  }>>, {
44
44
  menuItems: import("../../../../core/types").BladeMenu<import("vue").Component>[];
45
45
  }, {}>;
@@ -56,30 +56,30 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
56
56
  name: {
57
57
  type: import("vue").PropType<string>;
58
58
  };
59
- menuItems: {
60
- type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
61
- default: () => never[];
62
- };
63
59
  avatarUrl: {
64
60
  type: import("vue").PropType<string>;
65
61
  };
66
62
  role: {
67
63
  type: import("vue").PropType<string>;
68
64
  };
69
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
70
- name: {
71
- type: import("vue").PropType<string>;
72
- };
73
65
  menuItems: {
74
66
  type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
75
67
  default: () => never[];
76
68
  };
69
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
70
+ name: {
71
+ type: import("vue").PropType<string>;
72
+ };
77
73
  avatarUrl: {
78
74
  type: import("vue").PropType<string>;
79
75
  };
80
76
  role: {
81
77
  type: import("vue").PropType<string>;
82
78
  };
79
+ menuItems: {
80
+ type: import("vue").PropType<import("../../../../core/types").BladeMenu<import("vue").Component>[]>;
81
+ default: () => never[];
82
+ };
83
83
  }>>, {
84
84
  menuItems: import("../../../../core/types").BladeMenu<import("vue").Component>[];
85
85
  }, {}>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.0.132",
3
+ "version": "1.0.133",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -53,9 +53,9 @@
53
53
  "whatwg-fetch": "^3.6.19"
54
54
  },
55
55
  "devDependencies": {
56
- "@vc-shell/api-client-generator": "^1.0.132",
57
- "@vc-shell/config-generator": "^1.0.132",
58
- "@vc-shell/ts-config": "^1.0.132",
56
+ "@vc-shell/api-client-generator": "^1.0.133",
57
+ "@vc-shell/config-generator": "^1.0.133",
58
+ "@vc-shell/ts-config": "^1.0.133",
59
59
  "@vitejs/plugin-vue": "^4.5.1",
60
60
  "sass": "^1.69.5",
61
61
  "typescript": "5.3.3",
@@ -84,6 +84,9 @@ export function useBladeNavigation(): IUseBladeNavigation {
84
84
  components: {
85
85
  default: createdComponent,
86
86
  },
87
+ meta: {
88
+ permissions: createdComponent.type?.permissions,
89
+ },
87
90
  });
88
91
 
89
92
  return await router.push({ path: createdComponent.type?.url as string });
@@ -11,6 +11,7 @@ import {
11
11
  ComponentPublicInstance,
12
12
  } from "vue";
13
13
  import { ComponentPublicInstanceConstructor } from "../../../utilities/vueUtils";
14
+ import { MenuItemConfig } from "../../../../core/types";
14
15
 
15
16
  export type CoreBladeComponentProps = {
16
17
  expanded?: boolean;
@@ -24,28 +25,6 @@ export type CoreDynamicBladeComponentProps = {
24
25
  composables?: any;
25
26
  };
26
27
 
27
- export interface MenuItemConfig {
28
- id?: string;
29
- /**
30
- * Menu item title.
31
- */
32
- title: string;
33
- /**
34
- * Menu item icon.
35
- */
36
- icon: string;
37
- /**
38
- * Menu item group. Is used to group menu items with it's provided name.
39
- *
40
- * If the path is not specified, the menu item is added to the root of the menu.
41
- */
42
- group?: string;
43
- /**
44
- * Position priority.
45
- */
46
- priority: number;
47
- }
48
-
49
28
  export type CoreBladeAdditionalSettings = {
50
29
  url?: `/${string}`;
51
30
  permissions?: string | string[];
@@ -8,9 +8,8 @@ import {
8
8
  VcStatus,
9
9
  VcVideo,
10
10
  } from "./../../../../ui/components";
11
- import { ITableColumns, IValidationRules } from "../../../../core/types";
11
+ import { ITableColumns, IValidationRules, MenuItemConfig } from "../../../../core/types";
12
12
  import type { ComponentProps } from "./../../../utilities/vueUtils";
13
- import { MenuItemConfig } from "../../../components/blade-navigation/types";
14
13
 
15
14
  export type KeysOfUnion<T> = T extends T ? keyof T : never;
16
15
 
@@ -48,14 +48,15 @@
48
48
  :key="i"
49
49
  >
50
50
  <router-link
51
- :to="nested.url"
51
+ v-if="$hasAccess(nested.permissions!)"
52
+ :to="nested.url!"
52
53
  custom
53
54
  >
54
55
  <div
55
56
  :key="i"
56
57
  :class="[
57
58
  {
58
- 'vc-app-menu-item__child-item_active': isActive(nested.url),
59
+ 'vc-app-menu-item__child-item_active': isActive(nested.url!),
59
60
  },
60
61
  'vc-app-menu-item__child-item',
61
62
  ]"
@@ -6,6 +6,7 @@
6
6
  custom
7
7
  >
8
8
  <vc-app-menu-link
9
+ v-if="isVisible"
9
10
  :sticky="sticky"
10
11
  :icon="icon ?? ''"
11
12
  :title="title ?? ''"
@@ -16,6 +17,7 @@
16
17
  </template>
17
18
  <template v-else>
18
19
  <vc-app-menu-link
20
+ v-if="isVisible"
19
21
  :children="children"
20
22
  :sticky="sticky"
21
23
  :icon="icon ?? ''"
@@ -41,7 +41,7 @@
41
41
  <VcAppMenuItem
42
42
  v-for="item in menuItems"
43
43
  :key="item?.id"
44
- :is-visible="true"
44
+ :is-visible="$hasAccess(item.permissions!)"
45
45
  :url="item.url"
46
46
  :icon="item.icon"
47
47
  :title="item.title as string"
@@ -156,7 +156,7 @@ const onMenuItemClick = function (item: MenuItem) {
156
156
  },
157
157
  true,
158
158
  );
159
- } else {
159
+ } else if (!item.routeId && item.url) {
160
160
  router.push(item.url);
161
161
  }
162
162
  };