{"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.utils.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 { PghDimension } from './drag-drop.model';\n\nexport function getImageDimensions(url: string): Promise<PghDimension> {\n  return new Promise((resolve, reject) => {\n    const img = new Image();\n\n    img.onload = () => resolve({ width: img.width, height: img.height });\n    img.onerror = () => reject(new Error('Failed to load image'));\n\n    img.src = url;\n  });\n}\n\nexport function getVideoDimensions(url: string): Promise<PghDimension> {\n  return new Promise((resolve, reject) => {\n    const video = document.createElement('video');\n\n    video.onloadedmetadata = () => resolve({ width: video.videoWidth, height: video.videoHeight });\n\n    video.onerror = () => reject(new Error('Failed to load video'));\n\n    video.src = url;\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 { PghDimension, PghValidationFileInput } from '../drag-drop.model';\nimport { PghFileValidators } from '@tapsellorg/angular-material-library/src/lib/input';\nimport { getVideoDimensions, getImageDimensions } from '../drag-drop.utils';\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  async onFileDrop(files: FileList) {\n    this.messageErrorField.set([]);\n    await this.checkValidation(files);\n    if (this.messageErrorField().length > 0) return;\n    this.handleAddFiles(files);\n  }\n\n  async onFileInput({ target: _target }: Event) {\n    const target = _target as HTMLInputElement;\n    const { files } = target;\n    this.messageErrorField.set([]);\n    await 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  async checkValidation(files: FileList | null): Promise<void> {\n    if (!files || 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    if (this.validation()?.dimensions) {\n      const { width, height } = await this.getFileDimensions(files[0]);\n      this.messageErrorField().push(\n        PghFileValidators.checkDimensionsValidation(width, height, this.validation().dimensions!)!,\n      );\n    }\n\n    this.messageErrorField.set(this.messageErrorField().filter(element => element !== null));\n  }\n\n  private async getFileDimensions(file: File): Promise<PghDimension> {\n    const url = URL.createObjectURL(file);\n\n    try {\n      if (file.type.startsWith('image/')) {\n        return await getImageDimensions(url);\n      }\n\n      if (file.type.startsWith('video/')) {\n        return await getVideoDimensions(url);\n      }\n\n      return { width: 0, height: 0 };\n    } finally {\n      URL.revokeObjectURL(url);\n    }\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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"}