import { Entity } from '@iqser/common-ui'; import { IPermissionsMapping } from './permissions-mapping'; import { IPermission } from './permissions'; export class PermissionsMapping extends Entity implements IPermissionsMapping { readonly routerLink = undefined; readonly mappedPermissions: IPermission[]; readonly targetPermission: IPermission; readonly sort: number; readonly #currentValuesMap = new Map(); constructor(permissionsMapping: IPermissionsMapping) { super(permissionsMapping); this.mappedPermissions = permissionsMapping.mappedPermissions; this.targetPermission = permissionsMapping.targetPermission; this.sort = this.targetPermission.sort; this.mappedPermissions.forEach(permission => this.#currentValuesMap.set(permission.name, true)); } get id(): string { return this.targetPermission.name; } get searchKey(): string { return this.targetPermission.name; } getValue(permissionName: string): boolean { return this.#currentValuesMap.has(permissionName); } }