@cauca-911/management 11.0.1 → 12.0.2

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 (33) hide show
  1. package/bundles/cauca-911-management.umd.js +329 -114
  2. package/bundles/cauca-911-management.umd.js.map +1 -1
  3. package/cauca-911-management.d.ts +1 -1
  4. package/esm2015/cauca-911-management.js +1 -2
  5. package/esm2015/lib/cauca-management-group/cauca-management-group.component.js +130 -44
  6. package/esm2015/lib/cauca-management-user/cauca-management-user.component.js +67 -18
  7. package/esm2015/lib/cauca-management.component.js +20 -7
  8. package/esm2015/lib/cauca-management.module.js +27 -5
  9. package/esm2015/lib/cauca-management.service.js +8 -7
  10. package/esm2015/lib/shared/models/group-model.js +1 -1
  11. package/esm2015/lib/shared/models/group-permission-model.js +1 -1
  12. package/esm2015/lib/shared/models/permission-model.js +1 -1
  13. package/esm2015/lib/shared/models/user-group-model.js +1 -1
  14. package/esm2015/lib/shared/models/user-model.js +1 -1
  15. package/esm2015/lib/shared/models/user-permission-model.js +1 -1
  16. package/esm2015/lib/shared/services/management-group.service.js +8 -12
  17. package/esm2015/lib/shared/services/management-permission.service.js +8 -12
  18. package/esm2015/lib/shared/services/management-user.service.js +8 -12
  19. package/esm2015/public-api.js +1 -1
  20. package/fesm2015/cauca-911-management.js +261 -102
  21. package/fesm2015/cauca-911-management.js.map +1 -1
  22. package/lib/cauca-management-group/cauca-management-group.component.d.ts +4 -1
  23. package/lib/cauca-management-user/cauca-management-user.component.d.ts +3 -0
  24. package/lib/cauca-management.component.d.ts +3 -0
  25. package/lib/cauca-management.module.d.ts +13 -0
  26. package/lib/cauca-management.service.d.ts +3 -0
  27. package/lib/shared/services/management-group.service.d.ts +3 -0
  28. package/lib/shared/services/management-permission.service.d.ts +3 -0
  29. package/lib/shared/services/management-user.service.d.ts +3 -0
  30. package/package.json +9 -7
  31. package/bundles/cauca-911-management.umd.min.js +0 -2
  32. package/bundles/cauca-911-management.umd.min.js.map +0 -1
  33. package/cauca-911-management.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cauca-911-management.umd.js","sources":["../../projects/cauca-management/src/lib/cauca-management.service.ts","../../projects/cauca-management/src/lib/cauca-management.component.ts","../esm2015/projects/cauca-management/src/lib/shared/services/management-group.service.ts","../esm2015/projects/cauca-management/src/lib/shared/services/management-user.service.ts","../esm2015/projects/cauca-management/src/lib/shared/services/management-permission.service.ts","../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.ts","../esm2015/projects/cauca-management/src/lib/shared/models/user-model.ts","../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.ts","../../projects/cauca-management/src/lib/cauca-management.module.ts","../esm2015/projects/cauca-management/src/lib/shared/models/user-group-model.ts","../esm2015/projects/cauca-management/src/lib/shared/models/user-permission-model.ts","../esm2015/projects/cauca-management/src/lib/shared/models/group-model.ts","../esm2015/projects/cauca-management/src/lib/shared/models/group-permission-model.ts","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CaucaManagementService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cauca-management',\r\n templateUrl: './cauca-management.component.html',\r\n styles: []\r\n})\r\nexport class CaucaManagementComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\r\nimport { GroupModel } from '../models/group-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ManagementGroupService {\r\n private config: Configuration;\r\n\r\n constructor(\r\n coreService: CaucaCoreService,\r\n private http: HttpClient,\r\n ) {\r\n this.config = coreService.getConfig();\r\n }\r\n\r\n public getAll(): Observable<GroupModel[]> {\r\n return this.http.get<GroupModel[]>(`${this.config.apiUrl}GroupManagement`);\r\n }\r\n\r\n public get(idGroup: string): Observable<GroupModel> {\r\n return this.http.get<GroupModel>(`${this.config.apiUrl}GroupManagement/${idGroup}`);\r\n }\r\n\r\n public save(group: GroupModel): Observable<any> {\r\n return this.http.post(`${this.config.apiUrl}GroupManagement`, group);\r\n }\r\n\r\n public delete(idGroup: string): Observable<any> {\r\n return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);\r\n }\r\n\r\n public hasExistingGroupName(group: GroupModel): Observable<boolean> {\r\n return this.http.post<boolean>(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\nimport { UserGroupModel } from '../models/user-group-model';\nimport { UserPermissionModel } from '../models/user-permission-model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementUserService {\n private config: Configuration;\n\n constructor(\n coreService: CaucaCoreService,\n protected http: HttpClient,\n ) {\n this.config = coreService.getConfig();\n }\n\n public getAll<TUser>(): Observable<TUser[]> {\n return this.http.get<TUser[]>(`${this.config.apiUrl}UserManagement`);\n }\n\n public get<TUser>(idUser: string): Observable<TUser> {\n return this.http.get<TUser>(`${this.config.apiUrl}UserManagement/${idUser}`);\n }\n\n public getGroup(idUser: string): Observable<any> {\n return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);\n }\n\n public addGroup(userGroup: UserGroupModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);\n }\n\n public deleteGroup(idUserGroup: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);\n }\n\n public addPermission(userPermission: UserPermissionModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);\n }\n\n public deletePermission(idUserPermission: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);\n }\n\n public save<TUser>(user: TUser): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement`, user);\n }\n\n public delete(idUser: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);\n }\n\n public hasExistingUserName<TUser>(user: TUser): Observable<boolean> {\n return this.http.post<boolean>(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\r\nimport { PermissionModel } from '../models/permission-model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ManagementPermissionService {\r\n private config: Configuration;\r\n\r\n constructor(\r\n coreService: CaucaCoreService,\r\n private http: HttpClient,\r\n ) {\r\n this.config = coreService.getConfig();\r\n }\r\n\r\n public getAll(): Observable<PermissionModel[]> {\r\n return this.http.get<PermissionModel[]>(`${this.config.apiUrl}PermissionManagement`);\r\n }\r\n\r\n public get(idPermission: string): Observable<PermissionModel> {\r\n return this.http.get<PermissionModel>(`${this.config.apiUrl}PermissionManagement/${idPermission}`);\r\n }\r\n\r\n public save(permission: PermissionModel): Observable<any> {\r\n return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);\r\n }\r\n\r\n public delete(idPermission: string): Observable<any> {\r\n return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { map } from 'rxjs/operators';\r\nimport { UserModel } from '../shared/models/user-model';\r\nimport { UserGroupModel } from '../shared/models/user-group-model';\r\nimport { GroupModel } from '../shared/models/group-model';\r\nimport { GroupPermissionModel } from '../shared/models/group-permission-model';\r\nimport { ManagementGroupService } from '../shared/services/management-group.service';\r\nimport { ManagementUserService } from '../shared/services/management-user.service';\r\nimport { PermissionModel } from '../shared/models/permission-model';\r\nimport { ManagementPermissionService } from '../shared/services/management-permission.service';\r\n\r\n@Component({\r\n selector: 'cauca-management-group',\r\n templateUrl: './cauca-management-group.component.html',\r\n styleUrls: ['./cauca-management-group.component.scss']\r\n})\r\nexport class CaucaManagementGroupComponent implements OnInit {\r\n private groupUsers: any;\r\n\r\n @Input()\r\n public showPrintButton: boolean = true;\r\n @Input()\r\n public hoverStatePermission = true;\r\n public groups: GroupModel[] = [];\r\n public users: UserModel[] = [];\r\n public permissions: PermissionModel[] = [];\r\n public userFullName: any = {};\r\n public showColumn = true;\r\n public showColumnXS = true;\r\n public translations: any = [];\r\n\r\n constructor(\r\n private managementGroupService: ManagementGroupService,\r\n private managementUserService: ManagementUserService,\r\n private managementPermissionService: ManagementPermissionService,\r\n breakpointObserver: BreakpointObserver,\r\n ) {\r\n breakpointObserver.observe(['(max-width: 1000px)']).subscribe(result => {\r\n this.showColumn = !result.matches;\r\n });\r\n breakpointObserver.observe(['(max-width: 600px)']).subscribe(result => {\r\n this.showColumnXS = !result.matches;\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.managementUserService.getAll<UserModel>().subscribe(data => {\r\n this.users = data;\r\n this.users.forEach(user => {\r\n if (user.isActive) {\r\n if (user.firstName !== '' && user.lastName !== '') {\r\n this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;\r\n }\r\n }\r\n });\r\n });\r\n this.managementPermissionService.getAll().subscribe(permissions => {\r\n const permissionIndex = permissions.findIndex(c => {\r\n return c.tag === 'CanAccessPermissions';\r\n });\r\n if (permissionIndex !== -1) {\r\n permissions.splice(permissionIndex, 1);\r\n }\r\n permissions.sort((a: PermissionModel, b: PermissionModel) => {\r\n if (a.name < b.name) { return -1; }\r\n if (a.name > b.name) { return 1; }\r\n return 0;\r\n });\r\n this.permissions = permissions;\r\n });\r\n this.getGroups();\r\n }\r\n\r\n public fullName(data): string {\r\n if (!data) {\r\n return '';\r\n }\r\n\r\n return `${data.firstName} ${data.lastName}`;\r\n }\r\n\r\n public getGroupUser(field, e): void {\r\n const users: string[] = [];\r\n if (this.groupUsers) {\r\n this.groupUsers.forEach( user => {\r\n users.push(user.idUser);\r\n });\r\n }\r\n e.component.option('value', users);\r\n }\r\n\r\n public setGroupUser(field, e): void {\r\n const groupUser: UserGroupModel[] = [];\r\n\r\n e.value.forEach(idUser => {\r\n const groupIndex = (field.data.users || []).findIndex(g => g.idUser === idUser);\r\n\r\n if (groupIndex === -1) {\r\n groupUser.push({ idUser, } as UserGroupModel);\r\n } else {\r\n groupUser.push(field.data.users[groupIndex]);\r\n }\r\n });\r\n\r\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\r\n }\r\n\r\n public setGroupPermission(field, e): void {\r\n const groupUser: UserGroupModel[] = [];\r\n\r\n e.value.forEach(idUser => {\r\n groupUser.push({\r\n idUser,\r\n } as UserGroupModel);\r\n });\r\n\r\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\r\n }\r\n\r\n public getPermissionStatus(field, permission, e): void {\r\n const groupPermission = (field.value || []).find(p => p.idModulePermission === permission.id);\r\n\r\n if (groupPermission) {\r\n e.component.option('value', groupPermission.isAllowed);\r\n } else {\r\n e.component.option('value', undefined);\r\n }\r\n }\r\n\r\n public checkBoxToggled(field, permission, e): void {\r\n if (e.component.skipOnValueChanged) {\r\n e.component.skipOnValueChanged = false;\r\n return;\r\n }\r\n if (e.component.setUndefinedNextTime) {\r\n e.component.setUndefinedNextTime = false;\r\n e.component.skipOnValueChanged = true;\r\n e.component.option('value', undefined);\r\n this.setPermissionStatus(field, permission, undefined);\r\n return;\r\n }\r\n if (e.value === false) {\r\n e.component.setUndefinedNextTime = true;\r\n }\r\n\r\n this.setPermissionStatus(field, permission, e.value);\r\n }\r\n\r\n public onRowInserted(e): void {\r\n this.saveGroup(e.data as GroupModel);\r\n }\r\n\r\n public onRowUpdated(e): void {\r\n this.saveGroup(e.data as GroupModel);\r\n }\r\n\r\n public onRowRemoved(e): void {\r\n const group = (e.data as GroupModel);\r\n this.managementGroupService.delete(group.id).subscribe(data => {\r\n this.getGroups();\r\n });\r\n }\r\n\r\n public calculateUsersCellValue = (e): string => {\r\n const users = (e.users ? e.users as UserGroupModel[] : []);\r\n let usersNames: any[] = [];\r\n users.forEach(user => {\r\n const userGroup = this.users.filter(u => u.id === user.idUser);\r\n if (userGroup && userGroup[0]) {\r\n usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);\r\n }\r\n });\r\n usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));\r\n return usersNames.join(', ');\r\n }\r\n\r\n public onEditingStart(e: any): void {\r\n this.groupUsers = e.data.users;\r\n }\r\n\r\n public onInitNewRow(): void {\r\n this.groupUsers = [];\r\n }\r\n\r\n public groupNameAlreadyUsedValidation = (e): Promise<boolean> => {\r\n return this.managementGroupService.hasExistingGroupName(e.data).pipe(\r\n map((exist: boolean) => {\r\n return !exist;\r\n })\r\n ).toPromise();\r\n }\r\n\r\n private setPermissionStatus(field: any, permission, value): void {\r\n const groupPermissions = field.value || [];\r\n const groupIndex = groupPermissions.findIndex(p => p.idModulePermission === permission.id);\r\n\r\n if (groupIndex > -1) {\r\n groupPermissions[groupIndex].isAllowed = value;\r\n } else {\r\n groupPermissions.push({\r\n idModulePermission: permission.id,\r\n isAllowed: value,\r\n } as GroupPermissionModel);\r\n }\r\n\r\n field.setValue(JSON.parse(JSON.stringify(groupPermissions)));\r\n }\r\n\r\n private saveGroup(group: GroupModel): void {\r\n this.removePermissionUndefined(group);\r\n if (group.users) {\r\n group.users.forEach((userGroup: UserGroupModel) => {\r\n userGroup.idGroup = group.id;\r\n });\r\n }\r\n if (group.permissions) {\r\n group.permissions.forEach((groupPermission: GroupPermissionModel) => {\r\n groupPermission.idGroup = group.id;\r\n });\r\n }\r\n this.managementGroupService.save(group).subscribe(() => {\r\n this.getGroups();\r\n });\r\n this.groupUsers = [];\r\n }\r\n\r\n private removePermissionUndefined(group: GroupModel): void {\r\n group.permissions = group.permissions.filter((permission: GroupPermissionModel) => permission.isAllowed !== undefined);\r\n }\r\n\r\n private getGroups(): void {\r\n this.managementGroupService.getAll().subscribe(data => this.groups = data);\r\n }\r\n}\r\n","import { UserGroupModel } from './user-group-model';\r\nimport { UserPermissionModel } from './user-permission-model';\r\n\r\nexport class UserModel {\r\n public id: string;\r\n public userName = '';\r\n public firstName = '';\r\n public lastName = '';\r\n public password = '';\r\n public email = '';\r\n public isActive = true;\r\n public groups: UserGroupModel[];\r\n public permissions: UserPermissionModel[];\r\n public twoFactorAuthenticatorEnabled = false;\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UserModel } from '../shared/models/user-model';\r\nimport { ManagementUserService } from '../shared/services/management-user.service';\r\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'cauca-management-user',\r\n templateUrl: './cauca-management-user.component.html',\r\n styleUrls: ['./cauca-management-user.component.scss']\r\n})\r\nexport class CaucaManagementUserComponent implements OnInit {\r\n public users: UserModel[] = [\r\n new UserModel()\r\n ];\r\n public showColumnXS = true;\r\n\r\n constructor(\r\n private managementUserService: ManagementUserService,\r\n breakpointObserver: BreakpointObserver,\r\n ) {\r\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: BreakpointState) => {\r\n this.showColumnXS = !result.matches;\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.getUsers();\r\n }\r\n\r\n public onRowInserted(e: any): void {\r\n this.saveGroup(e.data as UserModel);\r\n }\r\n\r\n public onRowUpdated(e: any): void {\r\n this.saveGroup(e.key as UserModel);\r\n }\r\n\r\n public onRowRemoved(e: any): void {\r\n const user = (e.data as UserModel);\r\n this.managementUserService.delete(user.id).subscribe((data: any) => {\r\n this.getUsers();\r\n });\r\n }\r\n\r\n public userNameAlreadyUsedValidation = (e): Promise<boolean> => {\r\n return this.managementUserService.hasExistingUserName(e.data).pipe(\r\n map((exist: boolean) => {\r\n return !exist;\r\n })\r\n ).toPromise();\r\n }\r\n\r\n private saveGroup(user: UserModel): void {\r\n this.managementUserService.save<UserModel>(user).subscribe(() => {\r\n this.getUsers();\r\n });\r\n }\r\n\r\n private getUsers(): void {\r\n this.managementUserService.getAll<UserModel>().subscribe((data: any) => this.users = data);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\r\nimport { DxListModule } from 'devextreme-angular/ui/list';\r\nimport { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\r\nimport { CaucaCoreForChildModule } from '@cauca-911/core';\r\nimport { CaucaDevextremeModule } from '@cauca-911/devextreme';\r\nimport { CaucaManagementComponent } from './cauca-management.component';\r\nimport { CaucaManagementGroupComponent } from './cauca-management-group/cauca-management-group.component';\r\nimport { CaucaManagementUserComponent } from './cauca-management-user/cauca-management-user.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n CaucaManagementComponent,\r\n CaucaManagementGroupComponent,\r\n CaucaManagementUserComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n DxCheckBoxModule,\r\n DxListModule,\r\n DxTagBoxModule,\r\n CaucaCoreForChildModule,\r\n CaucaDevextremeModule,\r\n ],\r\n exports: [\r\n CaucaManagementComponent,\r\n CaucaManagementUserComponent,\r\n CaucaManagementGroupComponent,\r\n ]\r\n})\r\nexport class CaucaManagementModule { }\r\n","export class UserGroupModel {\r\n public idUserGroup = '';\r\n public idGroup = '';\r\n public idUser = '';\r\n\r\n constructor() { }\r\n}\r\n","export class UserPermissionModel {\r\n public idUserPermission = '';\r\n public isAllowed = false;\r\n public idUser = '';\r\n public idModulePermission = '';\r\n\r\n constructor() { }\r\n}\r\n","import {GroupPermissionModel} from './group-permission-model';\r\nimport {UserGroupModel} from './user-group-model';\r\n\r\nexport class GroupModel {\r\n public id: string;\r\n public name = '';\r\n public users: UserGroupModel[] = [];\r\n public permissions: GroupPermissionModel[] = [];\r\n\r\n constructor() { }\r\n}\r\n","export class GroupPermissionModel {\r\n public idGroupPermission = '';\r\n public isAllowed = false;\r\n public idGroup = '';\r\n public idModulePermission = '';\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of cauca-management\r\n */\r\n\r\nexport * from './lib/cauca-management.service';\r\nexport * from './lib/cauca-management.component';\r\nexport * from './lib/cauca-management.module';\r\nexport * from './lib/cauca-management-group/cauca-management-group.component';\r\nexport * from './lib/cauca-management-user/cauca-management-user.component';\r\n\r\nexport { ManagementUserService } from './lib/shared/services/management-user.service';\r\nexport { ManagementGroupService } from './lib/shared/services/management-group.service';\r\nexport { UserModel } from './lib/shared/models/user-model';\r\nexport { UserGroupModel } from './lib/shared/models/user-group-model';\r\nexport { UserPermissionModel } from './lib/shared/models/user-permission-model';\r\nexport { GroupModel } from './lib/shared/models/group-model';\r\nexport { GroupPermissionModel } from './lib/shared/models/group-permission-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ManagementPermissionService as ɵa} from './lib/shared/services/management-permission.service';"],"names":["Injectable","Component","CaucaCoreService","HttpClient","map","BreakpointObserver","Input","NgModule","CommonModule","DxCheckBoxModule","DxListModule","DxTagBoxModule","CaucaCoreForChildModule","CaucaDevextremeModule"],"mappings":"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"}
1
+ {"version":3,"file":"cauca-911-management.umd.js","sources":["../../../projects/cauca-management/src/lib/cauca-management.service.ts","../../../projects/cauca-management/src/lib/cauca-management.component.ts","../../../projects/cauca-management/src/lib/cauca-management.component.html","../../../projects/cauca-management/src/lib/shared/services/management-group.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-user.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-permission.service.ts","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.html","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.ts","../../../projects/cauca-management/src/lib/shared/models/user-model.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.html","../../../projects/cauca-management/src/lib/cauca-management.module.ts","../../../projects/cauca-management/src/lib/shared/models/user-group-model.ts","../../../projects/cauca-management/src/lib/shared/models/user-permission-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-permission-model.ts","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaucaManagementService {\n\n public constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'cauca-management',\n templateUrl: './cauca-management.component.html',\n styles: []\n})\nexport class CaucaManagementComponent implements OnInit {\n\n public constructor() { }\n\n public ngOnInit(): void {\n }\n\n}\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\nimport { GroupModel } from '../models/group-model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementGroupService {\n private config: Configuration;\n\n public constructor(\n coreService: CaucaCoreService,\n private http: HttpClient,\n ) {\n this.config = coreService.getConfig();\n }\n\n public getAll(): Observable<GroupModel[]> {\n return this.http.get<GroupModel[]>(`${this.config.apiUrl}GroupManagement`);\n }\n\n public get(idGroup: string): Observable<GroupModel> {\n return this.http.get<GroupModel>(`${this.config.apiUrl}GroupManagement/${idGroup}`);\n }\n\n public save(group: GroupModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}GroupManagement`, group);\n }\n\n public delete(idGroup: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);\n }\n\n public hasExistingGroupName(group: GroupModel): Observable<boolean> {\n return this.http.post<boolean>(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\nimport { UserGroupModel } from '../models/user-group-model';\nimport { UserPermissionModel } from '../models/user-permission-model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementUserService {\n private config: Configuration;\n\n public constructor(\n coreService: CaucaCoreService,\n protected http: HttpClient,\n ) {\n this.config = coreService.getConfig();\n }\n\n public getAll<TUser>(): Observable<TUser[]> {\n return this.http.get<TUser[]>(`${this.config.apiUrl}UserManagement`);\n }\n\n public get<TUser>(idUser: string): Observable<TUser> {\n return this.http.get<TUser>(`${this.config.apiUrl}UserManagement/${idUser}`);\n }\n\n public getGroup(idUser: string): Observable<any> {\n return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);\n }\n\n public addGroup(userGroup: UserGroupModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);\n }\n\n public deleteGroup(idUserGroup: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);\n }\n\n public addPermission(userPermission: UserPermissionModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);\n }\n\n public deletePermission(idUserPermission: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);\n }\n\n public save<TUser>(user: TUser): Observable<any> {\n return this.http.post(`${this.config.apiUrl}UserManagement`, user);\n }\n\n public delete(idUser: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);\n }\n\n public hasExistingUserName<TUser>(user: TUser): Observable<boolean> {\n return this.http.post<boolean>(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Configuration, CaucaCoreService } from '@cauca-911/core';\nimport { PermissionModel } from '../models/permission-model';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementPermissionService {\n private config: Configuration;\n\n public constructor(\n coreService: CaucaCoreService,\n private http: HttpClient,\n ) {\n this.config = coreService.getConfig();\n }\n\n public getAll(): Observable<PermissionModel[]> {\n return this.http.get<PermissionModel[]>(`${this.config.apiUrl}PermissionManagement`);\n }\n\n public get(idPermission: string): Observable<PermissionModel> {\n return this.http.get<PermissionModel>(`${this.config.apiUrl}PermissionManagement/${idPermission}`);\n }\n\n public save(permission: PermissionModel): Observable<any> {\n return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);\n }\n\n public delete(idPermission: string): Observable<any> {\n return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);\n }\n}\n","<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\r\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\r\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\r\n\r\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\r\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\r\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\r\n [calculateCellValue]=\"calculateUsersCellValue\">\r\n </dxi-column>\r\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\r\n editCellTemplate=\"permissionsEditTemplate\">\r\n </dxi-column>\r\n <dxo-export [enabled]=\"false\"></dxo-export>\r\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\r\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\r\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\r\n <dxi-item dataField=\"users\"></dxi-item>\r\n <dxi-item dataField=\"permissions\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n\r\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\r\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\r\n (onValueChanged)=\"setGroupUser(field, $event)\">\r\n </dx-tag-box>\r\n </div>\r\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\r\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\r\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\r\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\r\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\r\n </dx-check-box>\r\n </div>\r\n </dx-list>\r\n </div>\r\n</cauca-dx-data-grid>","import { Component, Input, OnInit } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\nimport { UserModel } from '../shared/models/user-model';\nimport { UserGroupModel } from '../shared/models/user-group-model';\nimport { GroupModel } from '../shared/models/group-model';\nimport { GroupPermissionModel } from '../shared/models/group-permission-model';\nimport { ManagementGroupService } from '../shared/services/management-group.service';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { PermissionModel } from '../shared/models/permission-model';\nimport { ManagementPermissionService } from '../shared/services/management-permission.service';\n\n@Component({\n selector: 'cauca-management-group',\n templateUrl: './cauca-management-group.component.html',\n styleUrls: ['./cauca-management-group.component.scss']\n})\nexport class CaucaManagementGroupComponent implements OnInit {\n @Input()\n public showPrintButton: boolean = true;\n @Input()\n public hoverStatePermission = true;\n\n public groups: GroupModel[] = [];\n public users: UserModel[] = [];\n public permissions: PermissionModel[] = [];\n public userFullName: any = {};\n public showColumn = true;\n public showColumnXS = true;\n public translations: any = [];\n\n private groupUsers: any;\n\n public constructor(\n private managementGroupService: ManagementGroupService,\n private managementUserService: ManagementUserService,\n private managementPermissionService: ManagementPermissionService,\n breakpointObserver: BreakpointObserver,\n ) {\n breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result: any) => {\n this.showColumn = !result.matches;\n });\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: any) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: UserModel[]) => {\n this.users = data;\n this.users.forEach((user: UserModel) => {\n if (user.isActive) {\n if (user.firstName !== '' && user.lastName !== '') {\n this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;\n }\n }\n });\n });\n this.managementPermissionService.getAll().subscribe((permissions: PermissionModel[]) => {\n const permissionIndex = permissions.findIndex((c: PermissionModel) => c.tag === 'CanAccessPermissions');\n if (permissionIndex !== -1) {\n permissions.splice(permissionIndex, 1);\n }\n permissions.sort((a: PermissionModel, b: PermissionModel) => {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n this.permissions = permissions;\n });\n this.getGroups();\n }\n\n public fullName(data: any): string {\n if (!data) {\n return '';\n }\n\n return `${data.firstName} ${data.lastName}`;\n }\n\n public getGroupUser(field: any, e: any): void {\n const users: string[] = [];\n if (this.groupUsers) {\n this.groupUsers.forEach((user: any) => {\n users.push(user.idUser);\n });\n }\n e.component.option('value', users);\n }\n\n public setGroupUser(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n const groupIndex = (field.data.users || []).findIndex((g: any) => g.idUser === idUser);\n\n if (groupIndex === -1) {\n groupUser.push({ idUser, } as UserGroupModel);\n } else {\n groupUser.push(field.data.users[groupIndex]);\n }\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public setGroupPermission(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n groupUser.push({\n idUser,\n } as UserGroupModel);\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public getPermissionStatus(field: any, permission: any, e: any): void {\n const groupPermission = (field.value || []).find((p: any) => p.idModulePermission === permission.id);\n\n if (groupPermission) {\n e.component.option('value', groupPermission.isAllowed);\n } else {\n e.component.option('value', undefined);\n }\n }\n\n public checkBoxToggled(field: any, permission: any, e: any): void {\n if (e.component.skipOnValueChanged) {\n e.component.skipOnValueChanged = false;\n return;\n }\n if (e.component.setUndefinedNextTime) {\n e.component.setUndefinedNextTime = false;\n e.component.skipOnValueChanged = true;\n e.component.option('value', undefined);\n this.setPermissionStatus(field, permission, undefined);\n return;\n }\n if (e.value === false) {\n e.component.setUndefinedNextTime = true;\n }\n\n this.setPermissionStatus(field, permission, e.value);\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowRemoved(e: any): void {\n const group = (e.data as GroupModel);\n this.managementGroupService.delete(group.id).subscribe(() => {\n this.getGroups();\n });\n }\n\n public calculateUsersCellValue = (e: any): string => {\n const users = (e.users ? e.users as UserGroupModel[] : []);\n let usersNames: any[] = [];\n users.forEach((user: UserGroupModel) => {\n const userGroup = this.users.filter((u: UserModel) => u.id === user.idUser);\n if (userGroup && userGroup[0]) {\n usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);\n }\n });\n usersNames = usersNames.sort((one: string, two: string) => (one < two ? -1 : 1));\n return usersNames.join(', ');\n };\n\n public onEditingStart(e: any): void {\n this.groupUsers = e.data.users;\n }\n\n public onInitNewRow(): void {\n this.groupUsers = [];\n }\n\n public groupNameAlreadyUsedValidation = (e: any): Promise<boolean> => this.managementGroupService.hasExistingGroupName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private setPermissionStatus(field: any, permission: any, value: any): void {\n const groupPermissions = field.value || [];\n const groupIndex = groupPermissions.findIndex((p: GroupPermissionModel) => p.idModulePermission === permission.id);\n\n if (groupIndex > -1) {\n groupPermissions[groupIndex].isAllowed = value;\n } else {\n groupPermissions.push({\n idModulePermission: permission.id,\n isAllowed: value,\n } as GroupPermissionModel);\n }\n\n field.setValue(JSON.parse(JSON.stringify(groupPermissions)));\n }\n\n private saveGroup(group: GroupModel): void {\n this.removePermissionUndefined(group);\n if (group.users) {\n group.users.forEach((userGroup: UserGroupModel) => {\n userGroup.idGroup = group.id;\n });\n }\n if (group.permissions) {\n group.permissions.forEach((groupPermission: GroupPermissionModel) => {\n groupPermission.idGroup = group.id;\n });\n }\n this.managementGroupService.save(group).subscribe(() => {\n this.getGroups();\n });\n this.groupUsers = [];\n }\n\n private removePermissionUndefined(group: GroupModel): void {\n group.permissions = group.permissions.filter((permission: GroupPermissionModel) => permission.isAllowed !== undefined);\n }\n\n private getGroups(): void {\n this.managementGroupService.getAll().subscribe((data: any) => this.groups = data);\n }\n}\n","import { UserGroupModel } from './user-group-model';\nimport { UserPermissionModel } from './user-permission-model';\n\nexport class UserModel {\n public id: string;\n public userName = '';\n public firstName = '';\n public lastName = '';\n public password = '';\n public email = '';\n public isActive = true;\n public groups: UserGroupModel[];\n public permissions: UserPermissionModel[];\n public twoFactorAuthenticatorEnabled = false;\n\n public constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { UserModel } from '../shared/models/user-model';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'cauca-management-user',\n templateUrl: './cauca-management-user.component.html',\n styleUrls: ['./cauca-management-user.component.scss']\n})\nexport class CaucaManagementUserComponent implements OnInit {\n public users: UserModel[] = [\n new UserModel()\n ];\n public showColumnXS = true;\n\n public constructor(\n private managementUserService: ManagementUserService,\n breakpointObserver: BreakpointObserver,\n ) {\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: BreakpointState) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.getUsers();\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as UserModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.key as UserModel);\n }\n\n public onRowRemoved(e: any): void {\n const user = (e.data as UserModel);\n this.managementUserService.delete(user.id).subscribe((data: any) => {\n this.getUsers();\n });\n }\n\n public userNameAlreadyUsedValidation = (e): Promise<boolean> => this.managementUserService.hasExistingUserName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private saveGroup(user: UserModel): void {\n this.managementUserService.save<UserModel>(user).subscribe(() => {\n this.getUsers();\n });\n }\n\n private getUsers(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: any) => this.users = data);\n }\n}\n","<cauca-dx-data-grid\r\n keyExpr=\"id\"\r\n [dataSource]=\"users\"\r\n (onRowInserted)=\"onRowInserted($event)\"\r\n (onRowUpdated)=\"onRowUpdated($event)\"\r\n (onRowRemoved)=\"onRowRemoved($event)\">\r\n\r\n <dxi-column dataField=\"userName\" [caption]=\"'management.userName' | translate\">\r\n <dxi-validation-rule type=\"async\" [message]=\"'management.userNameAlreadyUsed' | translate\" [validationCallback]=\"userNameAlreadyUsedValidation\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"isActive\" [caption]=\"'management.isActive' | translate\" [visible]=\"false\"></dxi-column>\r\n <dxi-column dataField=\"firstName\" [caption]=\"'management.firstName' | translate\"></dxi-column>\r\n <dxi-column dataField=\"lastName\" [caption]=\"'management.lastName' | translate\"></dxi-column>\r\n <dxi-column dataField=\"groups\" [caption]=\"'management.group' | translate\"></dxi-column>\r\n\r\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\"></dxo-popup>\r\n <dxo-form colCount=\"2\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\r\n <dxi-item dataField=\"userName\" [isRequired]=\"true\"></dxi-item>\r\n <dxi-item dataField=\"isActive\"></dxi-item>\r\n <dxi-item dataField=\"firstName\"></dxi-item>\r\n <dxi-item dataField=\"lastName\"></dxi-item>\r\n <dxi-item dataField=\"group\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n</cauca-dx-data-grid>\r\n","import { NgModule } from '@angular/core';\r\nimport { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\r\nimport { DxListModule } from 'devextreme-angular/ui/list';\r\nimport { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\r\nimport { CaucaCoreForChildModule } from '@cauca-911/core';\r\nimport { CaucaDevextremeModule } from '@cauca-911/devextreme';\r\nimport { CaucaManagementComponent } from './cauca-management.component';\r\nimport { CaucaManagementGroupComponent } from './cauca-management-group/cauca-management-group.component';\r\nimport { CaucaManagementUserComponent } from './cauca-management-user/cauca-management-user.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n CaucaManagementComponent,\r\n CaucaManagementGroupComponent,\r\n CaucaManagementUserComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n DxCheckBoxModule,\r\n DxListModule,\r\n DxTagBoxModule,\r\n CaucaCoreForChildModule,\r\n CaucaDevextremeModule,\r\n ],\r\n exports: [\r\n CaucaManagementComponent,\r\n CaucaManagementUserComponent,\r\n CaucaManagementGroupComponent,\r\n ]\r\n})\r\nexport class CaucaManagementModule { }\r\n","export class UserGroupModel {\n public idUserGroup = '';\n public idGroup = '';\n public idUser = '';\n\n public constructor() { }\n}\n","export class UserPermissionModel {\n public idUserPermission = '';\n public isAllowed = false;\n public idUser = '';\n public idModulePermission = '';\n\n public constructor() { }\n}\n","import {GroupPermissionModel} from './group-permission-model';\nimport {UserGroupModel} from './user-group-model';\n\nexport class GroupModel {\n public id: string;\n public name = '';\n public users: UserGroupModel[] = [];\n public permissions: GroupPermissionModel[] = [];\n\n public constructor() { }\n}\n","export class GroupPermissionModel {\n public idGroupPermission = '';\n public isAllowed = false;\n public idGroup = '';\n public idModulePermission = '';\n\n public constructor() { }\n}\n","/*\r\n * Public API Surface of cauca-management\r\n */\r\n\r\nexport * from './lib/cauca-management.service';\r\nexport * from './lib/cauca-management.component';\r\nexport * from './lib/cauca-management.module';\r\nexport * from './lib/cauca-management-group/cauca-management-group.component';\r\nexport * from './lib/cauca-management-user/cauca-management-user.component';\r\n\r\nexport { ManagementUserService } from './lib/shared/services/management-user.service';\r\nexport { ManagementGroupService } from './lib/shared/services/management-group.service';\r\nexport { UserModel } from './lib/shared/models/user-model';\r\nexport { UserGroupModel } from './lib/shared/models/user-group-model';\r\nexport { UserPermissionModel } from './lib/shared/models/user-permission-model';\r\nexport { GroupModel } from './lib/shared/models/group-model';\r\nexport { GroupPermissionModel } from './lib/shared/models/group-permission-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","i0","Component","map","Input","CommonModule","DxCheckBoxModule","DxListModule","DxTagBoxModule","CaucaCoreForChildModule","CaucaDevextremeModule","NgModule"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@cauca-911/management" />
4
5
  export * from './public-api';
5
- export { ManagementPermissionService as ɵa } from './lib/shared/services/management-permission.service';
@@ -2,5 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { ManagementPermissionService as ɵa } from './lib/shared/services/management-permission.service';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtOTExLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWFuYWdlbWVudC9zcmMvIiwic291cmNlcyI6WyJjYXVjYS05MTEtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtNYW5hZ2VtZW50UGVybWlzc2lvblNlcnZpY2UgYXMgybVhfSBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvbWFuYWdlbWVudC1wZXJtaXNzaW9uLnNlcnZpY2UnOyJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtOTExLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYW5hZ2VtZW50L3NyYy9jYXVjYS05MTEtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,9 +1,55 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { BreakpointObserver } from '@angular/cdk/layout';
3
2
  import { map } from 'rxjs/operators';
4
- import { ManagementGroupService } from '../shared/services/management-group.service';
5
- import { ManagementUserService } from '../shared/services/management-user.service';
6
- import { ManagementPermissionService } from '../shared/services/management-permission.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../shared/services/management-group.service";
5
+ import * as i2 from "../shared/services/management-user.service";
6
+ import * as i3 from "../shared/services/management-permission.service";
7
+ import * as i4 from "@angular/cdk/layout";
8
+ import * as i5 from "@cauca-911/devextreme";
9
+ import * as i6 from "devextreme-angular/ui/nested";
10
+ import * as i7 from "devextreme-angular/core";
11
+ import * as i8 from "devextreme-angular/ui/tag-box";
12
+ import * as i9 from "devextreme-angular/ui/list";
13
+ import * as i10 from "devextreme-angular/ui/check-box";
14
+ import * as i11 from "@ngx-translate/core";
15
+ function CaucaManagementGroupComponent_div_17_Template(rf, ctx) { if (rf & 1) {
16
+ const _r4 = i0.ɵɵgetCurrentView();
17
+ i0.ɵɵelementStart(0, "div");
18
+ i0.ɵɵelementStart(1, "dx-tag-box", 13);
19
+ i0.ɵɵlistener("onInitialized", function CaucaManagementGroupComponent_div_17_Template_dx_tag_box_onInitialized_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r4); const field_r2 = restoredCtx.$implicit; const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.getGroupUser(field_r2, $event); })("onValueChanged", function CaucaManagementGroupComponent_div_17_Template_dx_tag_box_onValueChanged_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r4); const field_r2 = restoredCtx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.setGroupUser(field_r2, $event); });
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementEnd();
22
+ } if (rf & 2) {
23
+ const ctx_r0 = i0.ɵɵnextContext();
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵproperty("displayExpr", ctx_r0.fullName)("dataSource", ctx_r0.users)("searchEnabled", true)("searchExpr", ctx_r0.fullName);
26
+ } }
27
+ function CaucaManagementGroupComponent_div_18_div_2_Template(rf, ctx) { if (rf & 1) {
28
+ const _r11 = i0.ɵɵgetCurrentView();
29
+ i0.ɵɵelementStart(0, "div");
30
+ i0.ɵɵelementStart(1, "dx-check-box", 15);
31
+ i0.ɵɵlistener("onInitialized", function CaucaManagementGroupComponent_div_18_div_2_Template_dx_check_box_onInitialized_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const permission_r8 = restoredCtx.$implicit; const field_r6 = i0.ɵɵnextContext().$implicit; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.getPermissionStatus(field_r6, permission_r8, $event); })("onValueChanged", function CaucaManagementGroupComponent_div_18_div_2_Template_dx_check_box_onValueChanged_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const permission_r8 = restoredCtx.$implicit; const field_r6 = i0.ɵɵnextContext().$implicit; const ctx_r12 = i0.ɵɵnextContext(); return ctx_r12.checkBoxToggled(field_r6, permission_r8, $event); });
32
+ i0.ɵɵelementEnd();
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const permission_r8 = ctx.$implicit;
36
+ i0.ɵɵadvance(1);
37
+ i0.ɵɵproperty("text", permission_r8.name);
38
+ } }
39
+ const _c0 = function () { return ["name", "tag"]; };
40
+ function CaucaManagementGroupComponent_div_18_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelementStart(0, "div");
42
+ i0.ɵɵelementStart(1, "dx-list", 14);
43
+ i0.ɵɵtemplate(2, CaucaManagementGroupComponent_div_18_div_2_Template, 2, 1, "div", 12);
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵelementEnd();
46
+ } if (rf & 2) {
47
+ const ctx_r1 = i0.ɵɵnextContext();
48
+ i0.ɵɵadvance(1);
49
+ i0.ɵɵproperty("dataSource", ctx_r1.permissions)("searchEnabled", true)("searchExpr", i0.ɵɵpureFunction0(5, _c0))("hoverStateEnabled", ctx_r1.hoverStatePermission);
50
+ i0.ɵɵadvance(1);
51
+ i0.ɵɵproperty("dxTemplateOf", "rowTemplate");
52
+ } }
7
53
  export class CaucaManagementGroupComponent {
8
54
  constructor(managementGroupService, managementUserService, managementPermissionService, breakpointObserver) {
9
55
  this.managementGroupService = managementGroupService;
@@ -21,8 +67,8 @@ export class CaucaManagementGroupComponent {
21
67
  this.calculateUsersCellValue = (e) => {
22
68
  const users = (e.users ? e.users : []);
23
69
  let usersNames = [];
24
- users.forEach(user => {
25
- const userGroup = this.users.filter(u => u.id === user.idUser);
70
+ users.forEach((user) => {
71
+ const userGroup = this.users.filter((u) => u.id === user.idUser);
26
72
  if (userGroup && userGroup[0]) {
27
73
  usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);
28
74
  }
@@ -30,22 +76,18 @@ export class CaucaManagementGroupComponent {
30
76
  usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));
31
77
  return usersNames.join(', ');
32
78
  };
33
- this.groupNameAlreadyUsedValidation = (e) => {
34
- return this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => {
35
- return !exist;
36
- })).toPromise();
37
- };
38
- breakpointObserver.observe(['(max-width: 1000px)']).subscribe(result => {
79
+ this.groupNameAlreadyUsedValidation = (e) => this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => !exist)).toPromise();
80
+ breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result) => {
39
81
  this.showColumn = !result.matches;
40
82
  });
41
- breakpointObserver.observe(['(max-width: 600px)']).subscribe(result => {
83
+ breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
42
84
  this.showColumnXS = !result.matches;
43
85
  });
44
86
  }
45
87
  ngOnInit() {
46
- this.managementUserService.getAll().subscribe(data => {
88
+ this.managementUserService.getAll().subscribe((data) => {
47
89
  this.users = data;
48
- this.users.forEach(user => {
90
+ this.users.forEach((user) => {
49
91
  if (user.isActive) {
50
92
  if (user.firstName !== '' && user.lastName !== '') {
51
93
  this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;
@@ -53,10 +95,8 @@ export class CaucaManagementGroupComponent {
53
95
  }
54
96
  });
55
97
  });
56
- this.managementPermissionService.getAll().subscribe(permissions => {
57
- const permissionIndex = permissions.findIndex(c => {
58
- return c.tag === 'CanAccessPermissions';
59
- });
98
+ this.managementPermissionService.getAll().subscribe((permissions) => {
99
+ const permissionIndex = permissions.findIndex((c) => c.tag === 'CanAccessPermissions');
60
100
  if (permissionIndex !== -1) {
61
101
  permissions.splice(permissionIndex, 1);
62
102
  }
@@ -82,7 +122,7 @@ export class CaucaManagementGroupComponent {
82
122
  getGroupUser(field, e) {
83
123
  const users = [];
84
124
  if (this.groupUsers) {
85
- this.groupUsers.forEach(user => {
125
+ this.groupUsers.forEach((user) => {
86
126
  users.push(user.idUser);
87
127
  });
88
128
  }
@@ -90,8 +130,8 @@ export class CaucaManagementGroupComponent {
90
130
  }
91
131
  setGroupUser(field, e) {
92
132
  const groupUser = [];
93
- e.value.forEach(idUser => {
94
- const groupIndex = (field.data.users || []).findIndex(g => g.idUser === idUser);
133
+ e.value.forEach((idUser) => {
134
+ const groupIndex = (field.data.users || []).findIndex((g) => g.idUser === idUser);
95
135
  if (groupIndex === -1) {
96
136
  groupUser.push({ idUser, });
97
137
  }
@@ -103,7 +143,7 @@ export class CaucaManagementGroupComponent {
103
143
  }
104
144
  setGroupPermission(field, e) {
105
145
  const groupUser = [];
106
- e.value.forEach(idUser => {
146
+ e.value.forEach((idUser) => {
107
147
  groupUser.push({
108
148
  idUser,
109
149
  });
@@ -111,7 +151,7 @@ export class CaucaManagementGroupComponent {
111
151
  field.setValue(JSON.parse(JSON.stringify(groupUser)));
112
152
  }
113
153
  getPermissionStatus(field, permission, e) {
114
- const groupPermission = (field.value || []).find(p => p.idModulePermission === permission.id);
154
+ const groupPermission = (field.value || []).find((p) => p.idModulePermission === permission.id);
115
155
  if (groupPermission) {
116
156
  e.component.option('value', groupPermission.isAllowed);
117
157
  }
@@ -144,7 +184,7 @@ export class CaucaManagementGroupComponent {
144
184
  }
145
185
  onRowRemoved(e) {
146
186
  const group = e.data;
147
- this.managementGroupService.delete(group.id).subscribe(data => {
187
+ this.managementGroupService.delete(group.id).subscribe(() => {
148
188
  this.getGroups();
149
189
  });
150
190
  }
@@ -156,7 +196,7 @@ export class CaucaManagementGroupComponent {
156
196
  }
157
197
  setPermissionStatus(field, permission, value) {
158
198
  const groupPermissions = field.value || [];
159
- const groupIndex = groupPermissions.findIndex(p => p.idModulePermission === permission.id);
199
+ const groupIndex = groupPermissions.findIndex((p) => p.idModulePermission === permission.id);
160
200
  if (groupIndex > -1) {
161
201
  groupPermissions[groupIndex].isAllowed = value;
162
202
  }
@@ -189,24 +229,70 @@ export class CaucaManagementGroupComponent {
189
229
  group.permissions = group.permissions.filter((permission) => permission.isAllowed !== undefined);
190
230
  }
191
231
  getGroups() {
192
- this.managementGroupService.getAll().subscribe(data => this.groups = data);
232
+ this.managementGroupService.getAll().subscribe((data) => this.groups = data);
193
233
  }
194
234
  }
195
- CaucaManagementGroupComponent.decorators = [
196
- { type: Component, args: [{
235
+ CaucaManagementGroupComponent.ɵfac = function CaucaManagementGroupComponent_Factory(t) { return new (t || CaucaManagementGroupComponent)(i0.ɵɵdirectiveInject(i1.ManagementGroupService), i0.ɵɵdirectiveInject(i2.ManagementUserService), i0.ɵɵdirectiveInject(i3.ManagementPermissionService), i0.ɵɵdirectiveInject(i4.BreakpointObserver)); };
236
+ CaucaManagementGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaucaManagementGroupComponent, selectors: [["cauca-management-group"]], inputs: { showPrintButton: "showPrintButton", hoverStatePermission: "hoverStatePermission" }, decls: 19, vars: 31, consts: [["keyExpr", "id", 3, "allowPrint", "dataSource", "onRowInserted", "onInitNewRow", "onRowUpdated", "onEditingStart", "onRowRemoved"], ["dataField", "name", 3, "caption"], ["type", "async", 3, "message", "validationCallback"], ["dataField", "users", "editCellTemplate", "usersEditTemplate", 3, "caption", "calculateCellValue"], ["dataField", "permissions", "editCellTemplate", "permissionsEditTemplate", 3, "caption", "visible"], [3, "enabled"], ["mode", "popup", 3, "allowAdding", "allowUpdating", "allowDeleting", "useIcons"], [3, "showTitle", "title", "fullScreen"], ["colCount", "1", 3, "labelLocation"], ["dataField", "name", 3, "isRequired"], ["dataField", "users"], ["dataField", "permissions"], [4, "dxTemplate", "dxTemplateOf"], ["valueExpr", "id", 3, "displayExpr", "dataSource", "searchEnabled", "searchExpr", "onInitialized", "onValueChanged"], ["itemTemplate", "rowTemplate", 3, "dataSource", "searchEnabled", "searchExpr", "hoverStateEnabled"], [3, "text", "onInitialized", "onValueChanged"]], template: function CaucaManagementGroupComponent_Template(rf, ctx) { if (rf & 1) {
237
+ i0.ɵɵelementStart(0, "cauca-dx-data-grid", 0);
238
+ i0.ɵɵlistener("onRowInserted", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowInserted_0_listener($event) { return ctx.onRowInserted($event); })("onInitNewRow", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onInitNewRow_0_listener() { return ctx.onInitNewRow(); })("onRowUpdated", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowUpdated_0_listener($event) { return ctx.onRowUpdated($event); })("onEditingStart", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onEditingStart_0_listener($event) { return ctx.onEditingStart($event); })("onRowRemoved", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowRemoved_0_listener($event) { return ctx.onRowRemoved($event); });
239
+ i0.ɵɵelementStart(1, "dxi-column", 1);
240
+ i0.ɵɵpipe(2, "translate");
241
+ i0.ɵɵelement(3, "dxi-validation-rule", 2);
242
+ i0.ɵɵpipe(4, "translate");
243
+ i0.ɵɵelementEnd();
244
+ i0.ɵɵelement(5, "dxi-column", 3);
245
+ i0.ɵɵpipe(6, "translate");
246
+ i0.ɵɵelement(7, "dxi-column", 4);
247
+ i0.ɵɵpipe(8, "translate");
248
+ i0.ɵɵelement(9, "dxo-export", 5);
249
+ i0.ɵɵelementStart(10, "dxo-editing", 6);
250
+ i0.ɵɵelement(11, "dxo-popup", 7);
251
+ i0.ɵɵpipe(12, "translate");
252
+ i0.ɵɵelementStart(13, "dxo-form", 8);
253
+ i0.ɵɵelement(14, "dxi-item", 9);
254
+ i0.ɵɵelement(15, "dxi-item", 10);
255
+ i0.ɵɵelement(16, "dxi-item", 11);
256
+ i0.ɵɵelementEnd();
257
+ i0.ɵɵelementEnd();
258
+ i0.ɵɵtemplate(17, CaucaManagementGroupComponent_div_17_Template, 2, 4, "div", 12);
259
+ i0.ɵɵtemplate(18, CaucaManagementGroupComponent_div_18_Template, 3, 6, "div", 12);
260
+ i0.ɵɵelementEnd();
261
+ } if (rf & 2) {
262
+ i0.ɵɵproperty("allowPrint", ctx.showPrintButton)("dataSource", ctx.groups);
263
+ i0.ɵɵadvance(1);
264
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(2, 21, "management.name"));
265
+ i0.ɵɵadvance(2);
266
+ i0.ɵɵproperty("message", i0.ɵɵpipeBind1(4, 23, "management.groupNameAlreadyUsed"))("validationCallback", ctx.groupNameAlreadyUsedValidation);
267
+ i0.ɵɵadvance(2);
268
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(6, 25, "management.users"))("calculateCellValue", ctx.calculateUsersCellValue);
269
+ i0.ɵɵadvance(2);
270
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(8, 27, "management.permissions"))("visible", false);
271
+ i0.ɵɵadvance(2);
272
+ i0.ɵɵproperty("enabled", false);
273
+ i0.ɵɵadvance(1);
274
+ i0.ɵɵproperty("allowAdding", true)("allowUpdating", true)("allowDeleting", true)("useIcons", true);
275
+ i0.ɵɵadvance(1);
276
+ i0.ɵɵproperty("showTitle", true)("title", i0.ɵɵpipeBind1(12, 29, "management.group"))("fullScreen", !ctx.showColumn);
277
+ i0.ɵɵadvance(2);
278
+ i0.ɵɵproperty("labelLocation", ctx.showColumnXS ? "left" : "top");
279
+ i0.ɵɵadvance(1);
280
+ i0.ɵɵproperty("isRequired", true);
281
+ i0.ɵɵadvance(3);
282
+ i0.ɵɵproperty("dxTemplateOf", "usersEditTemplate");
283
+ i0.ɵɵadvance(1);
284
+ i0.ɵɵproperty("dxTemplateOf", "permissionsEditTemplate");
285
+ } }, directives: [i5.CaucaDataGridComponent, i6.DxiColumnComponent, i6.DxiValidationRuleComponent, i6.DxoExportComponent, i6.DxoEditingComponent, i6.DxoPopupComponent, i6.DxoFormComponent, i6.DxiItemComponent, i7.DxTemplateDirective, i8.DxTagBoxComponent, i9.DxListComponent, i10.DxCheckBoxComponent], pipes: [i11.TranslatePipe], styles: [""] });
286
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementGroupComponent, [{
287
+ type: Component,
288
+ args: [{
197
289
  selector: 'cauca-management-group',
198
- template: "<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\r\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\r\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\r\n\r\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\r\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\r\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\r\n [calculateCellValue]=\"calculateUsersCellValue\">\r\n </dxi-column>\r\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\r\n editCellTemplate=\"permissionsEditTemplate\">\r\n </dxi-column>\r\n <dxo-export [enabled]=\"false\"></dxo-export>\r\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\r\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\r\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\r\n <dxi-item dataField=\"users\"></dxi-item>\r\n <dxi-item dataField=\"permissions\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n\r\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\r\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\r\n (onValueChanged)=\"setGroupUser(field, $event)\">\r\n </dx-tag-box>\r\n </div>\r\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\r\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\r\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\r\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\r\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\r\n </dx-check-box>\r\n </div>\r\n </dx-list>\r\n </div>\r\n</cauca-dx-data-grid>",
199
- styles: [""]
200
- },] }
201
- ];
202
- CaucaManagementGroupComponent.ctorParameters = () => [
203
- { type: ManagementGroupService },
204
- { type: ManagementUserService },
205
- { type: ManagementPermissionService },
206
- { type: BreakpointObserver }
207
- ];
208
- CaucaManagementGroupComponent.propDecorators = {
209
- showPrintButton: [{ type: Input }],
210
- hoverStatePermission: [{ type: Input }]
211
- };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtbWFuYWdlbWVudC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWFuYWdlbWVudC9zcmMvIiwic291cmNlcyI6WyJsaWIvY2F1Y2EtbWFuYWdlbWVudC1ncm91cC9jYXVjYS1tYW5hZ2VtZW50LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLckMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFPL0YsTUFBTSxPQUFPLDZCQUE2QjtJQWV0QyxZQUNZLHNCQUE4QyxFQUM5QyxxQkFBNEMsRUFDNUMsMkJBQXdELEVBQ2hFLGtCQUFzQztRQUg5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQWQ3RCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUVoQyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsV0FBTSxHQUFpQixFQUFFLENBQUM7UUFDMUIsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQ3BDLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsaUJBQVksR0FBUSxFQUFF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LENBQUM7SUFDM0gsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDOzs7WUE3TkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLG1wRkFBc0Q7O2FBRXpEOzs7WUFUUSxzQkFBc0I7WUFDdEIscUJBQXFCO1lBRXJCLDJCQUEyQjtZQVQzQixrQkFBa0I7Ozs4QkFtQnRCLEtBQUs7bUNBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3VzZXItbW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyR3JvdXBNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvdXNlci1ncm91cC1tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL2dyb3VwLW1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBQZXJtaXNzaW9uTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL2dyb3VwLXBlcm1pc3Npb24tbW9kZWwnO1xyXG5pbXBvcnQgeyBNYW5hZ2VtZW50R3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL21hbmFnZW1lbnQtZ3JvdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRVc2VyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9tYW5hZ2VtZW50LXVzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25Nb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvcGVybWlzc2lvbi1tb2RlbCc7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9tYW5hZ2VtZW50LXBlcm1pc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2F1Y2EtbWFuYWdlbWVudC1ncm91cCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2F1Y2EtbWFuYWdlbWVudC1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXVjYS1tYW5hZ2VtZW50LWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhdWNhTWFuYWdlbWVudEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHByaXZhdGUgZ3JvdXBVc2VyczogYW55O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ByaW50QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaG92ZXJTdGF0ZVBlcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgcHVibGljIGdyb3VwczogR3JvdXBNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgdXNlcnM6IFVzZXJNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25Nb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgdXNlckZ1bGxOYW1lOiBhbnkgPSB7fTtcclxuICAgIHB1YmxpYyBzaG93Q29sdW1uID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBzaG93Q29sdW1uWFMgPSB0cnVlO1xyXG4gICAgcHVibGljIHRyYW5zbGF0aW9uczogYW55ID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBtYW5hZ2VtZW50R3JvdXBTZXJ2aWNlOiBNYW5hZ2VtZW50R3JvdXBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWFuYWdlbWVudFVzZXJTZXJ2aWNlOiBNYW5hZ2VtZW50VXNlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtYW5hZ2VtZW50UGVybWlzc2lvblNlcnZpY2U6IE1hbmFnZW1lbnRQZXJtaXNzaW9uU2VydmljZSxcclxuICAgICAgICBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcclxuICAgICkge1xyXG4gICAgICAgIGJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFsnKG1heC13aWR0aDogMTAwMHB4KSddKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q29sdW1uID0gIXJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFsnKG1heC13aWR0aDogNjAwcHgpJ10pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dDb2x1bW5YUyA9ICFyZXN1bHQubWF0Y2hlcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VtZW50VXNlclNlcnZpY2UuZ2V0QWxsPFVzZXJNb2RlbD4oKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlcnMgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJzLmZvckVhY2godXNlciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodXNlci5pc0FjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyLmZpcnN0TmFtZSAhPT0gJycgJiYgdXNlci5sYXN0TmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRnVsbE5hbWVbdXNlci5pZF0gID0gYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VtZW50UGVybWlzc2lvblNlcnZpY2UuZ2V0QWxsKCkuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcGVybWlzc2lvbkluZGV4ID0gcGVybWlzc2lvbnMuZmluZEluZGV4KGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGMudGFnID09PSAnQ2FuQWNjZXNzUGVybWlzc2lvbnMnO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb25JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zLnNwbGljZShwZXJtaXNzaW9uSW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLnNvcnQoKGE6IFBlcm1pc3Npb25Nb2RlbCwgYjogUGVybWlzc2lvbk1vZGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYS5uYW1lIDwgYi5uYW1lKSB7IHJldHVybiAtMTsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGEubmFtZSA+IGIubmFtZSkgeyByZXR1cm4gMTsgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gcGVybWlzc2lvbnM7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZnVsbE5hbWUoZGF0YSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtkYXRhLmZpcnN0TmFtZX0gJHtkYXRhLmxhc3ROYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEdyb3VwVXNlcihmaWVsZCwgZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHVzZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwVXNlcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFVzZXJzLmZvckVhY2goIHVzZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdXNlcnMucHVzaCh1c2VyLmlkVXNlcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlLmNvbXBvbmVudC5vcHRpb24oJ3ZhbHVlJywgdXNlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRHcm91cFVzZXIoZmllbGQsIGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBncm91cFVzZXI6IFVzZXJHcm91cE1vZGVsW10gPSBbXTtcclxuXHJcbiAgICAgICAgZS52YWx1ZS5mb3JFYWNoKGlkVXNlciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSAoZmllbGQuZGF0YS51c2VycyB8fCBbXSkuZmluZEluZGV4KGcgPT4gZy5pZFVzZXIgPT09IGlkVXNlcik7XHJcblxyXG4gICAgICAgICAgICBpZiAoZ3JvdXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGdyb3VwVXNlci5wdXNoKHsgaWRVc2VyLCB9IGFzIFVzZXJHcm91cE1vZGVsKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyb3VwVXNlci5wdXNoKGZpZWxkLmRhdGEudXNlcnNbZ3JvdXBJbmRleF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGZpZWxkLnNldFZhbHVlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ3JvdXBVc2VyKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRHcm91cFBlcm1pc3Npb24oZmllbGQsIGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBncm91cFVzZXI6IFVzZXJHcm91cE1vZGVsW10gPSBbXTtcclxuXHJcbiAgICAgICAgZS52YWx1ZS5mb3JFYWNoKGlkVXNlciA9PiB7XHJcbiAgICAgICAgICAgIGdyb3VwVXNlci5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkVXNlcixcclxuICAgICAgICAgICAgfSBhcyBVc2VyR3JvdXBNb2RlbCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGZpZWxkLnNldFZhbHVlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ3JvdXBVc2VyKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRQZXJtaXNzaW9uU3RhdHVzKGZpZWxkLCBwZXJtaXNzaW9uLCBlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBQZXJtaXNzaW9uID0gKGZpZWxkLnZhbHVlIHx8IFtdKS5maW5kKHAgPT4gcC5pZE1vZHVsZVBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24uaWQpO1xyXG5cclxuICAgICAgICBpZiAoZ3JvdXBQZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIGUuY29tcG9uZW50Lm9wdGlvbigndmFsdWUnLCBncm91cFBlcm1pc3Npb24uaXNBbGxvd2VkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlLmNvbXBvbmVudC5vcHRpb24oJ3ZhbHVlJywgdW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoZWNrQm94VG9nZ2xlZChmaWVsZCwgcGVybWlzc2lvbiwgZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlLmNvbXBvbmVudC5za2lwT25WYWx1ZUNoYW5nZWQpIHtcclxuICAgICAgICAgICAgZS5jb21wb25lbnQuc2tpcE9uVmFsdWVDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUuY29tcG9uZW50LnNldFVuZGVmaW5lZE5leHRUaW1lKSB7XHJcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNldFVuZGVmaW5lZE5leHRUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNraXBPblZhbHVlQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGUuY29tcG9uZW50Lm9wdGlvbigndmFsdWUnLCB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBlcm1pc3Npb25TdGF0dXMoZmllbGQsIHBlcm1pc3Npb24sIHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUudmFsdWUgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNldFVuZGVmaW5lZE5leHRUaW1lID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UGVybWlzc2lvblN0YXR1cyhmaWVsZCwgcGVybWlzc2lvbiwgZS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUm93SW5zZXJ0ZWQoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2F2ZUdyb3VwKGUuZGF0YSBhcyBHcm91cE1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Sb3dVcGRhdGVkKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNhdmVHcm91cChlLmRhdGEgYXMgR3JvdXBNb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUm93UmVtb3ZlZChlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXAgPSAoZS5kYXRhIGFzIEdyb3VwTW9kZWwpO1xyXG4gICAgICAgIHRoaXMubWFuYWdlbWVudEdyb3VwU2VydmljZS5kZWxldGUoZ3JvdXAuaWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FsY3VsYXRlVXNlcnNDZWxsVmFsdWUgPSAoZSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlcnMgPSAoZS51c2VycyA/IGUudXNlcnMgYXMgVXNlckdyb3VwTW9kZWxbXSA6IFtdKTtcclxuICAgICAgICBsZXQgdXNlcnNOYW1lczogYW55W10gPSBbXTtcclxuICAgICAgICB1c2Vycy5mb3JFYWNoKHVzZXIgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VyR3JvdXAgPSB0aGlzLnVzZXJzLmZpbHRlcih1ID0+IHUuaWQgPT09IHVzZXIuaWRVc2VyKTtcclxuICAgICAgICAgICAgaWYgKHVzZXJHcm91cCAmJiB1c2VyR3JvdXBbMF0pIHtcclxuICAgICAgICAgICAgICAgIHVzZXJzTmFtZXMucHVzaCh1c2VyR3JvdXBbMF0uZmlyc3ROYW1lICsgJyAnICsgdXNlckdyb3VwWzBdLmxhc3ROYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHVzZXJzTmFtZXMgPSB1c2Vyc05hbWVzLnNvcnQoKG9uZSwgdHdvKSA9PiAob25lIDwgdHdvID8gLTEgOiAxKSk7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJzTmFtZXMuam9pbignLCAnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25FZGl0aW5nU3RhcnQoZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cFVzZXJzID0gZS5kYXRhLnVzZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkluaXROZXdSb3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cFVzZXJzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdyb3VwTmFtZUFscmVhZHlVc2VkVmFsaWRhdGlvbiA9IChlKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFuYWdlbWVudEdyb3VwU2VydmljZS5oYXNFeGlzdGluZ0dyb3VwTmFtZShlLmRhdGEpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoZXhpc3Q6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAhZXhpc3Q7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFBlcm1pc3Npb25TdGF0dXMoZmllbGQ6IGFueSwgcGVybWlzc2lvbiwgdmFsdWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBncm91cFBlcm1pc3Npb25zID0gZmllbGQudmFsdWUgfHwgW107XHJcbiAgICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3VwUGVybWlzc2lvbnMuZmluZEluZGV4KHAgPT4gcC5pZE1vZHVsZVBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24uaWQpO1xyXG5cclxuICAgICAgICBpZiAoZ3JvdXBJbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIGdyb3VwUGVybWlzc2lvbnNbZ3JvdXBJbmRleF0uaXNBbGxvd2VkID0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXBQZXJtaXNzaW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkTW9kdWxlUGVybWlzc2lvbjogcGVybWlzc2lvbi5pZCxcclxuICAgICAgICAgICAgICAgIGlzQWxsb3dlZDogdmFsdWUsXHJcbiAgICAgICAgICAgIH0gYXMgR3JvdXBQZXJtaXNzaW9uTW9kZWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmllbGQuc2V0VmFsdWUoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShncm91cFBlcm1pc3Npb25zKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2F2ZUdyb3VwKGdyb3VwOiBHcm91cE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVQZXJtaXNzaW9uVW5kZWZpbmVkKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlcnMpIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlcnMuZm9yRWFjaCgodXNlckdyb3VwOiBVc2VyR3JvdXBNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdXNlckdyb3VwLmlkR3JvdXAgPSBncm91cC5pZDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC5wZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICBncm91cC5wZXJtaXNzaW9ucy5mb3JFYWNoKChncm91cFBlcm1pc3Npb246IEdyb3VwUGVybWlzc2lvbk1vZGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBncm91cFBlcm1pc3Npb24uaWRHcm91cCA9IGdyb3VwLmlkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VtZW50R3JvdXBTZXJ2aWNlLnNhdmUoZ3JvdXApLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0R3JvdXBzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncm91cFVzZXJzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVQZXJtaXNzaW9uVW5kZWZpbmVkKGdyb3VwOiBHcm91cE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgZ3JvdXAucGVybWlzc2lvbnMgPSBncm91cC5wZXJtaXNzaW9ucy5maWx0ZXIoKHBlcm1pc3Npb246IEdyb3VwUGVybWlzc2lvbk1vZGVsKSA9PiBwZXJtaXNzaW9uLmlzQWxsb3dlZCAhPT0gdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEdyb3VwcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1hbmFnZW1lbnRHcm91cFNlcnZpY2UuZ2V0QWxsKCkuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5ncm91cHMgPSBkYXRhKTtcclxuICAgIH1cclxufVxyXG4iXX0=
290
+ templateUrl: './cauca-management-group.component.html',
291
+ styleUrls: ['./cauca-management-group.component.scss']
292
+ }]
293
+ }], function () { return [{ type: i1.ManagementGroupService }, { type: i2.ManagementUserService }, { type: i3.ManagementPermissionService }, { type: i4.BreakpointObserver }]; }, { showPrintButton: [{
294
+ type: Input
295
+ }], hoverStatePermission: [{
296
+ type: Input
297
+ }] }); })();
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtbWFuYWdlbWVudC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYW5hZ2VtZW50L3NyYy9saWIvY2F1Y2EtbWFuYWdlbWVudC1ncm91cC9jYXVjYS1tYW5hZ2VtZW50LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hbmFnZW1lbnQvc3JjL2xpYi9jYXVjYS1tYW5hZ2VtZW50LWdyb3VwL2NhdWNhLW1hbmFnZW1lbnQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNzQmpDLDJCQUFvRDtJQUNoRCxzQ0FFbUQ7SUFEdkIsMFNBQTZDLCtSQUFBO0lBRXpFLGlCQUFhO0lBQ2pCLGlCQUFNOzs7SUFKeUIsZUFBd0I7SUFBeEIsNkNBQXdCLDRCQUFBLHVCQUFBLCtCQUFBOzs7O0lBUS9DLDJCQUFtRDtJQUMvQyx3Q0FDa0U7SUFEM0IsNlhBQWdFLGdYQUFBO0lBRXZHLGlCQUFlO0lBQ25CLGlCQUFNOzs7SUFIWSxlQUF3QjtJQUF4Qix5Q0FBd0I7Ozs7SUFKbEQsMkJBQTBEO0lBQ3RELG1DQUM4RTtJQUMxRSxzRkFJTTtJQUNWLGlCQUFVO0lBQ2QsaUJBQU07OztJQVJPLGVBQTBCO0lBQTFCLCtDQUEwQix1QkFBQSwwQ0FBQSxrREFBQTtJQUVFLGVBQWdCO0lBQWhCLDRDQUFnQjs7QURoQjdELE1BQU0sT0FBTyw2QkFBNkI7SUFnQnRDLFlBQ1ksc0JBQThDLEVBQzlDLHFCQUE0QyxFQUM1QywyQkFBd0QsRUFDaEUsa0JBQXNDO1FBSDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFD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UUFBMUMsbUVBQTBDLG1EQUFBO1FBR3BDLGVBQWdEO1FBQWhELHlFQUFnRCxrQkFBQTtRQUd4RSxlQUFpQjtRQUFqQiwrQkFBaUI7UUFDSCxlQUFvQjtRQUFwQixrQ0FBb0IsdUJBQUEsdUJBQUEsa0JBQUE7UUFDL0IsZUFBa0I7UUFBbEIsZ0NBQWtCLHFEQUFBLCtCQUFBO1FBQ04sZUFBK0M7UUFBL0MsaUVBQStDO1FBQ3ZDLGVBQW1CO1FBQW5CLGlDQUFtQjtRQU0xQixlQUFzQjtRQUF0QixrREFBc0I7UUFNdEIsZUFBNEI7UUFBNUIsd0RBQTRCOzt1RkRiL0MsNkJBQTZCO2NBTHpDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUseUNBQXlDO2dCQUN0RCxTQUFTLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQzthQUN6RDt3TEFHVSxlQUFlO2tCQURyQixLQUFLO1lBR0Msb0JBQW9CO2tCQUQxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvdXNlci1tb2RlbCc7XG5pbXBvcnQgeyBVc2VyR3JvdXBNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvdXNlci1ncm91cC1tb2RlbCc7XG5pbXBvcnQgeyBHcm91cE1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9ncm91cC1tb2RlbCc7XG5pbXBvcnQgeyBHcm91cFBlcm1pc3Npb25Nb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvZ3JvdXAtcGVybWlzc2lvbi1tb2RlbCc7XG5pbXBvcnQgeyBNYW5hZ2VtZW50R3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL21hbmFnZW1lbnQtZ3JvdXAuc2VydmljZSc7XG5pbXBvcnQgeyBNYW5hZ2VtZW50VXNlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VydmljZXMvbWFuYWdlbWVudC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9wZXJtaXNzaW9uLW1vZGVsJztcbmltcG9ydCB7IE1hbmFnZW1lbnRQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9tYW5hZ2VtZW50LXBlcm1pc3Npb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2F1Y2EtbWFuYWdlbWVudC1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhdWNhLW1hbmFnZW1lbnQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhdWNhLW1hbmFnZW1lbnQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXVjYU1hbmFnZW1lbnRHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1ByaW50QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBob3ZlclN0YXRlUGVybWlzc2lvbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgZ3JvdXBzOiBHcm91cE1vZGVsW10gPSBbXTtcbiAgICBwdWJsaWMgdXNlcnM6IFVzZXJNb2RlbFtdID0gW107XG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xuICAgIHB1YmxpYyB1c2VyRnVsbE5hbWU6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBzaG93Q29sdW1uID0gdHJ1ZTtcbiAgICBwdWJsaWMgc2hvd0NvbHVtblhTID0gdHJ1ZTtcbiAgICBwdWJsaWMgdHJhbnNsYXRpb25zOiBhbnkgPSBbXTtcblxuICAgIHByaXZhdGUgZ3JvdXBVc2VyczogYW55O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1hbmFnZW1lbnRHcm91cFNlcnZpY2U6IE1hbmFnZW1lbnRHcm91cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWFuYWdlbWVudFVzZXJTZXJ2aWNlOiBNYW5hZ2VtZW50VXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWFuYWdlbWVudFBlcm1pc3Npb25TZXJ2aWNlOiBNYW5hZ2VtZW50UGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICkge1xuICAgICAgICBicmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbJyhtYXgtd2lkdGg6IDEwMDBweCknXSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93Q29sdW1uID0gIXJlc3VsdC5tYXRjaGVzO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoWycobWF4LXdpZHRoOiA2MDBweCknXSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93Q29sdW1uWFMgPSAhcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYW5hZ2VtZW50VXNlclNlcnZpY2UuZ2V0QWxsPFVzZXJNb2RlbD4oKS5zdWJzY3JpYmUoKGRhdGE6IFVzZXJNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJzID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMudXNlcnMuZm9yRWFjaCgodXNlcjogVXNlck1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXIuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIuZmlyc3ROYW1lICE9PSAnJyAmJiB1c2VyLmxhc3ROYW1lICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRnVsbE5hbWVbdXNlci5pZF0gID0gYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hbmFnZW1lbnRQZXJtaXNzaW9uU2VydmljZS5nZXRBbGwoKS5zdWJzY3JpYmUoKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGVybWlzc2lvbkluZGV4ID0gcGVybWlzc2lvbnMuZmluZEluZGV4KChjOiBQZXJtaXNzaW9uTW9kZWwpID0+IGMudGFnID09PSAnQ2FuQWNjZXNzUGVybWlzc2lvbnMnKTtcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbnMuc3BsaWNlKHBlcm1pc3Npb25JbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZXJtaXNzaW9ucy5zb3J0KChhOiBQZXJtaXNzaW9uTW9kZWwsIGI6IFBlcm1pc3Npb25Nb2RlbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhLm5hbWUgPCBiLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYS5uYW1lID4gYi5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZnVsbE5hbWUoZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7ZGF0YS5maXJzdE5hbWV9ICR7ZGF0YS5sYXN0TmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcm91cFVzZXIoZmllbGQ6IGFueSwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVzZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5ncm91cFVzZXJzKSB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwVXNlcnMuZm9yRWFjaCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdXNlcnMucHVzaCh1c2VyLmlkVXNlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlLmNvbXBvbmVudC5vcHRpb24oJ3ZhbHVlJywgdXNlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRHcm91cFVzZXIoZmllbGQ6IGFueSwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwVXNlcjogVXNlckdyb3VwTW9kZWxbXSA9IFtdO1xuXG4gICAgICAgIGUudmFsdWUuZm9yRWFjaCgoaWRVc2VyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSAoZmllbGQuZGF0YS51c2VycyB8fCBbXSkuZmluZEluZGV4KChnOiBhbnkpID0+IGcuaWRVc2VyID09PSBpZFVzZXIpO1xuXG4gICAgICAgICAgICBpZiAoZ3JvdXBJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBncm91cFVzZXIucHVzaCh7IGlkVXNlciwgfSBhcyBVc2VyR3JvdXBNb2RlbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3VwVXNlci5wdXNoKGZpZWxkLmRhdGEudXNlcnNbZ3JvdXBJbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBmaWVsZC5zZXRWYWx1ZShKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGdyb3VwVXNlcikpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0R3JvdXBQZXJtaXNzaW9uKGZpZWxkOiBhbnksIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBncm91cFVzZXI6IFVzZXJHcm91cE1vZGVsW10gPSBbXTtcblxuICAgICAgICBlLnZhbHVlLmZvckVhY2goKGlkVXNlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBncm91cFVzZXIucHVzaCh7XG4gICAgICAgICAgICAgICAgaWRVc2VyLFxuICAgICAgICAgICAgfSBhcyBVc2VyR3JvdXBNb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZpZWxkLnNldFZhbHVlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ3JvdXBVc2VyKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQZXJtaXNzaW9uU3RhdHVzKGZpZWxkOiBhbnksIHBlcm1pc3Npb246IGFueSwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwUGVybWlzc2lvbiA9IChmaWVsZC52YWx1ZSB8fCBbXSkuZmluZCgocDogYW55KSA9PiBwLmlkTW9kdWxlUGVybWlzc2lvbiA9PT0gcGVybWlzc2lvbi5pZCk7XG5cbiAgICAgICAgaWYgKGdyb3VwUGVybWlzc2lvbikge1xuICAgICAgICAgICAgZS5jb21wb25lbnQub3B0aW9uKCd2YWx1ZScsIGdyb3VwUGVybWlzc2lvbi5pc0FsbG93ZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZS5jb21wb25lbnQub3B0aW9uKCd2YWx1ZScsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tCb3hUb2dnbGVkKGZpZWxkOiBhbnksIHBlcm1pc3Npb246IGFueSwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChlLmNvbXBvbmVudC5za2lwT25WYWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNraXBPblZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLmNvbXBvbmVudC5zZXRVbmRlZmluZWROZXh0VGltZSkge1xuICAgICAgICAgICAgZS5jb21wb25lbnQuc2V0VW5kZWZpbmVkTmV4dFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNraXBPblZhbHVlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICBlLmNvbXBvbmVudC5vcHRpb24oJ3ZhbHVlJywgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGVybWlzc2lvblN0YXR1cyhmaWVsZCwgcGVybWlzc2lvbiwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZS52YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGUuY29tcG9uZW50LnNldFVuZGVmaW5lZE5leHRUaW1lID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0UGVybWlzc2lvblN0YXR1cyhmaWVsZCwgcGVybWlzc2lvbiwgZS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm93SW5zZXJ0ZWQoZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUdyb3VwKGUuZGF0YSBhcyBHcm91cE1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3dVcGRhdGVkKGU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVHcm91cChlLmRhdGEgYXMgR3JvdXBNb2RlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm93UmVtb3ZlZChlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSAoZS5kYXRhIGFzIEdyb3VwTW9kZWwpO1xuICAgICAgICB0aGlzLm1hbmFnZW1lbnRHcm91cFNlcnZpY2UuZGVsZXRlKGdyb3VwLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGN1bGF0ZVVzZXJzQ2VsbFZhbHVlID0gKGU6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXJzID0gKGUudXNlcnMgPyBlLnVzZXJzIGFzIFVzZXJHcm91cE1vZGVsW10gOiBbXSk7XG4gICAgICAgIGxldCB1c2Vyc05hbWVzOiBhbnlbXSA9IFtdO1xuICAgICAgICB1c2Vycy5mb3JFYWNoKCh1c2VyOiBVc2VyR3JvdXBNb2RlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXNlckdyb3VwID0gdGhpcy51c2Vycy5maWx0ZXIoKHU6IFVzZXJNb2RlbCkgPT4gdS5pZCA9PT0gdXNlci5pZFVzZXIpO1xuICAgICAgICAgICAgaWYgKHVzZXJHcm91cCAmJiB1c2VyR3JvdXBbMF0pIHtcbiAgICAgICAgICAgICAgICB1c2Vyc05hbWVzLnB1c2godXNlckdyb3VwWzBdLmZpcnN0TmFtZSArICcgJyArIHVzZXJHcm91cFswXS5sYXN0TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB1c2Vyc05hbWVzID0gdXNlcnNOYW1lcy5zb3J0KChvbmU6IHN0cmluZywgdHdvOiBzdHJpbmcpID0+IChvbmUgPCB0d28gPyAtMSA6IDEpKTtcbiAgICAgICAgcmV0dXJuIHVzZXJzTmFtZXMuam9pbignLCAnKTtcbiAgICB9O1xuXG4gICAgcHVibGljIG9uRWRpdGluZ1N0YXJ0KGU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyb3VwVXNlcnMgPSBlLmRhdGEudXNlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSW5pdE5ld1JvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cFVzZXJzID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGdyb3VwTmFtZUFscmVhZHlVc2VkVmFsaWRhdGlvbiA9IChlOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHRoaXMubWFuYWdlbWVudEdyb3VwU2VydmljZS5oYXNFeGlzdGluZ0dyb3VwTmFtZShlLmRhdGEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV4aXN0OiBib29sZWFuKSA9PiAhZXhpc3QpXG4gICAgICAgICkudG9Qcm9taXNlKCk7XG5cbiAgICBwcml2YXRlIHNldFBlcm1pc3Npb25TdGF0dXMoZmllbGQ6IGFueSwgcGVybWlzc2lvbjogYW55LCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwUGVybWlzc2lvbnMgPSBmaWVsZC52YWx1ZSB8fCBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3VwUGVybWlzc2lvbnMuZmluZEluZGV4KChwOiBHcm91cFBlcm1pc3Npb25Nb2RlbCkgPT4gcC5pZE1vZHVsZVBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24uaWQpO1xuXG4gICAgICAgIGlmIChncm91cEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGdyb3VwUGVybWlzc2lvbnNbZ3JvdXBJbmRleF0uaXNBbGxvd2VkID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBncm91cFBlcm1pc3Npb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkTW9kdWxlUGVybWlzc2lvbjogcGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgICAgICBpc0FsbG93ZWQ6IHZhbHVlLFxuICAgICAgICAgICAgfSBhcyBHcm91cFBlcm1pc3Npb25Nb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5zZXRWYWx1ZShKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGdyb3VwUGVybWlzc2lvbnMpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlR3JvdXAoZ3JvdXA6IEdyb3VwTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVQZXJtaXNzaW9uVW5kZWZpbmVkKGdyb3VwKTtcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJzKSB7XG4gICAgICAgICAgICBncm91cC51c2Vycy5mb3JFYWNoKCh1c2VyR3JvdXA6IFVzZXJHcm91cE1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdXNlckdyb3VwLmlkR3JvdXAgPSBncm91cC5pZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChncm91cC5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgZ3JvdXAucGVybWlzc2lvbnMuZm9yRWFjaCgoZ3JvdXBQZXJtaXNzaW9uOiBHcm91cFBlcm1pc3Npb25Nb2RlbCkgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3VwUGVybWlzc2lvbi5pZEdyb3VwID0gZ3JvdXAuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hbmFnZW1lbnRHcm91cFNlcnZpY2Uuc2F2ZShncm91cCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0R3JvdXBzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdyb3VwVXNlcnMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVBlcm1pc3Npb25VbmRlZmluZWQoZ3JvdXA6IEdyb3VwTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgZ3JvdXAucGVybWlzc2lvbnMgPSBncm91cC5wZXJtaXNzaW9ucy5maWx0ZXIoKHBlcm1pc3Npb246IEdyb3VwUGVybWlzc2lvbk1vZGVsKSA9PiBwZXJtaXNzaW9uLmlzQWxsb3dlZCAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEdyb3VwcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYW5hZ2VtZW50R3JvdXBTZXJ2aWNlLmdldEFsbCgpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLmdyb3VwcyA9IGRhdGEpO1xuICAgIH1cbn1cbiIsIjxjYXVjYS1keC1kYXRhLWdyaWQgW2FsbG93UHJpbnRdPVwic2hvd1ByaW50QnV0dG9uXCIga2V5RXhwcj1cImlkXCIgW2RhdGFTb3VyY2VdPVwiZ3JvdXBzXCJcclxuICAgIChvblJvd0luc2VydGVkKT1cIm9uUm93SW5zZXJ0ZWQoJGV2ZW50KVwiIChvbkluaXROZXdSb3cpPVwib25Jbml0TmV3Um93KClcIiAob25Sb3dVcGRhdGVkKT1cIm9uUm93VXBkYXRlZCgkZXZlbnQpXCJcclxuICAgIChvbkVkaXRpbmdTdGFydCk9XCJvbkVkaXRpbmdTdGFydCgkZXZlbnQpXCIgKG9uUm93UmVtb3ZlZCk9XCJvblJvd1JlbW92ZWQoJGV2ZW50KVwiPlxyXG5cclxuICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm5hbWVcIiBbY2FwdGlvbl09XCInbWFuYWdlbWVudC5uYW1lJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgIDxkeGktdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJhc3luY1wiIFttZXNzYWdlXT1cIidtYW5hZ2VtZW50Lmdyb3VwTmFtZUFscmVhZHlVc2VkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uQ2FsbGJhY2tdPVwiZ3JvdXBOYW1lQWxyZWFkeVVzZWRWYWxpZGF0aW9uXCI+PC9keGktdmFsaWRhdGlvbi1ydWxlPlxyXG4gICAgPC9keGktY29sdW1uPlxyXG4gICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidXNlcnNcIiBbY2FwdGlvbl09XCInbWFuYWdlbWVudC51c2VycycgfCB0cmFuc2xhdGVcIiBlZGl0Q2VsbFRlbXBsYXRlPVwidXNlcnNFZGl0VGVtcGxhdGVcIlxyXG4gICAgICAgIFtjYWxjdWxhdGVDZWxsVmFsdWVdPVwiY2FsY3VsYXRlVXNlcnNDZWxsVmFsdWVcIj5cclxuICAgIDwvZHhpLWNvbHVtbj5cclxuICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBlcm1pc3Npb25zXCIgW2NhcHRpb25dPVwiJ21hbmFnZW1lbnQucGVybWlzc2lvbnMnIHwgdHJhbnNsYXRlXCIgW3Zpc2libGVdPVwiZmFsc2VcIlxyXG4gICAgICAgIGVkaXRDZWxsVGVtcGxhdGU9XCJwZXJtaXNzaW9uc0VkaXRUZW1wbGF0ZVwiPlxyXG4gICAgPC9keGktY29sdW1uPlxyXG4gICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwiZmFsc2VcIj48L2R4by1leHBvcnQ+XHJcbiAgICA8ZHhvLWVkaXRpbmcgbW9kZT1cInBvcHVwXCIgW2FsbG93QWRkaW5nXT1cInRydWVcIiBbYWxsb3dVcGRhdGluZ109XCJ0cnVlXCIgW2FsbG93RGVsZXRpbmddPVwidHJ1ZVwiIFt1c2VJY29uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgPGR4by1wb3B1cCBbc2hvd1RpdGxlXT1cInRydWVcIiBbdGl0bGVdPVwiJ21hbmFnZW1lbnQuZ3JvdXAnIHwgdHJhbnNsYXRlXCIgW2Z1bGxTY3JlZW5dPVwiIXNob3dDb2x1bW5cIj48L2R4by1wb3B1cD5cclxuICAgICAgICA8ZHhvLWZvcm0gY29sQ291bnQ9XCIxXCIgW2xhYmVsTG9jYXRpb25dPVwic2hvd0NvbHVtblhTID8gJ2xlZnQnIDogJ3RvcCdcIj5cclxuICAgICAgICAgICAgPGR4aS1pdGVtIGRhdGFGaWVsZD1cIm5hbWVcIiBbaXNSZXF1aXJlZF09XCJ0cnVlXCI+PC9keGktaXRlbT5cclxuICAgICAgICAgICAgPGR4aS1pdGVtIGRhdGFGaWVsZD1cInVzZXJzXCI+PC9keGktaXRlbT5cclxuICAgICAgICAgICAgPGR4aS1pdGVtIGRhdGFGaWVsZD1cInBlcm1pc3Npb25zXCI+PC9keGktaXRlbT5cclxuICAgICAgICA8L2R4by1mb3JtPlxyXG4gICAgPC9keG8tZWRpdGluZz5cclxuXHJcbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGZpZWxkIG9mICd1c2Vyc0VkaXRUZW1wbGF0ZSdcIj5cclxuICAgICAgICA8ZHgtdGFnLWJveCB2YWx1ZUV4cHI9XCJpZFwiIFtkaXNwbGF5RXhwcl09XCJmdWxsTmFtZVwiIFtkYXRhU291cmNlXT1cInVzZXJzXCIgW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtzZWFyY2hFeHByXT1cImZ1bGxOYW1lXCIgKG9uSW5pdGlhbGl6ZWQpPVwiZ2V0R3JvdXBVc2VyKGZpZWxkLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInNldEdyb3VwVXNlcihmaWVsZCwgJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvZHgtdGFnLWJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBmaWVsZCBvZiAncGVybWlzc2lvbnNFZGl0VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgPGR4LWxpc3QgW2RhdGFTb3VyY2VdPVwicGVybWlzc2lvbnNcIiBpdGVtVGVtcGxhdGU9XCJyb3dUZW1wbGF0ZVwiIFtzZWFyY2hFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbc2VhcmNoRXhwcl09XCJbJ25hbWUnLCAndGFnJ11cIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwiaG92ZXJTdGF0ZVBlcm1pc3Npb25cIj5cclxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBwZXJtaXNzaW9uIG9mICdyb3dUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgIDxkeC1jaGVjay1ib3ggW3RleHRdPVwicGVybWlzc2lvbi5uYW1lXCIgKG9uSW5pdGlhbGl6ZWQpPVwiZ2V0UGVybWlzc2lvblN0YXR1cyhmaWVsZCwgcGVybWlzc2lvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNoZWNrQm94VG9nZ2xlZChmaWVsZCwgcGVybWlzc2lvbiwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keC1jaGVjay1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHgtbGlzdD5cclxuICAgIDwvZGl2PlxyXG48L2NhdWNhLWR4LWRhdGEtZ3JpZD4iXX0=