{{details.name}}
\r\n\r\n \r\n , {{item.name}}\r\n
\r\n\r\n{{'forms.Email' | translate}}
\r\n {{details.email}}\r\n \r\n{{'forms.Phone number' | translate}}
\r\n \r\n {{details.countryCode + ' ' + details.phoneNumber}}\r\n \r\n{{'forms.Gender' | translate}}
\r\n {{details.gender.name}}\r\n \r\n{{'forms.Date of birth' | translate}}
\r\n \r\n {{details.dateOfBirth | DateModel}}\r\n \r\n \r\n{{'forms.Nationality' | translate}}
\r\n \r\n {{details.nationality}}\r\n \r\n \r\n{{review.reviewName}}
\r\n\r\n {{'content3.Posted anonymously' | translate}}\r\n
\r\n{{'content3.Posted on' | translate}}
\r\n\r\n {{review.reviewDate | date:'d MMM, y'}} {{'guests.at' | translate }} {{review.reviewDate | date:'shortTime'}}\r\n
\r\n\r\n \r\n{{review.brancheNameEn}}
\r\n{{review.brancheNameAr}}
\r\n{{'content3.Ordered Items' | translate}}
\r\n{{'content5.Amenities' | translate}}
\r\n{{'reviews.Resolved by' | translate}}
\r\n{{review.reportDecision[0].resolvedbyName}}
\r\n{{'reviews.Resolution' | translate}}
\r\n{{review.reportDecision[0].resolution}}
\r\n{{'reviews.Resolved on' | translate}}
\r\n\r\n \r\n {{review.reportDecision[0].resolvedDate | date:'d MMM, y'}} {{'guests.at' | translate }} {{review.reportDecision[0].resolvedDate | date:'shortTime'}}\r\n
\r\n{{'forms.Notes' | translate}}
\r\n{{review.reportDecision[0].resolutionComment}}
\r\n{{'reviews.Resolved by' | translate}}
\r\n{{decision.resolvedbyName}}
\r\n{{'reviews.Resolution' | translate}}
\r\n{{decision.resolution}}
\r\n{{'reviews.Resolved on' | translate}}
\r\n\r\n \r\n {{decision.resolvedDate | date:'d MMM, y'}} {{'guests.at' | translate }} {{decision.resolvedDate | date:'shortTime'}}\r\n
\r\n{{'forms.Notes' | translate}}
\r\n{{decision.resolutionComment}}
\r\n\r\n {{'reviews.This Review has been reported by a user. Please go to the Reported content screen to take action' | translate}}\r\n
\r\n{{notif.notificationText}}
\r\n {{notif.notificationDate | date:'d MMM, y (h:mm a)'}}\r\n \r\n\r\n {{ 'forms.Required' | translate }}\r\n
\r\n\r\n {{ invalidMsg || ('forms.Invalid Date' | translate) }}\r\n
\r\n{{desc}}
\r\n\r\n {{ 'forms.Required' | translate }}\r\n
\r\n\r\n {{ 'forms.Invalid value' | translate }}\r\n
\r\n{{\"forms.Required\" | translate}}
\n","import { Component, EventEmitter, Input, OnInit, Output, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport Swal from 'sweetalert2';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FileThumbObj, FileThumbType } from 'src/app/models/Lookup';\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-video-manager',\r\n templateUrl: './video-manager.component.html',\r\n})\r\nexport class VideoManagerComponent implements OnInit {\r\n @Output() selectedFiles = new EventEmitter<[]>();\r\n @Output() deletedFilesList = new EventEmitter<[]>();\r\n\r\n @Input() files: any = [];\r\n @Input() docsEditable = true;\r\n @Input() maxFiles = 5;\r\n @Input() maxFileSize = 10;\r\n @Input() managerIndex: any = '0'; // For input id multi file manager in one view\r\n @Input() label!: string;\r\n @Input() isRequired = false;\r\n @Input() isSubmitted = false;\r\n @Input() isDisabled = false;\r\n @Input() cols = 1;\r\n\r\n @Input() allowedExt: any[] = ['mp4', 'mpg'];\r\n\r\n /////\r\n selectedfilesCount = 0;\r\n deletedFiles: any = [];\r\n validFile = true;\r\n fileMaxSiZeErorr = false;\r\n fileMaxNameSiZeErorr = false;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n validFileType(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n const extensionUpper = fileName.split('.').pop()?.toUpperCase();\r\n\r\n if (!(this.allowedExt.includes(extension) || this.allowedExt.includes(extensionUpper))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileExt(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'mp4':\r\n case 'mpg':\r\n return 'video';\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event: any) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(event: any) {\r\n this.prepareFilesList(event.target.files);\r\n event.target.value = '';\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number, id: any) {\r\n if (id) {\r\n this.deletedFiles.push(id);\r\n }\r\n this.files.splice(index, 1);\r\n\r\n this.selectedFiles.emit(this.files);\r\n this.deletedFilesList.emit(this.deletedFiles);\r\n\r\n this.selectedfilesCount = this.files.length;\r\n }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array