@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.
- package/CHANGELOG.md +9 -0
- package/dist/framework.js +869 -850
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +2 -0
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +71 -42
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +9 -3
- package/shared/components/blade-navigation/types/index.ts +2 -0
|
@@ -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":";
|
|
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;
|
package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
63
|
-
"@vc-shell/config-generator": "^1.0.
|
|
64
|
-
"@vc-shell/ts-config": "^1.0.
|
|
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",
|
package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue
CHANGED
|
@@ -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
|
|
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.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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[];
|