import {Component, OnInit, ViewEncapsulation} from '@angular/core'; import {PeopleModel} from '../models/people.model'; import {PeopleService} from '../service/people.service'; import {AuthService} from '../service/auth.service'; import {ClonerService} from '../service/clone.service'; import {PageChangeEvent} from '@progress/kendo-angular-pager'; @Component({ selector: 'app-list-all-people', templateUrl: './list-all-people.component.html', styleUrls: ['./list-all-people.component.scss'], }) export class ListAllPeopleComponent implements OnInit { private AllPeople: PeopleModel[] = []; public filteredPeople: PeopleModel[] = []; public displayedPeople: PeopleModel[] = []; public skip = 0; public pageSize = 12; public total = 0; constructor(private ps: PeopleService, private auth: AuthService) { } ngOnInit(): void { this.ps.getPeopleList('').subscribe( resp => { this.AllPeople = resp.List; this.onFilterPeople(''); } ); } public onFilterPeople(hint: string): void { if ( hint === undefined || hint.length === 0 ) { this.filteredPeople = this.AllPeople.slice(0); }else { this.filteredPeople = this.AllPeople.filter( v => v.Display.toLowerCase().includes(hint.toLowerCase()) ); } this.skip = 0 ; this.total = this.filteredPeople.length; this.loadDisplayedPeople(); } public onPeopleSelected(people: PeopleModel): void { if ( people !== undefined ) { this.filteredPeople = []; this.filteredPeople.push(people); }else{ this.filteredPeople = this.AllPeople.slice(0); } this.loadDisplayedPeople(); } public getContactImageUrl(contactId: string): string { return this.auth.getUrl('avatar/' + contactId); } public onPageChange(e: PageChangeEvent): void { this.skip = e.skip; this.pageSize = e.take; this.loadDisplayedPeople(); } private loadDisplayedPeople(): void { this.displayedPeople = this.filteredPeople.slice(this.skip, this.skip + this.pageSize); this.total = this.filteredPeople.length; } }