{"version":3,"file":"default-src_app_shared_components_upload_upload_module_ts.js","mappings":"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","sources":["./src/app/shared/components/upload/upload-dragger.component.ts","./src/app/shared/components/upload/upload-dragger.component.html","./src/app/shared/components/upload/upload-list.component.ts","./src/app/shared/components/upload/upload-list.component.html","./src/app/shared/components/upload/upload.component.ts","./src/app/shared/components/upload/upload.component.html","./src/app/shared/components/upload/upload.module.ts","./src/app/shared/components/upload/upload.service.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'upload-dragger',\r\n templateUrl: 'upload-dragger.component.html',\r\n})\r\nexport class UploadDraggerComponent {\r\n \r\n @Input() disabled: boolean = false\r\n @Output() change: EventEmitter = new EventEmitter()\r\n \r\n dragger: boolean = false\r\n \r\n dragoverHandle(event: Event): void {\r\n event.preventDefault()\r\n if (this.disabled) return\r\n this.dragger = true\r\n }\r\n \r\n dragLeaveHandle(event: Event): void {\r\n event.preventDefault()\r\n this.dragger = false\r\n }\r\n \r\n dropHandle(event: DragEvent): void {\r\n event.preventDefault()\r\n if (this.disabled) return\r\n this.change.emit({ target: { files: event.dataTransfer.files }})\r\n }\r\n}","
\r\n \r\n
","import { Component, EventEmitter, Input, Output } from '@angular/core'\r\nimport { CommonFile, ListType } from './upload.interface'\r\n\r\nconst imageTypeList = ['webp', 'svg', 'png', 'gif', 'jpg', 'jpeg', 'jfif', 'bmp', 'dpg']\r\n\r\n@Component({\r\n selector: 'upload-list',\r\n templateUrl: 'upload-list.component.html'\r\n})\r\nexport class UploadListComponent {\r\n \r\n @Input() files: CommonFile[] = []\r\n @Input() disabled: boolean = false\r\n @Input('list-type') listType: ListType\r\n @Output() remove: EventEmitter = new EventEmitter()\r\n @Output() preview: EventEmitter = new EventEmitter()\r\n\r\n private extname(type: string): string {\r\n const temp = type.split('/');\r\n const imgType = temp[temp.length - 1];\r\n return imgType\r\n }\r\n \r\n removeHandle(file: CommonFile): void {\r\n this.remove.emit(file)\r\n }\r\n \r\n previewHandle(file: CommonFile): void {\r\n this.preview.emit(file)\r\n }\r\n\r\n isImageUrl(file: CommonFile): boolean {\r\n const url: string = (file.url || '') as string;\r\n if (!url) {\r\n return false;\r\n }\r\n if(file.raw) {\r\n const imageType = this.extname(file.raw.type)\r\n return imageTypeList.indexOf(imageType) > -1\r\n }\r\n return true;\r\n }\r\n}","
    \r\n
  • \r\n \r\n -1\"\r\n [src]=\"file.url\"\r\n >\r\n \r\n \r\n
    \r\n \r\n {{file.name}}\r\n
    \r\n
    \r\n \r\n \r\n {{file.name}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
","import {\r\n Component, \r\n ContentChild,\r\n ElementRef, \r\n OnInit, \r\n TemplateRef,\r\n ViewChild, \r\n EventEmitter, \r\n Input, \r\n Output, \r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef\r\n } from '@angular/core'\r\n import { DomSanitizer, SafeUrl } from '@angular/platform-browser'\r\n import { HttpResponse } from '@angular/common/http'\r\n import { UploadService } from './upload.service'\r\n import { UploadFile, Lifecycle, CommonFile, UploadResponse, ListType } from './upload.interface'\r\n \r\n @Component({\r\n selector: 'upload',\r\n templateUrl: 'upload.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n })\r\n export class UploadComponent implements OnInit {\r\n\r\n @Input() disabled: boolean = false\r\n @Input() data: any = {}\r\n @Input() name: string = 'file'\r\n @Input() action: string\r\n @Input() accept: string\r\n @Input() drag: boolean = false\r\n @Input() multiple: boolean = false\r\n @Input() headers?: any = {}\r\n @Input() avatar: boolean = false\r\n @Input() imageUrl: SafeUrl\r\n \r\n @Input() withCredentials: boolean = false\r\n @Input() showFileList: boolean = true\r\n @Input() listType: ListType = 'text'\r\n @Input() fileList: UploadFile[] = []\r\n\r\n @Output() preview: EventEmitter = new EventEmitter()\r\n @Output() remove: EventEmitter = new EventEmitter()\r\n @Output() progress: EventEmitter> = new EventEmitter>()\r\n\r\n @Output() success: EventEmitter> = new EventEmitter>()\r\n @Output() error: EventEmitter> = new EventEmitter>()\r\n \r\n @Input() uploadInterceptor: (f: File) => boolean = f => true\r\n \r\n protected get lifecycle(): Lifecycle {\r\n return {\r\n preview: (f: CommonFile) => this.preview.emit(f),\r\n remove: (f: CommonFile) => this.remove.emit(f),\r\n success: (f: CommonFile, res: HttpResponse) => this.success.emit({ commonFile: f, response: res }),\r\n error: (f: CommonFile, err: any) => this.error.emit({ commonFile: f, error: err }),\r\n progress: (f: CommonFile, percentage: number) => this.progress.emit({ commonFile: f, percentage }),\r\n }\r\n }\r\n \r\n @ContentChild('trigger') trigger: TemplateRef\r\n @ContentChild('dragger') dragger: TemplateRef\r\n @ViewChild('input') input: ElementRef\r\n \r\n files: CommonFile[] = []\r\n \r\n static generateID(): string {\r\n return Math.random().toString(16).substr(2, 8)\r\n }\r\n static updatePercentage(response: any): number {\r\n const { loaded, total } = response\r\n if (loaded === undefined || !total) return 0\r\n return Math.round(loaded / total * 100)\r\n }\r\n \r\n constructor(\r\n private uploadSvc: UploadService,\r\n private sanitizer: DomSanitizer,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n }\r\n \r\n clickHandle(): void {\r\n if (this.disabled) return\r\n this.input.nativeElement.click()\r\n }\r\n \r\n changeHandle(event: Event): void {\r\n const files: FileList = (event.target).files\r\n if (!files || !files.length) return\r\n const checkedFiles: File[] = this.multiple ? Array.from(files) : [files[0]]\r\n this.input.nativeElement.value = null\r\n checkedFiles.forEach((file: File) => {\r\n const next = {\r\n id: UploadComponent.generateID(),\r\n name: file.name,\r\n status: 'ready',\r\n size: file.size,\r\n percentage: 0,\r\n raw: file,\r\n url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file))\r\n }\r\n this.files.push(next)\r\n this.updateFile(next)\r\n this.uploadInterceptor(file) === false ? this.removeHandle(next) : this.upload(next)\r\n })\r\n }\r\n \r\n upload(file: CommonFile): void {\r\n file.status = 'uploading'\r\n this.updateFile(file)\r\n this.uploadSvc.upload(this.action, file.raw).subscribe((event: any) => {\r\n file.percentage = UploadComponent.updatePercentage(event)\r\n file.percentage && this.lifecycle.progress(file, file.percentage)\r\n if (event instanceof HttpResponse) {\r\n this.lifecycle.success(Object.assign(file, { status: 'success' }), event)\r\n console.log('this.lifecycle', this.lifecycle)\r\n }\r\n this.updateFile(file)\r\n }, err => {\r\n file.status = 'fail'\r\n this.lifecycle.error(file, err)\r\n this.removeHandle(file)\r\n })\r\n }\r\n \r\n removeHandle(file: CommonFile): void {\r\n this.lifecycle.remove(file)\r\n const index = this.files.findIndex(({ id }) => file.id === id)\r\n this.files.splice(index, 1)\r\n }\r\n \r\n updateFile(file: CommonFile): void {\r\n const index = this.files.findIndex(({ id }) => file.id === id)\r\n console.log('file', file)\r\n if (typeof index !== 'number') return\r\n this.files[index] = file\r\n this.cdr.detectChanges();\r\n }\r\n \r\n ngOnInit(): void {\r\n this.uploadSvc\r\n .setHeader(this.headers)\r\n .setCredentials(this.withCredentials)\r\n .setFileName(this.name)\r\n .addExtraData(this.data)\r\n this.fileList.forEach((file: UploadFile) => {\r\n this.files.push({\r\n id: UploadComponent.generateID(),\r\n name: file.name,\r\n status: 'success',\r\n raw: null, size: null,\r\n url: this.sanitizer.bypassSecurityTrustUrl(file.url),\r\n })\r\n })\r\n }\r\n}","\r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Click to upload\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UploadService } from './upload.service';\r\nimport { UploadComponent } from './upload.component';\r\nimport { UploadListComponent } from './upload-list.component';\r\nimport { UploadDraggerComponent } from './upload-dragger.component';\r\n\r\n@NgModule({\r\n declarations: [UploadComponent, UploadListComponent, UploadDraggerComponent],\r\n exports: [UploadComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ],\r\n entryComponents: [UploadComponent],\r\n})\r\nexport class UploadModule {\r\n static forRoot(): ModuleWithProviders {\r\n return { ngModule: UploadModule, providers: [UploadService] }\r\n }\r\n}","import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { Observable } from 'rxjs'\r\n\r\n@Injectable()\r\nexport class UploadService {\r\n \r\n headers: HttpHeaders\r\n withCredentials: boolean\r\n fileName: string\r\n defaultBody: any\r\n \r\n constructor(\r\n private http: HttpClient,\r\n ) {\r\n }\r\n\r\n upload(path: string, file: File): Observable {\r\n const req: HttpRequest<{}> = new HttpRequest('POST', path, file, {\r\n headers: this.headers,\r\n reportProgress: true,\r\n withCredentials: this.withCredentials,\r\n })\r\n return this.http.request(req)\r\n }\r\n \r\n setHeader(headers: any = {}): UploadService {\r\n this.headers = new HttpHeaders(headers)\r\n return this\r\n }\r\n \r\n setCredentials(withCredentials: boolean): UploadService {\r\n this.withCredentials = withCredentials\r\n return this\r\n }\r\n \r\n setFileName(name: string): UploadService {\r\n this.fileName = name\r\n return this\r\n }\r\n \r\n addExtraData(data: any = {}): UploadService {\r\n this.defaultBody = data\r\n return this\r\n }\r\n \r\n}"],"names":[],"sourceRoot":"webpack:///"}