@vc-shell/framework 1.0.196 → 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.
Files changed (61) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/core/composables/useBreadcrumbs/index.ts +15 -9
  3. package/core/plugins/modularity/index.ts +1 -1
  4. package/dist/core/composables/useBreadcrumbs/index.d.ts +1 -6
  5. package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
  6. package/dist/framework.js +26235 -26049
  7. package/dist/index.css +1 -1
  8. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
  9. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
  10. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +1 -2
  11. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  12. package/dist/shared/components/blade-navigation/types/index.d.ts +1 -1
  13. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  14. package/dist/shared/modules/dynamic/composables/index.d.ts +1 -0
  15. package/dist/shared/modules/dynamic/composables/index.d.ts.map +1 -1
  16. package/dist/shared/modules/dynamic/composables/useDynamicViewsUtils/index.d.ts +10 -0
  17. package/dist/shared/modules/dynamic/composables/useDynamicViewsUtils/index.d.ts.map +1 -0
  18. package/dist/shared/modules/dynamic/factories/types/index.d.ts +13 -1
  19. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  20. package/dist/shared/modules/dynamic/index.d.ts +2 -3
  21. package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
  22. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +1 -0
  23. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  24. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -0
  25. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts +1 -0
  28. package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts.map +1 -1
  29. package/dist/ui/components/molecules/vc-breadcrumbs/index.d.ts +1 -13
  30. package/dist/ui/components/molecules/vc-breadcrumbs/index.d.ts.map +1 -1
  31. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.d.ts +33 -0
  32. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.stories.d.ts.map +1 -1
  33. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +14 -0
  34. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  35. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  36. 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
  37. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +1 -1
  38. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
  39. package/dist/ui/types/index.d.ts +3 -2
  40. package/dist/ui/types/index.d.ts.map +1 -1
  41. package/package.json +4 -4
  42. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +84 -38
  43. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +11 -4
  44. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +40 -62
  45. package/shared/components/blade-navigation/types/index.ts +1 -1
  46. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +2 -2
  47. package/shared/modules/dynamic/components/fields/GalleryField.ts +1 -1
  48. package/shared/modules/dynamic/composables/index.ts +1 -0
  49. package/shared/modules/dynamic/composables/useDynamicViewsUtils/index.ts +46 -0
  50. package/shared/modules/dynamic/factories/types/index.ts +16 -1
  51. package/shared/modules/dynamic/index.ts +2 -3
  52. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +1 -0
  53. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +7 -1
  54. package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +3 -0
  55. package/ui/components/molecules/vc-breadcrumbs/index.ts +1 -3
  56. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +123 -5
  57. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +10 -14
  58. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +11 -9
  59. package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +5 -1
  60. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +1 -1
  61. package/ui/types/index.ts +3 -2
@@ -1,6 +1,7 @@
1
1
  import { Breadcrumbs } from "../../../../../types";
2
2
  export interface Props extends Breadcrumbs {
3
3
  current: boolean;
4
+ variant?: "default" | "light";
4
5
  }
5
6
  export interface Emits {
6
7
  (event: "click"): void;
@@ -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;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;;;;;;AAgGD,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
+ {"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 declare const VcBreadcrumbs: import("vue").DefineComponent<{
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":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;MAAsC,CAAC"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnC,wBA+BuC;AAEvC,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO,aAAa,CAMhD,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;AAG7C,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB;;;;;;;;AAwED,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
+ {"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;AAI/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;;;;;;;;;;;;;;;AA6PD,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"}
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"}
@@ -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;;;;;;;;;;;;AAuOD,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;;;;;;;;;;;;AAyOD,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"}
@@ -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":";;;;;UA6ZU,MAAM;gBARA,GAAG;cAEL,OAAO;;;;;;;;;;;;wBA/V6B,GAAG;;;;;2CA8VV,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS;eAK1F,MAAM;;;;;;;;;WAuBd,GAAG;;;;wBA1XwC,GAAG;;;;yCAyXrC,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAG,IAAI;;;cApB/C,MAAM;oBARA,GAAG;kBAEL,OAAO;;;;;;;;;;;;4BA/V6B,GAAG;;;;;+CA8VV,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;;;;wBA1XwC,GAAG;;;;;;;;;;kBAqW3C,MAAM;wBARA,GAAG;sBAEL,OAAO;;;;;;;;;;;;gCA/V6B,GAAG;;;;;mDA8VV,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;;;;4BA1XwC,GAAG;;;;;;AAhDrD,wBA+a2E;AAQ3E,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
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"}
@@ -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;IACd,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;CACZ"}
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.196",
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.196",
63
- "@vc-shell/config-generator": "^1.0.196",
64
- "@vc-shell/ts-config": "^1.0.196",
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",
@@ -1,17 +1,34 @@
1
1
  <template>
2
- <div class="tw-w-full tw-overflow-hidden tw-flex tw-grow tw-basis-0 tw-relative">
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 blades.value.map((bladeVNode, index) => {
27
- if (bladeVNode.type.isBlade) {
28
- return h(
29
- ErrorInterceptor,
30
- {
31
- key: index,
32
- capture: true,
33
- },
34
- {
35
- default: ({ error, reset }: Parameters<InstanceType<typeof ErrorInterceptor>["$slots"]["default"]>["0"]) => {
36
- return withDirectives(
37
- h(
38
- VcBladeView,
39
- { key: `${bladeVNode.type?.name}_${index}` || `blade_${index}`, blade: bladeVNode },
40
- {
41
- default: ({ Component }: { Component: BladeVNode }) => {
42
- return h(Component, {
43
- error,
44
- closable: index >= 1,
45
- expandable: quantity.value > 1,
46
- expanded: index === quantity.value - 1,
47
- "onClose:blade": () => closeBlade(index),
48
- "onParent:call": (args: IParentCallArgs) => {
49
- const instance = blades.value?.[index - 1]?.props?.navigation?.instance.value;
50
- if (instance) onParentCall(instance, args);
51
- },
52
- onVnodeUnmounted: reset,
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
- [[vShow, index >= quantity.value - (isMobile.value ? 1 : 2)]],
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
- blade.props.navigation.instance = toRef(instance);
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: "post" },
33
+ { flush: "sync" },
27
34
  );
28
35
 
29
36
  provide(navigationViewLocation, bl.value!);
@@ -1,16 +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
- } from "vue";
1
+ import { computed, getCurrentInstance, inject, warn, Component, isVNode, h, shallowRef, ComputedRef, watch } from "vue";
14
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
15
3
  import { createSharedComposable, reactiveComputed, watchDebounced } from "@vueuse/core";
16
4
  import * as _ from "lodash-es";
@@ -61,9 +49,8 @@ interface IUseBladeNavigation {
61
49
  | undefined
62
50
  >
63
51
  | undefined;
64
- getCurrentBlade: () => BladeVNode;
65
52
  setNavigationQuery: (query: Record<string, string | number>) => void;
66
- getNavigationQuery: () => Record<string, string | number>;
53
+ getNavigationQuery: () => Record<string, string | number> | undefined;
67
54
  }
68
55
 
69
56
  const activeWorkspace = shallowRef<BladeVNode>();
@@ -142,7 +129,7 @@ const useBladeNavigationSingleton = createSharedComposable(() => {
142
129
 
143
130
  const { parseUrl, parseWorkspaceUrl, getURLQuery } = utils(router);
144
131
 
145
- watchDebounced(
132
+ watch(
146
133
  () => route.path,
147
134
  async (newVal, oldVal) => {
148
135
  const workspaceUrl = parseWorkspaceUrl(newVal);
@@ -171,15 +158,8 @@ const useBladeNavigationSingleton = createSharedComposable(() => {
171
158
  }
172
159
 
173
160
  function updateActiveWorkspace(wsRouteComponent: BladeVNode) {
174
- navigationInstance.blades.value[0] = markRaw(
175
- Object.assign(wsRouteComponent, {
176
- props: mergeProps(wsRouteComponent.props, {
177
- navigation: {
178
- idx: 0,
179
- },
180
- }),
181
- }),
182
- );
161
+ wsRouteComponent.props.navigation.idx = 0;
162
+ navigationInstance.blades.value[0] = wsRouteComponent;
183
163
  activeWorkspace.value = wsRouteComponent;
184
164
  }
185
165
 
@@ -342,12 +322,13 @@ export function useBladeNavigation(): IUseBladeNavigation {
342
322
  try {
343
323
  const instanceComponent = navigationView || activeWorkspace.value;
344
324
 
345
- if (!instanceComponent) {
325
+ if (!(isVNode(instanceComponent) || activeWorkspace.value)) {
346
326
  throw new Error("No workspace found");
347
327
  }
348
328
 
349
329
  const instanceComponentIndex = findInstanceComponentIndex(instanceComponent);
350
- const instanceComponentChild = navigationInstance.blades.value[instanceComponentIndex + 1];
330
+ const instanceComponentChild =
331
+ instanceComponentIndex >= 0 ? navigationInstance.blades.value[instanceComponentIndex + 1] : undefined;
351
332
 
352
333
  let isPrevented = false;
353
334
 
@@ -372,7 +353,8 @@ export function useBladeNavigation(): IUseBladeNavigation {
372
353
  }
373
354
 
374
355
  function findInstanceComponentIndex(instanceComponent: BladeVNode) {
375
- return navigationInstance.blades.value.findIndex((x) => _.isEqual(x.type, instanceComponent.type));
356
+ return navigationInstance.blades.value /* @ts-expect-error - findLastIndex is not parsed correctly by ts */
357
+ .findLastIndex((x) => _.isEqual(x.type, instanceComponent.type));
376
358
  }
377
359
 
378
360
  function createBladeNode<Blade extends Component>(args: {
@@ -406,6 +388,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
406
388
  if (args.method && parentExposedMethods && typeof parentExposedMethods[args.method] === "function") {
407
389
  const method = parentExposedMethods[args.method] as (args: unknown) => Promise<unknown>;
408
390
  const result = await method(args.args);
391
+
409
392
  if (typeof args.callback === "function") {
410
393
  args.callback(result);
411
394
  }
@@ -527,14 +510,6 @@ export function useBladeNavigation(): IUseBladeNavigation {
527
510
  return { name: mainRouteAlias?.name, params: route.params };
528
511
  }
529
512
 
530
- /**
531
- * The function getCurrentBlade returns the current BladeVNode instance's vnode.
532
- * @returns the `vnode` property of the `instance` object, which is of type `BladeVNode`.
533
- */
534
- function getCurrentBlade(): BladeVNode {
535
- return instance.vnode;
536
- }
537
-
538
513
  const currentBladeNavigationData = computed(() => navigationView?.props?.navigation ?? undefined);
539
514
 
540
515
  function onBeforeClose(cb: () => Promise<boolean | undefined>) {
@@ -548,40 +523,44 @@ export function useBladeNavigation(): IUseBladeNavigation {
548
523
  }
549
524
 
550
525
  function setNavigationQuery(query: Record<string, string | number>) {
551
- // add blade name to query keys
552
- const namedQuery = _.mapKeys(
553
- _.mapValues(query, (value) => value?.toString()),
554
- (value, key) => instance.vnode.type.name.toLowerCase() + "_" + key,
555
- );
556
- const cleanQuery = _.omitBy(namedQuery, _.isNil);
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);
557
533
 
558
- router.options.history.replace(
559
- decodeURIComponent(
560
- `${window.location.hash.substring(1).split("?")[0]}?${new URLSearchParams(cleanQuery).toString()}`,
561
- ),
562
- );
534
+ router.options.history.replace(
535
+ decodeURIComponent(
536
+ `${window.location.hash.substring(1).split("?")[0]}?${new URLSearchParams(cleanQuery).toString()}`,
537
+ ),
538
+ );
539
+ }
563
540
  }
564
541
 
565
542
  function getNavigationQuery() {
566
- const queryKeys = Array.from(Object.keys(route.query));
567
- const bladeQueryKeys = queryKeys.filter((key) => key.startsWith(instance.vnode.type.name.toLowerCase()));
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()));
568
546
 
569
- const namedQuery = _.mapKeys(_.pick(route.query, bladeQueryKeys), (value, key) =>
570
- key.replace(instance.vnode.type.name.toLowerCase() + "_", ""),
571
- ) as Record<string, string | number>;
547
+ const namedQuery = _.mapKeys(_.pick(route.query, bladeQueryKeys), (value, key) =>
548
+ key.replace(instance.vnode.type.name.toLowerCase() + "_", ""),
549
+ ) as Record<string, string | number>;
572
550
 
573
- const obj: typeof namedQuery = {};
574
- for (const [key, value] of Object.entries(namedQuery)) {
575
- const numValue = Number(value);
551
+ const obj: typeof namedQuery = {};
552
+ for (const [key, value] of Object.entries(namedQuery)) {
553
+ const numValue = Number(value);
576
554
 
577
- if (!isNaN(numValue)) {
578
- obj[key] = numValue;
579
- } else {
580
- obj[key] = value;
555
+ if (!isNaN(numValue)) {
556
+ obj[key] = numValue;
557
+ } else {
558
+ obj[key] = value;
559
+ }
581
560
  }
582
- }
583
561
 
584
- return obj;
562
+ return obj;
563
+ }
585
564
  }
586
565
 
587
566
  return {
@@ -591,7 +570,6 @@ export function useBladeNavigation(): IUseBladeNavigation {
591
570
  onParentCall,
592
571
  resolveBladeByName,
593
572
  routeResolver,
594
- getCurrentBlade,
595
573
  currentBladeNavigationData,
596
574
  onBeforeClose,
597
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: Ref<CoreBladeExposed | undefined | null>;
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>
@@ -83,7 +83,7 @@ export default {
83
83
  t(
84
84
  `${props.bladeContext?.settings?.localizationPrefix
85
85
  .trim()
86
- .toUpperCase()}.PAGES.DETAILS.ALERTS.DELETE_CONFIRMATION`,
86
+ .toUpperCase()}.PAGES.ALERTS.IMAGE_DELETE_CONFIRMATION`,
87
87
  ),
88
88
  ),
89
89
  )
@@ -1,3 +1,4 @@
1
1
  export { default as useFilterBuilder } from "./useFilterBuilder";
2
2
  export { useTableTemplates } from "./useTableTemplates";
3
3
  export { useToolbarReducer } from "./useToolbarReducer";
4
+ export { default as useDynamicViewsUtils } from "./useDynamicViewsUtils";