@vc-shell/framework 1.0.95 → 1.0.97

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,7 +1,7 @@
1
1
  export declare const VcDynamicProperty: <T>(__VLS_props: {
2
2
  property: T;
3
3
  modelValue: any;
4
- optionsGetter: (property: T, keyword?: string, locale?: string) => unknown[] | Promise<unknown[]>;
4
+ optionsGetter: (property: T, keyword?: string, locale?: string) => any[] | Promise<any[]>;
5
5
  required: boolean;
6
6
  multivalue?: boolean;
7
7
  multilanguage?: boolean;
@@ -26,7 +26,7 @@ export declare const VcDynamicProperty: <T>(__VLS_props: {
26
26
  props: {
27
27
  property: T;
28
28
  modelValue: any;
29
- optionsGetter: (property: T, keyword?: string, locale?: string) => unknown[] | Promise<unknown[]>;
29
+ optionsGetter: (property: T, keyword?: string, locale?: string) => any[] | Promise<any[]>;
30
30
  required: boolean;
31
31
  multivalue?: boolean;
32
32
  multilanguage?: boolean;
@@ -63,7 +63,7 @@ export declare const VcDynamicProperty: <T>(__VLS_props: {
63
63
  props: {
64
64
  property: T;
65
65
  modelValue: any;
66
- optionsGetter: (property: T, keyword?: string, locale?: string) => unknown[] | Promise<unknown[]>;
66
+ optionsGetter: (property: T, keyword?: string, locale?: string) => any[] | Promise<any[]>;
67
67
  required: boolean;
68
68
  multivalue?: boolean;
69
69
  multilanguage?: boolean;
@@ -103,7 +103,7 @@ export declare const VcDynamicProperty: <T>(__VLS_props: {
103
103
  props: {
104
104
  property: T;
105
105
  modelValue: any;
106
- optionsGetter: (property: T, keyword?: string, locale?: string) => unknown[] | Promise<unknown[]>;
106
+ optionsGetter: (property: T, keyword?: string, locale?: string) => any[] | Promise<any[]>;
107
107
  required: boolean;
108
108
  multivalue?: boolean;
109
109
  multilanguage?: boolean;
@@ -1,7 +1,7 @@
1
1
  declare const _default: <T>(__VLS_props: {
2
2
  property: T;
3
3
  modelValue: any;
4
- optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<unknown[]> | unknown[];
4
+ optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<any[]> | any[];
5
5
  required: boolean;
6
6
  multivalue?: boolean;
7
7
  multilanguage?: boolean;
@@ -26,7 +26,7 @@ declare const _default: <T>(__VLS_props: {
26
26
  props: {
27
27
  property: T;
28
28
  modelValue: any;
29
- optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<unknown[]> | unknown[];
29
+ optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<any[]> | any[];
30
30
  required: boolean;
31
31
  multivalue?: boolean;
32
32
  multilanguage?: boolean;
@@ -63,7 +63,7 @@ declare const _default: <T>(__VLS_props: {
63
63
  props: {
64
64
  property: T;
65
65
  modelValue: any;
66
- optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<unknown[]> | unknown[];
66
+ optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<any[]> | any[];
67
67
  required: boolean;
68
68
  multivalue?: boolean;
69
69
  multilanguage?: boolean;
@@ -103,7 +103,7 @@ declare const _default: <T>(__VLS_props: {
103
103
  props: {
104
104
  property: T;
105
105
  modelValue: any;
106
- optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<unknown[]> | unknown[];
106
+ optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<any[]> | any[];
107
107
  required: boolean;
108
108
  multivalue?: boolean;
109
109
  multilanguage?: boolean;
@@ -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":";;gBAgfgB,GAAG;2CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE;cACvF,OAAO;iBACJ,OAAO;oBACJ,OAAO;sBACL,MAAM;eACb,MAAM;iBACJ,OAAO;UACd,MAAM;mBACG,MAAM;mBACN,MAAM;mBACN;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,EAAE;YACK;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf;eACU,OAAO;kBACJ,MAAM;;;;oBArBR,GAAG;+CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE;kBACvF,OAAO;qBACJ,OAAO;wBACJ,OAAO;0BACL,MAAM;mBACb,MAAM;qBACJ,OAAO;cACd,MAAM;uBACG,MAAM;uBACN,MAAM;uBACN;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,EAAE;gBACK;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf;mBACU,OAAO;sBACJ,MAAM;;yBASe,IAAI;WACpC,GAAG;;;;;4BANwC,GAAG;kCAAwB,GAAG,EAAE;8BAAoB,MAAM;;;;;;oBAzB5F,GAAG;+CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE;kBACvF,OAAO;qBACJ,OAAO;wBACJ,OAAO;0BACL,MAAM;mBACb,MAAM;qBACJ,OAAO;cACd,MAAM;uBACG,MAAM;uBACN,MAAM;uBACN;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,EAAE;gBACK;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf;mBACU,OAAO;sBACJ,MAAM;;yBASe,IAAI;WACpC,GAAG;;;;;4BANwC,GAAG;kCAAwB,GAAG,EAAE;8BAAoB,MAAM;;;;;;;;;wBAzB5F,GAAG;mDACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE;sBACvF,OAAO;yBACJ,OAAO;4BACJ,OAAO;8BACL,MAAM;uBACb,MAAM;yBACJ,OAAO;kBACd,MAAM;2BACG,MAAM;2BACN,MAAM;2BACN;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,YAAY,CAAC,EAAE,MAAM,CAAC;aACvB,EAAE;oBACK;gBACN,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,KAAK,EAAE,MAAM,CAAC;aACf;uBACU,OAAO;0BACJ,MAAM;;6BASe,IAAI;eACpC,GAAG;;;;;gCANwC,GAAG;sCAAwB,GAAG,EAAE;kCAAoB,MAAM;;;;;AAlgB5G,wBA4gBkE"}
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":";;gBAgfgB,GAAG;2CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;cAC/E,OAAO;iBACJ,OAAO;oBACJ,OAAO;sBACL,MAAM;eACb,MAAM;iBACJ,OAAO;UACd,MAAM;mBACG,MAAM;mBACN,MAAM;mBACN;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,EAAE;YACK;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf;eACU,OAAO;kBACJ,MAAM;;;;oBArBR,GAAG;+CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;kBAC/E,OAAO;qBACJ,OAAO;wBACJ,OAAO;0BACL,MAAM;mBACb,MAAM;qBACJ,OAAO;cACd,MAAM;uBACG,MAAM;uBACN,MAAM;uBACN;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,EAAE;gBACK;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf;mBACU,OAAO;sBACJ,MAAM;;yBASe,IAAI;WACpC,GAAG;;;;;4BANwC,GAAG;kCAAwB,GAAG,EAAE;8BAAoB,MAAM;;;;;;oBAzB5F,GAAG;+CACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;kBAC/E,OAAO;qBACJ,OAAO;wBACJ,OAAO;0BACL,MAAM;mBACb,MAAM;qBACJ,OAAO;cACd,MAAM;uBACG,MAAM;uBACN,MAAM;uBACN;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,EAAE;gBACK;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf;mBACU,OAAO;sBACJ,MAAM;;yBASe,IAAI;WACpC,GAAG;;;;;4BANwC,GAAG;kCAAwB,GAAG,EAAE;8BAAoB,MAAM;;;;;;;;;wBAzB5F,GAAG;mDACwB,MAAM,WAAW,MAAM,KAAK,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;sBAC/E,OAAO;yBACJ,OAAO;4BACJ,OAAO;8BACL,MAAM;uBACb,MAAM;yBACJ,OAAO;kBACd,MAAM;2BACG,MAAM;2BACN,MAAM;2BACN;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,YAAY,CAAC,EAAE,MAAM,CAAC;aACvB,EAAE;oBACK;gBACN,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,KAAK,EAAE,MAAM,CAAC;aACf;uBACU,OAAO;0BACJ,MAAM;;6BASe,IAAI;eACpC,GAAG;;;;;gCANwC,GAAG;sCAAwB,GAAG,EAAE;kCAAoB,MAAM;;;;;AAlgB5G,wBA4gBkE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.0.95",
3
+ "version": "1.0.97",
4
4
  "main": "./dist/framework.mjs",
5
5
  "module": "./dist/framework.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -55,8 +55,8 @@
55
55
  "whatwg-fetch": "^3.6.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@vc-shell/api-client-generator": "^1.0.95",
59
- "@vc-shell/config-generator": "^1.0.95",
58
+ "@vc-shell/api-client-generator": "^1.0.97",
59
+ "@vc-shell/config-generator": "^1.0.97",
60
60
  "@vitejs/plugin-vue": "^4.2.3",
61
61
  "sass": "^1.62.1",
62
62
  "typescript": "~5.0.4",
@@ -9,6 +9,7 @@ import {
9
9
  markRaw,
10
10
  inject,
11
11
  nextTick,
12
+ warn,
12
13
  } from "vue";
13
14
  import * as _ from "lodash-es";
14
15
  import { useRouter, RouteLocationNormalized } from "vue-router";
@@ -55,6 +56,7 @@ interface IUseBladeNavigation {
55
56
  resolveBlades: (to: RouteLocationNormalized) => string;
56
57
  resolveLastBlade: (pages: BladePageComponent[]) => void;
57
58
  resolveUnknownRoutes: (to: RouteLocationNormalized) => string;
59
+ resolveBladeByName: (name: string) => BladeConstructor;
58
60
  }
59
61
 
60
62
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -118,6 +120,9 @@ export function useBladeNavigation(): IUseBladeNavigation {
118
120
  { blade, param, options, onOpen, onClose }: IBladeEvent<Blade>,
119
121
  isWorkspace = false
120
122
  ) {
123
+ if (!blade) {
124
+ throw new Error("You should pass blade component as openBlade argument");
125
+ }
121
126
  if (isWorkspace) {
122
127
  openWorkspace({ blade, param, options });
123
128
  return;
@@ -205,6 +210,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
205
210
  if (blade && checkPermission(blade.permissions)) {
206
211
  navigationInstance.blades.value.push({
207
212
  blade: markRaw(blade),
213
+ ...resolveDynamicProps(blade),
208
214
  options,
209
215
  param,
210
216
  onOpen,
@@ -222,6 +228,21 @@ export function useBladeNavigation(): IUseBladeNavigation {
222
228
  }
223
229
  }
224
230
 
231
+ function resolveDynamicProps(blade: BladeConstructor) {
232
+ const routerRoutes = router.getRoutes();
233
+
234
+ const selectedRoute = routerRoutes.find((r) => r.path === blade.url);
235
+
236
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
237
+ const selectedRouteProps = selectedRoute?.props as Record<string, () => any>;
238
+
239
+ if (selectedRouteProps && "default" in selectedRouteProps && typeof selectedRouteProps.default === "function") {
240
+ return selectedRouteProps.default();
241
+ }
242
+
243
+ return {};
244
+ }
245
+
225
246
  async function onParentCall(index: number, args: IParentCallArgs) {
226
247
  console.debug(`vc-app#onParentCall(${index}, { method: ${args.method} }) called.`);
227
248
 
@@ -296,18 +317,33 @@ export function useBladeNavigation(): IUseBladeNavigation {
296
317
  }
297
318
  }
298
319
 
320
+ function resolveBladeByName(name: string) {
321
+ if (!instance) {
322
+ warn("resolveComponentByName can only be used in setup().");
323
+ return;
324
+ }
325
+ if (!name) {
326
+ throw new Error("blade name is required");
327
+ }
328
+
329
+ console.log(instance.appContext.components);
330
+ const components = instance && instance.appContext.components;
331
+ return components[name] as BladeConstructor;
332
+ }
333
+
299
334
  return {
300
- blades: computed(() => navigationInstance.blades.value),
335
+ blades: computed(() => navigationInstance?.blades.value),
301
336
  workspaceOptions: computed(() => workspaceOptions.value),
302
337
  workspaceParam: computed(() => workspaceParam.value),
303
338
  lastBladeData: computed(() => lastBladeData.value),
304
339
  activeBlade,
305
- bladesRefs: navigationInstance.bladesRefs,
340
+ bladesRefs: navigationInstance?.bladesRefs,
306
341
  openBlade,
307
342
  closeBlade,
308
343
  onParentCall,
309
344
  resolveBlades,
310
345
  resolveUnknownRoutes,
311
346
  resolveLastBlade,
347
+ resolveBladeByName,
312
348
  };
313
349
  }
@@ -25,9 +25,6 @@ export type BladePageComponent = BladeConstructor;
25
25
  export type CoreBladeAdditionalSettings = {
26
26
  url?: `/${string}`;
27
27
  permissions?: string | string[];
28
- scope?: {
29
- notificationClick?: (notification: PushNotification | Record<string, any>) => IBladeEvent;
30
- };
31
28
  };
32
29
 
33
30
  export type CoreBladeNavigationData = {
@@ -36,7 +33,6 @@ export type CoreBladeNavigationData = {
36
33
 
37
34
  export interface CoreBladeExposed {
38
35
  title?: string;
39
- notificationClick?: (notification: PushNotification) => IBladeEvent;
40
36
  onBeforeClose?: () => Promise<boolean>;
41
37
  reloadParent?: () => void;
42
38
  reload?: () => void;
@@ -272,7 +272,7 @@ const props = withDefaults(
272
272
  defineProps<{
273
273
  property: T;
274
274
  modelValue: any;
275
- optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<unknown[]> | unknown[];
275
+ optionsGetter: (property: T, keyword?: string, locale?: string) => Promise<any[]> | any[];
276
276
  required: boolean;
277
277
  multivalue?: boolean;
278
278
  multilanguage?: boolean;