@things-factory/lite-menu 8.0.0-alpha.8 → 8.0.0-beta.0

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 (29) hide show
  1. package/client/actions/lite-menu.ts +10 -2
  2. package/client/pages/addon-menu-setting.ts +28 -13
  3. package/client/reducers/lite-menu.ts +5 -4
  4. package/dist-client/actions/lite-menu.js +1 -0
  5. package/dist-client/actions/lite-menu.js.map +1 -1
  6. package/dist-client/pages/addon-menu-setting.js +28 -13
  7. package/dist-client/pages/addon-menu-setting.js.map +1 -1
  8. package/dist-client/reducers/lite-menu.js +5 -4
  9. package/dist-client/reducers/lite-menu.js.map +1 -1
  10. package/dist-client/tsconfig.tsbuildinfo +1 -1
  11. package/dist-server/service/lite-menu/lite-menu-query.d.ts +2 -1
  12. package/dist-server/service/lite-menu/lite-menu-query.js +31 -14
  13. package/dist-server/service/lite-menu/lite-menu-query.js.map +1 -1
  14. package/dist-server/service/lite-menu/lite-menu-type.d.ts +5 -3
  15. package/dist-server/service/lite-menu/lite-menu-type.js +14 -7
  16. package/dist-server/service/lite-menu/lite-menu-type.js.map +1 -1
  17. package/dist-server/service/lite-menu/lite-menu.d.ts +4 -2
  18. package/dist-server/service/lite-menu/lite-menu.js +28 -6
  19. package/dist-server/service/lite-menu/lite-menu.js.map +1 -1
  20. package/dist-server/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +22 -22
  22. package/server/service/lite-menu/lite-menu-query.ts +31 -17
  23. package/server/service/lite-menu/lite-menu-type.ts +11 -6
  24. package/server/service/lite-menu/lite-menu.ts +28 -6
  25. package/translations/en.json +1 -0
  26. package/translations/ja.json +1 -0
  27. package/translations/ko.json +1 -0
  28. package/translations/ms.json +1 -0
  29. package/translations/zh.json +1 -0
@@ -1,5 +1,5 @@
1
1
  import { Domain, ListParam } from '@things-factory/shell';
2
- import { User } from '@things-factory/auth-base';
2
+ import { User, Role } from '@things-factory/auth-base';
3
3
  import { Board } from '@things-factory/board-service';
4
4
  import { LiteMenu } from './lite-menu';
5
5
  import { LiteMenuList } from './lite-menu-type';
@@ -9,6 +9,7 @@ export declare class LiteMenuQuery {
9
9
  myLiteMenus(params: ListParam, context: ResolverContext): Promise<LiteMenuList>;
10
10
  label(liteMenu: LiteMenu, context: ResolverContext): Promise<String>;
11
11
  board(liteMenu: LiteMenu): Promise<Board>;
12
+ role(liteMenu: LiteMenu): Promise<Role>;
12
13
  domain(liteMenu: LiteMenu): Promise<Domain>;
13
14
  updater(liteMenu: LiteMenu): Promise<User>;
14
15
  creator(liteMenu: LiteMenu): Promise<User>;
@@ -31,21 +31,28 @@ let LiteMenuQuery = class LiteMenuQuery {
31
31
  return { items, total };
32
32
  }
33
33
  async myLiteMenus(params, context) {
34
- const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
35
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
34
+ const { domain, user } = context.state;
35
+ const me = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
36
+ where: { id: user.id },
37
+ relations: ['roles']
38
+ });
39
+ const roles = me.roles
40
+ .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))
41
+ .map(role => role.id);
42
+ const [items, total] = await (0, shell_1.getQueryBuilderFromListParams)({
36
43
  repository: (0, shell_1.getRepository)(lite_menu_1.LiteMenu),
37
44
  params,
38
45
  domain,
46
+ alias: 'menu',
39
47
  searchables: ['name', 'description']
40
- });
41
- var [items, total] = await queryBuilder.getManyAndCount();
42
- const filtered = [];
43
- for (let item of items) {
44
- if (await (0, auth_base_1.checkPermission)(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {
45
- filtered.push(item);
46
- }
47
- }
48
- return { items: filtered, total: filtered.length };
48
+ })
49
+ .andWhere('menu.active = :active', { active: true })
50
+ .andWhere(new typeorm_1.Brackets(qb => {
51
+ qb.where('menu.role IN (:...roles)').orWhere('menu.role is null');
52
+ }))
53
+ .setParameter('roles', roles)
54
+ .getManyAndCount();
55
+ return { items, total };
49
56
  }
50
57
  async label(liteMenu, context) {
51
58
  const { lng } = context.state;
@@ -57,14 +64,17 @@ let LiteMenuQuery = class LiteMenuQuery {
57
64
  return await (0, shell_1.getRepository)(board_service_1.Board).findOneBy({ id: liteMenu.value });
58
65
  }
59
66
  }
67
+ async role(liteMenu) {
68
+ return liteMenu.roleId && (await (0, shell_1.getRepository)(auth_base_1.Role).findOneBy({ id: liteMenu.roleId }));
69
+ }
60
70
  async domain(liteMenu) {
61
- return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: liteMenu.domainId });
71
+ return liteMenu.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: liteMenu.domainId }));
62
72
  }
63
73
  async updater(liteMenu) {
64
- return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: liteMenu.updaterId });
74
+ return liteMenu.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: liteMenu.updaterId }));
65
75
  }
66
76
  async creator(liteMenu) {
67
- return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: liteMenu.creatorId });
77
+ return liteMenu.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: liteMenu.creatorId }));
68
78
  }
69
79
  };
70
80
  exports.LiteMenuQuery = LiteMenuQuery;
@@ -107,6 +117,13 @@ tslib_1.__decorate([
107
117
  tslib_1.__metadata("design:paramtypes", [lite_menu_1.LiteMenu]),
108
118
  tslib_1.__metadata("design:returntype", Promise)
109
119
  ], LiteMenuQuery.prototype, "board", null);
120
+ tslib_1.__decorate([
121
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.Role),
122
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
123
+ tslib_1.__metadata("design:type", Function),
124
+ tslib_1.__metadata("design:paramtypes", [lite_menu_1.LiteMenu]),
125
+ tslib_1.__metadata("design:returntype", Promise)
126
+ ], LiteMenuQuery.prototype, "role", null);
110
127
  tslib_1.__decorate([
111
128
  (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
112
129
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User, checkPermission } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch my own LiteMenus' })\n async myLiteMenus(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<LiteMenuList> {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n const filtered = []\n\n for (let item of items) {\n if (await checkPermission(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {\n filtered.push(item)\n }\n }\n\n return { items: filtered, total: filtered.length }\n }\n\n @FieldResolver(type => String)\n async label(@Root() liteMenu: LiteMenu, @Ctx() context: ResolverContext): Promise<String> {\n const { lng } = context.state\n const { labels, name } = liteMenu\n\n return (lng && labels && labels[lng]) || name\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return await getRepository(Domain).findOneBy({ id: liteMenu.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":";;;;AAAA,qCAAsC;AACtC,+CAAmF;AAEnF,iDAAuG;AACvG,yDAAsD;AACtD,iEAAqD;AAErD,2CAAsC;AACtC,qDAA+C;AAGxC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAElB,AAAN,KAAK,CAAC,QAAQ,CAAY,EAAU,EAAS,OAAwB;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,oBAAQ,CAAC,CAAA;QAE1C,IAAI,QAAQ,GAAQ,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAC/E,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAA0B,MAAiB,EAAS,OAAwB;QACzF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,oBAAQ,CAAC;YACnC,MAAM;YACN,MAAM;YACN,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAEzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACU,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,OAAO,CAAC;SACrB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK;aACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;aACrG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qCAA6B,EAAC;YACzD,UAAU,EAAE,IAAA,qBAAa,EAAC,oBAAQ,CAAC;YACnC,MAAM;YACN,MAAM;YACN,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC;aACC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aACnD,QAAQ,CACP,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE;YAChB,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACnE,CAAC,CAAC,CACH;aACA,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;aAC5B,eAAe,EAAE,CAAA;QAEpB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,QAAkB,EAAS,OAAwB;QACrE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;QAEjC,OAAO,CAAC,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,QAAkB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3F,OAAO,MAAM,IAAA,qBAAa,EAAC,qBAAK,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAS,QAAkB;QACnC,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1F,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,QAAkB;QACrC,OAAO,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,QAAkB;QACtC,OAAO,QAAQ,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,QAAkB;QACtC,OAAO,QAAQ,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;CACF,CAAA;AAlGY,sCAAa;AAElB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACnD,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6CAU3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6BAAY,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAC9D,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;8CAYzD;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6BAAY,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAE1E,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;gDA+B3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAsB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAhB,oBAAQ;;0CAKrC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;0CAIrC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;yCAEpC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;2CAEtC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;4CAEvC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;4CAEvC;wBAjGU,aAAa;IADzB,IAAA,uBAAQ,EAAC,oBAAQ,CAAC;GACN,aAAa,CAkGzB","sourcesContent":["import { In, Brackets } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User, Role } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch my own LiteMenus' })\n async myLiteMenus(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<LiteMenuList> {\n const { domain, user } = context.state\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n alias: 'menu',\n searchables: ['name', 'description']\n })\n .andWhere('menu.active = :active', { active: true })\n .andWhere(\n new Brackets(qb => {\n qb.where('menu.role IN (:...roles)').orWhere('menu.role is null')\n })\n )\n .setParameter('roles', roles)\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => String)\n async label(@Root() liteMenu: LiteMenu, @Ctx() context: ResolverContext): Promise<String> {\n const { lng } = context.state\n const { labels, name } = liteMenu\n\n return (lng && labels && labels[lng]) || name\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Role)\n async role(@Root() liteMenu: LiteMenu) {\n return liteMenu.roleId && (await getRepository(Role).findOneBy({ id: liteMenu.roleId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return liteMenu.domainId && (await getRepository(Domain).findOneBy({ id: liteMenu.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.updaterId && (await getRepository(User).findOneBy({ id: liteMenu.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.creatorId && (await getRepository(User).findOneBy({ id: liteMenu.creatorId }))\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { PrivilegeInput } from '@things-factory/auth-base';
1
+ import { ObjectRef } from '@things-factory/shell';
2
2
  import { LiteMenu } from './lite-menu';
3
3
  export declare class NewLiteMenu {
4
4
  name: string;
@@ -10,8 +10,9 @@ export declare class NewLiteMenu {
10
10
  icon?: string;
11
11
  value?: string;
12
12
  active?: boolean;
13
- privilege?: PrivilegeInput;
13
+ role?: ObjectRef;
14
14
  labels?: any;
15
+ help?: string;
15
16
  }
16
17
  export declare class LiteMenuPatch {
17
18
  name: string;
@@ -23,8 +24,9 @@ export declare class LiteMenuPatch {
23
24
  icon?: string;
24
25
  value?: string;
25
26
  active?: boolean;
26
- privilege?: PrivilegeInput;
27
+ role?: ObjectRef;
27
28
  labels?: any;
29
+ help?: string;
28
30
  }
29
31
  export declare class LiteMenuList {
30
32
  items: LiteMenu[];
@@ -4,7 +4,6 @@ exports.LiteMenuList = exports.LiteMenuPatch = exports.NewLiteMenu = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const shell_1 = require("@things-factory/shell");
7
- const auth_base_1 = require("@things-factory/auth-base");
8
7
  const lite_menu_1 = require("./lite-menu");
9
8
  let NewLiteMenu = class NewLiteMenu {
10
9
  };
@@ -46,13 +45,17 @@ tslib_1.__decorate([
46
45
  tslib_1.__metadata("design:type", Boolean)
47
46
  ], NewLiteMenu.prototype, "active", void 0);
48
47
  tslib_1.__decorate([
49
- (0, type_graphql_1.Field)(type => auth_base_1.PrivilegeInput, { nullable: true }),
50
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
51
- ], NewLiteMenu.prototype, "privilege", void 0);
48
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
49
+ tslib_1.__metadata("design:type", shell_1.ObjectRef)
50
+ ], NewLiteMenu.prototype, "role", void 0);
52
51
  tslib_1.__decorate([
53
52
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
54
53
  tslib_1.__metadata("design:type", Object)
55
54
  ], NewLiteMenu.prototype, "labels", void 0);
55
+ tslib_1.__decorate([
56
+ (0, type_graphql_1.Field)({ nullable: true }),
57
+ tslib_1.__metadata("design:type", String)
58
+ ], NewLiteMenu.prototype, "help", void 0);
56
59
  exports.NewLiteMenu = NewLiteMenu = tslib_1.__decorate([
57
60
  (0, type_graphql_1.InputType)()
58
61
  ], NewLiteMenu);
@@ -96,13 +99,17 @@ tslib_1.__decorate([
96
99
  tslib_1.__metadata("design:type", Boolean)
97
100
  ], LiteMenuPatch.prototype, "active", void 0);
98
101
  tslib_1.__decorate([
99
- (0, type_graphql_1.Field)(type => auth_base_1.PrivilegeInput, { nullable: true }),
100
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
101
- ], LiteMenuPatch.prototype, "privilege", void 0);
102
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
103
+ tslib_1.__metadata("design:type", shell_1.ObjectRef)
104
+ ], LiteMenuPatch.prototype, "role", void 0);
102
105
  tslib_1.__decorate([
103
106
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
104
107
  tslib_1.__metadata("design:type", Object)
105
108
  ], LiteMenuPatch.prototype, "labels", void 0);
109
+ tslib_1.__decorate([
110
+ (0, type_graphql_1.Field)({ nullable: true }),
111
+ tslib_1.__metadata("design:type", String)
112
+ ], LiteMenuPatch.prototype, "help", void 0);
106
113
  exports.LiteMenuPatch = LiteMenuPatch = tslib_1.__decorate([
107
114
  (0, type_graphql_1.InputType)()
108
115
  ], LiteMenuPatch);
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu-type.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ScalarObject } from '@things-factory/shell'\nimport { Privilege, PrivilegeInput } from '@things-factory/auth-base'\n\nimport { LiteMenu } from './lite-menu'\n\n@InputType()\nexport class NewLiteMenu {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => PrivilegeInput, { nullable: true })\n privilege?: PrivilegeInput\n\n @Field(type => ScalarObject, { nullable: true })\n labels?: any // { [lng: string]: string }\n}\n\n@InputType()\nexport class LiteMenuPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => PrivilegeInput, { nullable: true })\n privilege?: PrivilegeInput\n\n @Field(type => ScalarObject, { nullable: true })\n labels?: any // { [lng: string]: string }\n}\n\n@ObjectType()\nexport class LiteMenuList {\n @Field(type => [LiteMenu])\n items: LiteMenu[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"lite-menu-type.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ScalarObject, ObjectRef } from '@things-factory/shell'\n\nimport { LiteMenu } from './lite-menu'\n\n@InputType()\nexport class NewLiteMenu {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => ObjectRef, { nullable: true })\n role?: ObjectRef\n\n @Field(type => ScalarObject, { nullable: true })\n labels?: any // { [lng: string]: string }\n\n @Field({ nullable: true })\n help?: string\n}\n\n@InputType()\nexport class LiteMenuPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => ObjectRef, { nullable: true })\n role?: ObjectRef\n\n @Field(type => ScalarObject, { nullable: true })\n labels?: any // { [lng: string]: string }\n\n @Field({ nullable: true })\n help?: string\n}\n\n@ObjectType()\nexport class LiteMenuList {\n @Field(type => [LiteMenu])\n items: LiteMenu[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { PrivilegeObject, User } from '@things-factory/auth-base';
1
+ import { User, Role } from '@things-factory/auth-base';
2
2
  import { Board } from '@things-factory/board-service';
3
3
  import { Domain } from '@things-factory/shell';
4
4
  export declare class LiteMenu {
@@ -15,8 +15,10 @@ export declare class LiteMenu {
15
15
  icon?: string;
16
16
  active?: boolean;
17
17
  board?: Board;
18
- privilege?: PrivilegeObject;
18
+ role?: Role;
19
+ roleId?: string;
19
20
  labels?: any;
21
+ help?: string;
20
22
  createdAt?: Date;
21
23
  updatedAt?: Date;
22
24
  creator?: User;
@@ -7,6 +7,9 @@ const typeorm_1 = require("typeorm");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const board_service_1 = require("@things-factory/board-service");
9
9
  const shell_1 = require("@things-factory/shell");
10
+ const env_1 = require("@things-factory/env");
11
+ const ORMCONFIG = env_1.config.get('ormconfig', {});
12
+ const DATABASE_TYPE = ORMCONFIG.type;
10
13
  let LiteMenu = class LiteMenu {
11
14
  };
12
15
  exports.LiteMenu = LiteMenu;
@@ -92,18 +95,37 @@ tslib_1.__decorate([
92
95
  tslib_1.__metadata("design:type", board_service_1.Board)
93
96
  ], LiteMenu.prototype, "board", void 0);
94
97
  tslib_1.__decorate([
95
- (0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
96
- (0, type_graphql_1.Field)(type => auth_base_1.PrivilegeObject, { nullable: true }),
97
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeObject)
98
- ], LiteMenu.prototype, "privilege", void 0);
98
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.Role),
99
+ (0, type_graphql_1.Field)(type => auth_base_1.Role, { nullable: true }),
100
+ tslib_1.__metadata("design:type", auth_base_1.Role)
101
+ ], LiteMenu.prototype, "role", void 0);
102
+ tslib_1.__decorate([
103
+ (0, typeorm_1.RelationId)((liteMenu) => liteMenu.role),
104
+ tslib_1.__metadata("design:type", String)
105
+ ], LiteMenu.prototype, "roleId", void 0);
99
106
  tslib_1.__decorate([
100
107
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
101
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
108
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true, description: 'Settings for multilingual titles' }),
102
109
  tslib_1.__metadata("design:type", Object)
103
110
  ], LiteMenu.prototype, "labels", void 0);
104
111
  tslib_1.__decorate([
105
- (0, typeorm_1.CreateDateColumn)(),
112
+ (0, typeorm_1.Column)({
113
+ nullable: true,
114
+ type: DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
115
+ ? 'longtext'
116
+ : DATABASE_TYPE == 'oracle'
117
+ ? 'clob'
118
+ : DATABASE_TYPE == 'mssql'
119
+ ? 'nvarchar'
120
+ : 'varchar',
121
+ length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
122
+ }),
106
123
  (0, type_graphql_1.Field)({ nullable: true }),
124
+ tslib_1.__metadata("design:type", String)
125
+ ], LiteMenu.prototype, "help", void 0);
126
+ tslib_1.__decorate([
127
+ (0, typeorm_1.CreateDateColumn)(),
128
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Settings for help contents' }),
107
129
  tslib_1.__metadata("design:type", Date)
108
130
  ], LiteMenu.prototype, "createdAt", void 0);
109
131
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu.ts"],"names":[],"mappings":";;;;AAAA,+CAAyD;AACzD,qCASgB;AAEhB,yDAAiE;AACjE,iEAAqD;AACrD,iDAA4D;AAUrD,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAsGpB,CAAA;AAtGY,4BAAQ;AAGV;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;oCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;wCAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;;0CACnC;AAIjB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;sCACI;AAMZ;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAOpB;IALC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACV;AAOhB;IALC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACX;AAMf;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC1B;AAMb;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACb;AAMb;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACZ;AAMd;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACb;AAMb;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjC,qBAAK;uCAAA;AAIb;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACvC,2BAAe;2CAAA;AAI3B;IAFC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACpC;AAIZ;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAIhB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAMhB;IAJC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;yCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;AAMlB;IAJC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;yCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;mBArGP,QAAQ;IARpB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;QACnH,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACrH,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;GACtC,QAAQ,CAsGpB","sourcesContent":["import { Field, ID, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { PrivilegeObject, User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\n@Entity()\n@Index('ix_lite_menus_0', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.name, liteMenu.type, liteMenu.appName], {\n unique: true\n})\n@Index('ix_lite_menus_1', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.appName, liteMenu.parent, liteMenu.rank], {\n unique: true\n})\n@ObjectType({ description: 'Entity for LiteMenu' })\nexport class LiteMenu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n description?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n appName?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n parent?: string\n\n @Column({\n nullable: true\n })\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n type?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n value?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n icon?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => Board, { nullable: true })\n board?: Board\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => PrivilegeObject, { nullable: true })\n privilege?: PrivilegeObject\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n labels?: any // { [lng: string]: string }\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"lite-menu.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User, Role } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { config } from '@things-factory/env'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_lite_menus_0', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.name, liteMenu.type, liteMenu.appName], {\n unique: true\n})\n@Index('ix_lite_menus_1', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.appName, liteMenu.parent, liteMenu.rank], {\n unique: true\n})\n@ObjectType({ description: 'Entity for LiteMenu' })\nexport class LiteMenu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n description?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n appName?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n parent?: string\n\n @Column({\n nullable: true\n })\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n type?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n value?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n icon?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => Board, { nullable: true })\n board?: Board\n\n @ManyToOne(type => Role)\n @Field(type => Role, { nullable: true })\n role?: Role\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.role)\n roleId?: string\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true, description: 'Settings for multilingual titles' })\n labels?: any // { [lng: string]: string }\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n help?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Settings for help contents' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.updater)\n updaterId?: string\n}\n"]}