@brggroup/share-lib 0.1.46 → 0.1.48
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/README.md +89 -89
- package/fesm2022/brggroup-share-lib.mjs +1364 -289
- package/fesm2022/brggroup-share-lib.mjs.map +1 -1
- package/lib/ADMIN/component/permission/permission.component.d.ts +12 -0
- package/lib/ADMIN/component/permission/permission.component.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/permission.model.d.ts +9 -0
- package/lib/ADMIN/component/permission/permission.model.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/permission.service.d.ts +23 -0
- package/lib/ADMIN/component/permission/permission.service.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/resource-permission/resource-permission.component.d.ts +54 -0
- package/lib/ADMIN/component/permission/resource-permission/resource-permission.component.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/role-menu/role-menu.d.ts +43 -0
- package/lib/ADMIN/component/permission/role-menu/role-menu.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/role-permission/role-permission.component.d.ts +27 -0
- package/lib/ADMIN/component/permission/role-permission/role-permission.component.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/role-permission/role-permission.model.d.ts +11 -0
- package/lib/ADMIN/component/permission/role-permission/role-permission.model.d.ts.map +1 -0
- package/lib/ADMIN/component/permission/user-role/user-role.d.ts +43 -0
- package/lib/ADMIN/component/permission/user-role/user-role.d.ts.map +1 -0
- package/lib/ADMIN/model/menu.model.d.ts +56 -0
- package/lib/ADMIN/model/menu.model.d.ts.map +1 -0
- package/lib/ADMIN/model/role.model.d.ts +22 -0
- package/lib/ADMIN/model/role.model.d.ts.map +1 -0
- package/lib/ADMIN/model/user.model.d.ts +41 -0
- package/lib/ADMIN/model/user.model.d.ts.map +1 -0
- package/lib/ADMIN/service/menu.service.d.ts +29 -0
- package/lib/ADMIN/service/menu.service.d.ts.map +1 -0
- package/lib/ADMIN/service/role.service.d.ts +24 -0
- package/lib/ADMIN/service/role.service.d.ts.map +1 -0
- package/lib/ADMIN/service/user.service.d.ts +28 -0
- package/lib/ADMIN/service/user.service.d.ts.map +1 -0
- package/lib/auth/auth-abac.d.ts +26 -0
- package/lib/auth/auth-abac.d.ts.map +1 -0
- package/lib/auth/auth.guard.d.ts +2 -0
- package/lib/auth/auth.guard.d.ts.map +1 -1
- package/lib/auth/auth.service.d.ts +1 -1
- package/lib/auth/auth.service.d.ts.map +1 -1
- package/lib/auth/can-action.pipe.d.ts +17 -0
- package/lib/auth/can-action.pipe.d.ts.map +1 -0
- package/lib/auth/has-permission.d.ts +12 -0
- package/lib/auth/has-permission.d.ts.map +1 -0
- package/lib/auth/has-permission.directive.d.ts +14 -0
- package/lib/auth/has-permission.directive.d.ts.map +1 -0
- package/lib/auth/permission.service.d.ts +15 -0
- package/lib/auth/permission.service.d.ts.map +1 -0
- package/lib/components/extend-input/extend-input.d.ts +3 -1
- package/lib/components/extend-input/extend-input.d.ts.map +1 -1
- package/lib/components/layout/layout.component.d.ts +0 -1
- package/lib/components/layout/layout.component.d.ts.map +1 -1
- package/lib/components/login/login.component.d.ts.map +1 -1
- package/lib/components/pdf-viewer/pdf-viewer.d.ts +6 -1
- package/lib/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/lib/components/search/expandable-search/expandable-search.component.d.ts +2 -1
- package/lib/components/search/expandable-search/expandable-search.component.d.ts.map +1 -1
- package/lib/services/device-service.d.ts +1 -0
- package/lib/services/device-service.d.ts.map +1 -1
- package/lib/services/file.service.d.ts +1 -1
- package/lib/services/file.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +7 -0
- package/public-api.d.ts.map +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { BaseComponent } from '../../../components/base.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class PermissionComponent extends BaseComponent implements OnInit, OnDestroy {
|
|
5
|
+
ngOnInit(): void;
|
|
6
|
+
ngOnDestroy(): void;
|
|
7
|
+
tab: number;
|
|
8
|
+
onSelectedIndexChange(tabIndex: number): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PermissionComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PermissionComponent, "app-permision", never, {}, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=permission.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/share/src/lib/ADMIN/component/permission/permission.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM7D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;;AAGnE,qBAKa,mBAAoB,SAAQ,aAAc,YAAW,MAAM,EAAE,SAAS;IACjF,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAInB,GAAG,SAAK;IAER,qBAAqB,CAAC,QAAQ,EAAE,MAAM;yCAnB3B,mBAAmB;2CAAnB,mBAAmB;CA8D/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.model.d.ts","sourceRoot":"","sources":["../../../../../../projects/share/src/lib/ADMIN/component/permission/permission.model.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAE5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CAEtB;AAED,qBAAa,iBAAiB;IAE5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CAEtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HTTPService } from '../../../services/api-service/http.service';
|
|
2
|
+
import { CommonService } from '../../../services/api-service/common.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class PermissionService extends HTTPService {
|
|
5
|
+
cms: CommonService;
|
|
6
|
+
updateUserRoleRef(data: any): Promise<import("@brggroup/share-lib").RespondData>;
|
|
7
|
+
getUserRoleRef(): Promise<import("@brggroup/share-lib").RespondData>;
|
|
8
|
+
updateRoleMenuRef(data: any): Promise<import("@brggroup/share-lib").RespondData>;
|
|
9
|
+
getRoleMenuRef(): Promise<import("@brggroup/share-lib").RespondData>;
|
|
10
|
+
getRoleMenuRefStr(RoleId: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
11
|
+
getUserRoleRefStr(RoleId: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
12
|
+
getUserForRole(RoleId: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
13
|
+
createPermission(obj: any): Promise<import("@brggroup/share-lib").RespondData>;
|
|
14
|
+
createLstPermission(bulkPayload: any): Promise<import("@brggroup/share-lib").RespondData>;
|
|
15
|
+
deletePermission(id: any): Promise<import("@brggroup/share-lib").RespondData>;
|
|
16
|
+
getResourcePermission(searchText: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
17
|
+
getPermissionGroupByCode(): Promise<import("@brggroup/share-lib").RespondData>;
|
|
18
|
+
addRoleResourcePermissionRef(roleId: string, permissionCodes: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
19
|
+
getRolePermissions(roleId: string): Promise<import("@brggroup/share-lib").RespondData>;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PermissionService, never>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PermissionService>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=permission.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../../../../../projects/share/src/lib/ADMIN/component/permission/permission.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;;AAG7E,qBAGa,iBAAkB,SAAQ,WAAW;IAChD,GAAG,gBAAyB;IAE5B,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAO3B,cAAc;IAMd,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAO3B,cAAc;IAMd,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAOhC,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAOhC,cAAc,CAAC,MAAM,EAAE,MAAM;IAO7B,gBAAgB,CAAC,GAAG,EAAE,GAAG;IAIzB,mBAAmB,CAAC,WAAW,EAAE,GAAG;IAIpC,gBAAgB,CAAC,EAAE,EAAE,GAAG;IAKxB,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAOxC,wBAAwB;IAMxB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAOpE,kBAAkB,CAAC,MAAM,EAAE,MAAM;yCAnFtB,iBAAiB;6CAAjB,iBAAiB;CAyF7B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
|
+
import { PermissionService } from '../permission.service';
|
|
4
|
+
import { BaseComponent } from '../../../../components/base.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export interface App_Permission {
|
|
7
|
+
App_Permission_Id: string;
|
|
8
|
+
ResourceCode: string;
|
|
9
|
+
ResourceName: string;
|
|
10
|
+
PermissionCode: string;
|
|
11
|
+
PermissionName: string;
|
|
12
|
+
Description: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class PermissionManagerComponent extends BaseComponent implements OnInit {
|
|
15
|
+
private fb;
|
|
16
|
+
private permissionService;
|
|
17
|
+
permissions: App_Permission[];
|
|
18
|
+
searchText: string;
|
|
19
|
+
isModalVisible: boolean;
|
|
20
|
+
isSaving: boolean;
|
|
21
|
+
isEditMode: boolean;
|
|
22
|
+
currentEditingId: string | null;
|
|
23
|
+
permissionForm: FormGroup;
|
|
24
|
+
actionOptions: {
|
|
25
|
+
value: string;
|
|
26
|
+
label: string;
|
|
27
|
+
}[];
|
|
28
|
+
filteredActionOptions: {
|
|
29
|
+
value: string;
|
|
30
|
+
label: string;
|
|
31
|
+
}[];
|
|
32
|
+
isBulkModalVisible: boolean;
|
|
33
|
+
bulkForm: FormGroup;
|
|
34
|
+
bulkActionCheckboxes: Array<{
|
|
35
|
+
label: string;
|
|
36
|
+
value: string;
|
|
37
|
+
checked: boolean;
|
|
38
|
+
}>;
|
|
39
|
+
constructor(fb: FormBuilder, permissionService: PermissionService);
|
|
40
|
+
ngOnInit(): void;
|
|
41
|
+
initBulkForm(): void;
|
|
42
|
+
openBulkModal(): void;
|
|
43
|
+
closeBulkModal(): void;
|
|
44
|
+
saveBulkPermissions(): void;
|
|
45
|
+
initForm(): void;
|
|
46
|
+
loadData(): void;
|
|
47
|
+
openModal(data?: App_Permission): void;
|
|
48
|
+
closeModal(): void;
|
|
49
|
+
savePermission(): void;
|
|
50
|
+
deletePermission(id: string): Promise<void>;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PermissionManagerComponent, never>;
|
|
52
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PermissionManagerComponent, "resource-permission", never, {}, {}, never, never, true, never>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=resource-permission.component.d.ts.map
|
package/lib/ADMIN/component/permission/resource-permission/resource-permission.component.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-permission.component.d.ts","sourceRoot":"","sources":["../../../../../../../projects/share/src/lib/ADMIN/component/permission/resource-permission/resource-permission.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAgD,MAAM,gBAAgB,CAAC;AAgBtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;;AAGtE,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAwBa,0BAA2B,SAAQ,aAAc,YAAW,MAAM;IAkC3E,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IAlC3B,WAAW,EAAE,cAAc,EAAE,CAAM;IAEnC,UAAU,SAAM;IAEhB,cAAc,UAAS;IACvB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,cAAc,EAAG,SAAS,CAAC;IAG3B,aAAa;;;QAYX;IAEF,qBAAqB;;;QAA2B;IAEhD,kBAAkB,UAAS;IAC3B,QAAQ,EAAG,SAAS,CAAC;IAErB,oBAAoB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAM;gBAG3E,EAAE,EAAE,WAAW,EACf,iBAAiB,EAAE,iBAAiB;IAO9C,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAOpB,aAAa,IAAI,IAAI;IAWrB,cAAc,IAAI,IAAI;IAItB,mBAAmB,IAAI,IAAI;IAsC3B,QAAQ,IAAI,IAAI;IAyBhB,QAAQ,IAAI,IAAI;IAOhB,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IA6BtC,UAAU,IAAI,IAAI;IAKlB,cAAc,IAAI,IAAI;IA2BhB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;yCAvMtC,0BAA0B;2CAA1B,0BAA0B;CA4MtC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { PermissionService } from '../permission.service';
|
|
3
|
+
import { App_Role_Menu_Ref } from '../permission.model';
|
|
4
|
+
import { BaseComponent } from '../../../../components/base.component';
|
|
5
|
+
import { RoleService } from '../../../service/role.service';
|
|
6
|
+
import { MenuService } from '../../../service/menu.service';
|
|
7
|
+
import { App_Role } from '../../../model/role.model';
|
|
8
|
+
import { App_Menu } from '../../../model/menu.model';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export declare class RoleMenuPermission extends BaseComponent implements OnInit {
|
|
11
|
+
roleService: RoleService;
|
|
12
|
+
menuService: MenuService;
|
|
13
|
+
permissionService: PermissionService;
|
|
14
|
+
lstRole: App_Role[];
|
|
15
|
+
lstMenu: App_Menu[];
|
|
16
|
+
lstRoleMenuRef: App_Role_Menu_Ref[];
|
|
17
|
+
roleMenuMap: {
|
|
18
|
+
[roleId: string]: {
|
|
19
|
+
[menuId: string]: boolean;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
roleColumnState: {
|
|
23
|
+
[roleId: string]: {
|
|
24
|
+
checked: boolean;
|
|
25
|
+
indeterminate: boolean;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
getData(): void;
|
|
30
|
+
initializeRoleMenuMap(): void;
|
|
31
|
+
updateRoleColumnState(roleId: string): void;
|
|
32
|
+
toggleRolePermissions(roleId: string, checked: boolean): void;
|
|
33
|
+
onSinglePermissionChange(roleId: string): void;
|
|
34
|
+
convertRoleMenuMapToArray(): {
|
|
35
|
+
RoleId: string;
|
|
36
|
+
MenuId: string;
|
|
37
|
+
IsChecked: boolean;
|
|
38
|
+
}[];
|
|
39
|
+
saveRoleMenuMap(): void;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RoleMenuPermission, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RoleMenuPermission, "app-role-menu-permission", never, {}, {}, never, never, true, never>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=role-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-menu.d.ts","sourceRoot":"","sources":["../../../../../../../projects/share/src/lib/ADMIN/component/permission/role-menu/role-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;;AAErD,qBAca,kBAAmB,SAAQ,aAAc,YAAW,MAAM;IACrE,WAAW,cAAuB;IAClC,WAAW,cAAuB;IAClC,iBAAiB,oBAA6B;IAE9C,OAAO,EAAE,QAAQ,EAAE,CAAM;IACzB,OAAO,EAAE,QAAQ,EAAE,CAAM;IACzB,cAAc,EAAE,iBAAiB,EAAE,CAAM;IAGzC,WAAW,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAA;KAAE,CAAM;IAGtE,eAAe,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAM;IAEzF,QAAQ,IAAI,IAAI;IAIhB,OAAO;IAYP,qBAAqB;IAsBrB,qBAAqB,CAAC,MAAM,EAAE,MAAM;IAoBpC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAStD,wBAAwB,CAAC,MAAM,EAAE,MAAM;IAIvC,yBAAyB;gBACC,MAAM;gBAAU,MAAM;mBAAa,OAAO;;IAepE,eAAe;yCAtGJ,kBAAkB;2CAAlB,kBAAkB;CA6G9B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ResourceGroupDto } from './role-permission.model';
|
|
3
|
+
import { PermissionService } from '../permission.service';
|
|
4
|
+
import { BaseComponent } from '../../../../components/base.component';
|
|
5
|
+
import { RoleService } from '../../../service/role.service';
|
|
6
|
+
import { App_Role } from '../../../model/role.model';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class RolePermissionComponent extends BaseComponent implements OnInit {
|
|
9
|
+
roleService: RoleService;
|
|
10
|
+
permissionService: PermissionService;
|
|
11
|
+
lstRole: App_Role[];
|
|
12
|
+
resourceGroups: ResourceGroupDto[];
|
|
13
|
+
selectedRoleId: string | null;
|
|
14
|
+
selectedPermissionCodes: Set<string>;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
isSaving: boolean;
|
|
17
|
+
ngOnInit(): void;
|
|
18
|
+
loadRoles(): void;
|
|
19
|
+
loadAllResources(): void;
|
|
20
|
+
onRoleChange(roleId: string): void;
|
|
21
|
+
isPermissionChecked(code: string): boolean;
|
|
22
|
+
onCheckChange(code: string, isChecked: boolean): void;
|
|
23
|
+
savePermissions(): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RolePermissionComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RolePermissionComponent, "role-resource-permission", never, {}, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=role-permission.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-permission.component.d.ts","sourceRoot":"","sources":["../../../../../../../projects/share/src/lib/ADMIN/component/permission/role-permission/role-permission.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,yBAAyB,CAAC;AAUlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;;AAErD,qBAea,uBAAwB,SAAQ,aAAc,YAAW,MAAM;IAC1E,WAAW,cAAuB;IAClC,iBAAiB,oBAA6B;IAE9C,OAAO,EAAE,QAAQ,EAAE,CAAM;IACzB,cAAc,EAAE,gBAAgB,EAAE,CAAM;IAExC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAqB;IAEzD,SAAS,UAAS;IAClB,QAAQ,UAAS;IAEjB,QAAQ,IAAI,IAAI;IAMhB,SAAS,IAAI,IAAI;IAKjB,gBAAgB,IAAI,IAAI;IAQxB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAuBlC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IASrD,eAAe,IAAI,IAAI;yCAtEZ,uBAAuB;2CAAvB,uBAAuB;CAyFnC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { App_Permission } from '../resource-permission/resource-permission.component';
|
|
2
|
+
export interface ResourceGroupDto {
|
|
3
|
+
ResourceCode: string;
|
|
4
|
+
ResourceName: string;
|
|
5
|
+
permissions: App_Permission[];
|
|
6
|
+
}
|
|
7
|
+
export interface SaveRolePermissionReq {
|
|
8
|
+
roleId: string;
|
|
9
|
+
permissionCodes: string[];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=role-permission.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-permission.model.d.ts","sourceRoot":"","sources":["../../../../../../../projects/share/src/lib/ADMIN/component/permission/role-permission/role-permission.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { PermissionService } from '../permission.service';
|
|
3
|
+
import { BaseComponent } from '../../../../components/base.component';
|
|
4
|
+
import { RoleService } from '../../../service/role.service';
|
|
5
|
+
import { UserService } from '../../../service/user.service';
|
|
6
|
+
import { App_Role } from '../../../model/role.model';
|
|
7
|
+
import { App_User } from '../../../model/user.model';
|
|
8
|
+
import { App_User_Role_Ref } from '../permission.model';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export declare class UserRolePermission extends BaseComponent implements OnInit {
|
|
11
|
+
roleService: RoleService;
|
|
12
|
+
userService: UserService;
|
|
13
|
+
permissionService: PermissionService;
|
|
14
|
+
lstRole: App_Role[];
|
|
15
|
+
lstUser: App_User[];
|
|
16
|
+
lstUserRoleRef: App_User_Role_Ref[];
|
|
17
|
+
userRoleMap: {
|
|
18
|
+
[userId: string]: {
|
|
19
|
+
[roleId: string]: boolean;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
userRowState: {
|
|
23
|
+
[userId: string]: {
|
|
24
|
+
checked: boolean;
|
|
25
|
+
indeterminate: boolean;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
getData(): void;
|
|
30
|
+
initializeRoleMenuMap(): void;
|
|
31
|
+
updateUserRowState(userId: string): void;
|
|
32
|
+
toggleUserPermissions(userId: string, checked: boolean): void;
|
|
33
|
+
onSinglePermissionChange(userId: string): void;
|
|
34
|
+
convertUserRoleMapToArray(): {
|
|
35
|
+
UserId: string;
|
|
36
|
+
RoleId: string;
|
|
37
|
+
IsChecked: boolean;
|
|
38
|
+
}[];
|
|
39
|
+
saveUserRoleMap(): void;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserRolePermission, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserRolePermission, "app-user-role-permission", never, {}, {}, never, never, true, never>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=user-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-role.d.ts","sourceRoot":"","sources":["../../../../../../../projects/share/src/lib/ADMIN/component/permission/user-role/user-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAO1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;;AAExD,qBAca,kBAAmB,SAAQ,aAAc,YAAW,MAAM;IACrE,WAAW,cAAuB;IAClC,WAAW,cAAuB;IAClC,iBAAiB,oBAA6B;IAE9C,OAAO,EAAE,QAAQ,EAAE,CAAM;IACzB,OAAO,EAAE,QAAQ,EAAE,CAAM;IACzB,cAAc,EAAE,iBAAiB,EAAE,CAAM;IAGzC,WAAW,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAA;KAAE,CAAM;IAGtE,YAAY,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAM;IAEtF,QAAQ,IAAI,IAAI;IAIhB,OAAO;IAYP,qBAAqB;IAsBrB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAoBjC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAStD,wBAAwB,CAAC,MAAM,EAAE,MAAM;IAIvC,yBAAyB;gBACC,MAAM;gBAAU,MAAM;mBAAa,OAAO;;IAepE,eAAe;yCAtGJ,kBAAkB;2CAAlB,kBAAkB;CA6G9B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { GridFilter } from '../../model';
|
|
2
|
+
export declare class App_Menu {
|
|
3
|
+
App_Menu_Id: string;
|
|
4
|
+
App_Org_Id: string;
|
|
5
|
+
IsActive: boolean;
|
|
6
|
+
Name: string;
|
|
7
|
+
TranslateKey: string;
|
|
8
|
+
Url: string;
|
|
9
|
+
Icon: string;
|
|
10
|
+
OrderValue: number;
|
|
11
|
+
ParentId: string;
|
|
12
|
+
IsHidden: boolean;
|
|
13
|
+
TreeNodeName: string;
|
|
14
|
+
TreeNodeOrder: string;
|
|
15
|
+
IsHeaderMenu: boolean;
|
|
16
|
+
Level: number;
|
|
17
|
+
Open: boolean;
|
|
18
|
+
SubMenu: App_Menu[] | undefined;
|
|
19
|
+
ParentName: string;
|
|
20
|
+
HasEditMenu: boolean;
|
|
21
|
+
AllSubHasEditMenu: boolean;
|
|
22
|
+
SomeSubHasEditMenu: boolean;
|
|
23
|
+
HasViewMenu: boolean;
|
|
24
|
+
AllSubHasViewMenu: boolean;
|
|
25
|
+
SomeSubHasViewMenu: boolean;
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
constructor(obj?: any);
|
|
28
|
+
}
|
|
29
|
+
export declare class MenuFilter extends GridFilter {
|
|
30
|
+
Name: string;
|
|
31
|
+
ParentName: string;
|
|
32
|
+
}
|
|
33
|
+
export interface TreeMenu {
|
|
34
|
+
title: string;
|
|
35
|
+
key: string;
|
|
36
|
+
children?: TreeMenu[];
|
|
37
|
+
id: string;
|
|
38
|
+
parentId?: string;
|
|
39
|
+
isLeaf?: boolean;
|
|
40
|
+
OrderValue?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare class App_Role_Menu_Ref {
|
|
43
|
+
App_Role_Menu_Ref_Id?: string;
|
|
44
|
+
App_Org_Id?: string;
|
|
45
|
+
CreatedDate?: Date;
|
|
46
|
+
CreatedUser?: string;
|
|
47
|
+
App_Role_Id?: string;
|
|
48
|
+
App_Menu_Id?: string;
|
|
49
|
+
HasViewPermission?: boolean;
|
|
50
|
+
HasEditPermission?: boolean;
|
|
51
|
+
RoleCode?: string;
|
|
52
|
+
RoleName?: string;
|
|
53
|
+
RoleDescription?: string;
|
|
54
|
+
constructor(obj?: any);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=menu.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.model.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/model/menu.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,QAAQ;IAEnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;gBAEP,GAAG,CAAC,EAAE,GAAG;CA4BtB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACxC,IAAI,EAAE,MAAM,CAAM;IAClB,UAAU,EAAE,MAAM,CAAM;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,qBAAa,iBAAiB;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEb,GAAG,CAAC,EAAE,GAAG;CActB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GridFilter } from '../../model';
|
|
2
|
+
export declare class App_Role {
|
|
3
|
+
App_Role_Id?: string;
|
|
4
|
+
CreatedDate?: Date;
|
|
5
|
+
CreatedUser?: string;
|
|
6
|
+
UpdatedDate?: Date;
|
|
7
|
+
UpdatedUser?: string;
|
|
8
|
+
IsActive?: boolean;
|
|
9
|
+
Code?: string;
|
|
10
|
+
Name?: string;
|
|
11
|
+
Description?: string;
|
|
12
|
+
LstMenuId?: string;
|
|
13
|
+
LstUserId?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class RoleFilter extends GridFilter {
|
|
16
|
+
Code?: string;
|
|
17
|
+
Name?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface App_Role_UI extends App_Role {
|
|
20
|
+
checked?: boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=role.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.model.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/model/role.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,QAAQ;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GridFilter } from '../../model';
|
|
2
|
+
export declare class App_User {
|
|
3
|
+
App_User_Id?: string;
|
|
4
|
+
App_Org_Id?: string;
|
|
5
|
+
IsActive?: boolean;
|
|
6
|
+
CreateUser?: string;
|
|
7
|
+
CreateDate?: Date;
|
|
8
|
+
UpdateUser?: string;
|
|
9
|
+
UpdateDate?: Date;
|
|
10
|
+
UserName?: string;
|
|
11
|
+
FullName?: string;
|
|
12
|
+
Email?: string;
|
|
13
|
+
EmailConfirmed?: boolean;
|
|
14
|
+
PhoneNumber?: string;
|
|
15
|
+
PhoneNumberConfirmed?: boolean;
|
|
16
|
+
AccessFailedCount?: number;
|
|
17
|
+
IsAdmin?: boolean;
|
|
18
|
+
PasswordHash?: string;
|
|
19
|
+
SecurityStamp?: string;
|
|
20
|
+
LastLogin?: Date;
|
|
21
|
+
IsLocked?: boolean;
|
|
22
|
+
_Lst_App_Org_Id?: string;
|
|
23
|
+
_Lst_App_Role_Id?: string;
|
|
24
|
+
Password?: string;
|
|
25
|
+
ChangePassword?: boolean;
|
|
26
|
+
OrgName?: string;
|
|
27
|
+
DepartmentId?: number;
|
|
28
|
+
LoginStatus: boolean;
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}
|
|
31
|
+
export declare class UserFilter extends GridFilter {
|
|
32
|
+
UserName?: string;
|
|
33
|
+
FullName?: string;
|
|
34
|
+
OrgName?: string;
|
|
35
|
+
isUserNameSearch: boolean;
|
|
36
|
+
isOrgNameSearch: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface App_User_UI extends App_User {
|
|
39
|
+
checked?: boolean;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=user.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/model/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,QAAQ;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAM;IACvB,cAAc,CAAC,EAAE,OAAO,CAAS;IACjC,OAAO,CAAC,EAAE,MAAM,CAAM;IACtB,YAAY,CAAC,EAAE,MAAM,CAAK;IAC1B,WAAW,UAAS;IAEpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB,UAAS;IACzB,eAAe,UAAS;CACzB;AAGD,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { HTTPService } from '../../services/api-service/http.service';
|
|
2
|
+
import { CommonService } from '../../services/api-service/common.service';
|
|
3
|
+
import { RespondData } from '../../model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare const URLs: {
|
|
6
|
+
getById: string;
|
|
7
|
+
getAll: string;
|
|
8
|
+
getList: string;
|
|
9
|
+
getPaging: string;
|
|
10
|
+
addOrEdit: string;
|
|
11
|
+
delete: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class MenuService extends HTTPService {
|
|
14
|
+
commonService: CommonService;
|
|
15
|
+
getById(id: any): Promise<RespondData>;
|
|
16
|
+
getAll(): Promise<RespondData>;
|
|
17
|
+
getList(filter: any): Promise<RespondData>;
|
|
18
|
+
getPaging(filter: any): Promise<RespondData>;
|
|
19
|
+
addOrEdit(obj: any): Promise<RespondData>;
|
|
20
|
+
delete(id: any): Promise<RespondData>;
|
|
21
|
+
getTree(): Promise<RespondData>;
|
|
22
|
+
getRolesByMenuId(menuId: string): Promise<RespondData>;
|
|
23
|
+
addRolesToMenu(menuId: string | null, roleIds: string[]): Promise<RespondData>;
|
|
24
|
+
updateRoleMenuPermission(obj: any): Promise<RespondData>;
|
|
25
|
+
deleteRoleFromMenu(refId: string): Promise<RespondData>;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
|
|
27
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=menu.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.service.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/service/menu.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAG1C,eAAO,MAAM,IAAI;;;;;;;CAOhB,CAAC;AAEF,qBAGa,WAAY,SAAQ,WAAW;IAC1C,aAAa,gBAAyB;IAEtC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOtC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAM9B,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAI1C,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAO5C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOzC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrC,OAAO;IAMP,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOtD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAU9E,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxD,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;yCArE5C,WAAW;6CAAX,WAAW;CA2EvB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HTTPService } from '../../services/api-service/http.service';
|
|
2
|
+
import { CommonService } from '../../services/api-service/common.service';
|
|
3
|
+
import { RespondData } from '../../model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare const URLs: {
|
|
6
|
+
getById: string;
|
|
7
|
+
getAll: string;
|
|
8
|
+
getList: string;
|
|
9
|
+
getPaging: string;
|
|
10
|
+
addOrEdit: string;
|
|
11
|
+
delete: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class RoleService extends HTTPService {
|
|
14
|
+
commonService: CommonService;
|
|
15
|
+
getById(id: any): Promise<RespondData>;
|
|
16
|
+
getAll(): Promise<RespondData>;
|
|
17
|
+
getList(filter: any): Promise<RespondData>;
|
|
18
|
+
getPaging(filter: any): Promise<RespondData>;
|
|
19
|
+
addOrEdit(obj: any): Promise<RespondData>;
|
|
20
|
+
delete(id: any): Promise<RespondData>;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RoleService, never>;
|
|
22
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RoleService>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=role.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/service/role.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAG1C,eAAO,MAAM,IAAI;;;;;;;CAOhB,CAAC;AAEF,qBAGa,WAAY,SAAQ,WAAW;IAC1C,aAAa,gBAAyB;IAEtC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOtC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAM9B,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAI1C,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAO5C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOzC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;yCAlC1B,WAAW;6CAAX,WAAW;CAsCvB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { HTTPService } from '../../services/api-service/http.service';
|
|
2
|
+
import { CommonService } from '../../services/api-service/common.service';
|
|
3
|
+
import { RespondData } from '../../model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare const URLs: {
|
|
6
|
+
getById: string;
|
|
7
|
+
getByIdEx: string;
|
|
8
|
+
getAll: string;
|
|
9
|
+
getList: string;
|
|
10
|
+
getPaging: string;
|
|
11
|
+
addOrEdit: string;
|
|
12
|
+
delete: string;
|
|
13
|
+
};
|
|
14
|
+
export declare class UserService extends HTTPService {
|
|
15
|
+
cms: CommonService;
|
|
16
|
+
getById(id: any): Promise<RespondData>;
|
|
17
|
+
getByIdEx(id: any): Promise<RespondData>;
|
|
18
|
+
getAll(): Promise<RespondData>;
|
|
19
|
+
getList(filter: any): Promise<RespondData>;
|
|
20
|
+
getPaging(filter: any): Promise<RespondData>;
|
|
21
|
+
addOrEdit(obj: any): Promise<RespondData>;
|
|
22
|
+
delete(id: any): Promise<RespondData>;
|
|
23
|
+
importUser(data: any): Promise<RespondData>;
|
|
24
|
+
checkImportUser(data: any): Promise<RespondData>;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
|
|
26
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=user.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../../../projects/share/src/lib/ADMIN/service/user.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAG1C,eAAO,MAAM,IAAI;;;;;;;;CAQhB,CAAC;AAEF,qBAGa,WAAY,SAAQ,WAAW;IAC1C,GAAG,gBAAyB;IAE5B,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAKtC,SAAS,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAM9B,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAI1C,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAO5C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAOzC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrC,UAAU,CAAC,IAAI,EAAE,GAAG;IAIpB,eAAe,CAAC,IAAI,EAAE,GAAG;yCAhDd,WAAW;6CAAX,WAAW;CAsDvB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export interface CurrentUser {
|
|
3
|
+
id: string;
|
|
4
|
+
username: string;
|
|
5
|
+
roles: string[];
|
|
6
|
+
permissions: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface TodoData {
|
|
9
|
+
id: string;
|
|
10
|
+
createdByUserId: string;
|
|
11
|
+
isCompleted: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ResourceMap {
|
|
14
|
+
}
|
|
15
|
+
export type AbacRuleFn<T> = (user: CurrentUser, data: T) => boolean;
|
|
16
|
+
export declare const ABAC_RULES_TOKEN: InjectionToken<Record<string, AbacRuleFn<any>>>;
|
|
17
|
+
/**
|
|
18
|
+
* 1. HÀM KIỂM TRA THEO QUYỀN VÀ THUỘC TÍNH (DÙNG CHO PHẦN LỚN NGHIỆP VỤ)
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkPermission<TResource extends keyof ResourceMap>(user: CurrentUser | null | undefined, rules: Record<string, AbacRuleFn<any>>, resource: TResource, action: 'read' | 'create' | 'update' | 'delete' | string, data?: ResourceMap[TResource]): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 2. HÀM TIỆN ÍCH CHỈ CHECK THEO ROLE (DÙNG ĐỂ RENDER UI ĐẶC THÙ)
|
|
23
|
+
* Sử dụng khi bạn cần: *ngIf="hasRole('KiemToan')"
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkRole(user: CurrentUser | null | undefined, expectedRole: string): boolean;
|
|
26
|
+
//# sourceMappingURL=auth-abac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-abac.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/auth-abac.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;CAK3B;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AACpE,eAAO,MAAM,gBAAgB,iDAA0E,CAAC;AAExG;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,WAAW,EACjE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EACtC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EACxD,IAAI,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAC5B,OAAO,CAuCT;AACD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAG7F"}
|
package/lib/auth/auth.guard.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
|
|
2
2
|
import { AuthService } from './auth.service';
|
|
3
|
+
import { PermissionService } from './permission.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class AuthGuard implements CanActivate {
|
|
5
6
|
router: Router;
|
|
6
7
|
authService: AuthService;
|
|
8
|
+
permissionService: PermissionService;
|
|
7
9
|
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean>;
|
|
8
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthGuard, never>;
|
|
9
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthGuard>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/auth.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;;
|
|
1
|
+
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/auth.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;AAEzD,qBAGa,SAAU,YAAW,WAAW;IAC3C,MAAM,SAAkB;IACxB,WAAW,cAAuB;IAClC,iBAAiB,oBAA6B;IAExC,WAAW,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,mBAAmB;yCALhE,SAAS;6CAAT,SAAS;CA0BrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EAAE,OAAO,EAAY,WAAW,EAAE,MAAM,UAAU,CAAC;;AAI1D,eAAO,MAAM,IAAI;;;;;;;CAOhB,CAAC;AAEF,qBAGa,WAAY,SAAQ,WAAW;IAC1C,WAAW,cAAuB;IAClC,
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EAAE,OAAO,EAAY,WAAW,EAAE,MAAM,UAAU,CAAC;;AAI1D,eAAO,MAAM,IAAI;;;;;;;CAOhB,CAAC;AAEF,qBAGa,WAAY,SAAQ,WAAW;IAC1C,WAAW,cAAuB;IAClC,GAAG,gBAAyB;IAC5B,MAAM,SAAkB;IACxB,SAAS,mBAA4B;IAMrC,QAAQ;IAIF,YAAY,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoB3C,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAY7C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B/F,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAYjD,QAAQ;IAgBF,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAclC,WAAW,CAAC,YAAY,EAAE,MAAM;IAShC,iBAAiB;IAQX,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBlD,cAAc,CAAC,IAAI,EAAE,GAAG;IAIxB,OAAO,CAAC,IAAI,EAAE,GAAG;IAQX,MAAM,CAAC,CAAC,EAAE,GAAG;IAkBb,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBzC,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAM1D,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;IACzB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM;yCAxNxB,WAAW;6CAAX,WAAW;CAoOvB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { PermissionService } from './permission.service';
|
|
3
|
+
import { ResourceMap } from './auth-abac';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CanActionPipe implements PipeTransform {
|
|
6
|
+
private permissionService;
|
|
7
|
+
constructor(permissionService: PermissionService);
|
|
8
|
+
/**
|
|
9
|
+
* @param data Dữ liệu của bản ghi hiện tại (VD: object todo)
|
|
10
|
+
* @param resource Tên resource (VD: 'todos')
|
|
11
|
+
* @param action Hành động (VD: 'update', 'delete')
|
|
12
|
+
*/
|
|
13
|
+
transform<TResource extends keyof ResourceMap>(data: ResourceMap[TResource] | undefined | null, resource: TResource, action: 'read' | 'create' | 'update' | 'delete'): boolean;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CanActionPipe, never>;
|
|
15
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<CanActionPipe, "canAction", true>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=can-action.pipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-action.pipe.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/can-action.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAE1C,qBAKa,aAAc,YAAW,aAAa;IACrC,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAExD;;;;OAIG;IACH,SAAS,CAAC,SAAS,SAAS,MAAM,WAAW,EAC3C,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAC/C,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAC9C,OAAO;yCAZC,aAAa;uCAAb,aAAa;CAkBzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { PermissionService } from './permission.service';
|
|
3
|
+
import { ResourceMap } from './auth-abac';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class HasPermissionPipe implements PipeTransform {
|
|
6
|
+
private permissionService;
|
|
7
|
+
constructor(permissionService: PermissionService);
|
|
8
|
+
transform<TResource extends keyof ResourceMap>(resource: TResource, action: 'read' | 'create' | 'update' | 'delete' | string): boolean;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HasPermissionPipe, never>;
|
|
10
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<HasPermissionPipe, "hasPermission", true>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=has-permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-permission.d.ts","sourceRoot":"","sources":["../../../../projects/share/src/lib/auth/has-permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAE1C,qBAKa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAGxD,SAAS,CAAC,SAAS,SAAS,MAAM,WAAW,EAC3C,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GACvD,OAAO;yCAPC,iBAAiB;uCAAjB,iBAAiB;CAU7B"}
|