import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core'; import {FileInfo, FileRestrictions, SuccessEvent, UploadComponent, UploadEvent, UploadProgressEvent} from '@progress/kendo-angular-upload'; import {AuthService} from '../service/auth.service'; import {range} from '@progress/kendo-angular-dateinputs/dist/es2015/util'; import {Router} from '@angular/router'; import {PageChangeEvent} from '@progress/kendo-angular-pager'; @Component({ selector: 'app-lender-uploads', templateUrl: './lender-uploads.component.html', styleUrls: ['./lender-uploads.component.scss'], }) export class LenderUploadsComponent implements OnInit { @Output() success: EventEmitter = new EventEmitter(); @Output() click: EventEmitter = new EventEmitter(); @Output() complete: EventEmitter = new EventEmitter(); @Output() upload: EventEmitter = new EventEmitter(); private uploads: SuccessEvent[] = []; public value = 0 ; public map: Map = new Map(); uploadSaveUrl = 'https://svr2021.lawipac.com:8080/api/v1/lender-upload/'; // should represent an actual API endpoint uploadRemoveUrl = 'https://svr2021.lawipac.com:8080/api/v1/lender-upload-remove/'; // should represent an actual API endpoint public allUploads = [...range(30, 44 )]; public displayedUploads: any[] = []; public filteredUploads: any[] = []; public skip = 0; public pageSize = 12; public total = 0; myRestrictions: FileRestrictions = { allowedExtensions: ['.pdf', '.xls', '.xlsx'] }; constructor(private auth: AuthService, private router: Router) { } ngOnInit(): void { this.uploadSaveUrl = this.auth.getUrl('lender-upload/'); this.uploadRemoveUrl = this.auth.getUrl('lender-upload-remove/'); this.loadDisplayedUploads(); } public onClick( files: any): void{ this.click.emit(files[0]); } public onSuccess(ss: SuccessEvent ): void { this.uploads.push(ss); this.map.set(ss.files[0].uid, ss); this.success.emit(ss); this.allUploads.unshift(this.allUploads.length + 100); } public onUpload(ss: UploadEvent ): void { this.upload.emit(true); } public onComplete(): void { this.upload.emit(false); } public hasResp(uid): boolean { let found = false; this.uploads.every(v => { if ( v.files[0].uid === uid ) { found = true; return false; // stop search } }); return found; } public uploadProgress(prog: UploadProgressEvent): void { this.value = prog.percentComplete.valueOf(); } public show( i: number): void{ this.router.navigate(['/upload-details/' + i]); } public onPageChange(e: PageChangeEvent): void { this.skip = e.skip; this.pageSize = e.take; this.loadDisplayedUploads(); } private loadDisplayedUploads(): void { this.filteredUploads = this.allUploads ; this.displayedUploads = this.filteredUploads.slice(this.skip, this.skip + this.pageSize); this.total = this.displayedUploads.length; } public onFilterUploads(hint: string): void { this.loadDisplayedUploads(); } }