@tapsellorg/angular-material-library
Version:
Angular library for Tapsell
1 lines • 42.4 kB
Source Map (JSON)
{"version":3,"file":"tapsellorg-angular-material-library-src-lib-drag-drop.mjs","sources":["../../projects/pegah-library/src/lib/drag-drop/drop-target.directive.ts","../../projects/pegah-library/src/lib/drag-drop/drag-drop-file/drag-drop-file.component.ts","../../projects/pegah-library/src/lib/drag-drop/drag-drop-file/drag-drop-file.component.html","../../projects/pegah-library/src/lib/drag-drop/drag-drop.module.ts","../../projects/pegah-library/src/lib/drag-drop/file-input/file-input.component.ts","../../projects/pegah-library/src/lib/drag-drop/file-input/file-input.component.html","../../projects/pegah-library/src/lib/drag-drop/file-input/file-input.module.ts","../../projects/pegah-library/src/lib/drag-drop/tapsellorg-angular-material-library-src-lib-drag-drop.ts"],"sourcesContent":["import { Directive, HostBinding, HostListener, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[pghDropTarget]',\n exportAs: 'pghDropTarget',\n standalone: false,\n})\nexport class PghDropTargetDirective {\n fileSizeLimit = signal<number>(-1); // -1 for infinite\n fileDrop = output<FileList>();\n @HostBinding('attr.tabindex') _tabIndex = '0';\n fileDragged = false;\n private dragEnteredCounter = 0;\n\n constructor() {}\n\n @HostListener('dragover', ['$event']) onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n @HostListener('dragenter', ['$event']) onDragEnter(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.dragEnteredCounter++;\n this.fileDragged = true;\n }\n @HostListener('dragleave', ['$event']) onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.dragEnteredCounter--;\n if (this.dragEnteredCounter === 0) this.fileDragged = false;\n }\n\n @HostListener('drop', ['$event']) ondrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.dragEnteredCounter = 0;\n this.fileDragged = false;\n\n if (event.dataTransfer) {\n this.fileDrop.emit(event.dataTransfer.files);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n input,\n model,\n output,\n signal,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\nimport { FileUtils } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghAnimations } from '@tapsellorg/angular-material-library/src/lib/animations';\nimport { ThemePalette } from '@angular/material/core';\nimport { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { PghValidationFileInput } from '../drag-drop.model';\nimport { PghFileValidators } from '@tapsellorg/angular-material-library/src/lib/input';\n\n@Component({\n selector: 'pgh-drag-drop-file',\n templateUrl: './drag-drop-file.component.html',\n styleUrls: ['./drag-drop-file.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [PghAnimations.childrenEnterPopIn],\n standalone: false,\n})\nexport class PghDragDropFileComponent {\n @HostBinding('style.display') _display = 'block';\n @ViewChild('fileInput') fileInput?: ElementRef<HTMLInputElement>;\n filesControl = input<UntypedFormControl | AbstractControl>();\n color = input<ThemePalette>();\n loader = input<PghLoader | undefined>(undefined);\n /** default value: ```false``` */\n canChooseMultipleFiles = input<boolean>(false);\n showSelectedFilesInfo = input<boolean>(false);\n filesChange = output<File[]>();\n validation = input<PghValidationFileInput>({});\n messageErrorField = model<string[]>([]);\n\n selectedFiles = signal<File[]>([]);\n\n private get filesControlValue(): UntypedFormControl | null {\n const control = this.filesControl();\n return control instanceof UntypedFormControl ? control : null;\n }\n\n onFileDrop(files: FileList) {\n this.handleAddFiles(files);\n }\n\n onFileInput({ target: _target }: Event) {\n const target = _target as HTMLInputElement;\n const { files } = target;\n this.messageErrorField.set([]);\n this.checkValidation(files);\n if (this.messageErrorField().length > 0) return;\n if (files) {\n this.handleAddFiles(files);\n }\n target.value = '';\n }\n\n removeFile(selectedFile: File) {\n this.selectedFiles.set(this.selectedFiles().filter(f => f.size !== selectedFile.size));\n }\n\n openFilePicker() {\n if (!this.fileInput) return;\n this.fileInput.nativeElement.click();\n }\n\n private handleAddFiles(files: FileList) {\n if (this.canChooseMultipleFiles()) {\n const newFiles = FileUtils.convertFileListToArray(files);\n\n newFiles.forEach(newFile => {\n const alreadySelectedFile = this.selectedFiles().find(\n selectedFile => selectedFile.size === newFile.size,\n );\n\n if (!alreadySelectedFile) this.selectedFiles().push(newFile);\n });\n } else this.selectedFiles.set([files[0]]);\n\n this.updateFiles();\n }\n\n private updateFiles() {\n const filesControl = this.filesControl();\n if (filesControl) {\n filesControl.setValue(this.selectedFiles());\n }\n this.filesChange.emit(this.selectedFiles());\n }\n\n checkValidation(files: any) {\n if (Object.keys(this.validation()).length === 0 || files.length === 0) return;\n\n if (this.validation()?.checkNameValidation) {\n const fileNameWithoutFormatPart = files[0].name.split('.').slice(0, -1).join('.');\n\n this.messageErrorField().push(\n PghFileValidators.checkNameValidator(fileNameWithoutFormatPart)!,\n );\n }\n if (this.validation()?.contentType)\n this.messageErrorField().push(\n PghFileValidators.checkAllowedTypes(this.validation().contentType!, files[0].type)!,\n );\n if (this.validation()?.maxSize)\n this.messageErrorField().push(\n PghFileValidators.checkSizeValidation(this.validation().maxSize!, files[0].size)!,\n );\n\n this.messageErrorField.set(this.messageErrorField().filter(element => element !== null));\n }\n}\n","<div\n class=\"pgh-drop-file-container\"\n [ngClass]=\"{\n 'pgh-drop-file-primary': color() === 'primary',\n 'pgh-drop-file-accent': color() === 'accent',\n 'pgh-drop-file-warn': color() === 'warn'\n }\"\n (click)=\"fileInput.click(); $event.stopPropagation()\"\n pghDropTarget\n #dropTarget=\"pghDropTarget\"\n (fileDrop)=\"onFileDrop($event)\"\n [class.pgh-file-dragged]=\"dropTarget.fileDragged\"\n [pghLoader]=\"loader()\"\n>\n <input\n hidden\n type=\"file\"\n [multiple]=\"canChooseMultipleFiles()\"\n #fileInput\n (change)=\"onFileInput($event)\"\n [accept]=\"validation().contentType\"\n />\n <div #dropPlaceholderRef>\n <ng-content select=\"[pgh-drop-placeholder]\"></ng-content>\n </div>\n @if (!dropPlaceholderRef.innerHTML.trim()) {\n <div class=\"pgh-upload-icon\">\n <mat-icon svgIcon=\"cloud_upload\" class=\"w-100 h-100\"></mat-icon>\n </div>\n <div class=\"pgh-drop-file-text\">\n <span>فایلها را بکشید و رها کنید یا</span>\n <span class=\"pgh-choose-file-btn\">انتخاب کنید</span>\n </div>\n }\n</div>\n@if (selectedFiles().length > 0 && showSelectedFilesInfo()) {\n<div class=\"box p-2 mt-2\">\n @for (file of selectedFiles(); track file) {\n <div class=\"d-flex justify-content-between py-1\">\n {{ file.name }}\n <mat-icon\n svgIcon=\"delete\"\n color=\"warn\"\n (click)=\"removeFile(file)\"\n class=\"cursor-pointer\"\n ></mat-icon>\n </div>\n }\n</div>\n} @for (message of messageErrorField(); track message) {\n<div>\n <span class=\"text-danger pgh-drop-file-error\">{{ message }}</span>\n</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { PghLoaderModule } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { PghDropTargetDirective } from './drop-target.directive';\nimport { PghDragDropFileComponent } from './drag-drop-file/drag-drop-file.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [PghDragDropFileComponent, PghDropTargetDirective],\n imports: [\n CommonModule,\n MatButtonModule,\n MatRippleModule,\n MatProgressBarModule,\n ReactiveFormsModule,\n PghLoaderModule,\n MatIconModule,\n ],\n exports: [PghDragDropFileComponent, PghDropTargetDirective],\n})\nexport class PghDragDropModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n input,\n OnDestroy,\n Optional,\n Self,\n signal,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MAT_FORM_FIELD, MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { PghDragDropFileComponent } from '../drag-drop-file/drag-drop-file.component';\nimport { FileUtils, withDestroy } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { ThemePalette } from '@angular/material/core';\nimport { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport {\n PghConfirmDialogComponent,\n PghDialogData,\n} from '@tapsellorg/angular-material-library/confirm-dialog';\nimport { MatDialog } from '@angular/material/dialog';\nimport { filter } from 'rxjs/operators';\nimport { PghValidationFileInput } from '../drag-drop.model';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'pgh-file-input',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: MatFormFieldControl, useExisting: PghFileInputComponent }],\n standalone: false,\n})\nexport class PghFileInputComponent\n extends withDestroy()\n implements ControlValueAccessor, OnDestroy\n{\n static nextId = 0;\n\n @HostBinding() id = `pgh-file-input-${PghFileInputComponent.nextId++}`;\n placeholder = input<string>('');\n color = input<ThemePalette>();\n hasPreviewPicture = input<boolean>(true);\n loader = input<PghLoader>();\n disableDeleteButton = input<boolean>(false);\n showDeleteConfirmDialog = input<boolean>(true);\n deleteFileDialogConfig = input<PghDialogData>({\n title: 'تایید حذف فایل',\n message: 'از حذف کردن این فایل مطمئن هستید؟',\n acceptBtnText: 'حذف',\n rejectBtnText: 'انصراف',\n uiOptions: {\n acceptBtnColor: 'warn',\n },\n });\n filename = input(FileUtils.defaultFilename);\n @ViewChild(PghDragDropFileComponent) dragDropFileComponent?: PghDragDropFileComponent;\n canReUploadFile = input<boolean>(true);\n afterFileRemovedEmitter = new Subject<void>();\n afterFileRemoved = outputFromObservable(this.afterFileRemovedEmitter);\n afterFileChangedEmitter = new Subject<any>();\n afterFileChanged = outputFromObservable<any>(this.afterFileChangedEmitter);\n // @Input() label: string = 'آپلود عکس';\n // @Input() placeholder: string = 'برای انتخاب عکس کلیک کنید';\n // @Input() maintainAspectRatio: boolean = false;\n // @Input() aspectRatio: number = 6 / 4;\n validation = input<PghValidationFileInput>({});\n\n controlOnTouch = signal(() => {});\n stateChanges = new Subject<void>();\n focused = false;\n shouldLabelFloat = true;\n controlType = 'pgh-file-input';\n\n private controlOnChange?: (newValue: any) => void;\n private _value: PghFile | null = null;\n\n constructor(\n private confirmDialog: MatDialog,\n private changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n private cdkFocusMonitor: FocusMonitor,\n @Optional() @Self() public ngControl: NgControl | null,\n @Optional() @Inject(MAT_FORM_FIELD) private _formField?: MatFormField,\n ) {\n super();\n if (_formField) {\n _formField.appearance = 'outline';\n }\n\n if (this.ngControl) {\n // Setting the value accessor directly (instead of using the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n cdkFocusMonitor.monitor(_elementRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n\n fileChange(files: File[]) {\n const reader = new FileReader();\n reader.readAsDataURL(files[0]);\n reader.onload = (e: ProgressEvent<FileReader>) => {\n if (this.afterFileChangedEmitter.observed) {\n this.afterFileChangedEmitter.next({ fileUrl: e.target?.result as string, file: files[0] });\n } else {\n this.value = { fileUrl: e.target?.result as string, file: files[0] };\n this.changeDetectorRef.detectChanges();\n }\n };\n }\n\n // getImageFromUrl() {\n // this.linkLoader.activate();\n // fetch(this.form.value.fileLink)\n // .then(res => {\n // if (res.status !== 200) this.notifService.error('خطا در دریافت عکس.');\n // else {\n // this.value = this.form.value.fileLink;\n // }\n // this.linkLoader.deactivate();\n // })\n // .catch(_ => {\n // this.notifService.error('خطا در دریافت عکس.');\n // this.linkLoader.deactivate();\n // });\n // }\n\n deleteFileConfirmDialog() {\n this.setConfigOfDeleteFileConfirmDialog()\n .afterClosed()\n .pipe(filter(data => !!data))\n .subscribe(() => {\n this.deleteFile();\n });\n }\n\n deleteFile() {\n this.focused = false;\n if (this.afterFileRemovedEmitter.observed) {\n this.afterFileRemovedEmitter.next();\n } else {\n this.value = null;\n }\n }\n\n setConfigOfDeleteFileConfirmDialog() {\n return this.confirmDialog.open(PghConfirmDialogComponent, {\n maxWidth: '500px',\n data: this.deleteFileDialogConfig(),\n maxHeight: '600px',\n width: '100%',\n });\n }\n\n downloadFile() {\n if (!this.value) return;\n\n if (this.valueIsUrl(this.value.fileUrl)) {\n FileUtils.urlToFile(this.value.fileUrl, this.filename()).then(file => {\n this.value = {\n fileUrl: this.value?.fileUrl ?? '',\n file: file,\n };\n\n FileUtils.downloadFile(this.value.file);\n });\n } else {\n if (!this.value?.file) return;\n FileUtils.downloadFile(this.value.file);\n }\n }\n\n /** This method makes sure that the contents of the variable (in here it's this.value)\n * which gets filled by selecting a file or patching/setting the formControl\n * will always have both **fileUrl (Base64)** and **file (File)**. In other words, if a field is missing, it will be computed based on the other field.\n */\n writeValue(newValue: Partial<PghFile> | File | Blob | string | null | undefined) {\n if (!newValue) {\n this.value = null;\n return;\n }\n\n if (typeof newValue === 'string' && this.valueIsUrl(newValue))\n FileUtils.urlToFile(newValue, this.filename()).then(file => {\n this.value = {\n fileUrl: newValue,\n file: file,\n };\n });\n else if (typeof newValue === 'string')\n this.value = {\n fileUrl: newValue,\n file: FileUtils.base64ToFile(newValue, this.filename()),\n };\n else {\n if (\n typeof newValue === 'object' &&\n !this.valueIsPartialPghFile(newValue) &&\n !('arrayBuffer' in newValue)\n ) {\n this.value = null;\n console.error(\n 'make sure you are using correct property names. if you want to remove the content, do it like this: \\n this.form.patchValue(null).',\n );\n return;\n }\n\n this.writeValueFromObject(newValue);\n }\n }\n\n private writeValueFromObject(newValue: Partial<PghFile> | File | Blob) {\n const file = this.valueIsPartialPghFile(newValue) ? newValue.file : (newValue as File | Blob);\n\n if (file)\n FileUtils.fileOrBlobToBase64(file)?.then(fileUrl => {\n this.value = {\n fileUrl,\n file: (<File>file).name ? <File>file : FileUtils.blobToFile(file),\n };\n });\n else if (this.valueIsPartialPghFile(newValue) && newValue.fileUrl) {\n if (this.valueIsUrl(newValue.fileUrl)) {\n this.value = {} as PghFile;\n this.value.fileUrl = newValue.fileUrl;\n this.changeDetectorRef.detectChanges();\n } else\n this.value = {\n fileUrl: newValue.fileUrl,\n file: FileUtils.base64ToFile(newValue.fileUrl),\n };\n } else\n console.error(`file or fileUrl is null/undefined. to make it simpler, don\\'t patch with {key: value} pairs (ex: {fileUrl: foo}),\ndo it like: \\n this.form.patchValue(File) or this.form.patchValue(Base64 / Link)`);\n }\n\n private valueIsPartialPghFile(value: Partial<PghFile> | File | Blob): value is Partial<PghFile> {\n return (value as PghFile)?.file !== undefined || (value as PghFile)?.fileUrl !== undefined;\n }\n\n private valueIsUrl(value: string) {\n return value.startsWith('https://') || value.startsWith('http://');\n }\n\n registerOnChange(fn: (newValue: any) => void) {\n this.controlOnChange = fn;\n }\n registerOnTouched(fn: () => void) {\n this.controlOnTouch.set(fn);\n }\n\n get value() {\n return this._value;\n }\n set value(value: PghFile | null) {\n this._value = value;\n this.controlOnChange?.(value);\n this.stateChanges.next();\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.stateChanges.complete();\n this.cdkFocusMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n\n get empty() {\n return !this.value;\n }\n\n get errorState() {\n return !!(this.ngControl?.invalid && this.ngControl?.touched);\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n onContainerClick(_event: MouseEvent) {\n if (!this.dragDropFileComponent) return;\n this.dragDropFileComponent.openFilePicker();\n }\n}\n\ninterface PghFile {\n fileUrl: string;\n file: File;\n}\n","<!--<div class=\"mb-2\">{{ label }}</div>-->\n\n@if (!value) {\n<pgh-drag-drop-file\n (filesChange)=\"fileChange($event)\"\n [color]=\"errorState ? 'warn' : color()\"\n style=\"height: 4rem\"\n (blur)=\"controlOnTouch() && controlOnTouch()\"\n [loader]=\"loader()\"\n [validation]=\"validation()\"\n>\n <div pgh-drop-placeholder class=\"d-flex align-items-center text-right\">\n <mat-icon svgIcon=\"upload_file\" class=\"me-2\"></mat-icon>\n <span>{{ placeholder() }}</span>\n </div>\n</pgh-drag-drop-file>\n} @else {\n<div #hasPreviewTpl>\n <ng-content select=\"[pgh-file-preview]\"></ng-content>\n</div>\n@if (!hasPreviewTpl.innerHTML.trim()) { @if (hasPreviewPicture()) {\n<div class=\"pgh-file-image-preview mb-2\">\n <img [src]=\"value?.fileUrl\" alt=\"picture-preview\" />\n</div>\n} @if (canReUploadFile()) {\n<pgh-drag-drop-file color=\"accent\" (filesChange)=\"fileChange($event)\" [validation]=\"validation()\">\n <div pgh-drop-placeholder class=\"d-flex align-items-center text-right\">\n <mat-icon svgIcon=\"upload_file\" class=\"me-2\"></mat-icon>\n <span>{{ value?.file?.name ?? filename() }}</span>\n </div>\n</pgh-drag-drop-file>\n}\n<div class=\"d-flex justify-content-center\">\n <button\n mat-button\n color=\"warn\"\n type=\"button\"\n (click)=\"\n showDeleteConfirmDialog() ? deleteFileConfirmDialog() : deleteFile(); $event.stopPropagation()\n \"\n [disabled]=\"disableDeleteButton()\"\n >\n <mat-icon svgIcon=\"delete\" class=\"me-2\"></mat-icon>\n <span>{{ 'DRAG_AND_DROP_DELETE_BUTTON' | translate }}</span>\n </button>\n <button\n mat-button\n color=\"accent\"\n type=\"button\"\n (click)=\"downloadFile(); $event.stopPropagation()\"\n >\n <mat-icon svgIcon=\"cloud_download\" class=\"me-2\"></mat-icon>\n <span>{{ 'DRAG_AND_DROP_DOWNLOAD_BUTTON' | translate }}</span>\n </button>\n</div>\n} }\n<!-- <mat-tab-group *ngIf=\"editable\" dynamicHeight>-->\n<!-- <mat-tab label=\"آپلود فایل تصویر\">-->\n<!-- <pgh-drag-drop-file (filesChange)=\"fileChange($event)\"></pgh-drag-drop-file>-->\n<!-- </mat-tab>-->\n<!-- <mat-tab label=\"دریافت از لینک\">-->\n<!-- <form [formGroup]=\"form\" (ngSubmit)=\"getImageFromUrl()\" class=\"d-flex\">-->\n<!-- <mat-form-field class=\"flex-grow-1\">-->\n<!-- <mat-label>لینک تصویر</mat-label>-->\n<!-- <input matInput formControlName=\"fileLink\" class=\"link-input\" />-->\n<!-- <mat-error *pghFieldError=\"let message\">{{ message }}</mat-error>-->\n<!-- </mat-form-field>-->\n<!-- <button-->\n<!-- [pghLoader]=\"linkLoader\"-->\n<!-- [disabled]=\"!form.value.fileLink\"-->\n<!-- class=\"mb-4 mt-1 ms-2\"-->\n<!-- mat-stroked-button-->\n<!-- color=\"primary\"-->\n<!-- type=\"submit\"-->\n<!-- >-->\n<!-- دریافت عکس-->\n<!-- </button>-->\n<!-- </form>-->\n<!-- </mat-tab>-->\n<!-- </mat-tab-group>-->\n<!-- <div *ngIf=\"!editable\" class=\"image-editor\">-->\n<!-- <small class=\"mb-1 ms-2\">{{ label }}</small>-->\n<!-- <div class=\"image-preview\">-->\n<!-- <p *ngIf=\"!editable && !value\">تصویر وجود ندارد</p>-->\n<!-- </div>-->\n<!-- </div>-->\n<ng-template #hasPreviewTpl>\n <div #hasPreviewTpl>\n <ng-content select=\"[pgh-file-preview]\"></ng-content>\n </div>\n @if (!hasPreviewTpl.innerHTML.trim()) { @if (hasPreviewPicture()) {\n <div class=\"pgh-file-image-preview mb-2\">\n <img [src]=\"value?.fileUrl\" alt=\"picture-preview\" />\n </div>\n } @if (canReUploadFile()) {\n <pgh-drag-drop-file color=\"accent\" (filesChange)=\"fileChange($event)\" [validation]=\"validation()\">\n <div pgh-drop-placeholder class=\"d-flex align-items-center text-right\">\n <mat-icon svgIcon=\"upload_file\" class=\"me-2\"></mat-icon>\n <span>{{ value?.file?.name ?? filename() }}</span>\n </div>\n </pgh-drag-drop-file>\n }\n <div class=\"d-flex justify-content-center\">\n <button\n mat-button\n color=\"warn\"\n type=\"button\"\n (click)=\"\n showDeleteConfirmDialog() ? deleteFileConfirmDialog() : deleteFile();\n $event.stopPropagation()\n \"\n [disabled]=\"disableDeleteButton()\"\n >\n <mat-icon svgIcon=\"delete\" class=\"me-2\"></mat-icon>\n <span>{{ 'DRAG_AND_DROP_DELETE_BUTTON' | translate }}</span>\n </button>\n <button\n mat-button\n color=\"accent\"\n type=\"button\"\n (click)=\"downloadFile(); $event.stopPropagation()\"\n >\n <mat-icon svgIcon=\"cloud_download\" class=\"me-2\"></mat-icon>\n <span>{{ 'DRAG_AND_DROP_DOWNLOAD_BUTTON' | translate }}</span>\n </button>\n </div>\n }\n</ng-template>\n","import { PghFileInputComponent } from './file-input.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PghDragDropModule } from '../drag-drop.module';\nimport { PghInputModule } from '@tapsellorg/angular-material-library/src/lib/input';\nimport { PghLoaderModule } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { TranslateModule } from '@tapsellorg/angular-material-library/src/lib/translate';\n\n@NgModule({\n declarations: [PghFileInputComponent],\n imports: [\n CommonModule,\n PghDragDropModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n PghInputModule,\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n PghLoaderModule,\n TranslateModule,\n ],\n exports: [PghFileInputComponent],\n})\nexport class PghFileInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.PghDropTargetDirective","i4.PghDragDropFileComponent","i6"],"mappings":"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"}