{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-file.mjs","sources":["../../../projects/ng-dsv/ds/file/show/container/file.show.component.ts","../../../projects/ng-dsv/ds/file/show/container/file.show.component.html","../../../projects/ng-dsv/ds/file/upload/directive/file-upload-directives.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.html","../../../projects/ng-dsv/ds/file/ng-vagabond-lab-ng-dsv-ds-file.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'dsv-file-show',\n  templateUrl: './file.show.component.html',\n})\nexport class FileShowComponent {\n  url = input<string>('');\n  src = input.required<string>();\n  alt = input<string>('Exemple du dsv file show');\n\n  fileUrl = computed<string>(() =>\n    this.url() + '/file/download?fileName=' + this.src(),\n  );\n\n}\n","<img [src]=\"fileUrl()\" [alt]=\"alt()\" width=\"100%\" />\n","import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n    selector: '[appDragDrop]'\n})\nexport class FileUploadDirective {\n\n    private _enabled: boolean = false;\n    private _dragInProgress: boolean = false;\n\n    @Input() set appDragDrop(value: any) {\n        this._enabled = value === '' ? true : !!value;\n    }\n\n\n    @HostBinding('class.dragging') get dragInProgress() {\n        return this._dragInProgress;\n    }\n\n    @Output() dropped: EventEmitter<any>;\n\n    constructor() {\n        this.dropped = new EventEmitter();\n    }\n\n    @HostListener('dragenter', ['$event'])\n    @HostListener('dragover', ['$event'])\n    handleDragOver(event: DragEvent): void {\n        if (!this._enabled) {\n            return;\n        }\n        this.stopAndPreventDefault(event);\n        this._dragInProgress = true;\n    }\n\n    @HostListener('dragleave', ['$event'])\n    @HostListener('dragend', ['$event'])\n    handleDragEnd(event: DragEvent): void {\n        if (!this._enabled) {\n            return;\n        }\n        this.stopAndPreventDefault(event);\n        this._dragInProgress = false;\n    }\n\n    @HostListener('drop', ['$event'])\n    handleDrop(event: UIEvent): void {\n        this.stopAndPreventDefault(event);\n        this._dragInProgress = false;\n        this.dropped.emit(event);\n    }\n\n    stopAndPreventDefault(e: UIEvent): void {\n        e.stopPropagation();\n        e.preventDefault();\n    }\n\n}\n","import { Component, ElementRef, input, output, signal, ViewChild } from '@angular/core';\nimport { FileUploadDirective } from '../directive/file-upload-directives';\n\n@Component({\n  selector: 'dsv-file-upload',\n  imports: [FileUploadDirective],\n  templateUrl: './file-upload.component.html',\n  styleUrls: ['./file-upload.component.scss'],\n})\nexport class FileUploadComponent {\n  multiple = input<boolean>(false);\n  fileType = input<string>('image/*');\n  dragDropEnabled = input<boolean>(true);\n\n  filesChanged = output<FileList>();\n\n  file = signal<string | undefined>(undefined);\n\n  @ViewChild('fileInput')\n  inputRef!: ElementRef<HTMLInputElement>;\n\n  addFiles(files: FileList): void {\n    const reader = new FileReader();\n    reader.onload = () => {\n      this.file.set(reader.result as string);\n    };\n    reader.readAsDataURL(files.item(0) as Blob);\n    this.filesChanged.emit(files);\n  }\n\n  handleFileDrop(event: DragEvent) {\n    if (event?.dataTransfer?.files?.length) {\n      const files = event.dataTransfer.files;\n      this.inputRef.nativeElement.files = files;\n      this.addFiles(files);\n    }\n  }\n}\n","<label\n  class=\"drag-zone\"\n  [appDragDrop]=\"dragDropEnabled()\"\n  (dropped)=\"handleFileDrop($event)\"\n>\n  <input\n    type=\"file\"\n    [accept]=\"fileType()\"\n    [multiple]=\"multiple()\"\n    (change)=\"addFiles(fileInput.files!)\"\n    #fileInput\n    class=\"visually-hidden\"\n  />\n  @if (!file()) {\n    <ng-content></ng-content>\n  } @else {\n    <img [src]=\"file()\" alt=\"Aperçu du Meme\" width=\"100%\" />\n  }\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}