[6fe77af] | 1 | {"ast":null,"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport * as i7 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i4 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport * as i6 from 'primeng/messages';\nimport { MessagesModule } from 'primeng/messages';\nimport * as i5 from 'primeng/progressbar';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { DomHandler } from 'primeng/dom';\nimport * as i3 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i8 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i2 from '@angular/common/http';\nimport { HttpEventType } from '@angular/common/http';\nimport * as i1 from '@angular/platform-browser';\nconst _c0 = [\"advancedfileinput\"];\nconst _c1 = [\"basicfileinput\"];\nconst _c2 = [\"content\"];\n\nfunction FileUpload_div_0_p_button_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-button\", 17);\n i0.ɵɵlistener(\"onClick\", function FileUpload_div_0_p_button_8_Template_p_button_onClick_0_listener() {\n i0.ɵɵrestoreView(_r11);\n const ctx_r10 = i0.ɵɵnextContext(2);\n return ctx_r10.upload();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"label\", ctx_r3.uploadButtonLabel)(\"icon\", ctx_r3.uploadIcon)(\"disabled\", !ctx_r3.hasFiles() || ctx_r3.isFileLimitExceeded());\n }\n}\n\nfunction FileUpload_div_0_p_button_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-button\", 17);\n i0.ɵɵlistener(\"onClick\", function FileUpload_div_0_p_button_9_Template_p_button_onClick_0_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r12 = i0.ɵɵnextContext(2);\n return ctx_r12.clear();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"label\", ctx_r4.cancelButtonLabel)(\"icon\", ctx_r4.cancelIcon)(\"disabled\", !ctx_r4.hasFiles() || ctx_r4.uploading);\n }\n}\n\nfunction FileUpload_div_0_ng_container_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction FileUpload_div_0_p_progressBar_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"p-progressBar\", 18);\n }\n\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"value\", ctx_r7.progress)(\"showValue\", false);\n }\n}\n\nfunction FileUpload_div_0_div_15_div_1_div_1_img_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"img\", 26);\n }\n\n if (rf & 2) {\n const file_r17 = i0.ɵɵnextContext().$implicit;\n const ctx_r19 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"src\", file_r17.objectURL, i0.ɵɵsanitizeUrl)(\"width\", ctx_r19.previewWidth);\n }\n}\n\nfunction FileUpload_div_0_div_15_div_1_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 22);\n i0.ɵɵelementStart(1, \"div\");\n i0.ɵɵtemplate(2, FileUpload_div_0_div_15_div_1_div_1_img_2_Template, 1, 2, \"img\", 23);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 24);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\");\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\");\n i0.ɵɵelementStart(8, \"button\", 25);\n i0.ɵɵlistener(\"click\", function FileUpload_div_0_div_15_div_1_div_1_Template_button_click_8_listener($event) {\n const restoredCtx = i0.ɵɵrestoreView(_r22);\n const i_r18 = restoredCtx.index;\n const ctx_r21 = i0.ɵɵnextContext(4);\n return ctx_r21.remove($event, i_r18);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const file_r17 = ctx.$implicit;\n const ctx_r16 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r16.isImage(file_r17));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(file_r17.name);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r16.formatSize(file_r17.size));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx_r16.uploading);\n }\n}\n\nfunction FileUpload_div_0_div_15_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_1_div_1_Template, 9, 4, \"div\", 21);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r14.files);\n }\n}\n\nfunction FileUpload_div_0_div_15_div_2_ng_template_1_Template(rf, ctx) {}\n\nfunction FileUpload_div_0_div_15_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_2_ng_template_1_Template, 0, 0, \"ng-template\", 27);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r15 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r15.files)(\"ngForTemplate\", ctx_r15.fileTemplate);\n }\n}\n\nfunction FileUpload_div_0_div_15_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, FileUpload_div_0_div_15_div_1_Template, 2, 1, \"div\", 20);\n i0.ɵɵtemplate(2, FileUpload_div_0_div_15_div_2_Template, 2, 2, \"div\", 20);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx_r8.fileTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r8.fileTemplate);\n }\n}\n\nfunction FileUpload_div_0_ng_container_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c3 = function (a0, a1) {\n return {\n \"p-focus\": a0,\n \"p-disabled\": a1\n };\n};\n\nconst _c4 = function (a0) {\n return {\n $implicit: a0\n };\n};\n\nfunction FileUpload_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r25 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵelementStart(1, \"div\", 3);\n i0.ɵɵelementStart(2, \"span\", 4);\n i0.ɵɵlistener(\"focus\", function FileUpload_div_0_Template_span_focus_2_listener() {\n i0.ɵɵrestoreView(_r25);\n const ctx_r24 = i0.ɵɵnextContext();\n return ctx_r24.onFocus();\n })(\"blur\", function FileUpload_div_0_Template_span_blur_2_listener() {\n i0.ɵɵrestoreView(_r25);\n const ctx_r26 = i0.ɵɵnextContext();\n return ctx_r26.onBlur();\n })(\"click\", function FileUpload_div_0_Template_span_click_2_listener() {\n i0.ɵɵrestoreView(_r25);\n const ctx_r27 = i0.ɵɵnextContext();\n return ctx_r27.choose();\n })(\"keydown.enter\", function FileUpload_div_0_Template_span_keydown_enter_2_listener() {\n i0.ɵɵrestoreView(_r25);\n const ctx_r28 = i0.ɵɵnextContext();\n return ctx_r28.choose();\n });\n i0.ɵɵelementStart(3, \"input\", 5, 6);\n i0.ɵɵlistener(\"change\", function FileUpload_div_0_Template_input_change_3_listener($event) {\n i0.ɵɵrestoreView(_r25);\n const ctx_r29 = i0.ɵɵnextContext();\n return ctx_r29.onFileSelect($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelement(5, \"span\", 7);\n i0.ɵɵelementStart(6, \"span\", 8);\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, FileUpload_div_0_p_button_8_Template, 1, 3, \"p-button\", 9);\n i0.ɵɵtemplate(9, FileUpload_div_0_p_button_9_Template, 1, 3, \"p-button\", 9);\n i0.ɵɵtemplate(10, FileUpload_div_0_ng_container_10_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"div\", 11, 12);\n i0.ɵɵlistener(\"dragenter\", function FileUpload_div_0_Template_div_dragenter_11_listener($event) {\n i0.ɵɵrestoreView(_r25);\n const ctx_r30 = i0.ɵɵnextContext();\n return ctx_r30.onDragEnter($event);\n })(\"dragleave\", function FileUpload_div_0_Template_div_dragleave_11_listener($event) {\n i0.ɵɵrestoreView(_r25);\n const ctx_r31 = i0.ɵɵnextContext();\n return ctx_r31.onDragLeave($event);\n })(\"drop\", function FileUpload_div_0_Template_div_drop_11_listener($event) {\n i0.ɵɵrestoreView(_r25);\n const ctx_r32 = i0.ɵɵnextContext();\n return ctx_r32.onDrop($event);\n });\n i0.ɵɵtemplate(13, FileUpload_div_0_p_progressBar_13_Template, 1, 2, \"p-progressBar\", 13);\n i0.ɵɵelement(14, \"p-messages\", 14);\n i0.ɵɵtemplate(15, FileUpload_div_0_div_15_Template, 3, 2, \"div\", 15);\n i0.ɵɵtemplate(16, FileUpload_div_0_ng_container_16_Template, 1, 0, \"ng-container\", 16);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r0.styleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-fileupload p-fileupload-advanced p-component\")(\"ngStyle\", ctx_r0.style);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(22, _c3, ctx_r0.focus, ctx_r0.disabled || ctx_r0.isChooseDisabled()));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"multiple\", ctx_r0.multiple)(\"accept\", ctx_r0.accept)(\"disabled\", ctx_r0.disabled || ctx_r0.isChooseDisabled());\n i0.ɵɵattribute(\"title\", \"\");\n i0.ɵɵadvance(2);\n i0.ɵɵclassMap(ctx_r0.chooseIcon);\n i0.ɵɵproperty(\"ngClass\", \"p-button-icon p-button-icon-left\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r0.chooseButtonLabel);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.auto && ctx_r0.showUploadButton);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.auto && ctx_r0.showCancelButton);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toolbarTemplate);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.hasFiles());\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"value\", ctx_r0.msgs)(\"enableService\", false);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.hasFiles());\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(25, _c4, ctx_r0.files));\n }\n}\n\nfunction FileUpload_div_1_input_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r36 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"input\", 32, 33);\n i0.ɵɵlistener(\"change\", function FileUpload_div_1_input_6_Template_input_change_0_listener($event) {\n i0.ɵɵrestoreView(_r36);\n const ctx_r35 = i0.ɵɵnextContext(2);\n return ctx_r35.onFileSelect($event);\n })(\"focus\", function FileUpload_div_1_input_6_Template_input_focus_0_listener() {\n i0.ɵɵrestoreView(_r36);\n const ctx_r37 = i0.ɵɵnextContext(2);\n return ctx_r37.onFocus();\n })(\"blur\", function FileUpload_div_1_input_6_Template_input_blur_0_listener() {\n i0.ɵɵrestoreView(_r36);\n const ctx_r38 = i0.ɵɵnextContext(2);\n return ctx_r38.onBlur();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r33 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"accept\", ctx_r33.accept)(\"multiple\", ctx_r33.multiple)(\"disabled\", ctx_r33.disabled);\n }\n}\n\nconst _c5 = function (a1, a2, a3, a4) {\n return {\n \"p-button p-component p-fileupload-choose\": true,\n \"p-button-icon-only\": a1,\n \"p-fileupload-choose-selected\": a2,\n \"p-focus\": a3,\n \"p-disabled\": a4\n };\n};\n\nfunction FileUpload_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r40 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 28);\n i0.ɵɵelement(1, \"p-messages\", 14);\n i0.ɵɵelementStart(2, \"span\", 29);\n i0.ɵɵlistener(\"mouseup\", function FileUpload_div_1_Template_span_mouseup_2_listener() {\n i0.ɵɵrestoreView(_r40);\n const ctx_r39 = i0.ɵɵnextContext();\n return ctx_r39.onBasicUploaderClick();\n })(\"keydown\", function FileUpload_div_1_Template_span_keydown_2_listener() {\n i0.ɵɵrestoreView(_r40);\n const ctx_r41 = i0.ɵɵnextContext();\n return ctx_r41.onBasicUploaderClick();\n });\n i0.ɵɵelement(3, \"span\", 30);\n i0.ɵɵelementStart(4, \"span\", 8);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, FileUpload_div_1_input_6_Template, 2, 3, \"input\", 31);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"value\", ctx_r1.msgs)(\"enableService\", false);\n i0.ɵɵadvance(1);\n i0.ɵɵclassMap(ctx_r1.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction4(9, _c5, !ctx_r1.chooseLabel, ctx_r1.hasFiles(), ctx_r1.focus, ctx_r1.disabled))(\"ngStyle\", ctx_r1.style);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.hasFiles() && !ctx_r1.auto ? ctx_r1.uploadIcon : ctx_r1.chooseIcon);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.auto ? ctx_r1.chooseLabel : ctx_r1.hasFiles() ? ctx_r1.files[0].name : ctx_r1.chooseLabel);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.hasFiles());\n }\n}\n\nclass FileUpload {\n constructor(el, sanitizer, zone, http, cd, config) {\n this.el = el;\n this.sanitizer = sanitizer;\n this.zone = zone;\n this.http = http;\n this.cd = cd;\n this.config = config;\n this.method = 'post';\n this.invalidFileSizeMessageSummary = '{0}: Invalid file size, ';\n this.invalidFileSizeMessageDetail = 'maximum upload size is {0}.';\n this.invalidFileTypeMessageSummary = '{0}: Invalid file type, ';\n this.invalidFileTypeMessageDetail = 'allowed file types: {0}.';\n this.invalidFileLimitMessageDetail = 'limit is {0} at most.';\n this.invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';\n this.previewWidth = 50;\n this.chooseIcon = 'pi pi-plus';\n this.uploadIcon = 'pi pi-upload';\n this.cancelIcon = 'pi pi-times';\n this.showUploadButton = true;\n this.showCancelButton = true;\n this.mode = 'advanced';\n this.onBeforeUpload = new EventEmitter();\n this.onSend = new EventEmitter();\n this.onUpload = new EventEmitter();\n this.onError = new EventEmitter();\n this.onClear = new EventEmitter();\n this.onRemove = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onProgress = new EventEmitter();\n this.uploadHandler = new EventEmitter();\n this._files = [];\n this.progress = 0;\n this.uploadedFileCount = 0;\n }\n\n set files(files) {\n this._files = [];\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this._files.push(files[i]);\n }\n }\n }\n\n get files() {\n return this._files;\n }\n\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'file':\n this.fileTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content) this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n });\n }\n }\n\n choose() {\n this.advancedFileInput.nativeElement.click();\n }\n\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.msgs = [];\n\n if (!this.multiple) {\n this.files = [];\n }\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.onSelect.emit({\n originalEvent: event,\n files: files,\n currentFiles: this.files\n });\n\n if (this.fileLimit && this.mode == \"advanced\") {\n this.checkFileLimit();\n }\n\n if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file) {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n\n return true;\n }\n\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map(type => type.trim());\n\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file) {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img) {\n window.URL.revokeObjectURL(img.src);\n }\n\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.uploadHandler.emit({\n files: this.files\n });\n this.cd.markForCheck();\n } else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n this.onBeforeUpload.emit({\n 'formData': formData\n });\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name, this.files[i], this.files[i].name);\n }\n\n this.http[this.method](this.url, formData, {\n headers: this.headers,\n reportProgress: true,\n observe: 'events',\n withCredentials: this.withCredentials\n }).subscribe(event => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n 'formData': formData\n });\n break;\n\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.onUpload.emit({\n originalEvent: event,\n files: this.files\n });\n } else {\n this.onError.emit({\n files: this.files\n });\n }\n\n this.clear();\n break;\n\n case HttpEventType.UploadProgress:\n {\n if (event['loaded']) {\n this.progress = Math.round(event['loaded'] * 100 / event['total']);\n }\n\n this.onProgress.emit({\n originalEvent: event,\n progress: this.progress\n });\n break;\n }\n }\n\n this.cd.markForCheck();\n }, error => {\n this.uploading = false;\n this.onError.emit({\n files: this.files,\n error: error\n });\n });\n }\n }\n\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n\n remove(event, index) {\n this.clearInputElement();\n this.onRemove.emit({\n originalEvent: event,\n file: this.files[index]\n });\n this.files.splice(index, 1);\n }\n\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n this.focus = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n }\n\n isChooseDisabled() {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n });\n }\n }\n\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n\n hasFiles() {\n return this.files && this.files.length > 0;\n }\n\n onDragEnter(e) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e) {\n if (!this.disabled) {\n DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n }\n }\n\n onDrop(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple || files && files.length === 1;\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n\n formatSize(bytes) {\n if (bytes == 0) {\n return '0 B';\n }\n\n let k = 1000,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n\n onBasicUploaderClick() {\n if (this.hasFiles()) this.upload();else this.basicFileInput.nativeElement.click();\n }\n\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel() {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel() {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel() {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n\n}\n\nFileUpload.ɵfac = function FileUpload_Factory(t) {\n return new (t || FileUpload)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.PrimeNGConfig));\n};\n\nFileUpload.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FileUpload,\n selectors: [[\"p-fileUpload\"]],\n contentQueries: function FileUpload_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function FileUpload_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.advancedFileInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.basicFileInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n name: \"name\",\n url: \"url\",\n method: \"method\",\n multiple: \"multiple\",\n accept: \"accept\",\n disabled: \"disabled\",\n auto: \"auto\",\n withCredentials: \"withCredentials\",\n maxFileSize: \"maxFileSize\",\n invalidFileSizeMessageSummary: \"invalidFileSizeMessageSummary\",\n invalidFileSizeMessageDetail: \"invalidFileSizeMessageDetail\",\n invalidFileTypeMessageSummary: \"invalidFileTypeMessageSummary\",\n invalidFileTypeMessageDetail: \"invalidFileTypeMessageDetail\",\n invalidFileLimitMessageDetail: \"invalidFileLimitMessageDetail\",\n invalidFileLimitMessageSummary: \"invalidFileLimitMessageSummary\",\n style: \"style\",\n styleClass: \"styleClass\",\n previewWidth: \"previewWidth\",\n chooseLabel: \"chooseLabel\",\n uploadLabel: \"uploadLabel\",\n cancelLabel: \"cancelLabel\",\n chooseIcon: \"chooseIcon\",\n uploadIcon: \"uploadIcon\",\n cancelIcon: \"cancelIcon\",\n showUploadButton: \"showUploadButton\",\n showCancelButton: \"showCancelButton\",\n mode: \"mode\",\n headers: \"headers\",\n customUpload: \"customUpload\",\n fileLimit: \"fileLimit\",\n files: \"files\"\n },\n outputs: {\n onBeforeUpload: \"onBeforeUpload\",\n onSend: \"onSend\",\n onUpload: \"onUpload\",\n onError: \"onError\",\n onClear: \"onClear\",\n onRemove: \"onRemove\",\n onSelect: \"onSelect\",\n onProgress: \"onProgress\",\n uploadHandler: \"uploadHandler\"\n },\n decls: 2,\n vars: 2,\n consts: [[3, \"ngClass\", \"ngStyle\", \"class\", 4, \"ngIf\"], [\"class\", \"p-fileupload p-fileupload-basic p-component\", 4, \"ngIf\"], [3, \"ngClass\", \"ngStyle\"], [1, \"p-fileupload-buttonbar\"], [\"pRipple\", \"\", \"tabindex\", \"0\", 1, \"p-button\", \"p-component\", \"p-fileupload-choose\", 3, \"ngClass\", \"focus\", \"blur\", \"click\", \"keydown.enter\"], [\"type\", \"file\", 3, \"multiple\", \"accept\", \"disabled\", \"change\"], [\"advancedfileinput\", \"\"], [3, \"ngClass\"], [1, \"p-button-label\"], [\"type\", \"button\", 3, \"label\", \"icon\", \"disabled\", \"onClick\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [1, \"p-fileupload-content\", 3, \"dragenter\", \"dragleave\", \"drop\"], [\"content\", \"\"], [3, \"value\", \"showValue\", 4, \"ngIf\"], [3, \"value\", \"enableService\"], [\"class\", \"p-fileupload-files\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"button\", 3, \"label\", \"icon\", \"disabled\", \"onClick\"], [3, \"value\", \"showValue\"], [1, \"p-fileupload-files\"], [4, \"ngIf\"], [\"class\", \"p-fileupload-row\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-fileupload-row\"], [3, \"src\", \"width\", 4, \"ngIf\"], [1, \"p-fileupload-filename\"], [\"type\", \"button\", \"icon\", \"pi pi-times\", \"pButton\", \"\", 3, \"disabled\", \"click\"], [3, \"src\", \"width\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTemplate\"], [1, \"p-fileupload\", \"p-fileupload-basic\", \"p-component\"], [\"tabindex\", \"0\", \"pRipple\", \"\", 3, \"ngClass\", \"ngStyle\", \"mouseup\", \"keydown\"], [1, \"p-button-icon\", \"p-button-icon-left\", \"pi\", 3, \"ngClass\"], [\"type\", \"file\", 3, \"accept\", \"multiple\", \"disabled\", \"change\", \"focus\", \"blur\", 4, \"ngIf\"], [\"type\", \"file\", 3, \"accept\", \"multiple\", \"disabled\", \"change\", \"focus\", \"blur\"], [\"basicfileinput\", \"\"]],\n template: function FileUpload_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FileUpload_div_0_Template, 17, 27, \"div\", 0);\n i0.ɵɵtemplate(1, FileUpload_div_1_Template, 7, 14, \"div\", 1);\n }\n\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.mode === \"advanced\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.mode === \"basic\");\n }\n },\n directives: [i7.NgIf, i7.NgClass, i7.NgStyle, i8.Ripple, i7.NgTemplateOutlet, i6.Messages, i4.Button, i5.ProgressBar, i7.NgForOf, i4.ButtonDirective],\n styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FileUpload, [{\n type: Component,\n args: [{\n selector: 'p-fileUpload',\n template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n <div class=\"p-fileupload-buttonbar\">\n <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n </span>\n\n <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n <div class=\"p-fileupload-filename\">{{file.name}}</div>\n <div>{{formatSize(file.size)}}</div>\n <div>\n <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n },\n styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.DomSanitizer\n }, {\n type: i0.NgZone\n }, {\n type: i2.HttpClient\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i3.PrimeNGConfig\n }];\n }, {\n name: [{\n type: Input\n }],\n url: [{\n type: Input\n }],\n method: [{\n type: Input\n }],\n multiple: [{\n type: Input\n }],\n accept: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n auto: [{\n type: Input\n }],\n withCredentials: [{\n type: Input\n }],\n maxFileSize: [{\n type: Input\n }],\n invalidFileSizeMessageSummary: [{\n type: Input\n }],\n invalidFileSizeMessageDetail: [{\n type: Input\n }],\n invalidFileTypeMessageSummary: [{\n type: Input\n }],\n invalidFileTypeMessageDetail: [{\n type: Input\n }],\n invalidFileLimitMessageDetail: [{\n type: Input\n }],\n invalidFileLimitMessageSummary: [{\n type: Input\n }],\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n previewWidth: [{\n type: Input\n }],\n chooseLabel: [{\n type: Input\n }],\n uploadLabel: [{\n type: Input\n }],\n cancelLabel: [{\n type: Input\n }],\n chooseIcon: [{\n type: Input\n }],\n uploadIcon: [{\n type: Input\n }],\n cancelIcon: [{\n type: Input\n }],\n showUploadButton: [{\n type: Input\n }],\n showCancelButton: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n headers: [{\n type: Input\n }],\n customUpload: [{\n type: Input\n }],\n fileLimit: [{\n type: Input\n }],\n onBeforeUpload: [{\n type: Output\n }],\n onSend: [{\n type: Output\n }],\n onUpload: [{\n type: Output\n }],\n onError: [{\n type: Output\n }],\n onClear: [{\n type: Output\n }],\n onRemove: [{\n type: Output\n }],\n onSelect: [{\n type: Output\n }],\n onProgress: [{\n type: Output\n }],\n uploadHandler: [{\n type: Output\n }],\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }],\n advancedFileInput: [{\n type: ViewChild,\n args: ['advancedfileinput']\n }],\n basicFileInput: [{\n type: ViewChild,\n args: ['basicfileinput']\n }],\n content: [{\n type: ViewChild,\n args: ['content']\n }],\n files: [{\n type: Input\n }]\n });\n})();\n\nclass FileUploadModule {}\n\nFileUploadModule.ɵfac = function FileUploadModule_Factory(t) {\n return new (t || FileUploadModule)();\n};\n\nFileUploadModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FileUploadModule\n});\nFileUploadModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], SharedModule, ButtonModule, ProgressBarModule, MessagesModule]\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FileUploadModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule],\n exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n declarations: [FileUpload]\n }]\n }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { FileUpload, FileUploadModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-fileupload.mjs"],"names":["i0","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ContentChildren","ViewChild","NgModule","i7","CommonModule","i4","ButtonModule","i6","MessagesModule","i5","ProgressBarModule","DomHandler","i3","TranslationKeys","PrimeTemplate","SharedModule","i8","RippleModule","i2","HttpEventType","i1","FileUpload","constructor","el","sanitizer","zone","http","cd","config","method","invalidFileSizeMessageSummary","invalidFileSizeMessageDetail","invalidFileTypeMessageSummary","invalidFileTypeMessageDetail","invalidFileLimitMessageDetail","invalidFileLimitMessageSummary","previewWidth","chooseIcon","uploadIcon","cancelIcon","showUploadButton","showCancelButton","mode","onBeforeUpload","onSend","onUpload","onError","onClear","onRemove","onSelect","onProgress","uploadHandler","_files","progress","uploadedFileCount","files","i","length","file","validate","isImage","objectURL","bypassSecurityTrustUrl","window","URL","createObjectURL","push","ngAfterContentInit","templates","forEach","item","getType","fileTemplate","template","contentTemplate","toolbarTemplate","ngOnInit","translationSubscription","translationObserver","subscribe","markForCheck","ngAfterViewInit","runOutsideAngular","content","nativeElement","addEventListener","onDragOver","bind","choose","advancedFileInput","click","onFileSelect","event","type","isIE11","duplicateIEEvent","msgs","multiple","dataTransfer","target","isFileSelected","emit","originalEvent","currentFiles","fileLimit","checkFileLimit","hasFiles","auto","isFileLimitExceeded","upload","clearIEInput","clearInputElement","sFile","name","size","document","accept","isFileTypeValid","severity","summary","replace","detail","maxFileSize","formatSize","acceptableTypes","split","map","trim","acceptable","isWildcard","getTypeClass","getFileExtension","toLowerCase","fileType","substring","indexOf","pop","test","onImageLoad","img","revokeObjectURL","src","customUpload","uploading","formData","FormData","append","url","headers","reportProgress","observe","withCredentials","Sent","Response","clear","UploadProgress","Math","round","error","remove","index","splice","focus","isChooseDisabled","toString","value","basicFileInput","onDragEnter","e","disabled","stopPropagation","preventDefault","addClass","dragHighlight","onDragLeave","removeClass","onDrop","allowDrop","onFocus","onBlur","bytes","k","dm","sizes","floor","log","parseFloat","pow","toFixed","onBasicUploaderClick","getBlockableElement","children","chooseButtonLabel","chooseLabel","getTranslation","CHOOSE","uploadButtonLabel","uploadLabel","UPLOAD","cancelButtonLabel","cancelLabel","CANCEL","ngOnDestroy","removeEventListener","unsubscribe","ɵfac","ElementRef","DomSanitizer","NgZone","HttpClient","ChangeDetectorRef","PrimeNGConfig","ɵcmp","NgIf","NgClass","NgStyle","Ripple","NgTemplateOutlet","Messages","Button","ProgressBar","NgForOf","ButtonDirective","args","selector","changeDetection","OnPush","encapsulation","None","host","styles","style","styleClass","FileUploadModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';\nimport * as i7 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i4 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport * as i6 from 'primeng/messages';\nimport { MessagesModule } from 'primeng/messages';\nimport * as i5 from 'primeng/progressbar';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { DomHandler } from 'primeng/dom';\nimport * as i3 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i8 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i2 from '@angular/common/http';\nimport { HttpEventType } from '@angular/common/http';\nimport * as i1 from '@angular/platform-browser';\n\nclass FileUpload {\n constructor(el, sanitizer, zone, http, cd, config) {\n this.el = el;\n this.sanitizer = sanitizer;\n this.zone = zone;\n this.http = http;\n this.cd = cd;\n this.config = config;\n this.method = 'post';\n this.invalidFileSizeMessageSummary = '{0}: Invalid file size, ';\n this.invalidFileSizeMessageDetail = 'maximum upload size is {0}.';\n this.invalidFileTypeMessageSummary = '{0}: Invalid file type, ';\n this.invalidFileTypeMessageDetail = 'allowed file types: {0}.';\n this.invalidFileLimitMessageDetail = 'limit is {0} at most.';\n this.invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';\n this.previewWidth = 50;\n this.chooseIcon = 'pi pi-plus';\n this.uploadIcon = 'pi pi-upload';\n this.cancelIcon = 'pi pi-times';\n this.showUploadButton = true;\n this.showCancelButton = true;\n this.mode = 'advanced';\n this.onBeforeUpload = new EventEmitter();\n this.onSend = new EventEmitter();\n this.onUpload = new EventEmitter();\n this.onError = new EventEmitter();\n this.onClear = new EventEmitter();\n this.onRemove = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onProgress = new EventEmitter();\n this.uploadHandler = new EventEmitter();\n this._files = [];\n this.progress = 0;\n this.uploadedFileCount = 0;\n }\n set files(files) {\n this._files = [];\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n this._files.push(files[i]);\n }\n }\n }\n get files() {\n return this._files;\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'file':\n this.fileTemplate = item.template;\n break;\n case 'content':\n this.contentTemplate = item.template;\n break;\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n ngOnInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n ngAfterViewInit() {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content)\n this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n });\n }\n }\n choose() {\n this.advancedFileInput.nativeElement.click();\n }\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n this.msgs = [];\n if (!this.multiple) {\n this.files = [];\n }\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n this.files.push(files[i]);\n }\n }\n }\n this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n if (this.fileLimit && this.mode == \"advanced\") {\n this.checkFileLimit();\n }\n if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n this.upload();\n }\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n }\n else {\n this.clearInputElement();\n }\n }\n isFileSelected(file) {\n for (let sFile of this.files) {\n if ((sFile.name + sFile.type + sFile.size) === (file.name + file.type + file.size)) {\n return true;\n }\n }\n return false;\n }\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n return true;\n }\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map(type => type.trim());\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type)\n : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n if (acceptable) {\n return true;\n }\n }\n return false;\n }\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n }\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n }\n isImage(file) {\n return /^image\\//.test(file.type);\n }\n onImageLoad(img) {\n window.URL.revokeObjectURL(img.src);\n }\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n this.uploadHandler.emit({\n files: this.files\n });\n this.cd.markForCheck();\n }\n else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n this.onBeforeUpload.emit({\n 'formData': formData\n });\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name, this.files[i], this.files[i].name);\n }\n this.http[this.method](this.url, formData, {\n headers: this.headers, reportProgress: true, observe: 'events', withCredentials: this.withCredentials\n }).subscribe((event) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n 'formData': formData\n });\n break;\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n this.onUpload.emit({ originalEvent: event, files: this.files });\n }\n else {\n this.onError.emit({ files: this.files });\n }\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress = Math.round((event['loaded'] * 100) / event['total']);\n }\n this.onProgress.emit({ originalEvent: event, progress: this.progress });\n break;\n }\n }\n this.cd.markForCheck();\n }, error => {\n this.uploading = false;\n this.onError.emit({ files: this.files, error: error });\n });\n }\n }\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n remove(event, index) {\n this.clearInputElement();\n this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n this.files.splice(index, 1);\n }\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n this.focus = false;\n }\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n }\n isChooseDisabled() {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n });\n }\n }\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n hasFiles() {\n return this.files && this.files.length > 0;\n }\n onDragEnter(e) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n onDragOver(e) {\n if (!this.disabled) {\n DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n onDragLeave(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n }\n }\n onDrop(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple || (files && files.length === 1);\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n onFocus() {\n this.focus = true;\n }\n onBlur() {\n this.focus = false;\n }\n formatSize(bytes) {\n if (bytes == 0) {\n return '0 B';\n }\n let k = 1000, dm = 3, sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n onBasicUploaderClick() {\n if (this.hasFiles())\n this.upload();\n else\n this.basicFileInput.nativeElement.click();\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n get chooseButtonLabel() {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n get uploadButtonLabel() {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n get cancelButtonLabel() {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\nFileUpload.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUpload, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: i0.NgZone }, { token: i2.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i3.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });\nFileUpload.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: FileUpload, selector: \"p-fileUpload\", inputs: { name: \"name\", url: \"url\", method: \"method\", multiple: \"multiple\", accept: \"accept\", disabled: \"disabled\", auto: \"auto\", withCredentials: \"withCredentials\", maxFileSize: \"maxFileSize\", invalidFileSizeMessageSummary: \"invalidFileSizeMessageSummary\", invalidFileSizeMessageDetail: \"invalidFileSizeMessageDetail\", invalidFileTypeMessageSummary: \"invalidFileTypeMessageSummary\", invalidFileTypeMessageDetail: \"invalidFileTypeMessageDetail\", invalidFileLimitMessageDetail: \"invalidFileLimitMessageDetail\", invalidFileLimitMessageSummary: \"invalidFileLimitMessageSummary\", style: \"style\", styleClass: \"styleClass\", previewWidth: \"previewWidth\", chooseLabel: \"chooseLabel\", uploadLabel: \"uploadLabel\", cancelLabel: \"cancelLabel\", chooseIcon: \"chooseIcon\", uploadIcon: \"uploadIcon\", cancelIcon: \"cancelIcon\", showUploadButton: \"showUploadButton\", showCancelButton: \"showCancelButton\", mode: \"mode\", headers: \"headers\", customUpload: \"customUpload\", fileLimit: \"fileLimit\", files: \"files\" }, outputs: { onBeforeUpload: \"onBeforeUpload\", onSend: \"onSend\", onUpload: \"onUpload\", onError: \"onError\", onClear: \"onClear\", onRemove: \"onRemove\", onSelect: \"onSelect\", onProgress: \"onProgress\", uploadHandler: \"uploadHandler\" }, host: { classAttribute: \"p-element\" }, queries: [{ propertyName: \"templates\", predicate: PrimeTemplate }], viewQueries: [{ propertyName: \"advancedFileInput\", first: true, predicate: [\"advancedfileinput\"], descendants: true }, { propertyName: \"basicFileInput\", first: true, predicate: [\"basicfileinput\"], descendants: true }, { propertyName: \"content\", first: true, predicate: [\"content\"], descendants: true }], ngImport: i0, template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n <div class=\"p-fileupload-buttonbar\">\n <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n </span>\n\n <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n <div class=\"p-fileupload-filename\">{{file.name}}</div>\n <div>{{formatSize(file.size)}}</div>\n <div>\n <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </span>\n </div>\n `, isInline: true, styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"], components: [{ type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"style\", \"styleClass\", \"badgeClass\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { type: i5.ProgressBar, selector: \"p-progressBar\", inputs: [\"value\", \"showValue\", \"style\", \"styleClass\", \"unit\", \"mode\"] }, { type: i6.Messages, selector: \"p-messages\", inputs: [\"value\", \"closable\", \"style\", \"styleClass\", \"enableService\", \"key\", \"escape\", \"severity\", \"showTransitionOptions\", \"hideTransitionOptions\"], outputs: [\"valueChange\"] }], directives: [{ type: i7.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i7.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i7.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i8.Ripple, selector: \"[pRipple]\" }, { type: i7.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i7.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"label\", \"icon\", \"loading\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUpload, decorators: [{\n type: Component,\n args: [{ selector: 'p-fileUpload', template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n <div class=\"p-fileupload-buttonbar\">\n <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\">\n <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n </span>\n\n <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n <div class=\"p-fileupload-filename\">{{file.name}}</div>\n <div>{{formatSize(file.size)}}</div>\n <div>\n <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </span>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n 'class': 'p-element'\n }, styles: [\".p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i0.NgZone }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i3.PrimeNGConfig }]; }, propDecorators: { name: [{\n type: Input\n }], url: [{\n type: Input\n }], method: [{\n type: Input\n }], multiple: [{\n type: Input\n }], accept: [{\n type: Input\n }], disabled: [{\n type: Input\n }], auto: [{\n type: Input\n }], withCredentials: [{\n type: Input\n }], maxFileSize: [{\n type: Input\n }], invalidFileSizeMessageSummary: [{\n type: Input\n }], invalidFileSizeMessageDetail: [{\n type: Input\n }], invalidFileTypeMessageSummary: [{\n type: Input\n }], invalidFileTypeMessageDetail: [{\n type: Input\n }], invalidFileLimitMessageDetail: [{\n type: Input\n }], invalidFileLimitMessageSummary: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], previewWidth: [{\n type: Input\n }], chooseLabel: [{\n type: Input\n }], uploadLabel: [{\n type: Input\n }], cancelLabel: [{\n type: Input\n }], chooseIcon: [{\n type: Input\n }], uploadIcon: [{\n type: Input\n }], cancelIcon: [{\n type: Input\n }], showUploadButton: [{\n type: Input\n }], showCancelButton: [{\n type: Input\n }], mode: [{\n type: Input\n }], headers: [{\n type: Input\n }], customUpload: [{\n type: Input\n }], fileLimit: [{\n type: Input\n }], onBeforeUpload: [{\n type: Output\n }], onSend: [{\n type: Output\n }], onUpload: [{\n type: Output\n }], onError: [{\n type: Output\n }], onClear: [{\n type: Output\n }], onRemove: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onProgress: [{\n type: Output\n }], uploadHandler: [{\n type: Output\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], advancedFileInput: [{\n type: ViewChild,\n args: ['advancedfileinput']\n }], basicFileInput: [{\n type: ViewChild,\n args: ['basicfileinput']\n }], content: [{\n type: ViewChild,\n args: ['content']\n }], files: [{\n type: Input\n }] } });\nclass FileUploadModule {\n}\nFileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, declarations: [FileUpload], imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });\nFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule], SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FileUploadModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule],\n exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],\n declarations: [FileUpload]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FileUpload, FileUploadModule };\n"]},"metadata":{},"sourceType":"module"} |
---|