@vc-shell/framework 1.0.197 → 1.0.198
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/core/composables/useBreadcrumbs/index.ts +15 -9
- package/core/plugins/modularity/index.ts +1 -1
- package/dist/core/composables/useBreadcrumbs/index.d.ts +1 -6
- package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
- package/dist/framework.js +26216 -26025
- package/dist/index.css +1 -1
- 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/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +1 -2
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/composables/index.d.ts +1 -0
- package/dist/shared/modules/dynamic/composables/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/composables/useDynamicViewsUtils/index.d.ts +10 -0
- package/dist/shared/modules/dynamic/composables/useDynamicViewsUtils/index.d.ts.map +1 -0
- package/dist/shared/modules/dynamic/factories/types/index.d.ts +13 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/index.d.ts +2 -3
- package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +1 -0
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -0
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts +1 -0
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/index.d.ts +1 -13
- package/dist/ui/components/molecules/vc-breadcrumbs/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.d.ts +33 -0
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +14 -0
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.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-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
- package/dist/ui/types/index.d.ts +3 -2
- package/dist/ui/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 +84 -38
- package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +11 -4
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +37 -54
- package/shared/components/blade-navigation/types/index.ts +1 -1
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +2 -2
- package/shared/modules/dynamic/components/fields/GalleryField.ts +1 -1
- package/shared/modules/dynamic/composables/index.ts +1 -0
- package/shared/modules/dynamic/composables/useDynamicViewsUtils/index.ts +46 -0
- package/shared/modules/dynamic/factories/types/index.ts +16 -1
- package/shared/modules/dynamic/index.ts +2 -3
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +1 -0
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +7 -1
- package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +3 -0
- package/ui/components/molecules/vc-breadcrumbs/index.ts +1 -3
- package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +123 -5
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +10 -14
- package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +5 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
- package/ui/types/index.ts +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-breadcrumbs-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,WAAW,KAAM,SAAQ,WAAW;IACxC,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"vc-breadcrumbs-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,WAAW,KAAM,SAAQ,WAAW;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;;;;;;AAiGD,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"}
|
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
items: {
|
|
3
|
-
type: import("vue").PropType<import("../../../types").Breadcrumbs[]>;
|
|
4
|
-
default: () => never[];
|
|
5
|
-
};
|
|
6
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
7
|
-
items: {
|
|
8
|
-
type: import("vue").PropType<import("../../../types").Breadcrumbs[]>;
|
|
9
|
-
default: () => never[];
|
|
10
|
-
};
|
|
11
|
-
}>>, {
|
|
12
|
-
items: import("../../../types").Breadcrumbs[];
|
|
13
|
-
}, {}>;
|
|
1
|
+
export { default as VcBreadcrumbs } from "./vc-breadcrumbs.vue";
|
|
14
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -3,17 +3,50 @@ import { VcBreadcrumbs } from "./";
|
|
|
3
3
|
declare const _default: {
|
|
4
4
|
title: string;
|
|
5
5
|
component: import("vue").DefineComponent<{
|
|
6
|
+
variant: {
|
|
7
|
+
type: import("vue").PropType<"default" | "light">;
|
|
8
|
+
default: string;
|
|
9
|
+
};
|
|
6
10
|
items: {
|
|
7
11
|
type: import("vue").PropType<import("../../../types").Breadcrumbs[]>;
|
|
8
12
|
default: () => never[];
|
|
9
13
|
};
|
|
14
|
+
withArrow: {
|
|
15
|
+
type: import("vue").PropType<boolean>;
|
|
16
|
+
};
|
|
17
|
+
arrowIcon: {
|
|
18
|
+
type: import("vue").PropType<string>;
|
|
19
|
+
default: string;
|
|
20
|
+
};
|
|
21
|
+
arrowSize: {
|
|
22
|
+
type: import("vue").PropType<"s" | "xs" | "m" | "l" | "xl" | "xxl" | "xxxl">;
|
|
23
|
+
default: string;
|
|
24
|
+
};
|
|
10
25
|
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
26
|
+
variant: {
|
|
27
|
+
type: import("vue").PropType<"default" | "light">;
|
|
28
|
+
default: string;
|
|
29
|
+
};
|
|
11
30
|
items: {
|
|
12
31
|
type: import("vue").PropType<import("../../../types").Breadcrumbs[]>;
|
|
13
32
|
default: () => never[];
|
|
14
33
|
};
|
|
34
|
+
withArrow: {
|
|
35
|
+
type: import("vue").PropType<boolean>;
|
|
36
|
+
};
|
|
37
|
+
arrowIcon: {
|
|
38
|
+
type: import("vue").PropType<string>;
|
|
39
|
+
default: string;
|
|
40
|
+
};
|
|
41
|
+
arrowSize: {
|
|
42
|
+
type: import("vue").PropType<"s" | "xs" | "m" | "l" | "xl" | "xxl" | "xxxl">;
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
15
45
|
}>>, {
|
|
46
|
+
variant: "default" | "light";
|
|
16
47
|
items: import("../../../types").Breadcrumbs[];
|
|
48
|
+
arrowIcon: string;
|
|
49
|
+
arrowSize: "s" | "xs" | "m" | "l" | "xl" | "xxl" | "xxxl";
|
|
17
50
|
}, {}>;
|
|
18
51
|
args: {
|
|
19
52
|
items: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-breadcrumbs.stories.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"vc-breadcrumbs.stories.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnC,wBA+BuC;AAEvC,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO,aAAa,CAMhD,CAAC"}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import { Breadcrumbs } from "../../../types";
|
|
2
|
+
import { VcIcon } from "./../../atoms/vc-icon";
|
|
2
3
|
export interface Props {
|
|
3
4
|
items?: Breadcrumbs[];
|
|
5
|
+
variant?: "default" | "light";
|
|
6
|
+
withArrow?: boolean;
|
|
7
|
+
arrowIcon?: string;
|
|
8
|
+
arrowSize?: InstanceType<typeof VcIcon>["$props"]["size"];
|
|
4
9
|
}
|
|
5
10
|
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
6
11
|
items: () => never[];
|
|
12
|
+
variant: string;
|
|
13
|
+
arrowIcon: string;
|
|
14
|
+
arrowSize: string;
|
|
7
15
|
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
8
16
|
items: () => never[];
|
|
17
|
+
variant: string;
|
|
18
|
+
arrowIcon: string;
|
|
19
|
+
arrowSize: string;
|
|
9
20
|
}>>>, {
|
|
21
|
+
variant: "default" | "light";
|
|
10
22
|
items: Breadcrumbs[];
|
|
23
|
+
arrowIcon: string;
|
|
24
|
+
arrowSize: "s" | "xs" | "m" | "l" | "xl" | "xxl" | "xxxl";
|
|
11
25
|
}, {}>;
|
|
12
26
|
export default _default;
|
|
13
27
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-breadcrumbs.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"vc-breadcrumbs.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK/C,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;CAC3D;;;;;;;;;;;;;;;;;AA8ND,wBAMG;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-bar.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"vc-app-bar.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,MAAM,WAAW,KAAK;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;CACpD;;;;;;;;;;;;;;;AAwPD,wBAAwG;AACxG,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,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export interface Props {
|
|
|
7
7
|
icon?: string;
|
|
8
8
|
}
|
|
9
9
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<Props>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
-
close: (...args: any[]) => void;
|
|
11
10
|
expand: (...args: any[]) => void;
|
|
11
|
+
close: (...args: any[]) => void;
|
|
12
12
|
collapse: (...args: any[]) => void;
|
|
13
13
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & {
|
|
14
14
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-dynamic-property.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"vc-dynamic-property.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.ts"],"names":[],"mappings":";;;;;UAiaU,MAAM;gBARA,GAAG;cAEL,OAAO;;;;;;;;;;;;wBAnW6B,GAAG;;;;;2CAkWV,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS;eAK1F,MAAM;;;;;;;;;WAuBd,GAAG;;;;wBA9XwC,GAAG;;;;yCA6XrC,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAG,IAAI;;;cApB/C,MAAM;oBARA,GAAG;kBAEL,OAAO;;;;;;;;;;;;4BAnW6B,GAAG;;;;;+CAkWV,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS;mBAK1F,MAAM;;;;;;;;;oBAsBL,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;;wBA9XwC,GAAG;;;;;;;;;;kBAyW3C,MAAM;wBARA,GAAG;sBAEL,OAAO;;;;;;;;;;;;gCAnW6B,GAAG;;;;;mDAkWV,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS;uBAK1F,MAAM;;;;;;;;;wBAsBL,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;eAClD,GAAG;;;;4BA9XwC,GAAG;;;;;;AAhDrD,wBAmb2E;AAQ3E,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
package/dist/ui/types/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MaybeRef } from "vue";
|
|
1
2
|
import * as components from "./../components";
|
|
2
3
|
type TGlobalComponents<T> = {
|
|
3
4
|
[x in keyof T]: T[x];
|
|
@@ -8,8 +9,8 @@ declare module "vue" {
|
|
|
8
9
|
}
|
|
9
10
|
export interface Breadcrumbs {
|
|
10
11
|
icon?: string;
|
|
11
|
-
title: string
|
|
12
|
-
clickHandler?: (id: string) => void | Promise<void>;
|
|
12
|
+
title: MaybeRef<string | undefined>;
|
|
13
|
+
clickHandler?: (id: string) => void | boolean | Promise<void | boolean>;
|
|
13
14
|
id: string;
|
|
14
15
|
}
|
|
15
16
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ui/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAI9C,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AACF,OAAO,QAAQ,KAAK,CAAC;IAEnB,UAAiB,gBAAiB,SAAQ,iBAAiB,CAAC,OAAO,UAAU,CAAC;KAAG;CAClF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ui/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAI9C,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AACF,OAAO,QAAQ,KAAK,CAAC;IAEnB,UAAiB,gBAAiB,SAAQ,iBAAiB,CAAC,OAAO,UAAU,CAAC;KAAG;CAClF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IACxE,EAAE,EAAE,MAAM,CAAC;CACZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vc-shell/framework",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.198",
|
|
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.198",
|
|
63
|
+
"@vc-shell/config-generator": "^1.0.198",
|
|
64
|
+
"@vc-shell/ts-config": "^1.0.198",
|
|
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
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="tw-w-full tw-
|
|
2
|
+
<div class="tw-w-full tw-flex tw-flex-col tw-grow tw-basis-0">
|
|
3
|
+
<VcBreadcrumbs
|
|
4
|
+
v-if="blades && blades.length > 2"
|
|
5
|
+
:items="breadcrumbs"
|
|
6
|
+
class="tw-bg-white tw-p-2 tw-shadow-[2px_2px_8px_rgba(54,84,117,0.14)] tw-rounded-[var(--blade-border-radius)]"
|
|
7
|
+
:class="[
|
|
8
|
+
{
|
|
9
|
+
'tw-mt-4 tw-mx-2': !$isMobile.value,
|
|
10
|
+
'tw-p-4': $isMobile.value,
|
|
11
|
+
},
|
|
12
|
+
]"
|
|
13
|
+
variant="light"
|
|
14
|
+
with-arrow
|
|
15
|
+
/>
|
|
3
16
|
<render></render>
|
|
4
17
|
</div>
|
|
5
18
|
</template>
|
|
6
19
|
|
|
7
20
|
<script lang="ts" setup>
|
|
8
|
-
import { Ref, computed, inject, withDirectives, h, vShow } from "vue";
|
|
21
|
+
import { Ref, computed, inject, withDirectives, h, vShow, toRef } from "vue";
|
|
9
22
|
import { RouterView } from "vue-router";
|
|
10
23
|
import { BladeVNode, IParentCallArgs, useBladeNavigation } from "./../../../../../shared";
|
|
11
24
|
import { ErrorInterceptor } from "./../../../error-interceptor";
|
|
25
|
+
import VcBreadcrumbs from "./../../../../../ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue";
|
|
26
|
+
import { useBreadcrumbs } from "./../../../../../core/composables/useBreadcrumbs";
|
|
12
27
|
import { VcBladeView } from "./../vc-blade-view/vc-blade-view";
|
|
28
|
+
import { watchDebounced } from "@vueuse/core";
|
|
13
29
|
|
|
14
30
|
const { blades, closeBlade, onParentCall } = useBladeNavigation();
|
|
31
|
+
const { breadcrumbs, push, remove } = useBreadcrumbs();
|
|
15
32
|
|
|
16
33
|
const quantity = computed(() => {
|
|
17
34
|
return blades.value.length || 0;
|
|
@@ -19,48 +36,77 @@ const quantity = computed(() => {
|
|
|
19
36
|
|
|
20
37
|
const isMobile = inject("isMobile") as Ref<boolean>;
|
|
21
38
|
|
|
39
|
+
watchDebounced(
|
|
40
|
+
blades,
|
|
41
|
+
(newVal) => {
|
|
42
|
+
breadcrumbs.value.forEach((breadcrumb) => breadcrumb && remove([breadcrumb.id]));
|
|
43
|
+
|
|
44
|
+
newVal.forEach((blade) => {
|
|
45
|
+
push({
|
|
46
|
+
id: blade.props.navigation.idx.toString(),
|
|
47
|
+
title: toRef(blade.props.navigation.instance ?? { title: "" }, "title"),
|
|
48
|
+
clickHandler: async (id) => {
|
|
49
|
+
const isPrevented = await closeBlade(parseInt(id) + 1);
|
|
50
|
+
return !isPrevented;
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
deep: true,
|
|
57
|
+
immediate: true,
|
|
58
|
+
flush: "post",
|
|
59
|
+
debounce: 10,
|
|
60
|
+
},
|
|
61
|
+
);
|
|
62
|
+
|
|
22
63
|
const render = () => {
|
|
23
64
|
if (!blades.value.length) {
|
|
24
65
|
return h(RouterView);
|
|
25
66
|
}
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
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);
|
|
96
|
+
},
|
|
97
|
+
onVnodeUnmounted: reset,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
54
100
|
},
|
|
55
|
-
|
|
56
|
-
),
|
|
101
|
+
),
|
|
57
102
|
|
|
58
|
-
|
|
59
|
-
|
|
103
|
+
[[vShow, index >= quantity.value - (isMobile.value ? 1 : 2)]],
|
|
104
|
+
);
|
|
105
|
+
},
|
|
60
106
|
},
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
}),
|
|
110
|
+
]);
|
|
65
111
|
};
|
|
66
112
|
</script>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Slot, defineComponent, h, provide, ref, VNode, PropType, Component, watch } from "vue";
|
|
1
|
+
import { Slot, defineComponent, h, provide, ref, VNode, PropType, Component, watch, reactive } from "vue";
|
|
2
2
|
import { navigationViewLocation } from "./../../injectionKeys";
|
|
3
3
|
import { BladeVNode, CoreBladeExposed } from "../../types";
|
|
4
4
|
import { toRef } from "@vueuse/core";
|
|
@@ -19,11 +19,18 @@ export const VcBladeView = defineComponent({
|
|
|
19
19
|
watch(
|
|
20
20
|
() => [viewRef.value, bl.value] as const,
|
|
21
21
|
([instance, blade]) => {
|
|
22
|
-
if (blade && blade.props?.navigation) {
|
|
23
|
-
|
|
22
|
+
if (instance && blade && blade.props?.navigation) {
|
|
23
|
+
Object.assign(
|
|
24
|
+
blade.props.navigation,
|
|
25
|
+
reactive({
|
|
26
|
+
get instance() {
|
|
27
|
+
return instance;
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
);
|
|
24
31
|
}
|
|
25
32
|
},
|
|
26
|
-
{ flush: "
|
|
33
|
+
{ flush: "sync" },
|
|
27
34
|
);
|
|
28
35
|
|
|
29
36
|
provide(navigationViewLocation, bl.value!);
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
markRaw,
|
|
3
|
-
computed,
|
|
4
|
-
getCurrentInstance,
|
|
5
|
-
inject,
|
|
6
|
-
warn,
|
|
7
|
-
Component,
|
|
8
|
-
isVNode,
|
|
9
|
-
h,
|
|
10
|
-
shallowRef,
|
|
11
|
-
ComputedRef,
|
|
12
|
-
mergeProps,
|
|
13
|
-
reactive,
|
|
14
|
-
} from "vue";
|
|
1
|
+
import { computed, getCurrentInstance, inject, warn, Component, isVNode, h, shallowRef, ComputedRef, watch } from "vue";
|
|
15
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
16
3
|
import { createSharedComposable, reactiveComputed, watchDebounced } from "@vueuse/core";
|
|
17
4
|
import * as _ from "lodash-es";
|
|
@@ -62,9 +49,8 @@ interface IUseBladeNavigation {
|
|
|
62
49
|
| undefined
|
|
63
50
|
>
|
|
64
51
|
| undefined;
|
|
65
|
-
getCurrentBlade: () => BladeVNode;
|
|
66
52
|
setNavigationQuery: (query: Record<string, string | number>) => void;
|
|
67
|
-
getNavigationQuery: () => Record<string, string | number
|
|
53
|
+
getNavigationQuery: () => Record<string, string | number> | undefined;
|
|
68
54
|
}
|
|
69
55
|
|
|
70
56
|
const activeWorkspace = shallowRef<BladeVNode>();
|
|
@@ -143,7 +129,7 @@ const useBladeNavigationSingleton = createSharedComposable(() => {
|
|
|
143
129
|
|
|
144
130
|
const { parseUrl, parseWorkspaceUrl, getURLQuery } = utils(router);
|
|
145
131
|
|
|
146
|
-
|
|
132
|
+
watch(
|
|
147
133
|
() => route.path,
|
|
148
134
|
async (newVal, oldVal) => {
|
|
149
135
|
const workspaceUrl = parseWorkspaceUrl(newVal);
|
|
@@ -336,12 +322,13 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
336
322
|
try {
|
|
337
323
|
const instanceComponent = navigationView || activeWorkspace.value;
|
|
338
324
|
|
|
339
|
-
if (!instanceComponent) {
|
|
325
|
+
if (!(isVNode(instanceComponent) || activeWorkspace.value)) {
|
|
340
326
|
throw new Error("No workspace found");
|
|
341
327
|
}
|
|
342
328
|
|
|
343
329
|
const instanceComponentIndex = findInstanceComponentIndex(instanceComponent);
|
|
344
|
-
const instanceComponentChild =
|
|
330
|
+
const instanceComponentChild =
|
|
331
|
+
instanceComponentIndex >= 0 ? navigationInstance.blades.value[instanceComponentIndex + 1] : undefined;
|
|
345
332
|
|
|
346
333
|
let isPrevented = false;
|
|
347
334
|
|
|
@@ -366,7 +353,8 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
366
353
|
}
|
|
367
354
|
|
|
368
355
|
function findInstanceComponentIndex(instanceComponent: BladeVNode) {
|
|
369
|
-
return navigationInstance.blades.value
|
|
356
|
+
return navigationInstance.blades.value /* @ts-expect-error - findLastIndex is not parsed correctly by ts */
|
|
357
|
+
.findLastIndex((x) => _.isEqual(x.type, instanceComponent.type));
|
|
370
358
|
}
|
|
371
359
|
|
|
372
360
|
function createBladeNode<Blade extends Component>(args: {
|
|
@@ -522,14 +510,6 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
522
510
|
return { name: mainRouteAlias?.name, params: route.params };
|
|
523
511
|
}
|
|
524
512
|
|
|
525
|
-
/**
|
|
526
|
-
* The function getCurrentBlade returns the current BladeVNode instance's vnode.
|
|
527
|
-
* @returns the `vnode` property of the `instance` object, which is of type `BladeVNode`.
|
|
528
|
-
*/
|
|
529
|
-
function getCurrentBlade(): BladeVNode {
|
|
530
|
-
return instance.vnode;
|
|
531
|
-
}
|
|
532
|
-
|
|
533
513
|
const currentBladeNavigationData = computed(() => navigationView?.props?.navigation ?? undefined);
|
|
534
514
|
|
|
535
515
|
function onBeforeClose(cb: () => Promise<boolean | undefined>) {
|
|
@@ -543,40 +523,44 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
543
523
|
}
|
|
544
524
|
|
|
545
525
|
function setNavigationQuery(query: Record<string, string | number>) {
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
526
|
+
if (instance.vnode.props.navigation.idx === 0) {
|
|
527
|
+
// add blade name to query keys
|
|
528
|
+
const namedQuery = _.mapKeys(
|
|
529
|
+
_.mapValues(query, (value) => value?.toString()),
|
|
530
|
+
(value, key) => instance.vnode.type.name.toLowerCase() + "_" + key,
|
|
531
|
+
);
|
|
532
|
+
const cleanQuery = _.omitBy(namedQuery, _.isNil);
|
|
552
533
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
534
|
+
router.options.history.replace(
|
|
535
|
+
decodeURIComponent(
|
|
536
|
+
`${window.location.hash.substring(1).split("?")[0]}?${new URLSearchParams(cleanQuery).toString()}`,
|
|
537
|
+
),
|
|
538
|
+
);
|
|
539
|
+
}
|
|
558
540
|
}
|
|
559
541
|
|
|
560
542
|
function getNavigationQuery() {
|
|
561
|
-
|
|
562
|
-
|
|
543
|
+
if (instance.vnode.props.navigation.idx === 0) {
|
|
544
|
+
const queryKeys = Array.from(Object.keys(route.query));
|
|
545
|
+
const bladeQueryKeys = queryKeys.filter((key) => key.startsWith(instance.vnode.type.name.toLowerCase()));
|
|
563
546
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
547
|
+
const namedQuery = _.mapKeys(_.pick(route.query, bladeQueryKeys), (value, key) =>
|
|
548
|
+
key.replace(instance.vnode.type.name.toLowerCase() + "_", ""),
|
|
549
|
+
) as Record<string, string | number>;
|
|
567
550
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
551
|
+
const obj: typeof namedQuery = {};
|
|
552
|
+
for (const [key, value] of Object.entries(namedQuery)) {
|
|
553
|
+
const numValue = Number(value);
|
|
571
554
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
555
|
+
if (!isNaN(numValue)) {
|
|
556
|
+
obj[key] = numValue;
|
|
557
|
+
} else {
|
|
558
|
+
obj[key] = value;
|
|
559
|
+
}
|
|
576
560
|
}
|
|
577
|
-
}
|
|
578
561
|
|
|
579
|
-
|
|
562
|
+
return obj;
|
|
563
|
+
}
|
|
580
564
|
}
|
|
581
565
|
|
|
582
566
|
return {
|
|
@@ -586,7 +570,6 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
586
570
|
onParentCall,
|
|
587
571
|
resolveBladeByName,
|
|
588
572
|
routeResolver,
|
|
589
|
-
getCurrentBlade,
|
|
590
573
|
currentBladeNavigationData,
|
|
591
574
|
onBeforeClose,
|
|
592
575
|
setNavigationQuery,
|
|
@@ -94,7 +94,7 @@ export interface BladeVNode extends VNode {
|
|
|
94
94
|
onOpen?: () => void;
|
|
95
95
|
onClose?: () => void;
|
|
96
96
|
onBeforeClose?: () => Promise<boolean | undefined>;
|
|
97
|
-
instance:
|
|
97
|
+
instance: CoreBladeExposed | undefined | null;
|
|
98
98
|
idx: number;
|
|
99
99
|
};
|
|
100
100
|
onVnodeUnmounted?: VNodeMountHook | VNodeMountHook[];
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
icon="fas fa-cloud-upload-alt"
|
|
41
41
|
class="tw-text-[100px] tw-text-[#41afe6]"
|
|
42
42
|
></VcIcon>
|
|
43
|
-
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
43
|
+
<div class="tw-m-4 tw-text-xl tw-font-medium tw-text-center">
|
|
44
44
|
{{ t("ASSETS_MANAGER.EMPTY.UPLOAD_ASSETS") }}
|
|
45
45
|
</div>
|
|
46
46
|
<VcButton @click="toggleUploader">{{ t("ASSETS_MANAGER.EMPTY.UPLOAD") }}</VcButton>
|
|
47
47
|
</template>
|
|
48
48
|
<template v-else>
|
|
49
|
-
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
49
|
+
<div class="tw-m-4 tw-text-xl tw-font-medium tw-text-center">
|
|
50
50
|
{{ t("ASSETS_MANAGER.EMPTY.NO_ASSETS") }}
|
|
51
51
|
</div>
|
|
52
52
|
</template>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ref, WatchStopHandle, watch, onMounted, onUnmounted, getCurrentInstance, Ref } from "vue";
|
|
2
|
+
import { ListBaseBladeScope, DetailsBaseBladeScope, DetailsBladeExposed, ListBladeExposed } from "../..";
|
|
3
|
+
|
|
4
|
+
export interface IUseDynamicViewsUtils {
|
|
5
|
+
getBladeExposedData: <BladeScope extends ListBaseBladeScope | DetailsBaseBladeScope>(
|
|
6
|
+
scope: BladeScope,
|
|
7
|
+
) => BladeScope extends ListBaseBladeScope ? Ref<ListBladeExposed<BladeScope>> : Ref<DetailsBladeExposed<BladeScope>>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default () => {
|
|
11
|
+
const instance = getCurrentInstance();
|
|
12
|
+
|
|
13
|
+
function getBladeExposedData<BladeScope extends ListBaseBladeScope | DetailsBaseBladeScope>() {
|
|
14
|
+
const reactiveBlade = ref<BladeScope | null>(null);
|
|
15
|
+
|
|
16
|
+
const blade = ref(instance?.vnode);
|
|
17
|
+
|
|
18
|
+
let unwatch: WatchStopHandle | null = null;
|
|
19
|
+
|
|
20
|
+
const updateReactiveBlade = () => {
|
|
21
|
+
if (blade.value && blade.value.props?.navigation?.instance) {
|
|
22
|
+
reactiveBlade.value = blade.value.props.navigation.instance;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
unwatch = watch(blade, updateReactiveBlade, { immediate: true, deep: true });
|
|
27
|
+
|
|
28
|
+
onMounted(() => {
|
|
29
|
+
updateReactiveBlade();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
onUnmounted(() => {
|
|
33
|
+
if (unwatch) {
|
|
34
|
+
unwatch();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return reactiveBlade as unknown as BladeScope extends ListBaseBladeScope
|
|
39
|
+
? Ref<ListBladeExposed<BladeScope>>
|
|
40
|
+
: Ref<DetailsBladeExposed<BladeScope>>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
getBladeExposedData,
|
|
45
|
+
};
|
|
46
|
+
};
|