@vc-shell/framework 1.0.214 → 1.0.215

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.
@@ -1 +1 @@
1
- {"version":3,"file":"vc-blade-navigation.vue.d.ts","sourceRoot":"","sources":["../../../../../../shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.ts"],"names":[],"mappings":";AAiLA,wBAKG"}
1
+ {"version":3,"file":"vc-blade-navigation.vue.d.ts","sourceRoot":"","sources":["../../../../../../shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.ts"],"names":[],"mappings":";AA8MA,wBAKG"}
@@ -6,7 +6,7 @@ import "core-js/actual/array/find-last-index";
6
6
  interface IUseBladeNavigation {
7
7
  readonly blades: ComputedRef<BladeVNode[]>;
8
8
  readonly currentBladeNavigationData: ComputedRef<BladeVNode["props"]["navigation"]>;
9
- openBlade: <Blade extends Component>({ blade, param, options, onOpen, onClose }: IBladeEvent<Blade>, isWorkspace?: boolean) => Promise<void | NavigationFailure>;
9
+ openBlade: <Blade extends Component>({ blade, param, options, onOpen, onClose, replaceCurrentBlade }: IBladeEvent<Blade>, isWorkspace?: boolean) => Promise<void | NavigationFailure>;
10
10
  closeBlade: (index: number) => Promise<boolean>;
11
11
  onParentCall: (parentExposedMethods: Record<string, any>, args: IParentCallArgs) => void;
12
12
  onBeforeClose: (cb: () => Promise<boolean | undefined>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../shared/components/blade-navigation/composables/useBladeNavigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAIT,WAAW,EAGZ,MAAM,KAAK,CAAC;AAIb,OAAO,EACL,uBAAuB,EAEvB,iBAAiB,EACjB,eAAe,EACf,WAAW,EAGZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAGL,UAAU,EACV,WAAW,EACX,eAAe,EACf,wBAAwB,EAGzB,MAAM,aAAa,CAAC;AAIrB,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAG9C,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,0BAA0B,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,SAAS,EAAE,CAAC,KAAK,SAAS,SAAS,EACjC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,EAC9D,WAAW,CAAC,EAAE,OAAO,KAClB,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACzF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC;IAChE,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,wBAAwB,CAAC;IAC/D,aAAa,EAAE,CAAC,EAAE,EAAE,uBAAuB,KACvC,OAAO,CACH;QACE,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;QAClC,MAAM,EAAE,WAAW,CAAC;KACrB,GACD,SAAS,CACZ,GACD,SAAS,CAAC;IACd,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACrE,kBAAkB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;CACvE;AAiND,wBAAgB,kBAAkB,IAAI,mBAAmB,CAgVxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../shared/components/blade-navigation/composables/useBladeNavigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAIT,WAAW,EAGZ,MAAM,KAAK,CAAC;AAIb,OAAO,EACL,uBAAuB,EAEvB,iBAAiB,EACjB,eAAe,EACf,WAAW,EAGZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAGL,UAAU,EACV,WAAW,EACX,eAAe,EACf,wBAAwB,EAGzB,MAAM,aAAa,CAAC;AAIrB,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAG9C,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,0BAA0B,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,SAAS,EAAE,CAAC,KAAK,SAAS,SAAS,EACjC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,EACnF,WAAW,CAAC,EAAE,OAAO,KAClB,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACzF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC;IAChE,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,wBAAwB,CAAC;IAC/D,aAAa,EAAE,CAAC,EAAE,EAAE,uBAAuB,KACvC,OAAO,CACH;QACE,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;QAClC,MAAM,EAAE,WAAW,CAAC;KACrB,GACD,SAAS,CACZ,GACD,SAAS,CAAC;IACd,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACrE,kBAAkB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;CACvE;AAoND,wBAAgB,kBAAkB,IAAI,mBAAmB,CAmVxD"}
@@ -54,6 +54,7 @@ export interface IBladeEvent<T extends Component = Component> {
54
54
  param?: string;
55
55
  onOpen?: () => void;
56
56
  onClose?: () => void;
57
+ replaceCurrentBlade?: boolean;
57
58
  }
58
59
  export interface BladeNavigationPlugin {
59
60
  router: Router;
@@ -75,6 +76,7 @@ export interface BladeVNode extends VNode {
75
76
  onBeforeClose?: () => Promise<boolean | undefined>;
76
77
  instance: CoreBladeExposed | undefined | null;
77
78
  idx: number;
79
+ isVisible?: boolean;
78
80
  };
79
81
  onVnodeUnmounted?: VNodeMountHook | VNodeMountHook[];
80
82
  onVnodeMounted?: VNodeMountHook | VNodeMountHook[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../shared/components/blade-navigation/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../shared/components/blade-navigation/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.0.214",
3
+ "version": "1.0.215",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -59,9 +59,9 @@
59
59
  "devDependencies": {
60
60
  "@types/dompurify": "^3.0.5",
61
61
  "@types/quill": "^2.0.14",
62
- "@vc-shell/api-client-generator": "^1.0.214",
63
- "@vc-shell/config-generator": "^1.0.214",
64
- "@vc-shell/ts-config": "^1.0.214",
62
+ "@vc-shell/api-client-generator": "^1.0.215",
63
+ "@vc-shell/config-generator": "^1.0.215",
64
+ "@vc-shell/ts-config": "^1.0.215",
65
65
  "@vitejs/plugin-vue": "^5.0.3",
66
66
  "sass": "^1.69.6",
67
67
  "shx": "^0.3.4",
@@ -18,7 +18,7 @@
18
18
  </template>
19
19
 
20
20
  <script lang="ts" setup>
21
- import { Ref, computed, inject, withDirectives, h, vShow, toRef } from "vue";
21
+ import { Ref, computed, inject, withDirectives, h, vShow, toRef, VNode, nextTick } from "vue";
22
22
  import { RouterView } from "vue-router";
23
23
  import { BladeVNode, IParentCallArgs, useBladeNavigation } from "./../../../../../shared";
24
24
  import { ErrorInterceptor } from "./../../../error-interceptor";
@@ -31,7 +31,10 @@ const { blades, closeBlade, onParentCall } = useBladeNavigation();
31
31
  const { breadcrumbs, push, remove } = useBreadcrumbs();
32
32
 
33
33
  const quantity = computed(() => {
34
- return blades.value.length || 0;
34
+ return (
35
+ blades.value.filter((x) => x.props.navigation.isVisible || typeof x.props.navigation.isVisible === "undefined")
36
+ .length || 0
37
+ );
35
38
  });
36
39
 
37
40
  const isMobile = inject("isMobile") as Ref<boolean>;
@@ -46,6 +49,9 @@ watchDebounced(
46
49
  id: blade.props.navigation.idx.toString(),
47
50
  title: toRef(blade.props.navigation.instance ?? { title: "" }, "title"),
48
51
  clickHandler: async (id) => {
52
+ if (blade.props.navigation.isVisible === false) {
53
+ blade.props.navigation.isVisible = true;
54
+ }
49
55
  const isPrevented = await closeBlade(parseInt(id) + 1);
50
56
  return !isPrevented;
51
57
  },
@@ -64,49 +70,72 @@ const render = () => {
64
70
  if (!blades.value.length) {
65
71
  return h(RouterView);
66
72
  }
73
+
67
74
  return h("div", { class: "tw-w-full tw-overflow-hidden tw-flex tw-grow tw-basis-0 tw-relative" }, [
68
- blades.value.map((bladeVNode, index) => {
69
- if (bladeVNode.type.isBlade) {
70
- return h(
71
- ErrorInterceptor,
72
- {
73
- key: index,
74
- capture: true,
75
- },
76
- {
77
- default: ({
78
- error,
79
- reset,
80
- }: Parameters<InstanceType<typeof ErrorInterceptor>["$slots"]["default"]>["0"]) => {
81
- return withDirectives(
82
- h(
83
- VcBladeView,
84
- { key: `${bladeVNode.type?.name}_${index}` || `blade_${index}`, blade: bladeVNode },
85
- {
86
- default: ({ Component }: { Component: BladeVNode }) => {
87
- return h(Component, {
88
- error,
89
- closable: index >= 1,
90
- expandable: quantity.value > 1,
91
- expanded: index === quantity.value - 1,
92
- "onClose:blade": () => closeBlade(index),
93
- "onParent:call": (args: IParentCallArgs) => {
94
- const instance = blades.value?.[index - 1]?.props?.navigation?.instance;
95
- if (instance) onParentCall(instance, args);
75
+ blades.value.reduce(
76
+ (arr, bladeVNode, index) => {
77
+ if (bladeVNode.type.isBlade) {
78
+ const hiddenQuantity = blades.value.filter(
79
+ (x) => x.props.navigation.isVisible === false && x.props.navigation.idx < index,
80
+ ).length;
81
+
82
+ arr.push(
83
+ h(
84
+ ErrorInterceptor,
85
+ {
86
+ key: index,
87
+ capture: true,
88
+ },
89
+ {
90
+ default: ({
91
+ error,
92
+ reset,
93
+ }: Parameters<InstanceType<typeof ErrorInterceptor>["$slots"]["default"]>["0"]) => {
94
+ return withDirectives(
95
+ h(
96
+ VcBladeView,
97
+ { key: `${bladeVNode.type?.name}_${index}` || `blade_${index}`, blade: bladeVNode },
98
+ {
99
+ default: ({ Component }: { Component: BladeVNode }) => {
100
+ return h(Component, {
101
+ error,
102
+ closable: index >= 1,
103
+ expandable: quantity.value > 1,
104
+ expanded: index - hiddenQuantity === quantity.value - 1,
105
+ "onClose:blade": () => {
106
+ closeBlade(index);
107
+ },
108
+ "onParent:call": async (args: IParentCallArgs) => {
109
+ await nextTick(() => {
110
+ const instance = blades.value?.[index - 1]?.props?.navigation?.instance;
111
+ if (instance) onParentCall(instance, args);
112
+ });
113
+ },
114
+ onVnodeUnmounted: reset,
115
+ });
96
116
  },
97
- onVnodeUnmounted: reset,
98
- });
99
- },
100
- },
101
- ),
117
+ },
118
+ ),
119
+
120
+ [
121
+ [
122
+ vShow,
123
+ (bladeVNode.props.navigation.isVisible ||
124
+ typeof bladeVNode.props.navigation.isVisible === "undefined") &&
125
+ index >= quantity.value - (isMobile.value ? 1 : 2),
126
+ ],
127
+ ],
128
+ );
129
+ },
130
+ },
131
+ ),
132
+ );
133
+ }
102
134
 
103
- [[vShow, index >= quantity.value - (isMobile.value ? 1 : 2)]],
104
- );
105
- },
106
- },
107
- );
108
- }
109
- }),
135
+ return arr;
136
+ },
137
+ [] as unknown as VNode[],
138
+ ),
110
139
  ]);
111
140
  };
112
141
  </script>
@@ -45,7 +45,7 @@ interface IUseBladeNavigation {
45
45
  readonly blades: ComputedRef<BladeVNode[]>;
46
46
  readonly currentBladeNavigationData: ComputedRef<BladeVNode["props"]["navigation"]>;
47
47
  openBlade: <Blade extends Component>(
48
- { blade, param, options, onOpen, onClose }: IBladeEvent<Blade>,
48
+ { blade, param, options, onOpen, onClose, replaceCurrentBlade }: IBladeEvent<Blade>,
49
49
  isWorkspace?: boolean,
50
50
  ) => Promise<void | NavigationFailure>;
51
51
  closeBlade: (index: number) => Promise<boolean>;
@@ -255,6 +255,9 @@ const useBladeNavigationSingleton = createSharedComposable(() => {
255
255
  }
256
256
 
257
257
  if (!isPrevented) {
258
+ if (navigationInstance.blades.value[index - 1]?.props?.navigation?.isVisible === false) {
259
+ navigationInstance.blades.value[index - 1].props.navigation.isVisible = true;
260
+ }
258
261
  navigationInstance.blades.value.splice(index);
259
262
  }
260
263
 
@@ -338,7 +341,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
338
341
  }
339
342
 
340
343
  async function openBlade<Blade extends Component>(
341
- { blade, param, options, onOpen, onClose }: IBladeEvent<Blade>,
344
+ { blade, param, options, onOpen, onClose, replaceCurrentBlade = false }: IBladeEvent<Blade>,
342
345
  isWorkspace = false,
343
346
  ) {
344
347
  if (!blade) {
@@ -372,6 +375,9 @@ export function useBladeNavigation(): IUseBladeNavigation {
372
375
 
373
376
  if (!isPrevented) {
374
377
  if (hasAccess(blade.permissions)) {
378
+ if (replaceCurrentBlade) {
379
+ navigationInstance.blades.value[currentBladeIdx].props.navigation.isVisible = false;
380
+ }
375
381
  navigationInstance.blades.value.push(bladeNode);
376
382
  } else {
377
383
  notification.error(i18n.global.t("PERMISSION_MESSAGES.ACCESS_RESTRICTED"), { timeout: 3000 });
@@ -491,7 +497,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
491
497
  const registeredWorkspaceComponent = routes.find((route) => route.route === `/${workspace}`)?.component;
492
498
  const registeredRouteComponent = routes.find((route) => route.route === `/${blade}`)?.component;
493
499
 
494
- if (!registeredWorkspaceComponent) {
500
+ if (!hasAccess(registeredWorkspaceComponent?.type.permissions) || !registeredWorkspaceComponent) {
495
501
  return goToRoot();
496
502
  }
497
503
 
@@ -72,6 +72,7 @@ export interface IBladeEvent<T extends Component = Component> {
72
72
  param?: string;
73
73
  onOpen?: () => void;
74
74
  onClose?: () => void;
75
+ replaceCurrentBlade?: boolean;
75
76
  }
76
77
 
77
78
  export interface BladeNavigationPlugin {
@@ -96,6 +97,7 @@ export interface BladeVNode extends VNode {
96
97
  onBeforeClose?: () => Promise<boolean | undefined>;
97
98
  instance: CoreBladeExposed | undefined | null;
98
99
  idx: number;
100
+ isVisible?: boolean;
99
101
  };
100
102
  onVnodeUnmounted?: VNodeMountHook | VNodeMountHook[];
101
103
  onVnodeMounted?: VNodeMountHook | VNodeMountHook[];